なんか nick 管理にアレゲな機能がついているので使ってみる。memo 機能とかあって面白いけど使ってない。freenode と phasenet でやった。phasenet は register するときメールアドレスが必須で、さらにそのメールアドレスが有効化どうか確かめる。

コマンドの類は全て caseinsensitive

nickserv help [command] @freenode
nickserv help {commands,command} @phasenet
使えるコマンド一覧。省略可能な command が指定された場合指定したコマンドのヘルプを表示。
REGISTER
Register a nickname
DROP
Cancel the registration of a nickname
IDENTIFY
Identify yourself with your password
ACCESS
Modify the list of authorized addresses
SET
Set various options for your nickname
LIST
Display list of nicks matching a pattern
RECOVER
Kill another user who has taken your nick
RELEASE
Regain custody of your nick after RECOVER
GHOST
Kill a ghosted nickname
INFO
Get information for a nickname
LINK
Link your nickname to another
UNLINK
UnLink your nickname

忘れそう。/raw なのは tiarra 経由で繋いでいるから。fn は freenode の略。

認証
/raw fn nickserv identify password
パスワードを変更
/raw fn nickserv set password new-password
エイリアス (alternate nick) をリンク (リンクすると nick 変えたり、元に戻したりしても再認証 (identify) の必要なし。あーでも secure を off にすれば接続ホストだけ見るらしい)
identify された nick で /raw fn nickserv link alternate-nick your-password

おそらく chanserv は使わない。ircnet がデフォルトだし……

って /raw phasenet nickserv set language 8 すれば日本語で送ってくれるじゃんか!さきに言ってy でも freenode じゃ使えない。

あ、普通に ChanServ と privmsg で会話すればいいらしい。(Limechat だとトークと呼ばれているやつ)

  1. トップ
  2. irc
  3. IRC nickserv の使用法メモ

ruby-xslt が param に対応したので XREA 上で作ってみようとしたけどあっけなく失敗した。原因究明するのもバカバカしくてやめてしまった。いいや。

ruby-sablot はローカルで動かず、ruby-xslt は鯖上で動かないという素敵な勢い。どうでもいいけど configure, make, make install とかいう手順 (とそれに似た手順) が面倒くさくて死にそうだ。ライブラリがみつかんねーといわれたら検索して場所さがしてオプションの指定方法さがして(ry

C でライブラリ書くのが許されるのは小学生までよねーキャハハ。いや嘘です。すいません。でも Pure Ruby がいいkd

  1. トップ
  2. prog
  3. ruby-xslt on xrea

ヘッドフォンで音楽聴きつつ晴れた日に散歩とかしていると表面張力な気分になる。表面張力、もう少しで溢れそうな、溢れなさそうな、ちょっと違う気もする。じゃあ中身が残り少ない歯磨き粉?力入れて出そうとして、でてきた、と思ったら引っ込むような。これもちょっと違う。ふっと空に吸い込まれるような。別に吸い込まれそうな空というほど綺麗な空という表現じゃなくて、もっとこっち側に依存する気分。吸い込まれる、ってのも微妙。飛べそうはちょっと近い。なんか凝縮したものが体から抜けていく感じ。本体が抜ける。魂的なもの、ただし所謂魂より機能が多い。魂的なものは直接見れないので、現実世界では身体・名前にバインドされてる。だから、あの気分は別の名前に新たにバインドされなおされようとしている気分、みたいな。別の世界にいこうとしているとも言える、ちょっといいすぎというか大げさだと思うけど。ただ自然の中では一つの魂的なものに対して一つの名前しか付けられないらしい。だから一回完全にアンバインドしないと新しい名前にバインドできない。んで、その一瞬の間はどの名前もついていない状態なので GC によって回収される可能性がある。これがリスク。

  1. トップ
  2. thinking
  3. さんぽ
  1. トップ
  2. kimo
  3. さんぽ

GUID とか UUID はどうやってホンモノと偽者を判断するんだろう?

uuidgen
5b03e77e-e620-4aa3-aba7-03a034b1ea77
[rand(2**128+1).to_s(16)].pack("H*").unpack("h8 h4 h4 h4 h12").join("-")
cf689027-9832-ef63-7983-deb39c8492ed

どっちもソレっぽいじゃん。

  1. トップ
  2. prog
  3. GUID / UUID

何度やっても環境構築でつまずくっていうかデバッグできる状況までいかないので諦める。なんてか Fx をインスコして以来何度かやろうとしてる罠。別に特別作りたいわけじゃないけど弄ってみたいじゃない? なんかもう完全面倒臭そうなので見るだけにしよう。

どういうシステムで拡張が管理されてるかの最新であることが保証されてる日本語のドキュメントが欲しい。無理なんだけど。

  1. トップ
  2. prog
  3. Fx Extension
  1. トップ
  2. soft
  3. Fx Extension

直接向かい合って話をするのって想像以上に重要。インターネットでのコミュニケーションは危険。殴り書き。日記。

今インターネットでコミュニケーションするとしたら殆ど文字データのやりとり。伝達できる情報が限られてる。つまり、なんていうか曖昧な部分が増える。文字データから得られる情報以外で、会話するのに必要な情報は勝手に補完されたりする。しゃべりが上手かったりとか、イメージ先行だったりすると勝手に補完される情報が実際よりもいいもので補完される。いや、これは別にあんまり関係ないけど、こういうのってアレなんだよね。期待の裏切りがあるんだよね。必ず。しかも相手に罪がない。

曖昧さが増えると、それだけわかった気になれる。(もちろん曖昧さが多すぎると駄目だけど) なぜなら都合がいいように勝手に補完しちゃうから。何度も書いてる気がする。これはこれでいいんだけど、これはこれでいいとするなら、それ以上相手のことを知ったり、近づいたりすべきじゃない。するならまぁ、汚染マークを取り除くことによる危険性はプログラマが責任を負う必要があります。みたいな。

まぁそんなことはある意味どうでもよくて、うん。それより存在感。リアルで直接向かい合って話すときの存在感って、ネットのそれと比べものにならないわけだよね。人間の五感がすごいんだか何だか。表情・声色・周りの空気の流れ。いろんなもの感じながら会話したりしてる。もうこれそれこそたぶん想像以上に。最後のって抽象的だけどやっぱ特に重要だったりするわけですよ。しかも離れてると絶対共有できない。ある場合では破壊力さえあったりする。怖い怖い。

syrup16g のリアルに、真意はわからないけど面白いフレーズ (?) がある。

圧倒的な存在感 生身の感情の表現 すべての言葉しっぽ巻いて 逃げ出すほどのリアル

こんなリアルもある。あるいはこんなんがリアル。

まぁ私はできることなら妄想リアルで生きていたいわけですけれど。と一人称を私にしてみるけど、やっぱキモい。自分の想像する自分に合わない (わらい)

  1. トップ
  2. net
  3. 直接的伝達手段
  1. トップ
  2. life
  3. 直接的伝達手段
  1. トップ
  2. thinking
  3. 直接的伝達手段
  1. トップ
  2. skype
  3. 直接的伝達手段

落ち杉。1.8.1 に戻すかとか思ったけど、既に 1.8.2 feature なの (NKF の UTF-8 変換とか) を使い始めちゃったりしてるのでめんどい。計算機がもう一台欲しい。それよりメモリ欲しい。coLinux を常に動かすのは無理です。

つーか Linux ってつかいにk(r GUI マンセーな僕には CUI のコマンドラインオプソンが覚えられません。--help するとオプション多すぎです。何の頭文字かわかんねーし。

  1. トップ
  2. ruby
  3. ruby 1.8.2

マルチランゲージ化したとき、言語指定したページでもリンク先は言語指定してないページになったりするとかいう手抜きをしたためアレだったのを先日修正した。たぶん link 要素とか残ってるけど面倒臭いのでそのうち。忘れるけど。

  1. トップ
  2. web
  3. ネゴシエーション時のリンク先

日記であるからには、あとから読み直して再考察してみるのがやっぱ大切なんだよね。

読み直して考えたことは追記する。ハイパーテキストな日記だから追記は新しくセクションを切ってリンクを貼り、めんどくさくなければトラックバック (でもたいてい面倒くさがってトラックバックしない。悪い傾向)。

相変わらず纏まらない文章だ。

  1. トップ
  2. self
  3. 再読日記
  1. トップ
  2. life
  3. 再読日記

なんか cygwin ruby 1.8.2 の net/protocol.rb がたまに Segmentation fault で落ちる。とりあえず落ちてもすぐ復帰するようにして放置。知らん。

loop do
# Make running process
pid = Process.fork do
# IRC BOT 起動
end
# I am monitoring process.
pid, status = Process.waitpid2(pid)
p status
end

プロセス死んでもとにかく復帰。復帰。復帰。ぐるぐる。

結構頻度が高い。socket 関連でダメだと思うんだけど、どうすればいいんだろ。

2005-01-27 01:45:23 #<Process::Status: pid=12296,signaled(SIGABRT=6)>
2005-01-27 02:19:07 #<Process::Status: pid=15652,signaled(SIGABRT=6)>
2005-01-27 17:32:52 #<Process::Status: pid=13756,signaled(SIGABRT=6)>
2005-01-27 23:23:39 #<Process::Status: pid=19748,signaled(SIGSEGV=11)>

SIGABRT のやつは net/protocol.rb の rbuf_fill メソッド @socket.sysread(1024) でエラー。SIGSEGV は timeout.rb。発生元はたぶん同じメソッド。

  1. トップ
  2. prog
  3. Segmentation fault
  1. トップ
  2. script
  3. Segmentation fault
  1. トップ
  2. ruby
  3. Segmentation fault

草原の話に関連するけど、生活という視点 (?) からみればコンピュータ、あるいはインターネットはゴミ捨て場にすぎない。

結局ゴミなわけだから、ゴミ同士を比べても大して変わらない。

とりびあー

  1. トップ
  2. life
  3. GCer
  1. トップ
  2. net
  3. GCer

What You'll Wish You'd Known via IRC

面白い。

ぼくらは天才というものを信じたがるんだ。ぼくらが怠けている言い訳ができるからね。

耳が痛い。でも天才は自分の興味あることに完全に没頭できるっていう天才があるんだけどね。

ドキドキするスリルがなくちゃ。 はなんかアレだなと思った。不安は不安だ。結局期待 (希望) が不安を上回る必要があって、んでもってそのボーダーが低くて、スリルを感じるボーダーと近いと、そもそも挑戦できることが限られていたりする。やっていることが少しズレただけでボーダーを越える。「アレ」が何なのかホント微妙だけど……

  1. 興味の持てるプロジェクトを選ぶ
  2. ひと月以内で終わらせられるようなプロジェクト
  3. ちゃんと終わらせられる手段があるようなもの

これってやっぱ重要だよなぁ。最近よく思う。

あんま関係ないけど、自分は秘密に何かするのが好きだ。あるとき、「ふっ」と誰かに見せてみるのが面白い。もちろん失敗したって誰にもばれないってのもある。秘密じゃなくなるとむしろダメになる。だから最近はできるだけ目標は他人に話さないようにしてる。他人に話すと達成した気分になる。話さなければよかったとよく後悔する。

できればもっと早く読みたかった。早く読んだから何か変わったかっていうと疑問だけど。うん。そう。少なくとも16歳のときの自分はこんなの読まなかった。ダメじゃん。

微妙に関係ないけど、好きなことで生活するための仕事をするのって難しいんだよなたぶん。義務になった時点でやる気が失せる。単純に既にある技術内で完結する仕事ならいいだろうけど、そういう仕事ってあるんだろうか。とか考え始めると面倒くさくなってくるわけだけど。

  1. トップ
  2. life
  1. トップ
  2. self
  1. トップ
  2. thinking

数度書いてる。そして未だに定まらない。

普段使う一人称はなんだけれど、なんか文章にしたときに浮く。だからといってを一人称にするのはちょっとアレというか、大人ぶってんじゃねーよとか自分の中にいる常任理事の一人 (こいつは最低限のリアリティを保てと言っているヤツと同一) が拒否権を行使するので使えない。あたしとか、さとぅ☆とかどうよとかいう案は過半数で即否決される。結局文脈的に一人称入れないとおかしいときは自分を使っているんだけど、これも何かお前はどこの空手部だよとか思える。困る。

  1. トップ
  2. self
  3. 一人称について

だいたいの教室は右利きのために黒板に向かって左側に窓がくる。らしい。そんなわけだから大体夕方の教室ってのは一種の幻想性すなわちファンタジーなわけですよ。と。

ファンタジー。

話は変わって、昨日買った初恋サンセットですけど、最後の曲の後に入ってるピアノがよい。よい。でもあれかもメレンゲはサーチライトのほうが好きだな。

  1. トップ
  2. life
  3. 教室についての考察、とかいいつつ

blomemo 2005-01-23 - 消えていくボーッとする時間

これここ最近よく思うことの一つ。暇なとき、いろんなことを考えて発展させて、少し前まで考えていたことが消えて、結局あとから考えるとあんまり覚えていない。

その時間が具体的にどういう風にいいのか、っていうのはうまく説明できない。そりゃ今あらためて考えると電車の中とか、寝る前とか、風呂に入っているときとか何を考えているか覚えてないから。

寝る前とか、もしくはコンピュータの前でぼーっとしているときは日記に書く。

あぁ。これは起きているときの見る夢みたいなもんなのかな。たぶん。

  1. トップ
  2. life
  3. ぼーっとする

前にも書いたけど完全じゃないので。たぶん、これでいいはず。

def safe(lvl, tm=1)
result = nil
tg = nil
th = Thread.start(lvl) do |level|
tg = ThreadGroup.new.add(Thread.current)
$SAFE = level
result = yield
end.join(tm)
tg.list.each {|t| t.kill}
raise TimeoutError unless th
result
end

ThreadGroup を新しく作り、それにカレント実行スレッドを突っ込んで、信頼できないコードから生成されるスレッドを全てこいつの所属させ、実行終了したら kill! kill! kill!

IRC BOT の Ruby コード実行機能をこれにした。まぁしかし! SEGV されたら終りというどうしようもない脆弱性がありますけれども。

  1. トップ
  2. ruby
  3. Ruby コードを安全に実行する。
  1. トップ
  2. prog
  3. Ruby コードを安全に実行する。

def foo(a, b)
yield a + b
end
def fop(a, b, &block)
yield a + b
end
def foq(a, b, &block)
block.call a + b
end

引数に &block を書かないとブロックをとるメソッドなのか取らないメソッドなのかわかりにくい。でもなんか &block を書くとダサい。

二番目の方法だと block という引数を使ってなくてキモい。三番目の方法は一般的なコードじゃなくてキモい。

さて、ホントは上のコードの block.call は block.yield (引数のチェックをしない) になるんだろうけど、NoMethodError がでる。なんでだろ。

$ ruby -v -e 'Proc.new {|t| puts t}.yield("foo")'
ruby 1.8.1 (2003-12-25) [i386-cygwin]
-e:1: undefined method 'yield' for #<Proc:0x100e6dd8@-e:1> (NoMethodError)
exit 1
  1. トップ
  2. ruby
  3. Ruby, ブロック引数をとるメソッド
  1. トップ
  2. prog
  3. Ruby, ブロック引数をとるメソッド

夢とは別によく草原を想像する。草がいっぱい緑色で、花が咲いてたりするところ。おなかが減らない、食べることが任意な世界で、何もしなくても生きていける。ホントのとこそういう場所にいられるならコンピュータなんぞいらない。歩き回って、寝て、そこらに見つけた植物に名前をつけて遊ぶ。飽きるだろうか。いやたぶん飽きないと思う。

生まれたときからそういう世界に属しているならいいけれど、自分は既に生まれてしまっていて、喧騒の中で生きている。だからこういう想像をするときはだいたいいつも「どこでもドア」が付属する。「どこでもドア」の向こう側に今いる喧騒が広がっていて、閉めると音がしなくなる。

「どこでもドア」と俺の部屋にある洗濯機は似てる。

  1. トップ
  2. self
  3. 草原について
  1. トップ
  2. life
  3. 草原について
  1. トップ
  2. imagenation
  3. 草原について

Amazon にジャケがないので公式に直リンするけど、メレンゲの初恋サンセットのジャケはヤバいと思うよ。汗でた。汗。

買うしかないけど金がない。ぎぎぎ。

タワレコ のポイントが 1k 分溜まっていたのでタワレコ行って来た。

  1. トップ
  2. music
  3. なんか汗がでるジャケ

IRC ネタ。

2005年1月の指向性メモcreateElement()で作られたエレメントノードは名前空間がnullになるはずなのに、親要素のデフォルト名前空間を引き継いでしまっている。 って書いてあるけど、何か違う気がする。

確かに DOM Core の createElement の項には localName, prefix, and namespaceURI set to null. とは書いてある (これを根拠にしているかは定かじゃない) けれど、これは名前空間っていう概念がないから、名前空間関連のプロパティにはとりあえず null という値を入れておけよってことで、名前空間URI を空値に設定するっていう意味じゃない気がする。code でマークアップされてるしね?

そもそも自分も書いたことあるんだけれど、名前空間がnullになるっていうのが何かおかしいかもしれないとも思う。Extensible Markup Language (XML) 1.0 にも Namespaces in XML にも null という単語が出てこない。名前空間が null っていう表現が出てくるのは XPath の仕様の日本語訳で、原文の null には code 要素がついていないので、ただたんに“空”といいたいだけなんじゃないかとか。でもそうだったら empty って書くかなぁ……仕様書だし紛らわしいふうには書かないから、あるいは俺の読解力が糞なおかげで違うかもしれない……

まー結局のところ createElement に名前空間の概念がそもそもないので単純に引数の nodeName を引数の名前にするよってことで、それ以上は実装依存なんじゃまいか。みたいな? 併用することは稀なので。。。

しかし自分の解釈があっているかどうかは永遠に謎だ。確かめようがないから困る。誰に聞けばいいのか。その人が言っていることが正しいのか、正しいとしても自分がそれを正しいまま受け取れているかは確かめようがない。あーアレだね。アレ。理解は誤解の総体 (だっけ?) ってヤツ。 わかりあえているように感じるにはできるだけ曖昧な表現をすればいい。アレとかソレとかを、明確にしない「ありえねー」とか。

  1. トップ
  2. xml
  3. 名前空間が null?
  1. トップ
  2. dom
  3. 名前空間が null?
  1. トップ
  2. xslt
  3. 名前空間が null?

イントロでピアノでびびった。素敵だ。てか PV がなんか素敵だからちゃんと見たい。次のシングルの extra あたりに入れて欲しい。

PV といえば LILY の PV が素敵。前も書いたけど好きだな。

それとスカーレットの PV もちゃんと見てない……

ていうかね。PV をちゃんと見せてくれないのはもったいない。せっかく作ったのに贅沢な!

  1. トップ
  2. music
  3. LOST IN THE AIR 試聴

今日の朝夢見たけど書くのを忘れた。唯一覚えているのは肩ぐらいまでの髪の長さの女の子がでてきたことぐらい。キラキラ。

空がかなり晴れていて、そんなに寒さを感じなかった。マフラーがほしいと思った。ねむい。

  1. トップ
  2. life
  3. 夢あるいは
  1. トップ
  2. self
  3. 夢あるいは

PHP の簡略化 PI (<? .. ?>) は好きじゃない。ターゲットが示されてないのがなんか気になるし、XML 宣言実行しようとするのがウザすぎ。それと ASP 方式 (<% .. %>) は問題外。

XML の Processing instruction の仕様を引用する。

Processing Instructions
[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

XMLPI においてターゲットは必須。よってないとキモい。

そんなわけで [ruby-core:04266] ってのは <?erb .. ?> とかにするほうがいいんだけど、それだと目的のタイプのし易さが結局アレになるのでそもそもだめじゃんみたいな。

何が言いたいんですがあたしは。

  1. トップ
  2. prog
  3. PHP の簡略化あるいは