5月の読書リスト
今月読んで面白かったものをまとめた5月版をお届けします。先月の記事はこちらからどうぞ。
またもや侵害されたnpmパッケージ
また今月もサプライチェーン攻撃が相次ぎました。複数のTanStackパッケージが侵害されるという「Mini Shai-Hulud」攻撃が発生しました。Tanner Linsley氏は、GitHub Actionsの設定の脆弱性を突いてどのように攻撃が行われたかを説明する詳細なポストモーテムを公開しています。その後も、見つけたnpm認証情報を利用してパッケージ間で自己複製する同じ認証情報窃取スクリプトによって、317件のnpmパッケージが侵害されました。
サプライチェーンのセキュリティを強化するための対策を講じる重要性を改めて強く感じさせられます。私たちはすべてのプロジェクトを、最近リリースされたpnpm v11にアップグレードしました。このバージョンではminimumReleaseAgeがデフォルトで1日に設定されています。こうした攻撃の多くはすぐに発見されるため、ある程度のバッファ期間を設けることで防御に役立つはずです。
同じくセキュリティ関連で、今月Varlockという興味深いツールを見つけました。エージェントに利用可能なシークレットが何であるかのコンテキストは与えつつ、実際の値へのアクセスは防ぐというものです。万が一こうしたパッケージをpullしてしまった場合でも、シークレットが平文でマシン上に残っていないようにしておくことで、認証情報の窃取攻撃から身を守ることにつながります。
モデルの学習とOpus 4.8
Anthropicは、アライメント学習のアプローチの変更についてのブログ記事を公開し、倫理的な選択の背後にある原則や推論をClaudeに学習させることで、エージェントとしてのアライメントが向上したことを詳しく説明しています。私たちが作成するスキルについても、望ましい振る舞いの具体例を列挙するだけでは、エージェントが未知の状況に遭遇した際に不十分であることを考えると、どのように応用できるか興味深いところです。
OpenAIは「Where the goblins came from」というユーモラスな記事を公開しました。「nerdy(オタクっぽい)」という性格特性を学習させたところ、意図せずクリーチャーの比喩に高い報酬が与えられてしまい、最終的にはゴブリンについて話さないように指示するシステムプロンプトを追加しなければならなくなったという内容です。
Anthropicは月末にClaude Opus 4.8もリリースしました。4.7のリリースからわずか1か月強での登場です。
エージェントによる開発
Addy Osmani氏は長時間実行されるエージェントに関するさまざまな戦略についての記事を公開しました。ただ、本番コードの記述にこの戦略を用いることについては、私はまだ懐疑的です。
Birgitta Böckeler氏によるMaintainability sensors for coding agentsは、エージェントの自己修正を可能にするために不可欠な、さまざまなガードレールやチェックについて書かれた良記事です。
Helio Medeiros氏によるDORAメトリクスを使ってAI導入の効果を測定するという記事も読みました。Mintelで私がレトロスペクティブエージェントの構築を通じて体系的に取り組もうとしているアプローチと似ています。
興味深い考察
Mark Erikson氏は、AIコーディングツールに対して懐疑から不安、そして導入へと至った自身の経験を綴った長文の記事を公開しました。
Tuhin Nair氏はシニアデベロッパーが専門性をいかに伝えるかについての記事を書いています。エンジニアがどのように考え、ビジネスの他部門とどうコミュニケーションを取るかについて、共感できる良い指摘がいくつかありました。迅速な実験のための「speed」システムという提案は魅力的に映るかもしれませんが、実際に十分なガードレールをどう設けるのか、すでに顧客に提供してしまった「speed」版を解きほぐすのにどれだけ手間がかかるのかといった詳細が抜け落ちています。
Lalit Maganti氏は最初の質問に答えないことについての記事を公開しました。プラットフォームチームで働いている人や、他のエンジニア向けのツールを開発している人なら、誰もが共感できる内容だと思います。
ウェブプラットフォームとフロントエンド
ChromeチームはDeclarative Partial Updatesについての記事を公開しました。この提案は、順不同のHTMLストリーミングと、より効率的なHTML挿入をウェブプラットフォームの一部にしようという試みです。端的に言えば、islandsアーキテクチャをウェブの第一級市民にしようというものです。
Storybook 10.4がリリースされました。個人的に最も興味を引かれたのは、TanStack Reactの正式サポートが追加されたことです。
Yangshun Tay氏はフロントエンド開発の変化について、フロントエンドデベロッパーが学習や成長においてどこに注力すべきかという提言とともに書いています。
今月はD2というツールも見つけました。これまでブログの図にはMermaidを使ってきましたが、カスタムスタイルで苦労していたので、D2は試してみたい強力な代替手段に見えます。
その他の興味深いテック記事
How 2004 RuneScape fit a multiplayer RPG into 56k dial-upは、2004年当時のRuneScapeクライアントが、ブラウザ上のJavaアプレットからいかに効率的なクライアント・サーバー通信を実現していたかを深掘りした技術記事です。私の初期のゲームの思い出の一つであり、ウェブの可能性の大きさを初めて知ったきっかけでもあるので、興味深く読みました。
Netflixの技術ブログはリアルタイムサービスマップの構築についての記事を公開しました。技術的な実装の詳細は薄く、かなりAIによって生成された印象はあるものの、アプローチ自体は興味深いものでした。仕事でエージェントにシステムをまたいで横断させようとしている私にとっては身近な話題で、システム間の依存関係がいかにどこにも明確に文書化されておらず、どれだけの知識が人々の頭の中にしかないかを痛感させられます。
最後に、Googleのブログによるコードレビューの返信にコンテキストを加えることについての短い記事です。レビューでのフィードバックにどう対応したのか、その方法や理由について背景を添えて返信する方法について、とても役立つガイダンスが書かれています。
記事をランダムに読む