2007年 11月 15日

コメント欄の構造変更

本番反映が思ったよりはやかった。どうせやるんだから別にいいんだけどちょっとびっくり。

コミットログ

変更内容だけ書いても (そんなの diff 見ればわかるから) 意味ないんだけど、どうしてもやってしまう。理由を書くのって頭使うんだよなぁ……

2007年 11月 14日

ここ数日

デジャヴが多すぎる。そしてデジャヴのあとのあの、なんともいえない不安感、これからよくないことが起きる予感、みたいなのが、おなかのほうに流れこんでくる。

JavaScript-XPath++

すばらしいなぁほんと

CodeRepos::Share のトップページでも js-xpath が活躍しているよ! (r1409-)

$X の問題と解決と type 指定

なんで変更したか忘れそうなのでメモ ( http://coderepos.org/share/browser/websites/coderepos.org/trac/share/js/TracUtils.js#L77 )

ずっとつかってた $X はノードセットとりたいときに二回 expr.evaluate するダサい問題があるので (書いたときは XPath はやいしー GM だしーいっかーって思ってた)。js-xpath もでたことだし、他のところでも使っていきたいのでとりあえず以下の方法で解決した。

  • type 指定を導入
    • ECMAScript 側で受けとりたい型を指定する。 (Array, String...)
    • XPathResult.BOOLEAN_TYPE とか指定するのはめんどいし覚えられない。
  • type 指定なしの場合は UNORDERED_NODE_ITERATOR_TYPE をそのまま Array に変換してかえす
    • たぶんこれでも殆どの場合は問題ないと思う
    • ノード集合じゃない (number とか) ならそれぞれそのままかえす (いままでとおなじ)
  • type 指定で Array を指定した場合は ORDERED_NODE_SNAPSHOT_TYPE を Array に変換してかえす
    • UNORDERED なやつで特別問題がある場合つかう

おれは type 指定するの好きじゃないので (めんどい) 基本的に指定しなくても問題ないように

2007年 11月 13日

再読

日記再読してたらなんかこみあがってくるものがあって、そんな自分に dnbk

2007年 11月 12日

青春

なんだかんだいって、今までは青春をどこかで感じていたのか、ごくごく最近になって、青春性みたいなものを感じられなくなってきている感じがする。学校的なもの、女学生的なものを身近に感じず、遠くのどこかにあるもう絶対に手が届かない何か、ファンタジーのようなもの、という実感が心に浮いている。

二日連続で夢をみて、二日連続で学校 (高校) がでてきた。

マウスジェスチャ式のランチャ

Photoshop の拡大率をスパっと 100% がどうとかいう話をしてて、ジェスチャできたらいい気がしたので簡単にできる範囲でつくったけど肝心の拡大率 100% のぶぶんを jsx から叩けない気配がして (ヒストリに記録されない) orz

IRC で発言した時間から計算するとここまで作るのに1時間……殆どコピペでつくってるのに時間かけすぎだなぁ…… (逆に、いろいろ作っていると思いたったらコピペでつくれるのはおもしろいかも) RubyCocoa じゃなかったらもっと時間かかって、それが作る前にわかってしまうからそもそも作らないんだけどw

左下にジェスチャ用の箱があらわれて、そこから左クリックしながらドラッグでジェスチャ。ほんとはどこからでも開始したいけど、いい方法がおもいつかない。ホットキーで起動して、っていうのはできるけど、それじゃあんまり意味ないし……

http://coderepos.org/share/browser/lang/ruby/misc/cocoagesture.rb (つづきつくるかわかんないけど、バンドル形式になってない RubyCocoa スクリプトなので RubyCocoa ちょっと触ってみたい人にちょうどいいサンプルかもしれない)

http://ichiro.nnip.org/osx/Expogesture/index.html

こういうのあったんだった。これの場合はマウスの位置だけしか見てない。NSEvent.mouseLocation の監視だけしてるっぽい? 誤爆しそうだよなぁ……

あぷぷ毎に設定できるから問題にならないのかも。どうせジェスチャなんてたかだか数個しか覚えられないし、こういうので十分なのかもしれない。つかってみよう

Chemr / DRb コネクションスレッドでの GC 時におちる

外部から DRb で Chemr にアクセスしてそのうえそのスレッドで GC が発生すると落ちるんだけどどうしたらいいかサッパリわからんよ><

巨大なインデックスもってる chm をひらいて Amalgam 側から Chemr インデックスひこうとすると Chemr が落ちる。でかいインデックスもってるのを Amalgam からひかないようにすれば一応大丈夫だけど、たくさん開いてるとタイミング悪く GC がきたりするし……

該当メソッドだけ GC 禁止してもメソッドから抜けた DRb 内で GC 発生すると死ぬし、アドホックな解決はできなそう。

EXC_BAD_ACCESS (0x0001)
KERN_INVALID_ADDRESS (0x0001) at 0xc009aae4

Thread 0 Crashed:
0    _NSAddExceptionHandlerForLock + 261
1    _NSAppKitLock + 59
2    -[NSEvent dealloc] + 122
3    0x27000 + 6206
4    obj_free + 986
5    gc_sweep + 453
6    garbage_collect + 503
7    rb_gc + 11
8    rb_gc_start + 11
9    call_cfunc + 283

開放されちゃだめなのか開放されてるのかなぁ。

PHPを避ける

PHP を たにんに すすめる というのは ぜったいに ありえない。