20250530 褒められ欲

項目 内容 得点 換算点
睡眠時間 6時間26分 77 10.0/13.0
起床 7:19 100 8.0/8.0
散歩 実施・ゴミ拾いなし 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.0/5.0
労働 passion: 80点, discipline: 75点 78 18.7/24.0
ジム 休養日 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 60 5.4/9.0
総合 1日の総合評価 - 83

今週はTSKaigiのモチベバフと睡眠好調が相まってかなりモーレツ気味(当社比)で働いていたけど、金曜日はさすがに疲労を感じる。意外と体は習慣通りに動きそうなんだけど、精神力が上がりきらない。

https://github.com/susisu/tskaigi2025

これがめっちゃ難しくてClaudeに解説させながら読んでる。AI教師、対応範囲が(人間よりは)広いし能力は間違いないし時間も場所も感情も気にする必要ないし優しいのでかなりすごい。AIに褒められて褒められ欲(結構ある)の充足を感じるけどこれでいいのかなあと疑問。でも確実に僕の役に立っているしなんなら僕を賢くしている。

明日は久々の完全オフ。ジム以外特にすることなさそうなのでのんびり布団でも干すかな。うまいものも食いたい。食いに行きたい。休養だけでなくリフレッシュの気持ちになっているのもモーレツの反動かもしれない。

20250528 一生は長いが一日は短い

項目 内容 得点 換算点
睡眠時間 6時間53分 95 12.3/13.0
起床 7:37 100 8.0/8.0
散歩 実施・ゴミ拾いなし 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 実施 100 5.0/5.0
労働 passion: 90点, discipline: 85点 88 21.1/24.0
ジム 有酸素+筋トレ 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 65 5.8/9.0
総合 1日の総合評価 - 93

今日もかなり良い。やはり睡眠が基本だ。朝は散歩しながらプログラミングのフローについて考えていた。TypeScriptを第一言語とする僕にとっては、関数の連続は

const a = f1();
const b = f2(a);
const c = f3(b);

のように書かれた方がわかりやすい。

const c = f3(f2(f1()));

は厳しい。上から下に流れること、得た値を束縛すること。この2点がだいぶ馴染みがある感に寄与している。手続き的と宣言的と言ってもいいのかもしれない。あるいはメソッドを生やしてやって

const c = f1().then(f2).then(f3);

という考え方もあるかもしれない。同じプログラムの流れであっても、それがどこに表現あるいは隠蔽されているのかというのがいろいろ違うよねという話。そして流れの理解が重要なプログラムを書くときに、流れを隠蔽するような記法を使って良いのか?

これがまあ f3(a, b) になったりPromiseになったりResultになったりするとどんどんゴチャってきて、その場合どれがベストなのか…!という話になる。言語がデザインする書き方もあるし、個人・チームの慣れ・志向もある。

人生が長いか短いかはまだわからない(どちらかと言えば長い寄りの感覚でいる)が、一日は間違いなく短いということを最近感じる。ちゃんと寝て、起きて働いてやるべきことやって、その上で遊びの時間も取るというのは、かなりのテクと意思が必要だ。31歳なのでね。幸いやりたいことが減ってくれて、集中できる。

20250520 フラッシュ!

項目 内容 得点 換算点
睡眠時間 6時間19分 73 9.5/13.0
起床 7:40 100 8.0/8.0
散歩 実施・ゴミ拾いあり 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 実施 100 5.0/5.0
労働 passion: 80点, discipline: 85点 83 19.9/24.0
ジム 有酸素+筋トレ 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 80 7.2/9.0
総合 1日の総合評価 - 91

最近はひたすらGemini2.5で色々やっている。こいつは本当に賢い。そしてproとflashの間には確実な知性の差がある。しかしAIは周囲の文脈を読んでそれに合わせることが得意だ。proである程度下地を固めてやると、その後のパターン量産はflashでもかなりいい線いける(それでもproには劣るが)。

今月は珍しく完全な家計簿を付けている。不意の出費が多く、単月黒字になるかギリギリのラインだ。22日までに3000円くらいでやりくりすることになる。ちょっと意識していれば余裕か?だからgeminiもflash使いたいんだよな。

謎の思索 1

米の値段について考えている。安くなってほしいが、特に国産米については国土の制約から技術による効率化があまり期待できず、安くなってほしいと願うことが従事者の給料が低くなってほしいと願うことにつながってしまい、それなら誰にババを引かせるかという話にしかならないなあと思っている。でもまあ国民の腹を満たすのは経済だけで語って良いものではないし、バカほど関税かけて市場歪ませてる政府がなんとかしろよと思わなくもない。

謎の思索 2

介護従事者と市役所についても考えている。人口ピラミッドが極端な形で無い限り、人口が2倍になれば要介護者も介護従事者も2倍になるので、介護従事者の不足に対して国外の労働力を入れるのは、一時的にピラミッドの形を変えて対策にはなるが、その人たちもいずれ要介護者になるとすれば根本的な解決にならないという考え方を前江添さんが言っていて、そのときは納得した。しかしよく考えると要介護者が2倍になったときに必要な介護従事者が2倍になるのか?という問題だ。スケールメリットが効くとすれば、社会の人口増加はエッセンシャルワーカー比率の低下を可能にし、その結果僕のように謎の何かを作る人間が生きられるようになる。

ここで問題になるのは職種ごとのスケールメリットの効く度合いだ。たとえば市役所のような集約管理型業務は効きやすいだろう。実際行政効率化のために合併するという話はよく効く。逆に介護従事者は?これは効きにくいだろう。

20250516 髪map

歯科定期検診→上中里でちょっと用事して昼食。また帰ってきて散髪。

上中里、めっちゃ電波悪い。

用事をまとめて3つ片付けていい休暇だったような気がしないでもないが、夜はもう暇でしょうがなかった。何をしても楽しくないし、そういうときに何かをしようと思うとカスみたいなニュースを見てしまって一層嫌な気持ちになるんだよな。自由な時間というのは本当にろくなもんじゃない。かと言って寝たいとも思わない(早く寝ることによって明日の時間を増やそうとも思わない)。

散髪ってmapかなって考えてた。僕はいつも3cm短くしてと言うので

hairs.map(hair => ({ ...hair, len: hair.len - 30 }))

なんですよ。ただ、JavaScriptで考えるとmapは新しい配列を再生成するのだが、髪はinplaceで変更する。なので

hairs.forEach(hair => hair.cut(30))

の方が良さそう?でも実際は散髪ってmapじゃないんですよ。全部の要素に同じ処理は行えない。毛根が頭皮座標系において2次元的に、空間座標系においては3次元的に分布している一方でハサミの切断部分は線分として存在しており、ハサミを使って複数の毛髪に同じ切断操作を行うことはできないし、そもそも髪にできる操作って「ncm切る」ではなく「切った後の長さがこのくらいになる」なんですよね。

毛根が切断線分を軸とする円筒面上に分布すれば一発で同じ長さに揃えることはできるだろう

hairs.forEach(hair => hair.setLength(40))

しかし頭部は基本的に凸構造だ。凹構造の人体と言えば…そう、消化管!

オチはない。

20250515 前足を使って器用に食べます

項目 内容 得点 換算点
睡眠時間 5時間28分 39 5.1/13.0
起床 7:03 100 8.0/8.0
散歩 実施・ゴミ拾いあり 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.0/5.0
労働 passion: 75点, discipline: 75点 75 18.0/24.0
ジム 休養日 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 ノー 0 0.0/7.0
あすけん - 80 7.2/9.0
総合 1日の総合評価 - 72

睡眠に関するスパースベッド仮説(ベッド上の物体を減らすことで睡眠姿勢が安定し睡眠の質が向上する)、第1日は仮説を指示する結果が得られた。引き続き実験を続ける。

いつも朝食のタンパク質・カルシウムを担当している魚肉ソーセージだが、内側の包装皮を破るのが困難だ。まず説明によるとつまみしろに直角に切り込みを入れるように破り、切り込みの上と下をそれぞれ魚肉ソーセージ長軸に対して時計回りと半時計周りに破り広げることで包装を除去せよとのことだ。

しかしこれは成功しない。直角に切り込みは入る。しかい破り広げることはできず、ただつまみしろがきれいに破り取られるだけだ。そしてこの状態になるともう人間の前足では手出しができず、カッターナイフで切り開くしかない。とてもとても悲しい。

実際にworkする開封方法はこうだ。つまみしろを破らないように引っ張り、巻物を開くように剥がしていく。これで6割くらいは成功する。しかし残りの4割はやはり上の失敗パターンに落ち着く。

興味深いのは、この魚肉ソーセージは4本セットで売っているのだが、成功するときは4本とも成功するし失敗するときは4本とも失敗する。製造や運送の過程における温度変化等に影響を受けるのだろうか。ちなみにいま食べてるやつはダメなやつです。

明日はちょっとした用事が複数重なったのでそれらをまとめて片付けるべく休みにした。グフフ。

20250513 faviconを変えるか!

項目 内容 得点 換算点
睡眠時間 6時間30分 80 10.4/13.0
起床 8:00 100 8.0/8.0
散歩 実施・ゴミ拾いなし 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 実施 100 5.0/5.0
労働 passion: 65点, discipline: 60点 63 15.1/24.0
ジム 休養日 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 72 6.5/9.0
総合 1日の総合評価 - 86

ランチは吉野家の親子丼。外食日だが特に食べたいものが思いつかなかったので牛丼チェーンになる。食事に油が足りておらず、カロリーが少ない。しかし塩分はオーバーしている。バランスが難しい。

ジムは休養日。若干膝が痛かったので丁度いい。時間があったのでパケットキャプチャの続きをやっていた。IPのフラグメント再構成が相変わらず難しい。1つフラグメントが届くたびに再構成が可能かどうかチェックしなければならないのは非効率な気もするが、避けようがなさそうだ。いや、でも前回のチェックの情報を利用してチェックを単純化することはできるのか。たぶん実際に稼働している機器ではその辺もゴリゴリにやってるんだろうなあ。

時間はあったんだけどさ、ジムの休養日に時間があるのは当たり前なんだよな。ジムに行った日でも余裕があったなと思えるように最適化を進めたい。

watch-duty-managerのfaviconを変えるか!と急に思い立ってClaude3.7+Roo CodeのOrchestratorモードにやらせてみた。Orchestratorモードというのはあるセッションが管理役になってタスクを細分化して別のセッションに割り振るので、割り振られた方は背景情報をあまり知る必要がなくコンテキスト(つまり費用)が節約できるというやつだ。この仕組みはなかなかいい感じに機能したが、頼んだタスク自体はClaudeがどれだけやってもicoファイルを作ることができず頓挫した。悲しいね。

最近の日記、つまんねェ〜〜〜〜。まあアレなんですよ、僕の日記道は何かあるたびにネタ帳に書いておいて日記には夜それをまとめて書くというあり方を良しとしていないので、朝から夜まで何かしら思い悩んだことがないと面白いこと書けないんだよな。でも「日を記す」という原義に立ち返るなら、その日の出来事をきちんと記せるようにメモを使うというのも正しいあり方のように思える。

20250505 ムーン・リヴァーを渡るようなステップで

昨日は静養。今日は朝から夜まで実家で用事。

帰りの新幹線は当然大混雑。自由席で立っていた。新横浜で空いたから一瞬座ったがすぐ子供に譲ってしまった。父親に随分感謝された。車内で友人にもらった『暗号と認証 しくみと理論がしっかりわかる教科書』を読了。さすがに最終章の準同系暗号や量子コンピュータは難しかったが、何を実現するためにどんな手段を使うのかというのはうっすらわかった。次はクリーンアーキテクチャを読む。例の図について適当な理解でやり続けるのもよくなさそうなので。

久々にキリンジ『Drifter』を聴いていた。初めて聞いたのが20代以降なのにTier1入りした数少ない曲だ。

流れるように美しいメロディに似つかわしくない挑戦的な和音の響き。優しい歌声。一行ごとに新しいイメージが浮かんでくるような不思議な歌詞。素材の味が生きた楽器隊。その全てが調和して何度聴いても飽きることがない。

大学生の頃、友人にハリー・ポッターのハリーの部屋と揶揄されたほどの狭くて古い部屋に住んでいた。深夜アニメが終わった静寂の中で、偽物のフローリングの上に寝転がって筋トレをしながらこの曲を聴いていた。そんなことを思い出す。

20250429 IP fragmentation

項目 内容 得点 換算点
睡眠時間 5時間5分 23 3.0/13.0
起床 9:12 40 3.2/8.0
散歩 ノー 0 0.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.0/5.0
労働 休日 100 24.0/24.0
ジム 有酸素+筋トレ 100 12.0/12.0
勉強会 ノー 0 0.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 72 6.5/9.0
総合 1日の総合評価 - 61

↑これのせいでOGPのdescriptionが意味ない内容になりがちだったのでちゃんと明示するようにしてみる。

遅く起きて朝食→ジム→ラーメン屋→買い物→帰宅→昼寝→個人開発→今

ジムで顔見知りの人と世間話をした。同じジムでも普段やることが違うといろいろ教わることがあって面白い。

なんとなく普段行かないラーメン屋に行きたくなって行ったら、定休日火曜という表示とともに中で客?と店員が和やかに談笑していて、(今日は休みで店員がまかない食べながら談笑してるのか…?)と思ったけど普通に営業してた。祝日だからかな。メニューが以前来たときから完全に変わっていて驚いた。デフォルトのトッピングがほぼ無な代わりに安いというモジュラー式電源みたいな構成になっていた。

楽しみ

休日と入っても特にやりたいことも行きたいところもないよなあ…と無気力決め込んでいたけどツイッターで友人がめちゃくちゃきれいな島の風景を上げていて俺も何かすればよかったなと少し悲しくなった。人生全部これ。段取り付けて準備してようやく得られる体験というものがあり、それをきちんと遂行できる人間と、最終的な体験は羨ましがるけど行動は起こせないで家で昼寝してる人間がいる。まあ風景が良いからなんだよとも思うが。

よく友人に付き合いが悪いとか遊ぼうとしないと言われる。人と会うのは好きなのだが、事実だ。昔から楽しむということが苦手だ。趣味もなんらかの形で自己研鑽につながるものじゃないとやる気にならない。100%enjoyの娯楽には罪の意識がある。ディズニーランドとか怖い。Dota2は対戦と上達という要素があるから楽しめるが、四川省はある程度は上達の要素もあるが結局配牌次第であり、あまりやる気が出ない。加えて初めてのことをやるのも億劫だ。まあこちらは「人生経験」「これも勉強」みたいな言い方をされれば割と簡単に乗り越えられる。ので僕に違法薬物を勧めないでください。でも誘われるのは嬉しいので何でも可。

ちなみにアニメの聖地巡礼旅行はかなり自由研究的要素があるので好きです。土地とストーリーと制作プロセスが重なって新しい発見が生まれてくるのはかなり楽しい。

最近はジメッとした内省的な話ばかりしていて嫌だね。ずっと睡眠が壊滅していてそのせいで気持ちが落ち込む。まあそれも含めての日記道だから。

IP fragmentation

パケットキャプチャの続きもやった。今日はIPパケットのfragmentationのことを考えていた。昔マスタリングTCP/IPを読んでいたときにはあまり実感していなかったけどIPパケットが下位レイヤのMTUの都合で自らを分割するのってちょっと違和感あるよね。まあこの辺りが教条的ではなく柔軟だったことがIPの広がりにプラスに働いたというのもあろうが。

IPヘッダのfragment offsetは13ビットの領域を割り当てられており、その表現は8ビット単位である。この説明はよく見られるのだが「8ビット単位って何?」という疑問が湧いた。13ビットで表現できる数値は2^13(8192)通りだ。つまりfragment offsetは8の倍数オクテットであって2^16までの数字しか表現できないということになる。そうなの?答えはYesだ。RFC791に明記されているとおり

そもそもIPデータグラムの最大長は65536オクテットなので2^16でちょうど足りる。

This format allows 2**13 = 8192 fragments of 8 octets each for a total of 65,536 octets. Note that this is consistent with the the datagram total length field (of course, the header is counted in the total length and not in the fragments).

そして分割は8オクテット単位でせねばならないと定められている。

The data of the long datagram is divided into two portions on a 8 octet (64 bit) boundary (the second portion might not be an integral multiple of 8 octets, but the first must be).

そう言えばもう一つ、Identificationも他の送信元と被ったら混線しない?と思ったんだけど、これは送信者IP・宛先IP・プロトコルも含めてユニークになるようにassembleせよと定められてたね。

To assemble the fragments of an internet datagram, an internet protocol module (for example at a destination host) combines internet datagrams that all have the same value for the four fields: identification, source, destination, and protocol.

Ethernetの仕様書は7000ページあった一方でIPは随分読みやすい。

20250427 逆算と積み上げ

項目 内容 得点 換算点
睡眠時間 4時間34分 3 0.4/13.0
起床 8:33 72 5.8/8.0
散歩 ノー 0 0.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.0/5.0
労働 休日 100 24.0/24.0
ジム 有酸素 100 12.0/12.0
勉強会 ノー 0 0.0/12.0
個人開発 ノー 0 0.0/7.0
あすけん - 59 5.3/9.0
総合 1日の総合評価 - 52

人生、ゴールを決めてそこから逆算して日々のノルマを決めるのか、それとも自分のキャパシティと相談して毎日捻出できるリソースを決めてそれを積み上げていくのか。これは難しい問題だ。前者の方が達成度を厳密に管理しやすいが、ゴールと達成度という最初に決めた一本道の目標に囚われて寄り道が難しくなるという欠点もある。スマホのアプリアイコンを整頓した。これは特定のゴールを設定していないが、日々の改善活動によって今後の生活が遅滞することを防ぐタスクに分類される。人生も開発も同じなんだよな。全てが僕というレンズを通せば同じになるから、僕は文章を書いている。

久々に王将の餃子定食を食べた。やはりどこかのチェーンと違って餃子がちゃんと美味い。しかし高い!

なんとなく物欲しい気分だったのでお菓子を大量に買ってきて食べた。娯楽は何かを犠牲にするものだが、僕の場合栄養スロットには余裕がありがちなのでこの手に限る。

あまり気持ちがハァーサッパリサッパリしない。これじゃ日記じゃなくてチラ裏だよ。それはやっぱり違うものだから。ネマシュ

20250425 チーズバーガー丼

項目 内容 得点 換算点
睡眠時間 3時間30分 0 0.0/13.0
起床 8:31 74 5.9/8.0
散歩 ノー 0 0.0/5.0
朝食の栄養カバレッジ 0色カバー 0 0.0/5.0
体操 ノー 0 0.0/5.0
労働 passion: 70点, discipline: 70点 70 16.8/24.0
ジム 休養日 100 12.0/12.0
勉強会 ノー 0 0.0/12.0
個人開発 ノー 0 0.0/7.0
あすけん - 45 4.0/9.0
総合 1日の総合評価 - 39

↑結構いろいろ改修した(させた)。今回はGemini2.5Pro。小規模アプリケーションだとめっちゃ賢いよ。ちゃんと.clinerulesに従うしpackage.jsonのコマンドも読める。まあコスト的にはハイエンド側だからね。コメントが過剰気味なのは変わってない。そう言えばYouTubeのある英語話者がジェミナイって読んでたけど、本人(?)に聞いたら発音はジェミニって言ってたな。


(世代がバレる)

夜眠れず、眠れないことにイラついて開き直って5時頃まで起きてた。健康も精神も全てが破滅している。

友人からのタレコミで松屋の新メニューチーズバーガー丼を食べた。美味いかまずいか以前に「普通にパンでバーガーにすれば良いのでは…?」という疑問が湧くほどには単にチーズバーガー。味の評価は米に酸味を合わせることをどう思うか次第。僕は若干懐疑(しかし改めて考えてみると酢飯・ケチャップライス・ケバブ・ドリア等は違和感なく食べてはいるな…)。シンプルに肉がデカいのは満足感がある。

休みが多い期間に入る。と言ってもカレンダー通りだが、憂鬱だ。休みは退屈で、休みを退屈にしてしまう自分の至らなさを思い知るのは辛いからだ。

基本的に僕はポイントカードアンチなのだが、ここに住み始めて結構長く、そろそろ近所のスーパーで使えるカードなら作ってもいいかなという気分になってきた。しかし僕は基本的にデジタル国粋主義者なので、GAFAにピンハネさせないでポイントカードを活用するためにはどういう方法がいいかなと考えている。