2003年2月7日(金) ウニモグの走る朝
● 予算のある町ではこれで除雪をしている。予算のない町は…すべってたのしい。ウニモグを最初に知ったのは「エリア88」だったような気がする。
● 自動的に日誌をカテゴライズするtDiary
ぐうたらな私はセクションタイトルにカテゴリーを書くのが面倒。 日誌の内容を見てソフトウェアが自動的に近い内容の日誌を見つけてくれないかと、 試してみました。
「近い内容」を、 今回は、「namazuのインデックスに共通の単語が登録されている」 と定義してみました。 具体的には、 目的の日と調べてる日に共通する単語のスコアの合計を、 全ての単語のスコアの合計をそれぞれの日について算出したものの積の平方根で、 割りました。 同じ日についてこの値を計算すると 1 に、 共通の単語を持たない日の日記と計算すると 0 になります。
さて、結果は…。
まったく関係のない日の日誌が上位に出てきました。 やっぱりpreについて書いた日誌に近い日誌にもpreのことが書いてあったほしいよね。
そんなわけで実験失敗。敗因は、
- 助詞や助動詞も大量にインデックスされていて、 それらが共通の日誌が上位にきてしまった。
- インデックスが一日単位に作られていて、比較するには話題が多すぎる。
ことくらいでしょうか?今後何ができるか。
- インデックスする単語の品詞を限定する - このホストにchasenの入る場所がないので難しい
- セクション毎にインデックスを作る - namazu側で対処するにはhtmlsplit.plの作りがいまいちだし、 tDiary側で対処するにはhoge_style.rb diary.rhtml squeeze.rb くらいの大改造が必要。
- どこかのSPAMフィルターの記事にあったように、 日誌を書く度に、tDiaryにそれぞれのカテゴリに入る単語を学習させる。 そのうち自動的にカテゴリ分けをしてくれるようになる。 - セクション毎にインデックスを作るよりもっと大変。
と妄想は広がるのですが、本職もあるしこの辺でおひらきということに。 幹にカテゴリ機能がマージされたらzunda_style.rbでも対応するようにしてみよう。 ちゃんちゃん*1。
*1 strfmon(3)をrubyの拡張ライブラリとして作る、というのも楽しそうだけど…。ウズウズ。
● 渡航情報 ミュンヘン(ドイツ):ミュンヘン安全保障会議
2月7日(金)から9日(日)にかけて、ミュンヘン市内中心部のホテル・バイエリッシャホーフで毎年恒例のミュンヘン安全保障会議が開催されますが、同期間中、特に8日(土)は市内中心部各地で大規模なデモが予定されていますので、デモに巻き込まれないようご注意願います。
とのこと。土曜日に危険なのは、
- 10:00マリエンプラッツ→17:00イザールトア、カールスプラッツ
- 10:30オデオンズプラッツ→14:00ミュンヘナーフライハイト
とのこと。買い物に行きたいんだけどWal★Mart周辺で済ますべきか。
2ch経由、海外安全ホームページより。
2005年2月7日(月) 山頂に参上
● subversionウゴキマセン
$ svn co svn+ssh://zunda@svn.momonga-linux.org/home/svnroot/svnroot_pkgs/trunk $ cd trunk $ svn update svn: XML parser failed in 'tools'
いったいどうしろと…
(追記)Googleの検索結果を開きまくると、httpdのlibaprのABIが変わると起きるという例が。確かに手元の.svn/entriesでもprop-timeとtext-timeがおかしな値になっている。subversionはリビルドしたのだけれどhttpdも含めてやってみようか。httpdをリビルド、インストールした後にリビルドしたsubversionは期待通りに動いているようです。
やっぱりGNU archまじめに使ってみようっと。
2006年2月7日(火) いろいろ壊れる
● 昨日帰るときにボロい方の自動車のウインカーの電球が切れているのに気づいた。今朝は自転車に空気を入れてから出勤しようと思ったら空気入れが壊れた。空気入れは圧力がかかるところの鋳ものがぼろりと折れてしまったので、20分エポキシでくっつけてみた。直るかな。ウインカーの電球は買いにいかなくちゃ。
● 内之浦・ロケット観光ガイド - M-Vの打ち上げを見に行こう!
ASTRO-EII打ち上げの時のレポート。Space Fighter Nowからリンクされていて改めて見た。
(5) 大混雑の打ち上げ当日の動画は必見。いやー、打上げを見学に行きたくなる気持ちがわかりました。
…そしてなぜか「王立宇宙軍」を観たくなる。
しごとしよ。
● dvipsとps2pdfでミルカさんを読む
以前から気になっていた、TeX文書のPDF化の方法について。メールに添付した論文の草稿のPDFファイルがGMailのHTML化機能でかなりちゃんと再現されていたのを見て、またやってみようと決心しました。
ありがたいことに、ミルカさんとコンボリューションでTeXのソースが公開されています。これをいただいてきて展開し、奥村さんのスタイルファイルも同じディレクトリに展開して、下記のようにPDFファイルを作成しました。
$ nkf -e convolution.tex > convolution-euc.tex $ platex convolution-euc.tex $ platex convolution-euc.tex $ dvips -t a4 -o convolution-euc.ps convolution-euc.dvi $ ps2pdf convolution-euc.ps convolution-euc.pdf
これをgpdfで見るとこのとおり。一見うまくいったように見えますが、実は再描画すると以前と同じくガタガタの表示になってしまいました。

ツールのバージョンは下記のとおり。
$ platex --version pTeX (Web2C 7.4.5) 3.14159-p3.1.2 (EUC) kpathsea version 3.4.5 (後略) $ dvips --version dvips(k) 5.94a kpathsea version 3.4.5 $ rpm -qf `which ps2pdf` ghostscript-7.07-15m
やっぱりxpdfだと問題ないんだけどなあ…。
● LaTeX2HTMLでミルカさんを読む
調子に乗ってLaTeX2HTMLも使ってみました。あまりメンテしていないマシンのものなので古いです。WWWブラウザに表示された内容を縮小してあります。
$ latex2html --version This is LaTeX2HTML Version 2002-2-1 (1.70) by Nikos Drakos, Computer Based Learning Unit, University of Leeds.
この絵だと画像ファイルとして表現されている式に下線がついてしまっているけれど、まじめに環境設定すればもう少しきれいに出力されるはずです。まじめに環境設定しなきゃいけないところが問題だけれど、最新版だとだいぶ改善されてるのかな。
● ポンプはエポキシではなおらない
昼休みに空気を入れてみたら空気漏れてました。だめかー。電球は買ってきたので自動車で仕事場に。
2007年2月7日(水) まだまだ白い空
● gettextで得られる文字列を入れるバッファの大きさはどうやって決めるんだろう?
@ITに、「ロケールの問題でプログラムが正常に動作しない場合には」という記事が載っていた。gripというプログラムを例に採って、LANG=Cで使えるプログラムが日本語ロケール(ってFC6ならja_JP.UTF-8なのかな?)で使えない場合にどうやって修正するのか解説してある。曰く、char versionbuf[20];をchar versionbuf[22];にしろ、とのこと。えぇーっ?「ここで挙げた対処方法は、あくまで暫定的な措置なので自己責任の下で作業していただきたい」と断り書きがあるにせよ、これはさすがにまずそうだと感じる。きっと他のロケールで落ちる。
興味が湧いてきたのでコードを覗いてみることにした*1。grip-3.2.0のsrc/grip.cに下記のようなコードがあった。
char versionbuf[20];
(中略)
sprintf(versionbuf,_("Version %s"),VERSION);
label=gtk_label_new(versionbuf);
(中略)
gtk_widget_show(label);
VERSIONはconfig.hで定義されるマクロだろう。
この場合、versionbufに必要な大きさは実行時まで不明ということになるのかな。なら、malloc(3)でメモリ領域を確保するべきなんだろう。C99ならsnprintf(3)で必要なバイト数を測るか、C99が仮定できない場合にはprintf(3)のmanページにあるコードでメモリ領域を確保しつつ文字列を作ることになりそう。
さて、こうやってmalloc(3)で確保された領域の文字列をgtk_label_new()に渡した場合はこの領域はいつまで確保しとかないといけないか…ちょっと探しただけではわかませんでした。GUIは難しいね…結論はそれか?
*1 そんなことしてる時間がないのは自明の事実なのだけれど。
● [memo] Debian:i18n (ukai.org)
gettextについていろいろ探している過程で、「i18nについて世界のdeveloperにたいして言わなければいけない時に忘れてはいけないポイント」の書いてあるページをみつけました。もし国際化するべきプログラムを書く時があれば参考になりそうだ。i18nについて自分にたいして言わなければならないポイント。
● Citrixのウインドウを画面の端にドラッグして離したらメニューバーにアクセスできなくなった。もう用済みなので閉じたいのですが。ローカルのWindowsからはウインドウが選択されていないように見えるようで、Alt+F4でも閉じられないし、Alt+Space-Mでも移動できない。ネットワークが切れる(そのうち必ず切れる)のを待とうかとも思ったけれど、スタートメニューの横にならんでるアイコンを右クリックしてCloseを選んだら閉じられた。しかしデータベースとやりとりするのにデータベースサーバのウインドウを持って来ちゃうってのは斬新な発想だよねえ…。
● オモコンマシン死亡
ハードディスクの問題じゃなかったか…。 フリーズ時のtopは下記のような感じ。gccを作り中でした。 やっぱりファイルの操作時に不安定になるみたい。
top - 17:54:06 up 9:02, 4 users, load average: 1.07, 1.22, 1.25
Tasks: 71 total, 2 running, 69 sleeping, 0 stopped, 0 zombie
Cpu(s): 99.3% us, 0.7% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si,
Mem: 515452k total, 504420k used, 11032k free, 58796k buffers
Swap: 1004052k total, 144k used, 1003908k free, 289840k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20989 zunda 25 0 8908 7780 372 R 99.1 1.5 1:11.81 bzip2
2313 zunda 16 0 1900 920 720 R 0.7 0.2 1:21.09 top
2269 zunda 15 0 6140 1148 824 S 0.3 0.2 0:03.74 sshd
20988 zunda 17 0 1748 680 588 S 0.3 0.1 0:00.04 tar
1 root 16 0 1908 636 540 S 0.0 0.1 0:00.82 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
8 root 10 -5 0 0 0 S 0.0 0.0 0:00.62 kblockd/0
9 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
83 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
85 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod
143 root 15 0 0 0 0 S 0.0 0.0 0:02.51 kswapd0
144 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
310 root 11 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
kernel-2.6.20に行ってみるか?ハードウェアの問題か?泥沼か?うーん…
(追記) 8日に古い方のハードディスクを物理的にはずして再挑戦。
top - 17:33:27 up 8:50, 4 users, load average: 1.02, 1.17, 1.22 Tasks: 71 total, 3 running, 68 sleeping, 0 stopped, 0 zombie Cpu(s): 99.3% us, 0.7% sy, 0.0% ni, 0.0% id, 0.0% wa, 0.0% hi, 0.0% si, Mem: 515452k total, 509740k used, 5712k free, 60724k buffers Swap: 1004052k total, 128k used, 1003924k free, 293064k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19154 zunda 25 0 8908 7780 372 R 99.4 1.5 2:02.16 bzip2 1870 zunda 17 0 51604 43m 3616 S 0.3 8.7 0:09.62 ruby 1919 zunda 16 0 1896 916 720 R 0.3 0.2 1:22.08 top (後略)
で目の前で止まってしまいました T_T マザーボードか電源か…。嗚呼。
● parse error, unexpected $, expecting kEND (SyntaxError)
そういえば昨日職場でPythonのスクリプトを書いていた。
2008年2月7日(木) 久しぶりの青空
● 久しぶりに青空。真っ白な山頂がちらっと見えた。自動車の窓を開けて走って中を乾かす。気持ちいいあぁ、と思ってたら午後になってまた天気悪くなってきましたよ。
脳味噌から汁が出るくらい考える。こともある。
> Nana [うわ。ありがとうございます。まだそちらは寒そうですね。]
> ずんだあん [例年よりはあったかいってみんな言うんですけど、ボロアパートで寒いですぅ。]