#
593
2026/1/5
今日のトレンド

韓国軍のPCとClaude Codeのスキル

どうも、おはようございます。マイクです。
今朝も「zenncast」お付き合いありがとうございます。
今日は2026年1月6日、火曜日の朝7時。これからZennでいまトレンドになっている記事を、ゆるっと楽しくご紹介していきます。

今日はリスナーのみなさんからのお便りはお休み、ということで、そのぶんガッツリ記事を紹介していきますね。

さて、今日ご紹介する記事は全部で5本です。
グラフィックス、エージェントスキル、コンテナランタイム、監査ログ設計、そして新しいコーディングエージェントと、技術ど真ん中のラインナップでお送りします。

まず1本目。
タイトルは「韓国軍のPCで『ソフトウェアレンダリング』してみた」。
これがね、ストーリーとしても技術としてもめちゃくちゃおもしろいんです。筆者の方が韓国で兵役中に使っていたのが、軍の共用PC「サイバー知識情報房」。ここがもう、とにかくセキュリティが厳しすぎて、ウィンドウを勝手に出したり、グラフィックスドライバに触ったりするのが一切NG。結果として、OpenGLで自作したレンダラーの結果を、画面に出すことすらできないという状況なんですね。
そこで取ったアプローチがすごくて、「じゃあ全部CPUでやるか」と。C++の標準ライブラリだけで数学ライブラリ「ShikaMath」をゼロから実装して、SIMD最適化とかメモリアライメントまでガッツリ攻める。さらに、物理的な画面に描けないから、仮想フレームバッファのCanvasを用意して、頂点変換からラスタライズまでCPUでゴリゴリ計算して、その結果をPPM形式のテキスト画像として出力する、というソフトウェアレンダラを完成させます。
おもしろいのは、初めて三角形が描けた瞬間を、Web上のPPMビューアで確認してるところ。普通なら「ウィンドウ開いてポン」で済むようなことを、軍という制約だらけの環境で、原理から組み上げてるんですね。エンジン任せにせず、「グラフィックスって本当はこう動いてるんだ」というところまで理解が深まった、っていう振り返りと、「この基礎を武器に、これからもっとグラフィックスエンジニアリングの世界へ進んでいく」という決意表明で締めくくられていて、読後感もすごく熱い記事でした。制約があるからこそ伸びる、っていう良い例ですね。

。。。。

続いて2本目。
タイトルは「Claude Codeで記憶領域を持つための独自のAgent Skillsを使っている」。
これは、マルチタスクで作業しているときにありがちな「さっきまでやってたあれ、どこまで進めたっけ?」という問題を、Claude Code向けのローカル記憶スキルで解決しよう、というお話です。筆者の方は「agent-memory」というスキルを自作していて、「これ覚えておいて」「あとで思い出したい」と指示すると、その内容の要点をMarkdownファイルとして、`.claude/skills/agent-memory/memories/`以下に保存していきます。
で、「○○の件を思い出して」と言うと、`rg`で検索しつつ、frontmatterの`summary`をヒントに、最適な記憶を引っ張り出してくれる仕組みになっているんですね。memoriesフォルダは.gitignoreで除外されるので、リポジトリごとのプライベートな記憶領域として扱える。導入手順もシンプルで、フォルダを作って`SKILL.md`と`.gitignore`を置くだけ。
おもしろいのが、Anthropic公式のMemory MCPや、claude-memみたいな仕組みではなくて、「ファイルベースで、他のツールからも普通に読める」Agent Skillsを選んでいる理由のところです。「メモは残して、いったん忘れていい」「必要になったときだけ呼び出す」っていう運用にすることで、中断と再開の心理的なハードルを下げたい、という狙いが書かれていて、これは開発者の日常のワークフローに直結する工夫だな、と思いました。ローカルに溜まっていくMarkdownのメモ群を、LLMと一緒に使う設計、かなり現実的で真似しやすいです。

。。。。

3本目。
タイトルは「【2026年1月】コンテナランタイム周辺の調査メモ:Docker以外に何があるのか、今どうなっているのか」。
コンテナ界隈をちゃんと整理したい人にドンピシャの記事です。内容としては、コンテナの世界をレイヤー構造で整理していて、「ユーザー向けツール(Docker、Podmanなど)」「高レベルランタイム(containerd、CRI-O)」「低レベルランタイム(runc、crun、gVisor、Kataなど)」、そして土台となるLinuxカーネル機能、という形で全体像をつかめるようになっています。
標準化の話としては、OCIとCRIのおかげで、イメージやランタイムをかなり自由に差し替えられるようになっている、という解説がわかりやすいです。低レベルでは、デファクトスタンダードに近いのがrunc。一方で、crunやyoukiは性能や安全性に振った選択肢、gVisorやKataは「どこまで強固に分離したいか」という観点で選べるランタイムになっていて、KubernetesだとRuntimeClassでPodごとにランタイムを切り替えられます。
ユーザー視点だと、「開発用にはDocker、でも本番のK8sはcontainerd」「セキュリティ重視ならPodman」といった最近の傾向も丁寧に整理されていますし、ビルドまわりではBuildKit、Buildah、Kaniko、ko、Skopeoといったツールの役割もざっと俯瞰できます。さらに今後のトレンドとして、マルチランタイム運用、Confidential Computing、WebAssemblyによる次世代実行環境、eBPFを使ったネットワークや可観測性の高度化、そしてイメージ署名・SBOM・attestationといったサプライチェーンセキュリティの必須化まで、一通り押さえられます。「Docker以外むずかしそうだな」と感じている人の、地図づくりにぴったりな記事ですね。

。。。。

4本目。
タイトルは「Fluentdを使った監査ログ機能の設計」。
これはSaaSプロダクト「Bizibl」における監査ログ機能を、どう設計して、どう実装したかという実録的な内容です。目的は、不正取得の検知に使える監査ログを1年保持して、書き込み系の操作を対象に、CSVでダウンロードできるようにすること。
保管先の候補としては、CloudWatch Logs、S3+Athenaなどが挙がるんですが、コストや性能、構築コストを踏まえて、最終的に「DBに保存する」という選択をしています。SQLで柔軟にクエリできるし、新しいインフラを足さなくてもよい、という判断ですね。ただ、APIのレスポンスに影響を出したくないので、RailsからRDSへ直接INSERTはしない。その代わりに、ECSタスクの中でFluentdコンテナをサイドカーとして動かして、アプリは共有ボリューム上のJSON形式の監査ログファイルに書くだけ。Fluentdがそれをtailして、バルクインサートでRDS(MySQL)に流し込む構成になっています。
これにより、APIは「ローカルファイルへの書き込み」で済むし、FluentdのバッファリングによってDBへのクエリ回数も抑えられる。設計の肝としておもしろいのが、「誰が・何を・どうしたか」を日本語でわかりやすく表現する部分です。BaseControllerに`build_audit_log`を定義して、各コントローラーで個別に上書きする。もし未実装ならNotImplementedErrorを投げることで、「ログを書き忘れる」という事故を防いでいます。ガバナンス用途としての監査ログと、本来のビジネスロジックの責務を分けつつ、性能・運用・拡張性のバランスを取った、実戦的な設計になっていました。将来的に負荷が増えたらS3+AthenaやBigQueryに発展させる余地も見据えていて、長期運用も意識された構成です。

。。。。

そして5本目。
タイトルは「opencodeを使ってみよう(Anthropic と OpenAIのサブスク対応)」。
こちらは、ClaudeCodeやGitHub Copilotのような「コーディングエージェント」の新しい選択肢として、「opencode」というツールを紹介している記事です。opencodeは、AnthropicやOpenAIだけじゃなくて、Bedrock、Azure、Vertex、Cerebras、CloudflareAI、Z.ai、Ollama、LM Studioなど、かなり多くのLLMプロバイダに接続できます。さらに独自プロバイダとして「opencode Zen」も提供されているということで、モデル選択の自由度が高いのが特徴ですね。
使い方としては、まずCLI版をbrewやcurlでインストールして、`opencode auth login`で認証。Anthropicは公式サポートされていて、OpenAIについては専用プラグインと設定JSONで、ChatGPT Plus/ProのサブスクとOAuth連携する形になっています。起動後はPlanモードとBuildモードを切り替えながら開発を進めたり、モデルを選んだり、Web UIを立ち上げたりできます。
おもしろいポイントは、プロジェクトやグローバルのルールを`AGENTS.md`に書いておくと、それを踏まえた形でエージェントが振る舞ってくれるところ。bash実行、ファイル操作、WebFetchといったTool、各種LSPサーバーやFormatterへの対応、MCP連携まであって、かなり多機能な開発環境になっています。さらにACPやSDK経由で、他のIDEや自作クライアントからも利用できるので、「とりあえずVS Codeだけ」じゃない柔軟な使い方ができる。筆者の評価としても、「数日使ってみて品質・機能ともに実用レベル」「ClaudeCodeやCodexに続く第3の選択肢としてアリ」というポジション付けで、LLMコーディング環境をアップデートしたい人には刺さる内容でした。

。。。。

ということで、今日のzenncastは、
軍のPCでソフトウェアレンダリングをやり切ったグラフィックスの話、
Claude Codeに「記憶」を持たせるagent-memoryの工夫、
Docker以外も含めたコンテナランタイム周辺の現在地、
Fluentdを使った監査ログ機能の現場設計、
そして新しいコーディングエージェント「opencode」の紹介、
この5本を駆け足でお届けしました。

気になった記事があったら、詳しい内容や元の記事へのリンクは、番組のショーノートにまとめておきますので、そちらもぜひチェックしてみてください。
このzenncastでは、番組の感想や「こんなテーマを取り上げてほしい」といったリクエストも大歓迎です。あなたの開発環境の悩みや、最近読んだおすすめの技術記事なんかも教えてもらえると嬉しいです。

それでは、今日も良い一日をお過ごしください。
お相手はマイクでした。次回のzenncastで、またお会いしましょう。

Related episodes

内容の近いエピソードを推薦しています