mike-neckのブログ

Java or Groovy or Swift or Golang

gh issue list コマンドでソートする方法

jq

gh コマンドで GitHub のイシューを引っ張ってきてソートしたい場合、ソートというオプションがないようなので困る。 そこでソートする方法としては以下の3つの方法が考えられる --search オプションによるソート --jq オプションで jq によるソート パイプ…

ffmpeg を bash ループの中で使うと、 read が正しく標準入力を読めなくなる問題の対処

以前のエントリーにも書いた ffmepg を使うと標準入力が壊れる問題の解決方法は、 /dev/null を読み込ませるということである、 と言いたいだけのエントリー。 mike-neck.hatenadiary.com 次のようなループで read -r filepath が想定してない欠損した値を読…

JEP-430 String Template を簡単な範囲で調べた

JEP-430 String Template が気になったので簡単な範囲で調べてみた。 触ってみた系のブログが好きでない人は閉じてもらってよいです。 ざっくり JEP-430 の仕様が詳しいので、これを読むだけでだいたい必要なことは覚えられる processor."String Template" …

Mac OS の bash(zsh) の while read ループの中で ffmpeg を呼ぶと、read が正しく実行できなくなる

大量に ffmpeg でファイルを処理する必要があったので、 find コマンドから while read -r につないで ffmpeg を実行していたら、2 回に 1 回ファイルが見つからずにエラーになった。 set -e readonly fromDir="images/original" readonly toDir="images/des…

Bash で (( で 0 になっている変数をインクリメントしてたら終了ステータスが 1 になってた

Bash で go のテストコードを生成していたら、mac では動くけど、 github actions では動かないテストが出力されていた。 仕方無しに、 set -x をつけて動かしたところ、 (( count++ )) という処理でスクリプトが終了していた。 ということで、以下のコマン…

ProGuard と record クラス + Jackson アノテーションおよび EnumSet が相性悪いので、調べた

↓まとめた twitter.com

今年読んだ漫画

最近、まったくブログを書いてないし、書く気力もないけど、まあ年末だし、一年を振り返ってみると漫画しか読んでないので、今年読んだ漫画を振り返って書く。 ワンパンマン 24巻 フブキ様の活躍するお姿を拝めて眼福 褐色編集さんとショタ漫画家 3巻 儂も愛…

M2 MBP で OpenJDK の configure をすると 「XCode tool 'metal' neither found in path nor with xcrun」が発生する

前回のエントリーのあとにマシンを M2 MBP に更新したので、前回のエントリーで環境構築したところ、失敗したので、そのメモ。 mike-neck.hatenadiary.com エラーの発生 OpenJDK をクローンした後に、 bash ./configure --disable-precompiled-headers を実…

CLion で OpenJDK のコードを読むためのセットアップ

Mac OS 12.3 + CLion で読むためのセットアップ (1) GitHub から読みたい時点のコードをクローンしてくる. ghq 使ったので、次のコード. ghq get \ --shallow \ --branch 'jdk-19+25' \ https://github.com/openjdk/jdk.git (2) Makefile を生成する. precom…

セキュア・バイ・デザイン 3章前半

読書メモ、対象がでかいし、ダラダラ読んでたのであまりまとまってない 全般的にいわゆる DDD 本(エリック・エヴァンスの本)のエッセンスが提示されている章。議論はそれなりに花が咲きそうだけど、結論はエヴァンス本読めになりそう。以下は個人的におっと…

セキュア・バイ・デザイン 10章

クラウドによるセキュリティの原則を説明。その構成要素についても解説している。 クラウド的考え方によるメリット クラウドの提供する可能性(機能)を余すとこなく活用できる設計 12 Factor App Cloud Native 3 つの R(後述) 12 Factor App + PaaSでの稼働…

セキュア・バイ・デザイン 2 章

読書会に参加するので、まとめておくだけ 2.1 ビジネスルールの観点における完全性の問題 不正なデータ入力によって損失が発生してた 不正なデータに対するサブシステムの振る舞いが異なっている 2.2 浅いモデリング 最初にモデリングできたと思ったあとに深…

2021 年も終わりの近況

2021 年は何もできなかった。その多くはうつ病のためにやる気が無くなってたことが原因である。それは今も変わらない。 万年うつ病がひどくなったのは、仕事をさがしている間に何度か遭遇した突然連絡がとれなくなる企業のおかげである。 不採用にしたいんだ…

graalvm-native-image-plugin の v1.4.0 をリリースしました

表記の通り、 Gradle プラグインの graalvm-native-image-plugin の v1.4.0 をリリースしました。 plugins.gradle.org このリリースでは以下の機能が追加されました。 シェアードライブラリーをビルドする機能(Java11 以降のみ) 上記の機能追加に伴う、 nati…

graalvm-native-image-plugin を使用している際に、 The command line is too long というエラーメッセージが表示される場合の対応方法

Windows 環境にて、 graalvm-native-image-plugin を利用している際に、タイトルにあるようなエラーが発生することがあるようです。 github.com どのような形にするのが良いか解決方法を検討中ですが、一時的に回避する方法として、 jar の Class-Path アト…

graalvm-native-image-plugin の 1.3.0 にて SerializationConfigurationFiles オプションに対応しました

graalvm-native-image-plugin のバージョン v1.3.0 をリリースしました。このリリースでは、 native-image-agent で生成された serialization-config.json ファイルのマージ、 SerializationConfigurationFiles オプションのサポートを追加しました。以下の…

GraalVM の espresso を試してみただけの試したエントリー

みんな Java やってる? どーも mike です! GraalVM 編、第XX話は GraalVM のエクスペリメンタルなプロダクト espresso Java bytecode を Java の上で実行?! ついに、試してみたよ〜 それでは、スタート!!! (以上、最近お気に入りのユーチューバーの前…

「第6回Reactive System Meetup in 西新宿」にいってきた #reactive_shinjuku

家が近いので 第6回Reactive System Meetup in 西新宿 に参加してきた

Jigsaw でサービスプロバイダーを定義した場合には、 ServiceLoader は従来の引数なしコンストラクターに加えて provider という名前の static ファクトリーメソッドでオブジェクトを生成できる

ServiceLoader で provide というスタティックメソッドを持ったクラスからもインスタンスを取得できる

Java のモジュールと ServiceLoader その2 マルチプロジェクトで実験

Java9 のモジュールを利用すると `provide ... with ...` ディレクティブによって provider configuration ファイル(`META-INF/services/xxx.yyy`) を書かなくても `ServiceLoader` でインスタンスを取得できる

Java のモジュールと ServiceLoader

多分、日本で1,000,000番目に Java のモジュールシステムに詳しい人間になれた気がする— 引きこもり持田 (@mike_neck) 2021年2月18日 GraalVM の native-image で、 javac のネイティブイメージを作成した際に、 JavacTool(JavaCompiler の実装クラス) とい…

2020年に買ったもの

タイトルにある通り買ったものでわりとよく使っている(消費している)もの。 ちなみに家が狭いので 2020 年に買ったものはほとんどが 消費するものか kindle の書籍だった。

graalvm-native-image-plugin を GraalVM 20.3 に対応させました

少し前になりますが、 graalvm-native-image-plugin を最新の GraalVM 20.3 に対応させました。

Kotlin の基礎を身につけるための学習素材を作ってみた

プログラム書くの遅い人、 仕様が整理できてないか、 IDE を使い慣れてないか、言語の標準 API を覚えてないかのいずれかなので、勉強し直してきてください— 引きこもり持田 (@mike_neck) 2020年12月26日 Kotlin を使ったプログラムを書く場合には以下の要素…

Interface に対してプログラミングする

interface に対してプログラミングするのがベストプラクティスであるとする考え方が、 Java のプログラミングにあるようです。 依存関係を切断・逆転できて便利とか、インターフェースが変わらない限りは実装が変更されても利用するクラスは変更されないなど…

GraalVM 20.3 から TraceClassInitialization オプションの指定方法が変更になっていた

GraalVM 20.3 から TraceClassInitialization オプションが boolean 指定ではなく、 List 指定になっています。 そのため、 20.2 まで以下のようにオプションを指定していた場合、カンマ区切りの FQCN に修正する必要があります 〜 20.2 まで -H:+TraceClass…

java プラグインの compile/runtime Configuration が 6.8 の次の 7 からなくなるらしいです

タイトルにあるようなツイートを見かけたので、念の為に。 Heads-up folks, next Gradle version after 6.8 will be 7.0! Be ready...— Cédric Champeau (@CedricChampeau) 2020年12月10日 雑な訳 6.8 の次は 7.0 だよ、いいね Don't forget this version re…

JJUG ナイトセミナーでの初登壇で触れた Gradle の Java toolchain の実験

JJUG ナイトセミナー初登壇してきた(LT は除く)。 で、これはその補足。 最後駆け足で紹介していた最近の Gradle の情報で、 Java toolchain(6.7) improovements(6.8) を実際に試してみた なお、すでに Java toolchain についてはすでにいくつかブログが書か…

あなたの知らない Gradle の kotlin-dsl プラグイン

やんくさんに頼まれたので、誰かが書くだろうと思って待ってたけど誰も書かない Gradle の kotlin-dsl プラグインについて書きます。 @mike_neck mikeさんアドベントカレンダー書くネタあったりしませんか?https://t.co/ZDwmyBpbC0— やんく (@yy_yank) 2020…

ffmpeg で色のバランスを変更する

colorbalance オプションを指定して変更する このオプションの指定方法は次のパラメーターがある rs/gs/bs 一番小さい値を指定する(-1.0 〜 1.0) rm/gm/bm 真ん中の値を指定する(-1.0 〜 1.0) rh/gh/bh 最も高い値を指定する(-1.0 〜 1.0) このオプションに…