wsse.jsのタイムゾーンの計算がおかしい気がする

Movable TypeではAtomAPIでの認証にWSSEというのを使うらしい。よくわからないので調べてたところJavascriptでWSSEヘッダを生成できるVictor R. Ruiz氏作のwsse.jsを発見。これをありがたく使わせてもらってかなり良い感じに動いてたけど、それから何もいじらず置いといたのに、夜が更けたら突然Status Code:403が返るようになってしまった。

最初はMTを置いてるサーバーの不調とかを疑ったけど、念のためリクエストヘッダを見直してみたら、wsse.jsで生成されているヘッダのCreatedがどうやらおかしい。ここは日本なのに、2007-02-04T00:11:42-15:00となっている。本当は2007-02-04T00:11:42+09:00が正しいはず。ってことで日付の計算の部分を見ると、タイムゾーンの計算でdayを考慮せずにhourだけでUTCとの引き算をしちゃってるみたい。ようするに日付が変わっちゃうとUTCの日付も変わるまでずっとエラーってこと、かな。

日時の計算って難しいし、っていうか日本でしか使わないしと思って+09:00って直接書いて逃げといたけど、本当にちゃんと計算するならどう書くべきなのかな。頭良い人居たら教えてください。

xmlHttpRequestでContent-Typeが普通じゃない時

ちょっとMovable TypeAtomAPIAjaxしてみたくてやってみた。Operaでテストしていたらすぐ動いて簡単じゃんと思ったらIEではリクエストはOKでレスポンスが拾えない。よく見たら、レスポンスのContent-Typeが問題だった。Atomだとapplication/x.atom+xmlなんですね。Opera以外のブラウザだとtext/xmlapplication/xmlでないとresponseXMLがパースできない。

普通だったらサーバーサイドでContent-Typeをうまいこと変えてやるんだろうけど、外部ドメインAPIでもないのにPROXY的なものは挟みたくないし、かと言ってmt-atom.cgiには手を加えたくないし…

と思ったら、こんな方法があったんですね。てかなんで今まで知らなかったんだ!?

if (window.ActiveXObject)  {
  var xml = new ActiveXObject("Microsoft.XMLDOM");
  xml.async=false;
  xml.loadXML(http.responseText);
}

ちょっと感動しました。Mozilla系ではどうすればいいのかな。

ZenCart v1.2 meta_tags.php

他のページは見れるのに、とある1つの商品ページだけがSafariで文字化けすると言われた。管理画面で見ると、商品説明文等は特に問題無し。何かと思えば、META要素のdescriptionの中身が悪さをしていた。最初の100byteをdescriptionとして表示しているようなのだけど、2バイト文字を考慮してないっていう典型的なアレ。

includes/modules/meta_tags.phpにてsubstr関数とか怪しそうなやつをMB関数に置き換えればOKでした。

それにしてもv1.2jaの最終版かなんかなのに、こんなの配布しちゃってていいのかしら。あんまし今まで問題にならなかったのかな。でもv1.3ではmeta_tags.phpがmodules内ではなくlanguages内に移動になってるらしいのでおそらくこれも直ってるんだろうな、おそらく…

Google Notebook

Googleのサービスには疎かったけど、最近いろいろ見てみた。Notebookは名前からして動作が軽快そうで期待した!Operaに対応してないっていう警告が出たけど、実は動くとかいうオチは無いかと思って警告を無視して中に入ってみた…だけどやっぱり動かず。Firefoxはしばらくやめることにしたところだったので、仕方なくIEで試した。…これでショボかったら落ち込むぜと思ったら、なかなかよさげで、期待は裏切られなかった!

記事のスクラップブックとしての用途をアピールしているみたいだけど、最近のブログシステムの大げさ感に萎えている自分のような人間には、こういう、簡単にテキストをポンと書いてすぐにアップできるのは魅力的で、そっちの方を気に入った。なんかRemember the Milkみたいなこの手軽さ!これを求めていた!公開設定とかをすれば当然のごとくRSSもデフォで吐いてくれるから、自分のサイトでRSSを拾って好きなデザインで公開することもできそう。

だけどメモ書きという趣旨からか、新しい物が上に表示されるんじゃなく、どんどん下に追記していくような感じ。これだと本当にメモどまりになっちゃうな…。これは設定で変えられたらいいなと思ったり。RSSだけは新しいのが上だったけどそれは当たり前なのかな?

あと気になったのは、記事入力中の反応がなんか遅い。特に長い文章を書くと辛くなってくる感じ。せっかくサクッとしてるイメージなのにここで重いのは結構台無しだなぁ。それと、文章が1行ごとに<div>で囲われてるのはさすがにびっくりした!

初はてな

ずっとMovable Typeを使っていたけれど、調子に乗って高額なサーバーを使っていたらお金が無くなってしまいました。これをきっかけに他のサービスも使ってみようということで、はてなダイアリーを始めてみました。はてな記法とか全然わからないけど慣れていけたらなと思います。