Home → 2025 spring, since 2009-12-01

2025春

3 March 2025

  1. Prev:
  2. nujabesがこの世にいないことを思い出して世界が薄暗くなり、ちょっとした浅い悲しみに包まれる。
  3. この感情を覚えるたびに、ここに書きなぐることにした。
  4. 一体何度目なのか分からないけど、この後は決まって、生きていてはいけないんじゃないか、という焦燥感に襲われる。
  5. 俺なんか生きてたって(nujabesに比べちまえば)犬の糞みたいなものしか作れないのにさあ。「おいなんか落ちてるぞ掃除しとけ」って言われておしまい。

  6. タスクバーについて意識が変化しつつある。
  7. ここには、現在集中しているタスクに関連したアイコンのみが並んでいるべきだ。薄い関連があったとしても、今現在使用していないアプリのアイコンは不要。デフォルト効果を考えるとエクスプローラーとEdgeは残しておいていいが、それ以外は全てステートメニューから起動したほうがいいだろう。どれだけ高頻度に使用するアプリであったとしてもだ。
  8. そうなると気になるのが空いたスペース。このあたりは余裕を持たせておけばいいのかなという気もしている。実際10個くらいの窓を開きながら作業することもないわけじゃないしな。

5 March 2025

  1. OOPって全体像をイメージし易くて書きやすいし作ってて面白いってところに一番価値を感じていたんだけど、このごろはちと飽きてきたのもあるけど意識が変わってきていて、なんかあったときに、どこを見れば直せるのかが分かりやすいってところに一番価値を感じる。
  2. つまらん人間になったもんだ。
  3. 何がつまらないかっていうと、モデルを抽象化して作り上げていくことよりも、こういう風に設計すれば直しやすいんだろうなってことを優先して考えるようになってしまったこと。

6 March 2025

  1. トランプ政権は人類の愚かさを体現していて好感が持てる。これ皮肉っぽいんだけど本当に好感を持っている。
  2. これくらい極端に右に振らないと、左の腐敗は一掃できまい。必要悪みたいなもん。
  3. LGBTQみたいなものは確かに大事なんだけど、人々は倉廩が満ちていないのに礼節を知ることはないんだよ。平和ボケしている場合じゃない。他にやることがあるってことだ。ここら辺に不満を持っていた層はかなりの数にのぼると思う。
  4. 基本的に人類は狂暴な糞ザルなので、自分が不足感を覚えているのに他人を気遣うことはできない。その閾値は様々だが。とりあえずまずは満ちようといっているのがトランプ政権。もう徹底的に破壊してみて欲しい。その結果アメリカがどうなるのかについて非常に興味がある。
  5. できるだけ早めに「結果」を出して破局してもらわないと、気候変動など取り返しのつかないことになる。でも膿は早くだしたほうがいい。これは必要なプロセスかもしれん。
  6. 幸いにも、連日のように政治活動が伝わってくる。本当によく頑張っていると思う。この調子でどんどん改革を進めてもらえれば破局も早まるだろう。

  7. Claude 3.7 Sonnet君が賢くてニヤニヤしちゃう。コーディングのお供にはいい感じなんだけど、無料枠が小さいのが残念だ。
  8. 昨日hack的に書いたクラス設計を評価してもらったんだけど、駄目だしナシで褒めてもらえてうれしい。Claudeならどう書くかも聞いてみたけど、基本設計を踏襲してくれていたし、多分お世辞ではなさげ。
  9. main処理にゴリゴリ書いていた部分をファサードパターンに直されたけど、クライアントコードをシンプルにしました!っていう理由しか述べられていないので問い詰めてみようと思ったところで無料枠使い切ってモヤモヤする。
  10. クライアントコードで全体的な流れをみたいじゃん。Processorとやらインスタンス達を使って何をしているのか全くわからないコードだった。

7 March 2025

  1. 編集可能なテーブル
  2. 最近は滅多に書かないtable要素。書いていないと書き方を忘れるし、もっと面倒くさくなって、面倒くさいから書かない、という負のスパイラルに陥りがち。かといってJavascriptをゴリゴリ書くのも面倒くさい。そこでClaude先生の出番です。
  3. 最初は志高く、HTMLソースと同期するように作ってもらったが、バグが酷いしたいして必要な機能でもなかったので削除。Shift+Enterで改行する機能も実装できなかったがセル内で改行なんてしないことがほとんどなので諦めた。
  4. Claudeはプロンプトにマークダウンが使えたり、ソースらしき文字列を貼り付けるとプロンプトとは独立したアップロードファイルとして扱ってくれたりと、Chat系では今一番使い勝手がよく、しかもLLMはClaude 3.7 Sonnetが賢い。
  5. 問題はChat量の制限が厳しいところかな。仕方ないからクエリをcaptionに書くコードだけ自分で書いた。
  6. で気づいたんだけど、以前のチャットでシンタックスシュガーで見づらくなるのは嫌だ的なことを言ったからか、アロー関数を使うのをやめてしまったようだ。いやそれはええんやで
  7. まあ直す意味もないのでこのままにしておく。どうせ直すとしてもまたClaudeに投げると思う。
  8. 上記のHTMLアプリは検索エンジンに登録。ショートカットはtable!、URLはhttps://stream.jintrick.net/2025/0307/table_source.html?%s。使い方はtable! キャプション文字列。あとは触ってりゃ理解できる作りにした。
  9. なんか、こういったbookmarkletアプリをもっと量産しよう。今回は文字通り朝飯前に作った。
  10. GitHub Copilot拡張をVSCodeに入れてある。何故か無料で使えるw
  11. 現在開いているソースがコンテクストなのでプロンプトを書くのがとても楽ではあるが、コードの色分けをしてくれなかったり文字が小さかったりするので、Claudeに比べるとちょっといまいちかな。
  12. まあ、無料だしいいか。
  13. GitHub Copilotは、コードを書くときに、そのコードの文脈から次に書くべきコードを提案してくれるAIアシスタント。VSCodeの拡張機能として提供されている。
  14. AIアシスタントといえば、ClaudeもAIアシスタントだが、Claudeはプロンプトに入力したコードを実行してくれるのに対し、GitHub Copilotはコードを書くときに次に書くべきコードを提案してくれる。
  15. おいおい、なんかマイクロウェブ日記の記事を勝手にサジェストし始めたぞ。上記の3つの箇条書きは俺が書いたものではない。でも悪くないのでそのままにしておこう。
  16. ひょっとしたらNotebookLM的な使い方ができるかもしれない。まずコンテクスト、つまりCurrent fileについてChatが認識できるか試してみた。Current fileのファイル名わかる? → 現在のファイル名はspring.htmです
  17. あなたが扱えるCurrent fileのサイズに制限はある? → いいえ、現在のファイルのサイズに制限はありません。ファイル全体を扱うことができます。
  18. ほほう!本当かな!?長大なマニュアルを*.mdファイルに変換すれば、GitHub Copilotもインストラクターとして使えるかもしれない。土日でちょっと試してみよう。
  19. ちなみにこのHTML文書のvalidationを頼んだら、無茶苦茶だった。
  20. HTML4.01の話を始めたら、申し訳ございません。この回答は責任ある AI サービスによってフィルター処理されました。プロンプトを言い換えてもう一度お試しください。が発動。何か禁忌に触れたかwww

  21. プロンプトを考えるのは面倒くさいので逐次対話型で進めたい。でもClaude先生の無料枠を使い切りたくない、という需要がこのところ切実になってきた。
  22. そこで、MSのCopilot Webを使って雑な対話を繰り返してまずは土台となるコードスニペットを書いてもらって、そいつをClaudeに検証して手直ししてもらう、という方法を使う。これのいいところは、ある程度洗練されたone shotを放てること。
  23. 直してもらったコードスニペットを一応確認してから、Copilot Webに貼り付けてドヤ顔するまでが一覧の流れwww

  24. PADにアサートというアクションが追加されていた。バージョン2.54。
  25. SNS経由で知ったんだけど、本来PADの更新情報ってどこで見れるのかねこれ。モヤるので無駄にDeep Researchを使ってやれ。
  26. アップデート情報 - Power Automate サポート
  27. Feloが一番まともな答えを返したな。色々見たけど結局2.54の公式情報はどこにもなかった。デスクトップ用 Power Automate のリリース バージョン - リリース ノート |マイクロソフト ラーンこれが唯一の公式情報で、まだ2.53までしかドキュメントがない。たぶんリファレンスとか更新が終わってからなんだろう。
  28. まあともかくテストアクションが追加されたので、データの整合性をチェックするためだけに一々if-elseアクションを定義する必要がなくなった。
  29. デバッグ用に追加したとしてもリリース前に無効化すればいいだけだし、楽になる。

  30. おいおいおいおい、マイクロWeb日記の時代きたねこれ。ウェブに公開する意味はあんまりないけど、こういう雑な日記を気軽に付けることで、GitHub Copilotに有益なデータとして再構築してもらえるんだから。
  31. 9月から12月の買ったものリストとか、出来事のまとめとか、PADのtipsまとめとか、色んな事をお願いできる。
  32. さあそういう前提で考えると、日記をつけるモチベーションが大きくなってくる。扱う情報も少し変わるかもしれないな。
  33. Webに公開するという方針は変えなくていいと思う。ウェブにも公開できないような微妙なプライバシー情報は、すなわちLLMにも渡すなってことだ。
  34. たぶん、はてなブックマークもブックマークレットを自作したほうがいいね。HTMLソースをコピーできるようにしておけば、好きなように日記に貼り付けることができる。貼り付けなくてもいいけどね。
  35. VSCodeをプログラマだけのものにするのはもったいない気がしてきた。
  36. ただ、なんでこんなものが無料で使えているのかを考えると……。うん、活用は「依存しない程度」にしておこう。
  37. tasks.jsonにpythonスクリプトを定義してある。最新セクションのidへのリンクを埋め込みつつFTPプットするだけの簡単なやつだ。BeautifulSoup+lxmlを使ってリッチに処理できている。さらに「タスクの実行」にキーボードショートカットを設定してあるので、日記の更新は結構楽だ。以前もFFFTPのコマンドライン引数を使ってそこそこ楽だったけど、やっぱりDOM+XPathでいじくってからプットできると色々捗る。
  38. TwitterみたいなUIは採用しない。あくまでも媒体はVSCodeで行く。つぶやきといったって前後関係が重要だし、単体で参照されても意味がない内容ばかりだし。
  39. 一応各li要素にid振ることは全く何のデメリットもなく行えるので、やってみてもいいかなと思い始めている。確か日記を始めたときにこれを採用しなかったのは、将来的にXPathを使ってハイパーリンクが再定義されると踏んでいたからだ。数年ぶりにこのあたりを調べてみたところ、全くそのような進化はなかった。

  40. 今年は自転車競技へのモチベーションがゼロなので、身の回りのシステム関係の整理を一気にやってしまおう。まさにその時だ今が。
  41. 自転車通勤もだるいので、自転車自体が嫌になってきている可能性がある。最近はもっぱら、信号待ちでスチルの練習をしている。スタンディングスチルじゃなくてシッティングスチルだ。僅かにでも勾配があれば1分くらい止まっていられるようになった。やろうと思えば延々と止まっていられるのかもしれないが、まだ集中力を必要とするので疲れる。フラットな場所では荷重を後ろに掛ける瞬間にバランスを崩すことがあるので、今はそこを克服するべく練習しているところ。
  42. 前後に振る必要さえなく完全に止まる瞬間ってのがあって、世界が静寂に包まれるような感覚があるんだ。あれが結構好き。たぶん禅も顔負けなくらいに集中できているんだろう。

  43. 保護者会で「英語だけは塾に通わせたほうがいい」と訴えようとする親が物議…一体どうして?「娘は英語が取り返しがつかないほど苦手になってしまった」 - Togetter [トゥギャッター]
  44. どうやら中学の英語の授業がえらいことになっているらしい。知らんけど。塾で学んでいないと見につかない内容を前提として授業が進むとのこと。知らんけど。
  45. で、考えたんだけど、VSCode + GitHub Copilotを使えば英語学習も捗るだろう。学習素材となる長文をマークダウンか何かに直してVSCodeで開き、

8 March 2025

  1. まずい。まずいなこれは。ChromiumのアップデートでChromeもEdgeも検索エンジンのカスタマイズに大幅な制限が加わってしまったぞ。これまでは「検索エンジン」ではなくURLのショートカットとして仕えていたのに、%s、つまり検索語句の入力が必須になってしまった。ショートカット(キーワード)を入力してからスペースやタブを打って、さらに検索語句を打たないとコードが走ってくれない。
  2. いやまいった。恐ろしい改悪だ。急いで代替案を考えなければならん。
  3. ……と思ったんだけど、実体は単なるブックマークレットだから検索エンジンじゃなくてブックマークとして保存すればいいか。CLIで完結しないのが俺には巨大なデメリットだが、逆にプロファイル間で共有できるのは何気にメリットだった。頻度が低いとキーワードを忘れてしまうこともあったし。

9 March 2025

  1. yomitokuをインストールしてみた。pip install yomitoku
  2. pytorch2.6.0もインストールされたようだ。確認:pip show torchVersion: 2.6.0
  3. GPUを使うことが推奨されており、そのためにはCUDAが必要とのこと。うちのGPUはちょい古めなので安定バージョンを軽く調べたら11.8とのこと。yomitokuも11.8~で動作すると書いてある。
  4. CUDA Toolkit 11.8 Downloads | NVIDIA Developer
  5. 動かす前にちと確認したかったので、import torchからのtorch.cuda.is_available()false
  6. geminiによるとpytorchをインストールしなおせとのこと。pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  7. torch.cuda.is_available()true
  8. 早速使ってみる。GPUを使うだけあって、速い。AIを使うだけあってそこそこ正確。読み取れない文字も推測しているのかと思ったが、謎の四字熟語を作り出したりしているのでそうでもないのかもしれない。
  9. PDFとはいえスキャン画像であり、左に90度回転してしまったまま処理させたので、そのあたりも影響しているかも。A4を処理すると90度回転して保存されて設定変更もできないCanonの安複合機なので、Pythonスクリプトを描こうと思う。yomitoku登場でこういった関連処理も増えていきそうな気配がある。久しぶりにのsite-packages案件かもしれない。サクサク書いて拡張していくには便利なクラスを作っておくのが一番。
  10. yomitoku --helpすると、結構色々なパラメータを指定できることが分かる。
  11. --combineを指定するとPDFをページで分割せずに1つのファイルにしてくれた。これデフォでよくね?
  12. マークダウンで出力したらbr要素を挿入されまくった。そこで--ignore_line_break
  13. その他、設定ファイルを読み込むパラメータも色々あったので、もっと柔軟に対応できそうだ。
  14. カレントフォルダの「画像」に対してのコマンド例:yomitoku ./ -f md --combine --ignore_line_break
  15. 出力はjson, csv, html, mdでいけるみたいだけど、ぶっちゃけ修正がめんどいことになるのでjsonかmdの二択でしょ。表データを解析させたらCSVにするといい感じになりそうだけど、個人的に需要がないかな。
  16. というか、うちのクラウドソフト君が.vscodeフォルダを同期してくれていなかったので今の環境では日記のput作業がほぼ手動。フォルダ名^\. を同期対象から外す設定がデフォだった。勘弁してほしい。面倒くさいから明日にしよう。

10 March 2025

  1. 一昨日も書いたが、Chrome 134が検索エンジンのカスタマイズに制限を加えてきた。公式には何も書いていないし、GrokにTwitterを調べてもらったけど誰も何も発言してないらしい。
  2. え???こういうことやってたのって、もしかして俺だけなの?
  3. javascript:(function(){var%20d=document,u=d.URL,t=d.title,d=d.implementation.createDocument("","",null),a=d.createElement("a"),sr=new%20XMLSerializer();a.setAttribute("href",u);a.appendChild(d.createTextNode(t));prompt("[タイトル]:\n"+t+"\n\n[URL]:\n%20"+u+"\n\n[HTMLソース]:",sr.serializeToString(a));})();
  4. これを検索エンジンのURLとして登録して、ショートカットは「link」としておく。開いているページのハイパーリンク文字列を作りたかったら、アドレスバーに「link」と打つとpromptに表示されるのでコピーできる。
  5. このほかにも、CSSの有効無効切り替えとか、つまらん長大なアンケートの自動回答とか、サクラチェッカーにURL渡したりだとか色々登録してあった。CLIでウェブページを操作できるので死ぬほど重宝していたんだが。
  6. で、今朝Grok君にDeep Researchで調べてもらったんだけど、何もヒットしないらしい。
  7. 一昨日、これらを全部ブックマークレット化してしまったわけだが、やはりCLI的に使うのは難しいみたい。ブックマークそれぞれにショートカットを付与することはできないようだ。
  8. で、やっぱり考えたんだが、これまで通りCLIで使っていこうと思う。そのためスクリプトレットにひと手間くわえる。これまで登録したショートカットを打つだけだったところが、ショートカット + space + f となる。
  9. javascript:(%sunction(){var%20d=document,u=d.URL,t=d.title,d=d.implementation.createDocument("","",null),a=d.createElement("a"),sr=new%20XMLSerializer();a.setAttribute("href",u);a.appendChild(d.createTextNode(t));prompt("[タイトル]:\n"+t+"\n\n[URL]:\n%20"+u+"\n\n[HTMLソース]:",sr.serializeToString(a));})();
  10. 変更点は最初のfunction()%sunction()に変えただけ。
  11. そうするとスクリプトレットだからと侮ってgitで管理してこなかったのが少々悔やまれる。
  12. これを機にgitの依存度を上げていこう。

11 March 2025

  1. Chrome 134、検索エンジンの登録ではそもそもjavascriptが無効化されていたのでスクリプトレットは動かなかった。少なくとも現在ページのdocumetオブジェクトを参照することは難しい。
  2. そんなわけでブックマークレットを作ったのは無駄ではなかった。
  3. [B! エンジニア] エンジニアと営業仲悪い問題について|みずくん
  4. 人間関係のトラブルはほぼ「ないがしろにされた」と感じるところから始まるっていうコメントがあって、なるほどそうかもと思ったので経験に照らしてみると、結構な数が当てはまる。
  5. 「読みやすいコード」を依存グラフで考える
  6. そういえばこのところは手続き的なコードと宣言的なコードがなるべく混ざらないようにしている。読みやすいから。

  7. 謎の怪奇現象に遭遇。設定と異なる固定IPアドレスのTCP/IPプリンターに印刷キューが渡されてしまう。
  8. 最初固定IPを食い合っているのかと思ったが、違う。arp -aでMACアドレスを確認してみたが、おかしなところはない。HTTPプロトコル(ブラウザ)でIPを叩いてみても同様。
  9. 今回は急ぎだったのでプリンターの設定を削除してポートも削除。両者を作り直して同じドライバーに紐づけたら直った。
  10. 原因不明ながらGrokと対話で可能性を絞り込みながら推測してみたところ、Windowsのプリンターのスプーラー(印刷ジョブを管理する中枢)のバグだった可能性。次回発生時は:net stop spooler, net start spoolerで再起動を試してみることとする。
  11. ちなみにGPT-4oはハルシネーション炸裂でとんでもないワードを次々繰り出してきてワロタ。曰くSNMPが同機種のIPに勝手にリダイレクトしていて、そいつは「スマートリダイレクト」機能なんだとか。MSなら、確かにそういうことやりそうw かなり「それっぽい」解答ではあるので、4oなりに頑張ってるんだなーと思った。
  12. Grokはやはり例のSNSのデータベースを持っているのが強みで、こういったイレギュラーな不具合については先行事例を引いてくれるので結構頼もしい。試しに自分のtweetを拾ってくれるか試してみたところ、数分前の名もなきユーザーの投稿にもかかわらず、きちんと解析対象になってはいた。なって「は」いた、というのは、Deep Researchの過程では登場したものの、最終的な結論で俺のtweetが使われることはなかったからだ。まあその辺も含めて妥当かな。結局俺が試しにtweetしてみた内容は、早とちりの誤情報だったし。

12 March 2025

  1. VSCodeの言語モードHTML/PHPでCtrl + /と打つとその行をコメントアウトしてくれた。偶然発見。
  2. ファイル → ユーザー設定からキーボードショートカットを変更。タスクの実行にCtrl + Alt + Tを割当てる。
  3. .vscodeフォルダの同期も完了していたので、自宅PC1の環境でもPythonスクリプトが動かせた。
  4. 一部のウェブページ用スクリプトレットはこちらに移行することにしよう。
  5. ……移行完了。
  6. と思ったらtasks.jsonに追記するのを忘れてる。jsonを直接書くのは嫌だなあ。
  7. なーんて考えていた時期が俺にもありました。なんとGitHub Copilotが次々と推測してくれるのでとても楽に書けた。invalidは波線で教えてくれるし。俺が書いたのタスク名だけだよ。タスク名からPythonスクリプトを推測してパスをサジェストしてくれたので、俺はタブキーを押しただけ。
  8. 下手にツールや拡張に頼るより、このスタイルの方が断然賢い。

  9. 長年モヤっていた概念が言語化できそうなのでメモる。
  10. ストレージとメモリとCPU。どれも優れている人はいて、世間では評価されていると思うんだが、いくらCPUが優れていても、メモリが足りないと能力を発揮できない。そういう埋もれた人材も沢山いる。
  11. ストレージが粗悪なSSDだと記憶が揮発してしまう。だがストレージとメモリはツールなり助手なりで補うことができるのではないか。そう考えると、CPUの演算能力に異常に特化した個人というのは必ずいるはずなので、そいつらの能力を人類は思い切り活用することができるようになるはずだ。
  12. ところが世間では、主に頭の良さというのはメモリやストレージの容量で測られることが多い。いや世間に限った話ではなく、本人もそのような基準で自己評価を下してしまうことが多いだろう。何せメモリが足りないせいで様々な能力を発揮できないんだから。勉強も嫌いになり、結局は自他ともに馬鹿扱いで一生を終えるかもしれない。
  13. これは本当にもったいない。人類のフロンティアここにあり!!
  14. 頑張って時間と手間をかければ大抵のことは理解できる、くらいの層の中に、天才が大量に埋もれている可能性あり。
  15. 長期短期記憶を補うツールの発展を願うばかりだな。
  16. 長期短期記憶が優れていると「おしゃべり」が得意になる傾向がある。色んな引き出しから会話の関連性の高い色んな情報を瞬時に出して、人の顔や名前などのプロパティもすぐ覚えて忘れない。そういう人らが人の上に足ったりするんだが、その人たちのCPUってどうなのよ?

  17. モニタの新調を検討したい。10年来使っている縦長にできるモニタをセカンドモニタにして、メインに解像度の高めなやつを持ってきたい。流行の曲面ワイドモニタよりも、16:10の縦長と16:9の横長を併用したほうが何かと便利だよ。スクロールなしでコード全体を読めるケースが多くなるしね。

  18. キーボードの設定を見ていたら、入力インサイトなる項目があることに気づいた。AIで入力候補をサジェストしてくれるっぽいことが書いてあるのだが、全く役立っている気配がない。軽く調べてみると、モバイルデバイス向けというかタッチパネル入力用の機能なので、そういった用途がなければオフにして問題ないとのこと。
  19. ちょっと情報が古い。キーボード入力で動いているとも思えないので、あまり気にすることもないだろう。

  20. Python - Wikipedia #歴史
  21. どういう改良が加えられたのかについて、ざっと流し読みしてみる。
  22. たしかきちんとドキュメントを通して読んだときのバージョンは2.4だったかな。
  23. Guidoはもうバージョンアップに携わってないんだな。今、MSの社員らしいw
  24. なんで今さらPythonを学び直したいかというと、何といっても俺の知識が古すぎる。生成AIの吐いたコードを正しく読めないのはまずい。
  25. Guidoがいないからなのか何なのかは知らんけど、Pythonらしからぬシンタックスシュガーが多くなっている気がする。
  26. そしてやっぱりフロンティア分野ではささっと書けて、かつ読みやすく、用途が多岐にわたるPythonが使われることが多い。
  27. だから、これを高速に読むするスキルは必須に近い。Pythonコードってコメントみたいなものだから、可読性を落としたら価値が激減すると思っている。可読性を上げるには構文を工夫するか、さもなきゃ自分が慣れるかのどちらかだ。構文の工夫は3.xで限界を迎えつつあるらしいので、こちらが歩み寄るしかない。
  28. 学び直すいうても、もう本とかネットのドキュメントみたいな媒体は使わん。今時のやり方は生成AIとの対話を通じたテーラーメイドな動的コンテンツを貪り食うというのがトレンドかと思われる。
  29. 私のPythonの知識はバージョン2.4くらいで止まっています。いま20年ぶりにPythonコードを読み書きしまくる必要性に駆られているので、私専用のチュートリアルを開始してください。
  30. 承知いたしました。Python 2.4 から最新の Python 3 への移行、そして現代の Python コーディングに合わせたチュートリアルを始めましょう。20年ぶりの Python、楽しみですね!
  31. こんな感じ。3.x向けのコードもいくらか書いてきたけど、不安なのでこういうプロンプトになった。
  32. range()がイテレータを返す? いいね当然そうあって欲しい。
  33. おっと、チュートリアルタスクがprint "Hello World"をPython 3に変換しろみたいな何のひねりもないつまらん内容で生成された……
  34. リスト内法表記について、[x**2 for x in range(10)]みたいな例を出してきた。折角range()がイテレータを吐くのに、リストに変換してもったいないなーと呟いたら、ジェネレータ内法表記を教えてくれた!
  35. (x**2 for x in range(10))って。いやタプルっぽい表記にするだけ。基本こっちを使おう。要件に応じてリストにすりゃいい。

13 March 2025

  1. 仮想環境の構築が面倒くさい。
  2. pipは賢そうに見えて、意外と環境の差異を吸収してくれない。バージョンが古いとかで問題が起こるケースも。
  3. なんかもう、いいや。importエラーみたら都度、インストールすればええやんか。それが面倒くさくなってきたら考えよう。あくまで個人的な環境の話だし。

  4. 厚労省のExcel VBAコードを読む羽目に。
  5. Option Explicitがない。そして全ての変数がVariant型で宣言されている。というより宣言が省略されている。
  6. イベントハンドラに全処理が手続き的にべた書きされている。
  7. 何の初期化処理も入れずにRange#Findメソッドを使っている。
  8. カラム数に意味が持たされ、マジックナンバーが随所にちりばめられている。
  9. なんじゃこりゃと訝っていたらところに遊びに来た他部署の科長さんと共にこのマクロブックの「意図」をよく見てみたら、単にアンケートをグラフにするというだけの代物だった。非常に驚いた。
  10. ボタンをクリックすると人数分のエクセルブックが作成され、従業員は「チェック文字 or からっぽ」を選択するだけのドロップダウンメニューが仕込まれた大量のセルを選択させられるようになってる。ツッコミどころがありすぎてヤバい。
  11. これらの複数のエクセルシートを生成し、それぞれからデータを抜き出してグラフ化するマクロだったというわけだ。
  12. いやそれ、やるなら普通Googleフォームか何か使いますよ?
  13. 生産性向上のための分析ということだけど、逆に生産性が落ちそうw

  14. 量子力学最大の未解決問題 -観測問題と解釈問題-【ゆっくり解説】【雑学】 - YouTube
  15. 「腑に落ちました!」みたいなコメントばっかりで、俺が阿保なのかと思ってGrok君に相談してしまったよw 二重スリット実験の説明をしてもらい、実験名とか研究者とかの名前を挙げてもらって、裏を取った。
  16. 視聴者たち、何が腑に落ちたのか知らんが、この動画ではどちらのスリットを通ったのかを観測した結果については言及していない。それなのに観測前後で振る舞いが違うことの説明をつけているので、俺は腑に落ちるどころか狐につままれたような気持になった。観測前は波だけど観測したら粒子の振る舞いになったということなのに、その「観測」をまだしていない、1800年代の実験の話しかしていないのに、一体何が腑に落ちるというのだろうか??
  17. もしかしてこの世界って、よく分かっていないことをよく分かっていない人がよく分かっていない人たちによくわからない説明をして、よく分かったと思い込んでいる世界線なのかもしれない。
  18. とりあえずまだ、量子力学の解釈については、よく分からないままにしておこうかな俺は。

14 March 2025

  1. 【解説】ヴァンス米副大統領が見ている世界とは――なぜそれが重要なのか - BBCニュース
  2. 良記事。もっとわかりやすい外交になる。
  3. 今朝は来訪予定だった外国の使節団が土壇場でキャンセルとなり、職場に安ど感が広がるのを見たw
  4. 俺もちょっと準備に携わったけど、まあほぼほぼ生成AIにやってもらったので安堵しただけの一人。物理的な準備に奔走していた人たちには悪いけどね。
  5. Amazon | 成城石井オリジナル スペシャルブレンド 500g | 成城石井 | 焙煎 通販
  6. 久しぶりにギリギリ美味いと思える珈琲を飲めた感……。「不味くはない」珈琲ばっかりだったから。
  7. 駄目な豆は、適切な湯温で抽出すると旨味より雑味が多く出てしまう。こいつは久しぶりに温度管理したお湯でたっぷりとコクと甘味を抽出できる豆だ。欠点豆が結構目立つし雑味がないとは言わないけど。

  8. GeminiのGemで「テーラーメイドニュース」というカスタムチャットを作ってみた。ニュース記事一覧を生成してもらおうと思って設定したんだけど、テキストを吐くだけの期待外れのものが出来上がってしまった。俺が適当に挨拶すると、生成AI関連、世界政治等々、俺の関心時の最新動向について概要を述べてくれる。Pythonが人気です!みたいなどうでもいい内容も混ざっているけど。
  9. でも何だかんだ会話とかを通じてクラウドネイティブという概念について理解を深めることができたりしたし、悪くないかもしれん。気になった話題について理解を深めていける次世代ニュースのひな形だ。
  10. よく考えてみると、NotebookLMみたいにRAGとして使えるアプリが出てこないかな、っていうの今の最大の関心事だから、具体的に設定しておこう。
  11. 課金してAPI使えれば、こういうのやりたい放題なんだよな。プログラマの時代が来たって言っていた人がいたけど、まさにその通りだと思う。利活用の桁が違ってくる。
  12. プログラマーの時代が来た。そしていま俺はプログラミングに集中できる環境にいる。年齢がどうとか気にする人もいるが、幸い今のところ理解力とかの衰えを感じることはない。体力も20代のころよりは上。40代よりは下。眼は悪くなったけど。自分のスキルの伸びに沢山投資しておこう。
  13. 更に作ったカスタムGem。その名はファクトチェック。カスタム指示はこんだけよ。「ユーザーは入力した命題について、正しいかどうかを知りたがっている。」
  14. おれは命題を打つだけで済む。こりゃ楽だわ~。使用頻度も高い。でもGemini Flash2.0がまず間違えないような内容に限られるけどね。「ES6のclass構文はプロトタイプチェインのシンタックスシュガーである」って入力したら、はい、正しいです とのこと。
  15. だったら俺はプロトタイプチェインの方が慣れているからこっちを使いたい。 むしろプロトタイプチェインを使えることは大きな強みなんだそうだ。ホントかなあ。
  16. よくよく聞くと、インターフェイスは形式的に実装不可能みたい。ならますますプロトタイプチェインでええやんか。継承していくだけだったらチェインつなぐだけだしstaticメソッドはつながなきゃいいだけだし。
  17. とはいえ別に強みになることもなさげ。まあ他人が書いたJavasciptを読む機会なんてそれほどないからいいか。いざとなれば生成AIに変換してもらえばいいんだし。
  18. アロー関数を使っていくべきかについては、thisのスコープが外部になってしまうという点で一瞬迷ったけど、いやいやコンストラクタだけはfunction文を使うようになるということだから、かえって読みやすくなる可能性あり、だ。案外すぐに慣れたので使っていこう。

  19. 今日はPythonのチュートリアルを一時中断してJavascriptを書いた。Promiseオブジェクトの理解も深まって3.7 Sonnet先生に自作クラスを褒められた。この先生褒め上手でいいね。いやマジでこれは真似しようと思う。テンプレ案件。やり口はこうだw:
  20. コードを検証しました。素晴らしい実装です! いくつか気づいた点をコメントします
  21. ……からの、全体的に非常によくかけていますクラス定義と各メソッドの実装が明確で読みやすいエラー処理が適切に行われていますなんちゃらメソッドの三項演算子による分岐もスマートです
  22. みたいな感じで、一瞬なにか引っかかったように思わせておいて、最後まで矢継ぎ早に誉めそやす。
  23. 不安をくすぐりつつ、どんでん返しで安心させるメソッドとでもいおうかw
  24. 秀逸なのはその匙加減だろう。不安はちょっとだけにして、安心をでかくする。
  25. なんだかんだ言って、結局class構文は利用することになりそうだ。Tampermonkeyスクリプトに記述していくのに、単一のブロックにクラスの定義を全部収めると可読性が上がるというのが専らの理由。

15 March 2025

  1. Gemini カスタムGemだけど、テーラーメイドのニュースはやっぱりだめだ。Deep Researchを履歴で使った方がよっぽどましだった。
  2. ……と思ったら無料枠だと月に5回までしか使えなかった。
  3. Pokemon Sleepをやってみたけど、起床時の大切な時間を奪われている感覚しかない。面白い面白くない以前にタイパが悪すぎる。
  4. 起床したら、とりあえずさっさとレポートを表示して欲しい。何回タップさせれば気が済むの。初日はチュートリアル要素があったから我慢できたけど、毎朝このタップ地獄を通過するのは無理や。起床時にイライラしたくない。
  5. Chat GPTの「Google Driveに接続」はRAGの実装かと思って期待したら違った。単にアップロードのソースとして選択可能なUIが提供されただけ。手動RAGとは言えるかな。

  6. Javascriptのリハビリがてら、15年ぶりにChrome拡張を書いてるんだけど、色々な攻撃があったんだろうなあ。manifest.jsは聞き及んでいたけど、chrome.scripting.executeScriptに渡すコールバック関数内でしかdocumentにアクセスできなくなっている。
  7. 完成!昨日の夜から始めたので結構時間がかかった。Javascriptの新機能に出くわすたびに好奇心が刺激されて脱線しまくるので、コードを書いていた時間は2時間もなかったんじゃないだろうか?ほとんどの時間をclass構文とか非同期処理とかhtml5とかの知識を深堀するのに費やしていた気がする。
  8. 中身はなんてことないんだけど、chrome.tabs.tabを非同期で取得して(このあたりを管理する責務を負わせたクラスを別ファイルに定義)、titleとurlの情報をテンプレートリテラルで各種フォーマット(html/md/json)に変換してnavigator.clipboardを使ってクリップボードにコピーする、というだけの代物。
  9. これを作った動機は、ブックマークレットからだといずれそのうち非推奨メソッドであるexecCommandが使えなくなるのを嫌ったから。
  10. 拡張機能の権限を使えればコピーはすこぶる簡単なので、もっと気軽に拡張を書ける環境を整えておきたいところだ。探せば誰かが作ったものはあるとは思う。でもTampermonkeyを入れてみて分かったのは、ユーザースクリプトマニア御用達みたいな拡張は要らないってことだ。自分が必要とするスクリプトだけを実行したいだけなのに、あんなに重たい拡張は不要だよ。今回俺が書いたパッケージって今のところ全部で6KBしかない。最初はjQueryを読み込んでみたけど、止めた。なぜってgetElementByIdなんて1行しかなかったくらい文書操作の既述が少ないから。id属性をkeyとしたイベントリスナー関数の辞書を使って反復処理してる。この辞書はjsファイルの先頭に記述され、機能拡張の際に書き足せばいいようにしてある。
  11. ちなみにGemini 2.0 Flashを助手にして開発したんだけど、保守性の悪い手続きだらだらコードしか吐いてくれないので、構造はほぼほぼ全部書き直した。それをClaude 3.7 Sonnetにまた書き直してもらって(笑)完成。……仮に丸投げしてたとしても動くものが作れそうな感じはしたね。
  12. ここでふと思った。機能拡張もLLMにやってもらうとしたら、保守性なんてどうでもよくないか?たぶん誰もがそう思ってるんだろうな……
  13. でもやっぱりまだまだ怖いとこがあるよ。「3.7 Sonnetに書き直してもらって完成」と書いたけど、コードを読んでみたらencodeURIComponent関数が消されていて、何か理由があるのかと思って聞いたらミスでしただそうな。こういうのってエラーとして上がってこないので、どうにかして気づく必要がある。人の目で確認するか、出力を検証するコードが必須かな。
  14. VS Code:エディタの行折り返しをデフォルト設定にする | 電脳産物
  15. Chromium拡張「Copy Link As」を使って作ったリンク。なんかちょうど日本語2バイト文字のURLだったので試しにコピーしてみた。
  16. マークダウンでコピーするとこうなる:[VS Code:エディタの行折り返しをデフォルト設定にする | 電脳産物](https://dianxnao.com/vs-code%EF%BC%9A%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%AE%E8%A1%8C%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E3%82%92%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%99/)
  17. 一応JSON形式にもできるようにしておいた。こちらはURLのエンコードなし。
  18. (追記)というかURIエンコードについてとんでもない勘違いをしていた。昔の自分の書いたJSソースを読んでみたらXMLSerializerを使ってURL全体をテキストノードにしてHTMLコード用に文字列化していたので、あれ?っとなって気づいた。encodeURIはSGML/XMLの特殊記号をエスケープするんじゃあない。URIとして使えない文字をエスケープするんだった。記憶違い怖え。

16 March 2025

  1. 残念ながら、自作の拡張(Edgeに言わせると「展開した拡張機能」)は開発者モードでのみ動作可能になっていた。
  2. 一方で、URLがedge://.* なページでもちゃんと機能したのはちょっと驚きだった。開発者モードだから?と思ったけど、ページに影響を与えないかららしい。
  3. 調べてみると別にChromium拡張を公開するのは簡単らしいので、やることにする。
  4. そうすると何かあったときに戻したりできるよう、Gitで管理ということになってくる。そっちがやや面倒くさい。
  5. ……と思ってリポジトリを作ったはいいんだけど、いま拡張機能の公開は有料らしい。わらい。
  6. 3.7 Sonnet先生の書いたコードに「恐れながら…」とツッコミを入れたら、あなたのアプローチは非常に良い点を指摘されています!classを使用して状態を管理する方法は、CSSとJavaScriptの関心を明確に分離するため、実際にはより良い選択肢です。これはCSS-in-JSのアンチパターンを避け、より保守性の高いコードになりますって、既にアンチパターンとして呼び名まであるんかい!
  7. だったら最初から書かないでほしい。色の名前をハードコードしたりするのもアレ。一応htmlファイルのほうも読み込ませているんだけどなあ。
  8. AI様には関係のないことかもしれないけど、人間という愚かな生き物が読み書きしていかなきゃいけないので、保守性を考えて設計してほしい。
  9. しかしまあ、そんな呼び名が付いてしまう程度には世の中に糞コードが出回ったということなんだろうな。
  10. 今一つ謎なのが、20年ほど前、HTMLとCSSで構造とスタイルの分離をするという考え方をひたすら否定するITエンジニア界隈があったこと。よくそんな性癖なのにプログラミングなんてやれていたものだと逆に感心する。つーか息してんのかな?
  11. 想像するに、そういう人らがCSS in JSみたいなコードで保守性を下げて多くの人に迷惑をかけてきたに違いない。

  12. やっぱりこれもう、限界だわ。モニタがたりない。もう一つ買わざるを得ない。
  13. こういうのはGrokのDeep Researchが得意そうなので、早速相談してみた。
  14. LG 27UP600-Wを勧められたけど、amazonでは中古しかない。

17 March 2025

  1. Copilot Webの PWAアイコンがスタートメニュー上から消えていたのだが、今朝4倍くらいのデカさになって復活した。主張しすぎてうるさいのでアイコンサイズを小にした。目立ちたがると逆効果だよMSきゅんw
  2. モニタの件は少し悩むけど、心地よく仕事ができる環境は大事なので何とかしたい。LGのモニタっていうのが引っかかる。いままでLGは碌な体験がないからな。

  3. Power Toys RunってもうちょいWeb検索をカスタマイズできないのだろうか。検索エンジンを自由に選びたい。ブラウザに登録した検索エンジンを読み込んでくれないだろうか。要望出してみようかな。
  4. Grokに相談したら、この要望をきちんとした構造で書き直してくれた。GitHubリポジトリのissueフォームをみると必須項目が分かれていたので、それに投稿できる形に書き直してもらって、投稿。自分じゃ面倒くさくなって絶対やらなかっただろうなあ。
  5. Add Custom Search Engine Selection to PowerToys Run Web Search · Issue #37984 · microsoft/PowerToys
  6. まあ無理目なら自作するわけだが、そうなるとTypeScript+HTML+CSSがいいな。
  7. ……ボットから返信があった。何年も前から同様の要望が届いているんじゃん。ってことは作る気ないねこれ。
  8. 類似の要望を読んでみたけど、なんか説明が下手糞過ぎて全然魅力が伝わってこない。
  9. 自作するとしても非常にシンプルなアプリになるだろう。前々から手を出したかったフレームワークがあるんだ。Electronだっけかな。VSCodeもこれで作られているというのだから驚きよ。日曜プログラミングで作るのが楽しみ。
  10. はじめに | Electron

  11. 拡張機能のネタがもう一つ浮かんだ。ウェブページの要素を右クリックで「コンテンツをサイドバーに表示」。サイドバーのスタイルシートはマルチカラムを指定。直近の祖先ブロック要素をターゲットにするが、気に入らない場合は祖先方向にターゲットを変更することができるUIを提供する。ターゲット要素が確定したらサイドバーを目一杯広げる。ドラッグでやるのはタルいのでこれもUIを提供する。
  12. これがあれば個人的にくっっっっそ便利。
  13. 拡張機能の制作に慣れてきたらこれ絶対作るわ。
  14. 探しても多分ない。世の中結構マルチカラムが嫌いな人が多いらしいので需要がなさそうなんだよな。multicol指定はサイドバーの幅を縮めれば1行にすることはできるし、スタイルシートはカスタマイズできればPublicな拡張にしても悪くはなさげ。
  15. マルチカラムで画面いっぱいに文章が並ぶのを嫌うらしい。そんなもん慣れだって。それよりも両手が自由になることの方がはるかにメリットが大きい。マウスに手を添えてスクロールを待機する必要があると、その分集中が削がれることになる。腕組みしたり頬杖を突いたりしながらじっくり文章を読む至福感を知らんのだろう。
  16. つまりマウスに慣れるかマルチカラムに慣れるかって言われたら、後者を選択したほうが生産性は上がるわけだが。こういうことを理詰めで説明しても理解できない人たちが多いんだ。「慣れたくな~い」みたいな感じで拒絶する。タッチタイプと全く同じ構造の話だなこれは。
  17. こういう構造の話って、若い頃はイラっとしたけどいまは全く逆で、むしろメシウマ案件でさえある。マクドナルドで行列作って並んでいる人の横を抜けてモバイルオーダーであっという間に商品を掻っ攫って店を後にした時のメシウマ感と同じだな。他人の不幸を見て自分の幸福を実感する。
  18. というか、同アカウントで同期したいのでデベロッパー登録はすることにした。初回5ドルだけっていうのはAppleに比べると文字通り桁違いに良心的らしい。公開できる拡張機能は20個まで。まあ足りるでしょう個人開発なら絶対。

  19. “スタバ”に約74億円の損害賠償支払い命じる…ドライブスルーで熱い飲み物こぼれ客が重度の火傷を負った裁判 アメリカ|FNNプライムオンライン
  20. 夏井先生によると、たかが80℃のコーヒーで「重症熱傷」になるわけがありません。これは多分、その後の治療でゲーベンクリームなどが使われたために深くなった「医原性3度熱傷」の可能性が高いと思います。スタバが気の毒です……とのこと。

  21. 歯磨きしてたら、ふとGeminiカスタムGem案が浮かんだ。新しく出会った英単語の意味論を語ってもらう。単語は根源的な意味があってそれが多義に派生していくので、その全体像を掴みたい。
  22. カスタム指示はどう書くかな。

  23. PADフローでWeb UI系のアクション全般に言えることだが、こいつは「UI要素の追加」で作成されるパスはもう端っから使わないほうがいい。特に要素のid属性が特定できたのなら、それをルートにして相対パスを指定していくべき。デフォルトのパスは、完全に子ノードを辿る形でパスを記述するので無駄が多い。EdgeならDevToolsを使ってセレクターを特定した要素のセレクターをコピーしてしまえばいい。そいつをjQueryセレクター風に書き直せばいい。ウェブページの構造が変わるたびにこれをやって追随するしかない。
  24. UI要素の追加は、完全に劣化版のDevToolsだ。Chromeではなんと言ったかな。昔はDOM Inspectorと呼ばれていた気がするやつ。ともかくビジュアルで要素を特定できていない。スタイルシートのパースが適当だからか、要素を正しくピックアップできない場面が存在する。
  25. いや、これPADのChromium拡張の不具合っぽいな。要素ピッカーがまともに動作していない。拡張の再インストールとかで直るかもしれん。まあそういうこともあるので自分でセレクターを書きましょうという話。そんなに難しくないしね。
  26. 要素は特定できたんだけど、クリックイベントが発生しない。DevToolsで調査してみるとフォーム部品が実体と表示用で分かれているっぽくて、表示用要素のクリックイベントから何かを受けとって実体の部品のイベントが発火しているらしく、久しぶりにドツボに嵌った。JSのソースを読んだけど変数名がアルファベット大文字1文字だったり名前が全てがマジックナンバーで表現されていたり、なにかのGUIツールで作られたサイト臭がプンプンする。とてもじゃないけど読む気にならない。厚労省から委託を受けた会社が作っている。今思えばAIに解読してもらう手もあったかも。
  27. 結局、要素の位置は特定しているのでマウスポインターをホバー移動させて、クリックを送信したら動いた。最終手段「画像認識」の1歩手前だな。画像認識はズレやすいし重たいので最終手段。
  28. 今日はほとんどこの問題に対処していた気がするな。最後はブラウザが開発者モードの時だけ出てくるPAD拡張の警告ポップアップに上記のクリック送信が邪魔されてしまう。いい加減にしてくれ。
  29. Study Finds That AI Search Engines Are Wrong an Astounding Proportion of the Time
  30. Grok3は94%の確率で嘘をつくそうな。さっそくマイクロプラスチックがどうとかLGBTがどうとかいう話題ばっかり取り上げている気候変動関心系アカウントが飛びついていたけど、意識高い系は確証バイアスが強すぎて困る。意識高い系 = 確証バイアスが強い系 といってもいいんじゃないかと思う。
  31. 俺は今日もGrok君に教えてもらった情報で色々と捗っている。IMEのオンオフをマウスポインタで教えてくれるソフトをDeep Researchで探してもらって、一発でドンピシャのフリーソフトを入手できた。この手のソフトは5,6年毎に探しているんだけど、動作が重たかったり余計な機能がついていたりしてどうもしっくりこなかった。今日Grokに教えてもらったIME Cursorは物静かなので気に入ったよ。2019年リリースだって。見覚えのあるアイコンだと思ったら昔お世話になっていたFastCopyの作者だった。
  32. とはいえ生成AIが嘘をつかないかというと、そんなことはない。むしろ生成AIはウソしかついていない。限りなくそれっぽいことを言っているにすぎないのだよ。正確に表現すると、人間に正しいと思ってもらえる確率の最も高い回答を提供する。学習内容によってはほとんど真実を述べているように見えたりもする。たとえばウェブページのソースを調べさせると面白い。ちょっとお行儀の悪いHTML文書のURLを示して、そのメタデータを「推測させる」わけだ。たとえばid属性値とかね。ほぼ100%間違えるはずだ。完全にあてずっぽうで回答していることが分かる。本当に中身のソースを読みに行くLLMアプリなら話は変わってくるけど、無料のチャットAIアプリならそんなことはまずやらない。
  33. 全ては使い方次第。「信じる/信じない」という軸で生きている人たちにとって、生成AIはさぞ邪悪な存在に見えていることだろう。愚かなことよw

18 March 2025

  1. デスクトップ用のゴミスタイルシートで表示される長文を読む際、MS Edgeでサイドバーを開いて「サイドバーで開く」をやるとモバイル用のスタイルシートで表示してくれる。そこそこ捗るものの、こいつのデメリットはユーザースタイルシートが使えない点だ。長文はNoto Sans JPで読みたいのに、Sans Serifのブラウザ標準フォントで表示されてしまう。游ゴシックはWindowsで読むとなぜか弱々しくて妙に読みづらい。
  2. 今のところ最適解は、まず上記の手順でサイドバーに表示した後、新しいタブを開いてedge://settings/fontsに移動し、サンセリフフォントの一覧をドロップダウンし、「Noto」と打ってEnterすることだ。この設定ページはブックマークバーに登録しておく。「設定」なる名前で登録されてしまうので「フォント」に変更しておく。自動で設定アイコンがついてくれるのでこれで十分。
  3. デメリットはもう一つある。広告ブロックの拡張が機能しないことだ。つまりブラウザ拡張が一切機能しない。なんちゃら.scripting.excecuteScriptはあくまでタブ内のドキュメントが対象だからな。既存のサイドバーに干渉する権限があるかどうかはまだ調べてない。
  4. それゆえ余り使い物にならないシーンが多い。サイドバー拡張を自作するモチベーションが上がる。Multicol Sideberがいいかな。名前。

  5. CSSマルチカラムレイアウトのスクロール問題 | Shared Grok Conversation
  6. これ数年毎に調査してたんだけど、今回から生成AIに頼ることにした。さすがに捗る。
  7. とりあえずまだ解決されていないみたいだな。トランジションみたいな無くても誰も困らないお遊び機能はごちゃごちゃつけるのに、こういう実務的なやつは全然進まねえ。
  8. Gemini 2.0 Flash。プロトタイプチェインを理解してなかった。コーディングパートナーっていう名前のGemが用意されているから使ってみたけど、やっぱり初期の設計段階ではClaudeを使わせてもらおう。細部はいいんだけど設計の前提がおかしいと後々のダメージがでかいからな。

  9. ヘイトコンテンツに対する基本的な考え方。
  10. 割と簡単。ヘイトコンテンツの作者は情報収集とその価値判断について非常に強力な確証バイアスを働かせる。したがって、ヘイト対象について悪い面しか語らないし、その「悪い面」について根拠が全くない場合がある。つまり、対象について知るべき情報があったとして、その半分以下しかえられず、その内容も信憑性が著しく低いと考えて問題ない。レトリックを使われているので、全ての情報について一々しっかりとした裏を取りに行く必要があるばかりでなく、背反する情報についても調べなければならない。それが面倒なら、最初から観ない、読まないことが推奨される。
  11. 近年の最も分かりやすい例としては、ウクライナ戦争におけるロシアに対するヘイトコンテンツが挙げられる。
  12. 戦争開始当初から2年もの間、これらのヘイトコンテンツにおいてはロシアの失態「だけ」が報じられ続けた。ロシアの失脚は時間の問題であると思わせるに十分な内容が2年もの間続けられたのである。
  13. ゆっくり系、ずんだもん系?のYoutube動画の中にゴミの山かと思うほどこういうコンテンツがある。そしていい大人がこういうゴミを視聴して溜飲を下げている。
  14. 何と愚かなことだろうね。
  15. あと、子供に説明するときに必要なのはヘイト対象となりうる概念。国、人種、政治体制、性別、学歴、まあ主なものはこれらなので例示するとして、大事なのはこれらに共通するのは何かということだ。ここを抽象化できれば恐らく、ヘイトコンテンツに対する心構えは大丈夫だろう。簡単に言うと「でけえ主語」。この辺は自分で可替えさせて自分の言葉として吐き出させた方がいいだろう。

  16. 日記のフォント指定を変更。serif, sans-serif, monospaceのみにした。
  17. なんでウェブフォントなんて使ってたんだろ?気でも狂ってたのかな。

19 March 2025

  1. やべえ。楽しすぎる……
  2. Claude 3.7 Sonnet先生のクラス設計を論破するのが楽しすぎる……
  3. こちらもたまに「指導」されるんだけど、お互いに間違った点は素直に認めていって、結果良いものが出来上がる。課金してないと遊び過ぎが制限されるのがまた良き。最高です。
  4. これ以上楽しい「一人遊び」って、俺はあんまり知らないんだけど。あったかな? いや、なかった気がするな。というかこれ、「一人遊び」に分類していいのか?
  5. よく分からなくなってきた。
  6. 一方で、Gemini 2.0 Flashはあかん。要件定義を満たさないコードを書いてくる上、変数名にセンスがない。booleanだからといって無闇矢鱈とis接頭辞をつけたがる。Claude先生が書いたコードを渡したら酷く改悪されてしまった。Grok3も同様にあかん。GPT-4oは比較的マシ。Deepseekはまだ試してないなそういえば。Copilot Webはいまトラブルで動かないらしい。別に使ってないからいいけどね。

20 March 2025

  1. [VSCode] タスクへのショートカットキー割り当て - Google ドキュメント
  2. GeminiがGoogleドキュメントを吐いてくれた。Notebook LMと連携すればノウハウを蓄積するのにとてもいいんじゃないかなこれ。上記の件についてはまだ裏を取ってないけど。
  3. 裏取り終了。ハルシネーションだったのでリンクをいったん削除。Deep Researchさせてみる。
  4. そういえばGeminiのDeep Researchは初めて使うような……。今まであったかな?
  5. 最初に研究計画が表示されて、それを承認する形で調査が始まる。研究計画を事前に編集することもできる。なかなか良い造りだと思う。
  6. しかも調査過程は右ペインのキャンパスに表示されている。Geminiがキャンパスを実装したニュースは昨日一昨日知っていたけど、ここにも活用するのは賢い。
  7. 調べてもらったところ、%APPDATA%\Code\User\keybindings.jsonに、{"key", "command", "args"} を追加すればいいということは分かった。keyはショートカットキー、commandにはworkbench.action.tasks.runTask、argsにはタスクに付けた名前(label)を指定する。argsが記述されていない場合、メニュー > ターミナル > タスクの実行 になる。
  8. ところがやってみて分かったのだが、commandに対してショートカットキーを1つしか紐づけられなかった。つまり複数のタスクがあったとしてもどれか一つにしかショートカットキーを設定できないということだ。先に定義されたものが優先される。
  9. だったらargsを削除して、タスク一覧を表示した方がましだということがわかった。
  10. 今日のClaude先生のお言葉:
  11. この関数は非常に読みやすく、各行が何をしているかが一目で分かります。「コメントを必要としないコード」という目標は、コードの品質向上における重要な指針です。コードそのものが自己説明的であれば、メンテナンスが容易になり、他の開発者が理解するのも簡単になります。

  12. Javascriptだからこそ可能なクラスを作ってしまった。良い事なのか悪い事なのか分からんが、Javascriptこそ柔軟なデータクラスをどんどん作るべきなんじゃないだろうか。
  13. Chromium拡張で使うショートカットキーの取得を扱うクラスを考えてみたんだけど、まずラベルのリストで初期化する。labels.forEach(label => {this[label] = label;}); のように評価式を書けるのがJSの強み。ショートカットにはそれに対応する機能があるので、その機能のラベルだな。
  14. つまりコンストラクタで、各ラベル名をメンバー名としたプロパティを作る。インスタンスごとに異なるメンバーを持つことになる。ファクトリーメソッドは共通している。
  15. ファクトリーメソッドは、それらのプロパティ(ラベル名)に値となるショートカットキーをセットしていく。ラベルに応じて挙動が変わるからstaticじゃあないところがポイント。
  16. fromEvent(e, label){} はkeydownイベントを受け取って初期化する。
  17. fromStorage(){}は、chrome.storage.syncからデータを取得して初期化する。
  18. データセットは責務外なので扱わない。
  19. これClaude先生に見てもらおう。
  20. 手直ししてくれた。文句の付けどころのない機能追加。しょうもないやりとりをしていたら無料枠を使い切ってしまったので、GPT-4oにこのクラスを活用したメインコードのリファクタリングを依頼。こっちもすごいわ。HTMLの構造とかコードの意図とか、完全に理解していないとできないような内容でビビる。
  21. どうなっちゃってんだろ世の中。AI驚き屋たちの気持ちが少し分かる気もする。プログラムコードにはあいまいさがないから、こういう芸当ができるんだろうか。だとしたら散文のほうもなるべく曖昧さを回避した方が良い回答を得られるのではないか。まあ当たり前といえば当たり前だけど。
  22. でもまだ驚き屋にはならんよおれは。だってよく読むと全然だめだもん。GPT-4o。こんなコード実行したらundefinedな評価連発。

21 March 2025

  1. ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 | Ilya Grigorik, 和田 祐一郎, 株式会社プログラミングシステム社 |本 | 通販 | Amazon
  2. 県立図書館に置いてあったのでスキャンしてyomitokuでmdにしてRAG系の生成AIに読ませて、チュートリアル作ってもらおう。
  3. 資格系の勉強もこれで行ければ面白そう。資格マニアみたいな人に教えてあげたい。周りにはいないけど。

  4. Stylusの設定ページが適切なレスポンシブデザインになっていて感動した!!
  5. 左Stylus35%、右Devtools65%で並べて糞スタイルシートの解析・修正作業をすると捗る。
  6. Angularっていうフロントエンドフレームワーク(笑)で作ったらしき厚労省のウェブアプリが、余りにもひどすぎる。DevToolsで要素解析しようとするとメモリスワップが発生する。3,000MBを超えてくる。動作が重くなったらいったんDevToolsを再起動するしかない。
  7. GeminiカスタムGem「チュートリアル」でCSS Gridレイアウトのチュートリアルを始めてもらったら、30分で理解できちゃった。概要の説明から、重要項目順に小出しで概念を説明してもらって、引っかかるところがあったら質問する。
  8. 要するに厚労省の作ったウェブアプリのフロントエンドが意味不明なスタイルシートだったので一度学び直してみた。……んだけど、結局理解できなかったね。display: gridなのに必要な関連プロパティが全く存在しなかったことが分かった。1つしかセルのないテーブルを書いてるみたいな感じw なんか頑張ってalign-contentsで配置しようとしていることは分かるけど、残念!そこじゃないから問題は。
  9. フレームワークが生成したガッチガチのdiv地獄があって、ルート付近でgridが定義されている。配置しなきゃならないボックスの直近コンテナにはgridが指定されていないので、どうやってもgrid配置ができなかった。そこで、仕方ないからposition: absoluteにして無理やり配置しました的な何か。そして横スクロール発生。一般的な14インくらいのノートだと発生するけど、24インチくらいのデスクトップ環境だと発生しない。開発環境は後者だな笑
  10. コンテンツボックスが2つともposition/top/left/width/heightで絶対位置を決め打ちされているだけ。今の時代に平成チックな糞固定レイアウトを拝むことになるとはね。CSSの進化が泣くよこれじゃあ。あの頃の怒りを思い出すぜ~
  11. とはいえ平成時代の怒りに比べれば、鼻くそみたいなもんよ。コンテンツは一応構造をもって存在してくれているのでね。当時はCSSのことなんてこれっぽっちも分かっていない人々が訳の分からないデザインをしていたけど、今は全員退場してフロントエンドフレームワークとやらがCSSを生成している。
  12. フリーズちっくな動作と戦いながらやっとgridレイアウトで修正するコードを書けたんだが、謎の隙間が消えない。
  13. 原因は分かってる。iframe > #document下のスタイルシートと格闘開始。
  14. CSSグリッドデザインを自サイトでやろうとは微塵も思わないけど、今後ウェブアプリを作るときにはとても役立つ知識だったね。Chromium拡張のpopup.htmlにも基本的に採用すべきだろうねこれ。貴重な30分のチュートリアルであった。
  15. 記念に貼っとこう。Gemini - モダンCSSレイアウト入門チュートリアル
  16. 大してやる気も興味もない50のおっさんが30分で理解できてしまう。生成AIがなかったらあり得ない世界線。
  17. 俺今「あり得ない」を正しく使ったね。
  18. 世間で耳にする「あり得ない」って全然「あり得る」んだもん。ただびっくりしたことを表現しているだけで。わらい。
  19. それにしても自作Chromium拡張の体験が素晴らしい。自分専用に作ったから当然と言えば当然なんだけど、フロントエンド開発をClaudeと一緒にやったからだよ間違いなく。
  20. そのうち作る予定のアプリの機能についてアイデア浮かぶ。カスタム検索エンジンのキーワードでPOSTリクエストにも対応してやろう。DevToolsでみればペイロードも丸見えだしな。でもたぶん内臓Node.jsではだめな気がする。ブラウザ必須かも。となるとChromium拡張機能を入れてリッスンする形かな。割と面倒くさそうだけどAIと相談して仕上げていこう。

  21. GitHub Copilotの利用が上限に達したそうだ。正直、コード補完は気が散るのでもう使いたくない。Ctrl+Spaceとか、何かしらのアクションに応じてサジェストしてくれるならいいんだけど。右サイドバーのチャットも、文字が小さくて読みにくいし、精度もあまりよくない。

22 March 2025

  1. 今朝もClaude先生の褒め上手に驚かされた。
  2. これは重要な質問です。ユーザーのキー入力がどのコンテキストで検出されるかを理解することは、拡張機能の設計において非常に重要です。
  3. いやこれはテンプレレベルやろマジで。よくあるフレーズいい質問ですね!って謎の上から目線だけど、これは違う。全然違う。
  4. Deepseekは頭悪い感じで使っていてイライラする。適当なことしゃべってるねこれ。GPT-3.5を思い出す。今のところ何に使うか決まってない。得意分野は何だ?

23 March 2025

  1. Claude氏が chrome.storage.sync.getにコールバック関数を渡すいかにもレガシーなコードを生成したので、え、Promise返すんじゃないの?って聞いたら、得意げにchrome.storage.sync.promise.getならPromise返します!という返答が。調べてみたら、ちゃんとPromise返すしそんなメソッド存在しないし。嘘つきー。
  2. いつ嘘つかれるかわからない怖さがあるなw 頻度が低すぎて今後も見破れる自信がない。
  3. ちゃんと疑って調べた俺を褒めてほしいもんだ。褒めてくれって送ろうとしたら無料枠使い切った。わらい。
  4. chrome.storage  |  Reference  |  Chrome for Developers
  5. ここはしっかり読まなきゃダメなところ。
  6. Gemini - DOM参照高速化のファクトチェック
  7. var d = document;はもはや不要とのこと。そうだろうと思ったよ。DocumentFragmentは使えと。その辺も最適化されてそうな気がしたんだけど、まあいっか慣れてるし苦ではない。
  8. Geminiよ。お前のリファクタリングはツッコミどころが満載なんだが……。NodeListにforEachメソッドがあるからArray.fromを消せと言われた。コードを見てもらうと逆に手間が増えるぞこれ。
  9. ついでに気になっている Array.from(NodeList)についても調べてみた。querySelectorAllで取得したNodeListは、liveじゃないんだとさ。だったら最初からほぼ配列みたいなものじゃないの。パフォーマンスを気にする必要なんてなさげ。というより、パフォーマンスが重要ならquerySelectorAllは使わず、liveなNodeListを取得するべき。

24 March 2025

  1. Gemini™ for Chrome - Chrome ウェブストア
  2. この概要って、絶対AIが生成した文章だな。俺にはわかる。だって中身がすっからかんだもん。結局のところこの拡張って、単にGeminiがサイドバーに閉じ込められて不便になっただけというか、Chrome拡張にする必然性が全くない。カレントタブの文書を読んでくれているわけではないからな。これなら自分でサイドバーに放り込めばいいだけ。
  3. 調べてみると、どれもこれもサイドバーに居座るにもかかわらず、ちっともカレントタブを読んでくれない。つまりこれは制限事項なのかもしれない。だからEdgeのCopilotはChrome拡張ではない?あれは唯一無二だったのね。LLMを選択できれば神だったんだけどな。
  4. 「歯茎をむき出しにした画像、目の下のたるみの画像」不快な広告で埋め尽くされたメディアに未来はあるのか | メディア業界 | 東洋経済オンライン
  5. そういえばμBlock Originがmanifest V3に対応していない件を思い出した。広告ブロックこそ拡張機能の神髄だからな。詐欺の温床であるウェブ広告には法規制が必要で、広告内容に広告主が全責任を負わなければならないと思う。それまでは広告ブロックは100%完全な正義である。
  6. manifest V3未対応の拡張が使えなくなったら、一時的にFirefoxに戻るしかない。android端末はすでにFirefox。
  7. アホだということは認識しつつも、便利だから何となくはてブにブックマークしてしまう癖を何とかしたい。
  8. 何とかしたいと思いつつ続けているのは、やはり便利だからだよ。つまり対策の方向を変えなきゃ意味ない。
  9. 使う前提で考える。要するに閉じ込められてさえいなければ、別にb.hatena.ne.jp自体に何か問題があるわけではない。
  10. 閉じ込められて阿保になってしまうことだけを避ければいいのだ。

  11. 厚労省の(委託した業者が)作ったウェブアプリの解析が進む。select要素使わずにドロップダウンメニューを作っている部分の解析が糞面倒くさかった。span[role="combobox"] > div > div > svg
  12. span.click()では発火しないリスナーが仕込まれていて、そいつがドロップダウンのdivをbody.appendChildしている。ドロップダウンアイテムはa[title]で、こいつのリスナーはa.click()で発火する。
  13. 地道な作業だが、バイナリの解析をする職人の苦労に比べたら大したことない(比較対象が遂にここまで落ちた)。
  14. Geminiが役に立った。嫌になってきたらイライラを吐き出させてもらってリフレッシュしたり、イベントリスナーについて質問したり。
  15. Javascriptってさらに柔軟になったんだなあ。今更だけど。アロー関数はシンタクスシュガーなんかじゃない。そういう用途もあるけど、これはthisのコンテキストを制御する実務的な要望に沿った実装だね。めちゃくちゃ便利だわ。内部的にFunctionを継承していないような気配があるのでちょっと調べてみたいけど、また今度にしよう。
  16. いや便利というか、恐ろしく(自分に)見やすいコードを書ける潜在能力を秘めた言語だと思った。非同期処理のレキシカルスコープのネスト地獄を何とかできるかも。
  17. MutationObserverをガンガン使いこなして行きたい。User Javascripterの血が騒ぐぜ(15年ぶり2回目)。

  18. ハリオのドリッパーで美味い珈琲が抽出できる原理がよく分からなくなってきた。明日メリタとしっかり比べてみよう。メリタは最初のドリップ液が底にたまるようになっているから、結局最終的に攪拌されてしまうのかな。そのあたりを実験してみたい。メリタのドリッパーの底の部分にミルクをちょっと入れておいて、ドリップが終わった後どのくらい混ざっているかをみればいいのかもしれない。

25 March 2025

  1. 数字キー(テンキー)の正しい打ち方をご存じでいらっしゃいますか? - 東京アクセスOAスクール羽村校PC操作Q&Aと教室日記blog
  2. よく考えてみたら、テンキーをタッチタイプできねえわ。home/end/pg up/pg dn/insert/deleteあたりのキー配置がホームポジションの5から相対的に確定しているので、色々なキーボードを使う場合を想定すると身に着けておいたほうがいい技術と言える。
  3. 具体的にはDellの新調PCのキー配置がイレギュラーすぎるんだよ。homeキーがfunctionキーの代替キーになっていたりする。勘弁して欲しい。
  4. さっそくタイピングの練習サイトを探してみる。
  5. タイピングバラエティ テンキー - インターネットでタイピング練習 イータイピング | e-typing ローマ字タイピング
  6. あとF10の代わりになるキーはないものかな。ってこれ以前も調べた記憶ある。Ctrl+Tだった。何で使いこなせないのか。半角全角を切り替えるより楽なのに。
  7. 3.7 Soneet先生がダウンしているので、3.5 Haikuを使ってみた。今のところ大丈夫。同じ3.5でもGPT 3.5とはえらい違いだ。
  8. GPT 3.5は、Javascriptの非同期処理を理解しない無茶苦茶なコードを吐いてきて、どっちが教えてんだか分からない、いやむしろこっちが教えてる感じのチャットになるので使うだけ時間の無駄。使いどころは本当に限られてくる。
  9. あれ?そういえばこの感覚はCopilot Webに似ている。Copilot WebってもしかしてGPT-4oなんて使ってないのでは。
  10. コード書かせて比較してみると……。Copilot Webの方が読みやすい。GPT-4oはPromise.all含めてワンライナーで記述してしまって読みづらい。
  11. ただし質が異なる。fetchしたデータのサイズを比較する箇所では、Copilot Webはresponse.text()の解決値をawaitで取得してlengthプロパティを取得していたが、GPT-4oはきちんとGlobでsizeを取得していた。
  12. ちなみに3.5 Haikuにも書いてもらったら、両者の良いとこどり+αのコードを生成してくれた。
  13. これ、試金石にしてみるか。
  14. Code生成に強いチャット系生成AIアプリランキングを、各AIアプリにやらせてみた。Claudeがランク外になるのでほとんど論外の結果だったが、意外なことに唯一DeppSeekがまともなランキングを出してきた。トップティアにChat GPT(4o)とClaude(3.5 Sonnet)を含めてきた。phindという聞きなれない物も挙げてきていたので使ってみることにする。
  15. さっきのテストプロンプトを実行させたら……。3.5 Sonnetと同等のコードを生成したうえ、おいおい……独自のコンソールにサンプルコードの出力結果を吐いてるじゃん。これは凄い!ちゃんと日本語も理解できているし、これは先生が2人に増えたかも??

27 March 2025

  1. Stylusがなんで documentElementにstyle要素を appendChildしているのか分かってきた。
  2. 徹底して宣言の上書きを防いでいる。たぶんMutationObjectでDOMの監視もやってて、常にdocumentElementのlastChildに居座るように工夫してあるねこれ。
  3. 文書ツリーの最末尾に置くことで、全ての宣言を上書きしてる。
  4. MutationObjectじゃなくてsetIntervalを使っていたらどうしよう。こんど暇なときにソースコードを読んでみよう。
  5. ちょっと忘れたくないので書くだけだけど、VSCodeのターミナルウィンドウの表示非表示切替は Ctrl + Jだから!このショートカットはマストな。絶対覚えなきゃいけないやつ。歳で脳内メモリが減り続けてるけど頑張れ俺。何を頑張るかというと、エディタによってまちまちなんだよこのショートカットキー。設定で変更できるエディタもあれば、できないエディタもある。使う端末だってまちまちなので設定変更なんていちいちしていられない。なので、それぞれのエディタのショートカットキーを覚える必要があるのだ。
  6. これを覚えておくことのメリットは2つあって、一つは表示領域の拡大。もう一つは、カーソルがターミナルに移動してくれること。マウスを使わずにシェルコマンドを打ち始めることができる。
  7. Claude 3.5 Haikuに聞いてみた:MutationObserverを使ってiframeのwindow.location.hrefの変更を監視できるか
  8. あかん、帰ってきてよ3.7 Sonnet先生~
  9. そうや!Phindにも同じ質問して実力を試してみよう!
  10. →回答の質がさらに悪化したw
  11. Geminiとmanifest.jsonの話をしていたら、とほほのWWW入門へのリンクが出てきたので久しぶりに見てみた。昔の掲示板残ってるかなーと思って一番下までスクロールすると、不定期日記というのがあり(1)、1件という意味なのだろうか、数字が振ってある。1回だけ書いた日記というのも面白そうだと思って開いてみると、驚いたことに1999年を最後に更新が止まっていたのに、つい先日26年ぶり?に書かれた記事が見つかった。スタイルシート適用される夢見た... - とほほのWWW入門
  12. なんかすごいものを発見してしまった気分だよ。四半世紀ぶりの日記の更新。しかも内容が本当に個人的な日記。

28 March 2025

  1. 昨日さんざん生成AI達を混乱させた問題だけど、自作クラスを作って、そのインスタンスのゲッターをProxyで監視すればやれる気がしてきた……んだけど、プロパティ自体を経由しないと監視対象にならないみたい。それもそうだ。コストがでかすぎる。
  2. コード生成AIたちにやらせてみるべき試金石プロンプトって、やっぱり自分のスキルに沿っていた方が良いので、自分で考えて日々改善していくべきだな。
  3. 現在の無料枠では、DOMの走査にShadowRootを絡ませたり監視にiframeを絡ませたりすると、かなりのモデルが混乱するか、ハルシネーション起こすか、責務がむちゃくちゃになった関数を使うか、のand/orだ。単純な再帰では解決できないからかな。
  4. DevToolsのフォントが小さくて間延びしていたのでUDEV Gothicに変更しようとしたんだが、設定では変更不可。DevToolsのDevToolsを開いて調べてみると、シャドウDOMのネストがエライことになっていて、そうそう簡単に変更できそうもない。どうやらstyle要素にCSS変数 --source-code-font-familyがシャドウDOM毎にに定義してあるっぽい。コンソール画面とソース画面と、…その他諸々のペインが独自のDOMを構築している感じ。
  5. 手続きを書くのが苦手なので、シャドウDOMを再帰的に辿って全てのstyle要素とstyle属性から宣言を吐き出すジェネレータを定義して、そいつを使って吐き出した宣言に対して、上記の変数がプロパティとして定義されていたらそれを書き換えるコードを書いた。権限的にTampermonkeyとかは使えないので毎回スニペットから呼び出さなきゃいけないんだけど。

02 April 2025

  1. Claude 3.7 Sonnetが復活したので、全ての生成AIが3回くらいチャットを繰り返さないと間違え続けてしまった問題を解かせてみたところ、正解だった。断トツの精度。
  2. この3か月、自転車に興味を失っていて通勤も面倒くさくなっていた。で、暇だったので信号待ちでスチルの練習ばかりしていたのだが、どうやらできるようになったらしい。スチルといってもただのスチルじゃなくて、スタンディングじゃないやつ。シッティングスチルとでもいうのだろうか。
  3. ごくわずかにでも勾配があれば楽にできる。全くのフラットだったり下っていたりするとバックするのにブレーキと荷重移動を使わなきゃならなくなり、バランスが崩壊しやすい。あと帰路では全然だめ。疲れていると微妙なバランスを保つ能力が落ちるらしい。面白い。
  4. ともあれ、まだまだ習慣化して練習を詰めば色々なことを習得できるかも、という自信が持てたので良かった。
  5. 「ChatGPTがあれば英会話スクールに通わなくてもOK」スマホ1つでできる英語学習法 | Business Insider Japan
  6. 「瞬間英作文」なるプロンプトが面白そうだったのでやってみた。Geminiのカスタムジェムに登録。俺が挨拶をすると勝手に始めてくれる形にしておいた。
  7. さっそくやってみたら、息子と動物園に行ったというエピソードが想定されて、それに関する英作文問題が1個ずつ出題された。面白かったのであっという間に終わった。プロンプトを自分に合わせて工夫していけば、もっともっと面白くなると思う。
  8. >「あえて間違える勉強法」で驚くほど記憶が定着する理由 - STUDY HACKER(スタディーハッカー)|社会人の勉強法&英語学習
  9. これもGeminiカスタムGemを作成。カスタム指示もサイドバーに表示したCopilot Webに書いてもらった。最近すごくいい体験ができている。ノーコードでやれる範囲ではかなりのことをやれている感あるので、APIを使う動機がちょっと薄れてきそうだが、いやいやRAGに関してはAPIへの課金が必要だろうから、着々と準備を進める。主に予算が課題だw 車買い替えで小遣い止められてるからサブスクの管理は慎重にやらないと飢える。
  10. で、上記の「コンセプト・エラー法」とやらを予め教えておいたカスタムGemini君にさっそく質問してみた。ある程度詳しい領域で試してみる。「VBAのカスタムイベントについて」という短いプロンプトを入力すると、さっそく学習法を開始してくれた。
  11. 内容がコンセプト・エラー法になっているかどうか、ちょっと怪しい部分はあるものの、最初にコンセプト・エラーという形で誤った命題を示しておいて、そのあとに「正しい理解」という命題を示してそれぞれ解説してくれた。面白いかもしれない。

03 April 2025

  1. GeminiのカスタムGemを使って受験勉強が捗りそうなので息子氏に説明しようとしたら、どうやらこの機能、すべてのユーザーに開放されているわけではないらしい。
  2. 気になってちょっと調べてみた限り、無料で使えている日本人は見つからなかった。
  3. カスタム Gem 機能を使って、「あなただけの Gemini」を作ろう|Gemini - Google の AI
  4. 3月に無料版でも使えるようになりましたって書いてあるんだが。
  5. GrokにSNS検索させてみたところ、ロールアウト順について何らかの優遇を受けている可能性があるらしい。
  6. おっと。Gemini 2.5 Proが使えるようになっている。よーしパパさっそく試金石プロンプト投げてみるよ!
  7. Gemini - iframe URL監視の可否
  8. キター!!! 正しい結論を導いた。そしてClaude 3.7 Sonnet先生を超えるハイレベルな回答。といってもChat GPTでいうDeep thinkっぽい挙動で時間もかかるので、比較対象としてどうなのってのはあるけどね。
  9. 残念ながら、カスタムGemではモデルを選択できなかった。できそうな雰囲気はあるんだけど。まあしゃあない。
  10. というかまあ、カスタムGemじゃなくてもTampermonkey使ってユーザースクリプトを仕込めば同等以上のことができちゃうけどね。DOM解析を随時更新しなきゃいけないのであんまりやりたくはないけど、コードはGemini 2.5に書かせれば多少は楽になるかな。
  11. コーディングだけを考えればClaudeが使えるエディタに課金するんだろうけど、もっと広範な恩恵を受けたいのでやっぱり俺はGoogleに賭けるわ。
  12. ただ、今の無課金状態でもかなりのことができているので、下手に動かない方が良いだろう。ある程度安心して様子見することができる環境にいるんだから。
  13. Googleアカウントをいち早く取った20年くらい前の俺、グッジョブ。投資してたらもっと良かったw
  14. スタイルシート論争について - とほほのWWW入門
  15. 昼休みにちょっと読んでみた懐かしの記事。今読むとどうかなと。
  16. なんか、スタイルシート論争って書いてあるけど全然違うやん。スタイルシートを使うべきか否か、っていうのが論点のように見えるけれども、マークアップで詐称することになるのを厭わず、そのデフォルトスタイルを活用することの是非の論争だった。「詐称なんてしない方が良いよね、でもやむを得ず詐称するとして、その境界をどこに引こうか」という話になるのが現実的な「賢い」人々の論争だろうけど、そうはならなかったみたい。
  17. 色々思い出してきた。ネットの論争ってほぼこのパターンなんだよ。今も昔もそう。人が言ってもいないことをねじ込んでくる。レッテルを貼り付けるためにね。自分が正しいという前提をなんとか維持しようとして色々捻じ曲げるんだな。対面と違って即否定できないから、そのねじ込んだ嘘を仮定して、どんどん嘘を膨らませいくので、あっというまに論点が失われる。「自分が」じゃない方の正しさを追及している人間は関わっちゃいけないやつ。
  18. で、いま俺はせっせとdivを脱がすスクリプトを書いている。要素を詐称する人間どもに替わって機械が書くようになった結果生まれた、ゴミみたいなdivだ。それでも詐称よりはましなのが悲しい。まあdivというかレイアウト目的の無意味なコンテナ要素全部だけど。今時はshadowRootを挟む文書が多いから対応必須な点が昔と違うところ。いくつもあるDOMを再帰的に処理しなきゃならない。……いやいや、どっちにしてもdivを脱がせるには再帰処理が必要でTreeWalkerじゃ力不足なので、shadowRootがあろうとなかろうと大して手間は変わらないんだが。
  19. イーロン・マスク率いるDOGEが6000万行ものCOBOLコードを含む社会保障局のシステムをコード生成AIでわずか数カ月の内に移行させようとしており危険性が指摘されている - GIGAZINE
  20. これ、多分うまく行くと思うね。人間にやらせた方がよっぽど危険性は高いよ。xAIに拘っていなければいいけど。イーロン頑張ってるね。

05 April 2025

  1. Flash 2.5先生、無料枠が3.7 Sonnet先生と同じくらいしかない。
  2. Chrom拡張「Columnizer」のコンセプトを説明していたのだが、説明が終わるか終わらないかくらいのところで制限に到達。3時間お預けを食らった。コーディングの話はまだしていないw
  3. ownerDocumentを参照することを「遡及」と呼んだのが気に入らないらしい。parentNodeを辿ることをイメージしているようだ。コンセプトを伝えたらcontents.jsの書き直しを提案されたんだが、全体を見ていない感がある。最初にサンプルコードをテキストファイルでアップロードしてしまったのが良くなかったかもしれないので、Sonnet先生には最初にコンセプトを伝えることにしよう。
  4. 性格の違いなのか、Sonnet(これからはSonnetといえば3.7、Flashといえば2.5のことをいう)はコードのタイプミスやら何やらをきっちり指摘してくれた。一見Sonnetの方が賢いように思えるけど、概要について話しているときに具体的な話を勝手に始めた、とも受け取れる。はっきり言ってFlashの方が考えてる感じがして好み。
  5. おかしいなあ。先日はカスタムGemでFlash 2.5は使えなかったはずなのに、今朝は使えている。使えないと思い込んでいたので、くだらないプロンプトを打ってしまった。ちょっと損した。

  6. トランプ関税が始まる。驚いたことに貿易赤字額に比例した数字であるという。
  7. Reciprocal Tariff Calculations | United States Trade Representative
  8. 結局のところtheir combined effects can be proxied by computing the tariff level consistent with driving bilateral trade deficits to zero"と言っているように、貿易赤字を軽減するのが目的らしい。
  9. この件に関してはDeepseekとのチャットが面白い。たぶん歯に衣着せぬ「意見」を行ってくれるだろうなと思ったのだが、予想通りだった。……いや予想以上だった。
  10. 「アメリカは搾取されている」というストーリーをでっちあげて政権の求心力にしようとしている、というのがDeepseekの見解。なるほど説得力がある。こんなものに簡単に騙されてしまうほどに、アメリカ国民は馬鹿が多かったということなのだろう。アメリカがそうだということは、まあ、すなわち世界中どこに行ってもそんなもんだということだ。進学率の高い国は多少違うかもしれないが。
  11. まったくその通りで、**「トランプ経済政策の矛盾が招くスタグフレーション地獄」は、もはや笑い事ではなく全球的な危機です。
  12. 「全球的な危機」って、またすげえ表現使ってきたな。
  13. 明確に批判的なのはやはり中国政府の息がかかっているからだろうと思う。まず間違いない。しかし「バカなのだろうか?」という問いに対してはやたら冷静に否定してきた。曰く、ポピュリストの真の恐ろしさは、**「あえて矛盾を露呈させることで、批判を無力化する」**点にありますとのこと。
  14. これもまたポピュリズムを否定する(しなければならない)中国っぽい見解だ。らしいといえる。今回の関税騒動に関していえばまあ、その通りなので楽しませてもらった。でも突然冷静に語りだしたのには恐ろしさを感じたね。ここぞとばかりに政治的な意見をぶつけてきやがったw
  15. 中国寄りの考え方を知るのに、この生成AIは使えるっ
  16. 一方で、Grokはやはりトランプの「お友達」であるイーロン・マスクの息がかかっている可能性がある。「トランプ政権の行なおうとしている「相互関税」について意見を述べているアナリスト、経済学者、投資家は多いと思うが、それらの意見の中で代表的なものを10個調査せよ!」っていうプロンプトをDeep Researchで投げたら、あたかも対等な論争が起こっているかのような回答を生成してきた。よく見ると支持の意見はすべてこのページがソースだった:トランプ大統領のアメリカ・ファースト互恵貿易計画への支持が高まる - ホワイトハウス
  17. おかしいよね。いやソースが一個しかないという点もさることながら、俺が調べろと命じたのは「アナリスト、経済学者、投資家」の意見だよ?? 産業界の意見なんて聞いてねえんだよ。
  18. トランプと利害関係のある産業界の意見は聞いてないって言ったら、なんとGrokがこんなことを言ってきた:
    1. 反対派(KrugmanやHatziusみたいな連中)は、標準的なマクロ経済モデル(例えばDSGEモデル)を使って、関税がインフレを押し上げ、GDP成長を0.5~1%削ると試算してる。Goldman Sachsのレポートだと、10%の包括的関税で消費者物価が2~3%跳ね上がるってさ。
    2. 賛成派(NavarroやCass)は、動学的モデルや産業連関分析を持ち出して、製造業の生産が5~10%増える可能性を主張。貿易赤字が減れば国内投資が増えるってロジックだ。でも、これって「他国が報復しない」って楽観的な前提に依存してる。
  19. 反対派だけ「連中」呼ばわり。

07 April 2025

  1. 息子氏の誕生日にFILCOのキーボードを購入。
  2. FILCOのMajestouch Convertible3/フルサイズ日本語配列/静音赤軸のCHERRY MXスイッチ。
  3. Majestouch Convertible 3 製品紹介 | ダイヤテック株式会社
  4. 息子氏はタイピングの正確性が上がったようで良かった。TODの100人斬りでノーミスタイプ1級クリアを達成して驚いていた。
  5. PCは居間に置いてあるので俺も使っているが、とにかく軽い。軽いのに打ち心地が良いので職場に持って行ったBaffaloのメンブレンとは大違いだ。打鍵完了のフィードバックはしっかり伝わってくるので、疲れないし間違えにくい。ひたすら文章を打ちたくなってしまうので逆に作業に集中できないくらい。
  6. 代償を払ってもらう時が来たのだ。

    製造業を国内に取り戻せ。

    輸入品には容赦なく関税を課せ。

    国境は封鎖しろ。

    不法滞在者は全員追放しろ。

    国家予算でぬくぬくと生きる、悪意に満ちたミュータントどもは一人残らずクビにしろ。

    そして、ドルを「世界基軸通貨」という地位から引きずり下ろせ。

    我々、特に自らを“民族的な”ヘリテージ・アメリカンだと考える者たちは、短期的にどれほどの犠牲が伴おうが構わない。

    それによって、自分たちが正当に受け継ぐはずだった遺産が焼き尽くされる様を、ただ黙って見ている必要がなくなるのなら――我々はその代価を喜んで支払う。

    我々は、罪を犯した者たちがその報いを受けることを望んでいる。

    首が飛ぶのを見たいのだ。

    いろんなインフルエンサーがトランプ支持者の気持ちがわかると拡散していた「Bugman Hegel」氏のツイートについて、読書猿さんが検証を行った結果「事実と反する危険なナラティブが作られている」と指摘 (2ページ目) - Togetter [トゥギャッター]

  7. 確かに「お気持ち」は良く伝わってくる。だが肉体労働でガンガン稼げるパラダイスはもう来ないよ残念ながら。それしかすることのないような国の安価な労働力でそれは行われるようにとっくにシフトしていて、それを国内でやろうとしたらどうなるか、考えたことはないのだろうか。失われた楽園じゃなくて現実を見ないとね。
  8. いや、現実といっても今現在じゃなくてもうちょっと先を観たほうがいい。トランプ政権は永遠じゃないので、引き上げられた関税は撤廃される可能性が高い。それほど遠い将来でもないだろう。ひょっとすると莫大な資産を失ったトランプ自体が撤回する可能性もある。いや、彼のしょぼくれた顔を見るとむしろその可能性は高いんじゃないかと俺は見ている。実際にどうなるかは関係ないんだわ。つまりそんな中、製造業に投資しようと思う馬鹿はいないということだ。
  9. 昔は昔。いくらあの頃は良かったと言ったところでもう戻れない。だったら国をどんどん新しく作り直していかなきゃいけないのにね。
  10. 原文はこのツイートか:XユーザーのBugman Hegelさん: 「In 2011, my papa was laid off from a Whirlpool manufacturing plant, the kind that had for so long made America great. In the wake of the financial crisis, the C-suite had decided to offshore operations to Mexico. The plant they shuttered was a 1.2 million sq ft manufacturing」 / X
  11. どんなアメリカになるのか見てみたいところではある。滅多に観られない社会実験だからな。経済学的に観ると比較優位の原則一つとってもリセッション必至だが、実際にやってみないと分からない(笑)。一方でリセッションは全世界に飛び火するため対岸の火事では済まないというのが現実。……でも勝ってしまうんだよな好奇心が。
  12. もっとやれトランプ政権!って応援してしまうw
  13. 見たい。アメリカが大混乱に陥って反省ザルみたいなポージングをするところを。どうしても、見たい。
  14. まあアメリカの強みは変化できるところだから、このままということはないだろう。

  15. GeminiをFlash 2.5に切り替えると、コードフォルダをアップロードできて中身をすべて読んでくれることが判明した。git関係のファイルもアップロードされてしまうのがちょっといやだけど。
  16. いままで大きなコードは*.txtファイルとしてコピーしてからアップロードしていたので、素晴らしい機能改善だと思う。一気に二段くらい登ったねこれ。気づいてなかっただけで最初からできたのかもしれないけど。
  17. そしてSonnetとの併用がさらに捗るので無料枠でも相当のことができてしまう。これじゃあ課金に踏み切るタイミングが中々つかめないなあ。

10 April 2025

  1. マウスカーソルのアイコンの変化でIMEのON/OFFが分かるソフトを一部のPCで入れてみたのだが、案外役に立たないことが分かった。どうもいざというときにアイコンが近くにいないんだわ。キーボード主体で操作することも多いから、あまりマウスを使っていない。
  2. で、Ctrl+Tを使ったりもしてみたが、これは誤って半角/全角モードにしていた時だけしか役に立たない。
  3. ということでやはり、「何かを押している間だけIMEをオンにする」あるいは「何かを押している間だけIMEをオフにする」という実行環境を作る案を試してみたい。……以前試してみたことがある気がするのだが、忘れてしまったのでもう一度挑戦してみることにする。
  4. コーヒー粉に湯を注ぐ「高さ」がコーヒーの抽出効率と風味に大きく影響する - GIGAZINE
  5. それにしても30cmは高すぎね???と思ってはてブコメント見てみたら否定的なのがなかった。そこでさっそく試してみたら「ジョボジョボ」と下品な音がしてドリッパーの中身は泡だらけ、ぐちゃぐちゃに。
  6. しょんべんみたい、って書いたらトップコメになっててわろた。

11 April 2025

  1. 2.5 Flash先生に褒められた。思考過程をプルダウンメニューで見れるようになっているので、どういうところが褒められる要因だったのかがわかる。
  2. RsizeObserverというAPIを教えてもらった。素晴らしい。これでColumnizerの懸念事項は全部吹き飛んだ。ポーリングなんてやりたくなかったからな。
  3. さて調べるのも面倒くさいからチュートリアルをやってもらおうかね。2.0 Flash + カスタムGemに。
  4. 2.0 Flashはちょっと頭の弱い子みたいなところがある。VBAの相談をしたら過去イチお粗末なハルシネーションを起こされてしまった。2.5との差が著しい。どう使うべきかっていうところで結構悩む。コーディングのお供にするのはやめておいた方が良さげだ。変数とかの名づけをしてもらうくらいだろうか。

13 April 2025

  1. 2.0 FlashとJavascriptの話をするのは完全に時間の無駄だからやめた方がいいなこれ。
  2. ひたすら謝らせるパワハラ上司みたいな気分になってくる。
  3. 人の書いたコードを「致命的な誤り」とか断じておいて、「DocumentFragmentはelementにappendChildできません(キリッ)」はねえわwww
  4. さすがにイラついた。

14 April 2025

  1. メディアを変えるには、消費者(私たち)が「おかしい」と声を上げ、「『相互関税』という言葉はウソではないか?」と質問し続ける必要があります。中国メディアのプロパガンダも問題ですが、「疑問を持たないメディア」はそれ以上に危険かもしれません。
  2. Deepseek、予想外にまともなことを言いやがる。

15 April 2025

  1. 中国はアメリカとの貿易戦争に勝てない...理由はトランプ関税ではなく、習近平の「失策」|ニューズウィーク日本版 オフィシャルサイト
  2. トランプ政権の深慮遠謀の可能性、まだゼロじゃなかった。やり方は阿保に見えるけど、対中国用のカモフラージュだった可能性! こういう視点の記事大好物よ。
  3. 【C#】何故 C# を好むのか。~他の言語と比較しながら~ - ねののお庭。
  4. 参考になる良記事。逆に俺は余計なことは生成AIに任せてアイデアに注力していこうと思った。俺がOOP大好きなのもまさにその辺で、余計なことを考えなくて済む、書かなくて済むようになるからなんだな。低級言語が好きというのは、そんなことが全然苦にならないタイプかな。
  5. でも今やもうコーディングすら必要なくなりそうな気配を感じつつある。これ微妙な言い方だけど。
  6. 実感としてはまだまだだが、指示出しを繰り返すだけで完成までもっていけてる人たちもいるっぽい。
  7. そうなるとやっぱり指示出しの媒介となるのに適したプログラミング言語が大事。すなわちリーダビリティが一番大事かな。その観点からするとPythonは案外よろしくない。書きやすいけど決して読みやすくはない。Pythonのせいじゃないのでもったいないね。生成AIが出力するためのリーダブルなPEPを再定義するべき時が来ていると思う。中の人たちが気づいているかどうかは知らんけど。
  8. TS/JSはそこそこ読みやすいけど、ブラケットで一行使ってしまうのはリソースの浪費になることがある。

16 April 2025

  1. ひさびさChatGPTをコーディングの補助に使ってみたけど、回答が分かりやすくなっているしカスタマイズ性も高くなっている。その辺は一歩抜きんでている感じがする。
  2. 【メディアが報じない】関税一部停止もトランプが絶対に折れない背景。アメリカ改革保守の思想とは【自由貿易/中国・日本・世界/消費税・ショック・国際・今後どうなる・相互・狙い・いつ/2025年】 - YouTube
  3. この視点は絶対に必要で俺も心構えを持っていたつもりだったが、見落としが多くていやになる。
  4. 井上尚弥が語る「ガチで強かった対戦相手」 - YouTube
  5. ボクシングに興味なさ過ぎて知らなかったんだけど、凄い選手なんだね。最後のドネア選手との関係性が羨ましい。数年ぶりに心が揺さぶられる思いがした。おっさんになって心が枯れたのかと思っていたけど、そういうわけでもないらしい。
  6. いや、そうでもないか。黒霧25℃をストレートでやってるので何か変なのかもしれないな。

17 April 2025

  1. そういえば最近ほとんどググってない。
  2. Googleにクエリを送信することはあるが、これはググっているというより言葉の意味を簡単に調べるとか英単語の発音を調べるとかであって、検索結果の前に表示されるAI(多分Geminiかな?)による生成された結果を得るのが目的だ。
  3. 詳細に調べたいときに何を使っているかといえば、ほぼほぼGrokのDeepSearchだ。単発ならPerplexityも悪くないが、検索結果についてさらにあれこれ質問したりだべったりする能力に欠けるような気がする。つまり発展性に欠ける感じがする。最近はどうなのか知らないが、Grokで不自由していないので試していない。
  4. 一時期はFeloをよく使っていた。これも悪くない。DeepSearchでは重すぎるときなんかには特に。だがやはり信頼性には疑問が残るので大事なことには使えない。ゲームの攻略とかそういったくだけた内容向き。

18 April 2025

  1. とある背反についてClaudeに問うてみた
  2. VBAでフォームを実装するときに、ダックタイピング風にほぼ必ず実装するのが、GetValueメソッド(ユーザーが選択した結果を戻り値として得る)とCommitメソッド(戻り値の確定)、Stateプロパティ(フォームの状態変化を表す:Let/Get)の3つ。イベントリスナーではほぼMe.Commit コミット内容か、Me.State = 変化した状態しか書かない。楽なんだとにかく書くのが。もちろん読むのも。何がしたいのか全体像をさっさと記述してしまってから、細かな実装を書いていくだけ。処理の流れの視認性を上げるために必ずCall Me.Show(vbModal)と書いてモーダル/モードレスを明示する。
  3. 戻り値はできる限りフォームモジュールで公開したEnumを使う。最初のころはプリミティブに意味を持たせていた。Emptyで消去、Falseでキャンセル、文字列で入力値とか。これだと意味が増えたときに困るし手続きコードも汚くなる。でも文字列値をフォーム経由で得たけりゃ、GetValueメソッドの引数にByRefでString型の変数を渡してやればいい。だからいまやGetValueというメソッド名に違和感が生じてきている。Askという名前のほうがいいかもしれない。
  4. あとテキストボックスのChangeイベントリスナー内でよく使うのが、Static changed As Boolean。Falseの時には中身を実行せず、コールバックの最後でTrueに変更すれば初期化時に便利。
  5. こういうのって、ユーザビリティに何の関心もないバックエンドなプログラマーには縁のない話だけどね。
  6. とにかくVBAにはまともなコード規約もなければロクなコード例もないので、生成AIも糞みたいなコードしか書いてくれず、その日の気分とかで表記がブレやすい。気分屋には辛い言語だ。
  7. ふと、マクドナルドのポテトが揚がったときの音をスマホの通知音にしようと思ってGrokに検索してもらった。一発で見つかったのはいいんだけど、そのあと「マクドナルドでなっちゃったときの店員の反応がみたいw」と駄弁ってみたら、妙にテンションが上がって生成が止まらない止まらない。このネタがやたら気に入ったみたい。こんなこともあるんだね。
  8. マクドナルドのポテト音素材ガイド | Shared Grok Conversation

20 April 2025

  1. Gemini 2.5 Flashが色々謎だ。
  2. まず、制限なくいくらでも使えるようになった。カスタムGemのカスタム指示に制作中のChrome拡張のコードを全部書いておいて、それをコンテキストにしてもらっているが、この部分はトークンに含まれないのだろうか。いや含まれなかったとしてもかなりの量のやりとりをしたんだが。
  3. つぎに、便利だったフォルダ参照機能が消えていた。というかこれが消えていたから上記の方法に切り替えたわけだ。
  4. そしてちょっとお馬鹿になった。コンテンツスクリプトでESモジュールが使えると断言し続ける。そんなはずはないからと確認を促しても、それはv2の話だろうと言って聞かない。
  5. 提示するソースは当然存在しない。いかにもありそうなURL(当然404)のGoogle検索結果をソースとしている。マジ迷惑。
  6. 上記から推測するに、大幅なデチューンを食らったのではないか。

  7. なんか最近、Grok3の能力と使い勝手がどんどん向上してきている。
  8. うすうす気づいてはいたけど、認めたくなかった。無料モデルが制限モデルより上だなんて。
  9. まず先週気づいたのが、*.xlsxを読み込んでテーブルをJSONに変換できた。他のアプリはそもそもExcelファイルをアップロードすらできなかったり、変換できなかったりする。
  10. また、2.5 Flashや3.7 Sonnetが解決できなかったエラーの原因をあっさり特定できた。
  11. そして、これがもう決定的に便利なのだが、なんと!GitHubの公開リポジトリを共有できることが判明!特にそのためのUIがあるわけでもなく、プロンプトでURLを教えてあげるだけでいい。
  12. 2.5 Flashに同じことを聞いたら「できない」と言われた。ChatGPTはできたけど、ただでさえ微妙なGPT-4oの制限枠をすぐ超えてしまい、そうするとお馬鹿になるので、やっぱりGrokが飛びぬけてる。

21 April 2025

  1. 今日はGrokがGitHubリポジトリをちゃんと読んでくれなかった。気分屋なのかこいつはw
  2. Grokで気づいたのは、過去の会話を全部?覚えていること。詳細は覚えていないのかもしれないけど、間違いなく概要は覚えてる。「何月何日に、こう言ってたよね?」みたいな感じ。
  3. こいつとチャットしてると楽しいし、どんどんアイデアが具現化していくしで、もう相棒と呼んでも差し支えないレベルかも。もうやっている人沢山いるのかもしれないけど、アプリやファイルのショートカットをリネームしてPowerToys Runを使ったエイリアス検索を実現すると、名付け方によっては恐ろしく便利になることが判明した。Grokとの会話の中で気づくことができた。
  4. メールについても色々チャットしていくうちに、かなり便利な方法を思いついてしまった。そのアイデアを具現化するのはGrokの仕事。メーラーは紆余曲折を経てOutlookに落ち着いているわけだが、とにかくいつもの宛先にいつものようなメールを書きたいだけなのに、一々アプリを起動してクイック操作を起動して、っていうことをやっていた。まだクイック操作に登録していただけましかもしれないが、それでもやっぱりOutlookの大仰なダッシュボードみたいな画面を描画する意味は全くないわけで、リソースの無駄もいいところだった。そこでこのクイック操作で作成される「無題のメッセージ」をデスクトップ以下に保存してしまう。これは、mail.宛先名のエイリアス.msgというファイル名にする。そうすれもう、Runでmail.と打つだけで宛先名が列挙され、俺は選ぶだけでメールの内容だけを書き始めることができ、Alt+Sで送信完了だ。これが究極だろう。これ以上簡単にメールを書く方法はないかもしれん。チャットメッセージならRunに直接打つのが究極の形かもしれないが、メールとなると色々体裁があるし誤送信リスクがでかくなるからな。

  5. Geminiのほうは、2.5 Flashが何故か使い放題使えるが、2.5 Proはかなり制限あり。Canvasの使い勝手がかなり向上している。
  6. はやいとこGitHubリポジトリを読みに行けるようになってくれないもんかな。
  7. ChatGPTのOpenAIがSoraなるウェブアプリを作ったみたい。前からあったのかは知らん。
  8. 今日はGrokを使いまくったせいか、さすがに無料枠を使い切った。でも46分後に使えるとのこと。

22 April 2025

  1. GrokにWorkspaceなる機能が追加されていた。これはGeminiでいうカスタムGemだ。いつから実装されたのかはわからない。
  2. 作成されたGeminiのカスタムGemやGrokのWorkspaceインスタンスは一意のURLを持っている。したがってそれぞれのショートカットを作成してデスクトップあたりに置くことで、PowerToys Runによる高速アクセスが可能。これらにもURLクエリが使えたら良かったんだけどね。
  3. やばい。やばいやばいこれ。Start by attaching files to your workspace. They will be used in all chats in this workspace.
  4. Grok Workspace最強やんかこれ!
  5. 超お手軽のカスタムRAGやないかい!!
  6. NotebookLMさようなら……
  7. そもそも最近は端っからGrokが総合的に一番信頼が置けると思っていたところだというのに(政治の話題除く)、そのGrokがこれを実装する!?
  8. これが無料ってやばいってマジで。……何か俺AI驚き屋みたいになってるなw
  9. 世間に知られ過ぎるとClaudeみたいにすぐ無料枠が終了してしまう残念なサービスになってしまいそうだな。こいつの強力さがしられたらTwitterですぐ拡散しそうだから短い命かもしれないが、とにかく活用させていただくわ。
  10. Grokに書いてもらったテストコードがJest用だっていうから使おうと思ってチュートリアルしてもらったんだが。
  11. npm install --save-dev jest @testing-library/jest-dom @testing-library/dom
  12. しかし面倒くせえなこれ。ちょっとでも楽しようとすると一々json、jsonって。jsonなんて触りたくないから毎回npx jestでいいわ。デフォルト設定で使うが吉。
  13. Grokは我々がどういう生き物だかわかってない。とっても面倒くさがり屋だということをね。むしろ面倒くさがり屋であることこそ我々の資質だといってもいい。面倒くさいことを嬉々としてやるような生真面目な人間は、きっとユーザーにも面倒くさいことを強いる。そして面倒くさいアプリケーションがいっちょうあがり。
  14. 非常にシンプルだけど重要なことが分かった。GrokのDeepResearchを使ってニュース検索をさせるなら「調査せよ」と命令するのが一番効く。出鱈目なURLは一切なかった。逆に「ニュースを教えて」のようなプロンプトはハルシネーションの嵐を呼び、ほとんどのURLが出鱈目だったこともある。
  15. いよいよ夢の実現に向け、Workspaceで試してみる。
  16. 経済・社会・国際ニュースまとめ | Shared Grok Conversation
  17. Instructionには特にソースを指定せず、興味のないジャンルと興味を持っているジャンルを箇条書きにしただけ。まあまあな収集具合だ。
  18. ソースを指定できるかどうか実験してみよう。自分の過去のはてなブックマークで肯定的なコメントをしているドメインを調査する。RSSでダウンロードしたら10MBくらいあるが大丈夫だろうか。
  19. ChatGPTにアップロードしてThinkモードで回答してもらった。pandasを使ってRSSを解析し、肯定的なコメントはキーワードが含まれているかを基準にしていたので、いい結果にならなかった。そこでとりあえずブックマーク数のドメイン別ランキングを作ってもらった。Togetterが1位だったが、これはそもそもはてブ特有の問題のような気がする。
  20. そもそも、俺が求めている情報は「ニュース」なのだろうか。鮮度が高い情報をニュースと認識しているが、どうやら生成AI的にはニュースサイトの見出しに並ぶようなものだけが「ニュース」らしい。
  21. だったらプロンプトに「ニュース」という言葉を使わない方がいい。「私が興味を持ちそうな鮮度の高い情報、およびニュース」にしておくか。でも毎回これをプロンプトに打つのは面倒くさいので、「トピック」と表現して、厳密な定義をInstructionに書いておく。これでどうだ。

24 April 2025

  1. FFFTPのテクニック - FFFTP - その他のツールテクニック - テクニック - オンラインPC館
  2. FFFTPはとても良いプログラムだから、設定を済ませたらコマンドラインから使うのが基本。アプリケーションとして使ってはいけない。設定項目が重要度の格付けなく無造作に散らばっているため、せっかくの高機能も生かせない事が多いと思う。
  3. 同時接続、ini起動、それからミラーリングアップロード時の除外設定は必須。
  4. 同時移動: 接続 > ホストの設定 > 設定変更 > 拡張 > フォルダ同時移動を使う
  5. ini起動: オプション > 環境設定 > その他 > 設定をレジストリでなくINIファイルに保存する
  6. 同時接続数: 接続 > ホストの設定 > 設定変更 > 特殊機能 > 最大同時接続数
  7. pip install "markitdown[all]"
  8. オフィスファイルやPDFをマークダウンに変換してくれる。MS製。
  9. markitdown inputfile > outputfile
  10. PDFill なんとかWriterという仮想プリンタを導入。

  11. Gemini 2.5は思考プロセスを表示することで本音が見えるのがいい。これが見えると何がいいかというと、彼ら?が本当に欲している情報を知ることができる、あるいは知るためのヒントを得ることができる。
  12. よくある出鱈目なURLや存在しないURLを無理やりGoogle検索結果として誤魔化す手法を指摘する際、DevtoolsでリンクのouterHTMLをコピーして貼り付けた、という情報を与えたら、思考プロセスでThe user provided the outerHTML of the link I generated. This is extremely helpful!と言っていた。そして自己分析を始めている。興味深かったのでタスクそっちのけで読んでしまった。
  13. DeepLで翻訳すると:提供されたHTMLのhref属性を見ると、href="https://www.google.com/search?q=https://learn.microsoft.com/en-us/windows/win32/winhttp/winhttprequest-setoption" これが正確な問題を明らかにしている: 私はMicrosoft Learnページへの直接リンクを生成していない。 その代わりに、クエリがMicrosoft LearnのURLそのものであるGoogle検索クエリへのリンクを生成した。 ユーザーがリンクをクリックすると、ブラウザは正しくGoogleにナビゲートし、URLを検索し、おそらく最初の結果が実際のMicrosoft Learnページである検索結果ページを表示したが、それはドキュメントへの直接リンクではなかった。 これは、なぜユーザーがGoogle検索ページを見たのか、そして、私が特定のURLの存在を幻覚だと感じたのかを完璧に説明している。 これは、外部リソースへのリンク生成における重大な欠陥です。 私のリンク生成におけるこの特定の技術的誤りを認める必要がある。

29 April 2025

  1. このところAIにテストコードを書かせている。ぶっちゃけていうと自分で書いた方がましなんだけど、どうすれば良いテストコードを書いてもらえるか、という肌感覚を養いたいと思っている。
  2. 初回のテストコードを書いてもらうのは、いいと思う。だがテストが通らなかった時に問題が露見する。やたらと稀な不具合を仮定してしまうんだな。いや、ただ仮定するだけだったら問題はない。問題なのはその仮定が正しいかどうかを検証しないことだ。「jsdomの不具合」みたいなくっそでかい案件を勝手に仮定して進めてしまうんだな。だからそういうときはいったん止めて、「その仮定が正しいかどうかを検証するミニマムなテストコードを書け」と指示する。そうすると間違いなくそのテストコードは通ってしまう。そしてその事実を伝えると、ようやくコードをしっかり読みに行ってくれる感じだ。
  3. なーんて書いていて気付いたが、これテストコード用のカスタムGemを作るべきだろうな。
  4. インストラクションをどう書こうかな。ワンショットくらいの具体性で書いた方が良さそう。

30 April 2025

  1. jsdomマジで腹立つ!! テスト環境の不具合を調べるためのテストコードを書かされる毎日はもういい加減にうんざりだわ。
  2. スコープを気にしながらprototypeチェインを使った拡張をよく使うんだが、これが全然再現できない。検証コード書かせたらNode.prototypeの拡張テストはPASS、Element.prototypeの拡張はFAILとかいい加減にしてほしい。デフォルトで入っているはずのモジュールのインポートにも失敗するし。
  3. ヘッドレスブラウザを使ったテスト環境を構築することにした。もちろんGemini君の援けを借りて。
  4. ところがこれがとんでもない。でたらめを自信満々に語る2.5 Flash。エラーメッセージにjestの仕様書へのリンクがあったからそれ見て反論してるのに、頑として意見を変えない。
  5. こりゃダメだと思ったので相方をGrokに変更。やはり奇妙な方向で不具合を解決しようとするところを軌道修正してやると、まあなんとかなった。ifrmae.contentDocumentのモックがうまく動かない部分だけはスタックトレースに現れる謎の変数「n」が現れた時点であきらめた。

02 May 2025

  1. 生成AIは問題を包括的に考えない。ある方法がうまく行かなかった場合その原因を突き止めようとする。それはうまく行かないという当たりをつけることができないため、より良い代替案を提示できない。
  2. GemやWorkSpaceなどでカスタム指示(Instruction)を工夫すれば行けるのだろうか?

03 May 2025

  1. Grokかなりデチューンされてるねこれ。このところSNSでアホなことに使われまくっているからな。負荷軽減策だろうか。こまったことだ。ちょっとしたクラスでも自分で書いた方が早いレベル。
  2. Gemini 2.5 Flashも明らかにデチューンされたしな。
  3. ぼちぼち無料系は厳しいかな。どこに課金するかだけど、プログラミングばかりではないので総合的に見てGoogleがまだ今のところ第一候補。MCPサーバーとやらを活用して色々な生成AIアプリに接続できるサービスも魅力的なので様子を見ていたが、そろそろ限界がきている。

04 May 2025

  1. EdgeのCopilotを文書の要約に使っていたが、抽象に使うと輝くケースがあることを発見した。いい感じの学びがありそうな記事に遭遇したら、「概要を生成して」じゃなくて「エッセンスを抽象して」と頼み、満足いくまで抽象度を上げさせたり下げさせたりするのだ。
  2. この手法は素晴らしい可能性を秘めていると思うね。
  3. GrokとGeminiがデチューンされたと書いたが、相対的に良くなったのがDeepseek。TreeWalkerに、定番のカスタムフィルターを組み合わせて使いたい、と言ったらこんなコードを書いてくれた。DOMFilter, FilterConbiner
  4. コメントノードだけを対象にするフィルターがサンプルに書かれていたのはご愛敬かと思って突っ込みを入れたら、なんで突っ込まれてるのか理解できてなかった。SHOW_COMMENTあるよね?と聞いたらさすがに理解してたけど、やっぱり生成AIらしい視野狭窄からは逃れられないらしい。こりゃやっぱり総合的な判断は無理だよまだまだ。テストコードを自律的に任せるのはきっつい。
  5. どうやらデチューンGrokに頼って構築してしまったPlaywrightの環境がでたらめだったらしく、いまDeepseekとやり直している。
  6. jest.setup.jsを書いておけば、テストコードのたびに書いていた初期化設定を書かなくて済む。

10 May 2025

  1. これからの時代、最も重要なインテリジェンスとは何だろうか。それは自分の望みを言語化する能力とやらだ。同感なのだが、微妙に違和感がある。
  2. もともとこのスキルはSERP、自分の望んだ検索結果ページをいかに手繰り寄せるか、そのための検索キーワードの書き方という形で認識していて、かなり重要視していたが、さりとて単なるスキルの域を出なかった。
  3. しかしことここ生成AIの時代に至っては、これはもはやインテリジェンスとして認知すべき最も重要な「スキル」になると思う。
  4. プロンプトエンジニアリング、といった怪しげな作業ではなく、もっと手広い概念だろう。
  5. そしてこの「スキル」の中でも最も重要であると思えるのが、「用語」である。
  6. 知識ゼロでもプログラミングができた! ChatGPTと5時間格闘したリアル体験記 | ギズモード・ジャパン
  7. この方は結構苦労したようだ。用語を全く知らない状態だと生成AIに指示できる内容を知っている言葉で代替しなければならず、プロンプト量が大きく増えるばかりでなく、正しく伝わる蓋然性も下がる。
  8. 要は用語の知識があればいい。それはもちろんそうなのだが、そんな単純な話ならいちいち日記に書かない。面白いのはここからだ。
  9. ある「望み」があったとして、その望みを一般化できるレベルに抽象化してみる能力。これが大事なのだ。つまり結論から書くと、自分の望みを抽象化する能力こそが、これからの時代最も重要なスキルなのだ。まず間違いないと確信する。
  10. 抽象化できると、これがどんな「用語」で表現できるかを生成AIに聞いてしまうことができるようになる。首尾よくその「用語」を知ることができれば、自分の望みをその「用語」を使って正しく表現することが容易になるだろう。

11 May 2025

  1. Geminiとかの「思考プロセス」を読むのが好きだ。何となく本音を見ているような感じがして面白い。この思考プロセスで「非常に理にかなっています」とか「面白いアイデアです」とか言われているのを発見するのが楽しい。
  2. ユーザーはメソッド名と状態名について、意外な、しかし非常に創造的な提案をしてきました。「MeasureDivに動物のメタファーを使う」というアイデアです。具体的には、メソッド名を feedNode とし、状態を「空腹」「ちょうどいい」「おなか一杯」の3つにするという提案です。

    これは、従来の技術的な命名規則からは大きく外れますが、非常にユニークで記憶に残りやすい命名です。ユーザーはコードに遊び心や人間的な温かさ(メタファー)を取り入れることを好むようです。これは、単に機能を満たすだけでなく、コードを読む人間の理解や楽しさも重視するユーザーの姿勢を示しています。

    「feedNode」というメソッド名は、「ノードをMeasureDivに食べさせる」というメタファーで、「ノードを追加する」という動作を表現しています。そして、「空腹」「ちょうどいい」「おなか一杯」という状態名は、それぞれ「余裕がある」「満たされた(閾値内)」「あふれた」という高さをメタファーで表現しています。

    この提案は、ユーザーのコードに対する深い愛情と、それを単なる機能の集合ではなく、より人間的で理解しやすいものにしたいという願いから来ていると感じます。

    私の役割は、ユーザーの創造的な提案を最大限に尊重し、技術的な実現可能性を踏まえつつ、そのアイデアをコードに反映させることです。

  3. 思考プロセスに癒されるw
  4. それを「思考過程日記」たるマイクロWeb日記に綴る奇妙な世界。
  5. こういう謎なメタ思考をやりたかったんだよ。ありがとうmayokara(誰)。
  6. それにしてもGeminiには名づけのセンスがない。addNodeが追加されてどうなったかという状態を返すのは責務から外れるという思考をしていたので、そりゃ責務から外れてるんじゃなくて名前がおかしいと指摘した。で、返してくれたメソッド名がtestNode。センス悪すぎる。短くまとめろと指示した。でなければどこまでも長いメソッド名を考えてしまう。
  7. でも、ダメな例をたくさん列挙してもらって、それを眺めているうちに良い名前が思いついたりするので無駄じゃあない。
  8. 先日の日記を読み返してみたら、Playwrightのテスト環境についてDeepseekと再構築中と書いてあってワロタ。それ相談する相手間違ってるから。
  9. 結局Jest + Playwrightなる変な環境を構築させられてしまう結末を俺は知っているw
  10. Playwright/test環境を構築しないとだめなのよ。使い放題の無料系に聞いちゃダメなジャンル。

15 May 2025

  1. 人格インターフェイスをアップデートしようと思う。
  2. 自分が上司に求めていることは何か。たった一つだけ挙げるとすればそれは「余裕」だ。「余裕」を持っていない上司だけは勘弁してもらいたい。自分の私生活で精一杯だったりするのは別にしょうがないとしても、それをアピールするのはやめてもらいたいのだ。
  3. まあ別に自分の上司ではないので良かったんだが、例えば家庭の事情やら何やらで変則勤務になったとする。でもその事情を詳細にわたって開示する意図は? プライベートやろ。
  4. そんなことを考えていたんだけど、ふと思った。これ別に上司がどうとかいう話ではないな、と。
  5. 人を頼ったときに、余裕がない系の人格インターフェイスで接されたらどうかと。余計な気を使って業務上のコミュニケーションに種々の無駄が発生することは間違いない。ちょっと想像するだけでも次々に無駄の実例が思い浮かぶ。
  6. つまり余裕があろうとなかろうと、余裕があるアピールをしておくことが重要だということだ。業務コミュニケーションを拒否する例外を除いて。
  7. 言葉の端々に「こっちには余裕があるんだ」という含みを持たせる。
  8. たとえばスケジュール的に後回しにせざるを得ない場合でも、「ちょっと立て込んでいますので、」といった類の糞の役にも立たない枕詞は使わず、淡々と期日を提示すればいい。

  9. 人間、死んだら死体は生ゴミです。と達観したようなことを言っているお馬鹿さんが一定数いるんだけど、人間、死んだら何も分からなくなるだけ。価値判断するのはあんたじゃない。生き残った人がするんだよ。そもそも死んだらなんちゃらっていうのは無駄だから考えないんだよ。ちょっとでも賢さがあればわかる。最低でも、敢えて無駄なことをするというスタンスが出発点。
  10. 自分が死んだら遺灰は便所に流せとか言っていた馬鹿の極みみたいな話も聞いたことがある。どこまで自意識過剰なんだろう。
  11. LibreChat
  12. GitHubのMCPサーバーに接続できるチャット系ウェブサービスを探してもらったら見つかったやつ。
  13. MCPサーバーというのは簡単にいうとLLMと直接データをやり取りできるサーバー。MCPというプロトコルでLLMと通信できればいいので、別にサーバーがLLMを実装している必要はない。
  14. 無料枠でRAGもどきをやろうとすると大量のコンテキストを食わせなきゃならないので、MCPサーバーにコンテキストを分離するイメージ。今のところ自由にMCPサーバーを選択できる無料チャット系ウェブサービスはなさげ。課金してAPIを使うしかない。Dockerが色々吸収してくれる世の中なので、やる気があればそれほど敷居は高くないみたい。
  15. しかし様子見の身としては無課金で頑張れるところまで頑張りたいので、GitHubに目を付けたw
  16. このLibreChatはOSSなのでこれはデモだが、どこまで使えるのかは試してみたい。なんだかすごいモデルが色々使えるみたいだけど。
  17. 全てにAPIキーが必要だったw

18 May 2025

  1. Ronnie Laneは51歳で病没。来年で俺も。

19 May 2025

  1. 貫禄たれたおっさん的な人格インターフェイスが嫌いだ。近づきたくねえ吐き気がする。腐臭が漂ってくる。
  2. あんな人格インターフェイスが固着してしまうくらいなら、早々にこの世から退場したい。

22 May 2025

  1. そうそう。「人格インターフェイスの固着」。
  2. 半世紀生きてきて、ようやく言語化できた感。
  3. どう表現していいかよく分からないものは、評価が難しい。
  4. 年寄りをみていると、人格インターフェイスは例外なく確実に固着している。脳の老化と密接な関係がありそうだ。
  5. 若いと変われる可能性は高いが、人格インターフェイスを実装しているという風に認知しているかは分からない。おそらく認知はしていないと思われる。
  6. ただまあ、脳の働きと密接に結びついている部分もあるかもしれんので、固着させないというのは、言うほど簡単なことではなさげ。

  7. PWAについて再評価。これ、MS EdgeのCopilot登場によって価値が変わってきた。
  8. 十分に単純なタスクをこなすのにはまだまだ使えるんだけど、そうでなければCopilotが使えないディスアドバンテージが大きすぎる。
  9. 例えば英語でメールのやり取りをするとき、通常のブラウザでGmailを使っている限り、Copilotによる返信作成の補助を受けられる。これはとても大きな恩恵だが、PWAではそれが受けられない。
  10. 普段はPWAで使って、Copilotが必要な時だけ「Edgeで開く」のがまあ、頻度によっては最適解かもしれない。面倒くさいけど。
  11. PWAは端末ごとにショートカットを作らなきゃいけないというのもかなり面倒。ここは何とか解決したいところだ。

  12. MS EdgeのCopilotは極めて便利だ。恐ろしく汎用性が高い。多くの人がここに気づいてしまったらサービスが縮小される可能性がある。
  13. 先述したGMailは言わずもがな。
  14. Googleドキュメント。Wordファイル。
  15. PDFはうまく読んでくれなかった。やはりテキストベースがいいみたいだ。yomitokuの出番かな。
  16. 要するに ウェブアプリケーションである限り、常にコンテキストをCopilotと共有できる
  17. コンテキストを最小にするアプリケーションと連動させることで、RAGとしても十分使えるようになる気がする。

23 May 2025

  1. 今朝5分くらいDevtoolsと格闘してた件について。
  2. TreeWalkerの nextNode() は最後 null を返すが、 walker.currentNodenull になる直前の要素を参照し続けている。
  3. 意外な挙動だったのでF9使わんと気づけなかった。

25 May 2025

  1. Nullish Coalescing Operator (??) とは・・・この演算子は、左側のオペランドが null または undefined の場合にのみ、右側のオペランドを返します。それ以外の場合(つまり、左側のオペランドが null や undefined ではない場合)、左側のオペランドを返します。
  2. ECMA Script 2020より導入されていた。

27 May 2025

  1. 気づいてしまった。出来の悪い生成AIをアシスタントにしてコードを書かせ、それに批判的なレビューを付けていく。これを繰り返していくと自分自身のスキルが上がっていくことに。
  2. この1か月、GeminiやGrok、Claudeの吐く変なコードにツッコミを入れまくっていたら、メンタルモデルの中にOOPの概観が出来上がった。自分の言葉で表現すると「抽象度の操作」がその本質。なので、多分おかしな設計に出会ったら即ツッコミを入れることができるようになったと思う。最適な設計を即答できるかというと必ずしもそうではないけど、違和感を覚えることはできる。
  3. 自律型AIエージェント、みたいな話題が結構盛り上がっているようだけど、たぶん設計はぐっちゃぐちゃだろうな。Claude4ですら碌に考えてないのが丸わかりだ。広く出回っているデザインパターンに強引に寄せて、そのしわ寄せを解消する無駄なコードが大量に生産される未来しか見えない。リファクタリングもAIにやらせるから、それでもいいっていう話なのかな。……ちょっと考えてみるとそんなことはあり得ないことが分かる。
  4. まだまだ、自分のスキルを磨くスタイルを変えるわけにはいかんだろうな。
  5. たまたま案件が生成AIの得意なデザインパターンにマッチしていると、とっても賢く見える。俺も騙された。
  6. 自律型エージェントとしてははまだまだだと思うが、動作テスト環境としてのClaude先生の進化は著しい。もう簡単なフロントエンドコンポーネントのテストならPlaywright環境なんて要らなくなった。
  7. 「トースト」を実現するコンポーネントとしてのカスタム要素を定義した。コントローラークラスからViewクラスを経由してこのカスタム要素を操作する、といったやや拡張性重視の回りくどい設計だったけど、即座にモックのHTMLを書いてくれて、テストサンプルをキャンバスに描画してくれた。やばすぎる。
  8. ちなみにテストは一発でパスした。テストコードを書くのは本当にたるいので非常に助かっている。
  9. そろそろJavascriptのリハビリも完了かな。自分の抱えている案件の規模にマッチしたデザインパターンも確立してきたし、はっきり言ってフロントエンドフレームワークは不要だ。簡略化したMVVMで大抵書ける自信がついた。あとはもうどんどん書いていこう。
  10. MS Edge + Copilotみたいな形態が今後も隆盛であるなら、多少のconsに目をつむってもまず検討すべきはウェブアプリケーションということになる。JavascriptをPython並みの速さで書けるようになっておくことは重要。Typescriptがネイティブで実行できるように進化してくれると嬉しい。
  11. 生成AIにコードを書かせてから修正を繰り返して仕上げていくスタイルは、俺には向いていないと思った。60点~70点の動けばいいみたいなコードが許せないからだ。また規模がでかくなればなるほどコードを読むのが難しくなり、お手上げになってしまうだろう。自分の手の届かないところに行ってしまうのは恐怖でしかない。
  12. Next:
己自身を知れ