夜更かししすぎた。グエー。
Web拍手ボタンのアニメイションをつけていた。見よう見まねでSVGを描いて(とはいいつつ元はfont awesomeだからライセンスを確認する必要がある)、CSSで動かして、ボタンの状態を管理して……みたいな。でもSVGの編集以外はClaude Codeにやらせている。これでそれなりのものが出てくるんだからすごい時代だ。
ただリロード時にローカルに保持している状態の反映が一瞬遅れる問題があって悩んでいる。これはさすがにどうしようもないか?
寝ます。
夜更かししすぎた。グエー。
Web拍手ボタンのアニメイションをつけていた。見よう見まねでSVGを描いて(とはいいつつ元はfont awesomeだからライセンスを確認する必要がある)、CSSで動かして、ボタンの状態を管理して……みたいな。でもSVGの編集以外はClaude Codeにやらせている。これでそれなりのものが出てくるんだからすごい時代だ。
ただリロード時にローカルに保持している状態の反映が一瞬遅れる問題があって悩んでいる。これはさすがにどうしようもないか?
寝ます。
健康診断に行った。いつも健康診断で使っているクリニックはなぜか午後しか受けつけてくれないのでお腹が空く。
実は身長が171.6cmもあるらしい。というか去年もそうだった。なんとなく170はあるけど171はないくらいのイメージだからびっくりする。
仕事はClaude Codeのためのissue書いたりなんか設計変更を考えてたら終わった。来週は忙しそう。
寝ます。
なんか複雑なこと言ってんな〜〜と思っていた概念を正しく整理して設計の変更を決めることができたのでいい日だった。なぜ初期の設計でこうなっていないんですか?という気持ちはある。いや、まあこれは難しいよな。最初の段階で疑問を持てるように心掛けないと。
夜は友人の転職相談(雑談)を聞いたり、ツールチェインの管理にmiseを使おうか考えたりした。mise、dotenv目的で入れてはいるけど、なんか言語処理系とかまで含めて管理するのあんまり良くない感じがして躊躇していた。別に問題ないのか? すこし試していきたい。
寝ます。明日は健康診断。
何してたっけ。すごいデカいPRを出した。それだけかな。
夜は会社の人と飲んだ。挨拶って大事だよねみたいな話をした。自分のプロトコルを明示すること。
そういえばTypeScriptのGo移植が一応は動くようになっているんだよねと思って、型チェックにだけtsgoを使ってみることにした。React Routerが生成する一部ファイルをexcludeする必要はあるようだけど、それ以外は概ね動いて、確かに速い。いいね。変な動きしなければしばらく使ってみたい。
寝ます。
Claude Codeに任せきれなかったデカい修正をぷちぷちやっていた。デカいといっても影響範囲が広いというだけで内容的にはほぼテストコードの機械的な置き換え作業。でも、機械的に置き換えた結果無意味になったテストとかもあるから面倒。とりあえずテストが通るところまではやったから、明日見直してPRを出す。
手許の開発用のMeilisearchのバージョンを上げたりPostgreSQLのバージョンを上げたりするので手間取った。こういうのって自動的にデータ引き継いでアップデートしてくれないもんなのかね。どちらも一度dumpして取り込み直すみたいな作業が必要だった。やれやれ。
なんか最近またつまんないな〜と思う。仕事も張り合いないし。どうしたらいいんだろうね。
寝ます。
コードレビューばっかしてた。Claude Codeをしばらく使い倒した結論、これまでとは格段に良くなっているが、やはりコードベースの規模が大きいと無理が出てくるなと思った。設計の工夫によって一度に見る必要がある範囲を狭めてあげるとかが有効なのか?(それは当然ヒトにも有益なのだが、どうしてそうなっていないのか?)
なんとなく秦谷美鈴さんのプロデュースに取り組んでいる。見た目はかなりかわいらしいなと思うが、歌は月村さんのほうが好きだな。ともあれいずれSSRを手に入れたい。
Appleが、LLMの推論モデルって言うけど全然思考なんかできてないよ、みたいな論文を出して界隈が盛り上がっている。やっていることはパターンマッチに過ぎないみたいな話を受けて、「人間もそうだよね〜」みたいな2周遅れくらいのことを嘯いている人が多いが、全然そういう話ではなく普通にパフォーマンスが低いという風に理解している。ハノイの塔のアルゴリズムをプロンプトで与えられてなおある段数以上は解けない(しかも与えられなかった場合と同じ程度!)というのは、確かにこいつ何もわかっちゃいねえなと思うのには十分だ。アルゴリズムはどのようなものを与えたのだろう(ちゃんと読んでない)。再帰的なのかそうでないのかは気になる。
ヒトも結局論理的思考なんてことはしておらず、たとえ話でしか理解してないだろうとは思われるが、それでも手順を与えられればどんなサイズのハノイの塔でも解けるだろう。じゃあ何が足りないのか。結局は汎化をできていないというだけなのか。ヒトはなぜできるのか。やっぱりヒトもできてないのか。
寝ます。
何だっけ。なんかコードレビューしてたら一日終わった気がする。結局他人のコードのレビューって疲れるんだよな。やらないわけにもいかないが。特に相手がAIだと、あいつらには美学ってもんがしばしば欠如してるから。CLAUDE.mdに書けばいいのか?
Web拍手関連のリファクタを終わらせたので、次はデザインに入らねばならない。SVGをうまいことアニメイションさせたいんだけど、どうしたらいいのかな。
寝ます。
Claudeにあれこれ指示してはちゃぶ台を返している。人間相手だと気が引けるけど、AIだったら気にしなくていいので助かる。
Web拍手機能をつけると、投稿に紐づくエンティティが増えるということで、設計がすこしややこしくなる。初めはまとめて集約とすべきかと思ったのだけど、そうするとデータ競合が起きそう……とか考えているとClaudeにあれとこれをくっつけて、やっぱり戻して、などの指示を出すことになる。うーん。ChatGPTとも相談しているけど。
今回のパターンは別に投稿と拍手の間に不変条件とかはないから集約にしないでFAだと思うけど、せざるを得ないパターンだったらどうすればいいのかはよくわからない。ユースケースのレベルでトランザクションを張るというのが一つの方法だろうけど、アクターなりキューなりで直列化するのもいいらしい。楽観的ロックとか。うーん、難しい。こういうのから逃げずに考える必要があるプロジェクトに入って修行を積みたい。
寝ます。
デカいPRのレビューと、Claudeに書かせたコードの修正をしていた。あまり大きなissueをそのままClaudeのactionに投げるのは得策ではない。細かくフィードバックできないし、長くなりすぎるとタイムアウトするし、CI何度も回すとコスパが悪い。そういうのは適宜issue分割する(本当はそうすべきなんだろう)か、手許でやるとよさそうだ。手許でClaudeが書いてくるコードを観察して、時々ストップを書けてやり直させていると、なんかペアプロっぽいなと思う。ペアプロやったことあんまないけど。
aboutページをちょっといい感じにする改修をした。過去に作って公開しているプログラムのデモページにリンクして、OGPでサムネイルなんかも表示している。オシャレ!これは公開が楽しみだ。別に誰も見ないだろうけど。
あとrenovateのセットアップをした。これでたまに更新のPRが来るはず。
寝ます。
なんかひさびさに投稿中のフォームが消えてしまった。Safariがメモリ不足時にタブを解放してしまうのか何なのか。誤ってリロードなどしてしまった時のために簡単な下書き自動保存機能はあるのだが、フォームがクリアされるとそれもクリアされてしまうから救えない。でも何とかしたいよなあ。
今日はたいしたことはしていない。昨日Claude Codeに書かせたaboutページの改修を調整したりしていた。コードを書くのはLLMに任せられるが、デザインを調整するのはまだそういうわけにはいかない。Figmaとかを使えば結構できたりするのか?いや、さすがにまだそこを手放したくはないけれども。
寝ます。なんか今週はバタバタしてたら終わりそうだな。いつもそう言ってる気もするが。