タグ: python
"python" が付いた記事と Wiki ページ
Claude Code の JSONL ログを読む
Claude Code のセッションログ(JSONL)の保存先、実測したスキーマ(type 17 種類、user 行の 9 割はツール結果)、0 件で成功するパーサを避ける集計手順、usage によるトークン分析
ホワイトボックスとブラックボックスの違いを実測した — 分岐カバレッジ 100% でミューテーションスコアは 0% と 100%
ホワイトボックステストとブラックボックステストの違いを実測した。同じ関数・同じ分岐カバレッジ 100% の 4 スイートのうち、境界値分析を仕様から導出した側だけが off-by-one を検出。ミューテーションスコアは 0% と 100% に割れた。AI エージェントに実装を見せてテストを書かせると何が起きるかも測った。
テストを信じる前に、テストを壊す — mutation harness で「緑」に意味を持たせる
テストが全部緑でも、コードについて何も分かっていない。わざとコードを壊してテストが落ちるかを見るミューテーション(mutation)テストを、専用ツールなしの 30 行の Python スクリプトで回した実例。到達不能な死んだガードの見つけ方、GREEN の 3 分類、踏んだ 6 つの罠、そして AI コーディングエージェントに検査を任せるときの指示の書き方までをまとめる。
Claude Code の JSONL ログを 29,043 行で検証 — 解説記事の前提が自分の環境で成り立たなかった 6 点
Claude Code のセッションログ(JSONL)を41セッション29,043行で実測。保存先は ~/.claude/projects で ~/.claude/sessions/transcript.jsonl は存在しない、全行にあるトップレベルキーは type だけ、type は17種類、type: user の92.5%はツール実行結果。解説記事のスキーマ記述と実測値を突き合わせ、0件で「成功」するパーサの落とし穴まで整理する。
BACnet / BACnet MS/TP
ビル管理システムの標準オープンプロトコル。MS/TP は RS-485 上でトークンパッシングを行うデータリンク層で、既設空調から値を読む IoT 案件の接続点になる
FCU コントローラは BACnet MS/TP で喋る — ビル空調の末端を IoT から読むための配線とプロトコル
ビル空調の FCU コントローラ(アズビル 形WJ-1202)を例に、BACnet MS/TP の RS-485 配線・終端抵抗・Max_Master・台数設計を整理し、BACnet/IP ルータ経由で BAC0(Python)から値を読むまでを解説する。
GoogleビジネスプロフィールをAPIで管理する — 分割された8つのAPIと、v4に残る口コミ・投稿
Googleビジネスプロフィール(GBP)をAPIで管理する方法。旧 Google My Business API から分割された8つの API の役割分担、口コミ・投稿が残るレガシー v4、利用申請と 0/300 QPM の承認判定、Python 実装例、reportInsights からの移行対応表まで。
Google Business Profile API
Googleビジネスプロフィールを機械的に管理するための API 群。用途ごとに8つに分割されているが、口コミ・投稿はレガシー v4 にしか存在しない
AI エージェントのレートリミット対策 — 指数バックオフとサーキットブレーカーで「翌朝全部止まっていた」を防ぐ
claude --print CLI を毎朝 40 回叩く自律トレーディングシステムに、429 / 529 / usage limit の検知、retry-after を尊重した指数バックオフ、サーキットブレーカーを入れた実装記録。300 秒を超える待ちは待たずに degrade する判断、半開スロットのリークで永久ロックしたバグ、配線テスト・発動率の計器・ミューテーションによる検証まで。
外部境界の耐障害性とサーキットブレーカー
レートリミット・過負荷といった「待てば直る」障害に対する指数バックオフとサーキットブレーカーの設計。半開スロットのリーク、待つべきでない retry-after、制御機能が no-op で失敗する問題まで