| @技術/プログラミング

Strava クローンのような機能を Claude Code と Codex を使って二日で作った。 Garmin や COROS や Apple Watch でとった FIT ファイルや GPX ファイルをアップロードすると軌跡とペースを表示してくれるやつ。ソーシャル機能やセグメント、心拍数ゾーン分析などがない簡易的な Strava みたいなやつ。ブログ記事に埋め込める機能もつけた。

AI エージェントやばい、 AI すごい、エンジニアいらなくなるみたいなことが盛んに言われてるけど、自分が直接開発しなくなったのであまりピンと来てなかった。本腰を入れて使ってみて AI 開発の何たるかがわかった気がする。やり方を知っているけどとにかく作業が面倒くさくてできないこと、やり方があることは知っているがやり方自体は知らないこと(勉強しないとできないこと)が、 AI があればどんどん簡単にできるようになった。時間のなさとかやる気のなさ、学習意欲のなさを補ってくれる感じ。

AI エージェント時代のエンジニア、「やり方があることは知っているがやり方自体は知らない」領域がいっぱいある人が強いと思う。「やり方があることは知っているがやり方自体は知らない」と「やり方があるかどうかもわからない」は隣り合っていて、経験が多い人ほど「やり方があるかどうかもわからない」を「やり方があることは知っているがやり方自体は知らない」領域に移してきているので AI を使った開発で有利になる。つまりおっさんエンジニアほど有利になる。

実装力は AI で差別化ポイントではなくなるので、 AI が出してくるものの善し悪しを判断できるセンスとか、これまでこれまでソフトウェア開発でハマった経験とか、そういうのも重要になる。やっぱりおっさんの方が有利。

News Picks の週刊ジョーホーで、若手ほど新しいテクノロジーで不利になるこれまでになかった時代がやってくると言ってたけど(22:11〜)、その通りだと思った。

週刊ジョーホー番組 | 【AI天才が断言】若手の仕事、もうすぐ半分が消失します - NewsPicks

週刊ジョーホー番組 | 【AI天才が断言】若手の仕事、もうすぐ半分が消失します - NewsPicks

加熱するAI界のトップ争い、勝ち組はどこなのか。注目すべきは、今週のダボス会議で「事実上の勝利宣言」をしたGeminiの「Google」、そしてClaudeの「アンソロピック」です。怒涛のアップデートで界隈を賑わせる両社は、なぜ勝利を確信できたのか。これまで最前線を走り続けてきたOpenAIやサム・アルトマンの立ち位置とは。ホワイトカラーの仕事を大きく変え始めた両社トップの発言から、今後の勢力図、そして私たちの仕事の変容を探ります。 ▼目次 00:00 オープニング 04:46 AIトップ2が語った「勝利の条件」 10:45 「研究者プライド」で意気投合 15:01 新卒の仕事が、遂に奪われる 20:30 Claude使いエンジニアの本音 23:31 10分でウェブサイトを自作してみた 26:07 SaaSづくりにも挑戦 29:41 AI界重鎮が、2026年を衝撃大予言 37:27 ブルーワーカー最強説は本当? 38:52 エンディング 👆の「フォロー」ボタンを押すと番組更新時に通知が届きます ▼出演 森川潤(NewsPicks NY支局長) 後藤直義(NewsPicks編集委員/NY支局) ▼制作 デザイン:國弘朋佳/バナー・図版デザイン・撮影:狩野史帆/編集:瀧澤めぐみ、伊藤大地/制作管理:齋藤薫、井上茉優/プロデューサー:森川潤、後藤直義

npx.me

アメリカで若手エンジニアの採用を減らしているというのはむべなるかな。

ただしおっさんなら無条件で安泰というわけではなくて、「やり方があるかどうかもわからない」を「やり方があることは知っているがやり方自体は知らない」領域に移していける力は問われつづけると思うので、おっさんになっても「やり方があることは知っているがやり方自体は知らない」領域が狭い人や、この領域を広げる努力を怠っている人は市場価値がなくなっていくと思う。

| @技術/プログラミング

| @技術/プログラミング

ポータルシット問いかけ君

2 年くらい前に ChatGPT がエンジニアなどの間で使われるようになったときに、自分のブログの記事などを突っ込んで ChatGPT と対話できるようにするのがはやった。

Scrapbox でやる例。多分一番最初の例。

はてなブログの記事でやる例。ヒトデさんの記事。

自分も真似してやってみたかったのだけど、 embedding の方法を調べていて面倒くさくなってやめた。

最近は Dify でそういうことができるのを知ってはいたので、三連休の暇つぶしにやってみたところまぁまぁ面白いのができた。 Dify で作っているので公開もできるけど、どのくらいお金がかかるかわからないのでまずは一人で遊ぶ用にする。ChatGPT の利用料金があまり上がらないようなら一般公開してもいいかもと思ってる

やり方をまとめるとこんな感じ。

  1. 自分の ChatGPT の API トークンを入力する(すぐにメッセージクレジットが足りなくなるので)
  2. 質問回答テンプレートを選んでワークフローを作る
  3. ナレッジベースを作る
  4. 年次に記事をまとめてナレッジベースにドキュメントとしてアップロードする

プログラミングが必要なのは 4 のステップで、このステップも ChatGPT に聞くとコードを用意してくれる(コードはとても汚い)。めっちゃ速くチャットボットが作れた。すごい世の中になってきてると思う。

自分との対話面白いのでいっぱいブログに記事を書いて、自分が死んだら子どもがこのボットに相談できるようにしておきたい。

※追記 あまりお金かからないような気がしたので公開してみる。

| @技術/プログラミング

いろいろあって手元で docker build が通らなくなってしまったので ChatGPT に相談したら Alpine Linux はビルドが遅くなるので Debian Slim に変えた方がよいと言われてガチャガチャやった。BuildKit を使ってキャッシュせよとも言われたけど、逆にビルドにめっちゃ時間かかるようになったので BuildKit は使わずに普通にビルドしてる。 Apple Silicon の Mac で Linux で動かすように linux/arm64 でビルドしてたけどこれが遅い原因だと散々言われた。クロスプラットフォームで BuildKit のキャッシュを使うとめっちゃ遅くなるらしいので逆効果だった(半日以上ビルドしても終わらないてことがざらだった)。

Docker 、これまで Alpine ベースのイメージを使ってたせいで自前でいろいろコンパイルしたりインストールしたりしてたけど、ビルド済みのものをダウンロードしてくる運用はやっぱり楽。 Alpine 使っても最終的なイメージサイズは膨大になってたし、もっと早めに Debian ベースに変えればよかった。

ちなみにビルドが通らなくなったのは tantiny が依存する rayon という Rust のライブラリが Rust 1.8 以降でしか動かなくなったため。 tantiny は Rust 1.77 までしかサポートしてないので Rust のバージョンを 1.77 で固定していたが、このせいでビルドにこけるようになった。なので tantiny をフォークして rayon と rayon-core のバージョンを古いバージョンに固定した。

tantiny および tantivy は楽に運用できる非常に優れた全文検索ライブラリだと思うけど、 tantiny のメンテナーの人が仕事で使わなくなったそうでメンテナンスされてないのが悲しい。自分でできるならやりたいが、職業プログラマーではないし Rust わからんちんなのでどうしたもんか…。

| @技術/プログラミング

去年の 3 月に ChatGPT を API で使いたいと思って、 OpenAI の API クレジットを $10 分買っていた。 ChatGPT の API を使っても全然クレジットが減らず、まだ $9.5 分くらい残ってたはずだが、先日買いたブログ記事の要約を作ってもらおうとしたがちゃんと動かない。どうも API がレスポンスを返していないようだ。最初はぶっ壊れたのかなと思ったが、 ChatGPT に聞いてみると以下の通りで、購入から 1 年が経ったら失効するとのことだった。

CleanShot 2025-04-24 at 00.26.51@2x

利用頻度は高くないけれど使えなくなったら不便なので取り急ぎ $5 分クレジットを購入した。

| @技術/プログラミング

Tantiny 、ろくにドキュメントを読んでいなかったので知らなかったのだけど、リアルタイムで検索インデックスの更新ができるようだった。これまで一時間に一度バッチ処理を動かして、更新された記事があればすべての記事を読み直してインデックスを更新するような富豪的なことをやっていた。アホだった。

| @技術/プログラミング

バッチ処理を動かしている Docker コンテナ含めてすべての環境を Ruby 3 で動かせるようになった。以下の点に難儀した。

  • MeCab が Google Drive からダウンロードできなくなっているので代替を探した
  • Tantiny が依存する rutie という Rust と Ruby をブリッジする gem が新しめの Rust に対応しておらず、 Rust のバージョンを 1.77 に固定する必要があった
  • ActiveRecord が v6 に上がったことにより、 DATABASE_URL を環境変数で渡すことで DB 接続設定を上書きできなくなってしまった
    • 設定ファイルの方を優先して読み込むようだった

ついでにキャッシュも効くように修正した。 sinatra-cache がおかしかったのは Haml の挙動が変わって - form_tag としていたところを = form_tag とする必要があるのと同様に、 - cache_fragment= cache_fragment にする必要があった。再びキャッシュが効くようになって高速になったが、一部 HTML タグが混ざって表示されることがある。 sinatra-cache.gem が依存する sinatra-outputbuffe.gem の方に問題がありそう。この gem は 16 年以上更新されていない。どこかでキャッシュ依存はやめないといけないかもしれない。