現代のコーディングエージェントを活用した新旧アプリケーション

2026/07/12 20:09

現代のコーディングエージェントを活用した新旧アプリケーション

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

本テキストの主な成果は、AI エージェントを使用してそれらを最新の JavaScript 標準へ移行させることで、1990 年代に遡る Java の可視化ツールを成功裡に蘇らせた点にある。これらの Java 1.0 アプレット(六角形や Besicovitch set を可視化するものなど)は、もともと 1999 年に数学講座向けに作成されたものであったが、ブラウザでのサポート終了により利用不能となっていた。AI エージェントは約 2 dozen のツールを効率的に移植し、未知のバグも修正した。そのプロセスでは元コード内に存在していたが以前検出されていなかった 2 つの問題を特定する一方、新たな軽微なエラー(ドラッグイベント関連のバグ)のみを導入し、全体としてコード品質への影響は中立からプラスである。歴史的ツールの復旧を超えて、この手法の有効性は、最小限の人的介入でレガシーコードベースを維持するために大規模言語モデル(LLM)エージェントが有効であることを実証した。著者はまた、1999 年に未完了となっていた特殊相対性理論プロジェクトを再活性化し、最近の出版物に付随する新たな可視化、例えば Gilbreath 予想に関するものを追加した。これらのインタラクティブツールは今後、学術論文の補足資料として検討されており、非ミッション・クリティカルであるため、リスクは許容可能と見なされている。復元された特殊相対性理論アプレットのアルファバージョンが外部からのフィードバックを得るために公開されている。

本文

AI 活用による数学教育ツールの刷新と新機能開発:1999 年プロジェクトの再起動

背景:1999 年の試みとその限界

  • 起始: 1999 年から、コンピュータ支援下での数学学習・教授方法に関心を持つようになった。
  • 初期実績: Java 1.0 を用いて以下のアプレットをコーディングし、数学的対象の視覚化に成功。
    • スポンジ骨組
    • ベシコフ集合
    • 複素解析および線形代数の授業支援用ツール
  • 課題: アプレット開発には多大な時間が必要であった。
  • 経緯: ウェブ標準規格が古い Java バージョンをサポートし続けることを見込んだため、既存のアプレットは機能を喪失した。

AI エージェントによるコード移植の成果

  • 移行作業: 最新の AI を活用し、旧ブログデータを保守性の高いリポジトリへ移行中。
  • 言語変更: AI エージェントにより、Java アプレットをJavaScript(現代標準言語)へ移植。
    • 数時間の対話で全アプレットが復元された。
    • 視覚機能が向上(例:ベシコフ集合のカラー表示化)。
  • 主要成果: Allen Knutson 氏との共同開発による「スポンジ骨組」アプレットが再生。
    • 当初は手動コーディングで極めて困難だったプロジェクトだが、AI を用いることで再構築に成功。

コード品質とバグの分析

  • AI の特性: コード生成には明らかなバグや隠れたバグが含まれる可能性があるが、今回の移植過程では以下の評価が可能。
  • 確認された問題:
    • 1 つの複素解析系アプレットにおける**「メインボックス外へのドラッグ操作中の不意の振る舞い」**(軽微なイベントハンドリングの問題)。
  • 修正実績:
    • エージェントが元のコード内の2 つの発見未達バグを特定・修正
  • 総合評価: 修正による品質向上と追加問題で差し引きゼロ、実用上のリスクは低い。
    • 目的が数学議論の中核ではなく「二次的な視覚補助」であるため。

新規開発:相対性理論用視覚化ツールの実装

  • コンセプト: 1999 年に着想した**「ミンコフスキー空間における inkscape」**(画像編集ソフト)。
    • 当初 Java で開発を試みたが、複雑さのため中断。
  • 再挑戦: AI エージェントとの対話(俗に**「バイブコーディング」**)により、コンセプトに合致するアプレットが生成。
  • 現状: アプリ公開中だが、LLM 由来のコードゆえに若干のバグが残っている可能性あり。
    • 「アルファ版」として位置づけ
    • フィードバックを心より求める(プレイテスト中のため)。

新しいプロジェクト:Gilbreath 予想の視覚化

  • 契機: Gilbreath 予想に関する論文投稿時に、同様に AI へツールの作成を依頼。
  • 活用目的: 論文およびブログ記事の補助材料としての活用。
  • 結果: 数時間の対話で完了し、試作版が公開。
    • プロセスの詳細な記録は別途参照可能。
  • 将来展望: 論文へのインタラクティブな視覚化資料付録が増える可能性大。
    • 補助材である以上、LLM ガイド付き生成に伴う潜在リスクも十分に許容範囲内

同じ日のほかのニュース

一覧に戻る →

2026/07/13 6:12

Chromium 148 より*Math.tanh*は下位の OS を特定するフィンガープリントとして使用可能になった

## 日本語翻訳: Chrome バージョン 148 以降、Chrome や同様のブラウザは特定の数学的な挙動を通じて正確なオペレーティングシステムの詳細を漏らし、高度なデジタルフィンガープリンティングを可能にしています。これはまず `Math.tanh` 関数から始まり、bundled routines からホストライブラリへと切り替わったことで、macOS、Windows、Linux のユーザーが使用しているか否かに基づいて小数点以下最終桁が 1 ユニット異なる独自のプロファイル(OS シグネチャ)が作成され、他の V8 数学関数とは異なりプラットフォーム間で同一ではなくあります。また、すべての CSS 三角関数はホスト libm を直接呼び出すことで OS を漏らします。macOS Apple Silicon では、スカラーおよびベクトルフレームワーク間のアーキテクチャ固有の分断により計算に著しい乖離が生じます。Scrapfly はこれらの問題に対処するため、数学的ビットごとの再現を含め、Linux のなりすまし用の真正な Windows ライブラリのマッピングや特定の ARM/x86 FMA(fused-multiply-add)挙動の処理を含む特別ソリューションを開発しました。彼らの Scrapium ブラウザはこれらの OS シグネチャを真正的なシステムと完全に一致するようになりすまえ、同時に最適な速度のためにハードウェア FMA を能動的に有効化します(ネイティブエミュレーションより最大約 6 倍高速)。高度なマッピング技術および数十万もの入力を対象とした厳格な検証を通じて、ユーザーは微妙な数学的な丸めエラーや将来のアップデートにおけるアーキテクチャの癖に基づく識別を防止する同時期にネイティブレベルのパフォーマンスで完全なステルスを実現します。

2026/07/13 5:23

小さなエミュレータ

## Japanese Translation: このテキストは、収集家のためのプラットフォーム間での即時的な互換性を優先しつつ、コモドール C64、ZX Spectrum(48k/128)、Amstrad CPC(CPC464/6128)、Acorn Atom、Z1013 などのレトロコンピュータシステムおよびそれらの対応ソフトウェアの包括的な目録です。具体的には、『Boulderdash』『Ghost's'n'Goblins』『Rick Dangerous』『Prince of Persia』のようなアクションゲームや、『Tetris』『Pengo』『Sokoban』のようなパズルゲームにわたる特定のタイトルを対象とし、ローディング時の独自の要件(例:BASIC 環境では「Enter」キーを押す、Spectrum タイトル『Cyclone』『Great Escape』では特定のジョイスティック種類[Kempston]を選択する、特定のインターフェースでは「F1」「SPACE」キーを押すなど)を詳述しています。また、本ガイドでは Arkos/Overlanders、Batman Group、Plush、Offence、Oxyron、Proxima、Dekadence などの著名なデベロッパーに帰属する様々なデモとインターフェースを列挙しています。さらに、特定のコントローラーや RAM モジュールなどといったハードウェアの制約を明示することで、今日広く利用可能な膨大なソフトウェアライブラリがどの機械構成で実行可能かをはっきりさせます。これは『Visual 6502 Remix』から『Wunderbar』『Batman Forever』などの特殊なデモにいたるまで、すべてのソフトウェアを網羅しています。最終的には、古いハードウェア上で何が達成可能かについてユーザーが正確に知ることを保証し、余計な詳細を含めない実用的な参考文献として機能します。

2026/07/13 3:25

Claude Code はプロンプトを読み込むまでに約3万トークンを消費し、OpenCodeは7,000 トークンである。

## Japanese Translation: 主要な知見は、セッションの段階と設定の複雑性に 따라 Claude Code と OpenCode の間でのトークン使用ダイナミクスが著しく異なることを示しています。標準的な設定において、Claude Code は非効率的なシステムプロンプト、キャッシュ管理のために数万のトークンを再記述し、堅牢なフレームワークテンプレートにより引き起こされる大規模な初期オーバーヘッド(約 33,000 トークン)を被る一方、OpenCode の床は低い(約 7,000 トークン)ため、大きな差を生じています。ただし、Fable 5 のような新しいモデルではこの隙間が縮小します。特に、複雑な本番環境設定においては、OpenCode 自身のツール呼び出しのシリアライゼーションとスキーマサイズによる影響で、最初のリクエストでより高いトークン負荷(Claude の約 75,000 トークンに対し、約 90,817 トークン)を被り、その後のリクエストで安定化するまで要請されます。新しいモデルは命令セットのサイズを削減しますが(例:27k から 10k クラクターへ)、特定のコストドライバーは残っています:対話履歴と乗算される延長された思考ブロック、「フレームワーク税」として作用する大規模な静的フレームワークテンプレート(例:AGENTS.md)、およびバーストコストを増幅するサブエージェントのファンアウト構造。さらに、本研究では EU AI Act のログ記録要件への準拠を確保し完全性を保証するために、キャッシュの書き込みと課金構造の違い(例:キャッシュされた読み取り対課金されるプレミアム書き込み)を検証できるよう、185 件のレコードを捕捉した SHA-256 ハッシュ連鎖監査軌跡を利用しました。 ## Text to translate: The primary findings indicate that token usage dynamics vary significantly between Claude Code and OpenCode depending on the session stage and configuration complexity. While Claude Code incurs a massive initial overhead (~33,000 tokens) compared to OpenCode's low floor (~7,000 tokens) in standard setups—driven by inefficient system prompts, rewriting tens of thousands of tokens for cache management, and rigid framework templates—this gap narrows with newer models like Fable 5. Notably, in complex production configurations, OpenCode's first request can incur a higher token load (~90,817 tokens vs. ~75,000 for Claude) due to its own serialization of tool calls and schema sizes before stabilizing on subsequent requests. While newer models reduce instruction set sizes (e.g., from 27k to 10k characters), specific cost drivers remain: extended thinking blocks that compound with conversation history, large static framework templates (e.g., AGENTS.md) that act as a "framework tax," and subagent fan-out structures that multiply bootstrap costs. Additionally, the study utilized a SHA-256 hash-chained audit trail capturing 185 records to ensure integrity and support compliance with EU AI Act logging requirements, verifying that both architectures handle cache writes and billing structures differently (e.g., cached reads vs. billed premium writes).