0111
引き続きエラーハンドリングに悩む。チャッピーの助言に従って4xxエラーを例外系として扱うのをやめ、リクエストハンドラに分岐を書くようにするが、これはこれで煩雑な感じがあって悩む。煩雑さは適当に関数に切り出せばいいのかもしれないが。そしてまあ、エラーページでもサイドバーを出そうと思うと結局そうなるか、変なところにDBアクセスが隠蔽されるかしかないのかもしれないが。
寝るよ。明日も休みでうれしいね。
引き続きエラーハンドリングに悩む。チャッピーの助言に従って4xxエラーを例外系として扱うのをやめ、リクエストハンドラに分岐を書くようにするが、これはこれで煩雑な感じがあって悩む。煩雑さは適当に関数に切り出せばいいのかもしれないが。そしてまあ、エラーページでもサイドバーを出そうと思うと結局そうなるか、変なところにDBアクセスが隠蔽されるかしかないのかもしれないが。
寝るよ。明日も休みでうれしいね。
年が明けてまだ10日ですか。ふうん。
リビングのサウンドバーの調子が悪くなってしまったので修理に持っていき、お昼を食べたりなんだりした。あまり眠れなかったのか眠かった。帰ってから昼寝をした。
blogのエラー表示でずっと悩んでいる。とりあえず共通のエラーハンドラを書いてはみたものの、しっくりこない。
4xxと5xxは別で考えるべきだなという気もする。わからないな。
寝ます。
頭が重い。閃輝暗点こそ出なかったが片頭痛なのだろう。やれやれ。
blogのエラーハンドリングは結局error-stackでいくという結論になった。エラーではなくReportが返るというのは違和感がなくもないが、別に一般に公開するライブラリでもないし、慣れの問題として割り切ることにした。それ以外の点ではかなり要件に合致するし。
とりあえずWeb側のエラーも定義して、エラーをミドルウェアで受ける実装をやっている。これでエラーページはかなり満足できる仕上がりになるのではないか。あとは何だろう。CSSと、atomフィードとかか。
寝ます。3連休!
調子が悪い。寒いからかな。
前職の新年会にオンラインでちょっとだけ顔を出した。当時はいろいろ思うこともあったけど、振り返ると総じて楽しいチームだったなと思う。現職はあまりそう思えるポイントが見つかっていない。
Rustのプログラムにおけるエラーの表現の仕方に悩む。thiserror、snafu、error-stack、どれも帯に短し襷に長しだ。しかしそもそもどういう姿であるべきなのかもうまくイメージできない。ChatGPTと議論しながら模索していくしかない。全部anyhowに倒すという思い切りもあり得る。
ファッションモデルが美男美女揃いなのは、そのほうが衣装自体に着目しやすいからで、余計な複雑さのないモデル化によって現象を理解しようとするという意味では、物理学で理想気体を扱ったり摩擦や空気抵抗を無視したりするのと同じなのだなと思った。
寝ます。やっと金曜日。
別に政治に対して大して怒る動機のないような人々が、真剣に怒らざるを得ない人たちの怒りを盗用してインプレッションを稼ぐ現象。
調子が良くない。また急に寒くなった気がする。
blogの実装は、今日はAIにやらせられそうなことをやらせるだけだった。手を動かすだけみたいな実装はだいぶ安心して任せられるなと思った。その分意思決定が残るのだけど。結局エラーハンドリングをどうするのが正解なのか、よくわからない。axumはもしかするとベストなWebサーバーではないのか?actix-webだとどうなるのか(すなわち、今どうしてるのか)見てみたほうがいいな。
寝ます。
眠かった。実装方針を考えたり、問い合わせに答えたりしていたら終わった気がする。CORS関連の設定は毎回よくわかんなくてAIに訊いたり本を読み返したりする。Originの定義からまず怪しい。
blogの実装はわりとリファクタに近いことをしていた。APIモジュールを削除したり、Web拍手機能を削除したりした。Web拍手関連の削除はCodexに任せたのだけど、1500行くらいのdiffを一発で決めてきたので、ああ賢いなあと思った。僕はその間イカのゲームをしていた。いいね。
ネットで話題だったからガストにもつ鍋を食べに行った。普通においしかったので良かったなあと思っていたが、帰り道にあった居酒屋でも同じくらいの値段だったので、フゥンと思った。
寝ます。そろそろ金曜日であってほしい。無理なら木曜日でもいい。
仕事始めだった。すべてを思い出していたら一日終わった。さすがにそんなことはない。コードの治安の悪さ〜という感じの不具合を発見した。
axumのルーティングはactix-webほど自由度がないらしく、ふーむと思っている。具体的には`/{year}-{month}`みたいに1階層に複数のパスパラメータを含むものが書けないらしい。まああんまりそういうことしないほうがいいのかな。今のURL構造、実はあまり一貫性がないし。`/2026`は2026番の投稿で`/2026-01`は2026年1月の投稿なの、本当はよくないよね。Remixでも無理だったから変えようとしていたんだけど。古いのは適宜リダイレクトして。
寝ます。
のろのろとコードを書いている。OGPのメタデータをフェッチする仕組みをRustに移植したが、その過程で、過去に書いたOGPタグが完全に謎の独自仕様に従っていたことを知った。具体的には、og:description:ja_JPで日本語のdescriptionを書けるかのように書いていたのだけど、そんな仕様は存在しないらしい。僕が無から生み出すことも考えづらいのでChatGPTに嘘を教えられたと考えるのが自然っぽいが、いやはや。でもロケールごとにdescriptionとかtitleを書けてほしいよね。いまからこれを標準化しませんか?
aboutページはとりあえず完成したので、あとは普通の年月表示とか検索とかをやる。UseCaseまでは書いてあるから呼び出すだけなんだけど、デザインをちゃんとするのが面倒。JSXでtailwindを書くときはいろいろエディタの支援が得られて良かったのだが、Maudだとそういう風にはいかないので、そこはうーんという感じ。
近くのスーパーが年末年始休業が明けて営業していたので買いものに行った。
寝ます。仕事したくないな。
のろのろとコードを書いている。投稿の編集・削除と、下書き自動保存を実装した。今日の実装はかなりの部分をCodexがやっている。
あとaboutページと実装している。新しいaboutページはOGPを表示するので、ちょっと複雑な実装がいる。まあとりあえずはnaïveに書いてあとで改善しましょう。
寝ます。正月休みも終わりつつある。
初詣をした。おみくじは小吉だった。ふーむ。
blogリプレースは、投稿とプレビューの実装をした。htmxは手軽だな〜と思っていたが、結局だんだんとJavaScriptをだらだら書く必要が出てきて、うーむと思っている。設計思想の問題かもしれないが。
いろいろ書いたJavaScriptを一つに束ねて、ついでにTypeScriptにして、esbuildでひとまとめにして、ということを次はやろうと思う。それができたら、次は下書き自動保存かな。このくらいまでできればかなり基本機能は出揃うので、リファクタに移れる。問題はCSSだけど。
寝ます。明日からはもうただの土日。