天泣記

2001/07/02

#1

CCL について少し書く。 入門にはならなかった。

2001/07/04

#1

問題のサイズには 3種類ある。 計算量を考慮しなくてもいいサイズと、 計算量のオーダを考えなければならないサイズと、 計算量の係数を考えなければならないサイズである。

2001/07/08

#1

Rubyx is a collection of libraries for various Ruby/XML programming tasks.

2001/07/09

#1

logic と design の分離、とよくいうが、 その境目を(大雑把に)判別する判断基準はあるだろうか?

情報を捨てるなら logic, 捨てないなら design? (でも strftime で日付だけにするのは logic になってしまう?)

コードをたくさん書かなければならないなら logic, ちょっとなら design?

他には?

#2

diff -n はどのていど portable なのだろう?

#3

FreeBSD の diff は No newline at end of file というのがでないようにしてあることに気がつく。

#4

WALRUS

2001/07/10

#1

3の倍数にマッチする正規表現、というネタを思いついた原因を思い出す。

あれはたしか雑誌などの発売日をもとめるプログラムを作った時のことだ。 正規表現で発売日を表現して日付とマッチさせることにしたのだが、 隔週発売への対応に悩んで思いついたのだ。 隔週の発売日は、 日付をユリウス通日で表現して、 それを 14を法として 0 から 13 までと比較すれば判定でき、 それは 14状態の有限オートマトンで実現でき、 それと等価な正規表現が存在する、というわけである。

まぁ、結局、そんな正規表現をいちいち書いてられないので、 そのプログラムでは別の方法で対応したのだが。

うぅむ。尋ねられた後かなりたってから思い出したので答え損ねた...

#2

Batik is a Java(tm) technology based toolkit for applications that want to use images in the Scalable Vector Graphics (SVG) format for various purposes, such as viewing, generation or separator manipulation.

2001/07/11

#1

add と ci を一本の connection 上で発行すれば(admin を使わないでも) description を指定できることに気がつく。

2001/07/12

#1

Trueprint is a printing program for postscript printers that is designed to be the only printing program you'll need.

2001/07/13

#1

今日の zsh script:

t=1
while :
do
  sleep $t
  echo $t
  (( t = t * 2 ))
done
#2

思ったのだが、directory のなかにひとつ(だけ) directory があるときに ViewCVS でたどるのは面倒だな...

2001/07/15

#1

Sticky Tag に 1.1.9 とかを設定した時に add/commit が失敗するのを直してみる。

#2

今日の zsh script:

% t=2048
% while :
do
  sleep $t
  echo $t
  (( t = t + 60 ))
done

2001/07/16

#1

どうやら 1時間くらいらしい。

#2

ふと思い立って、emacsen と plural でサーチしてみる。

gnusae もサーチしてみる... こちらは説明が見つからない。

2001/07/17

#1

うぅむ。メールが読めない... もうちょっと冗長性を増やさないとなぁ。

2001/07/18

#1

Boomborg-KeisanEmacs 20 で動かすパッチを掘り出す。 Emacs 21 でも動いた。

2001/07/19

#1

寝坊する。

2001/07/20

#1

やっぱり初日はやめておいたほうがよかったかもしれない... 混んでいた。

2001/07/21

#1

visitor の乱用ぎみ...

#2

deltatext の順序は一意に決まってはいない事に気がつく。

2001/07/23

#1

cvs は rcs file を読むときに、全体をメモリに保持することはしない。 例えば、checkin するときには rcsfile を右から左にコピーする途中で、 新しい deltatext を適当な場所に挿入する。 (なんとも非富豪的である。 読んでいないが、どうせ rcs も同様であろう。たぶん。)

さて、Ruby/CVS の次版では rcs.rb が入って rcs を捨てる予定なのであるが、 富豪的に行くかどうかが悩みどころである。

結局、rcs file のサイズとメモリ量の増加のどちらが速いか、 とゆーのが問題なわけだが...

所詮人間の作業なんだから rcs file の増加はたかが知れている、かな?

#2

cvs.m17n.org の rcs file のサイズを調べてみる。 上位にはバイナリが並ぶことに気がつく。 うぅむ。 人間の作業結果ではない連中が厄介なのだな...

ちなみに、人間の作業結果らしきなかで最大のものは gnus/texi/gnus-ja.texi,v の 8.7M であった。

#3

なんとなく、escape sequence を termcap に従って逆変換するスクリプトを作ってみる。

まぁ、パターンを長い順にソートしてるのが何だが。 ちゃんと escape sequence が残らないようなマッチを探すにはどうするのが簡単だろうか?

せめて flex.rb を使ってマッチ対象の最長を探した方が良かったかも知れない。

2001/07/24

#1

明日は土用の丑の日

#2

unreadable... kterm, xterm は button 3 でコピーする領域を拡張できるので、 下端をドラッグして指定した後、スクロールして上端で button 3 をクリックすると、大きな領域を指定できる。

まぁ、これもローテクではある。

なお、 (とくに button 2 が auto repeat する環境では) scroll-back と scroll-forw を適当なキーに bind しておくと便利である。

また、unreadable にこだわるなら ウインドウサイズはスクリーンサイズで制約されているわけではないので、 最大化で満足するのは早計であろう... と思ったが、(button 3 を使わない場合には)コピーの限界が一画面だから これは意味がないか。

#3

昔 select-start や select-end をキーに bind することを試したが、なんかうまく行かなかったことを思い出す。

今だったら、screen で、ということになるんだろうか...

#4

KTerm*VT100.Translations を眺め直すと... scroll-back と scroll-forw のほかに insert-selection もよく使っているな...

#5

appres に補完がついていないことに気がつく。

2001/07/25

#1

newphrase が終わるのは

ならば desc と text を id でなくしてしまえばいい... というのはあさはかであったことに気がつく。

desc と text は symbol として現れ得るから、そんなことをしたら symbol として使えなくなってしまう...

本質的に曖昧かどうかというと... 1.1 log @@ text @@ 1.2 log @@ x ; text @@ は (1.1 log @@ text @@) (1.2 log @@ x ; text @@) というふたつの deltatext と 1.1 log @@ (text @@ 1.2 log @@ x ;) text @@ というひとつの deltatext のどちらにも 認識できるのでやはり曖昧である。

delta の newphrase は... どうなんだろ? どうであろうと全体として曖昧であることには違いないが。

とすると、ocamlyacc は(すくなくとも単純には)使えないな... どちらかというと再帰降下型のパーザを書き下した方が適切か。

#2

アルコールと typo に相関関係はあるか?

#3

いちおう、cvs tag desc とか cvs tag text とかしてみる。 まぁ、予測通りではあるがなんの問題もない。

ついでに、

% for f in rcs*.tar.*
tar tvfz $f|grep '[yl]$'             

とする。でてきたか、と思ったら man の l section だった。

2001/07/26

#1
% cat a.ml 
class virtual c1 =
  object
  end

and c2 =
  object (self)
    method m = (self : #c1 :> c1)
  end
% ocamlc -c a.ml 
File "a.ml", line 7, characters 16-20:
This expression has type < m : 'a; .. > but is here used with type c1 = c1
Self type cannot be unified with a closed object type

ぬ? ふむ。 mutually exclusive にしなければ通るが...

2001/07/27

#1

dynamic programming より完備化の方がよかったかも。

2001/07/28

#1

cvs (という command line client)だと 接続時にはすでに commit かどうかは判明しているのではないかと思う。 なので、cvs というコマンドの wrapper で、 subcommand に応じて CVSROOT を切替えるだけで十分な気がする。

どーしてもプロトコルに手を入れたい、 というならそれも悪くはないけれど、どんな利点があるだろう? connection を張りっぱなしで動作するクライアントで使えるのが嬉しい?

2001/07/30

#1

ひさしぶりに Objective Caml を使っていると、 気にくわない点をいろいろと思い出す。

list や array のセパレータが ; であることだの、 type や constructor の大文字・小文字のルールだの、 constructor を partial application できないだの...

本質的ではないだけにフラストレーションがたまる。

#2

きっと、Dynamic Programming奥義のひとつなのだろう。 分割統治法や再帰と同様に。

2001/07/31

#1

IRC を眺めていると十二国記の話題が出ていた。

ふと思い出したのだが、 mule の HELLO にキリンの漢字が JIS X 0212 の例として出てなかったか? なんでみんな問題なく使える?

調べてみると、リンは偏が馬のと鹿のがあって馬のほうが JIS X 0212 で 鹿の方は JIS X 0208 にあるらしい。 IRC で使われていたのは鹿のほうのリンだった。

なお、キのほうも同様に馬と鹿があってこちらは両方 JIS X 0208 にある。

HELLO のキリンはキもリンも馬であった。

作中の漢字を確かめてみよう...

#2

rcs file には UTC な時刻が記述されている。

Unix には UTC な時刻を time_t に変換するポータブルな関数は存在しない。

cvs はどうやって時刻の比較をしている?

... そーか。ここで getdate.y が出てくるのか。

#3

いまさら compctl にはまるとわ...

ま、楽しければそれはそれでよいのだが。

#4

作中では両方とも鹿だった。

とすると残る疑問は馬と鹿の使い分けだが...

まぁ、馬と鹿のあいのこみたいなものだし、きっとどちらでも良いのだろう。 とりあえず、六太問題とでも呼ぶか。

#5

1.7倍は範囲内だな。 最悪で 2倍弱になるはずだ。

#6

OCaml wrapper for the zlib and bzlib libraries.


[latest]


田中哲