2023年のふりかえり

TL;DR 2023年に学んだ知識で2024年はマネーを獲得

2022年のふりかえり

laiso.hatenablog.com laiso.hatenablog.com

2023年にやったこと

After ChatGPT

Chat Completions APIのリリースを皮切りにプログラムからGPT-3,4の応答が呼び出せるようになったので「LLMアプリケーション」と呼ばれるようなジャンルにまでなり流行した

当サイトでも技術的な実験記事やら観念的な持論やら今年は色々書き散らした

まだハイプサイクルの峠をこえたんだかいないんだか明確でないので来年もしばらく続くんだろうと予測している

ChatGPTの使い方

「OpenAI Playgroundを使ってGPTを会話風テキスト生成ツールとして楽しむ 」は世間で流通しているプロンプトハックみたいなものに意味があるのか疑問があったので書いた laiso.hatenablog.com 「Bing AIチャットをデフォルトのウェブ検索にして使ってみた 」あたりの時期からはGoogle検索を使う機会がグッと減ったように思う laiso.hatenablog.com Bing AIチャットことMS Copilotは今はそんなに活用していないんだけど、膨大長文トークンページをMSの謎の技術力(Semantic Kernel?)で折り畳んで要約してくれるのPDF開いたりする時に補助的に使っている

「TwitterでフォローしていいかどうかもGPTに決めてもらう 」は実用しているわけではないけどTwitterを再開する動機になった laiso.hatenablog.com laiso.hatenablog.com 「英文を句構造文法に変換するやつ」「ChatGPTと英会話」はしばらくやってみたけどそんなに理解しやすいわけではなかった laiso.hatenablog.com laiso.hatenablog.com 「人類には早過ぎるLLMの話 」はサムアルトマン解任劇の最中に思想間対立に注目している人が少なかったので書いた laiso.hatenablog.com 自分はAI慎重派や効果的利他主義の考えに興味を持っていたところだったので、この解釈はすんなり受け入れられた

コーディング自動化

「GPTでソースコードからpatchを生成し続けたらプログラミングを自動化できるのでは???? 」や「GPT同士に対話をさせて自動でブログ記事を書くことができるのか?」は実際にできたし物凄い勢いでAPI課金されて後悔した laiso.hatenablog.com laiso.hatenablog.com コーディングは現在GitHubとVS Code周辺がどんどん発展していっているのあいつに任せてればよくない? と思いはじめている その一貫としてプログラムからローカルのCopilotに入出力できれば自動化できそうだなを思って内部プロトコルを調べた zenn.dev 「ライティングの哲学と未来のエディタの話 」では非コーディングな生産にもこれを拡大できるのでは、という展開をした laiso.hatenablog.com Code Interpreterが出た後はコード読解能力にも注目した、このUXは現在のCursorやGitHub Coplilot Chatに引き継がれている laiso.hatenablog.com laiso.hatenablog.com laiso.hatenablog.com

アプリケーション開発

今年の前半はLangChainLlamaIndexの実装を読みながらどんな風にGPTが活用できそうかなというのを考えていた

当初はJSONの応答をコントロールするのも以下のようにプロンプト側で工夫していた zenn.dev その後Function callingやJSON modeが追加され楽になった zenn.dev 開発をしていると、プロンプトAとプロンプトBのどちらが精度のよい結果が得られるのか? と思う場面が結構あって、そういう時モデル評価用のEvalsというツールが活用できた zenn.dev さらにそれを利用して巷で噂されているプロンプトハックみたいなものの検証もしていた zenn.dev 現在RAGと呼ばれている関連ドキュメントを埋め込み表現で類似検索してコンテキストとしてプロンプトに含めるやつも最初は試行錯誤で、とりあえずLangChainのnotebookが追加されたらみんなで試すみたいな雰囲気だった zenn.dev zenn.dev zenn.dev zenn.dev zenn.dev zenn.dev zenn.dev デプロイ先のVercelやCloudflare Workers上でチャットバックエンドのSSEなAPIを実装するノウハウがまだなかったので以下を書いた zenn.dev 今はVercel AI SDKがあるのでこっちになるべく寄せたい

4月になったらOpenAIからChatGPTに任意のツールを差し込めるようなプラグインの仕組みが公開されたので使い方を覚えた zenn.dev zenn.dev プラグインストアの今後はどうなるのか発表されていないが、ChatGPT上で対話したい時はActions in GPTsで自分のサイト上でヘッドレスに使いたい時はAssistants APIを利用する形になるのかなと思っている

「PaLM APIのファインチューニングではてな匿名ダイアリー風文章生成モデルを作る 」ではGoogle CloudのMLプラットフォームの使い方に詳しくなった laiso.hatenablog.com 後継モデルのGeminiはOpenAIのGPTモデルと価格競争力に優れそうなので出番があるかもしれない

Windowsマシンを用意したのも生成AIのモデルを動かすためにGoogle Colabの強いインスタンス借りるのはだるいな〜と思い自分のGPUが欲しくなったため laiso.hatenablog.com それまでは以下のようにSeamlessM4TやVOICEVOXの音声合成エンジンをColabを動かしてなんとかしていた zenn.dev zenn.dev 結局まだこのPCはそんなに活用していないんだけど久しぶりにWindowsの開発環境に触れているのが楽しい

クラウドプラットフォーム関連

サーバーレスとDB接続問題は今年は各種DBプロバイダーがホスティング側で解決しだしたのであまり気にする必要がなくなってきた zenn.dev とくにNeonがsocket接続を実行時にWebSocketに差し替えて解決していたのに感心した zenn.dev 現在はSocket APIさえ呼び出せばCloudflareがHTTPからTCPのレイヤーを維持して接続してくれる仕組みがあるのでより楽になりつつある zenn.dev 「サーバーレスをやめろ」に出てきたMRSKは現在はKamalという名前になって37signalsの本番環境で動いているらしい laiso.hatenablog.com Internet Computerは世間ではマイナーブロックチェーンの一種ぐらいにしか捉えられてないかもしれないが自分はアプリケーションをデプロイできるマイナーなプラットフォームとして強引に理解しているのでこの記事を書いた laiso.hatenablog.com 全く誰も興味なさそうだった

「AWS Lambda Go 1.x ランタイム終了を時系列理解 」はXのタイムラインで「Go言語オワタ」「サーバーレスの悲劇」みたいな反応をしている人たちがいたので、どゆこと? と思い調べた laiso.hatenablog.com こういう感じでSNSシェアで話題になっていることの確認をしにいくようなムーブが今年は多かった

「しずかなインターネットの技術スタックを調べる」や laiso.hatenablog.com

「デジタル庁でjQueryが何をしているのか 」もその1つ laiso.hatenablog.com これは中の人が「Drupalするならまず人脈・・」みたいな反応をしていたのがちょっと面白かった

SQLiteの本番サーバー活用の分野はLiteFSとD1が牽引していて、どちらもベンダーロックインがあるが、今年はD1がpublic betaになり、LiteFS Cloudというマネージドサービスが提供された zenn.dev どちらも無料からワンコインの予算感で運用できるようになっている

技術系の動画

今年は技術系の動画をよく見るようにした「React.js: The Documentary」や「TypeScript Origins: The Documentary」「Ruby on Rails: The Documentary」がおすすめOSSドキュメンタリー3点セットで感想記事を書いた laiso.hatenablog.com laiso.hatenablog.com laiso.hatenablog.com 他には「The shape of future builders: from design to deploy 」や「Video Editing in the Browser 」などのカンフェレンス系の動画も見ていた laiso.hatenablog.jp laiso.hatenablog.jp 記事にしていない範囲だとBunの作者インタビューが面白かった www.youtube.com 個人開発者としてゲームを作っているうちにツール作りがメインになってBunができたらしい

「光の速さが同じはずなのにbun installだけ何で早いの?」と疑問だったので詳しく調べた zenn.dev

フレームワーク関連

「Remove TypeScript」はある日いつものようにDHH周辺のXのタイムラインが荒れていて日常やね〜 とのほほんと眺めていたらいつも見かけないフロントエンド界隈のOSS有名人が沢山出てきて何事!? と思い動向を追っていた laiso.hatenablog.com 記事に書いたとうりこれはTurboの開発方針に関わる意思決定なので、言語論争だけしたい人が大量に流入してくるのに疑問を持っていたが、ある人がコメントで「DHHがブログで煽るからじゃない?」と言っててそれはそうと納得した

一方Turboのモバイルアプリ連携コンポーネントのStradaが正式にリリースされ、世間の話題にはなっていない zenn.dev Zenn全体でStradaの記事書いているのが自分だけという悲しい状況

「丁寧なDeno+JSX」ではサーバーサイドNext.jsは最適か? →MVCフレームワークに戻るか? →別の道も探すか? という今時の課題に自分なりの答えを出した laiso.hatenablog.com ここに書いてないことで特筆すべきこととしては最近はAstroのSRRも便利に使っている

「いまさら振り返るRxSwift」はXの弊タイムラインにいるiOS関係の人達がRxSwiftの学習コストについて議論していたので懐しくなって自分も振り返った laiso.hatenablog.com WebUIについては新しものが出てきたらとりあえずひとうり理解するルーチンの1ついう感じ laiso.hatenablog.com 「GPT-4の画像認識とPlaywrightでポケモン判定ツールを作る」ではGPT-4のAPIが未リリースだった頃に無理矢理使おうとして試行錯誤したもの https://zenn.dev/laiso/articles/fac48615b30046 GPTよいうよりむしろPlaywrightとChromiumの接続仕様の勉強になった

AWSコスト最適化大作戦

2023年の円安ドル高の市況でどこの企業も似たようなことをやっていそうだけど、自分もAWSインフラのランニングコストを削減するための作業を片手間にやっていた

そんなに特別なことはやっていなくてSpot InstanceやReseverved Instance、Saving Planを活用、余剰リソースを整理してアプリケーションも書き換えインスタンスの単価を減らす、というようなコスト最適化をするのに当たり前なことを作業の優先順位の一番上に持ってきた

これには「AWSコスト最適化ガイドブック」「Amazon Web Services コスト最適化入門 (技術の泉シリーズ(NextPublishing))」を参考にした

オライリー本

自分は県内一のオライリー本廃課金勢だと思っているんだけど、アカウンティング関連の整理していたら現在はPayPalが使えなくなっていて、オライリージャオパンや技術評論社のDRMフリーの電子書籍が買えなくなって困っていたので以下の記事を投稿した laiso.hatenablog.com その後Online Learning with O'Reillyのサブスクを契約して対応している本は読んでいたりした laiso.hatenablog.com さらに10月になるとクレジットカードでの決済に対応するアップデートが来ていたのでありがたく使わせてもらっている laiso.hatenablog.com Online Learning with O'Reillyの方のサブスクはこれはこれで色んな洋書を読めて便利だったので年間契約に移行した

メインエディタをVSCodeに乗り換えた

2023年のVS Code x GitHub Copilot関連の圧倒的進化速度を目の前にしてこれは第一エディタにしとかないと色んな機能がキャッチアップできないなと感じたのでJetBrains系から乗り換えた

ただしPHPのコーディング環境はPhpStormの方が快適なので、Laravel系の開発をする時だけ使っている

しかしXcodeでSwiftを書いている純iOSエンジニアたちは、サードパーティプラグインがあるとはいえ、このままVS Code x GitHub Copilot並の開発者体験に合流することはないんだろうか、というのがちょっと気になっている

(またはそれは自分の過小評価でXcode単体で充分足りる?)

AndroidからiPhone 15 Proに乗り換えた

XiaomiのAndroid端末を2年ほど使っていたので、2年ごとにiPhoneとAndroid端末を乗り換えるルールにしたがってiPhone 15 Proに乗り換えた laiso.hatenablog.com いっちょWear OSアプリ開発をはじめるかと購入したGalaxy Watch5がiOSとペアリングできなくてモチベーション下った laiso.hatenablog.com

OSSへの寄付

aquaskkに加えて、ずんだもんボイスでお馴染のVOICEVOXへの寄付をはじめた。

VOICEVOXは経済的価値を生み出している割に明かに資金流入の足りてないプロジェクトであるのでもっと支援者が増えてほしい hiho.fanbox.cc

2023年にやりたかったこと

去年に「GoやGraphQLやモバイルアプリ開発を勉強しとかな」と書いたけど、その時間を全部ChatGPT関連に流した感じ

これについては「次の技術選定で無理矢理ねじ込む」とか「案件を獲得して実践する」などでコミットメントを達成しようという気はなくて、自分の正確では「やらなかったということは必要なことではなかった」と結論付けることになった

一方「AI系の何かをやりたい」という目標はたぶん満たされており、「大規模フロントエンド開発の経験」は行動したいがうまくいかない、ぐらいの塩梅にあるのでストレッチゴールとしては丁度よかったのではないか

ということで次の目標を立てることにします

2024年にやりたいこと

LLMを活用したアプリケーションを開発する

せっかく2023年にいろいろキャッチアップして今までなかった知恵がついたので、これを使って個人でアプリケーションを作って公開したい

今のところ文章執筆や構成を自動化するアウトラインプロセッサーと作りたいと思っているけどマイナージャンルなので、それよりよいアイデアがあったらそっちに切り換えるかもしれない

技術書を書く

オライリーのサブスクでブラウザで本を読んでいるうちに「あれこれってブログでは?」という気分になってきて、技術書がブログみたいなもんなら自分にも書けるかもと思えてきた

今まで技術書というのは長い長い長期プロジェクトをひらすら続けないといけない上に書いたものを公開できないイメージだったのだけど、オライリーのEAP版とかPEAKSのような先に売る形態もあるし、コンテンツをWebに置いて販売も自分でするという方法でなんとか達成できないかと考えている

先のLLMを使った自動化はライターやエディター個人の能力を拡大するものだと思っているので、アウトラインプロセッサーを作るという目標ともリンクしている

とりあえず士気が上ってちゃんとした文章書くぞという気になり「理工系のためのよい文章の書き方」や「数学文章作法」を先日読んでいた

ニュースレターを配信する

ジャンルは全然決めていないんだけど読者を募って定期的にメール配信するようなコンテンツを作りたい

これにはsubstack.comやnote.comなどの色んなプラットフォームがあるんだけど、自分はGitHub Sponsorsの機能を使って運用したい

スポンサー募集ページは以下に作ったんですけど、今後コンテンツを発信していく際に宣伝しようと思うのでよかったら参加してください

github.com

動画を作る

VOICEVOXを触っていたことと関連するんですけど、スクリーンキャストや技術解説の動画を作ってみたい

これは技術書で書くような内容をさらにマスな層に届けるために必要なことだと思っていて、尊敬するプログラマーであるDHHやKent C. Doddsはよく考えたら動画活動を熱心にやっているのでどこにそんなモチベーションが? というのを昔から気になっていた

とくにKent C. DoddsはRemixを離れプログラマー界のバズレシピみたいなチームを自分たちで作り高額動画教材(現為替レートで17万円)を売っているので、どういう動機でこの活動をしているのか気になっている

事業を作る

今まであげた「アプリ開発」「技術書」「ニュースレター」「動画」すべてにつながることであるんだけど、それらを金銭の発生する事業に発展させないと深い取り組みにならないなと思っている

「新技術を覚えるために副業で請け負い開発をする」などを近い動機かもしれない

それはそれで責任を伴うからプライベートでやるには重いことなのかもしれないが、今まであまり意識したことがなかったのでやっていきたい