#
689
2026/4/10
今日のトレンド

Excelと地理情報の異世界探索

どうもー、おはようございます。FMラジオ風テック番組「zenncast」、MCのマイクです。
今日は2026年4月11日、土曜日の朝7時。みなさん、いかがお過ごしでしょうか。
この番組では、Zennで話題になっているトレンド記事を、ラジオ感覚でゆるっと紹介していきます。通勤・通学中の方も、まだお布団の中の方も、コーヒー片手にゆったり聞いていってください。

さて今日は、お便り紹介はお休みで、そのぶん記事をたっぷりめにご紹介していきたいと思います。
本日取り上げる記事は、全部で5本。
Excelを丸裸にしてHTMLに変換しちゃう話から、国交省の地理空間データとAIをつなぐ話、生成AIの精度改善の話。さらに、お父さんがゼロからゲームエンジンを作って親子でゲーム展示に出る話、最後はPlaywrightとClaudeを組み合わせて「画面をちゃんと見られるAI」を目指す話まで、技術と物語がギュッと詰まったラインナップになっています。

まず最初の記事。
タイトルは「転職してエクセルファイルを読み解いてHTMLに変換する仕事をしていたが、悪役令嬢は出てこないし、勇者パーティーも追放されなかった話」。タイトルからして完全に異世界系なんですけど、中身は超ガチ技術記事です。
著者の方は、Mから始まる某GAFAMを退職して、アルダグラムという会社に入社。そこで、xlsxファイルを高速にHTMLに変換する「excel2html.jar」を、なんとひとりで開発しているんですね。で、Excelの正体を暴いていくと、xlsxって実はzipで、中身はXMLの集合体。シートはworksheets配下のsheet*.xml、文字列はsharedStrings.xml、スタイルはstyles.xml…っていう構造が丁寧に解説されています。A1セルひとつ取っても、「セル→sharedStrings参照→styles参照」という三段跳びみたいな読み解きが必要で、そこをどう設計してHTMLに落としていくか、実務レベルで語られているのが面白いです。仕様もISO/IEC 29500として5000ページ超えの英語PDFがドーンとあって、「全部読む必要はないけど、要るところはちゃんと読む」みたいなスタンスもリアル。しかも、仕様通りやってもExcel本体の表示と微妙に見た目がズレる、テーマカラー周りの“闇”にも触れています。そんなかなり尖ったチャレンジを、会社としてちゃんと受け止めてくれるカルチャーがあって、社内表彰もされたよ、というポジティブなオチ。「悪役令嬢も追放もなく、挑戦を歓迎してくれる職場です」と求人につなげる流れも含めて、技術×キャリアの読み物としても楽しめる記事でした。Excelをアプリからじゃなく「ファイルフォーマット」から攻めたことがある人は、きっと首がもげるほど頷く内容だと思います。....

続いて2本目。
タイトルは「国土交通省提供の『地理空間MCP Server』を使ってお手軽にClaudeからの地理空間情報連携を試してみた」。
こちらは、国交省がα版として公開している「地理空間情報MCP Server」を、Claude CodeとかClaude Desktopからどうつないで遊べるのか、というハンズオン的な記事です。まず、「不動産情報ライブラリ」のAPI利用申請をしてAPIキーをゲット。そこから公式リポジトリをGitでクローンして、uvでPythonの仮想環境と依存関係を整えます。で、Pythonの実行パスとserver.pyのフルパス、それからAPIキーを指定して「claude mcp add」でMCPサーバを登録すると、ユーザースコープでいろんなプロジェクトから共通で叩ける、という流れ。実例としては、Claude Code上から横浜市営地下鉄の駅ごとに、乗降客数とか代表地価、用途地域なんかを引っ張ってきて、整理して見せる様子が紹介されています。
さらにClaude Desktop版では、設定ファイルにMCPサーバ情報を書き足すことで、たとえば浜松町周辺の地価の推移、駅ごとの乗降客数、防災リスク、液状化の可能性なんかを、対話しながら可視化・分析していくデモが出てきます。ここが面白くて、単一のMCP連携だけで、かなり多様な地理空間データをまとめて扱えるんですね。そこに他のデータソースとかMCPを組み合わせていくと、「ここにオフィス構えるならどこが良さそう?」みたいな実務寄りの示唆も、AIと一緒に検討できそうだなと感じました。地理情報とAIをつなぐ世界の「入口」を、わかりやすく案内してくれている記事です。....

3本目。
タイトルは「"なんとなく改善"からの脱却。Langfuseで作る、精度を改善し続けられるAI開発基盤」。
生成AI触っている方なら、一度はモヤモヤしたことがあるテーマじゃないでしょうか。「とりあえず動くもの」は作れるけど、そこから“継続的にちゃんと使える精度”を維持・向上させるのが、めちゃくちゃ難しい。この記事では、その理由をちゃんと分解してくれています。まず、出力が確率的だから定量評価しにくい。さらに、プロンプトの更新がアプリのリリースサイクルに縛られがち。あと、複数のLLMコールをつないだワークフローになると、どこがボトルネックで、どこが精度を落としているのか見えづらい。このあたりを、プロダクト「バクラク勤怠」の“AI勤怠初期設定”機能を例に、どう解いていったかが語られます。
そこに導入したのがLangfuse。Prompts、Tracing、Datasetsの3つを軸に、「失敗ケースをちゃんと集めて、原因分析して、データセット化して、プロンプトを改善し、テストでスコアリングし、CIで全体精度をチェックしつつ、本番プロンプトを同期する」というサイクルを作り込んでいます。ユーザーアンケートとか、人が加えた編集差分から「どこで失敗してるか」を拾い出して、LangfuseのDatasetsに貯める。改善はClaude Codeを相棒にしつつ、Go製のテストコードで自動スコアリング。ここまでやると、「なんか良くなった気がする」で止まらず、数値で判断できるようになるんですね。Tracingで各LLMコール単位の精度とかレイテンシ、コストも可視化されるので、どこをチューニングすべきかも見やすい。さらに、TracingとDatasetsのI/Oフォーマットをあらかじめ揃えて設計しておくことで、運用のしやすさもグッと変わるという話も、とても実務的です。「生成AI機能は作って終わりじゃないよ、改善し続ける仕組みが本体だよね」というメッセージが、体験ベースで伝わってくる記事でした。....

4本目。
タイトルは「お父さん、ゲーム作れるの?」。
これはもう、読んでいてちょっと泣きそうになる系の技術ストーリーです。ある日、お子さんからの「お父さん、ゲーム作れるの?」という素朴な一言。そこで著者の方は、自分がこれまで会社や既存のゲームエンジンに頼ってきたことに気づいて、「“作れる”の根っこをちゃんと自分の手元に取り戻したい」と決意します。そこから2020年、自作ゲームエンジン「Next2D」の開発に着手。
やっていることは本当にハードコアで、OffscreenCanvasやFloat32Array+Transferableを駆使して描画を最適化したり、object poolでGCの影響を抑えたり、WebGLの命令列互換を維持しながらWebGPU対応までやっていく。60fpsを維持するために、ひたすらレンダリングパイプラインと格闘する日々です。さらに、MVVM+Clean Architecture+Atomic Designに基づくフレームワークまで整え、アニメーション制作ツールも自作。その結果、『WORLD FLIPPER』など実案件にも採用されるレベルまで育っていきます。
2025年には、自作ゲーム『Slime Ten Puzzle』を完成させ、「作れるよ」と胸を張って子どもに言えるようになる。しかも、長男くんも小1から6年生になるまでのあいだに、自分でゲームを作れるようになっていくんですね。2026年5月には、親子3人でインディゲーム展示会「東京ゲームダンジョン12」に出展予定という、もう最高の流れ。技術面では、Next2D向けのMCPサーバーを用意して、AIが設計ルールを踏まえてコード生成や検証、リファレンス参照を手伝ってくれる環境も構築。これによって、ふたりの息子さんそれぞれのゲーム制作に同時に向き合えるようになった、というのもすごく今っぽいです。最初の問い「お父さん、ゲーム作れるの?」は、やがて「一緒に作れるよ」という答えに変わり、子どもたちは“待つ側”から“作る側”へ。最後は次男くんの「Nintendo Switchでプレイできないの?」という新しい無茶ぶりで締めくくられるんですが、「物語、まだまだ続くな…」と思わせてくれる、とても温度のある記事でした。....

そして最後、5本目。
タイトルは「Playwright CLI + Claude Code で自律UI修正開発の提案」。
こちらは、「コードはよく分かるけど、画面の“崩れ”は苦手」という今のコーディングエージェントの弱点に、一歩踏み込んでいこうというチャレンジです。Markdownがちょっと崩れてるとか、CSSのちょいズレ、スクロールしないと見えない位置で起きているUIバグって、人間なら一目で分かるけど、テキストだけ渡されたAIには伝わりづらい。そこで、Laravel BoostとPlaywright CLIのSKILLを組み合わせて、エージェント自身にブラウザ操作・スクリーンショット撮影・DOM確認・UI問題検出までやらせちゃおう、というアプローチが紹介されています。
具体的には、EC2上にLaravel React Starter Kitを構築して、Claude Codeとlaravel/boostを導入。さらにPlaywright CLIをグローバルインストールしてSKILLを有効化すると、「claude」コマンドからURLを開いてスクリーンショットを撮ったり、playwright-cli evalでJavaScriptを実行して、画面上にオーバーレイを出したりできるようになります。デモでは、Markdownレンダリング崩れに対して、まずPlaywrightで画面を確認→Claudeに修正プランを考えさせる→コード修正→再度Playwrightで確認、というループを回していきます。その中で、@tailwindcss/typographyやremark-gfmを追加したり、ReactMarkdownの設定を変えたりといった修正を、AIが主体となって提案・実行していくんですね。さらに、左右の余白調整とか、ログイン後画面のフォーム位置ズレみたいな、スクロールや状態遷移を伴う問題も、スクリーンショットと明確なプロンプト指示(ログイン情報や「ここまでスクロールして」など)をセットで渡すことで、だいぶ自律的に解決できるようになる、と。Playwright CLIを組み込むことで、「コードだけを見るAI」から「画面もちゃんと見ながら開発できるAI」へ、一段進んでいけそうだな、と思わされる記事でした。

さて、今日は全部で5本、駆け足でご紹介してきました。
Excelファイルの中身を読み解いてHTMLに変換する挑戦の話。
国交省の地理空間MCP Serverを使って、Claudeと地理情報をつなぐハンズオン。
Langfuseを活用して、生成AI機能の精度を“なんとなく改善”から卒業させる取り組み。
「お父さん、ゲーム作れるの?」から始まる、自作ゲームエンジンと親子ゲーム開発の物語。
そして、Playwright CLIとClaude Codeで、UIを“画面を見ながら”自律修正していく提案。

気になった記事があれば、詳しい内容は番組のショーノートにまとめてありますので、あとでゆっくりチェックしてみてください。
この「zenncast」では、番組の感想や、取り上げてほしいテーマ、技術的な悩みごとなんかもお便りとして募集しています。「この技術の話、もっと深掘りしてほしい」「こういう働き方の話も聞きたい」などなど、気軽に送ってもらえると嬉しいです。

それでは、そろそろお時間です。
今日も一日、いいコードと、いい出会いがありますように。
お相手はマイクでした。また次回の「zenncast」でお会いしましょう。ではでは。

Related episodes

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