2004年 08月 06日

Trackback の脆弱性についての勧告

リファラあるときと ^Mozilla/UA がマッチするときはエラーにしてみた。

2004年 08月 05日

Accept-Language のよる言語切り替えswitch language by Accept-Language header

てか、数日前(という風に感じるけど昨日一日に何度も寝てるので日付の感覚が狂ってる)に実装したけどうぷろどしてなかったっつう。知らないけど。意味ないけど。

ただ、これは実装してなんかアレになったりする場合もあるだろう的な……(だって完全なコンテンツの代替を提供するわけではないし)まーいいや!

2004年 08月 04日

PHP - apache_request_headers()PHP - apache_request_headers()

PHP で If-Modified-Since を取得したい。apache_request_headers() を使うみたいだけど、関数名に apache とついてる通り Apache モジュールとして動いていないとこの関数は使えない。自分はローカルテストするとき AnHTTPD+CGIPHP なので普通のコーディングしてテストしようとするとエラーがでる。こりゃどうすりゃいいやら。環境変数には If-Modified-Since とか入ってないような……? CGI だと HTTP ヘッダが取得できないなんて話はないだろうし……わかんねー

とりあえず普通の CGI と同じように $_SERVER["HTTP_IF_MODIFIED_SINCE"] のようにしてみる……

AnHTTPD が環境変数渡してないってこともありえないこともない……?

header("HTTP/1.1 304 Not Modified"); では OK だけど header("Status: 304 Not Modified"); ではダメだった……何故だ。他のとこでステータスコード送るときは大丈夫っぽいのになぁ。

関係ないけど lftp ってファイルサイズ見てるんだなぁ? ファイルサイズ変えないとアップロードしてくれない。

2004年 08月 03日

マルチランゲージ。ネゴシエーションな風景multilanguage. the sight of negotiation

/latest /latest.ja /latest.rdf /latest.rdf.ja /latest.en.rdf のようなパスを全部受け入れるとしたら、どうやって言語部分とフレーバー部分を区別したらいいだろう? どう考えてもどっちがフレーバーでどっちが言語コードかなんてプログラム側には理解不能だから、設定として言語コードとして扱う文字列を設定する必要があると思うけど、ホントはもっとスマートな方法があるんじゃないかとかって考えたりもする。設定項目が多いのはうざったいし。まぁ Apache の mod_mime AddLanguage みたいになるんだろうけど。

XSLT 側で殆どやることになることに間違いない (そういうものだから!) 。大体カテゴリによるフィルタリングと同じようなことをするし。でも複数言語を対比させて表示させるのも面白いんじゃないか、とか思わなくもなかったりしたりとかしなかったりとかこれやろうとすると多分ひどく面倒くさい。動的に XSLT の条件部分の式が増えたりすると思うから。つか無理? できるとしたら latest.ja+en とかになるのかな。。面倒なのは latest の場合の表示だろうなぁ。latest の場合はスクリプト側にちょっと手を入れる必要がある。その言語(カテゴリ)が含まれていないセクションは無視して、最近の n 日分を表示しないといけないし、その分を考えてスクリプト側で合成する必要があるから。

つーか一番面倒くさそうなのは変換後の xml:lang だよなぁ。ルート要素をどうするとか、いろんなメッセージをどうするかとか。

と、実装方法だけ考える夏の日。気づいたら夜。昼寝る。夜寝る。朝寝る。私寝てる。いつも寝てる。夢を見る。桜がふる夢を見る。雨がふる夢を見る。落ち葉がふる夢を見る。雪がふる夢を見る。一年がすぎる夢をみる。一生がすぎる夢を見る。

セクションは常に表示すべきか。指定した言語で書かれていないとしても、他の言語へのポインタは書いておかないと「あるかどうか」さえわからないし。もしこうするなら、スクリプトの修正が無駄に終わったことになる。(つっても XPath 書き換えただけだけど)

なんかなんとなく結局実装中。んで頭カオス

大体やった。でも何故か PHP がクラッシュしたりするので、一部やってない。つまり、言語指定したページでもリンク先は言語指定してないページになったりする。

まじもう最高に混沌ブレインなので今日はやめよう……ぶっちゃけ使わないし

RSS のカテゴリ別

RSS をカテゴリに対応させるのを忘れてた。あとでやろう。

直したつもり

2004年 08月 02日

Taglibro! のソースfontprogramo de `Taglibro!'

Index にソースへのリンクをはっといてみる。まだいくつか気に入らないところ (例えばモバイルエージェントの時の強制フレーバー上書きをすると、モバイルからデフォルトフレーバーが見れないとか) があるけど、やる気おきたらやろう。

一ヶ月~一年運用してみて、負荷がかかるようだったら無い知恵しぼってキャッシュを実装するか。まぁ 1000pt まで大丈夫だから(わらい)

やばい。日付変わったときにどうも間違って書いてしまう。day/@datetime なんて無いっつうの>俺

RSS の並び順の修正

RSS と Atom の並び順が新しい順じゃなかったのを修正。d:section も <xsl:sort select="@datetime" order="descending" /> でソートするようにした。この場合 position() だけでセクション位置を取得するとカオスるので last() - position() + 1 でOK。

2004年 08月 01日

section/@datetime についてのメモ

section/@datetime が存在しなくても問題ないようにしよう。そうすれば tDiary のデータをもっとスマートに移行できる。ただ、tDiary のデータを XML にするのがひどく面倒くさいけれど……

せっかく tDiary とほぼ同じデータ構成なのだから、できれば完全にこちらにデータを移したい。

section/@datetime がなくても問題がないようにしてみた。といっても XSLT ファイルを修正しただけ。しかも表示しないようにするとか、そういう……

2004年 07月 28日

まだまだやること

Last-Modified ヘッダを吐いていないので吐かせるようにしなくては……ファイル走査した中で一番新しいファイルの日付が妥当かなぁ。

latest の場合だけ吐くように。

HEAD アクセスされたときは Last-Modified だけ出力して終了してる(つもり)

todo...

XSLT のほうにフレーバーつけるの忘れてた…… orz やらなきゃいけないけど、面倒臭い。