読み終わりー。やばいねこれ。面白かった。内容的に成田良悟的世界のつながりみたいのがあって、「仕掛け」がちゃんと作ってあるから面白い。じわじわ気づき始めたところで丁度文中に真が出てくるからリズムが乱れないし、てきとーに読んでも混乱しない。いやーこれヒット
デュラララ!! / 成田良悟
PHP - apache_request_headers()PHP - apache_request_headers()
PHP で If-Modified-Since を取得したい。apache_request_headers()
を使うみたいだけど、関数名に apache とついてる通り Apache モジュールとして動いていないとこの関数は使えない。自分はローカルテストするとき AnHTTPD+CGI版PHP なので普通のコーディングしてテストしようとするとエラーがでる。こりゃどうすりゃいいやら。環境変数には 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 ってファイルサイズ見てるんだなぁ? ファイルサイズ変えないとアップロードしてくれない。
msxsl | xmllintmsxsl | xmllint
サイト全体を XML + XSLT 化? の続き。ファイル名から判断して msxsl に突っ込むスクリプトを書く。具体的には index.html.xml というファイルがあったら 2html.xsl を使って index.html に出力するというもの。
書いたはいいとして、何故か実行するたびにエラーがでたりでなかったり……パイプの使い方を間違っているんだろうかとかなんとか思ったり思わなかったり。
xyzzy で CDATA 領域に --
が奇数個あるとそれ以降ファイルの最後までコメントとみなされて困る……
オンドゥル 先生
オンドゥル 先生, ダディャーナ先生. まじで笑たー
スタスタstst
マルチランゲージ。ネゴシエーションな風景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 のカテゴリ別
Taglibro! のソースfontprogramo de `Taglibro!'
Index にソースへのリンクをはっといてみる。まだいくつか気に入らないところ (例えばモバイルエージェントの時の強制フレーバー上書きをすると、モバイルからデフォルトフレーバーが見れないとか) があるけど、やる気おきたらやろう。
一ヶ月~一年運用してみて、負荷がかかるようだったら無い知恵しぼってキャッシュを実装するか。まぁ 1000pt まで大丈夫だから(わらい)
やばい。日付変わったときにどうも間違って書いてしまう。day/@datetime なんて無いっつうの>俺
RSS と Atom の Content-Type ヘッダを変更
した (RSS1.0 = application/rdf+xml, Atom = application/atom+xml) のだけれど、これマトモに設定するとダウンロードになっちゃうんだよなぁ……まぁ分かってたことだから今まで text/xml で送ってたんだけど……なんでダウンロードしちゃうかなぁ。application だからだよなぁ。XML のときはパースしてくれりゃいいのに。せっかく xsl-stylesheet
とか書いてるんだからさー
RSS の並び順の修正
RSS と Atom の並び順が新しい順じゃなかったのを修正。d:section も <xsl:sort select="@datetime" order="descending" /> でソートするようにした。この場合 position() だけでセクション位置を取得するとカオスるので last() - position() + 1 でOK。
検索
検索ってどうやってやろうかなぁーあれないと俺不便だよなーって考えてて思った。別に俺不便じゃないのよ。grep すればいいんだもん。あーそうか。あーそうか。んじゃグーグルに任せていいや。
サイト全体を XML + XSLT 化?
少し前 に 現状 PHP にクエリ突っ込むような形しかないけど
とか書いてるけど、別にローカルで変換させてふつーの HTML を転送したっていいじゃん。っていうかそのほうがいいじゃん。