〜2003年11月中旬〜
% grep '^From' ~/.procmail/2003-11.log |wc -l 2388 % folder last spam+ has 787 messages ( 1- 787); cur= 787. % echo $[2380/787.0] 3.0241423125794156
1/3がspamかー。と、書いてるうちにhamが2通、spamが1通。やっぱり1/3だ。
heliumで動かすための軽いbayesian filterが欲しくなった。 freshmeatでspamをキーに検索してみたら、最初に出てきたのが Quick Spam Filterで、結構よさそうだ。 spamとhamのmbox形式のファイルを用意して、
% qsf -T spam.mbox ham.mbox
で学習させればok。
-a, --allowlist Enable the allow-list. This causes the email address given in the message's "From:" header to be checked against a list; if it matches, then the message is always treated as non-spam, regardless of what the token database says.
が便利そう。
gdbmとbuiltin databaseとどっちがいいのか、あとで比較してみよう。
とりあえずbuiltin dbの実力。
% TIMEFMT='%U user %S system %E total' % time zsh -c 'for i in *; do qsf -t < $i; done' 29.00s user 24.86s system 96% cpu 56.009 total
--with-gdbmで作り直したら2倍以上速い。
% time zsh -c 'for i in *; do qsf-gdbm -d ~/.qsfgdbm -t < $i; done' 19.94s user 4.89s system 95% cpu 25.922 total
QDBMのGDBM-compatible APIを使うとさらに速くなる。
% time zsh -c 'for i in *; do qsf-qdbm -d ~/.qsfqdbm -t < $i; done' 17.04s user 3.18s system 97% cpu 20.788 total
で、 bogofilterはどうなんだというと実はもっと速い。
% time zsh -c 'for i in *; do bogofilter -e < $i; done' 11.01s user 4.48s system 91% cpu 16.988 total
ええと、何がしたかったんだっけ?
qsfのREADMEにはBerkeley DBも使えると書いてあるから、 次はそっちを試そう(意地になってる)。
doc/NEWSを見ると
0.9.4 - 21 October 2003 <途中略> - dropped support for Berkeley DB
だそうだ。ぐはぁ。これほど裏目に出るのも珍しい。
このソフト自体にはあまり興味はないんだけど、 dなんて名前じゃweb pageを探すのが大変だよ。 freshmeatにあるかなと思って http://freshmeat.net/projects/d/を試したら本当にあった。ちょっとびっくり。
もちろんw3m用のfreshmeat.cgiも用意してある。
#! /bin/sh cat <<EOF w3m-control: GOTO http://freshmeat.net/projects/${QUERY_STRING##*:} w3m-control: DELETE_PREVBUF EOF
urimethodmapに
f: file:///cgi-bin/freshmeat.cgi?%s
を追加。 dもw3m f:dで試せる。
このあたりに魅かれて更新。
* GNU/Linux's Thread Local Storage (TLS) GDB now includes support for for the GNU/Linux implementation of per-thread variables. * GNU/Linux's Native POSIX Thread Library (NPTL) GDB's thread code has been updated to work with either the new GNU/Linux NPTL thread library or the older "LinuxThreads" library.
* Wget 1.9.1 is a bugfix release with no user-visible changes.
妻役と女子高生役のどちらも1980年生まれらしい。10歳は離れてると思ったよ。 それにしても子役が一番恐いというのはいかがなものか。
mark@gogodatapro.comってとこから1000通以上のspamが来た。 To:に50個以上指定しているので、 PR#1223, PR#1224は単純にTo:全部へreplyして文句を言ってきたと思われる。 こういうのはちゃんと送る前に確認して欲しいよなあ。spuriousへ移動しとこう。
o Fixed several silly configuration problems that were present in the 0.9.22 release. o Fixed compilation problem with soft-float support on several architectures. o Lots of cleanup work on the powepc shared lib loader thanks to Joakim Tjernlund. o Updated the debian packaging for use in a standalone uClibc system, rather than being a subordinate library under a glibc based system.
TU-Berlin.DEでnews gatewayが復活。
Method visibilityがよくわからない。
久し振りに試したらprocess.cでWNOHANGが見つからないので
#define WNOHANG 1
を追加してみた。
% ./bareruby -v ruby 1.8.1 (2003-11-17) [unknown-unknown]
Linux以外でも試さないと。
FreeBSDでエラーが出る。調べてみるとなんとmissing.hがバグってる。 これを 直してNetBSDでも試すとこちらもok。 次にOpenBSDで試すとlseekとtruncateの宣言がエラーに。 io.cの
#if !HAVE_OFF_T && !defined(off_t) # define off_t long #endif
が原因だった。OpenBSDのときはHAVE_OFF_Tをdefineしよう。
久し振りにviper-modeでskkを使ってみたら全然遅くないのであった。 何が原因だったのかな。 やめて丸々一年経つのか。
ftp://ftp.iij.ad.jp/pub/djgpp/current/から以下のファイルを取ってくる。djつきがv2/で残りはv2gnu/から。
% ls -w70 acnf257b.zip bsn135b.zip fil41b.zip grep24b.zip shl2011b.zip bnu214b.zip djdev203.zip gcc332b.zip mak3791b.zip txt20b.zip bsh204b.zip djtzn203.zip gpp332b.zip sed407b.zip
Cygwinから操作するとこんな感じだ。
% mkdir c:/djgpp % unzip \*.zip -d c:/djgpp % chmod +x c:/djgpp/**/*.exe
あとは環境変数DJGPPにc:/djgpp/djgpp.envを設定すればいい。
結構久し振り。Rubyで試す。とりあえずok。 それにしてもmake checkの長いこと長いこと。
今日1日で270通。読めるかー。