0603
はてなスターをSSRで使うのはやはりかなり困難だという結論に達した。初回読み込みだけはどうにか(それでも100%ではなくタイミングによってエラーになるが)実現できたが、ページ遷移で読み込み直すのが難しい。Claude Codeと一緒にあれこれ試していたけど、「2008年のSDKを現代のモダンWebで使うのは無理があるって」みたいなこと言われてしまった。そうなんか?そうなんかもな。一応問い合わせを投げてはみたものの、それで解決するような気もしない。
寝ます。
はてなスターをSSRで使うのはやはりかなり困難だという結論に達した。初回読み込みだけはどうにか(それでも100%ではなくタイミングによってエラーになるが)実現できたが、ページ遷移で読み込み直すのが難しい。Claude Codeと一緒にあれこれ試していたけど、「2008年のSDKを現代のモダンWebで使うのは無理があるって」みたいなこと言われてしまった。そうなんか?そうなんかもな。一応問い合わせを投げてはみたものの、それで解決するような気もしない。
寝ます。
なんかコードレビューしてたら終わった。あと業務でClaude Code使いたいのでAnthropic APIのキーを使うための稟議を出した。稟議ってやつの必要性は百歩譲って認めるにしても、もうちょっとやりやすくなっていてほしい。前職はもうちょっとマシだった気がするんだけど、使ってるシステムが悪いのか?
はてなスターへの対応で躓いている。これSSRとかにあまり向いてないんじゃないだろうか。うーん。そもそも令和七年にはてなスターをつけようとする人間があんまりいない気はするよな。
とりあえずClaude Codeにultrathinkさせてみるけど、無理なのかもな。いやどうにかなるでしょ。
6月3日は月村手毬さんの誕生日だったということで、なんかミニライブが公開されていた。なんか長いな(19分)と思ったら4曲全部歌っててびっくりした。なんか、一生懸命なのっていいですねと思った。応援しよう。
寝ます。なんか、なんでこんな遅くなった?(はてなスターが動かないから)
ずっとClaude Codeにコード書かせていた。勘違いしてたんだけど、この子デフォルトではOpusじゃなくてSonnetなのね。Sonnetでも十分賢いんだな。
テキスト分析をバックエンドとフロントエンドで分担するリファクタリングをしたり、依存関係のバージョンを上げたり、bunをやめてpnpmにしたりした。どうせ元からnodeで動いていたし、それならpnpmでいいのだ。
これで数式対応はできたから、あとははてなスターに対応するのと、レイアウトを整えたら、とりあえずリリースできるか。まだか。夏の間くらいには出したいが。そして秋冬はOS自作とかをやりたい。
寝ます。
Claude Codeを試しているが、これはかなり良い。良いので結構ダルいリファクタリングなどをバンバン任せている。
数式変換をフロントエンドに移した方がいいな?と思ってそうしたが、よく考えると数式モードやら段落構造の解析はバックエンドでやって、フロントエンドはそのツリーを受け取ってよしなにHTMLにすべきだなと思ったからClaudeにやらせている。これが責務の分離ってヤツよ。約物を検出してspanで囲むとかは純粋にUIの話なのでフロントエンドでやる。
AIに書かせると楽だから、ついでにプログラムコードのモードを追加しようとしている。だったら最初からMarkdownにしたらよかったか?でも、Markdownは構造的過ぎるのよな。ダラダラ日記を書くのとはまたちょっと違うじゃない?Scrapbox(現Cosense)の人?が、結局人間が書きたいのは箇条書きリスト以上のものではないみたいなこと言ってた気がするが、似たようなことなのかもしれない。
寝ます。こうして寝ようとしている間にもClaude Codeはリファクタリングを続けている。
引き続き数式変換を書いている。正確にはClineに書かせている。昨日のロジックはまだ不十分というか対応できないケースがあったので修正を要求したら、ちゃんと直った。Claude 4 Opus、確かにはっきりと賢い。これはさすがにジュニアエンジニア級ではある。
ところで、このロジックってよく考えるとフロントエンドの責務だよね(HTMLに変換するんだから)、と思ったのでTypeScriptに移植しようとしている。正確にはClineに移植させている。言えばテストも書いてくれるし、かなりいいね。こうなってくると待ち時間を有効活用したいという欲が出てくるものだけど、今のところは学マスをプレイしている。勉強とかしてしまうとくたびれてしまう気がする。
真賀田四季はやっぱり中国らへんのAIスタートアップに変な偽名で潜り込んでるのかなあ、とふと思ったのだが、よく考えると氏はもう還暦なのだった。というかすべFってもう30年前の作品か。僕が読んだのも20年くらい前ということになる。マジか。
寝るかな。
KaTeXのフォント差し替えはまあまあ難しいらしい。不可能ではなさそうだが、フォントのメトリクスをJSONに固める手順がよくわからない。わからなくもないけど面倒すぎる。
Webフォントはすでに持ってるし、MathJaxだってなんらかの形でメトリクスを持ってるはずなんだから、あとは変換できればいいのでは?とも思ったけれど、変換ルールはわからない。そもそも今のをどう作ったのか、10年以上前だと思うから全然思い出せない。
じゃあMathMLでレンダリングさせればもうすこし普通のWebフォントだけでいけるのでは?と思ったのだけど、各ブラウザのMathMLのレンダリング品質はお世辞にも満足できるものとは言えなかった。Firefoxが一番マシでこれはギリギリ許容できるか?という感じだが、ChromeとSafariは、う〜ん。
仕方ないから一旦フォントは普通のでいくと思う。CSSの微調整をする。
寝ます。
仕事は見積もりやってた。ちゃんとテンプレ作っておいて時短したい。
blogの数式表示に取り組んだ。あまり知られていないことだがこのblogには数式が書けるのだ!$e^{i\pi}+1=0$とか。
\[
\partial_\nu F^{\mu\nu}=\mu_0j^\mu
\]
とか。全然使ってないけどな。
今はMathJaxで実現しているのだけど、何年も前に無茶苦茶苦労して設定したカスタムフォント(↑の数式がサンセリフ体になってるところ)は最新のバージョンでは使えないらしいのと、たぶんSSRとあまり相性がよくない?のとがあるから別の方法を探すことにした。今試しているのはバックエンドでKaTeXを使ってMathML生成する方法で、これはとりあえず数式レンダリングはできそうだが、フォントをいい感じにできるかはこれから調べる。まあ、昔と違って便利な時代だし、サンセリフ体の数式フォントくらい見つかるでしょ。
寝ます。なんか調子が良くない。偏頭痛になって薬を飲んだときのような感覚が、薬を飲んでいないのにある。もしかしてこれは薬の副作用じゃなかったのか?
なんか眠かった。何してたっけ。負荷テストの結果をまとめたりしてた。あとレビューとか。会議とか。
眠いので寝ます。てかなんでこんな遅いんだ?何してた?
なんか朝から調子が悪かった。さすがに気圧か?
Codexは相変わらず使い方が難しい。賢いのは賢いのだろうが、毎度毎度環境構築が遅い(し、タイムアウトがある?)し、更問いすると新たな環境を作り始める?のが謎。しかも結局PRを出してくるから、動作確認するのに一度pullしないといけない。まあそれはテストをちゃんと書けばいいのかもしれないが。
一方でCline(Gemini)はわりと調子がいい。こっちは手許で動く代わりにあれこれ指示を出しながらになるけど、Codexに任せておくとイマイチなので、こっちのほうが筋よく見える。まあまだわからないし、エージェントもDevinだとまた違うのかも。
React Routerはやっぱり:yyyy-:mm形式のURLは扱えないらしいので、そこは妥協することにした。ただ、/:yyyy/:mmにするとID指定のURLと並べたときにREST的に気持ち悪いことになるから、/date/:yyyy/:mmみたいにするだろう。古いURLはリダイレクトする予定。
学園アイドルマスター、花海佑芽さんでNIA編を初クリアした。いやはや大変だった。
ロジックでやる気タイプの子らに共通することだけど、元気を溜めて溜めて最終盤で「元気な挨拶」2発撃ってフィニッシュ、みたいな勝ち方になる。アイドルってこういうやつだったか……?という気もするが、クソデカい挨拶で優勝をかっさらう花海佑芽さんを想像するとちょっとおかしい。
寝ます。
盆栽をしていた。バックエンドとフロントエンドを同じリポジトリに入れているので、npm scriptをタスクランナーとして使っていたのだけど、そうするとどれがフロントエンドだけで動かせてどれがバックエンドもないと動かせないのかとかよくわからなくなりがちだったので分離することにした。バックエンド側のタスクランナーはcargo-makeにした。justも触ってみたけどなんかイマイチだった。
Codexにコードを書かせてみたけれど、なんかやっぱり微妙というか、PRを出させるまでけっこう手取り足取り言わないとダメな感じがつらい。あと結局ネットワークアクセスがないから、初手の環境構築でミスるとやり直しになるし、タスクのたびに一からコンテナ作るのも時間掛かるし、Devinの体験と比べるとだいぶイマイチ。これ僕がよくわかってないだけなのか?
あとGemini 2.5 ProのAPIキーを発行してClineを試してみた。まだたいしたことはやっていないが確かにいい感じかも?Claudeも4が出たらしくてそれはそれで気になるけれど。
夜は餃子を焼いた。まあまあよかった。
寝ます。