mike-neckのブログ

Java or Groovy or Swift or Golang

『モブプログラミング ベストプログラミング』を読み終わった

日本でモブプロが話題になってから約 3 年、日本で出版されてから 1 年半くらい経過したでしょうか、やっと 『モブプログラミング ベストプラクティス』を読み終わった。

雑記 - Fiber はなくなりました

…え、あれ? Fiber なくなったの? Project Loom はコケたということ?マジで?!調べてみた!

java -version の結果

たぶん @yamadamn さんが既にやっているやつ。 調べることにした経緯は、 aws amplify cli のバージョンチェックがおかしいため。 github.com 上記のチェックでは、 java -version の結果が /(\d+\.)(\d+\.)(\d)/g にマッチすることを前提にしているが、どう…

github から Gradle のリリースのリストを取得して、 jq で RC 以外で各マイナーバージョンで最新のバージョンの値を取得する

jq

単なる jq のメモ。 やりたいこと github から release の一覧を取得して、 RC 以外のバージョンの最新バージョンの値を取得する GitHub API 例えば Gradle のリリースは、 GitHub の ドキュメント によると次の URL で 40 件ほど取得できる https://api.git…

GraalVM コミュニティー版のバージョンロードマップ

正確なものは公式ドキュメントを読んでください。これは 2020-08-09 時点の単なるメモです。 www.graalvm.org マイナーフィーチャーリリースは 3 ヶ月ごとに行われる 2, 5, 8, 11 月の 17 日 新しいフィーチャーリリースは以前のものに取って代わる(以前のも…

Kotlin 愛好会で発表した #love_kotlin

テストフレームワーク ktcheck の宣伝も兼ねて発表してきた love-kotlin.connpass.com 資料はこれ サーバーサイド Kotlin のテストフレームワーク事情 from Shinya Mochida www.slideshare.net 現在勤めている会社のテストのほぼすべては kotlintest(現 kote…

GitHub Actions で古い action を使っているか調べる action を作ってみた

ワークフローに使われている action に新しいバージョンがリリースされているか調べる カスタム action を作って github marketplace で公開してみた

指定時刻と現在時刻の差分を求める duration というツールをリリースした

ISO-8601 形式で入力した日時と現在時刻の差分を求める duration というツールをリリースしました。 github.com

graalvm-native-image プラグイン 0.6.1 続いて 0.7.0 をリリースしました

表題のとおりですが、 0.5.0 をほぼ全部書き換えています。 API そのものは変更していないので、ユーザーが既存のビルドを維持する場合に現在の DSL に手を加える必要はありません plugins.gradle.org 正確には v0.6.1 を 2020-06-21 に v0.7.0 を 2020-06-3…

savanna-gradle-plugin をリリースしました

仕事サボって作ってた pic.twitter.com/XOX7zWviLY— 引きこもり持田 (@mike_neck) 2020年6月19日 会社で仕事をサボってツイッター見てたら、t_wada さんのトレードマークと言えるライオンに関するツイートがいくつか流れてきました。 テストが書かれていない…

Gradle の C++ プラグインを使って JNI から C++ のコードを呼び出すアプリケーションをビルドする(Android プロジェクトではない)

GraalVM の native-image を作る際に利用する config.json を自動生成させて、アプリケーションを複数回実行してマージするというのをやろうとしており、 JNI を使う Java アプリケーション(JNA ではない)を Gradle でビルドする必要が出てきたが、残念なこ…

Proxy の InvocationHandler から interface の default メソッドを呼び出す方法

proxy を取得する対象のインターフェースクラスで MethodHandles.lookup() を呼び出して MethodHandles.Lookup を取得する で取得した MethodHandles.Lookup のインスタンスから unreflectSpecial(Method, Class) を呼び出して、MethodHandle を取得する pro…

検査例外を検査無しで投げる邪悪な方法

netty のコードで結構前に見かけて覚えていたけど、完全に失念してて悔しかったので、メモ 呼び出し側にとってはこういうコード書かれたらかなり邪悪だと思う。

precompiled groovy dsl が便利そう

precompiled groovy dsl は buildSrc プロジェクトに gradle ファイルを入れておくと、メインの build.gradle でプラグイン取り込みの仕組みを使って取り込める機能で、ファイルを分割して apply from <file> としてたビルドファイルを分割していた仕組みの強化版(</file>…

sdkman で複数のバージョンの Java をディレクトリーごとに切り替える

複数のプロジェクトを行ったり来たりする際に、プロジェクトごとに Java のバージョンが違っている際は、たいてい IntelliJ が覚えていてくれるので、それほど困ってはいないのですが、世の中にはターミナルでなんでもこなす人がいるらしく、プロジェクトご…

asciidoctor-gradle-plugin の使い方

google で「asciidoctor gradle plugin」で検索して表示される結果が古すぎて使い物にならなかったので、書いておくことにした。古いものベースで gradle を書いていたところ、DSL でわからないところがあったため、 github でコードを探したが見つからず混…

github actions で GraalVM でつくったネイティブアプリケーションを GitHub リリースする

date コマンドを使うときにいつもググって調べるくらいの unix 音痴で、 Java の JSR310 ならすぐできるのにと思うことが多いので、そのようなコマンドを作ることにしました。 github.com 機能はまだ作り込んでいなくて、まずはフォーマットを指定できるだけ…

Picocli + Kotlin + graalvm-native-image plugin でネイティブツールを作る

ちょっと Java(Kotlin) でツールでも作ろうと思ったので、勉強のためにチュートリアルやってみた。やってみたという話なので何も深いことは書いてない。

Kotlin 用のテストフレームワークをリリースしました

表題の通り、テストフレームワークをリリースしました。 名前は ktcheck です。 JUnit Platform 上で動かせますが、普通のメインプログラムの中でも使えます。 利用方法 インストール・導入 gradle の場合、次の記述を dependencies ブロックに記述します。 …

Sonatype OSSRH へのリリース方法 Gradle 編 最新版-2020-04-08

久々に Maven Central にリリースしようと思って、 gradle と GnuPG などをいじくったので、そのまとめ。 3行でまとめ GnuPG のバージョン 2 を使う GnuPG は secretKeyRing ファイルがなくなっているので、 signing の指定方法が幾分変わっている。 CI から…

Slack の Bolt フレームワークを Spring Boot + Kotlin で試してみた

Slack の Bolt フレームワークが Java でもリリースされたということなので、早速試してみた Bolt は最先端の Slack アプリをつくるためのフレームワーク。これまでの JavaScript に加えて、今日 Java バージョンもリリースしました! ☕ 早速試してみてくだ…

JUnit Platform Engine の作り方

JUnit Jupiter でのテストクラスの書き方は、世の中にたくさん、このブログよりも SEO に長けているブログの記事が見つかるので、それを参照されるがよい。 そうではなくて、ここでは JUnit Platform Engine の書き方、作り方の手引を書く。 ちなみに、僕は …

MacOSX で DBeaver を起動する

データベースの ERD を整理したいこともあり、よいツールはないものかと探していたところ、 eclipse ベースの DBeaver (読み方は「ディービーバー」だと思う、アイコンがビーバーだから)がよさそうだと思い、使ってみようとしたのだが…

HTTP のテストをおこなう CLI ツールの httpmon をリリースした

HTTP のテスト・モニタリングを行う CLI ツール httpmon の v0.2.0 をリリースしました。とはいっても、 github のリリースページ に実行形式のファイルが置いてあるだけです。 README.md に書いてあるとおりですが、 ターミナルで http のテストをするだけ…

Spring Batch を Spring Boot で作った場合のプロセスの終了コード(exit code) の設定の仕方

Spring Batch で終了コードを設定する方法を調べると、おそらく次の資料に出くわす docs.spring.io terasoluna-batch.github.io ただ、 Spring Boot で Spring Batch を作る場合はこの方法では多分うまくいかない。これらの資料では Spring Batch にある Com…

graalvm-native-image プラグイン 0.3.0 をリリースしました

表題のとおりです。 plugins.gradle.org

ターミナルで画像ファイルをクリップボードにコピーするツール作った

表題にあるようなツールがないかと探してみたのですが、テキストをクリップボードにコピーするツール(pbcopy のラッパー)は見つかるものの、画像ファイルをコピーするツールが見当たらないので作ってみた。 github.com README.md に書いてありますが、コマン…

最近見た残念なコード

最近見た残念なコード。なお、プロダクションで使われているコードなので、意味内容を変えつつ誇張して書いているため、実際はここまでひどくはない。 class App { Map<String, String[]> map; public void add(String protocol, String base, String[] paths) { for (String p</string,>…

中央線Meetupに行ってきた

中央線Meetupという名の かわしまさん の講演会に行ってきた chuoline.connpass.com

メモ github actions で goreleaser を使ってリリースする

作ってるツールをどのように github の release に乗せればよいか調べていたところ、 goreleaser-action なる github actions 用の action があることを知り、 github actions の勉強がてら使い方を調べてみた github.com