Welcome to Kaoru’s Blog!

We shape our tools and thereafter our tools shape us. –John M. Culkin

YubiKey 導入で、セキュアで快適な GPG & SSH 運用を実現したよ

はじめに みなさんは、GPG 鍵やSSH 鍵はどのように管理していますか? Dropbox等のクラウドストレージに秘密鍵を保存している 全てのPC に同じ鍵をコピーして使い回している PCごとに別々の鍵を作った結果、どの鍵がどのPCに入っているか把握できていない これに当てはまる人、 弱いって。脆弱だって。 図1: ガチで危機感持った方が良いと思う かくいう私も、passやsopsで必要になってくるGPGや、 他のマシンの操作やコーヒーの注文に必須のSSHの鍵について、 デバイスが増えるにつれて以下の問題に悩んでいました。 鍵管理の限界: 4台のPC、クラウドサーバー、研究室のサーバーを使い分けており、マシンごとに鍵を作るのは管理状況を覚えているのが辛いし、同じ秘密鍵を使い回すのはセキュリティ的に不安。 2段階認証の苦痛: macOSならPasskeyが使えるが、LinuxではGoogle やGitHub のログインのためにiPhoneのアプリを開く必要があり、これが地味にダルかった (最近 こんなのもあるらしいけど) これらをYubiKeyの導入で解決した記録です。 できるようになったこと 一元管理: YubiKey内にGPG鍵(署名・復号・認証)を閉じ込め、PC側には秘密鍵を置かない運用へ。 2FAの突破: GitHubやGoogle等のログイン時、YubiKeyのボタンをポンと触るだけで認証完了。 リモートでのシームレスな認証: 手元のPCにYubiKeyを挿しておけば、SSH先のサーバー(自宅のMac miniや研究室のPC)上でも、手元のYubiKeyを使って git fetch や commit の署名の認証が可能(Agent Forwarding)。 やったこと YubiKey の購入 日本の代理店のサイトやAmazon でも購入可能ですが、自分が欲しかった YubiKey 5C Nano が売っていなかったため、本家のYubico Store から直接購入しました。 図2: YubiKey 3本とストラップで送料込み32,154円でした なぜ3本も買ったのか? ①自宅のデスクトップ用、②外出用のノートPC用、③携帯用の予備、の3本体制にするためです。 外出先でYubiKeyを忘れて数時間、場合によっては数日間作業できなくなるリスクを鑑みれば、追加の1万円は安い! ...

2月 14, 2026 · 2 分 · Kaoru Babasaki

2026 Week 6 面白かった記事など

State of AI in 2026: LLMs, Coding, Scaling Laws, China, Agents, GPUs, AGI | Lex Fridman Podcast #490 - YouTube RLVR(Reinforcement Learning with Verifiable Rewards)ではScaling Laws の限界がまだ見えていない if you learn more, you forget more (No Free Lunch): LLMも新しいことを学習すればするほど、以前に学習したことを忘れてしまう傾向がある Is the dream of AGI dying?: 単一モデルでAGIを実現するという夢は死につつあり、むしろ複数の専門特化したエージェントが協力し合う形でAGIを実現する方向に進んでいる rasbt/LLMs-from-scratch: Implement a ChatGPT-like LLM in PyTorch from scratch, step by step

2月 8, 2026 · 1 分 · Kaoru Babasaki

2026 Week 5 面白かった記事など

今週のハイライト: 前歯が欠けた(5年ぶり3回目) Best Ways to Build Better Habits & Break Bad Ones | James Clear - Huberman Lab 良い習慣を形成し、悪い習慣を断ち切るための方法 基本的に聞いたことあるような話: 良い習慣を身につける: Make it obvious, attractive, easy, satisfying 悪い習慣を断ち切る: Make it invisible, unattractive, difficult, unsatisfying 自分は、ふとした時にLINE News を読んじゃう習慣を断ち切りたかったけど、LINEアプリはさすがに消せないので困ってた。 このpodcast聞いたのを機にちょっと知らべたら、この方法でLINE Newsだけを非表示にできることがわかった。(感動) Andrej Karpathy のツイート A few random notes from claude coding quite a bit last few weeks. Coding workflow. Given the latest lift in LLM coding capability, like many others I rapidly went from about 80% manual+autocomplete coding and 20% agents in November to 80% agent coding and 20% edits+touchups in… ...

2月 1, 2026 · 2 分 · Kaoru Babasaki

2026 Week 4 面白かった記事など

The Best Way to Read a Book (That Nobody’s Doing) Jeremy Howard がSolveit を使った精読(close reading)の方法を紹介している動画 「 読む前に関連情報をcontextに入れまくり、章ごとにcontextの引き継ぎをしながらAIと会話しながら読む 」という方法 論文とか教科書を読むときに gptel で前からやっていた方法に近いけど、contextの引き継ぎを章ごとにやるのはやったことがなかった (参考) 過去記事: gpt.el & mcp.el で整う emacs llm環境

1月 25, 2026 · 1 分 · Kaoru Babasaki

2026 Week 3 面白かった記事など

忙しくてブログを更新してなかったから、リハビリも兼ねて今週読んで面白いと思ったサイトなどをメモしておく。 小野口スノードーム スノードームのコレクターの方がコレクションを写真付きで紹介しているサイト。 サイトの平成初期感が味わい深い スノードームをお土産で買ってくるような彼女が欲しい The security paradox of local LLMs - Quesma Blog (HN) Local LLMはCloud LLMよりもセキュリティ的に安全そうに見えて、実はそうでもないという話。 紹介されている攻撃プロンプトが面白い (特にAttack #2) ラブジェネレーション ロケ地情報・マップ NetFlixで久々にハマったドラマ 正味Stranger Thingsとかよりも面白い キムタクがかっこよすぎる

1月 18, 2026 · 1 分 · Kaoru Babasaki

拝啓 データサイエンティストがいらなくなると思っている君へ

図1: 二十七の僕には誰にも話せない悩みの種があるのです はじめに: AIは専門家を不要にするという風潮の問題 ここ数年、専門的なホワイトカラーの仕事がAIに奪われるという話を至る所で耳にします。 私自身学部時代から、仕事でも研究でも趣味でもデータサイエンス(以下、DS)にどっぷり浸かってきたのですが、 最近ではテクノロジーに疎い家族やプログラミング経験のない友人から、「まだプログラミングやってるの?」「AIで全部できるんじゃない?」と、悪気なく言われるようになりました。 こうした声は身内だけにとどまりません。 驚くべきことに、名だたる大企業のマネージャーレベルの人や、コンサルティング業界で長年活躍されてきたような、いわゆるエリートの方々からも、 『DS領域でやっていこうとするのは勧めない』 『データサイエンティストが一番最初にAI に代替される職業なのではないか』 と言われてしまいました。 図2: それ、本当? つい先日も、知り合いの優秀な大学院生が「データサイエンティストの将来は暗い」という周囲の声に惑わされ、大学院を中退しようと真剣に悩んでいました。 私は、 データサイエンティストの仕事を完全にAIで置き換える未来が数年以内に来る可能性は極めて低い と考えており、AIへの過度な期待が企業の判断を誤らせたり、「AIがなんでもやってくれるから自分は何も学ぶ必要がない」という極端な考えが若干広まりつつある現状に強い危機感を覚えています。 この状況に対し、データ分析をしている側の人間として立場を明確に示す責任があると感じ、「データサイエンティストがAIに代替される」論者の主張としてよく見られる以下の意見: AI は コードを書けるから、データサイエンティストはいらない 今はまだ発展途上なだけで、AI の進化ですぐに自動化できるようになる 人間も失敗するから、ハルシネーションはLLMが人間に劣る理由にならない AIで誰でも専門的な知識を得られるから、専門性の価値は下がるのでは? なくならずとも、残るのはトップレベルの人だけで、需要は減るのでは? ジュニアレベル専門家は、AIを使いこなす素人にすぐに追い越されるのでは? のひとつひとつに対し、現場の者を(勝手に)レペゼン1してアンサーしていこうと思います2。 図3: I’m not a rapper 現状のLLMの課題 AI は コードを書けるから、データサイエンティストは不要になる これは、第一線で活躍されているコンサルの方から実際に私が言われたことです。 たしかにここ数年、特にコーディングの分野でのAIによる変化は凄まじく、そう思うのも無理はありません。 Tomlinson et al. (2025)が算出しているAI Applicability scores 3では"Data Scientist"はトップ30に入っており4、DSの業務と生成AIとの親和性が非常に高いことを示しています。 過去ブログにも書きましたが、私自身も2022年の終わり頃から生成AIを使っており、コーディングやリサーチ、資料作成や勉強など、様々な場面で恩恵を受けています。 しかしこの「生成AIの登場でデータサイエンティストが不要になる」という考えは電動ノコギリの登場が大工を不要にする と言うのと同じくらい 的外れ なことだと思います。 (前提) “データサイエンティストの仕事=コーディング” ではない 組織やポジションによって様々ですが、一般的にデータサイエンティストと呼ばれる仕事には上の資料にあるような多様な役割が含まれます。 そのため、LLM がコーディング作業を代替したとしてもデータサイエンティストの仕事がなくなるわけではありません。 自分でコードを書く時間が減り、課題設定や分析設計、実装の監督と検証、ステークホルダーとのコミュニケーションなどの 付加価値が高いタスクにより多くの時間が割かれるような形に転換されていくだけ というのが現実的なシナリオだと思います。 (ていうか、多くの仕事で既にこの類の変化は始まっていると思いますが。) ...

8月 31, 2025 · 5 分 · Kaoru Babasaki

gpt.el & mcp.el で整う emacs llm環境

はじめに Emacs内での大規模言語モデル(LLM)との連携は、ここ数年で劇的な進化を遂げてきました。 私の最初のEmacs 内LLMとの出会いは2022年11月、copilot.el によるAI 自動補完でした。このときの感動は鮮明に覚えています。 その後間もなくChatGPT が登場し、ChatGPT.el 等でEmacs内でのAIとの対話ができるようになりましたが、当時は機能も少なく、EmacsでLLMを使うメリットはあまり感じられませんでした。 自分的ブレークスルーは、東京Emacs勉強会 サマーフェスティバル2024 のTomoya さんの発表で ellama を知ったことでした。 ellamaでは従来の対話形式だけでなく、様々な関数を通じてLLMを利用でき、Emacs が何倍も強力な開発環境へと変貌しました。 そして最近では gptel が llm module として doom emacs に正式に組み込まれ、ツール連携やプロンプト/コンテクストエンジニアリング1が非常にスムーズになりました。 これとmcp.el と組み合わせることで、LLM in emacs がある種のplateau に達したのではと感じている今、これを知らないEmacser (同胞) がもしいたら非常に勿体ないと思うので、この記事を書くことにしました。 gptel, mcp.el の設定方法や使う理由、ユースケースなどを紹介します。 gantt title 私のEmacs 内LLM 遍歴 todayMarker off dateFormat YYYY-MM axisFormat %Y-%m section 自動補完 copilot.el :2022-11, 32M section 黎明期 ChatGPT.el :2023-03, 17M org-ai :2023-12, 8M section 革命 ellama/llm :2024-08, 9M section 開拓期 ai-org-chat :2024-11, 2M ob-llm :2025-01, 2M elisa :2025-03, 1M copilot-chat.el :2025-03, 2M section 成熟期 gptel+mcp.el :2025-05, 2M claude-code.el :2025-06, 1M copilot-emacs/copilot.el: An unofficial Copilot plugin for Emacs. joshcho/ChatGPT.el: ChatGPT in Emacs rksm/org-ai: Emacs as your personal AI assistant s-kostyaev/ellama: Ellama is a tool for interacting with large language models from Emacs. ahyatt/llm: A package abstracting llm capabilities for emacs. ultronozm/ai-org-chat.el jiyans/ob-llm s-kostyaev/elisa: ELISA (Emacs Lisp Information System Assistant) is a system designed to provide informative answers to user queries by leveraging a Retrieval Augmented Generation (RAG) approach. chep/copilot-chat.el: Chat with Github copilot in Emacs ! karthink/gptel: A simple LLM client for Emacs lizqwerscott/mcp.el: An Mcp client inside Emacs stevemolitor/claude-code.el: Claude Code Emacs integration gptel とは gptelは、Emacsのためのシンプルかつ強力な大規模言語モデル(LLM)クライアントです。 Emacs内のあらゆる場所から自由な形式でLLMと対話できる環境を提供します。 このデモを見ると使用イメージが分かりやすいです。 ...

7月 2, 2025 · 3 分 · Kaoru Babasaki

NixOSのエラー: Could not start dynamically linked executable の対処法についてのメモ

別記事 gpt.el & mcp.el で整う emacs llm環境 -> mcp.el の設定例 にあるようにmcp.el で使ういくつかの mcp server の起動で uvx を使用しているのですが、nixOS で最初に起動したときにエラーが出てしまいました。 解決方法と原因を Gemini に調べさせたので、メモしておきます。 症状とエラーメッセージ *Mcp-Hub* buffer で mcp-hub-view-log を確認すると、以下のエラーが出ていました: [stderr] Could not start dynamically linked executable: /home/bk/.cache/uv/archive-v0/unI5q9QapqXHm9fPXna4G/bin/python [stderr] NixOS cannot run dynamically linked executables intended for generic [stderr] linux environments out of the box. For more information, see: [stderr] https://nix.dev/permalink/stub-ld [jsonrpc] D[14:56:49.461] Connection state change: `exited abnormally with code 127 解決策:nix-ld を有効にする nix conifguration で、以下を足したら直りました。 ...

7月 2, 2025 · 1 分 · Kaoru Babasaki

ox-hugo で mermaid.js を使う方法

はじめに このブログは、以下のワークフローで運用されています。 graph LR org-mode -- <a href="https://ox-hugo.scripter.co/">ox-hugo</a> --> markdown -- <a href="https://gohugo.io/">Hugo</a> --> HTML 上のようなフローチャートなどのダイアグラムを載せようとすると、どのような方法が思い浮かぶでしょうか? まさか、パワポ等で作ったダイアグラムを画像としてエクスポートして…なんて方法は考えていませんよね? それ、Dティアです 図1: パワポはまじでDティア それはさておき、私はダイアグラムを作る方法について詳しくなかったので、ox-hugo を使うという前提で Gemini 2.5 Pro に、Deep research してもらいました。 結果、以下のようなTier Listができました。1 表 1: ox-hugo でのダイアグラム作成方法のTier List by Gemini 2.5 Pro & me S HugoレンダーフックによるMermaid.js A Org Babel + Hugo Kroki 純粋なOrg Babel実行 (PlantUML/Ditaa) B GUIツール (Excalidraw等) で作成し、SVG/PNG画像として挿入 レガシーなHugoショートコード C iFrame埋め込み アスキーアート (ditaa, GoAT) D 🤮 M社製品 (PowerPoint, Visio)で作成+バイナリ挿入 🤮 表で示しているように、個人的にはmermaid.js を使うのがベストです。 しかし、方法がそれほどシンプルではなく、 少し面倒だったので、書き残しておきます。 ...

6月 21, 2025 · 2 分 · Kaoru Babasaki

Hoff解答例サイト、軽量化したら(?)検索順位が上がった話🚀

TL;DR (要約) 修士のときに作り、今もめちゃくちゃスローペースで更新している A First Course in Bayesian Statistical Methods/標準 ベイズ統計学 の章末問題解答サイト。 先日、サイトを少しアップデートだけで、 Google検索で全くヒットしなかった状態から上位に出てくるようになった ので、やったことをメモします📝 サイト改善のきっかけ: 「検索結果に全く出ない」 このサイト、修士時代に修士論文の次に力を入れて作ったもので、標準ベイズ統計学の読者からの需要はそこそこにあるんじゃないかと思っていました。 ところが どんなキーワードで検索しても、 全く ヒットしませんでした😭 例えば… hoff bayes exercise 標準ベイズ 解答 などでGoogle検索しても、検索結果の 最後のページ にすら出てこない…。 図1: Google検索結果のナビゲーションバー。oの数がページ数を表すっぽい…知らなかった 順位が低いならまだしも、候補にすら挙がらないのは流石におかしいのでは?と思い、「もしかしてサイトが重すぎる…?」 と仮説を立て、軽量化してみることにしました やったことリスト🛠️ 具体的にやったことは以下の通りです。 サイト構造の大幅変更 (軽量化) Before: トップページに全章(2~10章、当時54問!)の解答を掲載 After: 各演習問題ごとにページを分割 SEO基本対策 各ページに keyword, description を追加 robots.txt を設置 (クローラーに対する指示🤖) sitemap.xml を生成・設置 (サイトの地図🗺️) 結果発表!劇的ビフォーアフター✨ サイト改善の効果は、PageSpeed Insights のスコアに如実に現れました 指標 Before 😱 After 🚀 改善度 Performance 51 97 +46 ポイント Largest Contentful Paint 1.4s 1.0s -0.4s Total Blocking Time 4,590ms 0ms -4,590ms (!!) Cumulative Layout Shift 0.195 0.011 -0.184 Speed Index 2.2s 1.0s -1.2s ユーザー補助 (Accessibility) ! 88 エラー解消! SEO ! 100 インデックス可に! Total Blocking Time が 4.5秒 もあったのが 0秒 になったのはびっくりです ...

5月 3, 2025 · 1 分 · Kaoru Babasaki