LUNKHEAD の東京にてを聞くたびに、顔は浮かんできても名前が思い出せないことなんてあるんだろうか、とか考えていた。でも、今日ふと幼稚園のころの友達の名前を思い出そうとしたら顔しかでてこなかった。名前が思い出せないってかなり困るなぁ。
不思議なのは、小学生・中学生のころのやつは名前はでてきても顔がでてこなかったりする。あ、でも顔しか思い出せないやつもいるな。何の違いなんだろうか。
LUNKHEAD の東京にてを聞くたびに、顔は浮かんできても名前が思い出せないことなんてあるんだろうか、とか考えていた。でも、今日ふと幼稚園のころの友達の名前を思い出そうとしたら顔しかでてこなかった。名前が思い出せないってかなり困るなぁ。
不思議なのは、小学生・中学生のころのやつは名前はでてきても顔がでてこなかったりする。あ、でも顔しか思い出せないやつもいるな。何の違いなんだろうか。
何度やってもできない。わけわかんないです。-lxml2 -lxslt ついてますよ? /lib に libxslt.dll.a libxml2.dll.a とかありますよ?
つまり今うちの環境で動く XSLT on Ruby はないわけですか。Ruby で XML しちゃダメですか……
にぎやかな孤独。
ちなみに、こういうケースでは-lで指定せずに直接*.aファイルを一緒に指定するとうまくいくことがあります。裏技ですが。
とかいうのを見つけたのでやってみたら成功?した。
Makefile の OBJS の最後に /lib/libxml2.dll.a /lib/libxslt.dll.a
を追記。
でもこれ tests/ 以下のやつ実行するとエラーでまくるんだけど……
-\ruby-xslt\tests>ruby test_parameters.rb XPath error : Invalid expression the first parameter ... ^ runtime error Evaluating user parameter p1 failed nil test_parameters.rb:13:in `serve': cannot convert nil into String (TypeError) from test_parameters.rb:13 -\ruby-xslt\tests>ruby test_functions.rb Entity: line 1: parser error : Start tag expected, '<' not found Float ^ Entity: line 1: parser error : Start tag expected, '<' not found String ^ Entity: line 1: parser error : Start tag expected, '<' not found string ^ Entity: line 1: parser error : Start tag expected, '<' not found TrueClass ^ Entity: line 1: parser error : Start tag expected, '<' not found Array ^ 1 is a Float and becomes 1 'string' is a String and becomes string true() is a TrueClass and becomes true nodes are type Array and are passed through: Hello, (1) World!(2) '
なんか parameters に渡すやつが XPath 式として評価されているようだからクオートしてみたらとりあえず動くけど、一度 xslt.serve したあと、parameters に新しく値をセットして xslt.serve しても xsl:param は更新されてない。正しい挙動? 違う気がするけど、いちいち xslt インスタンス作り直せってことなんだろうか?
function のほうはよくわからない。function からの返り値を XML として評価しているように見える。そのようだ。"<dummy>" +arg.class.to_s + "</dummy>"
とかいう文字列を返してやると string( returned value ) みたい (これは xsl:value-of の効果=xsl:value-of は最終結果を string 関数に渡す) になる。おそらく node-set っぽいのを返したりできるようになってる?
伸びてきてうざったいので切りたいけれど、床屋とか、美容院とか嫌いなんだ。ほんとに、心のそこから嫌い。髪を切ってるときに話しかけてくるとか、あるいはずっと黙っているとか、どっちの雰囲気もダメだ。
プログラム書くとき最初になにをすればいいか忘れてしまった……最終的にサイトから PHP を排除したい。ということで日記のスクリプトを Ruby に移植・再編するんだけど、どうすればいいかなぁ。
ruby-xslt 使うと XSLT から Ruby のメソッドを呼べるみたいなので、とても使ってみたい。(何をするか、はともかく)
ただ、ちょっと実装が残念な形。
class XML::XSLT def round_trip( arg ) arg end def type( arg ) arg.class.to_s end end xslt = XML::XSLT.new() xslt.xsl = "functions.xsl" xslt.xml = "test.xml" xslt.extFunction("roundTrip", "http://test.none", xslt, "round_trip") xslt.extFunction("type", "http://test.none", xslt, "type")
俺としては Proc オブジェクトとか、ブロックを直接渡したい。すなわち次のように
xslt.extFunction("roundTrip", "http://test.none/", xslt) do |arg| arg end #または round_trip = lambda {|arg| arg} xslt.extFunction("roundTrip", "http://test.none", xslt, round_trip) # あるいはまとめたクラス / インスタンスを登録する形。 # もとのヤツに似ているけど名前が衝突しない。 class XSLTFunctions def round_trip(arg) arg end def type(arg) arg.class.to_s end end xslt.set_ext_functions("http://test.none", XSLTFunctions) # XSLTFunctions.new # この場合 XSLT から呼ぶ関数名は Ruby でのメソッド名と同じになる。とか。 # やはり Ruby は書いていて気持ちいい。
ちょっとどうでもいいけど、なんかこの PC 描画がおかしい。温度のせい?
再起動したらなおった? ちょっと時間おかないと分からない。
限りなく不安定な PC だ。グラフィックボードにもファンがついているから、グラフィックボードが暑くて困っているのかもしれない。しかしゲームのとき気にならない (or 症状が出ていない?) のはなぜだろう。最も影響うけやすそうなんだけど。
日々頭が悪くなっていく cho45 です。こんにちは。(前にも書いたけどこういう書き出し嫌い。いやむしろ好き?)
ローカルで更新部分を生成させてアップロードさせる形って実は素敵なのかな、ってちょっと思ったり。でもサーバー上で完全動的にやるのも更新する側としては楽なのかなって思ったり……たった今一瞬の気持ちは前者に傾いております。なぜならローカルで動いてさえくれれば、サーバーと同じ環境をローカルに作ってテストする、といった途方もなく面倒くさい行為をしなくてすむからです。記憶によるとローカルでは ruby-xslt が動いた気がする。
ただ、私はいったんアップロードしたあとブラウザ上で数回読み直して typo とか見つけるので、何回もローカルで再構築させながらアップロードするのはアレかな、とも思うのです。ひとつのファイルが数個から数十個のファイルになるような感じなので、何度も思いつきをアップロードしまくりんぐなのは良くないのかな、と。
flickr のタグ機能みたいに、日記に使っているタグを集計し、頻度・新しさを考慮したうえで表示できたら面白いと思うのだけど、うまくいくかなぁ。
configure make make configure -opt make make とかウザい。
それはともかく、拡張できないよ。/..snip../ruby-xslt/extfunc.c:57: undefined reference to `_xml*'
が永遠出る。ライブラリは指定されているみたいなんだけど……意味がわからない。cygwin ruby-xslt とかでぐぐってもこのサイトがでてきてウザい。
なんで環境によってライブラリ・ヘッダーファイルのパスが違うとかいうバカげた状況なんだろう。configure とかうざい。うざい。
あれだよね、拡張ライブラリは作る時点で八割りがたウマくいかないし、Pure Ruby なライブラリは使うときにウマくいかない。スーパーハカーなら自分で作るんだろうなぁ。