〜2003年9月上旬〜
1239通。4ヶ月連続でだいたい1200通ってのも不思議だ。
ゴミを移動した。パスワードを探し出すのに苦労した。 ruby-bugsのほうはspuriousだったのか。trashを作ってしまった。 で、困ったことに消せないのだよ。 そもそもゴミも移動じゃなくて消したいわけなんだよね。 やっぱjitterbugはだめだめだ。
誰も見向きもしないようだけど、YAMLだけってのは不公平だよね。いっそのこと
class String def percent_y ... end end
と定義すると、%y{ ... }でpercent_yが呼ばれるようにするのはどうだろう? いやpercent_yってのはいまいちだから、 なんかこうかっこいいインタフェースを考えて。
逆にmethod_missingみたいな仕組みでもいいのかもしれない。
Changes: Support has been added for 64-bit file I/O and 32 bit UID and GIDs. Networking problems and problems with malloc of large objects have been fixed. There is improved signal handling, and many other bugfixes.
しばらくre-linkによるアプリケーション側のupdateが続く模様。 落ち着くまで待ったほうがよさそう。
これはちょっとねえ。たかがwith_index程度に文法を変えるのはまずいっしょ。
全部かよ!いやGCCはまだだ。いいかげん3.3にして欲しいのに。
更新。
元の文字列を書き換えるようなチェックじゃ、使いもんにならんだろうが!
def %yじゃ、 引数がyで%という名前のメソッドを定義することになるのでだめです。
class String def %y "%y" end end p "" % "" #=> "%y"
man lesskeyによると#envセクションを使うことで環境変数を定義できるらしい。 ~/.lesskeyは
#line-edit ^P up ^N down ^F right ^B left ^A home ^E end ^H backspace ^D delete #env LESS=icM
としよう。
更新。
更新。
久々だな。1年半振りか。
126とは
% /c/winnt/system32/net helpmsg 126 The specified module could not be found.
という意味なので、なにかDLLが足りないわけです。
% objdump -p /usr/lib/ruby/1.8/i386-cygwin/digest/md5.so|grep 'DLL N' DLL Name: cygruby18.dll DLL Name: cygcrypto-0.9.7.dll DLL Name: cygwin1.dll DLL Name: KERNEL32.dll DLL Name: cygruby18.dll
というわけで、たぶんcygcrypto-0.9.7.dllが原因です。 他もだめというのがopenssl.so以外だとすると原因は別になりそうだけど、 まずはOpenSSLをインストールしてみましょう。
digest/md5はextconf.rbでlibcryptoがないときは自前の関数を使うような処理になっているので、 configureしなおして自分でmakeすればそれなりに動くものができあがります。
柴咲コウは劇中歌手だけだったのか。 中学生のパートが印象的だった。 全体的にはなんかいまいち。
二宮和也の演技はすごいね。単なるアイドル映画ではない。
なるほどねえ。-Bstaticと-Bdynamicではさめば、 はさまれたライブラリだけがスタティックにリンクされるわけか。 つまりlibz.dll.aじゃなくてlibz.aがリンクされる。 gccからなら
-Wl,-Bstatic -lz -Wl,-Bdynamic
とすればいい。
シンボルだけなので細かい引数は無視して実験。
% cat foo.c main() { zlibVersion(); DES_crypt(); } % gcc foo.c -lz -lcrypto % objdump -p a.exe |grep 'DLL N' DLL Name: cygcrypto-0.9.7.dll DLL Name: cygwin1.dll DLL Name: cygz.dll DLL Name: KERNEL32.dll % gcc foo.c -Wl,-Bstatic -lz -Wl,-Bdynamic -lcrypto % objdump -p a.exe |grep 'DLL N' DLL Name: cygcrypto-0.9.7.dll DLL Name: cygwin1.dll DLL Name: KERNEL32.dll
ちゃんと-lzだけがスタティックにリンクされている。
これってCygwinのsetup.iniの不備と言える。 OpenSSLに依存していると書かれていないのがまずい。 他も調べてみると
ncurses, dbm, gdbm, iconv, readline, tcltklib, zlib
もそうだな。依存させるのは簡単だけど、 逆に用もないのになんかいっぱいインストールされるといやだなと感じるユーザもいるかもしれない。
考えてみるとおいらが作ってるsetup.iniもrequiresは書いてない。 他人のことは言えない。
更新。
更新。
家に帰る途中、空を見上げたら月と火星が並んでいた。 明後日は十五夜か。
びっくりするぐらい遅い。1通あたり18秒って。 -Lを指定したら39秒って、え?なんかおかしいな。
なぜSpamAssassinかというとruby-bugs(-ja)で使っているからであり、 その勉強のためだったりするわけだが、 たとえば200通ぐらい一度に受けると3600秒かかるわけで1時間かよ!
とかなんとか書いてる間に5通のspamを見つけてくれた。 ちゃんと動いてるようだが、これを使うわけにはいかないな。
で、結局Bogofilterを入れてみたり。 半年ほどspamを取っといたけど、それは使わずに0から育ててみる。
学習させるために、SpamAssassinと組み合わせてみよう。 bogofilterで生き残ったメールをSpamAssassinでもう一度チェックし、 spamと判断されたらbogofilter -Nsで学習しなおすという方針。 だれかすでにやってるに違いないと思い、 bogofilter spamassassinでぐぐるとやはり あるね。というわけで~/.procmailrcをこんな感じにした。
MAILDIR=$HOME/Mail/ PATH=/bin:/usr/bin:/usr/local/bin LOGFILE=$HOME/procmail.log ### SPAM :0fw | bogofilter -u -e -p -l :0: * ^X-Bogosity: Yes spam/. :0fw | spamassassin :0 * ^X-Spam-Status: Yes { :0cw |bogofilter -Ns :0: spam/. }
最初は精度が悪いので手動でも学習させよう。 spamじゃないのにspamと判断されたら
% bogofilter -Sn <no-spam
spamなのにspamじゃないと判断されたら
% bogofilter -Ns <spam
でいいわけだな。
やっぱnkf+kakasiでわかち書きにしたほうがいいのかな。 このままでも結構賢くなりつつあるから、とりあえず様子見。