2005-11-08 ========== なぜホームページだけ表示が崩れていたか -------------------------------------- Reference URI: http://lowreal.net/logs/2005/11/08/1 Written Time: 2005-11-08T12:59:59+09:00 Tags: css web XML (Extensible Markup Language) 宣言を省略したことにより、IE (Internet Explorer) で描画モードが変わっていたせいみたいだ。唐突に思い出して omit-xml-declaration="no" にしたらなおった。でも CSS (Cascading Style Sheets) で解決する方法がないっぽいのはどうすればいいんだろ。標準モードで描画させないほう がいいんじゃないか。 ruby-xslt 0.9.1 --------------- Reference URI: http://lowreal.net/logs/2005/11/08/2 Written Time: 2005-11-08T14:16:20+09:00 Tags: xslt ruby xml ちゃんとエラークラス吐くバージョンがリリース。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::Trans formationError が追加される。変換用 XML (Extensible Markup Language) ファイルのエラーなのか、XSLT (XSL Transformations) ファイルのエラーなのかはわからなく。そのかわりエラー発生のタイミングが変わった。 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("examp les/fuzface.xml") xslt.xsl = File.read("examples/fuzface.xsl") out = xslt.s erve() print out;rescue XML::XSLT::XSLTError => e p XML::XSLT.class_eval("@ @errors") #=> (1) p e.message #=> (2)endp XML::XSLT.class_eval("@@errors") #=> (3)begin xslt2.xml = File.read("examples/fuzface.xml") xslt2.xsl = File.re ad("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_g et(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](/2005/ruby-xslt.0.9.1.error_message.patch) スレッドの切り替えってどういうタイミングなんだろう。 visitors on xrea ---------------- Reference URI: http://lowreal.net/logs/2005/11/08/3 Written Time: 2005-11-08T19:19:34+09:00 Tags: xrea log [Visitors](http://www.hping.org/visitors/) を XREA 上で使う。のりさんにコレいいよ、とか教えてもらったので以下略 特に何も考えなくても make できる。 XREA の生ログは最新5日分しか保存されないので、CRON でバックアップをとるようにする 。んで、ついでに visitors 解析。 #!/bin/shcd logDOMAIN="lowreal.net no-real.net headphone.lowreal.net"#DOMAIN=`ls *[^0-9].log | sed s/\.log$//`for domain in $DOMAINdo 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 unavailab le ? ../visitors tmp -A -o html -f ../public_html/log/$domain.log.html --trail s --prefix http://$domaindonerm tmp上のようなのを FTP (File Transfer Protocol) ログイン後のルートに visitors と一緒に突っ込んどく。んで、毎朝6時ぐらいに実行され るようにしとけばあとはてきとう。 しかし XREA でコマンド実行しようとすると Resource temporarily unavailable になりまくる。いぢめ。