スキップしてメイン コンテンツに移動

投稿

23万行の20年前コードが3日で動いた!Claude Codeで蘇るXShipWars【起動編】

「 消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる【序章】 」で宣言した復活プロジェクトですが、早くも第一段階をクリアしたのであります! 現在のところ「macOS上のLinuxコンテナ + XQuartz」という環境での動作確認のみをした段階ではありますが、ひとまず動く状態まで持っていけたため、GitHubでリポジトリを公開しました。 👉 GitHubリポジトリ: https://github.com/tariki/xshipwars 4ヶ月の作業がわずか3日に?数字で見る成果 今回の対象は、約23万行におよぶC++のオリジナルソースコードです。結果として、以下の規模の修正で起動に成功しました。 コミット数: 65回 コード修正量: 約1,900ステップ 所要日数: 約3日 もし自力ですべてのエラーを追って修正していたら、おそらく3〜4ヶ月はかかっていたはずです。それが実質数日で動いてしまったことには、Claude Codeの圧倒的な推進力を実感せざるを得ません。 スムーズに移植を成功させた「事前準備」の工夫 今回トラブルなく短期間で起動まで漕ぎ着けられた最大の要因は、いきなりコード修正を始めず、 まずClaude Code自身に作業環境と方針を整備させたことではないかと思います 。具体的には以下のファイルを定義してから移植に臨みました。 CLAUDE.md :全体のゴール定義と移植の基本方針 build-linux skill : Linux環境でのビルド手順と、コンパイルエラー発生時の対応ルール run-headless skill :X11のないコンテナ環境下で安全に動作確認を行う方法 PORTINGS_NOTES.md :ビルドや検証の過程で見つかった、非自明な挙動や修正記録の蓄積 この「AIに文脈とツール(Skill)を渡してから走らせる」というアプローチが非常にうまく機能しました。 残された課題と今後のロードマップ 基本的な動作は確認できたものの、完全復活にはまだ乗り越えるべき壁があります。 サウンドシステム: 採用されている「YIFF Sound System」が現在メンテナンス終了 入力デバイス: ジョイスティック制御の「libjsw」も現代環境ではそのまま利用不可 こ...
最近の投稿

「花まさロス」に終止符!ビッグシェフ亭 つくば店へリベンジ潜入、噂のコスパステーキは本物だった

以前「 花まさロスを救う新星!「ビッグシェフ亭 つくば店」の驚愕コスパステーキを発見 」で紹介した「 ビッグシェフ亭つくば店 」さん、前回は駐車場満車で涙をのんだわけですが、今回ついにリベンジを果たしてきました! 気合いを入れて開店15分前に到着したものの、すでに店頭には約20名の行列。オープンと同時に案内が始まりましたが、惜しくも1巡目には入れず・・・!つくばの肉好きたちの熱量の高さを改めて実感であります。 待機中にメニューを受け取り、期待を高めながら作戦を練ります。「ビッグシェフ亭」さんの看板は、ステーキに「ご飯・味噌汁・サラダ・小鉢・お新香」がフルセットになったこちらの定食。1,000円前後の価格帯から選べる圧倒的コスパ。これだけの行列ができるからには「お値段以上」に違いないと確信し、初訪問ではありますが、ボリューム感のある「M定食」をチョイスしました。 S定食:約160g(990円・税込) M定食:約200g ~ 約220g(1,518円・税込) L定食:約260g ~ 約320g(1,738円・税込) XL定食:約400g(2,200円・税込) 席に通され、いよいよ運ばれてきたのがこちら! 鉄板の上でジュージューと音を立て、湯気を立ち上らせるステーキ。香ばしい香りとシズル感は、食べる前から文句なしの100点満点です。 さっそく口に運ぶと、力を入れずともすんなり噛み切れるやわらかさ。そして、ガツンと効いた焦がしニンニクソースが相性抜群で、お肉単体でも十分な満足感があります。 しかし、ここで最大のサプライズが訪れました。 「・・・ご飯が、異常においしい!」 炊き加減といいお米の甘みといい、もはや「ステーキではなくご飯が主役では?」と思わされるほどのクオリティ。この絶品ご飯に濃厚なソースと肉汁が合わさるわけですから、普通盛りでは到底足りなくなります。注文時は「ご飯大盛り(無料)」一択を強くおすすめします。 お腹も心も大満足のランチとなりました。訪問される際は、ピークの混雑対策(早めの到着推奨)と「ご飯大盛りコール」の2点をお忘れなく。近いうちにまた再訪したいと思います!

文学×数学の遊戯「ウリポ」をデジタルへ、「カットアップ」の次は「S+7法」ツールを作りたい

「カットアップ技法」をブラウザ上で手軽に再現できるツール「 カットアップメーカー 」 を公開したところですが、ふと「アルゴリズム的な文学技法は、まだまだデジタル実装と相性が良いものがあるのでは?」と思い立ち、リサーチを進めてみました。 そこで再発見したのが、実験文学集団「ウリポ」の代表的手法である「S+7法」であります。 ウリポとは、20世紀半ばのフランスでレーモン・クノーや数学者フランソワ・ル・リヨネらによって結成された文学グループで、数学的な制約や規則を文章作法に持ち込み、新たな文学的創造性を切り拓く試みを多数行ったそうです。その代表的な試みのの一つが、この「S+7法」であります。 ルールは至ってシンプル。「辞書を引き、文章中のすべての名詞を、その辞書で7つ後ろに載っている名詞に置き換える」というもの。 これを現代のウェブツールとして実装する場合、仕組みとしては以下のようなフローで構築できそうです。 入力されたテキストを形態素解析し、名詞のみを抽出 ベースとなる辞書インデックスを参照し、該当名詞から7語後ろのエントリを特定 元の名詞を置換して文章を再構成 課題になりそうなのは「参照する辞書データの選定」ですが、現代的な日本語辞書データや専門辞書を差し替えられる設計にすれば、生成される文章のナンセンスさや詩情がガラリと変わる面白いジェネレーターになりそうです。 現在取り組んでいる「 消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる 」のプロジェクトが一段落したら、次はこの「S+7法」ツールの制作に着手してみようかと思います。 ちなみに今回のリサーチ中、アーティストの「 古川諒子 」さんの作品にも行き当たりました。「カットアップ」や「S+7法」などで自動生成・脱構築されたテキストからインスピレーションを得て、具象絵画を描き出すという非常に刺激的な試みをされています。言語のルールから生まれた偶然性が、ヴィジュアル表現へと変換される面白さ、もし東京などで個展が開かれる機会があれば、ぜひ実物を体感してみたいと思います。

消えた伝説のX11宇宙戦「XShipWars」を発掘!20年前のコードをClaude Codeで現代に蘇らせる【序章】

  「インターネットから一度消えたソフトウェアは、二度と手に入らないのか?」 ふと昔遊んだ(あるいは名前を見かけた)レトロなオープンソースゲームを思い出し、検索窓に打ち込んでみる。しかし画面に返ってくるのは冷淡な「404 Not Found」や、20年前に時が止まったリンク集の残骸ばかり。そんなデジタルアーカイブの断絶を経験したことがある人は、決して少なくないはずであります。 悩めるエンジニアにとっては、「XShipWars」がそれでした。 「XShipWars」とはどんなゲームだったのか? XShipWarsは、1990年代後半から2000年代初頭にかけてUnix/Linux界隈で開発・運用されていた、クライアント・サーバー型の2Dリアルタイム宇宙戦略・戦闘シミュレーションです。 クレジットを稼いで小型迎撃機から大型戦艦へステップアップし、兵装やジェネレータ、センサー類を細かく換装していくRPG的成長要素や、惑星や宇宙基地を自勢力に組み込み、資源採掘と補給ラインを維持しながら敵勢力の拠点を攻め落とす戦略性、加えて当時のUnix系ゲームといえば、シンプルなワイヤーフレームや原色のドットアイコンが主流でしたが、XShipWarsは、細部まで描き込まれた宇宙船のビットマップスプライトを採用。さらに画面上には、リアルタイムに変化する円形レーダー、シールドやリアクターの出力を示す計器パネル、通信ログなどが整然と並び、まるで「本物の宇宙戦艦のオペレーションシート」に向き合っているかのような濃密なUIを実現していたのが特徴です。 公式サイト消滅から「Debian Snapshot」でのサルベージまで ずいぶん前からXShipWarsの公式サイトは完全に閉鎖されており、現代の主要ディストリビューションの公式リポジトリからもその名は姿を消していました。 「 Wayback Machine 」などのWebアーカイブでもリンク切れだらけで、「完全なソース一式の復元は絶望的か・・・」と諦めかけていました。しかし、オープンソースのエコシステムには強力なタイムマシンが存在していました。それが、Debianプロジェクトが運用する歴史的リポジトリ「 Debian Snapshot 」であります。 Debian Snapshotは、過去にDebianに取り込まれたパッケージを日付・バージョ...

SNSで見かけた格安Amiga「NanoMig」が熱い!気になる「推奨ハード」と「ROMの入手元」を調べてみた

先日、Facebookのタイムラインを眺めていたら、手のひらサイズの小さなFPGA基板の上で、あの「 Amiga 」が軽快に動いている動画が流れてきて目を奪われたのであります。 「こんなに小さな基板で、なぜAmigaが動いているんだ・・・?」とその動画の正体を調べてみたところ、行き当たったのがオープンソースプロジェクトの「 NanoMig 」でした。 Commodore Amigaといえば、かつて欧米のホビーPCシーンやデモシーンを席巻した伝説の名機であります。日本国内でも、90年代の人気番組「進め!電波少年」のオープニングや演出で使われていた独特なCGアニメーション(松村邦洋さんや松本明子さんのキャラクターが動くCG)の制作に使われていたことで、ご記憶の方も多いかと思います。 今なお世界中に熱狂的なファンを持つAmigaですが、近年は実機のプレミア化が急激に進み、状態の良い本体を手に入れるのは極めて難しくなっています。 そんな憧れの名機を、現代の安価なFPGAボード上に蘇らせようと有志によって開発が進められているのがNanoMigなのであります。しかも調べてみると、2024年に始まったこのプロジェクト、最新版(v0.14-beta)ではなんとAmiga 1200相当(68020 CPU + AGAチップセット)の動作にまで対応しているとのこと。 【補足】初期型(A1000 / A500)から「Amiga 1200」への劇的な進化 Amigaは、CPUの負荷を減らすためにグラフィックや音声を専用のカスタムチップに任せる先進的な設計が特徴でした。 初期型(Amiga 1000 / 500): CPUはモトローラ「68000」のみを搭載。グラフィックは初代チップセット「OCS(Original Chip Set)」が担当し、最大4,096色中32色の同時表示でした。当時の家庭用PCとしては破格の性能でしたが、美麗なグラデーションの表現には限界がありました。 上位モデル(Amiga 1200): 1992年に登場したホビー向けAmigaの集大成。CPUがより高速な「68020」へと強化され、グラフィックも新世代の「AGA(Advanced Graphics Architecture)」チップセットへと刷新。最大1,677万色中256色(特殊なHAM8モードでは約26万色)...

Finderから一発起動!VS Codeを右クリックメニュー(サービス)に追加する方法

Windowsでは、VS Codeをインストールすると右クリックメニューに「Open with Code」が自動で追加されますが、macOSにはこの機能がないのであります。 そんな悩みを解消してくれる便利なツールが、オープンソースで公開されている「VS Code Finder Service」であります。 導入は驚くほど簡単。ターミナルを開き、リポジトリをクローンしてインストールスクリプトを実行するだけで完了します。 git clone https://github.com/vknabel/vscode-finder-service.git cd vscode-finder-service ./install.sh 日常のちょっとしたクリックやドラッグの手間を減らすだけで、開発や作業のリズムが格段にスムーズになります。Windowsのあの快適さをMacでも再現したい方は、ぜひ試してみてください!

【新店情報あり】ラーメン三水で導き出した最適解!「麺の量問題」を解決する黄金比とは?

脂と濃厚スープが恋しくなり、「 ラーメン三水 」さんをリピート訪問してきました。 ちなみに本題の前に耳寄りなニュースをひとつ。なんと「清六家 下妻店」が、 10月5日に「ラーメン三水 下妻店」としてリニューアルオープン するとのこと!近隣にお住まいの方は要チェックであります。 さて、今回いただいたのは「味噌ラーメン」にライス。 実は三水さん、前回欲張って「大盛り」にしたところ圧倒されるほどのボリュームで完食に苦戦した経験があります。そこで今回はリベンジとして「普通盛り」をチョイスしたのですが・・・、細麺に濃厚な味噌スープがしっかり絡み、ライスとの相性も抜群な反面、「もう少し麺を食べたい」と物足りなさを感じる結果に。 大盛りは多すぎる、普通盛りはちょっと足りない。 そんな悩めるエンジニアが行き着いた結論がこちらです。 麺は「中盛り」+「サイドメニュー(ライス等)」 この組み合わせこそ、満腹感・満足感ともに完璧なバランスを生む黄金比だと確信しました。次回からは迷わずこのオーダーで挑みます。 下妻の新店に行かれる方も、ぜひボリューム選びの参考にしてみてください!

OSの核心をコードで学ぶならこれ!MIT教材「xv6」と電通大の日本語訳テキストが素晴らしい

MIT teaches operating systems by giving students a complete Unix-like kernel and asking them to modify it. it's called xv6, a ~6,000-line reimplementation inspired by Unix V6. processes, system calls, virtual memory, and filesystems are all there pic.twitter.com/sFiHWgMmHb — trish (@TrisH0x2A) September 22, 2026 オペレーティングシステム(OS)の仕組みを一から本格的に学びたい方に、ぜひおすすめしたい教材を見つけたのでご紹介であります。 かつて「 UNIX 4.3BSDの設計と実装 」(通称:悪魔本)などに挑んだ経験がある方も多いと思いますが、現代のLinuxやFreeBSDなどのOSは数百万行を超える巨大な規模に成長しています。いきなり本物のソースコードを読んで全体像を掴むのは、ハードルが高く挫折しやすいのが現実です。 そこで最適なのが、MITの教育用OS「xv6」であります。 👉 Xv6, a simple Unix-like teaching operating system(MIT公式サイト) xv6が学習に最適な3つの理由 コード量が約6,000行と極めてコンパクト Unix Version 6(V6)の基本設計を踏襲しつつ、無駄を削ぎ落としているため、個人でも全体のコードを読み切ることができます。 現代の標準アーキテクチャ「RISC-V(マルチコア)」に対応 古き良きUnixの設計思想を、今まさに注目を集めるRISC-V環境で学べます。 充実した講義テキストと「日本語訳」の存在 MITの公式テキストが配布されているだけでなく、電気通信大学の菅原研究室によって 日本語訳テキスト が無償公開されています。難解なカーネルの概念を母国語でじっくり追えるのは本当にありがたい環境です。 👉 RISC-V版xv6テキストの和訳(電気通信大学 菅原研究室) まず何から始めるべき? まずは和訳テキストの「第0章(OSのインターフェース)」に目を通し、興...

「How(どう作るか)」はAIが肩代わりする、だからこそ問われる「 Why(何を・誰のために・なぜ作るのか)」という動機

過去に開発が止まって眠っていた個人プロジェクトを「 眠っていた個人開発をClaude Codeで救出!文章再構成ツール「カットアップメーカー」をGitHub公開しました 」で紹介したとおりGitHubで公開しました。 今回は、その開発プロセスで実践した「仕様駆動開発」のノウハウをスライドにまとめてみたのであります。 👉️ 仕様駆動開発をClaude Codeで試してみた リポジトリのコードを参照させた上で、以下の要件をClaudeに伝えてみました。 作成の目的・想定読者 スライドの大まかな構成 最も伝えたいメッセージと、読後に起こしてほしいアクション すると、わずか数分ほどで約7割の完成度のスライドが一気に生成されました。あとは細部を微調整しただけで、トータルの作業時間は2時間ほど。これで十分実用に耐えるクオリティに仕上がりました。 制作効率が劇的に向上し、AIの進化に圧倒された一方で、強く心に刻まれたことがあります。これまでもいくつかの記事で触れてきましたが、「 How(どう作るか)」をAIが軽々とこなす時代だからこそ、人間側の「 Why(何を・誰のために・なぜ作るのか)」という動機こそが最大の価値になる、ということです。 「何かを表現したい」「これを作って誰かに届けたい」という人間ならではの純粋な情熱やエネルギーがなければ、どんなに優れたAIがあっても何も始まらないのだと思い知らされたのであります・・・。  スライドをご覧いただき、AIの進化とともに「これからのクリエイターの在り方」を実感していただけたら幸いです。

AI時代の個人開発をどう見せる?開発物を「GitHub Pages」でポートフォリオ化してみた

最近、GeminiやClaude Codeを活用した「 リアルタイム地震マップ 」や「 カットアップメーカー 」など、AIを取り入れた個人開発とGitHub公開を続けてきました。 これと合わせて開発したソフトウェアに関する技術スライドなども作成し始めたのですが、Bloggerなどの一般ブログでは公開しづらいなと感じたのであります。 そこで今回、過去のソフトウェアも含め開発実績や技術スライドを一元管理するため、「 GitHub Pages 」と「 Jekyll(ジキル) 」を使ってポートフォリオサイトを立ち上げてみたのであります。 なぜGitHub Pages × Jekyllなのか? 最大の利点は、「開発(コード管理)と発信(Webサイト運用)が同じ場所で完結する」点です。 リポジトリから即公開: サーバー契約や独自の設定不要で、GitHub上のファイルがそのままWebサイトになります。 Markdownでサクサク執筆: 標準組み込みの「Jekyll」のおかげで、普段のREADME感覚でMarkdownを書くだけで整ったページが生成されます。 メンテが圧倒的に楽 :ファイルをアップデートしたら、リポジトリ側でドキュメントを更新してプッシュするだけでサイトにも即反映されます。 構築にあたっては、以下のガイドを参考にさせていただきました。 👉  GitHub PagesにJekyllを使っていい感じのページを作る例 完成したポートフォリオページ 実際に出来上がったページがこちらです。 👉 tariki.github.io 実際に運用を始めてみて、やはり「まとまった技術ドキュメントや開発ログの管理」はブログサービスよりもGitHub Pagesのほうが相性抜群だと実感しています。 個人開発の成果物がいくつか溜まってきた方や、AIツールで作ったコードを手軽にWeb公開したい方は、ぜひポートフォリオ作りに挑戦してみてはいかがでしょうか!