0123
だいぶ眠い。Devinを少し触った。開発タスクはまだ試していないが、受け答えはちゃんとしているし、コードも読めている。まあその程度なら昨今珍しくもないわけで、開発はどうなんだ?というのをこれから試していく。時間があるのか?
Spectreはリファクタもだいたい終わって、あとはbbox計算の精度を上げる改修だけ。いろいろ考えているけどもうひと考えしないといけない。土日に片がつくといいけど。
寝ます。
だいぶ眠い。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にやらせればいい。
寝ます。
いまいち調子の出ない日だった。主にコードレビューをした。あとCDK。あいつサブネット作ってからAZ減らそうとすると確定でコケるのか、もしかして。どうするか明日考える。最悪全部潰す。
SpectreのコードをGitHubに上げたり、WebページにOGPをつけたりした。あとはリファクタとbboxの改善だけ。bboxの改善はアイデアがあって、クラスターは再帰的に大きくなるけどだいたい相似形だから、その収束先(に似た形)を持たせておけばかなりいい評価ができると思う。そこまでやる気力があるかはわからないけど。
あとSpectreの実装で得られた知見で雪の結晶も改善したい。OGPをつけたり、シェーダを埋め込んだり。これはすぐできる。
寝ます。
https://spectre.necocen.info/
Spectreみるやつ、とりあえず公開しました。まだ直したいところはいろいろあるのだけれども。タイルの追加読み込み判定が結局あまりうまくできていなくて、ガシガシスクロールしてると結構未生成領域がチラッと見えたりする。なんかもっといい方法あれば直したい。あとたぶんカメラ位置が変わってないときはバッファの再生成はしなくていいはずなので、それも直したい。iPhoneのセーフエリアもフルで表示したい。あと出典をちゃんと画面上に出しておきたいからHTMLを書く必要もあると思う。UIが必要だとは今のところは思っていないが、スクロールした位置を表示したいと思うことがあるかもしれない。ないかもしれない。
あと数日リファクタをしたらこのプロジェクトは終わりでいいでしょう。楽しかったが、案外地味だなとも思った。もっといい見せかたがあるのかな?
次は何をしようか。blogの改修の再開もしないとだし、LLMで何かやる(仮)もやりたい。キーボードも作りたい。忙しい!
寝ます。今週は普通に5連勤かあ。
Spectreの実装が結構進んだ。タイルの動的ロード/アンロードができるようになり、メモリ消費が400MiB程度でいくらでも広い領域を描画できるようになった。あとは動的拡張ができれば完成するはずで、それは前に簡単に作ってはいるので、それほど難しくなくできるはず。あとリファクタをたくさんする必要がある。かなり行き当たりばったりに作られている。ともあれ来週中には公開までいけるのではないか。
寝ます。
NATゲートウェイやらEIPやらと戯れていた日。EIPって解放した直後だったら取り戻せるんだね。誤解放して肝を冷やしたが事無きを得た(Got Kotonaki)。
RDSを使いながらサーバーレスぶるのはかなり嫌だなという教訓が得られた。LambdaをVPCに入れる必要があって、しかしLambdaはpublic subnetに入れてもなぜかIPが割り振られないのでゴチャゴチャ裏技を使うかNATゲートウェイが必要になる。DynamoDBならこんなことは考えなくていいのだ。そんなこと言っても始まらないが。
Spectreはわりと具体的な実装を進めた。骨組み(スケルトンと呼ぶ)を必要に応じてタイルクラスターに戻すこと、逆に描画されなくなったタイルクラスターを等価なスケルトンに変えること、スケルトンを分割して表示領域に重なるサブスケルトンをタイルクラスターに戻すこと、などができればなんとかなるんじゃないかと思う。そのためにスケルトンの回転ロジックを書いているが、これはなかなかうまくいかない。土日にがんばる。
寝ます。
相変わらずバタバタしている。ずっとしているが。
Spectreの進捗はあまりなかった。隣接スケルトンを作る部分を書いたけど、これって本当に必要なのか?いや、クラスターから一つ大きなクラスターを作るときに周りをスケルトンで埋められると都合がいいか。そうだな、明日はそれを書こう。
最近眠れないときによく考える漫才のネタがそこそこまとまったので書き起こした。話し言葉を文字にするのは気恥ずかしさがある。内容的には素人の一作目としては悪くないのではないかと思うが、冗談だけで構成されていて普通の話がないのでそこは肉付けが必要だろう。ChatGPT o1に読ませたらボケの部分も完璧に解釈してきたので、やっぱ賢いなあと思った。
寝ます。まだ休みじゃないの〜?と思うけど、これでも3連休明けなんだよな。つら。
頭が痛かった。昨夜頭痛の薬飲んで寝たんだけどな。はー。
仕事はずっとバタバタしている。コードレビューもしてるし採用活動もしてる。こんなはずじゃないのになという気持ちはどうしてもあるけども、ここを経由しないとこの組織でその先には進めない(この組織である必要があるのか?という話はある)。まあ、耐える。
Spectreはようやくアイデアが出てきた気がする。アンカー座標だけを持った骨組みを普段は持っておいて必要なときにマジのタイルに置き換えればいい。それを具体的にどういう手順でやるかはこれからだが、座標の計算はアンカー座標だけからできるし、概算とはいえbboxもあるし、道具は揃った気がする。そろそろ完成させたいよね。次に行きたいから。
寝る。
一晩寝たら精神的恐慌状態は落ち着いたので仕事をした。なんか考えることが急に増えて忙しい。技術の話なのでまあ存在価値は発揮できてると思うけど、根本的にはどうでもいいなという気持ちも拭えない。
なんかこう、余裕のない中でなんとかやりきれました、よかったですねみたいな価値の出しかたには魅力を感じない。それも偉いことなのはわかるけど、つまらない。普通に偉大だと思えるものを作りたい。でも、実際に脳汁が出るのは切羽詰まった状況だったりもする。大規模開発というのはたいてい最後には妥協の塊に見えてまったく誇らしく思えないものだ。
Spectreの敷き詰めは難産。ツリーの拡大はよくやく実装できた(意外と面倒だった)けど、じゃあこれを具体的にどう繁らせていくの?というのがわからない。わからないのだけど、別に本当に完全な敷き詰めをやるのではなく、途中で嘘をついてしまえばいいんじゃないかという気がしてきた。要するに位置をこっそりすり替えてやれば、見かけ上は無限にスクロールできるのではないか。でも、それをやると本当に非周期的ではないかもしれないし、そもそも本当にそれで楽になるのかはまだよくわかっていない。いや、それでもやはり真正の敷き詰めをやろうとすると絶対にメモリ不足に陥るのでは?そんなことないか?難しすぎる……。
寝ます。