andante

0211

休日だったのでのんびり過ごしつつRustの勉強をする自転車本の最後の章はC FFIが題材で生ポインタとRustの参照を行ったり来たりする技法などをやった所有権をCに譲ったり奪い返したりすることができるが明示的にunsafeとマークされた操作なので所有権を二度奪うことなどができコンパイルは通るが実行時に二重解放でクラッシュするなるほどスコープと所有権でメモリ管理が行われているなあと思う
このあたりはどうしてもどっちにリソースを管理させるかで混乱が生じやすい部分であるらしく本にもときにはRustのリソース管理を呪う事さえあるでしょう博愛の気持ちを持って臨みましょうなどと書いてある著者はどんな地獄を見たらこんなことを入門書に書こうと思えるんだまあ覚悟はしておこう
今日読み終われればよかったのだけどあと数ページでタイムアップOnigmoをRustから呼び出すところでnaïveなFFI呼び出しは動いたけどこれをもうちょっとRust的にラップするのが残っているしかしこの本は本当に実践的な題材が多くて助かるしかし長いこと新しいプログラミング言語に本気で入門したことないから知らないだけで案外こういう本が普通なのかもしれない


小説を書くことにしたまあ書きたいなとはずっと思っていたけれど僕は小説を書くことができない嘘の日記みたいなのしかできない嘘の日記みたいっていうのはまずどうしても頭の中にいる人格が僕しかいないから何を書いても僕になってしまうし僕なりにキャラクタの使い分けはあるがそれだって結局全部嘘の僕文章を構成する方法を日記かREADME.mdしか知らないということだまあ前者はどうしようもないし諦めもつくが後者は純粋に技法の問題だと思うのでまずはこれを学ぶことをしようと思うそうすればエンタメ的に正気のリーダビリティのある長文が書ける可能性がある
なんでそんなことをしようと思ったのかというのは僕もよくわからないがとにかくずっと書きたかっただって日記をこうして10年以上書いていることから明らかなように考えていることはたくさんあるしそれをお話の形できちんとパッケージしたらもっと僕が手に取って眺めて見やすくなるだろうと思うからだでも僕にはその技法がないというのがずっと気懸かりなことだったのだけどないなら学べばいいと思ったので学ぶことにした僕はまだ31歳でたとえ何かを学ぶのに5年掛かったとしてもそれはただ5年後に何かを学んだ36歳の僕がいるというだけのことでそれってけっこう悪くないことじゃんそういうことを素直に思うようになったからだから一つでも実行しようと思ったわけだまあRustを勉強し始めたのもそういうのの一つと言えなくもないしRustは5年と言わず3年後くらいには本業になっている可能性がないわけではないけれども


さて一日しかない休みというのも変な感じだけどももう寝ますそして明日が終わればまた土日でも普通に忙しいので土日なんてこなければいいのにともちょっと思うそんなことはまったくないのにね

0210

昨晩はなんかはしゃいでお酒飲みすぎたので今朝は少し遅くまで寝てました

仕事はいろいろガーッと片付けるつもりだったんだけど結局いろんな準備に追われて終わる僕がやらないとだめかなあと思う場合もあるけれど僕がやらなくて最善でない選択がされた場合僕は我慢ならないだろうから仕方がないのかもしれないそういうのをそろそろ許容できるようにならないといけないのはわかるけどそれでは十分なパフォーマンスが出ない場合はどうすればいいのかその信念を捨てるのが最初にすべきことかふうむ

夜はまたRust勉強した自転車本11章までいやはや非同期I/Oをasync/awaitに書き直しつつ自作するのは本当に辛かったけど通り過ぎてみればいい練習だったなただまだ他にも現在ではベストプラクティスとはいえないことをしてしまっている気がするのでその辺はもう一冊買って勉強したい明日は最終章をやって終わるつもり
こんなに勉強するのは久々だまあたまにはそういうのやっておかないとなやっておけばいつまでもできるとは限らないがやらないときっとすぐに衰えてしまうだろう


さて明日は休みしかし今月は仕事が忙しいからこんなところに祝日があっても邪魔に思えるタイムマシンで建国記念日を三月にずらすかまあタイムマシンがあるならこんなに忙しくはなかったような気もしますが

0209

最近は森元首相どうでもいいですが首相と総理ってなんか使い分けあるんすかねのせいで男女差別について考えることが多いけれどまあ氏の認識が時代遅れなのはそうだとしてだからってこれを国際問題にするのは完全に難癖だろうとも思っている実際国内からもものすごく批判されているしじゃあ今になってそんなに批判するのにこないだまでは全員忖度してたってことなんですかという気がする人間の価値観のアップデートがWindows Updateよりも遅いのはどうしようもないのだから静かにご退場いただくのを待つのも礼儀の一つではないだろうかと個人的には思うもちろんこんなことは僕が男性だから言えることでありまあ男性は男女差別に口を出すべきではなく高学歴は学歴差別に口を出すべきではなく既婚者は非モテに口を出すべきではない

ところで関連して考えたこととしてたとえば夜型人間差別はやがて撤廃されるのだろうか公の場で場合によってはプライヴェトでも朝十時の打ち合わせに起きれない人間に重要な仕事は任せられないと発言することはいつか非難されるようになるのだろうかされたらいいと個人的には思うけれどそれによって払う犠牲は少なくはないだろうとも思うしかしマイノリティAよりもマイノリティBのほうを大切にする必要があるみたいな判断を始めるとそれは地獄への道ではないだろうかという直観もあるじゃあどうすればいいんですかもし世界に十分な豊かさがあるのであればソフトウェア的なたとえで言えば分厚い抽象化の層をしかし透過的に挟むことで各人が各人のやり方で独立に世界と関われるようにするというのが理想だと思うけどイーガンが四半世紀前に書いてそうだよね僕の世代ではそこまでたどり着けそうにないじゃあどうすればいいんですか

マジョリティとマイノリティについて語る人の口調は時として世の中にはマジョリティマイノリティしかいないと考えているように思えることがあるあるいは勝っていた方負けていた方世界が単にそういう二分法なのであれば今やっているような闘い方でやがては均衡状態に持ち込めるかもしれないでも世界はおそらくそうではない過去に人類がやってきたような闘い方を続ける限りその二分法にノり切れなかった人々が泣きを見てそしてもう一度同じ構図を繰り返すだけだろうとも思うじゃあどうすればいいんですか


仕事は今日も忙しかったフロントエンド書いたりバッチジョブを作ったりしたどっちもTypeScriptだからTypeScriptしか書いていなかったとも言える一つの言語でいろいろなことができるというのはおもしろい時代だそういうのかつてはあまりなかったように思う別にLISPでAWSリソースを操作してもいいわけでしょ僕がプログラミングを始めた頃には全然そんな発想はなかったように思う
Reactでどう書けばいいのか自分なりの回答は見つかってきたように思うiOSアプリ出身だからあ結局Controllerとなるコンポーネントをいくつか用意してロジックはそこに集約するのがいいような気がしてしまうんだけど一方でhooksの世界観はそうじゃないような気もするこいつは極端な話どんな末端のViewであってもAPIを呼んでもいいと思ってるんじゃないだろうかそういう時代の設計論みたいなものは僕はまだ見たこともないし理解もしていない勉強したいような気もするがべつにWebフロントエンジニアに転進すると決めたわけでもないしなただまあ僕もいつまでもiOSアプリ一本で生きていけるわけじゃないことはまあわかっている


明日もまあまあ忙しいだろうでも今日けっこうがんばったし明日はいろいろ整理するだけで終わってもよさそう明後日は休みだしねはあ建国を一日ずらしておいてくれればよかったのに

0208

月曜日は眠く眠いながらに仕事をしたなにしたかは忘れたフロントエンド書いたりインフラやったりCDKおじさん業も板についてきたがそろそろ監視のノウハウを学んでいきたいところだ

採用のための求人票を考えるためのヒアリングを頼まれたので少し話した僕はこの会社をそこそこ気に入っているけれど余所を知らないだけである可能性は十分にあるしかしそれではアピールできないのだよな難しい

夜はRustを勉強した一週間前からコンパイルが通らなかったり通ってもまともに動かなかったりしたコードがついに動作したので感激している長さにしてみれば高々50行程度なんだけどとにかく非同期クロージャの所有権をつじつま合わせするのが大変だったしかしコンパイル通る前はなんでこんなに怒られてるんだろうパワハラかくらいに思っていたのに通ってみるとそりゃあれじゃ通らんわなという感じになるこれは成長なのだろうかなんにせよコンパイルが通るだけでこんなに嬉しくなるのは20年ぶりくらいだI'm on the top of the world lookin' down on built binary.読んでる本はあと少しで終わりだからそしたらもう少し実用的なコードに移る


最近心労が絶えないなゆっくり休もうあと忙しくて買いものとかに行けてない忙しいから仕方ないのは理解しているがあまりよくない兆候にも思える

0207

日曜日Rust書いてたStreamとFutureと所有権について少しはわかってきたがまだレバガチャプレイをやっている部分もあるしかしまあレバガチャプレイでやっててもコンパイルが通る限りは安全に動くことをある程度保証するのがこの言語の強みだゆっくり直感に馴染ませていこう

それはそれとして幾分洗練された記法が使えるようになってきた気がするawaitとかOption/Resultの?記法とか型強制とかただerr_intoするとrust-analyzerがそこで型の推論を止めてしまう気配があってこれは僕の使いかたが悪いせいなのかよくわからない調べてもあまり情報がないあとStreamのfilterは同期のクロージャをとることはできないのだろうかtokio-streamだとできるんだけどfuturesのだと非同期しかとれないでもtokio-streamだとTryStreamが定義されてなくて不便なんだよねふーむ

非同期I/Oまで進めたかったんだけど時間とテンションが足りなかったのでできずHTTPのマルチパートのこととかよくわからないし明日時間取りたいけど仕事忙しそうだなあ

あとガトーショコラもう一度作ったハンドブレンダーを使うとメレンゲが何の苦労もなくできたので笑った昔の人は何でこんなもの食べようと思ったんでしょうねそれとも案外新しい料理なのか


寝ます

0206

昼前くらいに起きてtokioのチュートリアルを読んでいた思いのほかコアに近い話題も扱われておりどんな感じに非同期処理が表現されているかもわかった結局標準のfutureのStreamを使うべきなのかtokio-streamを使うべきなのかはよくわからないのだけどおそらく将来的には標準になるがまだ入っていない機能がtokio-streamにあるのかなそういうわけでtokioを使っていこうと思う昨日のえげつない型はawaitの駆使でかなり読みやすくなってきたあと少しだと思う

ところで夜は馬刺しを食べたお昼が遅かったわりに夕飯は早かったのでベストコンディションとはいえなかったがまあおいしかったのでよしとしよう


明日も非同期処理と格闘するあとガトーショコラをまた作るつもりハンドブレンダーがあるからメレンゲもへっちゃら

0205

有給休暇だったし昨晩は五時くらいまで夜更かししていたので昼頃まで寝た起きてからはRustを勉強したVSCodeの拡張機能でRustの型推論の結果がエディタ上に表示されるけどFutureをチェインしまくった結果はAndThen<Then<Fitler<ErrInto<Multipart, ...>, impl Future>, || -> impl Future>, impl Future, || -> impl Future>, impl Future...みたいなえげつない型になってしまって何のことだか全然わからんとぼやいていたら普通にtokioのチュートリアルを薦められたので読んでいるなんか昨夜の僕は寝惚けてたんだけど普通にasync/awaitがある言語なんだからこういうのはawaitしておけば透過的に書けるんだったtokioのチュートリアルも普通に勉強になってよいいま読んでいる本はちょっと前の本でまだasync/awaitの仕様が今のような形に定まっておらず従って網羅的な解説もなかったのでそれを補う役に立ちそう結局Rustの非同期処理ライブラリはどれが2021年のデファクトスタンダードなのかよくわかってないけれど……まあtokioは名前をよく聞く気がするしこれを薦めてくれた人も仕事でRust書いてる人みたいだからとりあえずこれを読んで間違いはないでしょう

夕飯はパクチージェノベーゼを作ったこないだ買ったハンドブレンダーが届いたのでそれを使ってみたかったという趣旨なんだけどなんか固定観念に囚われた結果フードプロセッサー機能で作ってしまった普通にブレンダーでやればよかったのにそのせいか完全なペースト状にはならなくてふーむと思っていたけれどフードプロセッサーは元来そういうものではない
それはそれとしてパクチージェノベーゼはそれほど気に入る出来ではなかった別にまずくはないしパクチーの味がするけれどこうだからって別に全体的にパクチーの味がするパスタが食べたかったわけじゃなかった気がするなと思ったネットで出てきたレシピを雑に総合して勘で作ったのもよくなかったのかも勘で料理をするとろくなことがないというのが経験の教えるところである


母校の中学入試の算数の問題がシェアされてきて解いたらおもしろかった10分くらい掛かったと思うけどアイデアに気づけば計算は簡単だったそれでも電卓を使った怠惰な僕20年前と形式が変わっていなければあれに掛けられる時間はせいぜい5分というところだブランクがなければ……とも一瞬思ったがたぶん僕は当時もそんな短時間では解けなかったんじゃないかと思う算数は最後まで不安要素だった

こんな問題ばかり解いて僕は本当によかったんだろうかと思うことがあるこの問題も具体的な情報はあまり示されていないのでさあ不変量に着目しなさいと言わんばかりだけどだからって簡単ではないが結局この手の問題への対応はそういう出題者の意図を最短で直観する訓練でしかないのではないか少なくとも僕はこの時期の訓練のためにあらゆる問題を意図がわかれば解けるように作られた問題であるという色眼鏡で見ることになってしまったあと3分で方針が立たない問題は考えなくなってしまったのではないかと思っているそれは意図がわかれば解けるように作られた問題を解くのには役に立つが残念ながら暮らしの多くの場面には意図などないし簡単な解決もないキッチンを整頓するのに最適な補助線の引き方などない

まあそれでも長い時間が経ったわけだし僕も簡単じゃない問題をどうにかこうにか乗りきっていく方法をすこしは覚えたと思うだから結局べつに有害だったと言いたいわけじゃないんだけどすこし反省があるなというような


明日は外で夕食馬肉を食う楽しみだ今夜はもうそろそろ寝たほうがいいかな眠いし

0204

なんか会議ばかりしていた日だった午前中は多少コードを書けたけど午後はもうほぼ会議もろもろ調整役をやっているがさすがにきついものがある
僕はどうも疲れてくると話すべきことの優先順位を判断できなくなるらしく思いついたことを順番に話して余計混乱させるモードに入ってしまうようだ僕自身も混乱する回避策はない

会議が終わって少しはまだ仕事できるかなと思ったら不具合調査が舞い込むなんかRxを駆使して書かれたコードでデバッグにならないRx自体は別に使いたいなら使えばいいんだけどすべてをストリームだと思い込むためにUIKitとかに謎の拡張がなされたりしていると厳しい読めないiOS開発初心者になったみたいな気分だ
正しく動かないコードを書くのは二流だがまともに保守できないコードを書くのは三流だ

夜は映画観た僕はミュージカル映画好きなのかもしれない普通にミュージカルが好きな可能性もあるがそれは観たことがない

あとRust触っていた死闘の末に型合わせゲームに勝利したがまだ正しく動いていないRustコンパイラは賢ぶってあれがダメこれがダメ言ってくるくせに結局実行時の動作を完全に保証できるわけではないふうむ…… まあなんか非同期処理の所有権あたりでトラブってるんだろうとは思う明日見るか


さてこんな時間ですが今から寝る明日は何と有給休暇なのだなんか最近有給休暇が完全に余ってきてるので腐る前に使わないともったいないのだけどそんな暇がもうない

0203

昨夜夜更かししたせいで眠い眠いが仕事の前にRust書いてたら昼になっていたコンパイラが親切だと言われることがあるがアスキーアートみたいなエラーメッセージを出されても何もわからないしかし型合わせゲームを1つ成功させたぞ苦しんで成功させたので少し所有権の気持ちがわかったような気がする

仕事は忙しかった完全にRust書いてる場合ではなかったフロントエンドを気合いで進めたがやはり最近キャパシティを超えている感じがある今のところはメンタルに問題はないが長く続くと良くないかもしれない観察が必要だ


明日も忙しいらしいなんかカレンダーに予定が6つあるマジかよ明後日は有給休暇だからなおさら明日はがんばらないと

0202

最近公私共に忙しくて寝不足なんでもいいけど仕事は別にではないよな普通に自室でやってるし

仕事はまたCDKおじさんCSVデータをエクスポートする先のバケットを用意したりおそらくはここにファイルを吐き出したあとで署名済URLを返してダウンロードさせることになるだろうまあ普通にsend_fileでもいいのではとはいえ今回はGraphQL APIだしそうもいかないしな

夜はrustやってた本に載ってるコードを現代的に洗練させようと思っていろいろやっているんだけれど型合わせゲームに失敗し続けていて辛いまずはasync/awaitの基本的なところを別途学ぶところから必要なのかもウーム


児童の労働が非人道的だという主張のことがいまいちよくわからないことがあるなんというかどうしてもじゃあ我々がやっている労働は残酷ではないのだろうかと考えてしまうそんな残酷なことを子どもにやらせるのはやめようよという話ならば理解できるけれどこの製品は児童に労働させていないから人道的にクリーンですみたいに言われるとなんだか複雑な気持ちになる別に普通に労働を苦にして死ぬ大人だって大勢いるし労働という営み自体みんなやっとるぞ以上に正当化できるとも思えないしだからなんというか児童から搾取しないのはマシではあるけれど何かを解決したことにはまったくならないよなと思うまあ何かの解決が目的なのではないですと言われてしまえばそれまでですけれども……


いよいよ明日が節分本番ですよ
むっちゃドキドキしてきた…

鬼の皆さん今日くらいは人喰いは休んで明日に備えますよね