0118
Spectreの実装が結構進んだ。タイルの動的ロード/アンロードができるようになり、メモリ消費が400MiB程度でいくらでも広い領域を描画できるようになった。あとは動的拡張ができれば完成するはずで、それは前に簡単に作ってはいるので、それほど難しくなくできるはず。あとリファクタをたくさんする必要がある。かなり行き当たりばったりに作られている。ともあれ来週中には公開までいけるのではないか。
寝ます。
Spectreの実装が結構進んだ。タイルの動的ロード/アンロードができるようになり、メモリ消費が400MiB程度でいくらでも広い領域を描画できるようになった。あとは動的拡張ができれば完成するはずで、それは前に簡単に作ってはいるので、それほど難しくなくできるはず。あとリファクタをたくさんする必要がある。かなり行き当たりばったりに作られている。ともあれ来週中には公開までいけるのではないか。
寝ます。
NATゲートウェイやらEIPやらと戯れていた日。EIPって解放した直後だったら取り戻せるんだね。誤解放して肝を冷やしたが事無きを得た(Got Kotonaki)。
RDSを使いながらサーバーレスぶるのはかなり嫌だなという教訓が得られた。LambdaをVPCに入れる必要があって、しかしLambdaはpublic subnetに入れてもなぜかIPが割り振られないのでゴチャゴチャ裏技を使うかNATゲートウェイが必要になる。DynamoDBならこんなことは考えなくていいのだ。そんなこと言っても始まらないが。
Spectreはわりと具体的な実装を進めた。骨組み(スケルトンと呼ぶ)を必要に応じてタイルクラスターに戻すこと、逆に描画されなくなったタイルクラスターを等価なスケルトンに変えること、スケルトンを分割して表示領域に重なるサブスケルトンをタイルクラスターに戻すこと、などができればなんとかなるんじゃないかと思う。そのためにスケルトンの回転ロジックを書いているが、これはなかなかうまくいかない。土日にがんばる。
寝ます。
相変わらずバタバタしている。ずっとしているが。
Spectreの進捗はあまりなかった。隣接スケルトンを作る部分を書いたけど、これって本当に必要なのか?いや、クラスターから一つ大きなクラスターを作るときに周りをスケルトンで埋められると都合がいいか。そうだな、明日はそれを書こう。
最近眠れないときによく考える漫才のネタがそこそこまとまったので書き起こした。話し言葉を文字にするのは気恥ずかしさがある。内容的には素人の一作目としては悪くないのではないかと思うが、冗談だけで構成されていて普通の話がないのでそこは肉付けが必要だろう。ChatGPT o1に読ませたらボケの部分も完璧に解釈してきたので、やっぱ賢いなあと思った。
寝ます。まだ休みじゃないの〜?と思うけど、これでも3連休明けなんだよな。つら。
頭が痛かった。昨夜頭痛の薬飲んで寝たんだけどな。はー。
仕事はずっとバタバタしている。コードレビューもしてるし採用活動もしてる。こんなはずじゃないのになという気持ちはどうしてもあるけども、ここを経由しないとこの組織でその先には進めない(この組織である必要があるのか?という話はある)。まあ、耐える。
Spectreはようやくアイデアが出てきた気がする。アンカー座標だけを持った骨組みを普段は持っておいて必要なときにマジのタイルに置き換えればいい。それを具体的にどういう手順でやるかはこれからだが、座標の計算はアンカー座標だけからできるし、概算とはいえbboxもあるし、道具は揃った気がする。そろそろ完成させたいよね。次に行きたいから。
寝る。
一晩寝たら精神的恐慌状態は落ち着いたので仕事をした。なんか考えることが急に増えて忙しい。技術の話なのでまあ存在価値は発揮できてると思うけど、根本的にはどうでもいいなという気持ちも拭えない。
なんかこう、余裕のない中でなんとかやりきれました、よかったですねみたいな価値の出しかたには魅力を感じない。それも偉いことなのはわかるけど、つまらない。普通に偉大だと思えるものを作りたい。でも、実際に脳汁が出るのは切羽詰まった状況だったりもする。大規模開発というのはたいてい最後には妥協の塊に見えてまったく誇らしく思えないものだ。
Spectreの敷き詰めは難産。ツリーの拡大はよくやく実装できた(意外と面倒だった)けど、じゃあこれを具体的にどう繁らせていくの?というのがわからない。わからないのだけど、別に本当に完全な敷き詰めをやるのではなく、途中で嘘をついてしまえばいいんじゃないかという気がしてきた。要するに位置をこっそりすり替えてやれば、見かけ上は無限にスクロールできるのではないか。でも、それをやると本当に非周期的ではないかもしれないし、そもそも本当にそれで楽になるのかはまだよくわかっていない。いや、それでもやはり真正の敷き詰めをやろうとすると絶対にメモリ不足に陥るのでは?そんなことないか?難しすぎる……。
寝ます。
夕方くらいから精神の健康を急激に損ない、ずっとボンヤリしたり塞ぎ込んだりしていた。これはちょっとよくない徴候かもしれない……。こうなると年単位で失われる可能性がある。
寝ます。自動思考ばかりで疲れた。
なんか眠くてずっと寝ていた。肩も凝ってるしストレスかなあという気はする。
Spectreはタイルの枝刈りがどうしてもうまくいってなくて悩んでたのだけど、ようやく不具合を見つけて修正した。ここのロジックはなんか不必要にごちゃごちゃしているのでなんか考えたほうがいい気がする。明日。
あといい加減木の拡大を考えなくては……。
仕事のことは、ようやくすこし冷静になってきた気がする。まあそれでも、元に戻せることと戻せないこととはある。
寝る。3連休だったのは本当に不幸中の幸いだった。
Spectreの実装をしている。ツリーの拡大はまだ目処が立っていないが、大工事をしている。R*-Treeにもタイルを保存すると二度手間なので、普通にSpectreツリーを(領域で枝刈りしながら)トラバースするイテレータを実装することにした。今回の場合、Spectreツリー自体がある程度空間的な局所性に対応しているから、一般化されたアルゴリズムでそれ用の木を作らなくてもまあまあ機能するはずなのだ。
実装はあらかた終わって一応動いているけど、枝刈りの判定ロジックに誤りがありそうに見えるので調べている。それはまた明日。
趣味に没頭している間はいいけど、ふとしたときに仕事のことを思い出しては暗い気持ちになる。しんどいなあ。なんでこんなことになっちゃったかなあ。よく寝たほうがいいのだろうが……。
鬱々としていた。小難しいこと考えなくていいコーディングだけは少しやった。
上司と1 on 1で諸々話した。まあ、とにかくしんどくなっちゃってると視野が狭くなるから、しんどさを緩和しましょうということだった。それはそうだなと思う。耐えだって、少なくとももうしばらくは耐えるつもりではいたのだから。
Spectreの実装は今日は何も進まず。ただツリーを中途半端な形で持てるようにしようということだけ考えた。でも問題はそのあとどうやって木を育てるかなんだよね。ふーむ。
寝ます。3連休、ゆっくり寝て気持ちを楽にしたい。
同僚に嫌われており、まあ嫌ってるのは知ってるんだけどもう少し取り繕ってくれないと辛い。HRTみたいな標語は、あったらあったで空虚だなと思うが、あればこういうのはマシになるんだろうか?
別に僕が悪くないと思っているわけではない。普通に力不足なのはわかっている。気配りができないから新しい何かを呼び掛けることができないのだ。そういうことを求められないように環境を変えるべきなのかな。
SpectreはR*-treeのパフォーマンスを改善できた。envelopeの計算をメモ化するユーティリティを挟んだのと、タイル描画時の色の決定をシェーダー側に移した。後者は別にそれほど効いてないと思うが前者でとりあえず描画自体については満足できるパフォーマンスが得られている。やっぱりbounding boxの計算が遅かったんだな。
あとは動的にタイルを継ぎ足すアルゴリズムを実装すれば完成する。が、それもまた大工事になるだろう。特にパフォーマンスを重視するなら。まずどうやれば良いのかからわかっていない。
寝ます。ハー。気が塞ぐな。でも明日が終われば3連休だしな。