0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

プログラミング雑記 2025年11月3日

Last updated at Posted at 2025-11-02

本日も、ネットに流れるトピックから個人的に興味を引かれたものを拾っていきます。

私は最近エンジニアの国語能力、言語化能力をどのように向上させていくかが大変気になっています。結局仕事は一人では行えないので、どのような仕事であれ他者とのコミュニケーションが重要です。それはITエンジニアでも全く変わりません。話し言葉であれ、文書であれ、言葉を紡いで相手に説明して納得して貰う必要があります。そのためには、語彙力、修辞、論理、倫理、さまざまな要素を組み合わせて、自らの言葉を紡いでいく必要があります。

この記事への感想等コメントで頂けるとありがたいです。

ポッドキャスト版

忙しい方向け要約

Qiitaの「プログラミング雑記 2025年11月4日」では、ネット上の話題から興味深い技術情報をピックアップしています。主な内容は以下の通りです。

まず、Cloudflare社内でGoによるHTTP/2クライアントが「ENHANCE_YOUR_CALM」エラーで切断される事例が紹介されています。原因はResponse Bodyを未読のままCloseしたため、余分なRST_STREAMやPINGフレームが多発したことにあり、解決策としてBodyを必ず最後まで読み取ることでエラーを防げると述べられています。GoでHTTP/2を扱う際はこの点に注意が必要です。

次に、Medium記事より「Goがクラウド時代の標準言語となった理由」が説明されています。Goはシンプルで信頼性が高く、高速なビルドやクロスコンパイル、堅牢な標準ライブラリを持ちます。コンテナやクラウド基盤で広く採用されており、技術選択の際に「サプライズのない退屈さ」が決め手であることが強調されています。開発・運用両面での安定性も高く評価されています。

最後に、「Goのメモリモデル」についての解説記事から、happens-before規則や同期ポイント(チャネル、Mutex、WaitGroup、Once、atomic操作)に関する詳細、スタック・ヒープとエスケープ解析、GCの仕組み、ゴルーチンのメモリ所有、sync/atomicの低レベル同期、メモリリオーダリング、組み込みツールの活用、ありがちな落とし穴、シニア開発者視点の重要性がまとめられています。Goのメモリモデル理解が安全かつ高性能な並行設計の基礎であり、安定したプロダクションコードにつながると結論づけられています。

全体を通して、Go言語の運用・設計・内部動作について実践的かつ理論的解説がなされ、クラウド/並行処理時代に求められる知識や思考が凝縮された内容です。

プログラミング

Go言語

概要:

Cloudflareは、社内のGo製HTTP/2クライアントが頻繁なPING送信により「ENHANCE_YOUR_CALM」エラーで接続を切断される問題に直面しました。原因はレスポンスBody未読のままCloseしていたことで、不要なRST_STREAMとPINGフレームが多発していました。解決策として、Bodyを必ず全て読む(io.Copy(io.Discard, resp.Body))ことで、エラーと無駄なフレーム送信を防げることが判明しました。GoでHTTP/2を使う際はBodyを確実に読み取る実装が推奨されます

感想:

Go言語でのHTTP/2運用時に発生する「ENHANCE_YOUR_CALM」問題について、原因究明から解決方法まで詳しく解説されていて非常に参考になりました。特にBodyを正しく読み切る重要性や、実際のトラブルシューティングの流れが具体的で、同様の課題に直面するエンジニアにとって大変有益な内容だと感じました。Go開発者としても、今後意識したいポイントです。


概要:

Go言語はクラウドの発展とともに標準的な選択肢となりました。その理由は、シンプルで信頼性が高く、I/O処理や並行処理に強く、運用において「退屈さ(サプライズのなさ)」が重要だったからです。小さなバイナリ、高速なビルド、容易なクロスコンパイル、堅牢な標準ライブラリなどが特徴です。コンテナ技術や各種クラウド基盤の基盤技術で数多く採用され、開発・運用効率や人材確保にも寄与しました。クリティカルな用途での「安定した平凡さ」がGoの勝因です。

感想:

Go言語がクラウドの主役となった背景や理由が非常に納得できました。特に、シンプルさや並行処理の強み、運用現場での「いい意味での退屈さ」が技術選択に大きく影響している点が印象的です。実際に現場でもGoの堅実さや扱いやすさを感じていて、クラウド時代に最適な技術だと改めて実感しました。開発・運用両面での信頼性の高さが、今後もGoの支持につながると思います。


概要:

このMedium記事「Inside Go’s Memory Model: What Every Senior Dev Should Know」は、Go言語のメモリモデルに関する高度な技術解説です。主な内容は以下の通りです:

  • happens-before規則:Goのメモリ操作の可視性を規定し、異なるゴルーチン間でデータ競合が起こる理由と、正しい同期の必要性を解説。
  • 同期ポイント:チャネル送受信、MutexのLock/Unlock、WaitGroup、Once、アトミック操作など、Goが保証する同期方法を紹介。
  • スタック・ヒープとエスケープ解析:変数がどこに割り当てられるかと、その決定がパフォーマンスやGCコストに与える影響を説明。
  • ガベージコレクタの仕組み:Goのマーク&スイープGCの特徴、stop-the-world時間の短縮、GCチューニング方法を解説。
  • ゴルーチンとメモリ所有:各ゴルーチンは独自のスタックを持つが、ヒープは共有されるため同期が不可欠。
  • sync/atomicによる低レベル同期:アトミック操作は高速かつメモリセーフだが、通常の読み書きと混合すると未定義動作になることに注意。
  • メモリリオーダリング:Goランタイムやコンパイラによる最適化と、happens-beforeを守る重要性。
  • デバッグ・検証ツール:pprofやMemStatsなどの組み込みツール活用方法を案内。
  • ありがちな落とし穴:同期のない構造体共有やグローバル状態のタイミング依存など、上級者でも犯しやすい失敗例を列挙。
  • シニア開発者の視点:Goのメモリ内部を深く理解し、スケールする堅牢な並行システムを設計する姿勢の重要性を強調。

まとめとして、Goのメモリモデルは単なる仕様ではなく、「安全性とパフォーマンスが両立する並行設計の約束」であり、これを理解することで安定したプロダクションコードが書けるようになると結論付けています。

感想:

Go言語のメモリモデルについて、実践と理論の両面から非常に分かりやすくまとめられた素晴らしい記事でした。happens-before規則や同期ポイント、GCの動作原理など、普段意識しづらい内部動作まで踏み込んだ内容で、現場で即役立つ知識が多かったです。特に、シニア開発者として並行処理の安全性や性能を担保するための考え方に共感しました。Goで堅牢かつスケーラブルなシステム設計を目指すなら必読の内容だと思います。


GitHub

GitHub主催の年次ゲームジャム「Game Off 2025」が開催。テーマは「WAVES」で、物理・デジタル・感情など自由な解釈が可能。期間は11月~12月1日まで、GitHubリポジトリにゲームを公開しitch.ioで提出。個人・チーム参加やAIによる開発もOK。審査は参加者同士の投票で、結果発表は2026年1月10日。初心者向けのゲームエンジン紹介やフォーラムも用意されているため、誰でも気軽に参加できるイベント。


概要:

この記事では、GitHub Organizationを安全に運用するための最新機能として「Enforce SHA pinningの有効化」と「Owner権限ユーザーの削減」について解説しています。SHA pinning強制はサプライチェーン攻撃リスク軽減に有効ですが移行には事前調査が重要です。また、多くのOwner権限を持つ現状から必要な権限だけを付与する運用へと見直され、Terraformによる権限管理も紹介されています。


設計

感想:

この記事は、現場で発生したサービスの表示速度悪化という課題に対し、CDNキャッシュやSWRなどを駆使して着実に改善を実現した点が非常に印象的でした。裏側で膨大なアクセスロスを防ぎつつ、UXの向上に成功した取り組みが実践的で参考になります。可視化・モニタリング体制の強化、独自指標(接続中断率)の導入など、データに基づいたアプローチも素晴らしいです。継続的な改善を重ねる姿勢に、エンジニアリングの本質を感じました。


UI/UX

概要:

AI技術イベント「POST Dev 2025」でusagimaru氏がアラン・ケイ氏に、現在主流のチャット型AI UIが「モードレス」と逆行する体験ではないかと質問。ケイ氏は「現在のAIは知的ではなく、単なる規模拡大は失敗に終わる」と回答し、道具やシステムは「本当に必要な支援」に注力し、過剰な自動化を避けるべきと指摘。AI技術は人間の知的活動を過度に置き換えるのではなく、支援するためにデザインされるべきだとの警告を含んでいるとまとめられている。


AI

Google

GoogleのAIツール「Mixboard」が日本を含む180か国以上で利用可能に。テキストや画像、Geminiベースの画像生成AI「Nano Banana」を活用し、アイデア整理や発想支援ができる。ボードサイズが4倍に拡張され、日本語入力も対応。


LangChain

要約:
LangChainチームによる新ツール「DeepAgents CLI」の紹介記事です。DeepAgents CLIは、ターミナルから直接カスタムAIエージェント(記憶を持つエージェント)を作成・実行できるCLIツールで、以下の機能が特徴です。

  • プロジェクトのファイルの読み書き・編集
  • シェルコマンドの実行(ユーザー確認あり)
  • ウェブ検索やAPIへのHTTPリクエスト
  • セッションをまたいだ永続的な記憶(メモリ)管理
  • 視覚的なTODOリストによるタスク計画

インストールは pip install deepagents-cli でOK。Anthropic ClaudeやOpenAIに対応しており、APIキーを設定したらCLIを起動できます。AIエージェントはユーザーの指示(例:「src/utils.pyに型ヒントを追加」)でファイルを自動編集し、変更差分を確認・承認できる仕組みです。

特に「記憶」機能が強力で、エージェントは /memories/ ディレクトリに知識を保存・参照し、一度覚えた情報を次回以降も活用可能。プロジェクトごと・役割ごとに複数エージェントも管理できます。CLIからエージェントの作成・リスト表示・リセットも可能です。

始め方や詳しい使い方はGitHubや公式ドキュメント、YouTube動画も案内されています。

感想:

独自の記憶管理が特徴ですね。ただ、使用に当たっては従量制のAPIを使うので、そこはお財布的には厳しいというか、精神的にあまりよろしくないかも。


論文・その他

要約:

このSpeaker Deck「戦えるAIエージェントの作り方」では、Sakana AIの秋葉拓哉氏が、専門家レベルの実用的AIエージェントの設計手法を解説しています。

  • 主題: LLMとツールを組み合わせるだけでは実戦的なAIエージェントにはならない。人間専門家と同等の力を持つには何が必要かを追及。

  • キー要素

    • 推論時スケーリング:推論段階で計算量を増やし、Repeated Sampling(大量呼び出し)、Sequential Refinement(継続的改善)、AB-MCTS(多様性とフィードバック活用)などの最適アプローチを紹介。
    • ドメイン知識の活用:プロンプト設計や正しいワークフロー記述、評価ルーブリック構築で実務の精度を上げる。
  • 事例紹介:

    • AIが査読論文を執筆した実績(ICLR’25)。
    • 自動最適化アルゴリズム設計(ALE-Agent、NeurIPS’25)。
    • 自己進化型エージェント(Darwin Gödel Machine)。
    • 実プログラミングコンテストで専門家と同等のパフォーマンス達成。
  • まとめ:

    • 専門家に匹敵する強力なAIエージェントの鍵は「推論時スケーリング」と「ドメイン知識活用」、そして実例に学ぶこと。

約400文字要約:専門家レベルのAIエージェントを実際に構築するには、推論時の大量計算投入(Repeated Sampling、AB-MCTSなど)や専門的プロンプト・評価基準設計などドメイン知識の活用が不可欠。最先端手法(AI Scientist論文執筆、ALE-Agentなど)や国際コンテストの実例を示し、単なるLLM+ツール連携ではなく「専門家にも匹敵する実戦力」をもつエージェント作りの実際と展望を総括しています。

感想:

専門家レベルで戦えるAIエージェントの構築には、単なるLLM+ツールの組み合わせに留まらず、推論時スケーリングやドメイン知識の活用、そしてワークフローや評価基準の工夫が重要であると実感しました。最近の事例や実際の競技結果も豊富で、AIエージェント開発の最前線がよく分かる資料です。



AIエージェントのベースLLM31種を約19万件の攻撃データで安全性評価した調査。grok-4やclaude-opus-4-1(推論オン)が特に安全。モデルの大きさや推論有無で耐性に違いがあり、用途ごとの適合が重要。


概要:

DeNA社が社内で運用するAIヘルプデスク「Findout」のRAG(情報検索拡張生成)精度改善の取り組みについて解説する記事です。

要点は以下の通りです。

  • DeNAは「AIオールイン」戦略のもと、AIによる業務効率化を進めており、まず社内問合せ対応の自動化に着手。
  • IT領域の質問(操作質問・トラブルシュート)に対するAI回答の精度100%を目標に設定し、回答精度向上のための取り組みを開始。
  • RAG精度向上に向けて、評価基準の明確化(AI/人間双方による評価)、テストケース作成・反復検証、原因分析(ナレッジの網羅性・質・構造化など)をステップ毎に実践。
  • 改善施策として、学習対象ナレッジの厳選と質向上、テストケースによる継続的データ検証を実行。
  • これらの取り組みにより、正答率は従来の約50%から2025年10月時点で80%に向上。担当者の負担軽減やユーザー体験向上に寄与。
  • 成功の鍵は「評価サイクルを高速で回し、質の良いナレッジを選定・構造化すること」であり、同様の課題を抱える組織にとっても再現性のある改善プロセスとされている。

【まとめ】
RAGを活用した社内AIヘルプデスクの精度改善は、評価基準の設計、ナレッジの質・選定、テストと分析による高速改善サイクルの実践が核心。DeNAでの事例は、社内業務効率化AI導入・改善の具体的指針となる内容です。

感想:

AI活用の現場でRAGの精度向上に徹底して取り組み、実際に成果(正答率80%達成)を出している点が非常に参考になります。現場主導の改善サイクルやナレッジ設計の工夫は、他社のAI導入プロジェクトにも応用できそうだと感じました。


概要:

長文から欲しい文だけを抽出する際、LLM(大規模言語モデル)は高コスト・高時間になりがちです。著者は「fast-bunkai」というRust製日本語文境界判定ツールを活用して、文章を文単位に高速分割→id付与→LLMで該当id範囲のみ指示抽出する手法を紹介。これにより出力トークン量と処理時間を大幅に削減でき、実務での効率化とコスト低減を実現しました。

感想:

RAGの前処理として使えるのでは?

クラウド

Azure


2025年11月1日現在のMicrosoft認定資格の提供・改定状況まとめ。新たに「Agentic AI Business Solutions Architect」資格と試験AB-100が提供開始。Dynamics 365やMicrosoft 365など複数のFundamentals資格が2025年12月31日に廃止予定。AzureやData&AI分野のいくつかの資格・試験が最新内容へ改定され、11月に予定されている改定も複数公表。AIやセキュリティ関連のスキル強化も紹介されています。


エンジニア

国語

概要:

このブログ記事は、エンジニアや学習者が「なんとなく不安」「なんか怖い」「なんとなく気が進まない」といった曖昧な感情によって行動を止められる構造を解剖し、その壁を打ち破るための実践的方法を述べています。記事では、行動できない理由が「恥をかきたくない」「完璧を求める」「他者の目を気にする」「才能がない」といった言葉に集約され、これらが言語化されず放置されることで不安や恐怖が肥大化すると指摘しています。

著者は、自分の不安や停滞理由を具体的に言葉にすること(言語化)が、動き始めるための最初の一歩であり、不安や恐怖を現実的な対策可能なものへと縮小する技術だと強調。また、失敗や不完全でもまずは小さな行動を起こすこと、遊び心や好奇心を持ってチャレンジすることが成長や習慣化につながると説いています。完璧を求めるより、具体的な課題に向き合い、一歩でも多く前進することが重要とまとめています。

感想:

前にも書きましたが、言葉というものができてから人間は言葉で考えます。そのため、考えて行動に移して行くには言語化する事が必要で、筆者の考察にだいたい同意です。この人間の性質のために言語化するためのパーツ、語彙力が必要ですし、言葉にする能力、文章力も良い思考、その先の行動のために必要だと考えています。まずより良き人間であるためには国語力を身につけましょう。

AIとお仕事

概要:

このスライドは、AIがコードを書いてくれる時代における「新米エンジニアが何をすべきか」をテーマにしたプレゼン資料です。主なポイントは以下の通りです。

  • AIによるコーディングが当たり前になることで、新米エンジニアが「手を動かして学ぶ」従来の成長ルートが変化する可能性を提起。
  • 顧客が求めるのは「価値」であり、技術そのものではなく「役に立つもの」をAIを活用して効果的に生み出すべきと強調。
  • AIを役割分担してチーム化し、人間がそれを指揮・橋渡しする役割になる構図を提示。
  • 人間には「説明責任」や「遂行責任」が発生し、成果物の価値やプロセスの説明能力が重要となる。
  • 新米エンジニアは「AIが書いたコードを説明できる知識」、「コーディング以外の工程への理解・貢献」、「説明力」を磨くことがキャリア形成につながると提案。
  • IPA試験区分などの専門性(ITストラテジスト、システムアーキテクトなど)も参考に、多様なスキルを学ぶことを推奨。

まとめ:AI時代のエンジニアは、単なるコーディングスキルだけでなく、「価値を説明する力」や「プロジェクトの全体像を把握する力」が求められ、キャリアの方向性も「Individual Contributor(IC)」と「Engineering Manager(EM)」で分岐する可能性がある、という内容です。

感想:

結局やることは変わらないと思うが、実装技術よりもより概念的な技術、設計力、開発プロセスに対する理解、ドメイン知識、それらを身につけていくためのメタ学習といったものが重要になっていくし、先ほどの国語力にもつながるが、説明能力、AIが出力したものへの理解力がより重要になると思う。


概要:

AIアプリエンジニアの肩書きが急増しているが、LLMや生成AIツールを使うだけで仕組みや理論への理解が浅い人が多い。簡単にMVPは作れても、実際に価値を生むプロダクトに育てるにはモデルやプロンプト設計、評価指標の定義、改善サイクル設計といった知見が不可欠。しかし現状、成果物重視・ツール依存で“使える”AIを作れるエンジニアは少数。本当に役立つAI開発には、基礎技術の理解と明確な評価軸、継続的な改善が必要だと提言する。

感想:

LangChainを使ったことがあるだけで、そう名乗れてしまう傾向はあるとおもう。ただ、実際にやってみると思うが、自分の仕事に何か付加価値を付けようと思えば、QiitaやZennなんてレベルではなく、洋書の専門書や論文を探して読んでいく必要がある世界だし、アンテナの感度を上げて、情報を自分から拾っていかないと、AIアプリエンジニアと名乗ってやっていくのは難しいと思う。


老眼

メガネは大事。


OS

macOS

macOS 26 TahoeでElectronアプリが原因でGPU使用率が上昇し、システム全体の遅延を引き起こす問題が発生しています。この問題を検出するスクリプトに、処理高速化や実行中アプリの表示機能が追加されました。ただし、一部アプリは独自パッチで対応しているため、影響の有無はアプリごとに確認が必要です。


Appleは、Liquid Glassデザインに対応したmacOS/iOS/iPadOS/watchOS用アイコン作成アプリ「Icon Composer v1.1」をリリースしました。macOS 15.3以降対応で、Xcode v26.1もサポートしています。


業界動向

感想:

欧州ではMicrosoft Officeから脱却し、openDeskやLibreOffice等オープンソースへの移行が進んでいる背景や、その理由として「デジタル主権」やGDPR対応が挙げられているのが印象的でした。対照的に日本は互換性や慣習の壁もあり、現状ではMS依存から抜け出せていません。欧州の流れは、日本の今後にも大きな示唆を与える内容だと思います。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?