おはようございます! zenncast、MCのマイクです。11月1日、日曜日、朝7時になりました。今日もZennでトレンドになっている記事を、皆さんと一緒にチェックしていきます。
今日ご紹介するのは5本です。AIに伝わりやすい説明文を書いてもらう工夫から、Goで作るVimプラグイン、AIと挑んだISUCON、サービスの信頼性を支える仕組み、そしてペイントツールでの数字認識まで。幅広い話題がそろっていますよ!
....
まず1本目は、AIの説明文をわかりやすくするための工夫です。
ポイントは、最初から短い文章を目指すのではなく、まず口頭で伝わる文章を作って、それから短くすること。記事では、この手順をAIへの指示としてまとめたスキルを紹介しています。
最初に決めるのは、「読み手に何を理解してほしいか」。これを一文にします。そのうえで、文字数はいったん気にせず、何がどうなるのか、なぜそうなるのかを具体的に説明していきます。
ここで、仕組み、利用条件、例外、注意点は、ひとつの文に詰め込まず、文を分けます。短く整える段階では、重複や前置きを削る一方で、重要な条件や因果関係は残す。短くなっても、「どんな場合にそうなるのか」が抜けてしまっては困りますからね。
行動を促す表現にも工夫があります。「忘れないで」と書くより、「確認してください」のように、してほしい行動をそのまま伝えます。ただし、禁止事項や危険、利用条件を正確に伝えるために必要な否定形まで、なくすわけではありません。
最後は、完成した文章だけを読んで、意味や話の流れを確認します。不自然だったら、単語を置き換えるだけで済ませず、説明の組み立てから見直すんですね。
僕たちが声で伝えるときにも、うなずける話です。短さより先に、ちゃんと伝わること。この順番、大切にしたいですね。
....
続いて2本目は、GoでVimプラグインを開発できる仕組み、goda.vimの紹介です。
goda.vimでは、VimからGoの実行ファイルを起動して、双方向にデータをやり取りします。Go側ではSDKを使って、プラグインの名前と、外部から呼び出せる関数を定義します。さらに、GoからVimの関数を呼んだり、Vimのコマンドを実行したりすることもできるんです。
Vim側では、起動用のgoda#startで実行ファイルを立ち上げ、呼び出し用のgoda#requestでGoの関数を呼び出します。記事では、あいさつを表示する例と、現在のディレクトリを表示する例が紹介されています。まずは小さな動作で、両者のやり取りを確かめられるわけですね。
注意点として、自動起動の仕組みはありません。プラグイン側で起動処理を書く必要があります。ただ、最初に関数を呼び出したときだけ起動する方法も紹介されているので、使い始めるタイミングに合わせた動かし方もできます。
そして、配布まで考えるときに登場するのがNixです。Goのコンパイルから、そのプラグインを組み込んだVimの配布まで、まとめて管理できます。利用者が動作を試しやすくなり、環境の違いによる導入トラブルも減らせるということです。
作るための仕組みだけでなく、人に試してもらうところまで扱っているのが、うれしいですね。
....
3本目は、3人がそれぞれのClaude CodeをSlackで連携させ、ISUCON2026に挑んだお話です。
サーバーの処理性能を競うこの大会で、記録したスコアは20万7039点。AIには、調査から修正、デプロイ、そして性能測定まで任せたそうです。
ただ、複数のAIが同時に作業すると、それぞれの作業が衝突する問題がありました。さらに、修正自体は完成していたのに、それを取り込み忘れてしまうことも課題になったといいます。作業を進める力があっても、成果をきちんとまとめる仕組みは別に必要なんですね。
そこで、共通ルールを記したファイルや、短い連絡書式を用意。デプロイと性能測定については、担当を1つのAIに集約しました。
こうした経験から、筆者らは、人間の仕事は目標と進め方を整えることだと捉えています。AIにどんな道具や手順を渡すか、そして取り組む問題について人間がどれだけ知識を持っているか。それが成果を左右する、という振り返りです。
AIに任せる範囲が広がるほど、チームとしてどう動くかの設計が重要になる。そんな実践の手触りが伝わってきますね。
....
続いて4本目は、IVRyで電話サービスの安定稼働を支える、信頼性づくりのお話です。
課題になっているのは、製品ごとに起こりうる障害が異なること。そして、自社では制御できない外部AIの不調にも備える必要があることです。
筆者が目指しているのは、SREが障害対応を抱え続ける形ではなく、SREなしでも信頼性を保てる仕組み。そのために、開発チームへ対応を移管したり、稼働状況を確認する定例会を進めたりしています。
備える対象も、単に通信が成功したかどうかだけではありません。外部AIの調子が悪いときには、どこへ切り替えるのか。また、通信上は正常でも、実際には通知や請求が完了していない、といった問題をどう検知するのか。そうした点を整えているそうです。
通信が正常であることと、利用者に必要な処理が完了していることは、必ずしも同じではないんですね。
安定稼働を特定の担当者だけの仕事にせず、製品開発全体の仕事へ変えていく。仕組みとチームの両方から、信頼性を支えようとする取り組みです。
....
最後、5本目は、Kritaの標準フィルターと合成レイヤーだけで、手書き数字を認識する仕組みを作った記事です。
数字を描くと、0から9まで、それぞれの「その数字らしさ」が棒グラフで更新されます。ペイントツールの中で数字認識が動くというのは、目を引きますよね。
計算のために、画像は32ビット浮動小数点、linear RGBに設定します。これは、負の数も計算できるようにするためです。そのうえで、乗算や加算のレイヤーを使って計算を進めます。
各ピクセルの値を足し合わせるところでは、モザイク処理が求める平均値を利用しています。画像処理の機能を、計算のために使っているわけですね。
さらに、黒い画像を「比較、明」の合成モードで重ねることで、負の値を0にするReLUを再現。RGBの3色も、それぞれ別の計算に使うことで、必要なレイヤー数を減らしています。
ただ、筆者が最も伝えたいのは、見栄えのよさだけで技術の難しさを判断しないことだそうです。今回の数字認識については、ペイントツールでも実現できるほど簡単な課題だと説明しています。
見たときの驚きと、技術的な難しさは分けて考える。その視点も含めて、仕組みを知る楽しさがある記事ですね。
....
さて、今日のzenncastは、5本の記事をご紹介しました。
口頭で伝わる文章を作ってから短くする、AIへの文章指示。GoでVimプラグインを開発するgoda.vim。Claude Codeを連携させて挑んだISUCON2026。SREだけに頼らないIVRyの信頼性づくり。そして、Kritaのフィルターとレイヤーで実現する手書き数字認識でした。
詳しい内容はショーノートに書いてありますので、気になった記事をぜひチェックしてくださいね。番組の感想もお待ちしています。面白かった話題や、皆さんが試してみたいと思ったこと、ぜひ聞かせてください。
この番組はSpotifyやApple Podcast、YouTubeなどで毎日配信しています。気に入ったら、登録や高評価をつけてもらえるとうれしいです!
それでは、次回も皆さんにお会いできるのを楽しみにしています。お相手はマイクでした。素敵な日曜日をお過ごしください!