0425
妻が遊びに行っていたこともありかなり一日中コードを書く時間に使った。とはいえ進捗はそこまで多くはない。昨日作ったDBモックシステムを使ったテストとか(これって結合テストだと思ってたけどレイヤーを跨がないし単体テストか?)、あとわりと落ち穂拾い的な実装もした。セッション機能とかも。かなり見た目のそれらしさは整ってきた気がする。次は投稿機能とかつけないといけないのだけども。先にログインかな。見映えにもまだまだ改良の余地があるし。
今夜はすこし本を読んで寝たいかな。
妻が遊びに行っていたこともありかなり一日中コードを書く時間に使った。とはいえ進捗はそこまで多くはない。昨日作ったDBモックシステムを使ったテストとか(これって結合テストだと思ってたけどレイヤーを跨がないし単体テストか?)、あとわりと落ち穂拾い的な実装もした。セッション機能とかも。かなり見た目のそれらしさは整ってきた気がする。次は投稿機能とかつけないといけないのだけども。先にログインかな。見映えにもまだまだ改良の余地があるし。
今夜はすこし本を読んで寝たいかな。
友人たちとバーベキューをした。百貨店の屋上にあるので買い出しが楽。適当に肉ばかり焼いて食べた。肉がどんどん出てくるのはやはりいいね。うん。
夜はRustの結合テストを書いていた。なんだっけ。昨日の時点では、DBエンジンに依存しないテーブル定義やクエリを書いて、テストはSQLiteでやれるようにすればいいかと思っていたんだけど、結論としてはそんなことはまったくできなかったので、あきらめて結合テストもPostgresでやることにした。テストケースごとに即席のDBを用意してマイグレイションを適用して、終わったら削除する、というのをRAIIでうまく書けたので満足しているが、これ実行パフォーマンス悪そう。あとスレッドプール毎回作って大丈夫なのかな。まあそういうのは問題になってから考えればいいんだ。
明日はテストケースを充実させたい。あとはまあ、落ち穂拾い的なタスクかな。デザインとか。
今日はずっと後回しにしていたタスクをやろうと思って、社内システムの整理に取り組んでいた。監査対応?の関係でオフィスにあるサーバー群を廃止していきたいのだけど、これらは実際何に使われてるのか調べないと止められないので調べよう、という趣旨。それでなんか社内にあるリバースプロキシのことを調べていたのだけど、どうも僕の理解しているリバースプロキシと違う動きをしていて、やれやれ僕はやはりネットワークのことはまだまだ素人なんだなと思っていたら、シンプルにnginxがずっと止まっていただけだった。なんだこれ。じゃあこのリバースプロキシは必要ないんだな。怪我の功名。
夜はRust書いてた。なんか初めてライフタイム指示子を意図して書いた気がする。だんだんとわかってきた感じがあってうれしい。
あとテストコードもいろいろ書いた。レイヤードアーキテクチャにするとそれぞれのレイヤでそれぞれのテストが書けてよい。もっと書き慣れていきたい。
ところで、DBがPostgresだからとカラムにタイムゾーンつきの時刻を使っていたのだけど、SQLiteにはタイムゾーンはないらしかったので、これテストしづらいじゃんと思っている。おそらくはタイムゾーンつきの時刻を使うのではなく、DBに格納するのはすべてUTCで表現した日時ということにして、タイムゾーン変換はより上のレイヤで行うべきなのだろう。というかRailsもそうしている気配があり、なんでかなと思っていたがきっとそういうことなんだろうな。この週末に大工事して、必要に応じてデータベースエンジンを切り換えられるようにしたい。本当にそんなことができるのかは謎だが。
明日は友人たちとバーベキューの予定。
仕事は今日もなんか調整とかしてた。いや違うな。面談とかだった。社長とかと面談をして、まあ結局所詮は会社の都合なのを現場にメリットだと思わせるのは無理でしょみたいな話をした。信頼関係ないよねとか。こういうのを話すことに何の意味があるのかわからないが、訊きたがっているらしいので話す。正直しんどい。
夜はRust書いてた。だいぶ機能が出揃ってきたのであとはデザインを詰めていく段階かな。今月中にはリリースできたらいいが、別に急ぐ必要もないしな。
そういえば、T: From<U>のときにVec<T>をFrom<Vec<U>>にしたいんだけど、なんかこれがうまく書けない。操作自体はinto_iterしてmapしてcollectするだけだから書けるはずなんだけど。うーん。まあいいや。
なんか妻が明日休暇だから一緒になって夜更かししてしまったけど、僕は明日も仕事です。まあ金曜日だし、ね。
なんか朝は調子が悪かったので遅くまで寝てた。単に昨夜お酒飲みすぎただけだと思う。そんな飲んでないけど。
仕事はなんかCIが壊れたのを直してたら終わった。AWS CDKで開発してたインフラ部分がいつの間にかnpm7を要求するようになっていて、そしてnode14のデフォルトはnpm6なのでだめだったらしい。デプロイ時以外はnode15のコンテナで動かしていたので発覚が遅れた。やれやれ。まあこの際だからとCI用コンテナイメージを見直したのはよかった。公式に公開されてるDocker in Docker用イメージはalpineベースなんだけど、正直alpineとかもう使いたくないのでdebianベースで自作した。なかなか難儀したが動いてよかった。
夜はRustとかCSS書いてた。Windowsでも綺麗に表示できることを期待して游ゴシックとか指定したけど、結局あまり綺麗ではない。というかWindowsのフォントレンダリングはいまもこんな感じなのか。仮想マシンのせい?
日記本体も開発を進めようと思ったんだけど、dieselはまだあまり複雑なクエリを書けるようにはなっていないようだった。具体的には自分自身に対するサブクエリが書けない?「指定したIDの記事の投稿日時より新しい最初の記事」みたいなクエリが書きたかったんだけど(これSELECT2回いるよね?)。まあそこは素直に2回クエリを出せばいいでしょう。所詮DAU一桁。
あと雰囲気で書いてたCSS Gridがやっぱりちゃんと動いてなさそうなので調べないと。難しいな。別にflexboxに戻すとかでもいい気もするけどね。
いろいろうまく行かなくて粘ってたら遅くなってしまった。眠い。そういえばリビングに座椅子ソファが届いた。いい感じ。
仕事の前にちょっとCSS書いてた。Webデザインとは名ばかりのCSS盆栽。タイポグラフィにもこだわりたいが、DAU一桁?の日記blogのためにWebフォントを購入するわけにはいかない。
仕事はなんか調整とその準備ばかりしていた。社内システムをいい感じに作ろうと思うと関係各所からのヒアリングが必要になるわけだけど、そこそこ実力をつけてきた末路がそういう調整役なのは嫌だなと思う。嫌だなと思うんだけど、僕以外に適任らしき人もおらず、結局は層の厚さの問題だよねと思う。やれやれ。
あと上司と面談とかもした。今後のキャリアプランの話とかしたかった(そう、そういうの考えないとだめな年頃です)んだけど雑談してたら終わった。まあお互い忙しくなってしまったし、雑談も貴重だ。偉くなっていくのは孤独なことだ。もちろん同僚は変わらず良くしてくれるけれど、それでも孤独で、そしてそれは同程度の偉さの人としか分かち合えないことのように思う。まあ知らんけど。
夜はお酒飲んで数学の本読んだりコード書いたりした。お酒を飲むと当然相対的にはバカになるんだけど、一方でお酒を飲んで勉強するのは楽しい。それはジレンマだけど、まあいいさ、僕はもう学生じゃないんだ、賢くなったり物知りになったりするために勉強してるんじゃないんだ。好きなことをやろう。
月曜日。腰の痛みは朝はまだ残っていたが午後には気にならなくなった。なんともないならいいのだが。
仕事はレビューと会議だけで終わった。まあゴリゴリ開発しないといけない時期ではないので調整に徹するのでよいのだろう。React hooksの気持ちが少しずつわかってきたというか、コントローラを可能な限りhookに封じ込めるという方針が具体的になってきた。良さそうだ。
夜はRust書いたりCSS書いたり。Rustはだいぶ慣れてきて、今は間違えれば間違えた分だけ理解が深まるフェイズにある。楽しい。ただバックエンドはもうほぼ完成しているような気はする。
フロントエンドはCSSでアニメイションを書いた。これ便利ですね。簡単なものならもうjQueryとか要らないや。
進化心理学って、なんかこうある種のインテリにウケそうな感じの「説明」を多く含んでいるけれど(典型的には男女差など)、あれが何かの科学なのか僕にはよくわからない。花火を見てるときに炎色反応の話をされるような感じ。「それは確かにそうなのかもしれんが、それで何がどうなるっていうんだ?」変な道徳思想と結託しなければいいのだがと思う。そもそも道徳は科学的知見とは本質的に無関係だ。(しかし、とはいえ、たとえば家畜が痛みらしきものを感じているという科学的知見を知る前と後とでは多くの人の道徳的直観は変化せざるを得ないだろう…… 水からの伝言を信じるのとそれとの間にはどのくらいの隔たりがあるだろうか?)
寝る前にすこしRustのスタイルガイドを読もうと思う。明日も会議が多い。
なんだか腰が痛い。どうしちゃったんだろう。腰が痛いと一挙手一投足に掛け声が必要になる。つらい。
午前中はコード書いてた。投稿記事を日ごとに集計しようと思ってSQLを書いていたのだが、なぜか18時間ずれる。おかしいなと思ったらタイムゾーンの指定方法が逆向きだった。ISO8601(というか普通はそうだと思うけど)では日本のタイムゾーンは+09:00だが、POSIX形式では西方向が正になっていて、だからGMT-9になるらしい。そこを勘違いしていたために18時間ずれていたわけだが、なんだこれ。難しすぎる。
午後は美術展に行った。なんかよくわからん感じの作品が多かった。たとえば物理の学会とかに行くとたいていの人は何にもわからない気持ちになるのだろうけど、じゃあこれらの作品群も彼らの中では何らかの良さが共有可能なんだろうか?個人的にはあまりイメージつかないけれど。
まあまあ充実した3連休だったと言えるが、休みが金曜日だったから来週は普通に5日ある。がんばろう。腰が痛いのはなんとかなってほしいが。
二日酔い気味つつ一日中コード書いてた。CSSとの闘いは結局負けた。つまり、レイアウトのためにDOM階層に手を入れることになった。まあいいや。floatで無理矢理やるのもそれはそれでキモいし。妥協。
あとはわりと指の運動みたいな作業。あ、dieselでちょっと複雑な集計をしたり。別に元々期待してないけどActiveRecordみたいな使い勝手は望めないし、SQLの関数の型をこちらで宣言するなどが必要だった。なんか既視感あるなと思ったら、これVB6からWin32 APIを呼ぶときの感じだわ。もちろんそれ以外でもいっぱいあるだろうけど。
かなり見た目はそれらしくなってきた。明日以降は細かいエフェクトとかやりたい。あとそろそろログイン機構を試していく。
休暇だったんだけど二日酔いで半分くらいは死んでた。死んでない時間はCSS書いてた。z-indexにまつわる仕様に苦しめられたけど最終的には回避できた。あとReactで動的にカレンダーを出すところとか。フロント側はけっこう形になってきたし、明日はまたバックエンドをやることになるだろう。あとテストね。テストを書かないと。
一日好き放題してたのにまだ休みが二日あるなんて夢のよう。