[{"data":1,"prerenderedAt":72},["ShallowReactive",2],{"article-q5e6pg8hcoe":3,"prev-article-q5e6pg8hcoe":21,"next-article-q5e6pg8hcoe":46},{"contents":4,"totalCount":19,"offset":20,"limit":19},[5],{"id":6,"createdAt":7,"updatedAt":8,"publishedAt":8,"revisedAt":8,"title":9,"content":10,"tags":11,"is_no_index":18},"q5e6pg8hcoe","2026-01-11T22:23:35.407Z","2026-01-11T22:34:37.088Z","Twitterやめますか？, 人間やめますか？","\u003Cp>Twitterからあの愛らしい青い鳥が姿を消し、得体の知れないアルファベットに成り果ててから、かれこれ3年の月日が経とうとしています。\u003C/p>\u003Cp>イーロン・マスクがTwitterを買収した直後の狂騒は、今となってはある種のエンターテインメントとして消費できていた時期だったのかもしれません。大量のレイオフ、Twitter Blueの強行導入、フリート。破壊の限りを尽くすその姿には、どこか破壊神的なカリスマ性すら感じられました。彼が声高に叫ぶスーパーアプリ構想(笑)とやらが、私たちの生活どう変えてくれるのか、怖いもの見たさがあったのも事実です。結局のところ、彼が作りたかったのは金融機能がついた万能なSNSではなく、単なる自身の承認欲求を満たすための巨大な拡声器だったようですが。\u003C/p>\u003Cp>本題に入る前に、ひとつだけ定義をしておかなければなりません。私は普段、この場所を頑なにTwitterと呼んでいます。\u003C/p>\u003Cp>未練がましいと言われようが、私の青春とインターネットの文脈が詰まったあの場所を、ヘンテコなアルファベットで上書きされたくはありません。私の中でのTwitterは、どうでもいい日常と、顔も知らない友人たちとの緩やかな連帯の象徴でした。その記憶を、現在の惨状と混ぜ合わせたくはありません。\u003C/p>\u003Cp>しかし、本エントリにおいて、あのシステムと運営方針、そしてその背後に透けて見える思想を批判する文脈に限っては、あえてXと呼称します。私が愛したTwitterと、現在進行系でインターネット焼き畑農業をしているこの集金装置は、似て非なる全く別の物だからです。Twitterという名前を汚さないためにも、この悪意の塊にはXとかいうダサい名前がお似合いでしょう。\u003C/p>\u003Cp>さて、そんなXの惨状に嫌気がさし、数年前の私はMisskeyへ安住の地を求めました。ioにアカウントを作り、自前でインスタンスを構築し、燃え尽きて知人のサーバーに居候をしています。APIの制限や厳格なレートリミット、雨後の筍のように湧き出るスパムの氾濫といった表面的な不便さ以上に、プラットフォームの根幹が変質したことに耐えられなかったからです。\u003C/p>\u003Cp>しかし、今に至るまで、私はTwitterをやめられませんでした。\u003C/p>\u003Cp>Misskeyの穏やかなTLを眺めながら、結局は泥沼のようなXへと舞い戻る生活をしています。\u003C/p>\u003Cp>なぜか。それは、Xの資本主義に溺れたカスのレコメンドシステムが、金儲けという一点においてあまりにも優秀で、華々しく成功してしまっているからに他なりません。\u003C/p>\u003Cp style=\"text-align: start\">私たちがXのアルゴリズムは壊れている、Evilだと嘆くとき、それはあくまでユーザー体験の視点に立っています。しかし、株主と経営者の視点、つまるところ、如何にユーザーをサービスに縛り付け、広告を見せ、データを吸い上げるかというKPIの視点に立てば、現在のXはかつてないほどの完成度を誇っています。\u003C/p>\u003Cp style=\"text-align: start\">現に、Xのおすすめフィードを眺めていると、無限に不快なものが流れてきます。論理が破綻した暴論、特定の属性に対する差別的な言説、あまりに無知で傲慢な主張。そして何より、インプレッションを稼ぐためだけに生成されたゾンビアカウント群の文脈を無視した無意味な羅列。\u003C/p>\u003Cp>リプ欄を開けば、元ツイとは何の関係もない謎のマルチバイト文字や、LLMが生成した当たり障りのない同意、あるいは露骨なNFSW画像が溢れかえっています。彼らは会話をするためにそこにいるのではありません。ただ小銭を稼ぐためだけに、ハエのように群がっているのです。\u003C/p>\u003Cp style=\"text-align: start\">残念ながら、これらはバグではありません。すべて想定されたであろう仕様です。\u003C/p>\u003Cp style=\"text-align: start\">我々人間は、穏やかで幸福な情報よりも、怒りや恐怖、軽蔑といった強い情動を伴う刺激に強く反応するように設計されています。こいつは間違っている、許せない、馬鹿な奴だ。そう感じた瞬間、私たちは反射的に指を止め、画面を凝視し、タップしてしまいます。\u003C/p>\u003Cp style=\"text-align: start\">その滞在時間こそが、Xという企業が販売している唯一の商品です。このアルゴリズムは、私の卑しい本性を正確に見透かしています。\u003C/p>\u003Cp style=\"text-align: start\">現に私は、流れてくる不快な投稿を無視できず、縮小鍵垢で引用RTを繰り返しています。こんな馬鹿なことを言っている奴がいると他人をコケにし、安全圏から石を投げ、自分が知的優位に立ったような錯覚に浸る。私は救いようのないカスであることに違いありません。\u003C/p>\u003Cp style=\"text-align: start\">ですが、Xにとって私は最高に優良な養分でもあります。私がストレス抱き、軽蔑し、対立を深めれば深めるほど、プラットフォームの滞在時間は最大化され、広告在庫が消化され、イーロンの財布にはお金が入る。私たちが画面の前でイライラすればするほど、Xは儲かるのです。\u003C/p>\u003Cp style=\"text-align: start\">ここにあるのは、人間の尊厳をハックして換金する錬金術でしかありません。対立を煽れば数字が伸びる。極端なことを言えば金になる。その構造が完成してしまった以上、X上から争いが消えることは永遠にありません。平和な世界は、ビジネスとして儲からないからです。\u003C/p>\u003Cp style=\"text-align: start\">かつてTwitterが持っていた、清濁併せ呑む広場のような機能は失われました。今ここにあるのは、互いの正義を棍棒にして殴り合わせ、その流血を観客に見せて興行収入を得るコロッセオです。もっとも、戦っているのは剣闘士ではなく、承認欲求に飢えた一般人と、小銭稼ぎのbotですが。\u003C/p>\u003Cp style=\"text-align: start\">MisskeyやMastodonといった分散型SNSは、確かに理想郷でした。そこには邪悪な金儲けに最適化されたレコメンドがなく、文脈を共有できる隣人がいました。\u003C/p>\u003Cp style=\"text-align: start\">しかし、Xという劇薬に溺れた私にとって、その平和は時に退屈と同義でした。刺激がない。敵がいない。殴るべき馬鹿がいない。\u003C/p>\u003Cp style=\"text-align: start\">悲しいことに、私の認知機能はすでにTwitterというよりはXの仕様に合わせて最適化されてしまっているのです。ストレスなしには、インターネットの生を実感できなくなっている。これは中毒症状以外の何物でもありません。\u003C/p>\u003Cp style=\"text-align: start\">Twitterでしか繋がれない人脈、Twitterに置き去りにしてきた膨大な思い出。それらを大切に思うからこそ、私は今のXを憎みます。\u003C/p>\u003Cp style=\"text-align: start\">ですが本質的な理由は、私が真人間であることよりも、アルゴリズムに踊らされる反応機械であることの快楽を選んでしまったという点に尽きます。\u003C/p>\u003Cp style=\"text-align: start\">かつて、昭和の街角に貼られたポスターは、白い粉の恐怖と共に｢人間やめますか｣と問いかけました。しかし令和になった今、私たちは手のひらの上で鈍く光る黒いアイコンを見つめながら、その問いに無言で頷こうとしています。\u003C/p>\u003Cp>理性も品性もかなぐり捨てて、汚泥のような情報を浴び続けること。怒りを燃料にして走り続けること。それがこのプラットフォームに最適化された、新しい人類の醜い姿なのかもしれません。\u003C/p>\u003Cp>青い鳥は死にました。多くの人の順当な人間性も、もしかしたらその時に一緒に死んでしまったのでしょう。\u003C/p>\u003Cp>文句を言いながらも指先は正直です。今日も元気に、地獄の窯の蓋を開けに行きましょう！\u003C/p>",[12],{"id":13,"createdAt":14,"updatedAt":15,"publishedAt":14,"revisedAt":15,"slug":16,"name":17},"wia4slp55q","2025-04-28T07:14:14.541Z","2025-12-03T16:08:13.798Z","thoughts","独り言",false,1,0,{"contents":22,"totalCount":45,"offset":20,"limit":19},[23],{"id":24,"createdAt":25,"updatedAt":26,"publishedAt":27,"revisedAt":26,"title":28,"content":29,"tags":30,"is_no_index":18,"summary":44},"qqupfxdxo","2026-01-08T17:11:19.647Z","2026-01-09T05:27:38.651Z","2026-01-08T19:30:52.271Z","「LLMがプログラミングするのなら直接マシン語書けるんじゃね？」←そんなわけがない","\u003Ch1 id=\"h8d027c8ed3\">はじめに\u003C/h1>\u003Cp style=\"text-align: start\">ここ最近、なんちゃって技術界隈で、なんだかすごい言説が流れてくるようになりました。\u003C/p>\u003Cp style=\"text-align: start\">曰く、「現代の高級言語は人間がバイナリを読み書きするための単なる中間言語に過ぎないのだから、LLMが直接実行可能なバイナリを生成すればいいのではないか」とのこと。これを聞いた瞬間、まともな技術者なら、苦笑い、爆笑、冷笑(あるいはその他の否定的な感情)を禁じ得なかったのではないでしょうか。\u003C/p>\u003Cp style=\"text-align: start\">彼らの言う、LLMでプロダクションレベルのコードが書ける時代(笑)では、それが合理的なものに見えているのかもしれません。しかしそれは「明日から全員、口で喋るのをやめて脳波で直接テレパシー通信しようよ！！」と言われるくらい、現実味のない笑い話です。\u003C/p>\u003Cp style=\"text-align: start\">なぜ、現代のLLMによるバイナリコード出力がこれほどまでにナンセンスで、実現不可能なお笑い草なのか。技術的な無理解とその無謀さをあえて基礎的な観点から整理して笑い飛ばしてみましょう。だいたいそういう内容の記事です。\u003C/p>\u003Ch1 id=\"h6bc683b58b\">Excel方眼紙の呪い\u003C/h1>\u003Cp style=\"text-align: start\">人間が直接コードを書かず、何か別の上位概念からシステムを生成しようという発想自体はそう新しいものではありません。LLMが覇権を握る以前から、この国では「Excel方眼紙さえ完璧ならシステムは動く」と信じて疑わない人々が彷徨っていました\u003C/p>\u003Cp style=\"text-align: start\">「設計書さえ完璧に記述すれば、あとは誰がコードを書いても同じ。コードなんてただの実装作業でしかないんだから。」\u003C/p>\u003Cp style=\"text-align: start\">そう謳って構築された、数千億円規模とも言われるの某銀行の巨大システム群が何を生み出したか。それは、誰も全容を把握できず、メンテナンス不能に陥った巨大なブラックボックスでした。\u003C/p>\u003Cp style=\"text-align: start\">ちなみに、某銀行のシステムが、特定のツールで作られたかどうかなど些末な問題です。ここでの本質的な問題は、マルチベンダによる巨大な分業体制の中で、設計と実装を完全に切り離し、言い換えれば、人をコンパイラのように扱ったことにあります。\u003C/p>\u003Cp style=\"text-align: start\">その結果どうなったか。コードを見なくていいはずが、コードと乖離し続ける膨大な設計の整合性を取るために、人間が血眼になってExcelを管理する羽目になりました。\u003C/p>\u003Cp style=\"text-align: start\">厳密な仕様定義と、優秀なエンジニアを大量投入してなお、この苦しみです。確率的にしか動かない現代の残念なLLMにバイナリを生成させればどうなるか、想像に難くありません。\u003C/p>\u003Cp style=\"text-align: start\">実装を軽視し、抽象的な指示だけでシステムが動くという妄想は、過去に我々が大量のお金と時間をドブに捨てて学んできた、SIer仕草の悪しき再生産に他なりません。出来上がるのはシステムではなく、誰も中身を理解できず、修正も検証も不可能な巨大な産業廃棄物です。行く先にはまたしても、何人もの屍が積み上がることでしょう。\u003C/p>\u003Cp style=\"text-align: start\">中には、\u003Ca href=\"https://x.com/takeshy/status/2009130068149408150\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">こんなこと\u003C/a>を本気で言う人もいます。\u003C/p>\u003Cp style=\"text-align: start\">「なんか不具合あったらAIに直してって言えば、バイナリ解析して修正してくれるんでしょ？(意訳)」\u003C/p>\u003Cp style=\"text-align: start\">なるほど。原因の特定も、修正の妥当性も、影響範囲の検証も、すべて省略できる魔法の言葉があるらしい。もしそれが本当なら、我々はとっくにデバッガもテストもCIも捨てているはずです。\u003C/p>\u003Ch1 id=\"h07e54e9c97\">高級言語はセマンティクスを定義する\u003C/h1>\u003Cp style=\"text-align: start\">これら主張の根底には、プログラミング言語は任意バイナリへの変換を楽にするための中間言語であるという誤った認識があります。これは大きな間違いです。\u003C/p>\u003Cp style=\"text-align: start\">現代において、高級言語の本質は、ハードウェアの抽象化だけではなく、システムが何であるかというセマンティクスの定義そのものです。そしてさらに重要なのは、高級言語は表現力を上げると同時に、意図的にできないことを増やしているという点です。\u003C/p>\u003Cp style=\"text-align: start\">RustやGo、TypeScriptなどの現代的な言語を見れば明らかですが、これらは「メモリ領域を勝手に操作できない」「型が合わない計算はできない」といった強力な制約を持っています。なぜそんな制約を入れるのかといえば、自由度と検証可能性がトレードオフの関係にあるからです。\u003C/p>\u003Cp style=\"text-align: start\">制約があるからこそ、コンパイラは「このバイナリは言語仕様上のメモリ安全性が担保されている」「この並行処理は競合しない」といった、ある意味での数学的な正しさを検証できます。LLMに生のバイナリを直接扱わせるということは、安全性を担保するための制約を全てかなぐり捨て、メモリ破壊もセキュリティホールも作り放題の無法地帯に放り込むことを意味します。ガードレールを撤去してゴツいクソデカスポーツカーを自動運転させるようなもので、事故が起きないわけがありません。\u003C/p>\u003Ch1 id=\"h42b14bd67b\">コンテクストウィンドウとトークンコスト\u003C/h1>\u003Cp style=\"text-align: start\">現実的なリソースとお金の話をしましょう。\u003C/p>\u003Cp style=\"text-align: start\">実行バイナリの情報密度は、高級言語で記述されたソースコードに比べて極めて低く冗長です。例えば、Goで\u003Ccode>fmt.Print(&quot;Hello world!&quot;)\u003C/code>と書けば済む処理も、バイナリになれば、システムコールの番号をレジスタに入れ、メモリアドレスを指定し、割り込みを発生させ、スタックを退避し…といった細かな命令コードの羅列になります。ソースコードなら数行で済むロジックが、バイナリデータとしては数KiB, MiBに膨れ上がります。\u003C/p>\u003Cp style=\"text-align: start\">現在のLLMには、コンテクストウィンドウの限界があります。前述のような、意味の詰まった高級言語でさえ、大規模なシステムを読み込ませればコンクキスト溢れを起こして使い物にならないのが現状です。そこに、冗長極まりないバイナリを流し込めばどうなるか。一瞬で埋まり、LLMがまともに期待する動作をしてくれることはまずないでしょう。\u003C/p>\u003Cp style=\"text-align: start\">最近ではだいぶ安くなったものの、LLMの出力コストは、安いものでも1万トークンあたり数円〜数十円かかります。数MiBにも及ぶバイナリデータを生成させるために、数万、数十万円の金銭を支払うつもりでしょうか？\u003C/p>\u003Cp style=\"text-align: start\">手元のPCにあるコンパイラを使えば、事実上0円かつ数秒で、正確に変換してくれる作業を、わざわざ高コストで不確実性のあるLLMにやらせる合理性は、どこにも存在しません。\u003C/p>\u003Cp style=\"text-align: start\">まともな頭があればこのくらい分かりそうなものですけどね。\u003C/p>\u003Ch1 id=\"h26b276b313\">コンパイラがどうの\u003C/h1>\u003Cp style=\"text-align: start\">｢コンパイラなんてただのバイナリ変換機だろう｣と思っているなら、それも認識を改めるべきです。現代のコンパイラ多くは、過去数十年にわたる人類の英知と膨大な検証の結晶です。\u003C/p>\u003Cp style=\"text-align: start\">コンパイラは単に変換しているだけではありません。ループの展開やデッドコードの削除、パイプラインを停滞させないための命令順序の並べ替え、レジスタ割り当ての最適化など、高度な処理を厳密に行っています。同じソースコードを食わせても、コンパイルオプション一つで生成されるバイナリは大きく変わってしまいます。\u003C/p>\u003Cp style=\"text-align: start\">良くも悪くも、LLMは確率的な出力をするものです。なんとなくそれっぽい文字列を生成することには長けていますが、バイナリを正しく生成するなんてことは当然不可能です。\u003C/p>\u003Cp style=\"text-align: start\">残念なことに、世界には無数の環境があり、命令セットも多岐にわたります。コンパイラは、これらの組み合わせの差異を吸収して、それぞれの環境に最適なバイナリを出し分けてくれています。これをLLMにやらせるということは、OSやプロセッサごとの微妙な仕様の違いやシステムコールの番号を網羅的に充分な量の学習をさせ、環境ごとに毎回何MiBものバイナリを生成し直させるということです。正気の沙汰とは思えません。\u003C/p>\u003Ch1 id=\"h1afe451c43\">さいごに\u003C/h1>\u003Cp style=\"text-align: start\">ひとつ、勘違いしてはいけないことがあります。\u003C/p>\u003Cp style=\"text-align: start\">各社が提供しているエージェントは、決して論理を組み立てているわけではありません。あれは膨大な学習データから次に来そうな文字を確率的に吐き出しているだけであり、そこに意思も、理解も、厳密なロジックも存在しません。\u003C/p>\u003Cp style=\"text-align: start\">だからこそ、私たちは高級言語を使うのです。\u003C/p>\u003Cp style=\"text-align: start\">確率的に嘘をつくことしかできない残念なLLMが吐き出したコードを確認した上で、コンパイラという決定論的な論理エンジンに通すことで、初めて整合性を担保できるからです。\u003C/p>\u003Cp style=\"text-align: start\">LLMが直接バイナリを書けばいいなどという妄言は、これらの前提条件を捨てているといっても過言ではありません。\u003C/p>\u003Cp style=\"text-align: start\">少なくとも技術者を名乗るのであれば、LLMガチャ師仕草をやめて、その残念な自らの頭を活用してみてはいかがでしょうか？\u003C/p>\u003Cp style=\"text-align: start\">驚き屋を追いかけてのお勉強(笑)には熱心なのに、抽象化された高級言語すらまともに読み書きできないのであれば、技術者としてお話になりません。\u003C/p>",[31,32,38],{"id":13,"createdAt":14,"updatedAt":15,"publishedAt":14,"revisedAt":15,"slug":16,"name":17},{"id":33,"createdAt":34,"updatedAt":35,"publishedAt":34,"revisedAt":35,"slug":36,"name":37},"8q8qyy8sz3","2025-04-29T08:44:23.406Z","2025-12-03T16:07:24.495Z","programming","プログラミング",{"id":39,"createdAt":40,"updatedAt":41,"publishedAt":40,"revisedAt":41,"slug":42,"name":43},"qfey3yw0z1","2025-04-29T08:44:41.687Z","2025-12-03T16:07:14.622Z","technology","テクノロジー","はじめにここ最近、なんちゃって技術界隈で、なんだかすごい言説が流れてくるようになりました。曰く、「現代の高級言語は人間がバイナリを読み書きするための単なる中間言語に過ぎないのだから、LLMが直接実行可能なバイナリを生成すればいいのではないか」とのこと。これを聞いた瞬間、まともな技術者なら、苦笑い、爆",47,{"contents":47,"totalCount":71,"offset":20,"limit":19},[48],{"id":49,"createdAt":50,"updatedAt":51,"publishedAt":51,"revisedAt":51,"title":52,"content":53,"tags":54,"is_no_index":18,"summary":70},"881vyfdq_5","2026-01-12T19:08:19.276Z","2026-01-12T19:14:08.297Z","さようならVercel, こんにちはGCP","\u003Cp>こんばんは。あるいはこんにちは。\u003C/p>\u003Cp>実はお気づきの方もいらっしゃるかもしれませんが、このサイト、数ヶ月前にインフラのお引越しをしています。暫くお世話になっていたVercel基盤を離れ、現在はGCPの上で稼働しています。移行作業からしばらく経ち、運用も安定していて特に問題なさそうなので、ここらで重い腰を上げて移行の経緯でも書き残しておこうかなと思います。\u003C/p>\u003Cp>今回、以降に踏み切った理由はいろいろとあるのですが、きっかけとして大きかったのは、単純にVercelの無料枠を使い果たしてしまったことです。個人の趣味サイトとはいえ、トラヒックが増えればリソースも食いますし、記事数が増えれば(移行当時は部分的にSSG構成だったので)ビルド時間も伸びます。もちろん、お金で殴ってプランを上げてしまえばそのまま使い続けることは造作もないことなのですが、そこでふと損得勘定が働いてしまいました。毎月10USDを固定で払うくらいなら、必要な分だけ課金されるCloud Runで動かした方が、結果的にはお財布に優しいしお得なんですよね。\u003C/p>\u003Cp>そして2つ目。実はこっちの方が心情的な割合としてはかなり大きいのですが、VercelのCEOであるGuillermo Rauch氏の倫理観に対して、どうしても拭えない不信感を抱いてしまったという点です。ご存じの方も多いかと思いますが、彼がイスラエルのネタニヤフ首相と会談し、ML技術について議論を交わし、その後に満面の笑みで撮影したセルフィーをTwitterに投稿したあの一件です。\u003C/p>\u003Cp>相手は国際刑事裁判所から指名手配を受け、ガザでのジェノサイド容疑もかけられている人物です。政治的なスタンスは人それぞれあるにせよ、公人として、tech企業のトップとして、そのセルフィーを世界に発信することの意味をどう捉えているのか。本当にこの人の倫理観はどうなっているんだろうと、背筋が寒くなるような思いでした。\u003C/p>\u003Cp>「たかが個人の趣味サイトなんだから、プラットフォームのCEOの思想なんて関係ないじゃん」と言われればそれまでですし、別にわたしのサイトは法人の看板を背負っているわけでも、社会的な信用を切り売りしている商売でもありません。実害は全然ないんです。でも、それはそれとして、一度すこしでも嫌悪感を感じてしまうと、それ以外の部分まで全部が色褪せて見えてしまうのものです。所謂、坊主憎けりゃ袈裟まで憎いというやつです。\u003C/p>\u003Cp>そうなると不思議なもので、元々は妥協していた小さな不満が、急に許せなくなってきます。例えば、NuxtImgを使った画像最適化の取り回しについて、Vercelプロバイダを利用するときだけ妙に設定が面倒だったり、挙動に癖があったりして、結局対応するのが億劫でipxを利用して回避していた事なんかが思い出されます。\u003C/p>\u003Cp>あとはあれですね、令和の現代においても未だにIPv6をネイティブでサポートしていない点とか。先進的なフロントエンド体験を謳っているプラットフォームなのに、足回りのネットワークに関しては意外と適当なんだなと、以前から感じていた違和感が嫌悪感に変わりました。そういう小さな「うーん」という澱みのようなものが積み重なって、最終的に「もう全部嫌だ、引っ越そう」という決断に至ったわけです。\u003C/p>\u003Cp>移行先にGCPを選んだ理由は至ってシンプルで、安くて使いやすくて、なんとなくいい感じだからです。ありがたいことに無料枠もそれなりに充実していますし、貧乏開発者には優しい環境が整っています。\u003C/p>\u003Cp>ちなみに、このサイトを作り始めたちょうど1年くらい前は、Cloudflare Workersを利用していました。なので今回もWorkersに出戻りすることを真っ先に検討したのですが、いざ検証してみると壁にぶつかりました。現在の構成がNode.js依存の実装を含むライブラリとズブズブの関係になってしまっており、Workersのランタイム環境では動かすのが厳しかったのです。加えて、仮にPaidプランにしたとしても、ランタイムサイズの制限を大幅に超過してしまうことは明白でした。\u003C/p>\u003Cp>あれこれ悩んだ結果、CockroachDBがちょうどGCP上にあったこともあり、それならアプリケーションも同じGCPに置いてしまった方が合理的だという結論に達しました。結果的に、GCPへの集約は正解だったと思います。\u003C/p>\u003Cp>インフラの構築に関しては、例によって私はGUIの管理画面をポチポチして手動で設定するのが大嫌いなので、今回も全てTerraformを使ってIaC化しています。人の温もりを感じるインフラなんて、いつ壊れるかわからない時限爆弾みたいなものですからね。\u003C/p>\u003Cp>あ、そうそう、ついでにGoogle Fontsもやめました。Lighthouseのパフォーマンススコアの足を引っ張っていて邪魔だったので思い切って削除したのですが、代わりのシステムフォントはどうにも気持ち悪くて、納得できませんでした。結局、Adobe Fontsを導入してFutura-PTを利用することにしました。そのせいで削除前よりもLighthouseのスコアは低下してしまったのですが、見た目が圧倒的にかわいくなったのでよしとしています。\u003C/p>\u003Cp>最適化については、またいつか気が向いた時にでも頑張ろうと思います。\u003C/p>\u003Cp>それでは。\u003C/p>",[55,56,62,63,64],{"id":39,"createdAt":40,"updatedAt":41,"publishedAt":40,"revisedAt":41,"slug":42,"name":43},{"id":57,"createdAt":58,"updatedAt":59,"publishedAt":58,"revisedAt":59,"slug":60,"name":61},"fwj_nwhj1-s","2025-04-30T04:55:28.953Z","2025-12-03T16:07:03.591Z","server","サーバー",{"id":33,"createdAt":34,"updatedAt":35,"publishedAt":34,"revisedAt":35,"slug":36,"name":37},{"id":13,"createdAt":14,"updatedAt":15,"publishedAt":14,"revisedAt":15,"slug":16,"name":17},{"id":65,"createdAt":66,"updatedAt":67,"publishedAt":66,"revisedAt":67,"slug":68,"name":69},"4oy2jc8mdg","2025-04-28T07:14:01.179Z","2025-12-03T16:08:24.495Z","diary","日記","こんばんは。あるいはこんにちは。実はお気づきの方もいらっしゃるかもしれませんが、このサイト、数ヶ月前にインフラのお引越しをしています。暫くお世話になっていたVercel基盤を離れ、現在はGCPの上で稼働しています。移行作業からしばらく経ち、運用も安定していて特に問題なさそうなので、ここらで重い腰を上",21,1783975276544]