見えない壁を壊した日
自分で作ったポータル画面が、突然動かなくなりました。
正確に言うと、「表示はされるけど、何も操作できない」という状態です。
ボタンを押しても反応しない。
右クリックも効かない。
テキストを選ぶこともできない。
画面はきれいに表示されているのに、まるでスクリーンショットを見ているような感覚でした。
エラーがないという恐怖

開発をしていると、エラーメッセージが出ることがあります。
赤い文字でずらっと表示される、あれです。
正直、エラーが出てくれるほうが楽なんです。
「ここが壊れてますよ」と教えてくれるから。
地図があるのと同じで、どこに向かえばいいかわかる。
今回は、それがなかった。
エラーゼロ。
どこも壊れていないように見える。
でも何も動かない。
地図なしで森に入ったような気持ちでした。
透明なダイアログ

数時間かけて、原因を突き止めました。
画面の裏側に、目に見えないダイアログが開いていたんです。
認証のための小さなウィンドウが表示されるはずだったのに、中身が空のまま「モーダル」という状態で居座っていた。
モーダルというのは、「このダイアログが閉じるまで他は触らせません」という仕組みのことです。
確認画面とか、ログインフォームとかでよく使われます。
「本当に削除しますか?」という画面が出ているときに、裏側のボタンが押せないのと同じです。
それが、何も表示されていないのにずっと有効になっていた。
透明な壁です。
見えないけど、確かにそこにある。
設定ファイルの1行

原因がわかっても、すぐには直せませんでした。
その透明なダイアログを消しても、ブロック状態は解除されない。
プログラムの奥深くで管理されている状態だったので、表面的に削除しても意味がなかったんです。
結局、解決したのは設定ファイルの1行を変更したことでした。
「このアプリを誰の権限で動かすか」という設定。
デプロイした人(私)の権限で動かす設定になっていたのを、アクセスした人自身の権限に変えた。
それだけで、あの透明なダイアログは出なくなりました。
たった1行。
何時間も悩んだ問題が、たった1行で消えた。
副作用と折り合い

ただし、その1行を変えたことで、今まで保存していた設定が全部消えました。
画面のテーマとか、表示のカスタマイズとか。
「直したら別のものが壊れる」は、開発ではよくあることです。
でも暮らしの中でもあるなと思います。
何かを良くすると、別の何かが変わる。
暮らしの中にも、似た選択がたくさんあります。
完璧な解決策なんてないんです。
「今の状況で、どっちがマシか」を選ぶ。
今回は、設定を直して最初からやり直すほうがずっとマシでした。
何も操作できないよりは。
見えない問題を見つける力

この日は他にもいくつか直しました。
メールの取得がうまくいかないことがあって、調べてみたらGmail APIの1日あたりの呼び出し回数に制限があることがわかりました。
30秒ごとにメールを確認していたら、上限を超えてしまっていた。
5分間隔に変えたら落ち着きました。
スクリーンセーバーの装飾も変えました。
丸い泡みたいなアニメーションがちょっとうるさく感じたので、キラキラした星だけに。
小さなことですが、毎日見る画面だから、こういう微調整が大事だったりします。
「そういうもの」の裏にあるもの

振り返ると、今日向き合ったのは全部「見えない問題」でした。
見えないダイアログ。
エラーが出ないバグ。
知らないうちに超えていたAPIの上限。
どれも、画面には何も表示されない。
暮らしの中にも、見えない壁ってあります。
「なんとなくうまくいかない」「理由はわからないけどモヤモヤする」「別に困ってるわけじゃないけど、何かが引っかかる」。
そういうとき、原因を探す気力がないと「まあ、そういうものか」と流してしまう。
でも今日、私は透明な壁を見つけて壊しました。
設定ファイルの1行を変えただけ。
やったことはそれだけです。
でもそのために、何時間も画面を見つめて、仮説を立てては外れて、それでも諦めなかった。
見えない問題を「ある」と信じて探し続けること。 それが解決の第一歩なのかもしれません。
「なんとなくおかしい」は、気のせいじゃない。
きっとどこかに原因がある。
それを見つけたとき、思った以上にすっきりするものです。

