20250306 ぎっくり腰?

項目 内容 得点
起床 7:15 100
散歩 ノー 0
朝食の栄養カバレッジ 3色カバー 100
体操 実施 100
労働 した・passion: 85点, discipline: 80点(複雑) 83
ジム 有酸素+筋トレ 100
勉強会 参加 100
個人開発 実施 100
あすけん - 26
総合 1日の総合評価 82

↑睡眠時間と節電を追加すべきかも

久々に入眠がクソ下手だった。割った睡眠薬の小さい方の欠片を飲むという蛮勇のせいだ。

腰が痛い。便座に腰掛けようと中腰になった途端に腰に軽く痛みが走り、その直後は大丈夫だったが夜になってじわじわ痛んできた。ジムは行ったが背筋系の種目は休んだ。参ったなあ。バックエクステンションはマシンが壊れていて重量が上がらないのでその分可動域を広く取ってみていたが、それが悪かったかもしれない。

これと同じタイプのマシンなんだが、理屈のうえでは体を直立よりも反らせようとしたら尻浮きませんか?どうやって成立するのかあまり理解ができない。

昼食は寒さと、それに伴うreproduction・搾取・愛玩・本能等の鬱っぽい思考をを辛さで追い払うために日高屋のチゲ味噌ラーメンにした。昨日・一昨日の松屋よりかなり安いけど満足度は負けていない。日高屋の餃子以外のメニューは侮れない。

写真をアップしようとしたら、スマホからPCに画像を転送するのに使っているKDE Connectが壊れていた。メンテナが修正版を出してくれたので数日以内にはストアに入って直るだろう。しかしなんで海外のOSSで活躍してるエンジニアってのはみんな雰囲気のあるイケメンで写真写りもいいんだろう。
https://github.com/GSConnect/gnome-shell-extension-gsconnect/issues/1932#issuecomment-2701205070

例のパケットキャプチャのプロジェクトを久々に少し触った。Clineの登場で界隈が賑やかいが、このプロジェクトに限ってはRustとインターネットプロトコルスイートを学習するという生存戦略が目的であるので、LLMは封印することにした。これで本当に生存できるかは10年後わかります。所有権の話いつまで経ってもよくわからない(というかメソッドチェーンと所有権の絡みってBookで説明されてなくない?)のだが、とりあえずこのひたすらエラーを解説するページが便利っぽいということを今日は発見した。
https://doc.rust-lang.org/error_codes/E0716.html

20250305 松屋の固形燃料メニューやけどしない食える人いるの?

項目 内容 得点
起床 7:55 100
散歩 実施・ゴミ拾いなし・犬遭遇0匹() 100
朝食の栄養カバレッジ 3色カバー 100
体操 実施 100
労働 した・passion: 80点, discipline: 65点(隙) 73
ジム 休養日 100
勉強会 参加 100
個人開発 ノー 0
あすけん - 72
総合 1日の総合評価 84

散歩はめちゃくちゃ寒くて後悔した。人類は暖かい部屋にいたほうがいい。

昼食は松屋のシュクメルリ定食を食べた。辛いもの食べたかったんだけど歩いているうちに気が変わってしまった。昨日に比べるとさすが松屋の準レギュラーだけあって美味い。しかし熱い(松屋の固形燃料メニューやけどしない食える人いるの?)。タンパク質が多い。

あすけんの栄養目標を再調整した。目標体重を現状維持とするかBMI22ちょうどを目指すかで迷ったが22にしておいた。そして体質上タンパク質を78gまで減らし、他をリバランス。厚生労働省の日本人の食事摂取基準を参考にしていたが、章によって結論である表が引用より前にあったり後にあったりして変な感じだ。

仕事は大きめのやつが終わって隙間のタイミングで(年度末でもあり)、今のうちに溜まっている小ネタを消化していきたい。仕事が面白い時期はあんまり書くことないよね。

ジムが休養日なので早々に退勤して昼寝などしてのんびりしていた。Dota2は勝った。ワートリの感想まとめ動画とかいう徳の低い動画を見ていたが、だんだん単行本未収録部分のネタバレが出るようになったので非表示にした。

20250304 サムギョプサル風極厚豚バラ焼肉定食

項目 内容 得点
起床 9:15 38
散歩 ノー 0
朝食の栄養カバレッジ 3色カバー 100
体操 ノー 0
労働 した・passion: 80点, discipline: 65点(待) 73
ジム 有酸素 100
勉強会 参加 100
個人開発 ノー 0
あすけん - 69
総合 1日の総合評価 67

昼食は松屋の『サムギョプサル風極厚豚バラ焼肉定食』を食べてみた。1180円という松屋の中でも超重量級のメニューだ。しかしこれはしょっぱすぎる。ニンニクとかコチュジャンとかそれっぽい薬味も用意されているのだがとにかくベースの肉がしょっぱい。肉質も厚いがブヨブヨした脂身が多くあまり良いとは言えない。松屋の固形燃料付きのメニューは固形燃料が活きていることがあまりなく、意味なく熱いだけだ。量はさすがに多いのだが薬味のバランスで味変を楽しもうにも全部しょっぱくて単調なのでどうにもならなかった。残念ながらかなり評価は低いと言わざるを得ない。素直にシュクメルリ食べておけばよかった(しかし松屋の新メニューは食べると決めているのでな…)。

睡眠が遅れがちなので戻したいな。睡眠薬は強いやつと弱いやつを出されていて、強いやつは自己判断で減らしていいとのことだったので最近は割って半錠にしている(飲み方をミスると超苦い)。

そういえば電気料金がバカ高い。料金が高いだけでなく電力使用量も去年に比べて30%くらい増えている。これがよくわからない。特に新しい家電を導入したわけでもないと思うのだが…こういうときにどうやって原因を調べればいいんだろう。今はwebで1日毎に消費量が見えるから、細かく生活パターンを変えてみて影響を見ればいいのかな。単一事例実験というやつだ。エアコンの温度が高くなりがち(設定は20度なのだが22~23くらいまで上がる)のがコントロール外の電力消費になってるのかな。あるいは布団カバーの洗濯頻度を上げたことによる浴室乾燥機の多用?これは洗濯タイミングを調整して外干しにできれば緩和できそう。

20250302 陽光

のんびり起床し、天気があまりにも良かったのと3月に入ったので家系ラーメンに行ってきた。いつもよりしょっぱかった。満腹で帰宅して暖かい陽光で眠くなりながら『ワールドトリガー』を読み直し(序盤は割と型を作れてなくて危なっかしい感じあって初々しい)、そのまま昼寝。起きてRimWorldをして夕食を食べて寝る。心身の休養という意味では完璧に近い日だったな。これほど天気に恵まれる日は一年にそうないだろうし。

RimWorldは堅固な設計からフレキシビリティへと興味が変わってきた。初期メンバーと地形が決まった時点で拠点の設計をほぼFIXしそこに向かって作り込んでいく方針も良いのだが、このゲームにはどうしても不確定要素がある。中途加入メンバーの得意分野、恋愛の発生、家畜の入手などが大きい。今回は6x6の小さい部屋をどんどんつなげて増設していく形を取った。現段階では11部屋作ったがそのうち6部屋がぶちぬきで宿舎・ダイニング・娯楽室・工作室の兼用になっており、残りが個室・監獄・倉庫・空き部屋になっている。

この方針で大事なのは成長軸の概念だ。建物をどちらの方向に伸ばしていくかはよく計画しなければならない。農業向けの土地の上に建築してしまうのはもったいないし、風力発電を使うなら風を遮らない方向に育てなければならない。つまりソフトウェア開発と同じだ。

拠点の最終的な目標は建造物を全て囲む壁を作り、その入口のキルゾーンで敵を待ち受ける形だ。しかしこれに至るには膨大な建材が必要であり、その途中の防衛は難しい。漸進的建築は建材のロスが多いが、常に隠れられる屋内が存在していて、その中で生活が完結する。

それでもやはりある程度まで成長した後は気合で万里の長城を作ることは必要で、利用できる地形が少ないマップだとなかなか大変だよな。

YouTubeの広告ブロッカーブロッカーの研究

自由研究 としてYouTubeが広告ブロッカーを検知する仕組みを調べていた。有名な広告ブロッカーを狙い撃ちにしているのかと思いきや、僕が 研究用 に作った簡易的なブロッカーにもちゃんと反応していた。

https://www.youtube.com/s/player/5ae7d525/player_ias.vflset/ja_JP/base.js より抜粋

    g.E.onClick = function(k) {
        k && k.preventDefault();
        var p, t;
        dDL(k, {
            contentCpn: (t = (p = this.api.getVideoData(1)) == null ? void 0 : p.clientPlaybackNonce) != null ? t : ""
        }) === 0 ? this.api.zb("onAbnormalityDetected") : (SA.prototype.onClick.call(this, k),
        this.api.zb("onAdSkip"),
        this.api.onAdUxClicked(this.componentType, this.layoutId))
    }

クリックイベントkをdDLに渡し、その返り値が0ならonAbnormalityDetectedイベントが発行され、その結果広告ブロッカーやめろ画面に遷移する。

    dDL = function(k, p) {
        var t = 1;
        k.isTrusted === !1 && (t = 0);
        a3("ISDSTAT", t);
        qO(t, "i.s_", {
            triggerContext: "sk",
            metadata: p
        });
        return t
    }

dDLの実装を見るとisTrustedがfalseなら0が返る。
https://developer.mozilla.org/ja/docs/Web/API/Event/isTrusted

ユーザーを意図しない操作から守るためにブラウザが提供している機能なので、これを出し抜くのは結構難しい。相当な荒業でやる方法はあるようだが、addEventListenerが実行される前にinjectせねばならずなかなか難易度が高い。
https://qiita.com/i11u/items/0a6d38966c75314bacba

Chrome extensionのdeclarativeNetRequestを利用してbase.jsがダウンロードされるときに該当箇所を書き換えてしまえばいいのではと思ったのだが、preload+service workerが使われている影響かbase.jsのGETを捕捉できなかった。あとはプロキシサーバーを立ててbase.jsだけすり替えるとかできるのかなあ。なんならChromiumをforkしてisTrusted機能を殺してしまうのもありかもしれない。Chrome拡張という配布のしやすい形を諦めるなら選択肢はいろいろある。

あくまで 研究 ですからね。私欲のために実行しませんよ。こういう研究をしていると広告が流れてくれた方が都合がいいのだが、そう思っているときに限って意外なほどに流れない。こんなに頻度低かったかな…?と思ってしまい、それなら別にいいやとなってしまった。逆物欲センサー(だいぶ昔の言葉になってしまったな)。

webサービスをどう設計するかは作り手の自由だが、それと同時に我々が自分の所有する計算機でどのような計算を行うかも自由だ。つまりはそういうことだ。

こういう漠然とやりたいことはあるけどどうやるべきかもどう書くべきかもわからない状況、雑にCline+Claudeに書かせておいてよくわからないところはCopilotに説明させてあーそういう意味ねと納得したりしている。Clineが大きなスコープでの作業を得意とする一方でCopilotはインライン操作が充実していて細かい部分について質問しやすい作りになっている。LLMの特性と言うよりはプロダクトとUIの特性だね。

20250228 樋

(インターネットに書くとわかる人にはわかっちゃうと思いますが、このブログは昔からそういうスタンスなのであまり気にしてないです)

昨夜に日記を書いた後、気づくと部屋の廊下が水浸しになっていた。意味がわからなかった。見ると天井の火災報知器や照明から水滴がポタポタと落ちている。とりあえずありったけのバスタオルをかき集めて床を拭き、滴る水をたらいとボウルで受けるようにした。

幸い建物の管理会社は夜も通じるコールセンターを持っていたので電話してみたが、翌朝までできることはなさそうとのことだった。しかし滴下ペースを見ると所有するたらいでは翌朝までとても保たない。そこでゴミ袋を貼り合わせて簡易的な樋を作り、流し台に排水するようにした。

今日になって管理会社が建物に来て、ひとまず原因箇所の水を止めてくれた(詳細な原因はインターネットには書かないことにする)。しかし水が抜けるまでしばらくは漏れ続けるだろうとのことだった。聞くところによると僕より上層階でも被害が出ているとのことで、かつ1階共用部分にも水漏れがあったので、上層階から下の部屋に次々漏れ出しつつ1階まで壁の中を水が流れていったのだろう(定期的にバズる『A KITE』のアレ)。

僕の私財の損害は汚水(上水かもしれないが僕の部屋に漏れ出てきた時点では黄色く濁っていたので汚水と呼称せざるを得ない)を拭いて本来の用途を果たせなくなったバスタオルだけ。一方設備は(私はこの部屋の所有者ではない)火災報知器や照明などの電気設備がガッツリ濡れてしまったし、僕が気づくまで水浸しだった廊下のフローリングも浮いてきてしまっている。これが複数の部屋で起きていて、壁内・共用部にも色々起きてるだろうと考えると、損害の回復にはそこそこの金額が必要なのではないか。誰が払うのかは知りません。

僕としては大変なこともあるものだなあ…くらいの感想(あと睡眠不足)だけど、もしかしたら今後補修とかで騒がしくなるのかもしれない。そうなったら嫌だなあ。

20250227 HSS

遅めに起きて労働。待ちが多い日だった。ジムは少しサボってたので硬くなっていた。近所のスーパーが2日休んで改装したので見に行ってみたけど大して変わってなくてこれで2日?と拍子抜けした。

ここ数日は大きな考え事が頭を占めていてハァーサッパリサッパリしない。甘いものが欲しくなる。

20250224 裸足

項目 内容 得点
起床 9:51 8
散歩 ノー 0
朝食の栄養カバレッジ 3色カバー 100
体操 ノー 0
労働 休日 100
ジム 有酸素+筋トレ 100
勉強会 ノー 0
個人開発 実施 100
あすけん - 94
総合 1日の総合評価 65

↑仕組み化するとつまんねえな…温かみがない。でもまあそれは書いているときの気持ちであって読み手にとっては同じか…

遅めに起き、朝食。2時間空けてジムで全身やり、帰宅。猛烈に家事意欲が湧いてきたので自宅の布全部洗濯した。その結果靴下が尽き、以下の内容は全て裸足(+サンダル)で実行している。

スリッパは試用期間で十分なQOL貢献が認められたのでちょっと良いやつを買いたく、近所を色々歩いてみたが売っているところがなかった。唯一ありそうなところは改装期間で売り場が消滅しており…。そしてその改装の影響で買おうと思っていた野菜もお菓子も買えず、予定を変更せざるを得なかった。そして寒い。

夕食を食べ、洗濯物を取り込んで諸々再デプロイ。明日の朝食用にほうれん草を加熱。デイリータスク管理アプリケーションをもう少しClineでシバいて今に至る。

Dota2の7.38Dazzleの件は、Orb of Corrosionじゃない?スターティングでOrb of Brightを買うことでレーニングのダメージトレードで有利を取り、安く買えて殴り放題の能力と良いシナジーがある。

20250223 Dazzle 7.38 少し使ってみて

項目 内容 得点
起床 11:03 0
散歩 ノー 0
朝食 三色食品群のうち0色カバー 0
体操 ノー 0
労働 passion: 0点, discipline: 0点(休み) 0
ジム サボった 0
勉強会 ノー 0
個人開発 実施 100
あすけんの点数 - 64
総合 1日の総合評価 12

Dota2の新環境でのDazzleの可能性を探るべく色々試していた。結局レーニングでインチキ性能を誇るPoison Touchで有利を作り、そのままスノーボールするのが王道であることは変わっていない。そしてUltを活用するための攻撃範囲と攻撃速度はいずれもTalentで得られるので、急いでLv15にすることが一番大事なようだ。というかLv15TalentのAS90ってインチキもいいところなんだよな。そう思うと、これまでヒーリングサポートとして運用されるDazzleが取らなかったTalentの方に光を当てたかったというのが今回のreworkの意図だったのかもね。

アイテム面では、(CDRがなくなったので)少なくとも自分のマナ消費を賄うだけならマナ靴が必要ない。素ブーツだけあれば戦える。Ultの乱戦の真ん中で攻撃を振り続けられるというメリットを活かせないかいろいろ試してみたが、いつ何が欲しいかというのが難しい。結局Lv15まで入らないとUltは活用できず、サポートがLv15になる時間帯になってからWitch Blade程度のダメージが乗っても大したインパクトがない。Talentと違う能力が得られるという意味でDiffusalなんかも試してみたがやはり数字が足りない。好感触を得たのはLensかな。そもそもPoison Touchの射程が800なので、Talentの攻撃範囲上昇(875になる)を活用するためにはLensで伸ばす必要がある。Ultのキャスト範囲も拡大し、これがなかなかinitiateにはメリットが大きい。Ultは逃げる敵を追うのは得意だがバックライン狩りで本体を襲われると弱いという性質があり、フォーメーションが伸びたときに自分自身にGraveをかけやすいというメリットもある。後は無難にLv15までインパクトを出し続けるという意味ではGlimmer・Pavise・FS・Eulとかがいいと思う。

20250222 Cline+Claudeやってみた

昨日は国外出張から戻った友人の無事を祝って御徒町で飲んでいた。飲みはとても楽しかったのだが寒さと胃腸の弱さ(普段は全く自覚しないが飲み屋でだけ覿面に弱くなる)ゆえに酷い胃もたれを起こしてしまい、帰って苦しんで寝ていた。寝るタイミングを逃し、寝ないまま今日に突入。午前に用事を済ませ、昼はもつ煮屋で食べてきた。スタミナもつ煮ってなんだろう、大きいのかな?と思ったらニンニクモリモリで、なるほど写真じゃわからんかった!!となった。

mizchi氏の魂がまた震えているらしいのでとりあえず真似してCline+Claudeを導入してみた。Clineは任意のLLMのサポートを得ながらvscodeを自動操作するvscode拡張で、単なるコード生成を超えてシェルやpuppeteerまで操作して勝手に動作確認までやり始める。マジですごい。ClineのバックエンドになるLLMは幅広く選べるのだが、おすすめはClaudeらしい(ローカルollamaは遅すぎて無理だった。GitHub CopilotはVS Code LM APIという仕組みを通じて使えるのだが、トークンが激増するらしくすぐrate limitになった)。Claudeを使いたいときはClaudeに直接金を払ってもいいし、OpenRouterというサービスを使ってもいい。OpenRouterは様々な商用LLMを統一的なインターフェースでアクセスできるように集約したもので、ここにお金を入れておくと使ったLLMに使った分だけ支払われる。若干手数料は乗るのだが、AIアシスト開発はいろいろなモデルを試す段階だと思うので便利。Claudeとdeepseekを比べてみたけどやっぱりClaudeの方が強かった。

とりあえず20ドル入れていろいろ遊んでみたのだが、使い方によって課金額が結構違う。コンテキストをリセットしないまま長話をするとトークンが嵩んで高くつくようだ。その辺りに少し慣れた状態で、日々の日記のアレを生成するサービスを作らせてみた。20コミット1000行分くらいのちょっとしたもので3~4ドルくらいかな。Claudeとの1回の応答で0.02ドルくらい。

https://chao7150.github.io/discipline/

(以下はサンプルです)

項目 内容 得点
起床 7:30 100
散歩 実施・ゴミ拾いあり・犬0匹() 100
朝食 三色食品群のうち0色カバー 0
体操 実施 100
労働 passion: 0点, discipline: 0点() 0
ジム 有酸素+筋トレ 100
勉強会 実施 100
個人開発 実施 100
総合 1日の総合評価 59

Claudeはとても賢い。曖昧な自然言語で指示を出してもかなり正確に意図を読み取ってくれるという点で対人間インターフェースは非常に優秀。知識も豊富でライブラリの使い方とかもよく知っている。コードの整理・美学みたいなものは弱く、場当たり的な構造を作りがちに見える(まあ1つずつ指示を受けながら作っていくという条件なら人間でもそうなるかもね)。Claudeを活用してある程度まで野放図に成長してしまったアプリケーションに、後から人間の開発者が複雑な機能を追加するとなると辛いだろうな。

これ仕事で使えるようになったら俺の仕事何が残るんだろう。大きいアプリケーションを作ろうとなったらやっぱり人間エンジニアが整理しないと破綻するのかなあ。なんかそれも希望的観測のように思える。非エンジニアが直接プロンプトを叩いて(しかも何回細かい修正指示を出しても不満を言わない)かなりの精度のものが作れるだろうし、そんな時代にコードを美しく整理するということに意味があるんだろうか。衝撃的な体験だった。