AIコーディング近況


2025-10-26 に次の記事を書きました。

これは、私のAI利用略歴と、当時は主に Claude Code(仕事)と Codex CLI(プライベート)を使い分けていた、という内容でした。
本記事では、その後の近況を記録しておきます。

Read more ⟶

Kotlin の @JvmInline value class が Spring MVC のパラメータバインディングで壊れる話


TL;DR

  • Kotlin の @JvmInline value class@ModelAttribute で受ける data class のプロパティに使うと、リクエスト時に BeanInstantiationException が発生します。
  • 原因は Kotlin リフレクション API が value class のアンラップ済み型を正しく扱えないバグ(KT-64097)です。Spring Framework 6.1.0 以降のリフレクションベース(KCallable#callBy)のパラメータ解決と噛み合って表面化します。
  • Spring 側はこれを「Kotlin のバグ」として NOT_PLANNED でクローズ済みです(spring-framework#31698)。フレームワークの修正は期待できません。
  • 回避策はバインディング方式によって異なります。@ModelAttribute の data class では value class を使わず、UUID 等の素の型で受けて Controller 内で value class に変換するのが安全です。

value class とは

Kotlin の @JvmInline value class は、1つの値を型安全にラップするための仕組みです。

Read more ⟶

Kotlin のデフォルト引数が Spring AOP プロキシをすり抜けて NPE になる話


TL;DR

  • @Transactional 系のアノテーション(Spring AOP のクラスプロキシ)が掛かった Kotlin クラスで、メソッドのデフォルト引数式が注入フィールドを参照していると NullPointerException になることがあります。
  • 原因は「Kotlin のデフォルト引数は static な合成メソッド xxx$default に展開され、それが Spring AOP プロキシのインターセプトをすり抜ける」ためです。
  • 同じシグネチャでも 引数を明示的に渡すと再現しません。そのためテストやコードパスによって出たり出なかったりして気付きにくいです。
  • 対策はシンプルです。デフォルト引数で注入依存を参照しないこと。必要なら メソッド本体で val 宣言 するか、オーバーロードで表現します。

症状

ある UseCase をリファクタして、時刻取得を Clock の DI 経由に変えました。

Read more ⟶

江添亮の入門C++ PDF(フォント埋め込み)


最近Xで、“ゲームプログラマーになりたいならC++は必須"みたいなポストを見かけ、そういや最近のC++ってどうなっているのか知っといてもいいかも、ということでC++を学べる教材を探すことにしました。

Read more ⟶

WSL2でWindows Terminalがクラッシュするので利用をやめた


でも書きましたが、Windows Terminalが旧MSIMEを使っていると頻繁にクラッシュして困ったので新しいMSIMEを使うことにしました。
しかし、新しいMSIMEだとShift+Spaceで日英入力切替ができないのでAutoHotKeyを利用して解決を図りました。

Read more ⟶

OBS Python Scriptingで利用できるPythonバージョンの調べ方


より。
shared/obs-scripting/obs-scripting-python-import.c を見れば良さそうです。
この記事を書いている時点ではは 3.12 までのようですね。
現在の最新安定版が 3.14 なのでちょっと注意する必要があります。

Read more ⟶

Windows11でShift+Spaceで日本語/英語切り替えを行えるようにする


ひとつ前のエントリーに記載した通り、これまでShift+Spaceで日本語と英語の切り替えを行うために「以前のバージョンのMicrosoft IMEを使う」の設定を有効化していましたが、Windows Terminalとの相性が悪いため無効化せざるを得なくなりました。

Read more ⟶

Windows Terminalで日本語入力中 頻繁にクラッシュする


WSL2上の操作をWindows Terminalで行っているのですが、codexを利用していると(?)、頻繁に次のエラーが出ます。

「このターミナルでグラフィックス ドライバーの問題が発生し、時間内に回復できませんでした。ターミナルは一時停止されています。」

Read more ⟶

これまでのAIコーディングの略歴、Codex Cli ファーストインプレッション


最近はもっぱらAIを利用してコーディングしています。
が、blogにそういったことをまだ書いたことがなかったなあということで、記録を残そうと思った次第です。

Read more ⟶

IntelliJの自動整形でimportのwildcardを使わないようにする


前回のエントリー では休職について記載しましたが、現在、無事職に着くことができています。

さて、そのプロジェクトでの話ですが、CIでKotlinコードに対してktlintでソースコードのチェックを行っています。
ルールは(ほぼ)デフォルト設定を用いているのですが、このデフォルト設定とIntelliJ IDEAのデフォルト設定が競合するルールがあります。
つまり、IntelliJ IDEAの設定でフォーマットをかけると、CIが失敗してしまいます。

Read more ⟶

キーボードを買い替えた: Majestouch Xacro M10SP


これまで、 Mistel Barocco MD600 という左右分離式キーボードを利用していたのですが、USBケーブル接続端子の調子が悪くなったのか、タイピングを認識しなくなることが頻繁に発生するようになり、買い換えることにしました。

Read more ⟶

近況報告と求職(準委任契約)について


近況報告

4月末で前回の仕事の契約が終わり、時間ができたので歯医者に行ったり健康診断に行ったりしていたところ、健康診断で血糖値(正確にはHbA1c)が正常値よりかなり高くなっていることがわかり、1ヶ月入院していました。

Read more ⟶

「簡単アニメキャラ抜き出しアプリ」をWSL2 Docker環境で動かす


という記事をたまたま読み、「そういえばひと昔前、アニメ絵の顔検出流行ってたなあ。今どうなってるんだろう」というのが気になって少し調べてみました。

Read more ⟶