YAPC::Kyoto 2023以来2年越しに参加してきた。だいぶ遅くなってしまったけど、今年のうちに記録しておきたい。
YAPC::Kyoto 2023hexa-antenna.hateblo.jp
京都は個人的な事情でたびたび訪れていたけれど、福岡は初めての土地。知らない街を訪れるという体験も楽しみながら、2日間を過ごすことができた。
聴講したトークと感想
HTTP Message Signatures ― HTTPクライアントの身の証を立てる
不特定多数からリクエストを受け付けるが、そのリクエストが誰からのものか、ということは知りたい。そんなケースもあるんだなぁ、と思っていたのですが、実はとても現代的なテーマ。なぜなら、特定の許可を受けたBotからのリクエストは受け付けるが、その他のBotはお断りする、というようなユースケースがこの生成AI時代に生まれているため*1。
Introducing RFC9111
RFC2連発!こちらはキャッシュに関する新たな規格。ちょうど仕事でキャッシュと向き合っていたところだったので興味があった。既存のRFC7234にあった曖昧さを解決してくれる素敵なやつなのだが、今のところあまり広まっていないとのこと。曖昧なまま回っているので、今更厳格化したい需要があまりないらしい。
CDNがキャッシュをするかどうかの判定フローを紹介いただけたのだけど、これが面白かった。「迷ったらキャッシュする」という感じらしい。キャッシュされて困るようなものを配信するときはご注意を。
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
terraformとの付き合いは難しいと思っている。こうした難しさについて、そもそもアプリケーションコードとインフラコードでは性質が異なることが一因ではないかという仮説が提示されていて、面白かった。具体的には、アプリケーションコードは処理に関心があり、インフラコードは状態に関心がある。結果、インフラコードでカプセル化を頑張ると依存関係が見えなくなり、扱いづらくなってしまうとのこと。
「データ無い!腹立つ!推測する!」から「データ無い!腹立つ!データを作る」へ ― ゼロからデータを作り、チームで育てられるようにするまで
トークとしてはやはり無類のもので、到底真似できないな、と慄きながら楽しんでいた。きちんとデータを作ることの重要さは表題の通りだけれど、データを作ることの大変さも丁寧に語られていてよかった。泥臭い戦いの片鱗が語られていたけど、きっともっと込み入ったケースもあるんだろうな……。
なぜThrottleではなくDebounceだったのか? 700並列リクエストと戦うサーバーサイド実装のすべて
ちょっと前に非同期処理関係の仕事をしていたので、関心を持って聞きに行った。ジョブの性質がだいぶ違ったので、Debounceを使えばよかったな、という感じにはならなかったけれど、今後の参考としてはとてもよさそう。現実のユースケースがムズいという話、いろんなところでありますよね……*2。
「バイブス静的解析」でレガシーコードを分析・改善しよう
開発プロセスの改善では、よく「斧を研ぐ時間が無い」みたいなアナロジーが使われる。そういうとき、機械に斧を研がせればいいじゃん、というのが骨子のトークだなと感じた。AIに丸投げではなくて、AIの生成したコードによって開発プロセスを改善することで、最低限のメンテナンス性とアカウンタビリティを確保しつつ、必要工数は最小限にするという発想は、継続的改善に向いていそう。
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
技術史のような分野が好きなので、こういう話題は大好き。急に社会に出てきたものが学術的には連綿と研究されてきたんですよ、というような話はいいですね。
人間はOODAループで仕事をしてるんだから、AIもワンショットじゃなくてループ回させればいいじゃんという話は非常に納得感があり、なんなら昔自分が創作で考えた話でもあった。しかし、ロボット工学などの分野で昔から発想がありそうな話題でもあり、それが近年まで生成AIの分野で試されなかったのは何故だろう?というのは不思議なところ。何かしらの技術的制約があった?
SREのためのテレメトリー技術の探究 — モニタリングSaaS開発からAIOps・AIインフラまで by yuuk1
お話自体も面白かったのだけれど、「後から振り返ると、どの研究も同じ課題を別の視点から見る研究をしていた」という話が印象的だった。以前読んだ以下の本でも、著者の方が同じことを書かれていたため。人間、ある種の初期衝動的な問題意識があるものなのかもしれない。
ARA へ捧げる鎮魂歌(レクイエム)
この辺の話、小耳に挟みつつあんまり関わらない領域だったので、面白かった。高邁な理想を掲げて立ち上がった大きなプロジェクトの挑戦と蹉跌。しかし、元となる課題は残っているはずで……。今後の動向が注目されそう。
旧から新へ: 大規模ウェブクローラのPerlからGoへの置き換え
弊社CTOの発表。HTTPリクエストを大量に受ける側、ではなくて、大量に送る側というのは未経験の世界なので、いろいろ普段考えていることと違う部分に気を遣っていて面白かった。
Perl の生きのこり
若かりし頃の自分にとって、Perlというのはなんか箱庭諸島ってやつとかBBSってやつとかを自分のホームページに置こうとするとダウンロードしてきてパーミッションをあれこれしたり、ファイルの先頭行にある # /usr/local/bin/perl みたいなやつを書き換えたりするもの*3だった。そんな時代からの話を技術的視線から聞けたのは面白かった。
Rack、PSGI、WSGIなどのインターフェイスを統一することで、結果として多様性が生まれるという指摘も興味深い。これは、必ずしもソフトウェアエンジニアリングのスコープに閉じた話ではないような気がする。
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩ポイントとその対策
フロントエンドにうっかりアクセストークンとかを埋めてしまうようなタイプの「機密漏洩」はイメージしやすいけれど、この発表はまた別のもの。開発中の新機能のコードをいかに隠すか、というのは別の観点。
読む技術・書く技術・伝える技術 - 15年続けて分かった持続可能なオープンソース開発
長く同じことをやり続けるというのはそれだけで偉業。それを実現するには。こういうの、「腕力」「気合い」「好きだから」みたいな話に帰着しがちだと思うので、貴重だと思う。いかに続けるか、という話は、先日のYAPC::Fukuoka 非公式リジェクトコン 2025でも id:magnoliak さんが言及されていた。
ステートレスなLLMでステートフルなAI agentを作る
人間とコミュニケーション可能な機械というのは個人的に関心が強いところなのだが、諸事情で終盤しか見られなかったのが痛い。昔ChatGPTに創作キャラクターのロールプレイをさせてみたことがあるのだが、だんだん出来の悪い二次創作みたいになって困ったことがあった。自分自身のロールプレイに影響されてどんどん特徴を誇張したキャラクターになっていく*4、という感じのことが起きていたと思っている。そのあたり、同じことに困られたりしなかったのか、気になっている。





