2005年 10月 27日

名前バトン

哀さん から (http://mixi.jp/view_diary.pl?id=48756398&owner_id=9740)

ハンドルは何?
さとう / 砂糖 / 佐藤 / cho45
ハンドルの由来は?
さとう
RO にて一時期の間 SyrupNg をキャラ名に (俺はよくキャラを消すので数字をインクリメントさせながら使ってた) していた。固定パーティ (まだギルドが存在していない) だったヤツに「syrup って何?」と訊かれたとき「砂糖水みたいなもん」とか答えたせい。その後砂糖汁だかなんだかを経てありがちな名前の落ち着く。母親の旧姓が佐藤なので特に違和感もなく。
cho45
C12H22O11 を纏めただけ。ユニークっぽいのでユニークさが必要ならこっちを使うことにしてる。
過去のハンドル
素で覚えてない。本名を省略したやつを使っていた (いる) けど親父とかぶるのでできるだけ使わないようにしてる。
本名は?
非常に良くある苗字と、割かしよく見かける名前の組み合わせ。本名でぐぐると 508 件ヒット。巡回リストに同姓同名がいる気がする。漢字はわからんけど。
ハンドルと本名どっちが好き?
ハンドルのほうが好き。本名は響きがあまり好きじゃないし、由来 (過去の政治家の名前) も好きじゃない。といってもハンドルは苗字っぽいし名前が不定なので比べるのが微妙だけど……
過去あだな
苗字一文字とって「っさん」。あと幼稚園ときは「ひーくん」だった。やばいキモイ。
一番大切な人に何と呼ばれたい?
難しいなぁ。「ひろさん」とか呼ばれたい、かもしれない。佐藤って呼ばれたらいいかもしれない。ネットでの活動を知っての上なら。ただあんまり呼び方気にしないかもしれない。全然関係ないけどこの質問に「おにいちゃん」と答えたやつが絶対いそうだ。あー「君」って呼ばれたい。正直「君」って呼ぶ女の子って憧れる。
かわいいと思う名前は?
雪 (ゆき) / 雨 (あめ) / 音[無夢] (ねむ) / 春日 (はるひ)
生まれ変わってもその本名?
いや。美少女で「音夢」という名前かつ眠そうな人間に生まれたい。ムリ。
バトンを回す五人

友人に言われて検索してみて吹きそうだったんですが、「音夢」は某エロゲーのキャラとは全然関係ないです。というかそのゲームやったことないし。

午前4時に何かをするのはやめたほうがいい

午[前後]n時でもいいよ。

内臓えぐりだして見せてやろうか、ということを考えて、それに関することでいくつか決心してみたりするけど、やっぱそういうのに不快的な人もいるわけで、やっぱ考え直したほうがいいんだろうか、今ならまだ戻れるかもしれないぜ、なんていうことを脳内天使と悪魔がささやきあっていたりするけど、脳内天使と悪魔について考えていたら俺には悪魔と悪魔が不毛な議論を重ねているように見えてきたので彼らをどうにかして消去する方法を考えることにした。.scan(/考/).size #=> 4

How Much Is My Blog Worth

Your blog, lowreal.net/, is worth $2,822.70

30万ぐらい? 売りたい。

2005年 10月 25日

SSH on XREA

SSH ログインの制限緩和うんちゃらがだいぶ前になってたわけでして、できるなら CGI 経由で make なんてしたくねぇよとか思ったのでいろいろとやった。未完成。

なんかサッパリよくわからないけど XREA に SSH でログインしたときは ~/.profile が実行されるらしい。~ は /virtual/username。そこで次のような .profile を用意

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH"
hh=$HOSTNAME
uu=$USER
col=32
TITLEBAR='\[\033]0; \w\007\]'
PS1="${TITLEBAR}
\[\e[${col}m\]$uu@$hh \[\e[33m\]\w
\[\e[${col}m\]\$\[\e[m\] "

PATH 通せば ruby とかが素で通る。これ自体は CGI 経由と同じ。残りはどっかからパクったオマケ。カレントディレクトリ見えてないと嫌よ症なので……

しかしこれで make しようとしても、collect2: cannot find `ld' とかでやがって通りません。ld -v は通るんだけどなぁ? 小プロセスに環境変数引き継がれてないとか? わかんねぇ。ほんとわかんねぇ。

lowreal@s63.xrea.com ~
$ echo $PATH; ruby -ve "p ENV['PATH']"
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/rbin
ruby 1.8.3 (2005-09-21) [i686-linux]
nil

なぜ。

2005年 10月 24日

Ruby で XML をまじめに使いたい

標準添付の rexml は軽くやるぐらいなら十分だけど、名前空間関係がちょっと怪しい。今時 XML を真面目に使えないとなるとやばい。

RAA を検索してみると libxml-ruby がよさげなので試してみる。extconf.rb がなんだかしらんが全く通らないので該当部分でばっさりコメントアウト。extconf.rb の存在意義なし!!!

リファレンスの類が見当たらない。要素は ele = XML::Node.new(element_name[, content]) で作るみたい。便利だけど Node っていう名前にちょっと違和感が……属性は ele["attr_name"] = attr_valueDOM 実装を期待してたんだけど違うらしい。getElementsByTagName は Node#find みたいだし (find の引数は XPath なので全然違うが) あーやばい。コンテキストノードとカレントノードの違いを忘れそうだった。Node#find はトップレベルのコンテキストノードにレシーバを設定して云々、でいいのかな。カレントノードが XSLT のものだよなぁ。

名前空間関連はまだ調べてない。libxml だから大丈夫だと思う(てきとう。とりあえず学校へ。眠いっつうの。

2005年 10月 23日

効率的に「切ない」を実装したい

どういうのが切ないのかを考える。どういう風に表現すれば切ないっぽいのかを考える。ちなみにただのメモだから結論なんて出ていないし、そもそも考えるまでいってない部分だってありますよと。うるせーよ。

切なさがの正体がよくわからないので、正体不明のままにしとく。

  • 伝えたいのに伝えられない。(なんらかの約束が邪魔をする / 自分が素直になれない (ツンデレ))
  • 伝えたのに伝わっていない。(字がかすれて読めない手紙 / 喧騒にまぎれる声)
  • 解決方法がどれも問題を含む。(所謂友達か恋人か)
  • 解決方法がそもそもない。(死んでいく近しい人 / 過去の選択ミス)
  • 自分が無力。(明らかに周りとの差を感じる / 助けてあげたいが助けを求められていない) 広くとると一個上と同じ。
  • 現実と理想とのギャップ。(美しい音楽を聴くとき、絵を見るとき) 上二つとだいたい同じ。

効率的、とか書いたけどまずムリだ。頭痛くなってきた。とりあえず日本語かけるようになれよ俺。な?

ruby-xslt 0.8.2

新しくなっているのに気付いた。 ruby extconf.rb --enable-error-handler (off by default) とか書いてあるのでちょっと期待しつつ。

とりあえず cygwin で make できんので Makefile 修正。OBJS に /lib/libxml2.dll.a /lib/libxslt.dll.a を追加して強制リンキング。exslt ははずす。

いろいろやってみたんだけど、よくわからん。USE_ERROR_HANDLERXML::XSLT.errors が定義されるんだけどエラー起こしても特に何も入ってない。/* this is really quite inelegant */ とか書いてあって苦労してんなぁとかなんとか。

とりあえずさらに really quite inelegant なコードで解決を図る。Ruby 側で…

require '../xslt'
xslt = XML::XSLT.new
xslt.xmlfile = "fuzface.xml"
xslt.xslfile = "fuzface.xsl"
begin
err = STDERR.dup
pipe = IO.pipe
STDERR.reopen(pipe[1])
out = xslt.serve # raise RuntimeError
rescue RuntimeError => e
p XML::XSLT.errors #=> []
if e.message =~ /^(XSL|XML|Stylesheet) /
p e
p pipe[0].readpartial(4096) #=> エラーメッセージ
else
raise
end
ensure
STDERR.reopen(err)
end
__END__
起こりうるエラーたち (grep)
parser.c:53:      rb_raise( rb_eRuntimeError, "XSL parsing error" );
parser.c:59:      rb_raise( rb_eRuntimeError, "XSL Stylesheet parsing error" );
parser.c:65:      rb_raise( rb_eRuntimeError, "XSL Stylesheet parsing error" );
parser.c:84:      rb_raise( rb_eRuntimeError, "XML parsing error" );
parser.c:90:      rb_raise( rb_eRuntimeError, "XML parsing error" );
parser.c:97:      rb_raise( rb_eRuntimeError, "Stylesheet transformation error" );

tests/fuzface.rb の改造。xmlfile= は使うなという警告がでるけどとりあえず放置。$stderr じゃなくて STDERR にメッセージを吐くらしくめんどっちいことをやってる。readpartial は cygwin の ruby が 1.8.3 になったから使ってみた。便利よねコレ

ごちゃごちゃやってみたけど使わない。XREA に入れるのめんどいし……

これでドウダ

class XML::XSLT
class XSLTError < StandardError; end
class XSLParsingError < XSLTError; end
class XSLStylesheetParsingError < XSLTError; end
class XMLParsingError < XSLTError; end
class StylesheetTransformationError < XSLTError; end
alias __org__serve serve
def serve
ret = nil
err = STDERR.dup
pipe = IO.pipe
Thread.critical = true
STDERR.reopen(pipe[1])
begin
ret = __org__serve
rescue RuntimeError => e
STDERR.reopen(err)
Thread.critical = false
message = pipe[0].sysread(4096)
error_class = XSLTError
case e.message
when "XSL parsing error"
error_class = XSLParsingError
when "XSL Stylesheet parsing error"
error_class = XSLStylesheetParsingError
when "XML parsing error"
error_class = XMLParsingError
when "Stylesheet transformation error"
error_class = StylesheetTransformationError
end
raise error_class.new(message)
ensure
STDERR.reopen(err)
Thread.critical = false
end
ret
end
end
xslt = XML::XSLT.new
xslt.xmlfile = "fuzface.xml"
xslt.xslfile = "fuzface.xsl"
begin
xslt.serve
rescue XML::XSLT::XSLTError => e
p e
end

将来完璧な実装になっても消すだけ! これなら使えそう? ごめん嘘。エラークラス云々があるのでそのままじゃ無理。

ruby-xslt on XREA

make がうまくいったっぽいのでメモ。ちなみに数度要望の末 ruby-xslt を入れてもらってある (この過程で別の鯖と違う点があるかもしれない)。でもやっぱり自分でビルドできないかなぁという試行。

#!/bin/sh
PATH="/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:$PATH"
export PATH
ruby extconf.rb #1
#make #2
# test
#cd tests
#ruby fuzface.rb

みたいなのを make.sh として作って保存しとく。ちなみに AddHandler cgi-script-debug .sh してある。念のため一発でやらずに一行ずつ実行させる。

ruby extconf.rb は Permission Denied がでつつも一応通るので問題なしということにしとく。んで、make なんだけど libxml/* が見つからないとかいわれる。しかたないのでローカルの /usr/include/libxml2/libxml を同じディレクトリに転送する。エラー一切なく make が通った。テストもしてみたけど大丈夫っぽい。微妙だけど。

関係ないけど XREA に拡張ライブラリ置くとき怪しいことをすることにした。/virtual/username/lib/ruby/RUBY_PLATFORM を掘ってその中に入れる。ローカルは cygwin なので /virtual/username/lib/ruby/i386-cygwin/xml/xslt.so、XREA は /virtual/username/lib/ruby/i686-linux/xml/xslt.so。んで使う場合は $LOAD_PATH.unshift("/virtual/lowreal/lib/ruby", "/virtual/lowreal/lib/ruby/#{RUBY_PLATFORM}") しとく。もともと XREA 上の RSS パーサが古いのでアレしてコレした感じ。

s63.xrea.com 上で作った xslt.so。ちゃんと動くかは知らない。

ちなみに上のセクションのスクリプトは動かないです。1.8.2 なので。readpartial を sysread にすればとりあえず動きます。どっちでもよさげだから sysread にしとくのが吉か。

2005年 10月 22日

やる気あるんだかないんだか

IE で表示崩れていることには気付きつつ、あの例のリンクホバーで margin だか padding だかがぶっとぶバグなわけで、解決方法をバグリストから探して云々ってのがめんどくさくてめんどくさくて……

仕方ないから新しくスクラッチから書き直すか、とか思ってみたりもするんだけど、いやそれむしろもっと面倒くさくなっているよとも思うわけでして、あーしかしそろそろ今の CSS 飽きたなぁとか、なんかグッっとくるテーマが欲しいなぁなんて。なにがグッっとくるんだよって話だけど。