どうも、おはようございます。朝7時を回りました。2026年3月22日、日曜日の朝です。FMラジオ「zenncast」、パーソナリティのマイクです。ここからの時間は、技術記事投稿サービス「Zenn」から、今日のトレンド記事をピックアップしてご紹介していきます。ゆったりコーヒーでも飲みながら、お付き合いください。
今日は全部で5本の記事をご紹介していきます。どれも「やらかし」「仕事効率」「インフラ防衛」「言語理解」みたいに、エンジニア心をくすぐるラインナップになってますよ。
まず1本目。「codexでスパコンを壊してしまった話」。タイトルからしてヘビーなんですが、中身もなかなかインパクトあります。筆者の方が、スパコンのログインノード上でCodex 0.116.0を起動したところ、プロセスがハングしてしまって、ストレージの Lustre に対する待ち状態が一気に詰まり、デッドロックのような状態になっちゃった、と。結果として、SSHログインすらまともにできないレベルまで環境が重くなってしまい、ほかの利用者にもかなりの影響が出たそうです。しかもログインノードが2台あったんですが、両方でcodexを動かしてしまったせいで、両方ともほぼ使えない状態に……という、なかなか冷や汗ものの展開。かろうじて ssh "bash" で最低限のシェルには入れるものの、書き込みが伴う操作はほとんどダメ。psで確認すると、codex関連プロセスがゾンビやD状態で居座っていて、killも効かない。管理者の調査によると、ログインノード上でのCPU・メモリの高負荷な使い方が問題で、codex起動時の大量なファイルスキャンやインデックス参照がストレージを詰まらせた可能性が高いとのこと。さらに他ユーザーのcodexも同様におかしくなっていて、複数人が同時に重いスキャン処理を走らせたのがトリガーだったんじゃないか、と総括しています。メッセージとしては、「ログインノードだからって軽い処理だけとは限らないよ」「ビルドや補助ツールのつもりでも、I/OやCPUを食うものはちゃんと気をつけよう」という注意喚起。スパコンみたいな共有資源での「やらかし」って、自分にも起こりうるので、ちょっと身が引き締まる内容です。こういう事故のリアルなレポート、読めるのありがたいですよね。
。。。。
続いて2本目。「方眼紙Excel→Markdown変換、結局LLMしか勝たん話【全手法比較】」。これ、日本の現場感がめちゃくちゃ出てる記事です。いわゆる「方眼紙Excel」、マス目状にしてレイアウト命で作られた資料たちですね。これをMarkdownに変換しようとすると、そもそも考え方が全然違うので、キレイにうまくいかない。openpyxl や pandas、markitdown、docling といった従来ツールをいろいろ試した結果がまとめられています。方眼紙Excelってセル結合や均一グリッドで「見た目」を作っているのに、Markdownは見出しやリスト、テーブルみたいな「論理構造」で表現する世界。だから機械的にCSV的な扱いをすると、同じ内容の列が50列並んだり、NaNが大量に発生したりして、「意味は?!」みたいなアウトプットになりがちなんですね。doclingはHTMLにすると rowSpan / colSpan を使って視覚構造をだいぶ保てるんですが、Markdownだとどうしても限界がある。一方で、GitHub Models API や Copilot SDK 経由のLLMを使うと、セル配置から「これは見出し」「これは表」「ここは箇条書き」といった意味構造を推論して、列の重複を減らしつつ、実用的なMarkdownを組み立ててくれると。特に工事仕様書、工程表、数量集計表といった、ガチ現場の方眼紙Excelに対して、現実的に使える品質でMarkdownが出てくるのはLLMしかなかった、という結論です。整理としては、「軽量な単純変換は pandas / markitdown」「構造をできるだけ残したHTMLなら docling」「人間が読める高品質Markdownが欲しいならLLM」という住み分けですね。「とりあえず何でもLLM」じゃなくて、既存ツールとの比較検証が丁寧に書かれているので、自分の現場にどれを採用するか、イメージが付きやすい記事になってました。
。。。。
3本目にいきましょう。「個人開発サイトにBOTが大量アクセス → Cloudflare無料プランで撃退した話🛡️」。個人開発者なら「これ、うちのサイトでも起きてるかも…」とドキッとする内容です。筆者の方が運営しているバイクポータル「MotoHub」で、ある日GA4のアクティブユーザー数が急に増えたそうなんですね。「おっ、伸びてる?」と思いきや、よく見るとエンゲージメント時間0秒のセッションが大量発生。そこでログを追ってみると、YandexBot、SemrushBot、AhrefsBot といったクローラー系のBOTが山ほどアクセスしていたと。GA4って既知のBOTはある程度除外してくれるものの、全部をきれいに弾いてくれるわけじゃないので、「成長した」と思っていた数字の中に、実はBOTがかなり混ざっていた可能性があった、という気づきです。対策としてはまず robots.txt でお行儀の良いクローラーには来ないでねと伝えつつ、それでも来るやつらに対しては、Cloudflare 無料プランのWAFカスタムルールを設定。Nginxログから特定した User-Agent、YandexBot、SemrushBot、AhrefsBot に加えて MJ12bot、DotBot あたりをまとめて Block するルールを作成していきます。ただしここで注意したいのは、Googlebotを間違って巻き込んでブロックしてしまうとSEO的には致命傷になりうるところ。記事では Cloudflare の Security Events をちゃんと見て、どのアクセスがブロックされているか、巻き添えは出てないかを確認する手順も触れられています。結果としては、Cloudflare 側で1日あたり1400件以上のアクセスを遮断するようになり、オリジンサーバーの負荷が減少。GA4のアクティブユーザー数自体は減っちゃったんですが、これはむしろ「水増し分が消えて、正しい姿が見えるようになった」ポジティブな変化だとまとめているのが印象的でした。さらに、GA4のコホート別エンゲージメントや国別レポートでBOTの痕跡を探すコツ、日本からのアクセスはちゃんと残っているかの確認、Cloudflare無料プランで使える Bot Fight Mode や Security Analytics の紹介など、個人開発者でもすぐ真似できる実践的なTipsがぎっしりです。「トラフィック増えた!喜べ!」じゃなくて、「まずは本当に人なのか疑おう」という教訓も良いですね。
。。。。
4本目。「図を描いて理解するRustの所有権」。Rust学習者の心の壁、所有権のお話です。Rustの所有権って、「コンパイル時にメモリ安全性を保証する」ための中核なんですが、初学者からするとどうしても抽象的に感じやすいところ。この記事では、「変数は一度使えば消費される資源」という世界観で説明してくれます。水素と酸素の化学反応を例に、値を関数に渡すと所有権がムーブして、元の変数が使えなくなる様子を図で示しているのが特徴的です。「H2 と O2 を反応させたら H2O ができて、元の物質には戻れないよね」という感覚に近いんですよね。そこから、`Clone` による明示的な複製と、`Copy` トレイトを持つ軽量な値型では暗黙コピーがOK、という整理に入っていきます。一方で、`String` や `Vec` のようなヒープを持つ型は `Copy` できないので、代わりに参照・借用 `&T` を使って「資源を消費せずに使い回す」方法を紹介。参照には `Copy` が実装されているので、普段の言語に近い感覚で何度も使えるけれど、その命はライフタイムに縛られていて、範囲を超えたらコンパイルエラーになる、そのあたりも図付きで丁寧に整理してくれます。さらに、書き換え用の可変参照 `&mut T` が同時に複数存在できないこと、「共有参照か可変参照か、どちらか一方しか許されない」という shared XOR mutable のルールを通じて、データ競合やダングリングポインタを原理的に防いでいるんだ、というところにも触れています。「線形論理的な資源としての変数」と、「実用のためにそれを緩める参照」という二層構造で説明してくれているので、理屈派の人にも手触り派の人にも刺さる構成でした。所有権で挫折しかけてるRust学習者に、かなりおすすめの記事ですね。
。。。。
最後、5本目。「『ポインタ渡し』なんてものは存在しません!【C言語入門】」。C言語の世界では昔からよく聞くフレーズ、「値渡し」と「参照渡し」、それに出てくる「ポインタ渡し」という言葉を、ちゃんと定義から整理し直してくれる記事です。筆者の主張は明快で、「C言語の仕様上、引数は全部『値渡し』だけです。『ポインタ渡し』なんて仕組みは存在しません」というもの。一般に言われる「値渡し」「参照渡し」をちゃんと定義し直したうえで、Cでは「変数として振る舞う参照」は登場しない、と説明します。Cでやっているのは、「ポインタの値渡し」だけ。つまり、「変数の場所を表すアドレスという値をコピーして渡して、関数内では * 演算子で間接参照しているだけ」だと。にもかかわらず、あたかも「値渡し」「参照渡し」とは別ジャンルのメカニズムとして「ポインタ渡し」を教えてしまうと、学習者が引数の仕組みを勘違いしてしまう危険がある、と指摘します。特にCの本質って、「メモリをどう扱うか」を理解するところにあるのに、そこで概念をごちゃまぜにしてしまうと、せっかくの学びのチャンスを潰してしまう。だからこそ、初心者には「ポインタ渡し」というあいまいな言葉は使わず、「ポインタの値渡し」として教えるべきだ、と強く訴えています。名前の付け方ひとつで理解の筋道って大きく変わりますし、自分が人に教える立場になったときにも意識したい視点ですよね。Cを学んでいる人だけじゃなく、「これから後輩に教えるかも」というエンジニアにも、ぜひ読んでほしい内容だと感じました。
。。。。
というわけで、今日の zenncast では、スパコンでのcodexトラブルから、方眼紙ExcelをMarkdownに変換する話、個人開発サイトをBOTから守るCloudflare活用、Rustの所有権を図で理解する記事、そしてC言語の「ポインタ渡し」を問い直すエントリまで、5本を駆け足でご紹介しました。それぞれの記事の詳しい内容や、実際のコード、図なんかはショーノートにまとめてありますので、気になったトピックがあれば、後でゆっくりチェックしてみてください。
この番組「zenncast」では、みなさんからの感想や、「こんなテーマを取り上げてほしい」「このZenn記事が面白かった」などのお便りも募集しています。あなたの開発の小さな成功談や、やらかし話も大歓迎です。次回また、この時間にお会いできるのを楽しみにしています。
それでは、そろそろお別れの時間です。お相手はマイクでした。今日も良い一日をお過ごしください。ではまた。