ViewCVS に触発された、というわりには perl で書かれている。
Paul Eggert のところの tzcode/tzdata は cvs ないしは rcs で管理されているが、 revision number がいきなり 2001.2 などとなっていて、 先頭の整数が年に合わせてあるらしい。
と、いうようなことを tzarchive を見て思う。
Debian における ViewCVS のバグレポートを眺める。
まぁ、信じてはいけないとはいわないが... xpm のは 0.7 では直ってないな。 直後に直したが。 設定の間違いらしきやつを残しておく注意深さがありながらなぜ... と思った。 ついでにいえば Wishlist のやつは forward 元の当人のリクエストもあって だいたい同等な対策がとられていたりする。
「物事は自然が一番である」
意訳: TZFile を読む時に閏秒の補正を行なってしまったのは間違いだった。 補正抜きの生データを保持しておいて、外部に出す時に必要に応じて補正すべきだった。
tzcode の Theory を読む。 Russia と Sweden の話はなかなか面白い。
今日の Ruby script:
% ruby -e 'p Object::Object::Object::Object::Object::Object::Object::Object::Object::Object' Object
n=10 name="A" ms=[] n.times {ms << Module.new} ms.each {|a| ms.each {|b| a.const_set(name.succ!,b) } } A=ms[0] p Module.new
メモリを食いつくす理由は?
マウスカーソルをキャプチャするというと... xdgagrab とか?
XF86DGA なる extension を使っているのであまりポータブルではないが。
GMT - The Generic Mapping Tools
SunOS 5.8 の /bin/date が TZ が設定されていない場合に /etc/default/init を読むことに気がつく。
うぅむ。動かない...
GCC extension for protecting applications from stack-smashing attacks
ふと、CVSsuck を google で探してみる。
CVSsuck の RPM らしきものがあることに気がつく。
呼ばれていたことに気がつく。
xscript is a script-based video capturer of windows.
うぅ。作者が...
Katie is a revision control system, somewhat like a cross between CVS and NFS, and inspired by Rational ClearCase.
gcc-3.0 を試す。
とりあえず Grail に挑戦... ふむ。 -fno-for-scope -fno-operator-names -Wno-non-template-friend で Internal compiler error が出るところまで進むな。 Sparc SunOS 5.8 と i386 FreeBSD 4.2 の両方で同じ症状。 送っておく。
可変長配列の問題も確認してみる。これは直っている。
cvsfs provides a file system for cvs.
「UNIX プログラミング環境」の「UNIX と Echo」を読み直す。
引数無しの echo の挙動の話だったのか...
Perforce が RCS format を使っていることに気がつく。
なんとなく、ReViz などというものを動かしてしまう。
Array#<< で配列を伸ばしていくと長くなるにつれて遅くなることに気がつく。
ruby -e 't1 = Process.times; a=[]; loop {10000.times {a << "a"}; t2 = Process.times; print a.length, " ", t2.utime - t1.utime, "\n"};'
ふむ。確保した領域が足りなければ 1.5倍してるな。それなら realloc のコストは平均して定数で抑えられるはずだが...
ぬぅ。GC.disable すると線形になるな。GC で時間を食ってる。
mark は生きてるオブジェクトに比例する時間がかかって、 それが定期的に起きると全体としては線形では済まない、と。
しかし、なんとゆーか、Ruby は scale しないことが多い気がする。 そーゆーところには気をつけてないんだろうか。
cvs annotate には -k option がなく、keyword expansion を行なわないことに気がつく。
ついに RCS diff を理解し、自前の annotate (と checkout)を書いてしまう。
しかし、行の配列というデータ構造を選んだのは正解だったのか失敗だったのか...
ふむ。考えてみると、local なリポジトリでの開発に vendor branch を使うと annotate が役に立たなくなるのだな。
疑問が浮かぶ。cvs を再実装するのに必要な時間は?
今日の ash function:
xxx () { echo "xxx $*" (exec xxx "$@") }
もっとましな方法は?
annotate を書き直して、ReViz から使えるようにする。
行が消えたところを表示すると横幅が長過ぎるなぁ。うぅむ。
(nph でない)CGI で、Transfer-Encoding: chunked は使えるのだろうか?
HTML/Template を使う。
ふむ。でかいと遅いな...
Ruby Server Pages なるものをでっちあげて HTML/Template は捨てる。
今日の Ruby script:
% ruby -e 'a = a; p a' nil
[latest]