Just another Ruby porter,

〜2002年3月中旬〜


<Prev(,) | Next(.)> | Recent(/)>> | RDF

2002-03-11 (Mon)

Perlを256倍使うための本

勢いで注文してみたが、DBIはほとんどというか全く縁がないのであった。

User-mode Linux

次はネットワークの設定だ。ホスト側ではPPxPを使ってるのでTUN/TAPはある。 なんか/dev/net/tunを使うようなので、あらかじめ

% sudo mkdir /dev/net
% sudo mknod /dev/net/tun c 10 200

とした。あとは Setting up the network の通り。

% sudo tunctl uid
% sudo ifconfig tap0 192.168.0.254
% linux eth0=tuntap,tap0,,192.168.0.254
<snip>
# ifconfig lo 127.0.0.1
# ifconfig eth0 192.168.0.1
# route add default gw 192.168.0.254

でつながった。ちゃんとwww.ruby-lang.orgにもアクセスできてるなあ。

ftpで転送速度を計ってみようと思ったらtomrtbtにはftpはない。 というわけでdebian2.2のroot_fsで試す。 あ、VCが別xtermが立ち上がった。これ、ちょっと欝陶しいかも。

ftp> mget linux-2.4.18.tar.bz2
local: linux-2.4.18.tar.bz2 remote: linux-2.4.18.tar.bz2
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.4.18.tar.bz2 (24161675 bytes).
226 Transfer complete.
24161675 bytes received in 49.61 secs (475.7 kB/s)

あ、やっぱ/dev/nullに書かないといけないか。

ftp> get linux-2.4.18.tar.bz2 /dev/null
local: /dev/null remote: linux-2.4.18.tar.bz2
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.4.18.tar.bz2 (24161675 bytes).
226 Transfer complete.
24161675 bytes received in 49.77 secs (474.1 kB/s)

なんと変わらない。getしたファイルをcpしてみる。

usermode:/tmp# time cp linux-2.4.18.tar.bz2 dummy

real    1m0.494s
user    0m0.150s
sys     0m10.700s

なんとftpより遅い。一体どういうこと?

ホスト側でftp localhostだとこんなもん。

24161675 bytes received in 17.7 secs (1.3e+03 Kbytes/sec)

1/3ぐらいの速度。


2002-03-12 (Tue)

zlib 1.1.4

ま、shared libraryを入れ換えるだけなので簡単だ。

% ./configure --prefix=/usr -s
% sudo make install

てな感じ。

Ruby Binaries 方面は結構staticにlinkされてるのがあるので、更新しないとまずいな。 Ruby/zlibとRuby/GDと、あ、xdeltaもそうだな。 あと何だろう?

double freeの脆弱性に関しては今月号のUNIX USERにも載っている。

rsync

こういう時のためにrsyncは こう していたのさ。 というのは嘘で、 単に同梱されてるzlib 1.1.2よりも新しいのを使いたかっただけなんだが。 それにしてもrsync-2.5.3-compression-broken.tar.gzってなぜそんな名前? あ、まだzlib 1.1.3ベースでパッチをあてただけだからか。じゃ、すぐに次が出るか?

erb 1.4.0

更新。


2002-03-13 (Wed)

zlib 1.1.4-1

自分で作る必要もないので、Cygwinのパッケージをそのままコピーした。 MinGWも GnuWin32 から取ってこよう。 このGnuWin32は昔Cygwinが名乗ってたのとは関係なくて、 単に誰もが思いつく名前をそのまま使っている感じだ。 ベースはMinGWでErnieさんが作ったsupplement packageを充実させてlibcとして作り上げ、 いろんなものをmakeしているようだ。このlibcもほとんどがdummy。

rsync 2.5.4

やはりすぐ出た。makeするとwarningだらけなんだけど、 -Wallはいったい何のため?

% make ZLIBOBJ= LIBS='-lz -lpopt -lresolv'

どうも最近poptが人気だね。


2002-03-14 (Thu)

gtk 0.27

更新。

AC_PREREQ(2.50)

2.50が必要になった 原因はAC_SYS_LARGEFILEです。でかいファイル対応。 autoconf 2.53では直にLIBOBJSを使うとエラーになるので、 メッセージに従いAC_LIBOBJを使うようにしました。 autoconf 2.13にはAC_LIBOBJはないけど、 2.50が必須になったので丁度いいというか。

あ、肝心のlarge file対応についてはChangeLogに書いてないのか。

Ruby/zlib 0.51

こういうタイミングで出るのは都合がいい。

checking for rb_io_print()... no
checking for rb_io_printf()... no
checking for rb_io_puts()... no
checking for rb_io_addstr()... no

む?mkfm.logを見ると-lrubyになってる。extconf.rbに'ruby'が埋まってるなあ。 なんでCONFIG["LIBRUBYARG"]を使わないんだろう?


2002-03-15 (Fri)

Linux 2.4.19-pre3-lkpc-2

こっちも中途半端なSCHED_YIELDが残ってる。 CONFIG_BLK_DEV_INITRDをyesにするとそこが活きるわけで、 たぶんinitrdを使ってないんだろうなあ。

FBound

残念ながらImportantだった。

BoA/Every Heart

例のあれを借りた。xmmsでそのままプレイする分には全く問題ない。 オーディオケーブル経由だからか? Rippingしてみると所々ノイズが入るwavファイルになった。その程度か。

このCDはコピーコントロールCDです。

COMPACT disc DIGITAL AUDIOのマークはないからCDじゃないんだけど。

ただし、CD-ROMドライブを使ったCDプレイヤーでは再生できません。

と一応書いてある。

BoAとはBeat of Angelの略らしい。

TestUnit

そろそろTestUnitも用意すべきか?


2002-03-16 (Sat)

GNU grep 2.5

NEWSを読むといろいろ追加機能がある。気になった機能を挙げる。

--only-matching (-o)
マッチした部分だけ表示する。これでsedを使わなくてもいい場面が増える。

--perl-regexp (-P)
え?そんなのあり?と思ったらpcreを使っているのか。

--color
色がつく。defaultでは赤く表示される。 変えたいときは環境変数GREP_COLORで指定する。 強調して緑なら'1;32'のように。LS_COLORSと同じ感じなので、数字の意味は

% dircolors --print-database

を参考にするといい。

例: ifconfigの結果からIPアドレスらしきものを抜き出す

% ifconfig |grep -P -o '\d+\.\d+\.\d+\.\d+'
192.168.1.1
192.168.1.255
255.255.255.0
192.168.1.2
192.168.1.255
255.255.255.0
127.0.0.1
255.0.0.0

autoconf 2.53

perl 5.005_03以上が必須になった。 autom4te-2.53.cacheというディレクトリも勝手に作るし。 要らないよね?後始末してよ。grep 2.5もそのまま配布ファイルに含まれてる。

例のAC_LIBOBJ vs. LIBOBJSというnodeが見つからないのはなぜ? 早速覚えたgrep 2.5の技を使い

% grep -o -P  'Node:.*?, ' /usr/local/info/autoconf.info

としてみたが、特に悪いとも思えない。 あ、Emacsからならちゃんと読める。infoが何か変なのか。

日本ゴールドディスク大賞

小沢征爾ノリノリだな。オザケンも復活するわけだよ。


2002-03-17 (Sun)

GNU grep 2.5

ChangeLogを見ると

2001-02-16  Alain Magloire

        Patch from Isamu Hasegawa, for multibyte support.

とある。ほぉ。そうなのか。では早速実験。 /usr/bin/grepはgrep 2.1で/usr/local/bin/grepがgrep 2.5。

% echo 'スト' | od -tx1 
0000000 a5 b9 a5 c8 0a
0000005
% echo '好' | od -tx1 
0000000 b9 a5 0a
0000003
% echo 'スト' | /usr/local/bin/grep '好'
% echo 'スト' | /usr/bin/grep '好'
スト

確かにいけてるようだ。いや好きじゃないんだけどね。 ChangeLogに例として載っていたのだよ。 ということはもちろん'.'も1文字になるわけだ。

% echo 'あいうえお' | /usr/local/bin/grep -o .
あ
い
う
え
お

ふむ。LANGをCにすればmultibyte supportはoffになる。

% echo 'スト' | LANG=C /usr/local/bin/grep '好'
スト

diff

% diff a b
diff: % 

となんか変だ。これもglibcの影響か?diffutils-2.7をmakeしてみる。

% ./diff a b
./diff: a: No such file or directory
./diff: b: No such file or directory

ちゃんと表示された。やはりそうか。 とかなんとやってると全部入れ換えることになったりして。

bdb 0.3.1

更新。

Import - Dynamic library from other universe

って Ruby/DL じゃないのかな?

You don't have permission to access /~auroux_l/ on this server.

の403 Forbiddenなので確認できないんだけど、ex:の例を見るかぎりそんな感じだ。


2002-03-18 (Mon)

[Ruby] attr_readerをたくさん書かない方法

見直してみると

Foo.class_eval { attr_reader name.delete '@' }

じゃなくて

type.class_eval { attr_reader name.delete '@' }

のほうがいい気がしてきました。Fooという名前を変えたくなるかもしれないので。

rubyzip 0.3.1

ruby-zlib-0.5.1が出たので更新。

a catch up thanks.

お礼のメールが突然来た。 英語のメールはまずspamだと思うので危うく捨てるとこだった。

I was reviewing my posting on Ruby and
realized that I fogot to tahnk you
on the "installation errors on win2000"

なんかtypoだらけだが、全く身に覚えがない。 Rubyと書いてあるからbladeで"installation errors on win2000"を検索してみたら、 なんと 去年の8月の話 だった。

履歴書

おれに履歴書を送ってどうする?てゆかフランス語だし。.docだけどvirusではなさそう。 spamでもないよなあ。就職活動?


2002-03-19 (Tue)

Ruby 1.6.7のautoconf 2.53対応

AC_LIBOBJを使うとautoconf 2.13ではundefinedになる。 AC_DEFUNでRUBY_LIBOBJを定義してこっちを使うようにしても、 LIBOBJSを直接参照することになるのでautconf 2.53でエラーになる。

Q. どっちも満足させるにはどうしたらいい?
A. Ruby 1.8が出れば解決します。

ってわけにはいかないよなあ。

autoconf 2.53のautoconf/general.m4では

LIB@&t@OBJS

を使ってる。なんだそれ?@&t@が最終的には消えるってことか? 他にはどこにも使ってないし、よくわからん。

general.m4を眺めたら

m4_pattern_forbid([^LIBOBJS$],

を発見。これで禁止してるわけだ。この後に

m4_pattern_allow([^AS_FLAGS$])

というのがある。じゃ

m4_pattern_allow([^LIBOBJS$])

で強制的に許可できる?あ、LIBOBJSが出てきてしまうからだめだ。 でも正規表現が使えるようだから

m4_pattern_allow([^[L]IBOBJS$])

でどうだろう?字面だけならこれでいける気がする。あ、いけた。 よくあるpsの出力をgrepするときに、grepは除くという技と同じだ。

% ps aux |grep screen 
watanabe   234  0.0  0.5  2708  720 ttyp3    S    Mar19   0:00 screen
watanabe  6770  0.0  0.5  2060  764 pts/1    S    00:24   0:00 grep screen
% ps aux |grep '[s]creen'
watanabe   234  0.0  0.5  2708  720 ttyp3    S    Mar19   0:00 screen

あれ?でもautoconf的には[]はquoteじゃなかったっけ? general.m4の他の例を見ると、どうもここではそのままの意味になるようだ。不思議。

で、autoconf 2.13でこれを通すと、今度はそのまま

m4_pattern_allow([^[L]IBOBJS$])

が残るという問題が。うーむ。

: '
m4_pattern_allow([^[L]IBOBJS$])
'

というのはどうだろう?一応どっちもいけるようになった。 残り少ない命の1.6.xだし、これでいいか。

Emacs 21.2

更新。


2002-03-20 (Wed)

[Cygwin] Setup.exe update

* Can download from multiple mirrors - use CTRL-Click or Shift-Click
  in the mirror site dialog.

というわけで複数のミラーサイトが指定可能になった。 もちろんその情報は保存される。 つまり この場所 の情報も保存できるようになったわけだ。

REXML 2.0

更新。


<Prev(,) | Next(.)> | Recent(/)>> | RDF


WWW を検索 jarp.does.notwork.org を検索

わたなべひろふみ
Key fingerprint = C456 1350 085F A320 C6C8 8A36 0F15 9B2E EB12 3885
Valid HTML 4.01!