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年12月8日

Last updated at Posted at 2025-12-07

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

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

ポッドキャスト版

プログラミング

Go言語

この記事は、Go 1.25 で実験的に導入され、1.26 で本格導入が期待される encoding/json/v2 の変更点を、公式テストコード v2_diff_test.go をもとに 15 項目で解説したものです。 主な内容は、JSONタグの大文字小文字をデフォルトで区別すること、omitempty が「Go の空値」ではなく「JSON の空値」を基準に省略するよう変わること、string オプションが数値専用となり複合型内の数値にも再帰的に適用されること、nil スライス・マップを null ではなく [] / {} として出力することなどです。 そのほか、固定長配列の長さ不一致をエラーにすること、[N]byte を Base64 文字列として扱うこと、HTML エスケープの廃止や無効な UTF-8・重複キーをエラー扱いにすること、null や複合型のマージ動作の整理、time.Duration の文字列表現対応、公開フィールドを持たない構造体の marshal をエラーにする変更などが紹介されており、JSON としての正しさ・一貫性・パフォーマンス向上を意図したアップデートであるとまとめています。


この記事は、Go 1.23で導入されたiter.Seqiter.Seq2によるイテレータの基本と、エラーを伴う現実的な反復処理パターンを解説している。 従来のチャネル+goroutineによるアダプタは複雑で非効率だとし、iter.Pull/Pull2を使って「プッシュ型」イテレータをRecvメソッド中心の「プル型」ストリームインターフェイスへ安全かつシンプルに橋渡しする方法を示し、このパターンをスタイルガイドに入れる価値があると結論づけている。


この記事では、Goで「s秒ごと」のように定期実行するワーカーを、処理中タスクをできるだけ壊さずに安全停止(graceful shutdown)させる実装パターンを解説している。 time.Tickerselectで素朴に書くと、タスクがintervalより長い場合にコンテキストキャンセル後も次のタスクが走りうるという落とし穴があり、ticker.C側が選ばれたときにもctx.Err()を必ず確認する実装に修正している。 さらに、タスク完了待機が無限に伸びないよう、タスクを別goroutineで実行し、doneチャネルとshutdownTimeout付きのtime.Afterを組み合わせて、一定時間だけ完了を待ってからキャンセルする仕組みを導入する方法を示している。


本記事は、本番環境でのみ発生する gRPC Federation 利用サービスでの Goroutine 急増とサービス停止問題について、原因特定と対策に至るまでの約2か月間の調査・改善の記録である。
WebAssembly プラグインを単一インスタンスかつロック付き直列実行で評価していたため、プラグイン評価部のロック待ちが集中し、Goroutine が滞留していることが Cloud Profiler や pprof による調査で判明した。 さらに調査を進める中で、ホストからの強制 GC 要求をきっかけにプラグイン内処理がハングし、その結果プラグインインスタンス全体が応答不能になることが示唆され、通信方式の見直しや GC 経路の変更、インスタンス自動復旧(タイムアウト付きフォールバック)などのワークアラウンドが導入された。 最終的な根本原因は、WebAssembly 側でネットワークソケットを扱うために利用していた wasi-go ライブラリの PollOneOff 実装で、unix.Poll に負のタイムアウト値が渡されイベント待ちから復帰できなくなるバグであり、当該ライブラリの修正適用によって問題は解消された。 記事では、初期のプロファイリング結果に既に手がかりが含まれていたことへの反省や、本番環境での pprof 常設やデバッグログのフラグ制御、プロファイル・コアの永続化基盤整備の重要性なども振り返られている。


Python

この記事は、PythonのPyUSBライブラリを使ってUSB接続の光学ドライブにSCSIコマンドを送り、トレイのイジェクトを行う手順を通じて、USBとSCSIのローレベル通信を解説する内容です。 ベンダーID/プロダクトID、エンドポイント、バルク転送などUSBの基礎を説明し、SCSIのSTART STOP UNITコマンドとUSB Mass Storage ClassのCommand Block Wrapper仕様に従ってバイト列を組み立て、Pythonスクリプトで実際にeject動作をさせるまでを紹介しています。


JavaScript

AnthropicによるBun買収、React Server Componentsの致命的なRCE脆弱性、Vite 8 Betaリリースを中心に、最近のJavaScriptエコシステムの主要トピックをまとめた週刊記事です。 BunはClaude Codeチームと連携しつつ独立プロジェクトとして継続され、React/Next.jsにはRSC関連のセキュリティ修正版適用が強く推奨されています。 Vite 8 BetaではバンドラがRollupから高性能な代替実装Rolldownへ切り替わるほか、OxfmtやPrettier 3.7、pnpm 10.24、Ant Design 6、Chrome 143などの各種リリース情報、TypeScript 7 Go実装の進捗、Kubernetes上のNext.js高速化、TypeScriptベースのダイアグラムツールTSDiagramやストリーミングMarkdown向けライブラリstreamdownといった新ツールも紹介されています


Web

本記事は、HTTPがステートレスであることからCookieとSessionがユーザー状態管理に用いられる仕組みと、両者の違いを解説している。

CookieではSameSite・Secure・HttpOnly属性がCSRFや盗聴、XSS対策の観点で重要であり、特にSameSiteの挙動やHttpOnlyの限界など実務で誤解されやすいポイントを整理している。

Sessionはブラウザに保存されるのはsessionIdのみで実データはサーバー側ストアに保持され、有効期限は「ブラウザ側のセッションCookie」と「サーバーストア側のTTL」の短い方で決まること、ストア方式やロードバランサー構成により挙動が変わる点が注意事項として述べられている。


GitHub

MaestroでAndroidアプリのUIテストフローをYAMLで記述し、GitHub Actions上のAndroidエミュレータでPR作成時に自動実行することで、軽微なPRの動作確認とマージを自動化する取り組みと、その拡張としてCursor+Maestro MCPでPR差分からテストケースやテストコードを自動生成する可能性を検証した事例を紹介している。
__

エージェンティックコーディング・仕様駆動開発

この資料は、AI時代の開発ワークフローにおいて、セキュリティとイノベーションのバランスをどう取るかをテーマにしている。

CISOは防御・リスク低減、CTOは生産性や新技術導入に重心があり、両者の視点がずれると攻撃面の「抜け」が生じる点を指摘し、Azure Defenderポータルなどで攻撃面を可視化しつつAIやDevOps、サーバーレスまで含めた防御が必要だと説明する。

また、生成AIにより多くのことが可能になった一方で、データセキュリティやコンプライアンスの重要性が増しており、Microsoft Purview SDKやMicrosoft 365 Copilot/Foundry向けのデータ保護機能を用いて、カスタムアプリや社内エージェントにも一貫した監視・統制を適用するアプローチを紹介している。


git worktreeとClaude CodeなどのAIコーディングアシスタントを組み合わせ、小さなPRの依存チェーンと複数worktree・複数ターミナルを使って並列開発する具体的なワークフローを紹介している。 worktreeの命名・ブランチ規約、OpenSpecでの事前仕様策定、9段階に分割したメール送信機能のPR例、GitHubの自動base切替を活かしたマージ手順などを解説し、stash不要・レビュー効率向上といった利点を示している。


Sansanの情シス部門が、AWS・Google Cloud・SaaSを対象に、Oktaを共通IdPとした横断的な権限管理基盤を再設計した取り組みの紹介。GitHubで抽象化した権限モデルを一元管理し、Slack+Kickflow+EKS上のAPI/バッチで「申請→承認→付与→失効」を統合しつつ、AWS IAM Identity Center・Cloud Identity・Oktaグループ連携で時限権限も含めた共通フローを実現したが、特にGCP周りの可視化やグループ作成のIaC一元化などは今後の課題としている。


AI

この記事は、ClaudeやDeepSeekなど主要LLMの新モデル発表と、Google・OpenAI・AnthropicらによるAGI競争がいよいよ「どう稼ぐか」というマネタイズ競争の段階に入っていると指摘している。 特に、無料で高性能を提供するGeminiや、有料プランでも採算が不透明なOpenAIの状況から、広告やIPO、黒字化戦略など各社のビジネスモデル模索が今後の焦点になると述べている。 また、Claude Codeの計画機能やAIエージェント導入ノウハウ、MCP不要論、S3 Vectors GA、AWS移行事例、重大なReact/Next.jsのRSCバグ、SQL設計やSaaS導入意思決定の記事など、直近のAI・Web・一般テック関連記事をコンパクトにキュレーションして紹介しつつ、医療×AI領域での採用告知で締めくくられている。


Anthropic

AnthropicのEconomic Researchチームは、AIが仕事・生産性・経済機会などに与える影響を実証的に分析し、政策立案者や企業、社会が変化に備えるためのデータと知見を提供している。 その中心となるAnthropic Economic Indexでは、Claudeの利用データを基に、地域や産業ごとのAI採用状況や、生産性向上や自動化の進展などを継続的に測定・報告している。


論文・その他

このnoteは、AIが文章を整えてくれる時代だからこそ、「読む・書く・考える」という人間の思考プロセスがより重要になると論じている。 文章は単語・文・構造の三層が連動した「思考の外在化」であり、読み手は単語のニュアンス、文の構文、全体構造を往復しながら書き手の思考モデルを再構成していると説明する。​

一方で書くことは、読み手がそのプロセスを誤らずにたどれるよう、単語選択・文の流れ・情報構造を精密に設計する高度な行為であり、箇条書きの乱用などは「その場にいた人にしかわからないログ」を生むだけだと批判する。 NotebookLMのようなAIツールは、雑な思考からでも見た目の整ったアウトプットを生成してしまうため、思考の粗さや破綻が隠れ、「これが自分の言いたかったことだ」と錯覚して深く考えるプロセスが失われる危険を指摘する。​

著者は、AIは製造機ではなく「思考の増幅器」であり、入力となる思考と文章の構造が精密であるほどAIがそれを増幅してくれる一方、曖昧な入力は曖昧なまま出力されると述べる。 読む・書く・考えるは本来分離できない三位一体の活動であり、この循環を回すことでしか思考は鍛えられないため、AI時代こそ文章を「整える」能力ではなく「創る」能力が決定的な差になると結論づけている。

感想:
現状のLLMは文字情報の処理に特化されている。マルチモーダルにしても、対象を言語化しないとLLMは類推することができない。この特性のため、使い手の言語化能力と文章能力がAIを上手く使役できるかどうかの分かれ目になっているのは確かだと思う。


クラウド

Azure

2025/12/05 時点での Azure 関連公式情報のうち、GA した Azure Files Premium LRS のゾーン配置と、Microsoft Tech Community・Developer Blogs の主要な新着記事が一覧化されています。 公式ブログや Azure Updates、Tech Community、Developer Blogs などのリンク集として、Azure SRE Agent、MCP 無料ライブ配信、GPT-5.1-codex-max in Microsoft Foundry、Ignite 2025 のセキュリティ新機能、AI Dev Days などがピックアップされています。


OS

macOS

Apple Silicon向けターミナルベースのシステムモニタ「mactop」がv0.2.4でApple Neural Engine(ANE)使用率表示を再実装し、powermetricsが正式なANE使用率を提供していないため、ANE最大消費電力を8Wと仮定した擬似的な使用率として表示する仕様になったほか、macOS 12.3以降のApple Silicon MacでHomebrewからインストール可能になったことが紹介されています。


Logi Options+ v1.98は、Adobe Photoshop 2026対応の追加やMXクリエイティブ・コンソール/アクション・リングの不具合修正、macOS 26 Tahoeでのウェブカメラやマイク設定問題の修正などを行うアップデートです。 一方で、macOS 26 Tahoe環境で一部Webカメラのプレビューが約5fpsまで低下する既知の問題は未修正で、ユーザーに注意喚起されています。


エンジニア

プロジェクト管理

この記事は、タスク遅延の背景にある「見えていない追加タスク」や見積もりの甘さを問題視し、それを解消するための具体的な進捗管理手法を紹介している。 タスク着手後に発生する調査・追加作業や、AI実装に伴う要件漏れなどが最終日に集中し、「ほぼ終わり」が続いたまま期限超過する構造を指摘する。​

対策として、タスクを朝会のサイクルに合わせて「1日で完了する粒度」に徹底的に分割し、毎日「今日完了させるゴール」を明確にする運用を導入している。 これにより、どこで詰まっているかが早期に可視化され、心理的安全性を保ったうえで支援要請や方針相談がしやすくなり、リーダーも早い段階で具体的なサポートを行えるようになった。​

さらに、日々の運用だけでは見落としがちなテストや企画確認、先行リリースなどを補足するため、「リリース完了に何が必要か」を洗い出す週1回の「再分割確認会」も実施している。 これらの実践により、遅れの早期検知と健全なコミュニケーションが促進され、タスク分割を軸にした進捗管理がチーム運営改善に有効だと結論づけている。


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?