mike-neckのブログ

Java or Groovy or Swift or Golang

Java 23 で文字列を表示するために println だけでよくなったか確認してみた

Java 23 で文字列を表示するために println だけでよくなった

「大吉祥寺.pm」に行ってきた #kichijojipm

表題の通り久々にオフラインイベントに参加しました。 kichijojipm.connpass.com

2つの配列をマージしてオブジェクトの配列を作る(How to merge/zip two arrays into an array in jq)

jq

How to merge/zip two arrays into an array in jq? Use variables, and index function.

Goのすべての GOOS と GOARCH をリスト表示する

List all GOOS and GOARCH in Go.

ターミナルでクリップボードにある画像をファイルに保存するやつ作った

以前に作った imgcopy(ターミナルで画像のファイルをクリップボードにコピーするやつ) の逆バージョンを作った。 mike-neck.hatenadiary.com

MacOS の sips コマンドで HEIF 形式(拡張子 .HEIC)から別の画像の形式(png / jpeg ...)に変換する

MacOS にデフォルトでインストールされている `sips` コマンドを使うと、 ヒーフ(HEIF / 拡張子 `.HEIC`) 形式の画像ファイルを別の画像の形式 (png / jpeg / jpeg2000 ...) に変換できる。

しぐれういCLI つくった

しぐれういCLIとは、しぐれういボタンをスクレイピングして、ターミナルからしぐれういさんの音声を再生できるようにしただけのツール

2023年に買って読んだ漫画を書き出してみる part.1

読んだ漫画にしようと思ったけど、ちゃんとあれしてないので、買って読んだものに絞った 藤本タツキ短編集17-21 藤本タツキ短編集22-26 藤本タツキ短編集 17-21 (ジャンプコミックスDIGITAL)作者:藤本タツキ集英社Amazon …読んだ記憶はある、ウサギ小屋の話…

今年やったこと

最近はみなブログを書かなくなっているようなので、儂もブログをほとんど書いていなかったけど、まあ、今年大したことやってないしやったことまとめるのは難しくないなと思ったので、そのまとめ。 読んだ本 技術書はほとんど読まなかったし、webの記事も必要…

2023年も終わりだしそろそろ Java で Hello World でもしてみようと思う

本題のとおりなので、早速コードを書いていく。 まず、 static void main を書いておく public interface HelloWorldClassAPI { static void main(String[] args) { // この中に Hello World を書いていく } }

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` でインスタンスを取得できる