MEAN STREET のブックレット見てたら SPORTS の伊藤寛之氏が参加してるじゃねぇかよ的な驚き……なるほどー……
SPORTS と ART-SCHOOL
最低限のリアリティ
あるライトノベルを読んでいて、高校生であるはずの人物(頭脳派の設定)が「~たまえ」とか「~ではないが」とかっつう喋り方をしていてすごい違和感があるというか、リアリティが全くないというか……っていうのを友人に話したんだけど、別に気にしてないみたい。結構誰でも感じてると思ってたけど違うらしく説明するのに困った。しかも上手く説明できない。
現代ファンタジーだとしたら、「現代」の部分はちゃんとリアリティを保っていて欲しいような感じ。あとはあまりにも無理やりすぎる展開とか……無理やりすぎる展開っつうのは上手く書けば同じようにもっていけそうなもんだけどなぁ。それだと無理やりじゃないか。
いい例えも浮かばないし、例えだけで説明しようとすると上手くいかないもんだし、うーむ。
Firefox 調子悪い
先日から my Firefox が調子悪い。ロード中に処理が進まなくなって、終了させてもプロセス残るとか……Options の Advanced が XML パースエラーで表示されないし。
正式リリースされたらプロファイル作り直そう……面倒くさいなぁ。
それと右下にあった CSS 切り替えが消えて使いにくい。
寝すぎな土曜日
AWS / SOAP4R
AWS 使ってみたいなぁと思ったけどエラーでまくり。SOAP::WSDLDriverFactory.new("http://webservices.amazon.com/AWSECommerceService/JP/AWSECommerceService.wsdl").createDriver
ってやると Unknown Element とかがイパーイ。
もちろん(?)wsdl2ruby も使えず。Amazon のドキュメントも複雑な上に英語でもうだめくさい。ていうかダメ。
hey IE!
少しでもトリッキーな CSS 書くとすんごいすっとんだ表示をしてくれる IE を誰か止めてあげてください。
ところで俺が何もしなくとも時間は勝手にすぎていって、センターまで100日ぐらいな感じで、あたしったらどうしたらよいのかしら、という感じで日々を送るのですが、一体どうやったら勉強をする気になれるんでしょう。
いろんな意味で状況が良くないです。例えば今のサイトデザインで、一番上にスペースとりすぎだと思ってはいても、上手く改善する方法が思いつかなかったり、思いついたヤツを実際に書いてみると無理だったり……というかソースから変えたいです。このソースを書いたときから今までのノウハウをドッキングさせたいです。させないと忘れます。忘れっぽいので。
いくつか本を読んだ(風の歌を聴け、1973年のピンボール、蛍・納屋を焼く・その他の短編 / 村上春樹)けれど、読んだというほど読んでいない気がする。ちゃんと読めない。なんていうか、受動的読書みたいな。
ASIAN KUNG-FU GENERATION における CCCD
ニューアルバム「ソルファ」に関してお知らせ (2004.9.30)
10/20発売のニューアルバム「ソルファ」に関して、レーベルゲートCD2ではなく、通常のCDで発売されることが決定いたしました。(アナログ盤は予定どおり発売となります)
マークアップは手を加えています。
アジカン において最大のネックだった部分がなくなる?
近い将来やることtodo
null.lowreal.net 以下を lowreal.net に移動する、かもしれない。もっといいサイト構造を考えたい。
イン・ア・ブックストア
ふと昼休みが終わったときに午後の授業に全く出る気がなくなった。別に授業に出ようがでまいが欠課の数字以外に変わるものがない。家に帰れる時間まで図書館で時間を潰そうと思って行ったみたら休館日。歩いていて何となくそうかもしれないと思った予感があたった。たまには予感ってのはあたる。当たり前だけど。
仕方ないので登戸の本屋で時間を潰すことにした。一冊読み終わるぐらいで丁度いい時間になった。カバンを肩にかけたまま、立ちっぱなしで本を持っていたせいで右腕がおかしくなった。登戸の本屋で傘とヘッドフォンを持ち、2時間半ほど立ち読みしている学ランがいたらたぶん俺。
いちいち数行書いてたファイル読み込み@PHP
ふと思いついて PHP のドキュメント検索してたら file_get_contents
とかいう関数があるしね……
mod_ruby とか XSLT on Ruby とか使って組みたい……
もしもし? 今ひま?
RDF on Ruby?
RDF を扱う Ruby ライブラリってないのかしら。RDFDocument
クラスみたいのがあって、XML とか N3 とか N-Triples とかから読み込めて書き込めるヤツ。誰かつくtt
AWS4, SearchIndex: MusicTracks
Artist を何で検索に使えないんだろう? トラックネームだけで検索したって結果が多すぎるような。何か他にパラメータあるように見えない。勘違いしてるのかしら。
むしろ SearchIndex: Music で Track=? を使えたらいいのに。
そんなわけで Audiroscrobbler のデータ(何故かアルバムの情報はない)で Amazon からアルバム画像ひっぱってくる試みはメンドイっぽい。普通に foo_nowplaying 使えよっていう話だね。うん。そうしよう。
そんなわけで nowplaying イング
こういう風にジャケットを並べると何か楽しい。
さて負荷どれぐらいかかるだろう。約5分に一回 CGI 呼び出す勢い。んで送られてきたやつが知らないアルバムだったら AWS にクエリ投げる。あと、大量に画像呼び出してもアマゾンさんに怒られないのかしら。
ひどく関係ないけどフェイクファーのジャケット好き。
IE で確認するの忘れてた……なんか li { height: 50px; width: 50px; }
が反映されてないんだけど……
overflow: hidden
で解決
IO::popen("ruby")
D:\bin\ruby.exe (33628): *** unable to remap D:\bin\cygssl-0.9.7.dll to same address as parent(0x8F80000) != 0x8F90000 6 [main] ruby 33704 sync_with_child: child 33628(0x620) died before initialization with status code 0x1 398 [main] ruby 33704 sync_with_child: *** child state child loading dlls D:\bin\ruby.exe (33492): *** unable to remap D:\bin\cygssl-0.9.7.dll to same address as parent(0x8F80000) != 0x8F90000 ...
普通にトップレベルとかで実行したらできるけど、IRC 用に書いてるスクリプト中でやるとエラーでる。どこが作用してるのか分からない……
require "soap/wsdlDriver"
をコメントアウトするととりあえず動くけど、 require "soap/wsdlDriver"
だけ書いて IO::popen("ruby")
しても何も起きない。わかめちゃん。
Audioscrobbler Web ServiceAudioscrobbler Web Service
Audioscrobbler Web Service とかいうのがあるけど、肝心の統計が取れないんじゃあんまり意味ないような。FOAF は面白いけど foaf:PersonalProfileDocument て微妙。別に自分で書いたわけじゃないんだけど……
RDF on Ruby? 2
now playing
now playing の ソースとか。ダウンロードできないときは .zip つければいけるくさい。
UTF-8 にした。データファイルとして play.dat. エラーでたときは baz とかいうファイル作ってるわけで……あとサバに入ってる Ruby のバージョン変わったら動かなくなる可能性あり。Marshal.{load, dump} 使ってるからね! 手抜き工事。
devtag 直で書いたままだった……なおした。
花粉症?
台風きてから急に鼻の調子が悪くなった。花粉症っていっても雨続きなうえに閉めっぱなしの窓のどこから進入したんだ的だし、もしかして他に原因があるのかもしれないとか思う。
秋のほうが花粉症ひどい。
BURGER NUDS とその他もろ
BURGER NUDS はインチキ臭くなくてヲタなのにカコイイのが素敵なんだよ!
シロップとアートは好きだけど時々インチキ臭さを感じるときがあったりなかったり。あとインチキくさくなくてもあんまり好きになれないバンドもあるから、インチキ臭さなんて所詮その程度な感じ。
MusicBrainz のくだらない話
MusicBrainz の Style Guildlines が Audioscrobbler の Moderation システムに適用されるっぽいので書きたいことをだらだら。
特に気になるというか微妙なのが Capitalization Guide for Submitting/Editing Data
で、(大まかに言うと)言語が英語の場合は先頭の文字を大文字に、あとは小文字にっていうルールがあるんだけど、果たして日本人が考えた英語っぽい(曲・アーティスト)名前もそれに含まれるんですか的。むしろ前にも書いたから「まだんなこと言ってんのか」とか言われても仕方ないんだけどさ。
CD に書いてある表記をできればそのまま使ったほうがいいと思うんだけどなぁ。
なんていうか、外国の CD の日本盤が全部曲名カタカナだと気持ちが萎えます。日本語の曲名がローマ字とか萎えます。
つーか MusicBrainz よりも国際化に配慮した DB が(ry)。Accept-Language に ja-jp なかったら日本語が含まれるアルバムは編集できないようにしやがれ。まぁインターフェイスが英語しかねぇし英語のサービスだから仕方ありませんか。仕方ないね。諦めろ>俺
Bulkfeeds でうちの RSS1.0
- Bulkfeeds: nulog > latest - RSS Directory & Search
- Old URI: Bulkfeeds: nulog@NULL::something - RSS Directory & Search
いつの間にかちゃんとパースできてる。何が悪かったのかなぁ。前の URI でもアクセスできるせいで二重になってるけど大丈夫かしら。
Audiroscrobbler moderation
Audioscrobbler の FAQ とか、Read First の類にはちゃんと他言語(というか Japanese)について書いてあるなぁ。と読んでる途中に落ちたくさい。
日本語のやつをアルファベットのみの表記にしようとすると一回警告が出る。イイ。
now playing
Amazon のアーティスト名とかアルバム名って何か怪しかったりする(Syrup16g と Syrup 16g が全く別に登録されてる)のでクッションを入れてみる。それと、新譜とかで最初はジャケット画像がなかったのに今はあるみたいなとき困るのでキャッスの削除用のスクリプトを書いた。適当すぎるのでもうちょいマシにしてからパックしなおそう。
Ruby/XSLT て
パラメータ渡せないくさいんだけど、もし本当にそうならあんまりこのまま使えないなぁ。XSLT ファイルを一回パースして xsl:param に値突っ込んで XML::XSLT に渡すのかな……libxslt ってパラメータ渡せないのかな。Ruby側とライブラリ側で二重にパースすることになって微妙に気持ち悪い。気にスンナってか!
くだらない。
あんま書くべきじゃないな。くだらない。一年のときのクラスメイト(俺が 1cm だとすると 1Gm ぐらい努力してる)が指定校推薦に漏れたんだけど、同じクラスの糞とかその他糞とかが指定校とってて切ないんすけど。ぶっちゃけ他人事なんだけどさ、図書室でさえ糞でかい声で糞みたいな話を糞同士集まって話しているやつらが(ry
久しぶりに昨日体育出たら先生になんとも答えづらい質問(お前はやる気あるの?的)をされて腹が立った。今日は腹が痛かった。耳鼻科に行った。ビーカーの水滴について考えた。ネブライザーは苦しい。痰が絡むのやめてほしい。潰れたトマト。夕食はエビフライとハムフライとトウフフライ。でもエビもハムもトウフも空は飛ばない。残念ながら俺も空は飛べない。風が強い日に「お前は飛ばされそうだな」って言われるけど実際飛ばない。タバコ吸ってる夢を見る。ナイフが突き刺さった手を見せられる夢を見る。どっかで見たことある女の子が出る夢を見る。ねじまき鳥のクロニクルが次週で読み終わりそう。
Restruction
サイト構築しなおしてるんだけど上手くいかない。あるいはやる気がおきない。ここ数週間は前にも増して脳みそが空っぽな気がする! 新しく CSS 書こうとしても書けない。やっべヘルプミー。
アクセシブル&(ry
悪悪悪
興味があることは学校で勉強しないほうがいいな。途端に面白くなくなる。
ところで何かあると直ぐにネットやらコンピュータのせいにする「専門家」はインチキ。とりあえずここ最近急激に使われるようになってきたコンピュータのせいにしとけば大体それっぽい。そんな専門家さんの発言をでかく取り上げたりしてマジメに話し合ってるテレビ番組。何か最近テレビがひどく有害に見える。母親はそういう糞番組を見て洗脳されてる。アフィリエイトだらけのブログとテレビは少し似ている。テレビのほうが大規模で大げさ。
IE さん……
やっとこさ CSS 書いたのに IE ではスクロールバーの出る位置がおかしかったりとか。だめだこりゃ。もう……IE デヴェロッパー南無。
- margin の取り方がおかしい
- width: auto; height: auto; の計算方法がおかしい。
- スクロールバーが計算に入ってない。
IE デヴェロッパーが仕様書を読めない(そもそも言葉が理解できない?)せいで回避しようとしても何かのバグに必ず突き当たるっていう。
最初から考え直そう。マジョリティなんて嫌いだ。
サイト構成
全て XML で書いて変換してやる。日記は今のまま。common.xsl を作り、ヘッダ、ナヴィゲーション、フッタをインクルード。-about.xml というファイルがあったら about.xhtml.ja.u8 とか about.html.ja.u8 を出力する build.rb。こういうファイルを作って適切な .htaccess を置いておけば Apache はちゃんと Content-Type: application/xhtml+xml; charset=utf-8
を送ってくれる。
ブラウザの Accept ヘッダが最初に application/xml と text/xml を持ってきているのは何故? 自分の環境だけかもしれないけど。
type-map を使うのもいいかも。自動的に生成してやればいいだけだし。
URI: about URI: about.xhtml.ja.u8 Content-type: application/xhtml+xml; qs=0.9 Content-language: ja URI: about.html.ja.u8 Content-type: text/html; qs=0.7 Content-language: ja URI: about.xml Content-type: application/xml; qs=0.5 Content-language: ja
こんなの (about.var) を作ってやる。Accept の q の値とこのファイルの qs の値をそれぞれのメディアタイプで掛け合わせて最大になったメディアタイプが自動的に Apache に選ばれる。MultiViews も併用できるから作れるのだけ作ればいいかも。
Accept ヘッダが text/xml, application/xml, application/xhtml+xml, text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5 のとき上記ファイルの about をリクエストすると application/xhtml+xml=0.81, text/html=0.63, application/xml=0.45 で about.xhtml.ja.u8 が選択される。about.var がない(上の記述がない)場合で Accept の q が同じ場合はたぶん先頭から順に選択されるので application/xml になる about.xml が選択される。
IE での表示ズレ
よく分からない要因で IE のレイアウトが崩れる(しかも途中からだったりする)事があるけど、ボーダーを設定することである程度回避できるような気がしてきた。border-width を 0 以外にしてその他を適当に設定しておけば大丈夫なときもある。わけわか実装にはわけわか対策。
心機一転
移動
リソースを移動しましたけど自信ありませんっつうかダメかも。
http://lowreal.net/ と http://lowreal.net/logs/latest は同じです。今までトップページが大して意味なかったのを改善したつもり。
tDiary のログはなくなりました。たぶん最近のアクセスログを見ている限り大丈夫っぽい。
見た目ちょっと込み入ったように見えるけどまぁいいや。っていうか誰かどうにかしてくd
now playing も一旦 XML を生成してから XSLT しとります。前より負荷かかるね!
思うに、自分は環境として Windows IE6, Mozilla Firefox 1.0PR, Opera7 しか見てないからいいけど、他の環境も対処してたら今の数倍時間かかりそうだ。Win IE だけでも数時間かかるし……IE は OS のただの付録でおもちゃ。でも他のブラウザを知らなきゃ乗り換えられない。
Opera の全画面モードでなんかコンテンツがふっとぶときがある。
それとフォントサイズが大きいとヤバい。キモすぎ。
本
dc: コンテナか列挙か
dc:creatorの「内容モデル」 (via STUDIO DDT ONLINE - Diary archive - 2004 10) で DCプロパティの値が複数あるとき
について書いてあった。前ちょっと迷ったやつ。DC の場合はただ単に列挙するほうがいいかもしれない的。
ブラウザ全画面について
滅多に全画面なんて使わないけど、全画面表示に点で言えば俺は IE が好きだ。Opera もいいんだけどそもそもレンダリングが好きじゃないし、FF はタブとかが残ってしまうから論外。でも自分はタスクバーが上部なので IE で全画面表示すると飛び出てくるギミックがたまに上手くいかなかったりする。一応考慮されているみたいだけど、どうせなら下側から出てくるようにするか、あるいはタスクバーは出さないようにするようにしてもいいような気がする。
Opera?
何だか Opera で凄いことになっているらしいことを聞いたのだけど再現しにくい。今のところ分かっているのは見出しリストをクリックしても飛ばないとか、フルスクリーンだと見出しリストにホバーした瞬間ふっとんでどっかいくぐらいだけども……見出しリスト関係なく a 要素にホバーしたらどっかふっとぶ。
あーあと、ホイールがクリックしないと効かないし、 a 要素にホバーしたら又効かなくなる。Opera で overflow: auto による模擬フレームは上手くいかないんだろうか。
Opera7.6p1 のとき .htaccess の DefaultLanguage ja があると Not Acceptable になった。画像がこれになると表示されなくてハマった。のりさんに教えてもらった。むずかしい。
- 日本語訳:The Owen Hack Opera6 の CSS ハック。
- CSS_Hacks
何かもう CSS を PHP かなんかで生成してやろうかしら。UA 偽称されたらダメだけど UA 偽称する人はそれなりの覚悟があるに違いない!
とりあえず position: fixed; を使用するようにしてみた。overflow するのは IE のみに。よって Gecko でも完全な表示じゃない。つまり全部のブラウザでそれぞれ妥協してる。
- IE では左の見出しリストが表示されない。
- Gecko と Opera では上のナヴィゲーションが固定されない。
Link Toolbar
自分の FOAF の変換したやつを見ていて、ふと Link ToolBar を見てちょっと感動。XHTML 中に埋め込んだ Metadata を読み込んでリストアップしているっぽい。素敵。
class="FOAF.interest" とかが指定してある要素の中の a 要素を抜き出してるのかな。li だけかな。hreflang も読んでる。
GDHM の歌詞
Good Dog Happy Men のサイトに歌詞だってさ。というかいつの間にか FF でも見れるようになっとる。よかったよかった。つーか聞きたいです。CDがほしいです。ライブむりです。
日記簡易表記
さて、また哀さんのとこをパクって簡易表記を導入してみた。<a>Syrup16g</a>
と書くと lexicon.xml の Term = 'Syrup16g', SeeAlso @href にリンク。それがなかった people.rdf で foaf:nick を検索して foaf:weblog @resource にリンク。拡張しやすいのが XML のいいとこだ。むしろ読んだまんまだけど。まぁでも導入するときは慎重にやらないとなぁ……一回書いたら消せない(と考える)し。
はてなのキーワードリンクにちょっとだけ似てる。
foaf:nick はちょっと違うかもしれないとか思いつつ。called とかがあればいいのに。
台風・雨・ネゴシエーション
どっつぃさんに IE でダウンロードになるぜ的指摘を受けたので思い返してみると application/xhtml+xml を受け入れるようにレジストリ改変してたの思い出してあちゃーみたいな。
それと type-map の書き方をちょっと間違っていたくさい。同じファイルに複数のコンテントタイプ (つまり URI が同じセクションを複数) は無理っぽいのでちゃんと .html も .xhtml を作るようにした。
- type-map の text/html と application/xhtml+xml の qs の値を同じする。
- type-map の順序は text/html を先にもってくる。
- ちゃんとタイプ別にファイルを作る。
Gecko の Accept はデフォルトで application/xhtml+xml が先にくるので qs を同じ値にしても OK. IE は */* になってるので先に text/html をもってきてやる。そんな感じ。
分かりにくいのでサンプル
全部 XML で書いて XSLT にかけるようにするといろいろ便利だ。共通部分を完全に XSLT のテンプレートとして分けられるし。アプリケーションが違っていても XML + XSLT であればシームレス。
Builder Objects, Ruby, XML
Builder Objects { | one, step, back | } via Devlog(2004-09-14)
面白い。method_missing 使っててすごい簡潔な感じ。テキストそのまま書いていくのとどっちが分かりやすいかつったら微妙だけど面白い。
らいふすたいるおーばー
13時に寝て18時に起き、5時に寝て、7時におきる。何かズレているようで、夜中のほうが頭が回るのです。
昨日は黒板に書いてあったこと勘違いして一科目試験を受けていないし、センター方式とかいうから殆ど選択問題だろうと踏んでた公民が普通に書き問題多杉。その他もろもろいろいろあって、ここ数日は全く運がないようなことに気付きました。気付いたからってどうしようもないんですけど。
Ruby, 羊, くらげRuby, Sheep, Jellyfish
Ruby といえば赤色の宝石で羊。赤色で羊といえば Syrup16g の HELL-SEE のジャケット。Syrup16g のジャケットといえばクラゲ。クラゲは下等生物じゃない。
Mozilla Update
update.mozilla.org をセーフリストに入れてるのに .xpi をインスコできない。いみふ。当たり前だけど他のサイトからはできる。HTTPS だから?
それと、mozdev.org はサブドメインに拡張のアレふってるからいちいちセーフリスト加えるのがメンドイ。ワイルドカードとかできないのかなぁ。
REXML, SourceFactory, Element
これ全く使えないんですけれど、何か他にモジュールとか、もしくはバージョン制限とかあるんですかね。
p REXML::Version #=> "3.1.2" or "2.7.3" src = REXML::SourceFactory.create_from("<a attr='val'>text<b/></a>") puts (e = REXML::Element.new(src)) #=> </> puts REXML::Element.new("child", e) #=> <child/> puts e #=> <><child/></> puts REXML::Element.new(e) #=> </>
これは 私家版REXML APIリファレンス のやつをそのままコピって実行してみた結果。
自力でエレメンツちまちま追加してくとか DOM 並に面倒臭いのですが!
rexml/element.rb の initialize に Source クラスのインスタンス渡したときの処理が 3.1.2 でも 2.7.3 でも見当たらない。コメントにはちゃんと書いてあるんだけど、未実装なのかな。
それと REXML::Element.new("<ele>")
の結果が <<ele>/>
なのはどうなのよ。使用できない文字渡されたら例外のほうがいいと思うんだけど。
Document と同じ build メソッドを作ってやればいいのかな。あとで試そう。
module REXML class Element def initialize( arg = UNDEFINED, parent=nil, context=nil ) super(parent) @elements = Elements.new(self) @attributes = Attributes.new(self) @context = context if arg.kind_of? String self.name = arg elsif arg.kind_of? Element self.name = arg.expanded_name arg.attributes.each_attribute{ |attribute| @attributes << Attribute.new( attribute ) } @context = arg.context elsif arg.kind_of? Source build arg self.name = @elements[1].expanded_name @attributes = @elements[1].attributes @elements = @elements[1].elements @children = @children[0].instance_eval("@children") end end private def build(source) Parsers::TreeParser.new(source, self).parse end end end
無理やりなんだけどこれでいいのかなぁ。表示的には思い通りだけど何か穴がありそうだ……
テストの終り。寝る。
ボーダー。スペース。スタイル。挙動不審。
チマチマスタイルの細部変えてて気持ち悪いかと思いますがご容赦を!
再描画。完全フリーズについて
SP2 入れてからまたウィンドウ最小化したときとかに完全に Windows が応答しなくなるようになった。マウスもキーボードも一切聞かなくなる。本体からピと音が鳴る。あとはもうリセットボタン押すのみ。
前回のときはサムライ消したら直ったから、原因は違うかもしれない。でも症状は全く同じ。っつうか一日に二度も三度も完全にハングされたらやってらんねー。
time.rb タイムゾーン
time.rb が xmlschema でパースしたときタイムゾーンを無視しているみたい。いや、無視じゃなくて Ruby オブジェクトにするとき地方時間になってないのか。
Time.now.xmlschema #=> "2004-10-23T03:27:57+09:00" Time.xmlschema(Time.now.xmlschema) #=> Fri Oct 22 18:28:11 UTC 2004 Time.xmlschema(Time.now.xmlschema).xmlschema #=> "2004-10-22T18:28:25Z"
あらまぁ。
Time がゾーンとマイクロ秒を同時に扱えないのか。何かよくわからない。地方時ってシステムの時計のことなのかな。それ以外の地方はどうやってセットするんだ。てか Time.to_s のフォーマットって読み難い。
TrackBack? Pingback?
何が違うんだろう? XML-RPC かどうかの違い? それだけ?
excerpt がないのと、どんなリソースにでもバックできるってのが Pingback かなぁ。それだけかね。
でも TrackBack よりは送信先の URI が一定で、パラメータ取得するのが容易な Pingback のほうが好きだな。
不正な ping 調べるのが結構面倒だ…… sourceURI に自分のホストを含まず targetURI に自分のホストを含むときに受付ですかね。
Negotiated Script
ネゴシエーションで CGI ファイルが選択されたとき、拡張子無しのファイル名がインタプリタに渡されて っぽい。どうしたらいいかな。いや原因は違うのかもしれない。Script File Not Found!
になる
XREA SUPPORT BOARD で発見 MultiViews設定時のCGIWrap Error
Pingback 実装
とりあえず実装してみた。http://lowreal.net/rpc/xmlrpc に ping 送ると表示されるように。実装は Ruby。logs の各日付への ping しか受け付けてない。そのうちそれ以外のリソースにも対応させてみたい。ようは受信したら trackback と同じように書き込めばいいだけだし、この日記のデータは XML だから扱う言語が Ruby だろうが PHP だろうが関係なくてよろしい。XML 操作するのは割と面倒臭いんだけど。
作ってて何となく感じたのは、ちゃんとツールが実装すれば tDiary のリファラのように働くなぁと。トラックバックは明示的にで、ピングバックはそうじゃない感じ。Auto Discovery だったらどっちも大差ないか。
Ruby で作られた blog から Pingback を送るためのモジュールがっ。
しかしデータ直書きの場合はいかにして自動で送ればいいだろう。a 要素抽出してキャッシュ。前回のキャッシュと比較して追加されていたら pingback ってあたりかなぁ……
あぁ……Faults Code って XMLRPC::FaultException.new
で作るのか……
自動で Pingback するようにしてみた。'http://' で始まる attribute::href を探して撃つ。撃ったらキャッシュに突っ込む。次から追加されたのだけ撃つ。いちいち全部のファイルをスキャンするのはアレだけど仕方ない。少しずつ更新するの (C-c C-c) に時間がかかるように……
地震・COLD BURN
巻き戻り?
夢
Audioscrobbler Top Artists
now playing に Top Artists 表示してみる。データは Audioscrobbler からひっぱってくる。データの更新は今のところ手動。そんなに更新されないし。一日に一回 cron で動かしてもいいかもしれない。
Top Tracks も表示してみる。ごちゃごちゃしてきた。いらんかもしれない。
ちなみに何故か統計情報を XML やらテキストデータやらで取得できないので普通に正規表現で抜いてくることにしてみた。
ECMAScript でイテレータ
イテレータってのは Ruby の [1, 2, 3].each {|item| puts item }
ですけど、ふと思いついたので ECMAScript (Javascript) でイテレータっぽいもの作ってみる。関数もオブジェクトも同じ(()
つければ実行できる)らしいので(prototype 型 OOP とかむしろ OOP とかわかんねぇんですが)関数を引数に渡せばいいわけで(ry
function Array_each(func) { for (var i = 0, len = this.length; i < len; i++) { func(this[i]); } } Array.prototype.each = Array_each; [1, 2, 3, 4].each(function (i) { alert(i); });
はいはい。誰でもわかりますね。「なんだデキンジャン!」とか喜んだ俺はバカですね。くそ。まぁ美しくはないですけども……
script on IE
IE で script 要素を書くと全くレンダリングされないのだけれど、どうしてだろう? もちろん Gecko と Opera なら大丈夫だし、script 要素を消せば表示される。ためしに XML 宣言, html, head, script, body, h1 要素だけで試したけど表示されなかった。謎すぎ……
ってあー。書く前に散々悩んだのに書いてから気付いた。script 要素の閉じタグがないとだめなんだ……あぁもう
またハング
また前触れなく完全にハングした。今回は画面の切り替えとかじゃなかった気がする。ただたんに画面の切り替えのときに起こりやすいだけかもしれない。スキャンディスクしてみた(させられた)けどエラーなし。誰かたすけt
getElementsByTagName on Gecko
Gecko の getElementsByTagName がおかしいなぁ。document.getElementsByTagName("*")
の結果が少ない。具体的には body とその中身が入ってない。html, html/head, html/head/* だけ。おかしい。
そもそも document.documentElement.childNodes
に body が含まれていない。DOM 上から抹消されとる。
わかった! document.documentElement.childNodes
が実行される時点では DOM に body 以下が読み込まれていないんだ。
はぁ…… Opera は Event.srcElement 持ってるくせして中身がないっぽい。よう知らんけど fromElement がメンバにあるか (in
) 調べればいいらしい……クライアントサイドなんて……
Links の微自動化
Bookmarks Synchronizer で Links ページを半自動的に作ってみるテスツ。ただファイルサイズがでかすぎ (現時点で元の XML ファイルが 115kb) でそれを PHP で動的に変換してるからさぁ大変。
負荷ポインツが増えないことを祈りつつ……それとクライアントサイドスクリプト使っているから(昨日のやつはこれだ!)なんか大変だったら教えてください。
サイズでかくなりすぎたら favicon を同期とるのやめよう。埋め込み……
Script? CSS?
ins, del, blockquote の属性の表示を DOM で行うようにしてみた。でもインライン ins, del には対応してなかったりする……CSS とどっちがいいだろう。スクリプトきっていたら表示されないし、ins や del は CSS でやっても IE 以外は困らないと思うけど、blockquote の cite はいちいちソース開いたりプロパティ開いたりするのが面倒だから DOM で生成したほうが有用に働くんじゃないかなぁと。
ins, del はやっぱ CSS にしとこうかな……インラインに対応するのめんどくさ。
innerHTML on IE
理解力のなさ。
ECMAScript におけるオブジェクトは連想配列 (obj.propertyX == obj["propertyX"]) ってのは分かっていたつもりだったのに Object Initializer Object Initialiser って何だよとか思ってた。よく FF の拡張なんかで見る foobar : function () {}
だけど、ちゃんと考えれば連想配列のモンスターバージョンの一部だった……形が変わって完全混乱ですよ。あぁ……
// 普通に見える連想配列 obj = { "key" : "val", "key2" : "val2" }; // 不思議定義に見える連想配列 obj = { propertyX : "", foo : function () { // do foothing }, bar : function () { // do barthing } };
キーにダブルクオーテーションはあってもなくてもいいらしい。Identifier が指定されたときは StringLiteral に勝手に変換される。そんなわけでオブジェクトのメンバのリストを取得するのと連想配列を順番に取得するのに同じ for ( - in - )
が使えると……
Object.prototype
Object.prototype.foo = function () {alert(this);} document.foo(); //=> [object HTMLDocument] alert(document.documentElement.childNodes); //=> [object NodeList] document.documentElement.childNodes.foo(); //=> Error: (snip).childNodes.foo is not a function.
なんでだろう? うーん全部のオブジェクトは Object オブジェクトの仲間(?)なんだよねぇ。 いや、なんで Object.prototype に設定すると他のオブジェクトから呼べるかよくわからないんだけど……プロトタイプ辿ったら Object.prototype にいきつくのかなぁと思いきや document.prototype
は undefined
だし……
Opera だと [object NodeList] が表示される。Gecko のバグなのかな。
あ、インスタンス化(?)されてるから document.prototype
じゃなくて document.constructor.prototype
か。それならわかる。いやいやわかんないけど。なんかイメージできない。prototype もオブジェクトであるからコンストラクタがあるはずで、さらには参照している prototype があるかもしれない的? document.constructor.prototype.constructor
が [object Object] だからたぶんそれであっているはず……
あぁ。インスタンスってのはやっぱクラスベースに使う用語なんだ……インスタンスとか言い出すと全部インスタンスだよなぁ……
悪夢が続く
寝るとき少し浅い眠りに入ってから深くなると思うのだけど、その浅い眠りのときに悪夢をよく見る。悪夢でなくとも布団に強く押し付けられる感覚にはよくなる。よく、というか毎日。一回そうなると「寝る→薄く起きる」を繰り返してなかなか眠れなくなる。回避方法としては直前まで音楽を聴いておくこととかぐらいしかない。スピーカーがデストローイ!なのでヘッドフォン……
ECMAScript Object.prototype
昨日書いたのは間違いだったっぽい……
function Foo(len) { this.length = len; } Foo.prototype = { unk : function () { alert("unk"); } } alert(Foo.prototype.constructor); //=> function Object() {} Object.prototype.bar = function () {alert("bar")} Array.prototype.baz = function () {alert("baz")} Foo.prototype.constructor = Array; alert(Foo.prototype.constructor); //=> function Array() {} var ifoo = new Foo(3); ifoo.unk(); //=> unk ifoo.bar(); //=> bar ifoo.baz(); //=> ifoo.baz is not a function
prototype のプロトタイプを辿っていくのがプロトタイプチェーンじゃないのか……それとも prorotype のプロトタイプというのを勘違いしているんだろうか……
現実逃避スクリプト
IE と Gecko 系とたぶん document.styleSheets がちゃんと実装されているブラウザで動くスタイルスウィッチャみたいなものを作ってみた。左下に表示させてみるテスツ。
いらない。
スクリプト使ううえで
まず絶対やらないのは body 以下にスクリプトを直接書くこと。つまり onclick
とかの属性は書かない。ヘッダの <script type="text/javascript" src=""></script>
を書くだけで完結するコードを書く。メッセージを表示させるための領域が欲しかったりしたら DOM で作る。上手くいかなかったら諦める。
忘れそう。模試について
前回(2004-10-10)の全統記述私大を完全に忘れていて受けてないとかいうアフォなことをやったもんで、明日(全統マーク)も忘れそうな勢いだったのを中和しとかないとなぁと。tu-ka 勉強してない人がうける模試ってどういう意味があるんだろう。別に超受けたくねぇよっていう意味じゃないけど、やるなら平日に……
忘れずに行った! オレえらすぎ! そして出席番号をまた間違えた! 前回は届いたけど今回は校外だから届かないかも! 五水井!
Object.prototype にプロパティを追加する副作用
できるだけ追加しないほうがいいねっていう話。なぜなら、単純に連想配列としてオブジェクトを作っても prototype に追加したプロパティが列挙されちゃうわけで面倒くさいから。例えば Object.prototype.foo = function () {retrun this};
+ var hash = {}
のとき for (prop in hash)
とかやると foo が出てきたりするわけですよ。うん。やめよう。