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は初めて使うような……。今まであったかな?/li>
  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. 資格系の勉強もこれで行ければ面白そう。資格マニアみたいな人に教えてあげたい。周りにはいないけど。
己自身を知れ