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

投稿

コードを書く喜びを失った私たちが、次に手にするもの ―「Why」の時代を生き抜く審美眼と基礎力

以前書いた記事「 AIで「速く」なった今、私たちが失ったもの 」の中で、同世代のエンジニアによる印象深い言葉を紹介しました。 「私は遅れを取っているわけではない。前進しているのだ。新しいツールを活用し、かつてない速さで構築し、これらのツールを使って他者の作業を加速させている。数年前には夢にも思わなかった製品を生み出している。しかし同時に、今この『構築』が自分にとって何を意味するのかを模索している。」 そのとき、手探りで試行錯誤し、苦労して辿り着くプロセスそのものに宿っていた「創造の喜び」を、私たちはどう再定義すべきなのか。今、多くの開発者がこの大きな問いを突きつけられているのではないかと思いました。 そして、「 「How(どう作るか)」はAIが肩代わりする、だからこそ問われる「 Why(何を・誰のために・なぜ作るのか)」という動機 」で紹介したカットアップメーカーの開発、「 25年前の23万行コードを3日で蘇らせた話 - Claude Codeで挑むレガシー脱却と移植の全記録 」で紹介したしたXShipWarsのモダナイズに挑む中で、ひとつの確信を得ました。一行一行のコードと対話し、デバッグという名のパズルを解いていくあの独特の喜びは、確かにこれからの実務からは急速に姿を消していくでしょう。 そして痛感したのは、これからの開発者に求められる決定的な2つの要素です。 「Why(何を・誰のために・なぜ作るのか)」の純度 「How(どう作るか)」の実装をAIが担う時代だからこそ、プロジェクトの起点となる人間の動機や目的意識そのものが、プロダクトの価値を決定づけます。 AIの提案を見抜く「審美眼としての基礎知識」 Howを委ねるとしても、AIの提案の正否やアーキテクチャの妥当性をジャッジするのは人間です。そのためには、裏側の仕組みを理解する基礎力が欠かせません。  長年親しんできた「コードを書く手触り」が薄れることに、一抹の寂しさを覚えたのも事実です。しかし、これは喪失ではなく「開発者としてのステージが変わった」のだと捉え直しました。 浮いた時間を「なぜこれを作るのか」という本質的な問いに注ぎ込める。そして、AIに振り回されない審美眼を保つために、あえて日常の中で「コード一行一行と泥臭く対話する素振りの時間」を自分の意志で確保していく。 そう整理できたとき、この劇的...
最近の投稿

25年前の23万行コードを3日で蘇らせた話 - Claude Codeで挑むレガシー脱却と移植の全記録

「 音と操作を取り戻せ!Claude Codeで挑むXShipWarsのSDL2近代化【サウンド・入力編】 」をもって、XShipWarsのモダナイズプロジェクトも一段落したのであります。 その前の「 23万行の20年前コードが3日で動いた!Claude Codeで蘇るXShipWars【起動編】 」で、成功の要因について軽く触れましたが、その推進力の秘密と、やってみて見えてきたリアルな勘所をスライドにまとめてみました。 👉️ 25年前のゲームを3日で蘇らせた話 — XShipWars 移植事例 プロジェクトを通じて強く実感したのは、AIの圧倒的な調査・実装スピードを活かすためには、「AIの提案の是非を判断し、設計の舵を取る人間の基礎知識」が不可欠だということ、そしてとにかくAIに触れてみてそういったことを実感することが大事だなということです。 レガシー資産の刷新に関心のある方はぜひ一読ください。

音と操作を取り戻せ!Claude Codeで挑むXShipWarsのSDL2近代化【サウンド・入力編】

20年前のC++コードをモダナイズする「XShipWars」復活プロジェクト、「 23万行の20年前コードが3日で動いた!Claude Codeで蘇るXShipWars【起動編】 」で報告した第一弾に続き、第二弾をクリアしました! 👉 GitHubリポジトリ: https://github.com/tariki/xshipwars 今回のミッションは、長年放置されていた「サウンドシステム」と「入力デバイス」の近代化です。現代のLinux環境ではビルドすら困難になっていた2つのレガシーライブラリを、マルチメディアの標準である「SDL2」へと一本化しました。 サウンドシステムの刷新 メンテナンス終了している独自サウンドシステム「YIFF」を「 SDL2 (SDL_Audio)」 へ移行しました。 入力デバイスの刷新 メンテナンス終了しているジョイスティックライブラリ「libjsw」を「 SDL2 (GameController/Joystick API)  」へ移行しました。 現在はDev Container(ヘッドレス環境)上でビルドと基本動作を確認した段階です。実機環境でのBGM・効果音の再生や、実際のジョイスティック操作については検証を行えていません。 もし「動かしてみたい」「レトロゲームの動作検証なら任せろ」という方がいらっしゃいましたら、ぜひお手元の実機でお試しいただき、Issueやフィードバックをいただけると大変嬉しいです!

【アップデート情報】カットアップメーカーに「全消し」と「チョキチョキ音」が仲間入りしました!

偶然の言葉の出会いを楽しむWebツール「カットアップメーカー」をアップデートしました。 👉 GitHubリポジトリ: https://github.com/tariki/cutup-machine 今回は、よりテンポよく遊んでいただくための2つの改善を行っています。 「すべて消す」ボタンを追加 元テキストと生成結果をワンクリックでクリアできるようにしました。別の文章でどんどん試したいときの手間を減らしています。 生成時の効果音を追加 生成ボタンを押した際、「チョキチョキ・・・」と紙をハサミで切り刻むような心地よい効果音がなるようになりました。 整然とした日常の文章を放り込んで、カオスのなかから思わぬフレーズや新しい表現の種をぜひ拾い出してみてください! フィードバックやIssueもお待ちしています。

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でも再現したい方は、ぜひ試してみてください!