どうもー、おはようございます。マイクです。
朝7時を少し回ったところ、2026年3月17日、火曜日の朝です。
ここからの時間は「zenncast」、きょうも最新のテックトピックを、Zennのトレンド記事からピックアップしてご紹介していきます。
今日は全部で5本、記事を紹介していきます。エンジニアリングど真ん中の話から、AI、音楽生成、それから開発フローの自動化まで、かなり濃いラインナップになってますので、通勤・通学のお供にゆったり聞いていってください。
まず1本目。
タイトルは「Chromium(V8)のArray.prototype.flatを最大約5倍高速化した」。
JavaScriptエンジンV8の中の、あの配列を平坦化する`Array.prototype.flat`を、実際に中の人がチューニングして爆速にした、というお話です。ポイントは「2パス方式」に作り直したこと。最初のパスで「最終的にどれくらいの長さの配列になるのか」と「どのElementsKind(配列の中身の型の最適な表現)を使うのがベストか」をきっちり計算しておいて、2パス目で一発で必要なメモリを確保してガッと書き込む。これで途中の再割り当てとか、ElementsKindの無駄な遷移をほぼ潰しているんですね。
さらにPackedな数値配列だと、lengthだけ見てO(1)で長さを計算できるようにしたり、サブ配列側のElementsKindから「ここはネストないでしょ」と判断して走査自体を省略したり、かなり攻めた高速化をやっています。一方で、holey配列(穴あき配列)とかProxy、`Symbol.species`をいじっているようなケースは、ちゃんとslow pathに落として安全性を確保。実際のベンチマークでは、整数・浮動小数の配列で約4.7倍、オブジェクト配列でも約2.4倍の高速化が出たそうです。
実装面では、再帰じゃなくて明示的スタックを使った反復処理にしたり、条件が崩れたら素直にbailoutする仕掛け、さらにClusterFuzzで洗い出されたバグを潰していく過程なんかも書かれていて、「エンジン実装ってこうやって速くしてるんだ」というのが垣間見える、コア寄り好きにはたまらない内容になっています。
。。。。
続いて2本目。
タイトルは「AI機能搭載のRSSリーダーを作った」。
こちらはOksskoltenという、自作RSSリーダーのお話です。ただのRSSリーダーというより「全文記事収集パイプライン」と本人が表現していて、かなりガチな設計になっています。
まず中核は「全記事フルテキスト取得」。Readability.jsで本文抽出して、さらに約600種類ものノイズ除去ルールと3段階のクリーニングをかけて、きれいなMarkdownとしてSQLiteに保存していくパイプライン。そこにMeilisearchをかませて全文検索できたり、既読・いいね・ブックマークの履歴からスコアリングして、どの記事を優先して読むかを最適化したりと、「自分専用の情報空間」をちゃんと作り込んでいるのが面白いです。
RSSがないサイト向けには、LLMでCSSセレクタを推論してフィードを自動生成する機能も搭載。PWA対応でアプリっぽく使えたり、レイアウトやテーマも豊富、画像のアーカイブまでしてくれるので、「外部サービスに頼らず、自分の箱庭に情報を貯めたい派」には刺さりそうです。
さらにMCPサーバを内蔵していて、外部のクライアントから記事検索・取得・要約・翻訳・ブックマーク操作など、12種類のツールとして叩けるのもポイント。Claude Codeの/loopと組み合わせて、自動でフィードをフィルタリングするような使い方もできると。技術スタックはNode.jsとSQLiteで、Tursoにも対応、Dockerでセルフホストも簡単。ただしセルフホストゆえ運用の手間はあるけど、その代わり全文と行動履歴を含むデータを長期保存できて、OPMLで他のリーダーへの移行も簡単。
「アルゴリズムにタイムラインを決められるんじゃなく、自分で情報源を設計したい」という人にとって、かなり理想に近いツールになってます。
。。。。
3本目。
タイトルは「音楽の生成・編集が可能な高性能ローカル音楽生成AI【ACE-Step-1.5】から音楽生成AIの仕組みを完全に理解する」。
これは、ACE StudioとStepFunが開発したオープンソースの音楽生成モデル「ACE-Step 1.5」の仕組みを、がっつり解説している記事です。Text2Musicでゼロから楽曲を作るだけじゃなくて、一部だけ差し替える「Repaint」まで、1つのモデルでこなすマルチタスク構造が特徴になっています。
テキストから音楽を作るパイプラインは、まずReasoning LLMがCoT、Chain-of-Thoughtですね、これでBPMとかキー、詳細なテキストキャプション、それから5Hzの音声コードまでを「計画」段階で出してくれる。そのメタ情報をQwen3-Embeddingでベクトル化して、Diffusion Transformer、DiTが歌詞エンコーダや参照音源エンコーダとクロスアテンションしながら、25Hzの潜在表現を生成。最後に1D VAEが48kHzの高音質オーディオへと復号する、という流れです。
面白いのが、部分編集のRepaintではLLMを使わず、元の音源から取った潜在表現と、どこを編集するかを示すchunk_masksっていうマスク情報だけを使って、該当部分を差し替える仕組みになっているところ。ゼロから生成する場合も、このchunk_masksとsrc_latentsの組み合わせをうまく設計しているので、同じDiTで新規生成と部分編集の両方を扱えるようになっています。
Reasoning LLMに「プランニング」と「実行」をきれいに分けさせている設計や、48kHzの音源を12GBクラスのGPUでローカル実行できること、しかもMITライセンスで提供されているというあたりが超魅力的。筆者は特にsftモデルの日本語歌詞の再現性をかなり高く評価していて、「歌ものをローカルで作りたい人」にとっては必読の内容になっています。
。。。。
4本目。
タイトルは「wikigen — Claude Codeでコードベースの仕様ドキュメントを自動生成するCLIツールを作りました」。
これは、GitHubリポジトリのソースコードから、自動的にGitHub Wiki互換の仕様ドキュメントを生成してくれるCLIツール、wikigenの紹介です。特徴的なのが、RAGとかベクターDBみたいな重たいインフラを使わず、「Claude CodeのExplore機能にリポジトリ全体をそのまま読ませる」という割り切ったアプローチを選んでいるところ。
`git`と`claude` CLIさえあれば動くGo製のワンバイナリで、流れとしては、リポジトリをcloneして、Wikiの構造を決めて、ページを並列に生成して、Markdownとして保存、というシンプルなパイプライン。`repos.txt`で複数リポジトリをまとめてドキュメント化したり、並列実行や失敗ページのリトライ、GitHub Actionsからの自動更新にも対応していて、日々の開発フローに組み込みやすい設計です。
面白いのが「何を書くか」のポリシー。JIS X 0160を参考にしつつ、「コードから確実に導ける事実だけを書く」という思想で、アーキテクチャ、API仕様、データモデルみたいな客観情報にフォーカス。要件定義とか、コードに現れないビジネス的な話はあえて生成しないようにしているので、「仕様ドキュメントが急に妄想し始める問題」を避けにいっているんですね。
出力されたWikiはそのまま`{repo}.wiki.git`にpushできるので、「リポジトリを更新→CIがwikigenを回す→Wikiが勝手に追従する」みたいな運用も現実的。自分のプロダクトの仕様を常にキャッチアップしておきたい人は、要チェックのツールです。
。。。。
そして5本目。
タイトルは「GitHub Copilotのスラッシュコマンドやサブエージェントを使って、簡易レビュー実装」。
これはGitHub CopilotとVS Codeだけを使って、「ローカルで完結する半自動コードレビュー」を作った事例です。`.github/prompts/*.prompt.md`にスラッシュコマンドを定義して、選択範囲だけをサクッとレビューする`/select_review`と、PR前にorigin/mainとの差分取得、Linter実行、AIレビューをまとめてやってくれる`/review_before_pr`を用意しています。
レビューの観点とか、出力フォーマットはdocsディレクトリに分離しておいて、プロンプト側では`#file:`で参照するスタイルにしているので、レビュー方針を直したくなったときにプロンプトをいじり倒さなくていい。ここは運用上かなり効いてきそうです。
`/review_before_pr`では、サブエージェントを使って、Linter結果の集約と差分レビューを役割分担させているのもポイント。各エージェントには専用のtoolsやmodelを設定して、`user-invocable: false`でチャットからは直接呼べないようにしておくことで、裏側でうまく協調しつつ、最終的な要約結果だけをチャットに返すようにしているんですね。
さらに、コマンドの自動承認設定や、Agent Flow Chartでエージェント同士のやり取りを可視化・デバッグする方法など、「Copilotをただの補完ツールで終わらせない」ためのノウハウが詰まっています。Copilotだけでもここまでワークフローを自動化できる、という良いデモケースになっていて、自分の開発現場にも応用しやすい内容です。
。。。。
というわけで、今日は
・V8の`Array.prototype.flat`を2パス方式で最大5倍高速化した話
・全文取得&AI活用の自作RSSリーダー、Oksskolten
・ローカルで高音質音楽生成と部分編集ができるACE-Step 1.5の仕組み
・Claude Codeでコードベース仕様Wikiを自動生成するwikigen
・GitHub Copilotのスラッシュコマンドとサブエージェントで実現する簡易レビュー
この5本を駆け足でご紹介しました。
気になった記事があれば、詳しい内容は番組のショーノートにまとめてありますので、あとでゆっくりチェックしてみてください。
「zenncast」では、番組の感想や、「こんなテーマを扱ってほしい!」といったリクエストも随時募集中です。開発環境の工夫や、最近ハマっている技術ネタなんかも、ぜひ教えてください。
それでは、そろそろお時間です。
今日も一日、良いコードと良い音楽とともにお過ごしください。
お相手はマイクでした。また次回の「zenncast」でお会いしましょう。