ブログの画像が表示されなくなった。URLを開くと404にはならない。さらに調べると画像が空だという。
原因はgruntのimageminの使い方を間違えたからでそれは別途調査するとして、本質的な問題はそこではない。
何故バックアップも取らずに上書きという愚行に走ったのか
それはgruntによるimageminタスクという自動化の魅力に惑わされたからである。
何故表示の確認をせずに配置という愚行に走ったのか
それはgruntによるimageminタスクからのrsyncタスクという自動化の魔力に惑わされたからである。
何故画像をソース管理しないという愚行に走ったのか
それは基本的にファイルを変更しない画像ファイルでリポジトリサイズが大きくなるのを嫌ったからである。
何故サーバ上のファイルのバックアップをとらないという愚行に走ったのか
それはブログはソース管理しており、データベースのバックアップはちゃんととっているからである。
人間は失敗をして成長する生き物である
人は失敗し、痛い目を見なければ学ばない。これを読んでいるあなたもそうかもしれない。1週間前の自分も理解しなかっただろう。タイムマシンで1週間前の自分を止めに行きたい。
ただし失敗をするということは成長する素晴らしいチャンスがあるということだ。ミスに寛容的でない人は是非以下の本を読むと良い。
神
10年前の画像とかもう無理と心が折れかけたが、ジョブズ神は俺を見捨てなかった。
Mac OS Xにはタイムマシンがある。Mac OS Xのバックアップ機能である。バックアップに存在しない直近の画像はローカルディスクに作業中のファイルが残っていたので容易に復旧できた。
人間は失敗を経て成長した
バックアップをちゃんと取るようになったのは、昔、建物から建物の移動をしただけでラップトップのHDDがぶっ壊れて、作業中のソースコードが吹っ飛んで3日間くらい仕事のやる気を無くしたことがあったからだ。
人は痛い目にあって学ぶ。あれからバックアップの重要さと、使うかどうかわからない作業中のコードであってもすべからずソース管理をしリモートサーバに置くということを学んだ。あの時の教訓の一つが生きた。
そして今回の教訓はgruntでファイルを上書きする場合は十分に注意を払うことと、ブログのデータベース以外のデータのバックアップをちゃんと取るということだ。上書き以前にそもそもgrunt-contrib-imageminにはファイルサイズが0になるバグもあったようである。タイムマシンに乗って1週間の自分に言ってやりたい。一週間後の俺はお前よりも成長していると。
皆さんもブログの画像のバックアップはちゃんと取りましょう。