さようならの日々

 日々、nVidiaの株価は上昇し続け、日本の半導体メーカーの株価も日経平均上昇の先端を走り続けるなか、OpenAIとGoogleのAI競争の激化、軽くて賢いLLMが次から次へと日々進化をしていった2025年。

 私の環境もCursor Pro から Cursor Ultra へと進歩を遂げ、アプリ開発が進んでいったのでした。

 CursorのエージェントにSwiftを書いてもらいながら、あーでもない、こーでもないと、試行錯誤をしながら、その横で日々データを取得しながら、各企業がどんなブランドでどんな店舗を展開しているのかを取得して…というだけの日々が約1ヶ月続いた頃、会社を検索して、株数を入れたら株主優待が登録できるという所までiPhone上に再現することができるようになった。

 そして、クリレスやマクドナルドの店舗を地図上に表示することができるようになって、おおお!これは面白い!今はまだ数千件だけれど、2〜3万件の店舗が入ってきたら、きっと面白いことになるな〜という予感がし始めていた。

 でも、この頃は、まだそれほどの店舗数ではなかったため、JSONファイルを検索するという可愛い仕様で動かしていて、足りない情報はサーバからAPIで引っ張ってくれば…などと気軽に考えていた。

 しかし、9月も終わりそうな頃、早くも限界が見え始めてきた。

 地図上に表示されるスピードが激遅くんになっていて、どこにボトルネックがあるんだ?と、今から考えると子供でも分かるだろレベルの頭の悪さだったんだけれど、ひとまず、自分が借りているVPSでは随時APIでデータを取得させる事はできないなと早々に諦めることに。
 自分1人のアクセスでも耐えられないんだから、到底使い物にはならないなと。

 その次は検索速度。
 JSONでは軽度な検索はできても、MySQLなどのDBとは比較にならないほどのスピード。
 これは、SQLiteに書き換えるしかないか、と、APIでJSONを取得する事を諦めた(でも、この技術は後々生きることになるので、無駄にはならなかった)のだが、じゃ、SQLiteはどうやって生成する?JSONを生成したのをバンドリングして、最初の起動でSQLiteにいれるか?と考えて時期もあったが、WordPress上で作ったDBをSQLite出力すればいいのか、という事で解決。

 高速に地図上にピンが立ちまくってくれるようになったし、もう余裕じゃん!と思ったのもつかの間、店舗数が8万件を超え始めたときには、いくら早いSQLiteも限界が来た。
 どうすれば…と思ったとき、まぁ、広域なら、ぽつんと1店舗表示されることもないか、と言うことで、表示される地図の拡大率によってクラスタ処理を変更することにした。

 え?クラスタ処理ならMapKitにもあるでしょ!って?俺もそう思ってたときがあったよ、あったんだよ。でも、ピンが重なりまくると、見栄えが俺の思っているようにはいかなかった。
 いつも行っているイオンモール、まだ半分くらいしか店舗情報は行っていないけれど、ピンがえげつないことになっているやん…まとめないとだけれど、これ、どうやって見せるのが分かりやすいの?と思ったときに、あ、自力で作るしかないのか、となったわけです。

 しかし、AIエージェントはそんな俺の気持ちを汲み取ってくれず、ロールバックはするわ、正反対のことをして遊び出すわ。GithubとTimeMachineで正しく動いていたところまで戻すことができたから、なんとか大きな時間を失わずにすんだが、俺が幼稚園児に大学教授並みのことをさせようとしているんだと気づいたときには時すでに遅し。

 さらに状況は悪くなり、CursorはAutoで使っていると、適当なAIエージェントが入れ替わり立ち替わり出現をしてきて、突然人が変わった様なチャラ口調になったり、遊び人が急に賢者になったようなドラクエ的展開が待っていたりと、心を病んでいる俺をさらに病ませてくれた。

 あるとき、どのエージェントが遊びまくるのかを調べ、先にエージェント名を名乗らせる事でフィルタリングできる事を思いつくのだが、「○○ってエージェントなら、何もせずにさよならっていって」って指示書を作っておいたところ、永遠と1時間ほどさよならを告げられ、あっけなく敗北。

 しかも、途中から「俺はそんな名前じゃないし、さ、やりたいこと言えよ!」的なノリで話しかけてくるエージェントが出現し、怪しい…と思い問い詰めたら「ばれたか!さよなら」と消えてゆく。

 さよならじゃないんだよ…金払ってるんだよ!賢者出てきてくれと、神頼みをし続けた9月。1ヶ月という時間が早く感じられた。