ほぼ 10 年ぶりにこのブログを更新した。最後の更新は 2016 年 4 月で、当時の月次 AWS コスト(合計 0.69 USD)を報告していた。最近 Vibe coding にハマっていて、プライベートなブログも簡単に書けそな気がした。そこで、古くメンテナンス性のよくないブログシステムを 2026 年のスタックに作り直した。
旧構成は Octopress 3.0 + Jekyll 2.5.3 (Ruby 1.9.3) で rake generate して s3cmd で AWS S3 に放り投げ、DNS は Route 53、という 2014 年頃にベストだった配置で止まっていた。NGS Tips は別途 gitbook 化していて、こちらもノーメンテ。問題が (1) HTTPS が提供できない、(2) ソースがローカルにしか無くロストリスク、(3) bundle install が現行環境ではもう通らない、(4) Universal Analytics は 2023 年 7 月に停止済みで計測も死んでいる、と 4 つ揃っていて、触るに触れない状態だった。
そもそも、最近は、Ruby をあまりさわらなくなった。R すらほぼ書いていない。ほぼ Python になってしまった。Python すら Claude か Codex がほぼ書いている。
新構成は Hugo + Cloudflare Pages + GitHub にした。Hugo は Go 製の単一バイナリで Ruby/Node 依存ゼロ、Markdown ネイティブで活発に開発されている。Cloudflare Pages は無料・HTTPS 自動・GitHub 連携で git push のたびに自動ビルド・デプロイ、PR ごとにプレビュー URL も発行される。10 年経つと、課金しなくても十分すぎる選択肢が手に入る。
移行作業は Claude Code CLI(Opus 4.7、1M context) で進めた。最初に旧サイトのファイル構成を Explore エージェントに調査させ、URL 構成・permalink・Octopress 固有の Liquid タグ({% highlight %} 等)の棚卸しをしてから、Plan モードで全体プランを立てた。88 個の既存 URL を 1:1 で再現することを最優先にして、移行スクリプトと検証(comm で旧サイトの URL と新ビルドの URL を突合)を組み合わせ、差分ゼロまで持って行った。
テーマは PaperMod → Blowfish → Mainroad を git submodule で並べて試し、最終的に Blowfish を採用した。「デスクトップでは本文+スティッキーな TOC、モバイルでは折り畳み」という 1.5 カラムが現代の長文技術ブログの標準で、書きたい内容と相性が良かった。タイポグラフィは旧 Octopress の Solarized 寄せ(PT Serif / Fjalla One / Open Sans)、コードハイライトも Solarized Dark で旧サイトの雰囲気を残した。
苦労したのは Cloudflare の新 UI。Workers と Pages が統合されてしまっていて、知らずに Connect to Git すると Workers (Static Assets) プロジェクトが作られ、npx wrangler deploy が auto-config で npx hugo を二重実行して失敗するワナがあった。それでもAWSを使うよりは学習コストはだいぶ低い。あと Tailwind v4 が universal selector で font-family を直接当てているため body の指定が孫要素に継承されないとか、Blowfish の params.author がテーブル形式必須だとか、テーマ依存の細かい罠も多かった。
結果として、https://catway.jp/ は HTTPS で配信され、旧 URL(/blog/YYYY/MM/DD/<slug>/、/bioinformatics/qc/fastqc.html 等)はすべて旧と同じパスで生きている。RSS(/atom.xml)も旧購読者のために維持。年 6 USD の Route 53 課金も止まり、S3 バケットは念のためバックアップ用途で残してある。
NGS Tips は左サイドバーに 5 章 64 記事の階層 TOC が常時表示されるようになり、gitbook 時代の使い勝手は継承できた。NGS Tipsは今でも色褪せない「DNAシーケンス解析の考え方」を中心にかかれているが扱っているツール自体はかなり古い。良書も増えたし、メンテする価値はそれほど高くないので、メニューからは辿れなくした。よりプライベートなブログ感を出すためにリンク集や著者紹介ページも除いた。隠したいわけではないが。
にしても、Claude Code を使うと、技術的判断と方針を提示するだけで、「やるべき/やりたいが面倒で先送りしていた作業」(移行、リファクタリング、URL 互換検証など)の心理的ハードルも実際の労力も大幅に下がる、のがでかい。ついでに現代的なスタックの体験もできて勉強にもなる。ちなみにこの記事も6割ぐらいはClaude Code で書いた。
次の更新は10年後か? それともAIが自動更新する?