読み終わりー。やばいねこれ。面白かった。内容的に成田良悟的世界のつながりみたいのがあって、「仕掛け」がちゃんと作ってあるから面白い。じわじわ気づき始めたところで丁度文中に真が出てくるからリズムが乱れないし、てきとーに読んでも混乱しない。いやーこれヒット

  1. トップ
  2. book
  3. デュラララ!! / 成田良悟

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 ってファイルサイズ見てるんだなぁ? ファイルサイズ変えないとアップロードしてくれない。

  1. トップ
  2. prog
  3. PHP - apache_request_headers()PHP - apache_request_headers()

サイト全体を XML + XSLT 化? の続き。ファイル名から判断して msxsl に突っ込むスクリプトを書く。具体的には index.html.xml というファイルがあったら 2html.xsl を使って index.html に出力するというもの。

書いたはいいとして、何故か実行するたびにエラーがでたりでなかったり……パイプの使い方を間違っているんだろうかとかなんとか思ったり思わなかったり。

xyzzy で CDATA 領域に -- が奇数個あるとそれ以降ファイルの最後までコメントとみなされて困る……

  1. トップ
  2. web
  3. msxsl | xmllintmsxsl | xmllint

今日一日どういうスタイル書こうか考えていたけど、全く思いつかず……よく考えると特にテーマがあるってわけじゃないし、なんか根本的に間違っている気がしないでもない。

  1. トップ
  2. self
  3. スタスタstst

/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 がクラッシュしたりするので、一部やってない。つまり、言語指定したページでもリンク先は言語指定してないページになったりする。

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

  1. トップ
  2. web
  3. マルチランゲージ。ネゴシエーションな風景multilanguage. the sight of negotiation
  1. トップ
  2. prog
  3. マルチランゲージ。ネゴシエーションな風景multilanguage. the sight of negotiation

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

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

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

  1. トップ
  2. prog
  3. Taglibro! のソースfontprogramo de `Taglibro!'

した (RSS1.0 = application/rdf+xml, Atom = application/atom+xml) のだけれど、これマトモに設定するとダウンロードになっちゃうんだよなぁ……まぁ分かってたことだから今まで text/xml で送ってたんだけど……なんでダウンロードしちゃうかなぁ。application だからだよなぁ。XML のときはパースしてくれりゃいいのに。せっかく xsl-stylesheet とか書いてるんだからさー

  1. トップ
  2. web
  3. RSS と Atom の Content-Type ヘッダを変更

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

  1. トップ
  2. web
  3. RSS の並び順の修正
  1. トップ
  2. prog
  3. RSS の並び順の修正

検索ってどうやってやろうかなぁーあれないと俺不便だよなーって考えてて思った。別に俺不便じゃないのよ。grep すればいいんだもん。あーそうか。あーそうか。んじゃグーグルに任せていいや。

  1. トップ
  2. web
  3. 検索

少し前現状 PHP にクエリ突っ込むような形しかないけど とか書いてるけど、別にローカルで変換させてふつーの HTML を転送したっていいじゃん。っていうかそのほうがいいじゃん。

  1. トップ
  2. web
  3. サイト全体を XML + XSLT 化?