むー…

一言で言うと…9月31日はダメらしい。
何の話かというと、ここで書いていた日記の日付のお話。テンパってた時に10月1日を9月31日と称して、日記書いたら書けてた件について。月の上限を一括31日にしていたのか、カレンダーに表記はされないモノの、一時的には9月31日にアクセス出来ていたのですが…。その後9月35日を作成したら0000年00月00日に一括で飛ばされたりと謎挙動(というよりもう少し拒絶の仕方を考えろよ、という意味で謎仕様)をするので仕方なく、9月31日に追記して、それだけ残してたのです。
ところが、その後該当の日を含むページを開こうとするとInternal Server Errorが出てました。例えば昨日までのトップページの場合、10月は昨日までで4つしか記事が無く、その前の日ということで9月31日が表示されていたはずなのですが、いつからか、その謎の日を開こうとすると、Internal Server Errorが出ていたもようなのです。該当の日を含まない表示ですと問題なかったため、まず間違いなく当該記事が原因でしょう。気になったのは、今日初めて異常に気付いたと言う点で、以前は表示できていたのが(少なくとも9月35日を作ろうとして失敗したときには9月31日を編集できていたので)、突然表示されなくなったのは何でなんなんでしょうねぇ?*1
で、まあ、表示できないまま放置しておくのは、イマイチ面白くないということで、当該日の記事を消そうとしたのですが…これが、その日にアクセスしようとするとエラーが出るため当該日を選択して編集したり、削除したりということが出来ず。一覧の表示さえも封じられてしまったのです。
で、仕方ないので、管理メニューを色々弄っていたら、データ管理にて、記事のインポートとエクスポート及び記事の全削除の項目を発見。記事のエクスポートを行ったところ、日記全体が割と単純なxml形式で記述されていることが分かりましたので、そこから問題の日を削除。日記全体を削除してから、修正したxmlファイルをインポートすることで復旧した次第です*2


とまあ、一度全削除からの復旧が出来ました、というのは良いのですが…どうなんでしょうね?かなり、ダメな作りをしているような気がしているのですが。そもそも、xmlの内部の記述ではしっかりと9月31日を示す日付が表示されていましたし、9月35日を00月00日としてすっ飛ばしてたりしたことなども含めて、あまりスジの良い対応ではないような気がするのですが…。
例えば、謎な日を容認して、それをカレンダーから正しく外すが、データとしては受け付けるというのなら、そういう仕様にすれば良いわけで。通常のカレンダーには9月1日から9月30日が表示されているが、実は30日以降も裏には存在していて9月99日とかまで設定できるというのなら、遊び心があって素敵だと思うのですよ。システム的に9月30日の次の日は10月1日となるのだけど、9月31日を直接指定すれば、データがあれば表示されるという。これを利用すれば、10月1日の裏に9月31日という裏日記を構築できたりという…。
ところが、現実はというと、なんとなく、月の上限は一括31日までというお馬鹿な設定なのか、ある部分で9月の31日を例外的に受け入れてしまう作りになっていたのか、まあ、そんな香ばしい臭いがするのですよ。


まあ、期待したような動作はしてくれないことも分かりましたし、はてなダイアリーのシステムの穴をつつきたいわけでも無ければ、これ以上無謀な日付設定を挑戦しようとかいうつもりもありませんので、どうでも良いですが…。

*1:10月に入ってからの日記を書いたことで9月末の処理をしようとしてエラーとか?

*2:大分前にも同じようなことをやった記憶があったり無かったり、気のせいかも知れませんが