Last-Modified ヘッダを吐いていないので吐かせるようにしなくては……ファイル走査した中で一番新しいファイルの日付が妥当かなぁ。
latest の場合だけ吐くように。
HEAD アクセスされたときは Last-Modified だけ出力して終了してる(つもり)
latest.xsl.rdf という形から latest.rdf.xsl という形に変更。こっちのほうがいいっすね。
tDiary のデータを移行するのはやめることにしよう。
XML がデータだと脳内 DTD でも XSLT でてきとーに変換できるのになぁ……
ディレクトリどう作ろう……現在の tDiary を oldlog にやっちまって、今まで使ってたリクエストがきたら mod_rewrite で飛ばしてやろうか。
RewriteEngine On
RewriteBase /
RewriteRule ^nulog/([0-9]{6,8})\.html$ oldlog/nph-index.rb?date=$1
RewriteRule ^nulog/([0-9]{6,8})$ oldlog/nph-index.rb?date=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^nulog/(.*)$ nulog/taglibro.php/$1 [L,QSA]
みたいに……
いや、これじゃダミだ。別のディレクトリに新しいの入れたほうが良いな。安全だし。
ディレクトリどう作ろう……現在の tDiary を oldlog にやっちまって、今まで使ってたリクエストがきたら mod_rewrite で飛ばしてやろうか。
RewriteEngine On
RewriteBase /
RewriteRule ^nulog/([0-9]{6,8})\.html$ oldlog/nph-index.rb?date=$1
RewriteRule ^nulog/([0-9]{6,8})$ oldlog/nph-index.rb?date=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^nulog/(.*)$ nulog/taglibro.php/$1 [L,QSA] みたいに……
いや、これじゃダミだ。別のディレクトリに新しいの入れたほうが良いな。安全だし。
tDiary から php にトラックバック送信すると確実に文字化けしてしまう。しかもその文字化けのせいで xml が valid でなくなる。ホント困った。なんでちゃんと変換できないんだろう。
mb_language("uni");
mb_internal_encoding("UTF-8");
mb_convert_encoding(htmlspecialchars($name, ENT_NOQUOTES), "UTF-8", "auto");
utf8 以外で送られてきたら絶対に化ける……はぁ。
mb_language("Japanese"); にしてなおる。何故だかは知らない。せっかくユニコード使ってるんだから、スクリプト側で言語設定なんてしたくないんだけど……
マルチバイト圏内はみんな悩むんだろうなぁ。韓国とか中国はどうなのよ。もっとめんどくさ系ですか。
そういや CJK で IC タグの規格を共通化とかなんとか。
今のところ php スクリプト自体は 500 行ぐらいのやつ。もともと php は xslt するためのトリガ程度にしか使う予定じゃなかったから妥当な長さ? データファイルは別のディレクトリに置いたほうがいいような気がしてきた。一個オプション導入してガガガガと書き換えるかー。でも面倒臭い。
日記のマークアップも超適当にやってきてしまったから、ちゃんとさせなければ。link 要素も不完全。むむむー。細かいのが多くなると突然ダルくなる。
今の実装だと「カテゴリごとの latest」とかが作れない。いらないっちゃいらないけど、もうちょい汎用性を高くしたい。そうすればソースも綺麗になるはず。まじめに設計とかしたほうがいいんだけど、頭悪くてできない罠。設計って実装してるときよりつまらんし。
まず、今のところ変換に使う xsl ファイルの名前を完全に決めうちしてる。latest とか 日付別のときを完全に別に (switch) 処理してる。この辺もうちょい綺麗にしよう。速度落ちても、綺麗なほうがいい。読みにくいソース書いてると未来の自分が激しく困る。俺書いたの絶対覚えてないし。
latest は日付と考えるべし。ってことで /web/latest /web/2004 /web/2004/06 とかが形的に等価。category.xsl を作るんじゃなくて、year.xsl, month.xsl, latest.xsl をカテゴリに対応させるほうがいいな。よく考えればあたりまえだ……。/web とか / とかでアクセスされたときはどうしようか? 一覧だけ表示させて、カテゴリが指定されているときはそれをリンクパスに含めるだけでいいか。
param にカテゴリーが指定されていたら、そのカテゴリを含むセクションだけを抜き出して、されてなかったら全部表示。year.xsl が問題だ。一年分を読み込んで変換させるのはどれぐらいコストかかるだろう。
path info の最後の部分に /\..+?$/ があったら取り除いて、flavor にする。xsl 適用するまえに xsl ファイル名 + .flavor が存在するかを fileexists で調査。あったらそれを適用させて出力。なかったらデフォルト (XHTML とか) 適用させる。このとき設定ファイルに指定された flavor の content-type が指定されていたら、それを送信する。指定されてなかったらデフォルト (text/xml) 送る。ただし application/xhtml+xml の場合は馬鹿なブラウザのために特別に accept で (それ以上のことはしない) 振り分けてあげる。
xsl:number で似たようなことができることに気が付いた。これで footnote がちゃんと実装できる。
<xsl:number level="any" from="d:day" format="*1"/> のようにすればよかった。ふっとノートXSLT の仕様書にそのまんまのが載っている。俺はアフォか。
でもまだリンクを実装してない。面倒くさいから。見通しがたったら後になってもできるじゃん?
; Unix-Timestamp (global-set-key #\C-2 #'(lambda () (interactive) (with-output-to-selected-buffer (format t "~d" (- (get-universal-time) (encode-universal-time 0 0 9 1 1 1970)))))) ; xml datetime (global-set-key #\C-1 #'(lambda () (interactive) (let (date) (setq date (format-date-string "%Y-%m-%dT%H:%M:%S%Z")) (insert (concat (substring date 0 -2) ":" (substring date -2)))))) ;%Z => "+0900" -> "+09:00"
これなしじゃ生きれない!
それと pre を使うときは CDATA で囲ってる……そうしないとインデントされてしまうから……
http://test.lowreal.net/d/taglibro.php/latest
今のところ、月別と日別は一個のファイルだけを直接 xslt に渡して処理(たぶん日別は変えると思う……)最新とカテゴリは必要データを dom で結合させてから xslt に渡す。ただ、カテゴリは全部処理しないと意味ないので全部結合してる(駄目)
blosxom っぽい url が使えます。/2004/07 /web/2004 /2004/var /latest.rss. でも個別ページと月別はフレーバー未実装。
つかもうちょいソースを綺麗にしたい……switch が多くて汚い。
書き直した。ある程度関数にして分離したので、前より格段と綺麗に。でも行数は変わってない(むしろ増えてる)
でもこれでカテゴリごとの latest を実装できた。つまり /latest /web/latest /latest.rdf /web/latest.rdf /latest/web.rdf (推奨しないけど) が使える。
[http://test.lowreal.net/d/taglibro.php/latest]
今のところ、月別と日別は一個のファイルだけを直接 xslt に渡して処理(たぶん日別は変えると思う……)最新とカテゴリは必要データを dom で結合させてから xslt に渡す。ただ、カテゴリは全部処理しないと意味ないので全部結合してる(駄目)
blosxom っぽい url が使えます。/2004/07 /web/2004 /2004/var /latest.rss. でも個別ページと月別はフレーバー未実装。
つかもうちょいソースを綺麗にしたい……switch が多くて汚い。
書き直した。ある程度関数にして分離したので、前より格段と綺麗に。でも行数は変わってない(むしろ増えてる)
でもこれでカテゴリごとの latest を実装できた。つまり /latest /web/latest /latest.rdf /web/latest.rdf /latest/web.rdf (推奨しないけど) が使える。
ホストを取得できてない。トラックバックの excerpt も記録されてない。
excerpt はスペルミスですた。
文字コード変換がうまくいってない mb_convert(ry なんですけど、どうすりゃいいでしょう。invalid token とかになっちまいますよ。困った。微 XSS 脆弱性。
今度は r が効かなくなった。叩いたら直った。駄目だ。
いろいろやってることが全部上手くいってない。駄目だ。
例えばあの子は透明少女ー
固有名詞をエス化するのって何か好きじゃないな……大文字で初めてそのまま書いてやる。
今となっては Japan だろうが「にっぽん」だろうが特に悩まないで同じ国を思い浮かべられるけど、何かやっぱジャパンて不思議だよなぁ。
しょぼいプレイヤー(とはいえ値段にかかわらず、プラスチックでできてるの)は静電気やらに弱い。最初に使ってたプレイヤーはなんていうか、静電気発生すると音量が爆音になったり、速さが変わったり(もちろん音も)してうんこ。今のはそんなに気にならないけど、かばんに入れておくとプチプチとノイズが入る(だから常にポケットの中)
たぶん本体を金属で作れば大丈夫だと思うんだけども…… mp3 player で一番高い部品はメモリだろうなぁ。ハードディスクプレイヤーのほうが安いってなぁ……
しょぼいプレイヤー(とはいえ値段にかかわらず、プラスチックでできてるの)は静電気やらに弱い。最初に使ってたプレイヤーはなんていうか、静電気発生すると音量が爆音になったり、速さが変わったり(もちろん音も)してうんこ。今のはそんなに気にならないけど、かばんに入れておくとプチプチとノイズが入る(だから常にポケットの中)
たぶん本体を金属で作れば大丈夫だと思うんだけども…… mp3 player で一番高い部品はメモリだろうなぁ。ハードディスクプレイヤーのほうが安いってなぁ……
(global-set-key #\M-C '(lambda () (interactive) (insert (code-char 582)))) (global-set-key #\M-c '(lambda () (interactive) (insert (code-char 614)))) (global-set-key #\M-G '(lambda () (interactive) (insert (code-char 600)))) (global-set-key #\M-g '(lambda () (interactive) (insert (code-char 632)))) (global-set-key #\M-H '(lambda () (interactive) (insert (code-char 550)))) (global-set-key #\M-h '(lambda () (interactive) (insert (code-char 566)))) (global-set-key #\M-J '(lambda () (interactive) (insert (code-char 556)))) (global-set-key #\M-j '(lambda () (interactive) (insert (code-char 572)))) (global-set-key #\M-S '(lambda () (interactive) (insert (code-char 606)))) (global-set-key #\M-s '(lambda () (interactive) (insert (code-char 638)))) (global-set-key #\M-U '(lambda () (interactive) (insert (code-char 605)))) (global-set-key #\M-u '(lambda () (interactive) (insert (code-char 637))))
こっちが正しい orz. 大文字小文字区別するっつうの。アフォな俺。
(global-set-key #\M-C '(lambda () (interactive) (insert (code-char 582)))) (global-set-key #\M-c '(lambda () (interactive) (insert (code-char 614)))) (global-set-key #\M-G '(lambda () (interactive) (insert (code-char 600)))) (global-set-key #\M-g '(lambda () (interactive) (insert (code-char 632)))) (global-set-key #\M-H '(lambda () (interactive) (insert (code-char 550)))) (global-set-key #\M-h '(lambda () (interactive) (insert (code-char 566)))) (global-set-key #\M-J '(lambda () (interactive) (insert (code-char 556)))) (global-set-key #\M-j '(lambda () (interactive) (insert (code-char 572)))) (global-set-key #\M-S '(lambda () (interactive) (insert (code-char 606)))) (global-set-key #\M-s '(lambda () (interactive) (insert (code-char 638)))) (global-set-key #\M-U '(lambda () (interactive) (insert (code-char 605)))) (global-set-key #\M-u '(lambda () (interactive) (insert (code-char 637))))
こっちが正しい orz. 大文字小文字区別するっつうの。アフォな俺。
何か使用者内でも派閥みたいのがあるのね。三人称代名詞のやつとか……めんどくせーから使うときは ri 使うけどね。結局単語は覚えなきゃいけないんだよなぁ。でもヨーロッパ系のアレだから (dankon とか) まぁ知ってれば覚えやすいのか。遊び用に適当に覚えてみるか。どうせ日本人としか会話しないし。
むしろ英単語覚えろよ俺的な何か。
とりあえず(学校の)夏期講習はうけることにした。家暑いし。暇つぶしに現代文と英語よ(間違ってる)
何か使用者内でも派閥みたいのがあるのね。三人称代名詞のやつとか……めんどくせーから使うときは ri 使うけどね。結局単語は覚えなきゃいけないんだよなぁ。でもヨーロッパ系のアレだから (dankon とか) まぁ知ってれば覚えやすいのか。遊び用に適当に覚えてみるか。どうせ日本人としか会話しないし。
むしろ英単語覚えろよ俺的な何か。
とりあえず(学校の)夏期講習はうけることにした。家暑いし。暇つぶしに現代文と英語よ(間違ってる)
ちっとだけ入力しやすく。
(global-set-key #\C-\M-c '(lambda () (interactive) (insert (code-char 582)))) (global-set-key #\M-c '(lambda () (interactive) (insert (code-char 614)))) (global-set-key #\C-\M-g '(lambda () (interactive) (insert (code-char 600)))) (global-set-key #\M-g '(lambda () (interactive) (insert (code-char 632)))) (global-set-key #\C-\M-h '(lambda () (interactive) (insert (code-char 550)))) (global-set-key #\M-h '(lambda () (interactive) (insert (code-char 566)))) (global-set-key #\C-\M-j '(lambda () (interactive) (insert (code-char 556)))) (global-set-key #\M-j '(lambda () (interactive) (insert (code-char 572)))) (global-set-key #\C-\M-s '(lambda () (interactive) (insert (code-char 606)))) (global-set-key #\M-s '(lambda () (interactive) (insert (code-char 638)))) (global-set-key #\C-\M-u '(lambda () (interactive) (insert (code-char 605)))) (global-set-key #\M-u '(lambda () (interactive) (insert (code-char 637))))
そのまま insert "ĉ" とかやると ? になるので (char-code #\ĉ) とかを評価して突っ込む。
Alt+c で ĉ. でもこれユニコード使ってないと駄目よ。あとコピペするときクリップボードエンコーディング変えないと駄目よ。デフォルトのクリップボードエンコーディングってどこで変えるのよ。
いちいち辞書ひくのめんどくさ。つーかだから英語やれよt
新しくセクション作るのもなんだから追記。
あるブログでエスペラントでは HTML で表示できない文字を使うって書いてあったけど、見ての通り使える。ページのエンコードが Unicode ならそのまま。そのほかの場合でも実態参照を使えば記述できる。
何が言いたいかって、できるだけ思い込みをなくそうと思った、みたいな。
ちっとだけ入力しやすく。
(global-set-key #\C-\M-c '(lambda () (interactive) (insert (code-char 582)))) (global-set-key #\M-c '(lambda () (interactive) (insert (code-char 614)))) (global-set-key #\C-\M-g '(lambda () (interactive) (insert (code-char 600)))) (global-set-key #\M-g '(lambda () (interactive) (insert (code-char 632)))) (global-set-key #\C-\M-h '(lambda () (interactive) (insert (code-char 550)))) (global-set-key #\M-h '(lambda () (interactive) (insert (code-char 566)))) (global-set-key #\C-\M-j '(lambda () (interactive) (insert (code-char 556)))) (global-set-key #\M-j '(lambda () (interactive) (insert (code-char 572)))) (global-set-key #\C-\M-s '(lambda () (interactive) (insert (code-char 606)))) (global-set-key #\M-s '(lambda () (interactive) (insert (code-char 638)))) (global-set-key #\C-\M-u '(lambda () (interactive) (insert (code-char 605)))) (global-set-key #\M-u '(lambda () (interactive) (insert (code-char 637))))
そのまま insert "ĉ" とかやると ? になるので (char-code #\ĉ) とかを評価して突っ込む。
Alt+c で ĉ. でもこれユニコード使ってないと駄目よ。あとコピペするときクリップボードエンコーディング変えないと駄目よ。デフォルトのクリップボードエンコーディングってどこで変えるのよ。
いちいち辞書ひくのめんどくさ。つーかだから英語やれよt
新しくセクション作るのもなんだから追記。
あるブログでエスペラントでは HTML で表示できない文字を使うって書いてあったけど、見ての通り使える。ページのエンコードが Unicode ならそのまま。そのほかの場合でも実態参照を使えば記述できる。
何が言いたいかって、できるだけ思い込みをなくそうと思った、みたいな。
7曲で1800円。
SECOND-COMING FREE-LIVE のセットリスト。RAIN SONG, TARANTULA, APART, 君は僕の物だった が SECOND COMING でやって、今回スカーレットに収録されるやつ。
「スカーレット」8.4 OUT
7曲で1800円。
<%=my "20040428#p04", "SECOND-COMING FREE-LIVE" %> のセットリスト。RAIN SONG, TARANTULA, APART, 君は僕の物だった が SECOND COMING でやって、今回スカーレットに収録されるやつ。
エスペラント語って面白そうなのにサッパリ流行っていない気が。英語におされすぎなだけ? 歴史がないから? それとも他に問題が?
新宿紀伊国屋(高島屋のほう)に行ってみたけど、エスペラント関連の本は一冊も見つけられず。駄目じゃん。
とりあえずネットで見つけたエスペラント系のページを見て適当に書いてみるけど、日エス辞書に都合のいいのが見つけられなかったので、英エスでとりあえずひいて、出てきたやつをエス日にかけてみるとかいうすげー面倒くさいことやってみる。んでも読むことより書くことのほうが楽しいじゃん?
英語頑張って書いても、ネイティブがいるからアレじゃん。こいつ何書いてんだ(プゲラ)とか思われるの嫌じゃん。
エスペラント語って面白そうなのにサッパリ流行っていない気が。英語におされすぎなだけ? 歴史がないから? それとも他に問題が?
新宿紀伊国屋(高島屋のほう)に行ってみたけど、エスペラント関連の本は一冊も見つけられず。駄目じゃん。
とりあえずネットで見つけたエスペラント系のページを見て適当に書いてみるけど、日エス辞書に都合のいいのが見つけられなかったので、英エスでとりあえずひいて、出てきたやつをエス日にかけてみるとかいうすげー面倒くさいことやってみる。んでも読むことより書くことのほうが楽しいじゃん?
英語頑張って書いても、ネイティブがいるからアレじゃん。こいつ何書いてんだ(プゲラ)とか思われるの嫌じゃん。
さて、最後ですよ。もうこれ以上の音源は出ませんよ。タワレコ新宿でバーガーコーナーができてたけど、BEST 以外並んでいなかった。せつねー。
バーガーみたいなチラリズム的なのが好きなのよ。つーかチラリズムね。だめよ全裸は。
さて、最後ですよ。もうこれ以上の音源は出ませんよ。タワレコ新宿でバーガーコーナーができてたけど、BEST 以外並んでいなかった。せつねー。
バーガーみたいなチラリズム的なのが好きなのよ。つーかチラリズムね。だめよ全裸は。
STE 使って編集すると replaygain 情報消えてしまう……まぁ消えるから fb2k で編集したほうがいいぜ? って fb2kwiki にも書いてるんだけども。
予備校行き始めて、ピロウズガシガシ聞きまくってた頃だから高2の冬かな? なんか気づいちゃったわけよ、ちょっと幽体離脱した思考で「あれ? なんだ? あぁ」って。それまで何と無しに可能性は無限大的な思考だったのに、ある日突然気づいちゃったわけよ。つーか気づくのおせーよ俺よ、ってね。もう好奇心旺盛なヤツは死んでしまってて、いつの間にやら何ももって無いわけ、まぁ最初から持ってなかったのかもしれないけどさ。
そう、俺もうちょいいい意味でアブノーマルな人になれるかなって思ってたんだけど、いつの間にやらスーパーノーマルですよ。もう保守ほっしゅ。友人にまで保守的、事なかれ主義とか思われてるわけ。んで実際自分でもそう思ってるわけ。確かにそう。ウェブサーフィンでもいつの間にか既存の巡回サイトしか見て無いし、「あれやってみたいな」って思っても、「まぁ無理か」で終わっちゃうわけ。もう駄目よこれ。俺の中のトム・ソーヤーはもういねぇの。
A fine frenzy はどっか消えて、想像力なんてねぇ。幼稚園のときに図鑑見ながら紙と割り箸で今じゃ絶対作れない飛行機作ったなぁ。どうやってマトモな設計図もなしに作ったんだかサッパリ覚えてない。
予備校行き始めて、ピロウズガシガシ聞きまくってた頃だから高2の冬かな? なんか気づいちゃったわけよ、ちょっと幽体離脱した思考で「あれ? なんだ? あぁ」って。それまで何と無しに可能性は無限大的な思考だったのに、ある日突然気づいちゃったわけよ。つーか気づくのおせーよ俺よ、ってね。もう好奇心旺盛なヤツは死んでしまってて、いつの間にやら何ももって無いわけ、まぁ最初から持ってなかったのかもしれないけどさ。
そう、俺もうちょいいい意味でアブノーマルな人になれるかなって思ってたんだけど、いつの間にやらスーパーノーマルですよ。もう保守ほっしゅ。友人にまで保守的、事なかれ主義とか思われてるわけ。んで実際自分でもそう思ってるわけ。確かにそう。ウェブサーフィンでもいつの間にか既存の巡回サイトしか見て無いし、「あれやってみたいな」って思っても、「まぁ無理か」で終わっちゃうわけ。もう駄目よこれ。俺の中のトム・ソーヤーはもういねぇの。
A fine frenzy はどっか消えて、想像力なんてねぇ。幼稚園のときに図鑑見ながら紙と割り箸で今じゃ絶対作れない飛行機作ったなぁ。どうやってマトモな設計図もなしに作ったんだかサッパリ覚えてない。