0130
二日酔いで午前中はなかなか辛かった。そんなに飲んだっけ?まあ飲んだんだろう。
今日もClineをしばきながら別のコードを書いたりギターを弾いたりしている。つまりは生産性2倍と言えるんだろうか?こういう動き方に慣れていかないと取り残されるのかも。
寝ます。もう1月も終わりなんだな。
二日酔いで午前中はなかなか辛かった。そんなに飲んだっけ?まあ飲んだんだろう。
今日もClineをしばきながら別のコードを書いたりギターを弾いたりしている。つまりは生産性2倍と言えるんだろうか?こういう動き方に慣れていかないと取り残されるのかも。
寝ます。もう1月も終わりなんだな。
左手の指先が硬くなってきて、タイピングやスマホの操作のたびに違和感でびっくりする。(とともに、その程度にはひび練習をしている自分に満足する)
仕事の前に整形外科に行った。何枚もレントゲンを撮られたが、胸骨というものはあまりよく写らないらしく、まあなんか胸肋関節痛なのでは?みたいな感じで終わった。とりあえず現時点で深刻なものである可能性は低そうなので様子を見る。腫れたりしてきたら膠原病の可能性があるのでまた病院に行く。
仕事でFCMと格闘したり、ノミカイに行ったり。Clineには引き続きコードを書かせているが、今日はあまり触れていない。まあ別に急ぎでやらなければならないようなことなど何もない。
寝ます。飲み過ぎたから明日は少し寝坊しよ。
Clineにフロントエンドを書き始めさせた。とりあえずReactでSPAにしている。もしかするとそのままTauriかなんかでアプリにするかもしれないし。まあ基本的にはプロトタイプなのであまりそうするつもりはない。
SPAならClineは自分で動作確認ができるのが強い。自分でヘッドレスブラウザを立ち上げて自分で操作して自分でエラーを発見している。単純なデバッグ作業なんてほぼ置き換えられるんじゃないかという気がしてくる。まあでも、まだ頓珍漢な修正をしようとしたりするし、先祖返りしてしまうこともある。コンテキスト長や知識の保持の方法にもっと進歩が必要なのだろう。
結局ここまで一行も書かずにきてしまった。生成したコードは4000行くらいになっているらしい。どこまでいけるか気になってきた。
そういえばエラーハンドリングについて考えていたが、やはりClean Architectureをとるならアプリケイション層がインフラ層の返しうるエラーを完全に規定すべきで、変なジェネリクスなどのテクでそれを迂回すべきではない。ただ、ログユーティリティのために型がちゃんとしていて欲しい場合があって、そういう場合どうするかは悩ましいところだ。まあどうしてもという場合はダウンキャストすればいいのか?
寝ます。明日は仕事の前に整形外科に行く。なんか肋骨が痛いのが数ヶ月続いている。
胃もたれしていたせいかよく眠れなかった。そういうことがあるんだ!というのはこの1年くらいの気づき。
Clineにはもう任せられねえ!と言ったけど結局妥協の上でClineに書かせている。実際、たまに異常に先祖返りしようとするだけでこちらの意図はちゃんと酌めるのだ。何なんだろうな、これは。
一度言ったことを何度も忘れて別の設計で上書きしようとしてきたり全部消そうとしてきたりされるとかなり苛つく。子育てとかには向いてないのかもしれない。僕に英語を教えているうちに怒りだしてしまった母のことをすこし思い出した。しょうがないだろ、赤ちゃんなんだから(さすがにそんな年ではなかったが)。
具体的なUIは何一つないままAPIだけが充実していく。いよいよLLMを叩けるようになりつつあるが、具体的にどう叩くのか。これも改めてChatGPTと議論しないといけないだろう。漠然としたイメージはあるが、そこから実装までは途方もない距離がある。
寝ます。最近忙しいな。暇すぎるよりはいいのかな。
実装という名のCline激詰め業をやっているが、今日はあまり調子が出ない。さすがに複雑になってきたからか、以前導入したライブラリや決めた設計をすぐに忘れて消そうとしてしまったりを頻繁に起こすようになった。何でなんだろう。
たぶん、完全にClineのやりたいようにやらせるのと比べると、ユーザーがこのように書きたいという欲を持っている場合はうまくいかないのだろう。それにもしかすると単純に僕が間違っているのかもしれない。いたずらに複雑になるばかりで後々得るものも少ない設計だとAIは看破しているのかも。他人が自分を追い越していく瞬間というのは、案外その時にはそれとわからないのかも。
まあともあれそろそろ自分で書く時期かなと思う。APIは最低限できつつあるからフロントエンドが必要なんだけど、これはどうしようかな。一旦これもClineに書かせるか。Tauriって使えるのかな?
夜はほこらんさんとウイグル料理を食べた。なんか、あんまりこれを食べた!みたいな印象はなかったけど。ラム串とかか。
寝ます。
LLMを活用した知識整理システムについてChatGPTといろいろ議論をして、ある程度用件が決まったからプロトタイプ実装を始めた。実装はClineにゼロからやらせている。今のところ一行も自分で書いてはいない(はず)。REST APIとDB接続くらいは余裕で書ける。ただ知ってるライブラリのバージョンがすこし古いのはたまに指導してやる必要がある(とはいえドキュメントはURLを渡せば読んでくれるので今のところはなんとかなっている)。
開発コードはSeiza。星をつなぐように知識をつなぎたいから。
寝ます。
Spectreの改善をして、一旦完成ということにした。トータル1ヶ月くらい触ってたことになるのかな?なかなかいいものができたと思う。シェーダーは雰囲気で触ってるままなのであまり理解していないけれども。
次は何をしようか。4つの4を改善するか、LLMを触るか。LLMかな。何ができるかまだよくわかってないが。
寝ます。
だいぶ眠い。Devinを少し触った。開発タスクはまだ試していないが、受け答えはちゃんとしているし、コードも読めている。まあその程度なら昨今珍しくもないわけで、開発はどうなんだ?というのをこれから試していく。時間があるのか?
Spectreはリファクタもだいたい終わって、あとはbbox計算の精度を上げる改修だけ。いろいろ考えているけどもうひと考えしないといけない。土日に片がつくといいけど。
寝ます。
Spectreのリファクタをした。メインのロジック部分はほぼ完了したと思う。描画領域内のタイルを舐めるイテレータを実装し直したらコードがだいぶ簡潔になったしパフォーマンスも10%くらい改善したのでよかった。
大規模なリネームとリファクタをしていたらいつの間にか壊れてしまっていたので、怪しいコミットの巨大なdiffをChatGPT o1に投げたら的確にロジックの変更を指摘してくれた。やるじゃん。コードレビューとかももっとバシバシ補助させていきたいね(o1がAPIで使える環境はまだ限られている?ようだが)。
寝ます。明日は仕事の前に通院するので早起きしなくては。
雪の結晶シミュレイタもSpectreと同様にOGPつけたりシェーダを埋め込んだりした。OGPつけるとTwitterに書いたときに映えるから楽しいね。
余裕ができたらfour-foursもちゃんとチューニングしてWASM対応させて公開しようかな。Clineに訊いたらいろいろ改善の余地を指摘してくれたからまた触りたい。あれもずいぶん前に書いたものだし。ただ根本的にWASMではメモリが2GiBまでしか使えないから4桁は無理かも。
あとSpectreのリファクタも進めている。今日はほとんどリネームしてたら終わったが。行き当たりばったりにつけた名前だったから一貫した形に直しただけでもだいぶよくなったと思う。
DeepSeekがreasoningできるLLMを公開し、さらに蒸留したモデルがollamaで簡単に試せるらしいので触ってみた。14Bだとさすがにo1には遠く及ばない感じだったが、70Bだとけっこう賢くて驚いた。遅いのでローカルでは使い物にならないけれど。
ライフゲイムの定常状態における生存セル確率を計算させてみると、ちゃんと平均場近似をして自己無撞着方程式を書いてきて、さらにニュートン法で数値解を求めてきた(しかも合っていた)のでかなりびっくりした。人間だって紙とペンがあればできるのだから当然といえば当然なんだけど、LLMは計算がそんなに強くないイメージだったので驚いた。もっとも、方程式を解くのは必ず成功するわけではないらしく、他ので試すと二分探索でいいところまで行ってから迷走し始めてしまったり、まちまち。まあ、別にLLMに方程式を解いてもらいたいということはまったくない。そういうのはPythonにやらせればいい。
寝ます。