20250527 キユーピー

項目 内容 得点 換算点
睡眠時間 6時間58分 99 12.9/13.0
起床 7:42 100 8.0/8.0
散歩 実施・ゴミ拾いなし 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.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
あすけん - 43 3.9/9.0
総合 1日の総合評価 - 87

今日は結構いい日だったな。何より睡眠が良く、それに伴って労働も良い。良いこともあった。一日の中でやりたいことが減ってきて、残り少なくなったやりたいことに集中できる感覚がある。

スーパーで新商品のメロンパンがあってつい買って食べてしまった。いつも通り、メロンパンってそこまでメロンでもないよねという感想。野菜を食べるご褒美としてドレッシングはちょっと良いやつを買っていて、今日はキユーピーテイスティドレッシングイタリアン。ちょっと良いかもしれない…?なんか油ばっかり出てきて撹拌が足りなかった気がする。ところで今コピペして気づいたんだけど大きいユが正しいの?

https://www.kobe-np.co.jp/rentoku/omoshiro/202303/0016174625.shtml

デザイン上の理由らしい。へぇ〜

なんか今日はGitHub Copilot経由のClaudeやGeminiの利用がよく「申し訳ございません。応答が返されませんでした」で止まる。Copilot Chatの出力を見ると503でrate limitのせいらしいが、そこまで酷使してないぞ…?よくわからないな。計算資源の取り合いは激しくなっていく(今はユーザー囲い込みのためにどこも出血大サービスしてる価格のはず)だろうから、コスパのいいモデルが進歩してほしいなあ。まあ必ずしもベストなモデルを使う必要はなく、今はClaude4に利用が殺到しているだろうけど別に3.7や3.5でもそこそこやれるんだよな。

20250526 Carbohydrates

項目 内容 得点 換算点
睡眠時間 6時間25分 77 10.0/13.0
起床 7:49 100 8.0/8.0
散歩 実施・ゴミ拾いあり 100 5.0/5.0
朝食の栄養カバレッジ 3色カバー 100 5.0/5.0
体操 ノー 0 0.0/5.0
労働 passion: 90点, discipline: 90点 90 21.6/24.0
ジム 有酸素 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 53 4.8/9.0
総合 1日の総合評価 - 85

いくつかのルートでゴミ拾いして、どこが汚いかなんとなくわかってきた。掃除をする人間がいる道といない道があるんだよな。

昨夜TLで家系ラーメンの画像を見せられてしまい、勢いで昼に家系ラーメンを食べてしまった。猛烈に体に悪い一方でそこまでうまいわけでもなく、炭水化物の量を喜べる年齢でもなく、なんだかなあという感想で終わってしまった。

ジムは本来有酸素だけの日だったが隠れ肥満脱却のために、余力がありそうな腹筋はやった。

ジム中も風呂中もずっと仕事のことを考えていた。TSKaigiでモチベが上がっている。単に仕事をこなしていてもTypeScriptの極みには至れないと思うけど、僕が働きながらそこに近づくには、やはり仕事の延長線上で頭を使い続けることだと思うんだよな。食っていく必要もあるので。この年になると他に考えるべきこともないしな。

20250525 新垣ちんすこうアイス

ゆっくり起きて朝食。のんびりTSKaigiの内容を振り返り、午後はジム。全身ガッツリやって相撲の最後だけ見て買い物して帰宅。

豊昇龍強かったね。パワーでは大の里が当然勝っていたけど、右で廻しを取りたい大の里に対して徹底してそれを切り、半時計周りに振り回しながら得意の左への投げの形に持ち込んだ。クレバーな運びだった。

『新垣ちんすこうアイス』を食べた。どこにもそう書いてはいないけどどことなくパッケージの佇まいがスーパーカップで、味もスーパーカップをベースにしてサクサクのちんすこうがアクセントになっている感じだった。調べてみると作っているのは沖縄明治乳業であり、明治乳業の関連会社なのでまあそういうことなのかもしれない。

昼寝。

金・土とTSKaigiに出ていたので今日は休養と家事に専念した。明日からはより一層スピードアップして働きたい。いや俺がスピードアップするんじゃなくてプロダクトを進化させていきたいね。

20250524 TSKaigi 2025 Day 2

TypeScriptネイティブ移植観察レポート TSKaigi 2025

https://2025.tskaigi.org/talks/berlysia

https://speakerdeck.com/berlysia/typescript-native-porting-observation-tskaigi-2025

tsgoの歩みについてのレポート。コンテキストから細部までよくわかる話だった。Compiler APIどうなっちゃうんだろうなあ。

フロントエンドがTypeScriptなら、バックエンドはPHPでもいいじゃない

https://2025.tskaigi.org/talks/hanhan1978

https://speakerdeck.com/hanhan1978/php-is-not-bad

TSKaigiとしては異色の発表。ベテランバックエンドエンジニアの視点から、バックエンド/フロントエンドの歴史について振り返る。後半はPHPの圧倒的なシェアの高さを見せた上でのPHPはいいぞという話。トーク力が素晴らしく、楽しみながら頭に入ってくる発表だった。

Pragmatic Functional Programming in TypeScript

https://2025.tskaigi.org/talks/_yasaichi

TSのプロジェクトにFPを導入したいということはよくあるが、チームとしてそれを採用する判断ができるかは難しい。まず単純化した5つの原則とその嬉しさを把握し、実利ベースで導入を進めていこうというのがPragmaticということ。

君だけのオリジナル async / await を作ろう

https://2025.tskaigi.org/talks/susisu2413

https://speakerdeck.com/susisu/tskaigi-2025

ジェネレータにおけるyieldを文脈から値を取り出す処理?と捉えて、async/awaitのみならずResult、エフェクトシステムまで実装してしまう話。とても難しいが興味のある分野なのでよく読み直したい。プログラミング理解の足腰が強い人は「結局こういうことなんだよね」と抽象化して裏返して思いもよらない使い方を編み出したり、足りない場所に気づいて埋めに行ったりする。基礎力だなあ。

TS特化Clineプログラミング

https://2025.tskaigi.org/talks/mizchi

https://tskaigi.mizchi.workers.dev

効くプロンプトとうまくいかないプロンプトの事例集。AIエージェントを使い倒してる発表者ならではの、AIとはどのような学習の結果何ができて何ができないのか考察が深い。

OST (Open Space Technology)

参加者がテーマごとの10のグループに別れて自由にディスカッションする企画。僕はフロントエンドのディレクトリ構造のグループに参加した。自分たちのチームが採用している構造についてあまりうまく話せなかったのは後悔が残るところだが、いろいろな人の重視するポイントが聞けて面白かった。

総括

TypeScriptの領域は広く深く、仕事でwebアプリケーションを開発してるだけでは浅瀬もいいところなんだなと感じた。いろいろな分野で非常に深く研究している人がいてかっこいいなあ。久しく忘れていたすごいエンジニアはカッコいいという感情を思い出した。そう思うと同時に、いくらやっていきを得ても全部ガチるのは無理なので、どこに軸足を置いてやっていくかを冷静に見極める必要がある。現状のプログラミングに満足しちゃいけないな。もっと楽にできる、もっと安全にできるという強い気持ちを持つべきだ。

2日間ガッツリ参加して学ぶというのはそこそこ大変。移動も大変。弁当は美味しかった。いろいろな縁がある人に会えたり新たに縁が生まれたりというのは物理会場ならではの良さだったな。

20250523 TSKaigi 2025 Day 1

n円払って有給取って行ってきました。

SignalとObservable―新たなデータモデルを解きほぐす

https://x.com/laco2net

https://docs.google.com/presentation/d/1c7fYqn7-v3hnbKtmwXHbvwuCs6cNq_ThLKVDZ7rvbA0/preview?slide=id.g260298bad6d_0_77

UI開発における状態管理の話に始まり、歴代の状態管理ライブラリを概観しつつ「結局やりたいのって状態+派生状態+イベントドリブンな副作用なんだよね」と整理する(mobxが言及されて嬉しい)。さらにそれを「値の生産」というレベルにまで抽象化し、見慣れた同期/非同期・単一/複数という軸に新たにpull/pushという軸を加えることで、Signalの話とObservableの話はFunctionやIterator、Promiseから全部つながっていたんだと最後に納得させられる大回転。

すごいことをすごいスピードで流し込まれたのでわかったようなつもりで大してわかってないんだけど、すごいので忘れない。きっと必要なときに思い出せると思う。すごすぎてこんな顔になった。

Language Serverと喋ろう

https://x.com/pizzacat83b

https://speakerdeck.com/pizzacat83/language-server-todie-rou-tskaigi-2025

Language Serverとは何か、意義、使い方、応用、AIなど幅広く理解できた。なぜLanguage Serverを使うのかという点も発表者のバックグラウンドから納得のいく説明がなされて、TSだけ書いていてはわかりにくい一段階高い視点が得られて有意義だった。

AI Coding Agent Enablement in TypeScript

https://x.com/yukukotani

https://speakerdeck.com/yukukotani/ai-coding-agents-enablement-in-typescript

AIコーディングエージェントを速く正確に動かすため、我々は何をすればよいのか。意味があることとないことが最新の研究成果の引用とともに紹介され、基本的な結論はそりゃそうだよねという感じでありつつも、そこに至る筋道が明確で非常に参考になった。「入力方法はどうでもいい(中略)大事なのは入力に値する情報の整備」は名言。開発を効率化するという包括的な視点の中でツールチェインに対しても考察されており良い。

fast-checkとneverthrowのPBT+Result型で堅牢なビジネスロジックを実現する

https://2025.tskaigi.org/talks/kueda

TSにはthrow型が無いのが辛い、という積年の問題について、現状を分析した上でneverthrowのようなライブラリをどのような形で、どこになら導入できるのかというのが経験に基づいて丁寧に考察されており、同じ問題に苦労している人間として地に足がついた報告が参考になった。さらにPBTという独特な手法についても知ることができた。

Rust製JavaScript/TypeScript Linterにおけるプラグイン実装の裏側

https://x.com/unvalley_

https://speakerdeck.com/unvalley/typescript-linters

Rust製LinterはESLintをパフォーマンスで上回るものの、ESLintが支持される理由であるプラグインシステムの再現にはRustがRustであるがゆえの困難がある。針の穴を通すような技術的な挑戦が僕らが日常的に使うツールチェーンを支えていることが実感される感動的な発表だった。yukukotani氏の発表でLinterの速度の重要性を再認識したところでこの発表が出るというのもアツかった。

その他

そこそこ知り合いがいたのと、スポンサーブースが普通に盛り上がっていて楽しい。エンジニアは問題を解きたがりなのでわかるかな?的な挑戦問題の掲示が多かった。お弁当おいしい。30分単位の発表は長くはないけど連打されるとそこそこ疲れる。集中してるし。自分的安牌みたいな発表を聞きがちだけど裏でトンデモアイデアみたいな発表もあったりして分身したい。数年前なら全然わかんねえよって話題ばっかりだったと思うけど、今はどの話題もそこそこ意義やポイントが理解できるので成長したなという実感がある。楽しいね。

20250521 肉に謎の硬いものが入ってた

項目 内容 得点 換算点
睡眠時間 7時間34分 100 13.0/13.0
起床 8:27 78 6.2/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
あすけん - 61 5.5/9.0
総合 1日の総合評価 - 77

よく眠れた。が、8時前後に散歩したいので起床時間をもっと前にしたい。ということで入眠を早める努力をしてみる。睡眠力で、世界を制覇する。

昼食は松屋のいつものセット。自動呼び出しシステムが止まってたし肉に謎の硬いものが入ってたし、割と悲しい寄りの食事だった。

Gemini2.5-flashの新バージョンが出たそうですね。前の2.5-flashはなかなかやるなという感想で、今回の2.5-flashもなかなかやるなと思った(違いがあまりわからない)。安くて強いモデルが出てくるのはいいことだ。最近は仕事でも上手くAIにやらせることを意識しているが、残念ながらかなりシンプル目のタスクでもAIがまともにやれたものは1つもない。長々指導していても途中で集中が切れるのか俺もAIも理解できないぐちゃぐちゃの変更を入れ始めて矢面海!!と絶叫することになる。既存プロダクトにAIが触れるような仕組みを用意してやるのは結構大変そうで、新規プロダクトの初速の方が強そうだ。

20250520 隠れ肥満

項目 内容 得点 換算点
睡眠時間 7時間16分 100 13.0/13.0
起床 8:58 52 4.2/8.0
散歩 ノー 0 0.0/5.0
朝食の栄養カバレッジ 2色カバー 80 4.0/5.0
体操 実施 100 5.0/5.0
労働 passion: 75点, discipline: 75点 75 18.0/24.0
ジム 有酸素+筋トレ 100 12.0/12.0
勉強会 参加 100 12.0/12.0
個人開発 実施 100 7.0/7.0
あすけん - 53 4.8/9.0
総合 1日の総合評価 - 80

ジムで久々に有料の体組成測定をやったら、鍛えつつ頑張って体重付けていたのに体脂肪の伸びの方が大きくて隠れ肥満判定されてキレてます。とりあえず食事は体重増ではなく維持を目的とした量に減らし、トレーニングは強度を種目を増やすことにする。一応筋肉も増えてはいたので無駄ではなかった。

↑に時間を取られてしまって相撲の一番いいところを運動しながら見れなかった。

今日は暑かったけどまた冷えるらしい。金土はTSKaigiに参戦するのだが、上着が必要そうだ。

個人開発ではパケットキャプチャが一段落した。TCP以上はTLSのせいで中身が見れない。よほどの工夫をすれば見ることもできるだろうが、そこまでやりたいかというとな…本当はやりたいんだ。HTTPリクエストの書き換えができれば開発ではとても便利だからね。まあとりあえず、今はフィルタリングをつけようと思っている。

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本とも失敗する。製造や運送の過程における温度変化等に影響を受けるのだろうか。ちなみにいま食べてるやつはダメなやつです。

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