0206
グエー ニャンという感じの月曜日。なんかバタバタしてたら終わった気がする。いつもそう言っているが、具体的にどうバタバタしているのかは正直よく覚えていない。あまり良くない状態だ。
元気ないので本読んで寝ます。そういえばTwitter2は投稿を保存するテーブルの設計を考えている。これ受信者ごとに別々に投稿を保存した方がいいんだろうか。多分そうな気がするな。Mastodonがどうしてるのかもチラ見しておこう。
グエー ニャンという感じの月曜日。なんかバタバタしてたら終わった気がする。いつもそう言っているが、具体的にどうバタバタしているのかは正直よく覚えていない。あまり良くない状態だ。
元気ないので本読んで寝ます。そういえばTwitter2は投稿を保存するテーブルの設計を考えている。これ受信者ごとに別々に投稿を保存した方がいいんだろうか。多分そうな気がするな。Mastodonがどうしてるのかもチラ見しておこう。
昼ごろに起き、少しコードを書いた。フォローの取り消しをできるようになった。Noteの受信のためにMastodonのドキュメントを読んだり実験したりもした。Timelineをどう実装するかはまだ思いついていない。テストもそろそろ書かなくてはなるまい。書けるところから。
しばらく実装してみて、やはりどうにも設計ががたぴししているなと感じるが、一旦はこのまま進める。全体として大きく間違ってはいないと思うが、概念の整理が不十分だ。
あとギターの練習もした。C→E→A→D→Gとその逆順をずっと練習している。いくらか滑らかに移動できるようになった気がするが、アドリブが利くようなレベルにはほど遠い。しかしまあ、こういうのはとにかく素振りが大事なのだと僕はもう知っている。因数分解が嫌すぎて落ちこぼれかけたあの頃とは違う。
少しだけ本を読んで寝ます。
なんだか元気がなく、ギターの練習はすこししたがコードは書けなかった。
同性婚については、それを望む人の気持ちも、それが社会の雰囲気を大きく変えるものだと危惧する人の気持ちも共感できる部分があり、どちらかといえば賛成する気分でいる。でも、その変化を当然推し進めるべきものと見做すのであれば、その他の婚姻のあり方についてもかなりパラレルな議論ができると思うし、そこまで踏み込まないのであれば結局「社会の雰囲気を大きく変える」のが嫌だという理由でしかないのではないかと思っている。それは当然そういうものでいいと思うけれど、だったら、同じように社会の大きな変化を危惧している、ただその境界の位置がちょっと古くさく見えるだけの人たちを、あんまり原始人みたいに馬鹿にするのはどうかなと思うし、相容れないなと思う。「選択肢が増えるだけ」論はそもそも嘘だと思う。
「価値観のアップデート」をことさらに強調する人には2パターンあって、そもそもアップデート後に生まれてきてただアップデート前の老人をバカにしたいケースと、うまくアップデートできた同士で仲間意識を共有したいケースとがある。どちらもあまり上品ではないと思う。
会社で社内勉強会の司会と発表をした。タイムキーパーをやるために簡易的な配信環境を整えたのだけどけっこう手こずってしまった。まあそこそこうまく機能したのでよかった。
発表は比較的時間通りに終わった。準備する時間があまり取れなかったので資料を端折ったのが怪我の功名的に作用したのだろう。
前回に引き続き今回もけっこう盛り上がったので司会としては嬉しい。しかしそろそろ次回は誰かにバトンタッチしたい気もする。別に固定化する必要はないし。
夜はActivityPubの実装を少しした。Followを受け取ってからAcceptを非同期で返すところを書いた。こういう処理はここだけだと思うので特にクレートとか入れずに自前で書こうと思ったが、書いてみるとなんかいまいち綺麗にならないので、act_zeroでも入れようかなと思っている。非同期実行ランタイムの種別がアプリケイションロジックに顔を出すのは良くない。
寝ます。
オニオニ。
ひさびさに会議のない日だったのだけど、そういう日に限って謎のトラブル調査が舞い込んできたりして時間はあまり取れない。もうじき停止する予定のシステムのくせに、最後まで俺を熱くさせやがる。
とはいえ勉強会の資料作成は進んだ。InputMethodKitの詳細を話すのは時間的に厳しそうだし、そこは割愛してちょうどいいくらいだろう。
Twitterが今度はAPIを有料化するらしい。まあ金に困っているのが事実なら当然だろう。でもAPIを有料化するならサードパーティークライアントを止める必要はなかったのではないかと思う。別の意図があるのか、単に行き当たりばったりなのか。
それにしても、サードパーティークライアント停止は事後報告だったのに、今度は7日も前に告知するなんて、大した成長だ(皮肉)。まあ、サードパーティークライアントのユーザーはもう客ではないが、APIに金を出してくれるユーザーはこれからも客なのだから、客に対して当然の礼儀という考えかたはある。
観測範囲でもにわかに移住が囁かれているが、どうも決め手に欠いている感じがある。というか、Twitterの多様な使われかたを改めて問い直したとき、各々が思い描く理想の移住先は自ずと異なってくるのだろう。
開発中のTwitter2はMastodon互換のActivityPubサーバーになる予定だったが、これもどうなるかわからないなと思った。他にnostrというプロトコルがあるらしいが、こういうのは結局人がいるかどうかの問題だから、悩ましいなと思う。
寝ます。
あいかわらず眠い。眠いならさっさと寝ればよいのだが、そういう風にはできていない。
日本語変換の実装はまあまあ進捗があった。変換候補選択機能をmac側に追加して上下キーで選択できるようにした。また、IMKit標準の変換候補ウィンドウを利用するようにしてみたが、これはあまりうまくいっていない。こちらの実装が悪いというよりはIMKitの実装が悪く、こちらの都合で選択肢を変更できないので、候補の選択を完全に変換候補ウィンドウに任せるか、頑張って同期をとるしかない。頑張って同期をとる方針で進めて、そこそこは動いているのだが、微妙にうまくいかない部分があり、まあ仕方ないかと諦めている。どうせ実用することはない。週末の勉強会でそれっぽい動きを見せられればそれでいいのだ。
寝る。明日はおよそ二ヶ月ぶりにチームのデイリーミーティング以外に何も会議が入っていない。勉強会資料を仕上げねばなるまい。
今年ももう一月が終わってしまう。毎年この時期になると、こんな調子で一年あっという間に終わってしまいそうな気がするが、しかし結局はそこまで短くもない。などと言っているうちにあっという間に五年くらい経ってしまうし、会社員生活も十年目に入っている。
久々に日本語入力のコードを触った。金曜日に勉強会で話すために完成度を高めておきたいのだ。変換候補の順序づけが地味に課題だったので停滞していたのだけど、改めて考えるとそんなに難しくない気がして実装を再開した。ほんとにそうなのか?まあ、もうあまりモチベイションもないしざっくりそれらしく動けばいいか。
昔からいわゆる感想というものをあまり持たない性格で、読書感想文にいつも苦労していたのだけど、今ならそれなりの感想文は書けるような気がする。でもそれは感想文の型を自分なりに確立できた(それこそ十数年の日記blogの積み重ねなどによって!)というだけで、感想それ自体のことはよくわからないままだ。いや、違うな。この部分はこうであるべきだった、というような感想、単に面白かった、という感想、つまらなかった、という感想、そうであるべきものがそのようにあった、という感想、そういったものは思いつくけれど、もっと、作品に接して出てくるプリミティヴな感情の動き、情景への感動、そういったものが今でもよくわからないのだ。そういうゲームは昔よりは上手くなったと思う。でもそこに感情はないのかもしれない。
最近夜更かし癖がついていて良くない。別に最近とかではないかもしれない。
リファクタを繰り返している。リモートアカウントとローカルアカウントの判別ロジックをドメインに持たせると辛みが生じるので外側に移している。一番外側までは連れて来られたので、あとはよしなに共通化する。アプリケイションの設定に依存する部分なので何らかのインジェクションが必要になると思われるが、そこのところをエレガントに書く方法はまだ思いついていない。
寝るぞ。
Twitter2をリファクタ、というか再構築して、クレートを分割してワークスペースにした。これでだいぶDDDというかClean Architectureっぽくなる。なると何が嬉しいというわけでもない。別にすべてをClean Architecture(あるいはその他のごついアーキテクチャ)で作るべきだと思っているわけではないが、趣味開発の時くらいこういう素振りをやっておかないと、いざという時のための筋力がつかない。
これでいよいよ本格的な実装に入れるかと思ったが、ドメイン層の設計にまだ悩んでいる。(少なくとも一部の)ドメインエンティティはCloneを実装すべきではないのではないか?ムーブセマンティクスと併用すれば変なロジックを防げるとと思われるが、好き勝手にcloneできたらそれが迂回できてしまう気がする。うーむ。その路線がどのくらいうまくいくのか試してみるか。こんなことしているから全然完成しないのだ。
寝る。
昼に起き、ボンヤリとコードを書いた。DDDライクにコードを書くのも三回目くらいなので、以前よりいい感じにできている気がする。具体的には、ドメインモデルにロジックを寄せるということができているような気がするが、まあそれが本当に優れた実装なのかはまた別の問題だ。
大規模なリファクタを経て、こちらからMastodon上のアカウントをフォローできるようになった。嬉しい。しかし向こうからこちらをフォローしたときの挙動は不完全であるようだ。どうもMastodonはフォローリクエストに対して(そうできる場合でも)即座にAcceptレスポンスを返すのではなく、後からinboxにAcceptを投げるようになっているらしく、こちらもそれに合わせる必要がありそう。それってつまりバックグラウンドジョブを動かす必要があるということだけど、まあそれは以前何かでやったことあるからそれで大丈夫であろう。たぶん。
寝ます。