0430
大学病院に行ったり寝たりしていた。喉の調子は良くも悪くもならない。やれやれ。
error-stackでレイヤーを跨いだ時のコンテキスト変更がかなりボイラープレートという感じなんだけど、どうにかならないものか。ResultExtみたいなtraitとAdapterErrorみたいなtraitを書いてRestlt<_, Report<E: AdapterError>>に対して適当なメソッドを生やせばすこしマシになるか?
寝ます。
大学病院に行ったり寝たりしていた。喉の調子は良くも悪くもならない。やれやれ。
error-stackでレイヤーを跨いだ時のコンテキスト変更がかなりボイラープレートという感じなんだけど、どうにかならないものか。ResultExtみたいなtraitとAdapterErrorみたいなtraitを書いてRestlt<_, Report<E: AdapterError>>に対して適当なメソッドを生やせばすこしマシになるか?
寝ます。
仕事をした。たいした仕事はしていない。データインポートバッチの再実装はおおむね終わりつつある。データインポートの高速化によってより大きなデータに対応できるようになったが、その結果今度はエクスポートバッチが終わらなくなった。まあこれはもうすこしあとで直せばよい。
夜は昔の同僚たちと飲んだ。やっぱ自社事業のがいいな〜と思った。
寝ます。
なんか頭痛かった。SQLのパフォーマンス改善をしようとしたり、OpenTelemetry対応を改善しようとしたりしたが、あまり成果はなかった。
error-stackを使いやすくしようと試みるも、結局orphan ruleに阻まれている。Fromが実装できないとかはまあ最悪いいんだけど、axumのIntoResponseがReportに実装できないのは痛い。なんかサービス共通のハンドラーを書けばいいのか?axumもそれほど詳しく知ってるわけじゃないから調べた方がいい。
「君たちはどう生きるか」がテレビで放送されていたので観た。やっぱ全然よくわからないというか、局所的にはなんとなく意味がありそうに見えるけど全体として像を結ばないような感じ。まあでもそれはそれとしていろんなことが起こるのは楽しいし、けっこう好きな作品なんだよな。
寝ます。明日は夜に会社の飲み会。
なんとはなしに代数的トポロジーの復習をしている。ホモロジー群までは一応雰囲気だけ分かっているが、コホモロジーのことは勉強しなかったので、ChatGPTに教えを乞うている。o3は相変わらず説明が駆け足だが、待ってくれと言えば待ってくれる。ただ、加群の双対とか言い出すと抽象的で難しいな。ポテンシャルのアナロジーでコバウンダリ作用素の気持ちはちょっとわかったが、コホモロジー群が何を計算していることになっているのかはまだよくわかっていない。御利益も。
寝ます。
error-stack対応をようやく終わらせたが、結局thiserrorもanyhowも入った形になっており、本当にこれがやりたかったことか?と思っている。いや、トレースが見やすいのはとりあえず加点だけども。でもログがちゃんとエラー発生元のspanに紐づかないので、まだ何が追加でやる必要がありそう。
これはsnafuでよくない?という気持ちは正直あるが……。
引き続きChatGPTにコホモロジー群とコホモロジー環について教えてもらう。まあ正直あまりよくわからないが、一旦満足したので、今度は微分形式について教えてもらう。n-formの何たるかはわかったような気がするが、外微分は何なのかイマイチわからない。あとこの辺って記法がややこしすぎない?僕がよくわかってないだけか?
寝ます。
相変わらずエラーハンドリングで悩んでいる。結局、エラー発生箇所でログを取るのは書きづらいし忘れやすいが、エラーレスポンスを作るときにログを取るとSpanとの紐付けが失われてしまうジレンマは回避できない。ChatGPTに相談したらこれは両方でエラーログを取りつつ適宜UUIDなどで重複をフィルタできるようにするなどを提案されたが、それもそれで大変そうだなと思っている。うーん。なんか自分で作ったほうが良いのか?
微分形式についてすこし学んでいるが、結局手を動かしてないのでサッパリである。今年の後半はひさびさに数学に取り組むのもいいかもしれない。まあ微分形式をやりたい動機はどちらかというと物理学だけど。
寝ます。もう連休も終わり。(先週も2日休んでいるとはいえ)4連休しかなかったから、なんか全然ゴールデンウィークって感じではなかったな。
ハ〜 ニャオニャオ。
連休最終日。コード書いてたけどあまりうまくいかない。バックエンドのOtelのバージョン上げたらフロントエンドと連携されなくなっちゃってて、なんでかな〜と思ってガチャガチャやってた。Propagatorがないとダメらしかった。前は動いてたんだけどな。
あとは?DB絡みのテストを書く方法がないか調べていたけどSeaORMではsqlxのように簡単には書けなさそうだった。まあsqlx::testにデータベースだけ作らせてそこから自前でマイグレイションするとかはできるみたいだけど、そこまでするのもナという感じ。結合テストは書いてるしな。
今書いてるくらいの規模だとSeaORMなんかやめてsqlxに寄せるという判断も全然あり得るとは思うが、まああとで考えよう。
そしてViteのバージョン上げたら?フロントエンドも壊れてしまったので直さないといけない。フロントエンド開発ってのはこれだからな。
寝ます。思い掛けず夜更かししてしまったや。
連休明けなので「ハァ〜なんにも思い出せないワ〜」みたいなことを言うのが社会性なのだけども、マジで倦んでいるとそういうことを言う気にもなれないのだなと思った。言って馴れ合いたいという感情がない。
仕事はなんかレスポンスキャッシュをとるつもりだったんだけど、SpringBoot+Kotlinがあんまり相性よくなくて挫折。SpringBootのバージョンを上げればいけると思われるのだが、なんか謎のエラーが出て上げられない。謎なのは無論僕が悪いのだが、謎の依存関係が多いSpringBootにも非があると思う。あとGradleも意味不明で嫌だ。
夜はTypeScript、というかViteと格闘していた。結局Viteは悪くなくて、React RouterとOpenTelemetryの相性のせいだったことがわかり、ChatGPTに教えられた通りに設定変更したらとりあえず回避はできた。そのあとTailwindをv4に上げようとしてまた躓いている。
これら2つの事例を見て思うんだけども、「Rustを採用しない」理由の2つ目くらいに挙げられる「エコシステムの枯れ具合」なんてのは、実際はどうとでもなるんじゃないのか。確かにRustはあらゆるクレートがバージョン0で不安を誘うけれども、この2つよりはずっと正気でバージョンを上げられる。それは無論習熟度の差も大きいのだろうし、運用に入ってしまえばバージョンなんか上げなくていいのかもしれないが。
エンジニア人生、他人の書いた謎のコードや他人の導入した謎の技術のマイナスをゼロに持っていく仕事ばかりしているなと暗い気持ちになる。これは、結局仕事なんてそんなものであるのかもしれないし、なんらかの不運があるのかもしれないし、貧乏くじを引きやすい性格であるのかもしれない。俺だって俺の考えた最強の設計でなんか作りてえよ。結局やり遂げる経験無しには人は成長しないわけで、その意味で尻拭いに良いところなどない。多彩な尻拭い経験が活きる日もいずれあるのかもしれないが、それはたぶんまた別の尻だ。そんなキャリアは嫌だよな。
さすがに他責的過ぎる?そうかもな。そうならちゃんとそう言ってくれればいいのに。
寝ます。
ねむーい。
何してたっけ。デプロイとかか。最近はtimesとかにあまり書かないようにしているから一日の終わりに何してたか思い出しづらい。
夜は同僚などと飲んでた。何の話をしたかは忘れた。これって僕の記憶力が死んでるだけか?
寝ます。
早起きして負荷テストのリハーサルなどをする。まだ小規模だがとりあえず小規模なら問題なさそうとわかったのですこし安心した。課題もいくつか見えたし。来週はそこを直す。
夜はtailwindをv4に上げたりなんだりしていた。今更ながらE2Eテストが壊れている、というよりmswが有効になってなかったことに気づいたのだけど、有効にしようとするとビルドが通らなくなったりして困った。issueはあるんだけど誰も解決している様子がない。うーん……。
寝ます。