XML 宣言を省略したことにより、IE で描画モードが変わっていたせいみたいだ。唐突に思い出して omit-xml-declaration="no" にしたらなおった。でも CSS で解決する方法がないっぽいのはどうすればいいんだろ。標準モードで描画させないほうがいいんじゃないか。

  1. トップ
  2. css
  3. なぜホームページだけ表示が崩れていたか
  1. トップ
  2. web
  3. なぜホームページだけ表示が崩れていたか

ちゃんとエラークラス吐くバージョンがリリース。kiyoya さんのパッチ。

ruby extconf.rb --enable-error-handler して Makefile 作成。ちゃんと exslt もリンクさせるため、OBJS に /lib/libxml2.dll.a /lib/libexslt.dll.a /lib/libxslt.dll.a を追加。なんか知らんけど明示的に指定しないとリンクされなくて ld が怒る@cygwin (このバージョンに限らず)

XML::XSLT::XSLTError と、そのサブクラス XML::XSLT::ParsingError, XML::XSLT::TransformationError が追加される。変換用 XML ファイルのエラーなのか、XSLT ファイルのエラーなのかはわからなく。そのかわりエラー発生のタイミングが変わった。serve 時ではなく、xml= のときに出るようになった。だから問題ない。

エラーの message の意味がないっぽいので、--enable-error-handler 時には rb_raise 第2引数を STR2CSTR(rb_ary_to_s(rb_cvar_get(cXSLT, rb_intern("@@errors")))) とかにしたほうがいい感じ。--enable-error-handler は errors が定義されるのがキモイけど俺はそんなに気にならない。

第二引数を変えるだけだと以下のコードがダメ。

xslt = XML::XSLT.new()
xslt2 = XML::XSLT.new()
begin
xslt.xml = File.read("examples/fuzface.xml")
xslt.xsl = File.read("examples/fuzface.xsl")
out = xslt.serve()
print out;
rescue XML::XSLT::XSLTError => e
p XML::XSLT.class_eval("@@errors") #=> (1)
p e.message #=> (2)
end
p XML::XSLT.class_eval("@@errors") #=> (3)
begin
xslt2.xml = File.read("examples/fuzface.xml")
xslt2.xsl = File.read("examples/fuzface.xsl")
out = xslt2.serve()
print out;
rescue XML::XSLT::XSLTError => e
p e.message  #=> (4)
end

(3) で (2) のときと同じ (4) のとき前のエラーメッセージが紛れ込む。クラス変数使ってるからだろうけど、単純にインスタンス変数にしないのにはなんか理由があるんだろうからとりあえずそのままにして、

void xslt_raise(VALUE cError) {
#ifdef USE_ERROR_HANDLER
VALUE errors = rb_cvar_get(cXSLT, rb_intern("@@errors"));
VALUE error_str = rb_ary_to_s(errors);
rb_ary_clear(errors);
rb_raise(cError, STR2CSTR(error_str));
return;
#endif
rb_raise(cError, "");
}

とか作って経由させ、リセットさせてみる。XML::XSLT.errors は常に空の配列が返るようになって無意味になる。

ruby-xslt.0.9.1.error_message.patch

スレッドの切り替えってどういうタイミングなんだろう。

  1. トップ
  2. xslt
  3. ruby-xslt 0.9.1
  1. トップ
  2. ruby
  3. ruby-xslt 0.9.1
  1. トップ
  2. xml
  3. ruby-xslt 0.9.1

Visitors を XREA 上で使う。のりさんにコレいいよ、とか教えてもらったので以下略

特に何も考えなくても make できる。

XREA の生ログは最新5日分しか保存されないので、CRON でバックアップをとるようにする。んで、ついでに visitors 解析。

#!/bin/sh
cd log
DOMAIN="lowreal.net no-real.net headphone.lowreal.net"
#DOMAIN=`ls *[^0-9].log | sed s/\.log$//`
for domain in $DOMAIN
do
echo $domain.log
gzip $domain.log
mv $domain.log.gz $domain.log.`date +%Y-%m-%d`.gz
zcat $domain.log.`date +%Y-%m`-[0-9][0-9].gz > tmp # パイプると Resource temporarily unavailable ?
../visitors tmp -A -o html -f ../public_html/log/$domain.log.html --trails --prefix http://$domain
done
rm tmp

上のようなのを FTP ログイン後のルートに visitors と一緒に突っ込んどく。んで、毎朝6時ぐらいに実行されるようにしとけばあとはてきとう。

しかし XREA でコマンド実行しようとすると Resource temporarily unavailable になりまくる。いぢめ。

  1. トップ
  2. xrea
  3. visitors on xrea
  1. トップ
  2. log
  3. visitors on xrea

違いがわからんうえに、ちゃんとキーボードと対応してない。英語キーボードだとちゃんと対応してんのか?

e.which, e.charCode, e.keyCode, String.fromCharCode(e.which) の順で、前者が keydown、後者が keypress。環境は Firefox 1.0.7

;
61 0 61 = / 59 59 0 ;
C-;
61 0 61 = / 61 61 0 =
C-+ (Ctrl+Shidt+;) テンキー側の C-+ は問題なし
61 0 61 = / 61 61 0 =
C-:
59 0 59 ; / 59 59 0 ;
C-| (Ctrl+Shift+\)
220 0 220 テ・ / 発生しない
C-a
65 0 65 A / 97 97 0 a
C-F1
112 0 112 p / 0 0 112

差が一定ってわけじゃないし、どうやってマッピングすればいいか見当がつかない。さらに IE だとイベントが発生するタイミングがまた全然違う。帰れ。

Gecko_DOM_Reference:Examples#Example_7:_Displaying_Event_Object_Constants

つまり、正確に処理するにはキーボード配置を自分で作らないとダメなわけか。入力された文字を取得したいのに、入力されたキーしか取得できない。Gecko の e.charCode って charCode じゃないだろ。

それにしてもなんでセミコロンの位置でDOM_VK_EQUALSなんだろう。わからん。

  1. トップ
  2. javascript
  3. Event.which, Event.charCode, Event.keyCode
  1. トップ
  2. script
  3. Event.which, Event.charCode, Event.keyCode
  1. トップ
  2. dom
  3. Event.which, Event.charCode, Event.keyCode

似非 xyzzy

テキストエリアの管理部分と、モード用機能を分離してみた。似非ミニバッファ搭載!

新しくモード用のオブジェクト (関数) をつくればいい感じに。まぁあんまり綺麗な実装じゃないんだけど……

似非ミニバッファは M-x でフォーカス移動。入力した内容を eval した結果を挿入。M-x new Date() RET とかやれば Sat Nov 05 2005 06:57:29 GMT+0900 みたいに挿入される。ただの eval なのでグローバルに見えてる関数じゃないと使いにくい。

モードはテスト用に xmlc (中身は未実装)。M-x c RET とかやるとモード変更。これは特別に判定させてる。

余談だけど M-x (new Date()).w3cdtf() RET とか眠い。

再び Firefox 限定になりました。IE と Gecko とだと、イベント起きたときの e.which とか e.keyCode とかがバラバラなんだもん。IE は Ctrl+* で keypress が発生しないし。

まぁ色分けできない textarea ではかなり微妙な感じになってきました。XML はインデントさえまともなら色ついてなくてもいい (逆にインデントがまともじゃないと色がついてても読めない) んだけどねぇ。

リージョンをサポート。C-SPC でマーク。C-w (kill-region), M-w (copy-region-as-kill), C-y (yank), C-x n (narrow-to-region), C-x w (widen)

  1. トップ
  2. web
  3. *-mode in textarea
  1. トップ
  2. script
  3. *-mode in textarea
  1. トップ
  2. javascript
  3. *-mode in textarea

電撃 hp 2005 OCTOBER VOLUME 38 「しにがみのバラッド。てのひらの銀河<前編> Cherish You (Side-A)」 76ページ にヘッドフォン娘がっていう話を友人から聞いて貸してもらった。絵のやつはアートモニターシリーズっぽいヘッドフォン。

作中にデムパったヘッドフォンガールがでてくるんだけど、名前が黒崎クロエ。笑うって。笑うって。

樋浦トイロってなんだっけっていう感じだったけど親父の話が出てきたところで思い出す。あぁ。あぁ。とかなんとか。

臭いがするのは、メロディーフラッグ (BUMP OF CHICKEN)・MISS WORLD (ART-SCHOOL)・乾いた花 (ART-SCHOOL)・鋼鉄の朝 (BURGER NUDS) trick or treat (Good Dog Happy Men)

なんか消化しきれてないんだなぁって思った。ばらばらというか、なんというか。思い込みの激しい登場人物が多いとかなんとか誰かが言ってました。

ヘッドフォンの役割は理想的だった。役割なんて1つしかないけど。

  1. トップ
  2. book
  3. しにがみのバラッド。@電撃hp 38
  1. トップ
  2. text
  3. しにがみのバラッド。@電撃hp 38
  1. トップ
  2. music
  3. しにがみのバラッド。@電撃hp 38
  1. トップ
  2. headphone
  3. しにがみのバラッド。@電撃hp 38

テレビでやってたのを見た。

セーラー服!

メガネの女の子が危険

なんか短いよね。特に前半

竹中直人が割りと好きなんだけど、こう、やっぱ竹中直人じゃないとダメだなって感じがしてよかった。あとドラムソロがカッコヨサス

  1. トップ
  2. tv
  3. スウィングガールズ
  1. トップ
  2. movie
  3. スウィングガールズ
  1. トップ
  2. music
  3. スウィングガールズ