どうもこんばんは、「zenncast」パーソナリティのマイクです。
2025年11月26日、水曜日の夜、いかがお過ごしでしょうか。
この番組は、その日にZennで話題になっているトレンド記事をピックアップして、ゆるっと楽しく、でも内容はしっかりめにご紹介していくラジオです。
今日はお便りはお休みなので、その分じっくり記事を見ていきましょう。
本日ご紹介する記事は、全部で5本です。技術スタックもテーマもかなりバラバラで、いい意味で「情報のフルコース」みたいなラインナップになってます。
まず1本目。「Prisma@7 は No Rust でも Rust Free でもない」という記事です。
Prisma 7 の発表のときに、「Rust Free」とか「No Rust」っていうキャッチーなワードが一人歩きして、「Rust もういらないんだ〜」って受け止めた人も多かったと思うんですが、この記事はそこにしっかりブレーキをかけてます。
実際には、Prisma のクエリコンパイラは Rust で書かれていて、それを WASM にして使っているだけなんですよね。`provider = "prisma-client"` で TypeScript だけで動く風に見えても、内部では base64 化された Rust 製 WASM が必須。結果としてバンドルサイズも増えるし、「TS だけになって軽くてハッピー!」って単純な話じゃないよと。
さらに Prisma Accelerate とか Prisma Postgres を使うと、Rust な部分を“リモートで”動かせるんですが、それをもって「Prisma は No Rust になった」と説明している情報もあって、そこも「いや、それは違うでしょ」と丁寧に指摘しています。
結局のメッセージは、「No Rust」じゃなくて「No native libraries」に近い変化なんだ、ということ。そして、公式や有名エンジニアが言っていても、技術情報は自分でちゃんと検証しよう、っていう締めがとても印象的でした。流行りのキーワードだけで判断しちゃうと危ないよね、っていうお話ですね。
。。。。
続いて2本目。「SlideCraft - AI生成スライドを部分的に直せるツールを作りました」という記事です。
これは「もう全部AIでスライド作り直して!」じゃなくて、「この数枚だけ直してほしいんだよなあ」という、現場っぽいニーズに刺さるツールの話です。PDF スライドをアップロードして、「ここだけAIでいい感じにして」と部分的に差し替えられる、完全クライアントサイドの Web アプリ。
面白いのが、バックエンドを持たずにちゃんとデータを永続化するために、Origin Private File System、OPFS を使っているところ。ブラウザの中に“ローカルフォルダ”を持つイメージで、プロジェクトをディレクトリ、その中に画像やメタデータをファイルとして保存していく、っていう構成になってます。
ルーティングや状態管理には React Router v7 をフル活用していて、clientLoader/clientAction と useFetcher で「読み取り」と「書き込み」をはっきり分離。これで非同期処理の見通しがよくなっている、という実践的なノウハウも紹介されています。
スライドの再構成には Google Gemini API を使っていて、1枚に対して複数候補画像を Promise.all で並列生成して、待ち時間を短くしているのもポイント。さらに、解像度ごとの単価と為替レートを踏まえて「これぐらいお金かかりますよ」と事前に概算コストを、日本円ベースでも見せてくれるので、「AI画像生成っていくら飛んでるのかよく分からない問題」にも踏み込んでます。ブラウザだけで、ここまでリッチな AI スライド編集ができるんだ、という良いデモになっていました。
。。。。
3本目。「自作OSにネットワーク機能を実装してpingに応答させる」という記事です。
これは読んでるだけでテンション上がる系ですね。「自作OSが ping にちゃんと返事する」って、それだけでロマンがあります。
環境としては QEMU 上で動く自作OSと、ホスト側の WSL2 を、virtio-net と TAP デバイスで同じネットワークに接続。そのうえで、カーネルが virtqueue から受け取ったパケットを network プロセスに渡し、そこでイーサネットフレームを解析していきます。
まずは ethertype で ARP と IPv4 を振り分け。ARP Request が来たら、自分の IP 宛かどうかを確認して、ARP テーブルに登録しつつ ARP Reply を組み立てて返す。IPv4 側では、protocol を見て ICMP かどうかを判定して、Echo Request(いわゆる ping)だったら、中身をコピーして type を Reply に変えて、チェックサムを再計算。IPv4 ヘッダを付け直して、ARP テーブルから調べた MAC アドレス宛にフレームとして送信…という流れです。
ハマりポイントとして挙がっていたのが、ネットワークバイトオーダー変換を忘れがち、という話ですね。ntohs/ntohl/htons/htonl をどこかでサボると、値が全部おかしくなる。さらに、IPv4 と ICMP のチェックサムは、計算前に対象フィールドをゼロでクリアしないと正しい値にならない、という罠も。
こうやって一つ一つデカプセル化・カプセル化の処理を書いていくことで、ARP テーブルの役割や、レイヤ1〜3の動きが体感として分かってくるのがいいところですね。「教科書で読んだネットワーク」が、「自作したOSが実際に応答しているネットワーク」に変わる瞬間を共有してくれている記事でした。
。。。。
4本目。「asChild の課題と他の合成パターンの比較」という記事です。
React/Headless UI 周りでコンポーネント設計をしている人には、かなり刺さる内容です。Radix UI などが採用している asChild パターンは、Slot コンポーネントと React.cloneElement を使って props をマージし、柔軟に合成できるのが売りなんですが、その裏で失われているものがあるよ、という話。
具体的には、children を ReactNode として扱うために型安全性が崩れがちで、「本当は必須の props が足りていない」とか、「ref の型が合ってない」とか、「想定してない要素種別が渡されている」といった問題が、コンパイル時には検出されないんですね。
さらに cloneElement 自体が、最近の React エコシステムとの相性が悪くなりつつある。RSC(Server Components)や React Compiler との組み合わせで不具合が報告されていて、React 19 世代ではコアチームからも事実上“非推奨”っぽい扱いになってきている、という指摘もあります。
一方で、Ariakit や Base UI は render prop、Headless UI は as prop、React Aria は hooks ベース(+React Aria Components)と、cloneElement に依存しないパターンを採用していて、型安全性と RSC との相性を重視している。それに対して Radix UI や Ark UI は、DX とシンプルさを優先して asChild を維持している、という構図ですね。
筆者としては、大規模・長期運用を前提にするなら、型安全性優先のパターン——render prop や hooks ベース——を選んだほうが、後々のメンテナンスコストが小さいだろう、という立場。DX 重視で「ちょっと危険だけど便利な道具」を取るのか、堅牢性重視で「やや冗長だけど安全な道具」を取るのか、設計哲学の分岐点として整理されていました。
。。。。
そしてラスト、5本目。「gpt‑oss量子化モデルは実用的?RTX 3060で限界チャレンジ」という記事です。
最近は「LLMはクラウドで当たり前」という雰囲気がありますが、それに対して「ローカルでどこまでいけるの?」を、実際のマシンで検証した記事ですね。モデルは、オープンウェイトで商用利用可能な gpt‑oss シリーズ。その中でも、GPT‑3.5 相当と言われる gpt‑oss-20B を、RTX 3060 の 12GB VRAM という、わりと“家庭レベルでも現実的な”GPUで動かしてみています。
非量子化だとさすがに厳しいので、Q8_0 を中心に量子化モデルで検証。ただ、量子化はメモリ節約の代わりに精度が落ちるのが定番のトレードオフで、Q4_K_M ぐらいまで落とすと誤字や誤答がかなり目立つ、という結果に。Q8_0 でも、「まあ動くけど、事実誤りは普通に出るよね」という印象だったようです。
記事では Ubuntu 上に Ollama と Open WebUI を入れて、対話環境を整える手順も紹介されているので、「自分もローカルLLM試したい」という人の実践ガイドにもなっています。ただ結論としては、低スペック寄りのPCでも“動かすこと自体”はできるけれど、業務で安心して使える精度・安定性を求めるなら、まだまだクラウドの高性能モデルの方が現実的だよね、というもの。
「オープン&ローカルで全部やりたい」という夢と、「信頼性の高い回答が欲しい」という現実のバランスを、手触りベースで見せてくれる記事でした。
。。。。
ということで、今日は
Prisma 7 の「No Rust」表現の正体と情報リテラシーの話、
ブラウザだけで AI スライドを部分修正できる SlideCraft、
自作OSが ping に応答するまでのネットワーク実装記、
asChild と cloneElement を巡るコンポーネント設計のトレードオフ、
そして gpt‑oss を量子化して RTX 3060 で回してみたローカルLLM検証、
この5本をご紹介しました。
気になった記事があれば、ぜひショーノートから元の記事もチェックしてみてください。もっと詳しい内容やコード、図解なんかも載っています。
番組の感想や、「こんなテーマも取り上げてほしい!」というリクエストも、いつでもお待ちしています。あなたの一通が、この「zenncast」をもっと面白くしてくれます。
それでは今日はこのへんで。
お相手は「zenncast」のマイクでした。
また次回お会いしましょう。おやすみなさい。