2007年5月7日(月曜日)
hatomaru.dll 修正
さっそくバグの嵐だったようで、すみません。いろいろご指摘くださった皆様、ありがとうございました。
キャッシュ周りでいろいろ問題が出ていたので修正したら、http://bakera.jp/ が自身にリダイレクトして死亡するというエンバグが発生し、それも修正。どちらも、私がいろいろ忘れていたのが原因です。
もう少し説明すると、Not Found はキャッシュのファイル名が競合する事によって発生していました。実は末尾に / のついた URL では、うまくキャッシュのファイル名が付けられないという問題があります。たとえば、http://bakera.jp/ebi と http://bakera.jp/ebi/ は、両方とも内部では同じファイル名になってしまいます。
※まあ、実装がショボイだけなのですが。ちなみに、IE の履歴から / で終わる URL にアクセスすると / なしの URL にアクセスしに行ったりしますが、おそらく同じ理由によるものでしょう。
キャッシュのファイル名が競合しているとどうなるかというと、http://bakera.jp/ebi にアクセスしたときにキャッシュされた内容が http://bakera.jp/ebi/ にアクセスしたときにも表示されたり、その逆が起きたりします。そして本来、http://bakera.jp/ebi は日記、http://bakera.jp/ebi/ は Not Found ページになっていました。つまり、
- 誰かが http://bakera.jp/ebi にアクセスして日記のページキャッシュされる
- 誰かが http://bakera.jp/ebi/ にアクセスする
という順だと http://bakera.jp/ebi/ が Not Found にならず、日記の内容が表示されてしまうという不具合が起きます。逆に、
- 誰かが http://bakera.jp/ebi/ にアクセスして Not Found ページがキャッシュされる
- 誰かが http://bakera.jp/ebi にアクセスする
という順だと、日記ページが Not Found になるという不具合が発生します。今回はこれらが両方とも発生していたのですが、前者は問題として認識されにくかったため、「日記が Not Found になる」という問題として認識されたのです。「日記が Not Found だというコメントを書き込んだら復活した」という報告も何度かいただきましたが、これは、掲示板に何か書き込むと日記のキャッシュが無効になって再生成されるためです。
※コメントが書き込まれると、各日記のコメント数表示が更新されるため。
では、どうして昔の hatomaru.dll では大丈夫だったかというと、単純に「誤って / つきの URL にアクセスされたら、キャッシュを生成せずに / なしの URL にリダイレクトする」という処理を行っていたためです。今回の改造でこの処理をやめたため、問題が表面化してしまったのでした。
では、何故今回の改造でリダイレクトをやめたのか? それは、今回の改造で / つきの URL にアクセスせざるを得ないケースが現れたためです。それは http://bakera.jp/ にアクセスしたケースで、これを http://bakera.jp にリダイレクトすると、http://bakera.jp/ にアクセスされることになって無限ループになってしまいます。
流れをまとめてみましょう。
- 改造したら、http://bakera.jp/ から http://bakera.jp へのリダイレクトが発生
- リダイレクト処理をやめることで解決。(キャッシュファイル名競合の問題のためにリダイレクト処理が必要だったのに、そのことをすっかり忘れていた)
- キャッシュファイル名競合による日記 Not Found 問題が発生。
- リダイレクト処理を復活させることで解決。 (何のためにリダイレクトをやめたのかすっかり忘れていた)
- 無限リダイレクト問題が再燃。(あたりまえ)
- http://bakera.jp/ だったらリダイレクトしないような処理を入れた (厳密にはもう少し複雑な処理ですが割愛)。
……なんかフォローしようがない忘れっぷりです。ご迷惑おかけして申し訳ありませんです。
- 「hatomaru.dll 修正」にコメントを書く
関連する話題: hatomaru.dll / えび日記 / 失敗談
ATOK2007買った
JustMyShop からのダウンロード購入を試みたわけですが、これがなかなか……。購入プロセスの途中でクレジットカードの「確認・変更」ボタンを押したら、有効期限が 2007年1月とだけ入った空のフォームが出てきたわけですよ。こりゃ有効期限が間違っているじゃないか、と思って入力し直したわけですよ。そしたらですね、何度入力し直しても、「確認」すると元に戻っているわけですよ。もうね。
※スクリプトは有効にしているので、サイトの不具合のような気がするのですが。
でまあ、ダウンロードしたファイルを実行するとインストールするディレクトリを聞かれるけれども、それは実は自己解凍書庫でファイルが展開されるだけだったり、展開したあとどうすれば良いのか案内もなかったりして。
展開されたファイルの中に AUTORUN.EXE があったので、まあこれだろということで見当をつけてインストールしたら、デスクトップに……。
望んでもいないのにアイコンが作られていたりするわけですよ。しかも ATOK 本体とは関係のないアイコンが。
ATOK という製品自体の性能とは関係ないことではあるのですが、こういう体験をさせられてしまうと、やっぱり人に ATOK を勧めようという気にはならなくなってくるのですよね。
- 前(古い): 2007年5月6日(Sunday)のえび日記
- 次(新しい): 2007年5月12日(Saturday)のえび日記