2003-03-01 [長年日記]
λ. TODOがたまっていく一方。ゲームに逃避している場合じゃないよなぁ。
λ. SKK = I (今日のなんでやねん(2003-03-01)より)
SKKってあの佐藤雅彦氏が作ったものだったのですね。恥ずかしい事に、これまで全然知りませんでした。
λ. ベイジアンフィルタ
最近 bayesian spam filter が注目されているのを見ていて、 ふと帰納論理プログラミング言語Progolを用いた電子メール分類システムであるAUTOMAILの存在を思い出した。 実際に使ったことは無いし論文すら読んでないのだけど、 あれと比較するとどうなんだろう。
- Shimazu, K. and Furukawa, K. (1997) Knowledge Discovery in Databases by PROGOL - Design, Implementation and its Application to Expert System Building. In Proceedings of First International Conference on the Practical Application of Knowledge Discovery and Data Mining.
- 嶋津恵子, 古川康一 (2000), データベースからの知識発見システム DB-Amp - 設計と実装とエキスパートシステム開発への応用. 人工知能学会誌, Vol.15, No 4, 論文特集: 「発見科学」, pp.629-637
λ. エネミーオブアメリカ
.
2003-03-02 [長年日記]
2003-03-03 [長年日記]
λ. UNION/FIND
今読んでいるwambookにUNION/FINDに基づいたユニフィケーションのアルゴリズムが載っていたのだけど、あまりに簡単で拍子抜け。これなら私も書いたことがあるや。ところで、UNION/FINDの計算量は almost linear すなわちアッカーマン関数の逆関数のオーダだとよく言われるけど、これってどうやって計算するのだろう?
2003-03-04 [長年日記]
λ. TODOを一個ずつ片ずけていこう...
λ. gtk2 for cygwin
gtk+-2.2.1がこれまでx11でうまく動作していなかったのだけど、新PCでコンパイルしなおしたら直ってしまった。
それから、わたなべさんの所を真似してsetup.iniを作ってみたので、http://web.sfc.keio.ac.jp/~sakai/cygwin/ を"Other URL"に指定することで、setup.exeからインストールする事が出来るようになった(はず)。わたなべさん、ありがとうございました。
ついでに、送ってなかったx11関係のパッチを送ってしまう。#107623
λ. functor category とデータ型
「data GRose f a = GBranch a (f (GRose f a))」のGRoseを Funct(C,C) × C -> C の functor と考えれば、射の写像mapGRoseの型は「∀f g. (∀a. f a -> g a) -> (b -> c) -> (GRose f b -> GRose g c」であると考えられる。しかし、Generic Haskell は違っていて「∀ f g. (∀a b. (a -> b) -> (f a -> g b)) -> (c -> d) -> (GRose f c -> GRose g d」という型の関数を考えるらしい。うーみゅ。
λ. Ruby/FFCall
2/19の [ruby-ext:02156] ruby-dl with ffcall は少なくとも当面は取り込まれることはなさそうなので、とりあえずは独立した拡張ライブラリにしておこう。[ruby-ext:2165]
2003-03-06 [長年日記]
λ. 買った本
- 『HELLSING 5』
- 平野 耕太 [著]
λ. 借りた本
- 『満腹亭へようこそ』
- 筒井 康隆 [著], 秋 竜山 [漫画] 鷲田 清一 [解題]
- 『チーズはどこへ消えた?』
- スペンサー・ジョンソン (Spencer Johnson) [著], 門田 美鈴 [訳]
- 『吸血鬼ハンターD - 双影の騎士 1』
- 菊地 秀行 [著]
λ. Ruby-GNOME2
gtk2 on cygwin のパッケージに ruby-gnome2 とrbbrを追加しました。x11用は(まだ)用意してなくてwin32専用です。
2003-03-08 [長年日記]
λ. gtk2 on cygwin
急に色々なところから注目されてビックリする。柴田さん、早田さん、CyGnomeのBiju G. C.さん、むとうさん、安部さん、たむらさん、どうもありがとうございます。
それから、スクリーンショットに足永さんのGImageViewの画像を加えてみたり。プラグインをDLL化したりとかは面倒そうだけど、バータリーになら簡単にコンパイル可能。
λ. Rucheme / Scheme(subset) interpreter on Ruby
のコードを眺めていて、以前に書いたSchemeもどきのRougeを思い出す。当時はSchemeに関する知識も言語処理系の実装に関する知識もほとんど無かったこともあって、Rougeのコードは今見返すと随分ひどいなぁ。
しかし、末尾再帰の除去ってどうやって実装するんかな。うーん。しかし、properly tail recursive : 正しく末尾再帰を行う、という表現、なんか不思議。
SchemeをRubyで実装する場合、Ruby自身が末尾再帰の除去に対応していない以上、例えばトランポリンを使う形に変換するとか……(以下略)
λ. OHMSS
って、「On Her Majesty's Secret Service」の略なのね。知らなかった。
ψ ささだ [はじめまして。とりあえず悩んでます。いかに楽に仕様準拠するか。というかマクロ無理っぽいです。面倒で。]
ψ さかい [R5RSはそんなに大きな仕様ではないですけど、 真面目に準拠するのはやはり結構大変みたいですね。 私はマクロは_仕..]
ψ むとぽん [おーい、オレが忘れられてるよ〜(T_T) > gtk2 on cygwin]
ψ なかだ [redoを使うとか。 とまったく見もせずに書いてみるテスト。]
ψ さかい [や、申し訳ない。追加しときました。> むとうさん # 単にむとうさんの日記を見るよりも先に書いてしまっていただけなの..]
ψ ささだ [とりあえずやってみました。末尾再帰除去。いろいろアレでナニでいやーんなソースになりました。 redo はなんとなく嫌..]
ψ ささだ [ついでに、いまだにscheme/言語処理系の知識は十分でないです。私。処理系作ってると新たな発見があって面白い。って..]
ψ さかい [そうですね。 実装して初めて気付く事って結構ありますよね。 最近もCPL(Categorical Programm..]
ψ ささだ [eval って定義(define) 駄目なんですか。知らなかった。仕様読んで無いじゃん、私。コンパイラにそんなに向か..]
ψ さかい [evalの説明に以下のような下りがあるので、定義を許す必要は無いというだけで、別に許したって構わないと思います。 ..]
ψ ささだ [げ、definitions って non-expression だったのか!(駄目じゃん俺・・・) lambda の..]
2003-03-09 [長年日記]
λ. gtkengine and librsvg
gtk2 on cygwin に gtkengineとlibrsvgのパッチを追加。バイナリを公開していないのは、これ以上手を広げるなら、win32版とx11版の共存について考察した方がよさそうだから。
GImageViewは一部に需要がありそうなので、もう少しがんばってみる。……プラグインのDLL化を一応なんとかした。 exeファイルからシンボルをエクスポートする方法をすっかり忘れていて随分はまってしまった。他のプラットフォームみたいに「gcc -Wl,--export-dynamic -o test.exe 」だけで済めばどんなに良いか…… (「binutilsでもhackすればぁ?」クレヨンしんちゃん風に) とりあえず、設定画面のスクリーンショットと作業中のパッチ。
λ. 有野さん
λ. 1.8のRuby Binaries
キタ━━━━━━(゜∀゜)━━━━━━ !!
しかし、うーん、ruby-gnome2-devel-jaでこんな不用意な発言しなけりゃ良かったかも(笑)。
> #あれ?1.8.x対応は?(^^;) (1.8用の)バイナリの公開は、わたなべさんの Ruby Binaries あたりで 1.8のバイナリが公開されてからでいいかなと思ってます。
2003-03-11 [長年日記]
λ. 携帯電話
やっぱ慣れないものを使うのは難しいなぁ。ビデオの予約も出来ない酒井に、果たして明日はあるのか!?
λ. け・い・ぞ・く
トップレベルはread-evalのループだから、引数無し手続きの呼び出しと、その手続きのbodyをトップレベルに書いたものは、継続とか関係する場合は振る舞いが異なるのね…… (guileの場合。処理系依存かも)
自分は継続を誤解してるんじゃないかと、すっかり不安になって、ぐぐってしまったよ。てへっ。
λ. 1.8 のRuby binaries と setup.exe
cygwinのsetup.exeって、同じホストの複数のディレクトリを指定できないみたい。しかも既に追加したURLを削除するUIが無いので、とりあえず/etc/setup/last-mirrorを書き換えて、ようやく1.8用のRuby binariesをインストールできた。
λ. 昼寝
してたら、寝過ごして、約束をすっぽかしてしまった。欝だ。
λ. gtk2 on cygwin
GImageViewを使っていて、他のWindowsアプリケーションからファイルをドラッグ出来ないのに気付いておかしいなぁと思って調べてみる。
- gdkdnd-win32.cでファイル名をWin32形式のままg_filename_to_uri()に引き渡しているので、先にファイル名をPOSIX形式に変換するようにした。
- GImageViewは file:/usr/share/pixmaps/gimv.png という形式しか認識しないので、g_filename_to_uri()が作る file:///usr/share/pixmaps/gimv.png のような形式も認識できるように修正。(本来は後者の形式の方が正しかったような記憶が……)
- gdk-win32はGtkSelectionDataにtext/uri-listを入れる際にデータをNUL-terminateしないが、GImageViewはNUL-terminateされている事を期待している。lengthを同時に受け取るのだからNULは要らないだろと思い、GImageViewの方を修正
というわけで手元ではDnD出来るようになったので、GImageViewのパッチとバイナリを追加。ただ、gtk+の方のパッケージをまだ更新していないので、このGImageViewのパッケージを入れるだけではDnDは出来ないかもしれません。
2003-03-13 [長年日記]
λ. Syllable
ふとノートPCにインストールしてみる。インストールはラクチンだったけど、PCカードのネットワークインターフェースを認識してくれなかったのであまり遊べず。仕方ないからデスクトップの方に入れようか……
PythonはPerlはパッケージが用意されているけど、Rubyはまだ無いようだ。それからw3mやzshなんかのパッケージもあった。
λ. gtk2 on cygwin
結局、win32 backend 用と x11 backend 用はパッケージを分けることにした。でも、librsvgのように依存部分が本体でなくてかつサイズも小さい場合には両方入れてしまってもいいかな。
GImageViewだけど、DnDには自前でfile:〜を扱わないでg_filename_from_uri()を使った方が、URIのunescapeとUTF-8の変換をやってくれるので、よさげ。g_filename_from_uri()を使ったら、日本語ファイル名や空白を含むファイルも他のアプリケーションからドラッグできるようになった。次にパッケージを出すときはこれを使おっと。
(UTF-8に変換するのは余計なお世話のような気もするけど、RFC2718にはUnless there is some compelling reason for a particular scheme to do otherwise, translating character sequences into UTF-8 (RFC 2279) [3] and then subsequently using the %HH encoding for unsafe octets is recommended.
なんて書いてあるのか……)
λ. LUNO
TRPG: メモ書き (2003-03-11)より。WishListに追加。
2003-03-15 [長年日記]
λ. 四十九日の法会と納骨。
λ. まさきたんかわゆい。
λ. CHISE Symposium 2003 と RHG読書会にも興味はあったんですけどね。
λ. ORBit2-2.6.0
性懲りもなく挑戦してみる。Steven O'Brien 氏のORBit1用のパッチはenumのサイズが2バイトである事を想定しているのだけど、少なくとも現在のgcc-3.2は4バイトだったので、彼のパッチは使わなかった。で、結果、一応は動くのだけど、クライアント(例えばtest/echo-client)の終了時に「** ERROR **: file orbit-object.c: line 146 (do_unref): assertion failed: (robj->refs < ORBIT_REFCOUNT_MAX && robj->refs > 0)」と言われる(サーバ側は言われない)。
少し追いかけてみると、main()の最初の「CORBA_ORB orb = CORBA_ORB_init(&argc, argv, "orbit-local-orb", &ev);」でORBへの参照を得て、この時点でrefs=4。内訳は
- このorb変数からの参照
- _ORBit_orbからの参照
- "RootPOA"との相互参照
- "POACurrent"との相互参照
main()の最後の「CORBA_Object_release((CORBA_Object)orb, &ev);」で(1)が解放されrefs=3
main()からリターンすると、g_atexit()で登録された corba-orb.cのshutdown_orb()が呼ばれて、 そこからCORBA_ORB_destroy()が呼ばれる。
CORBA_ORB_destroy()の中程でorb->initial_refsの中身を開放するので、 (3)と(4)の参照が解放され、refsが3から1に減る。 (ただしサーバ側だとここで減るのは1だけ。 サーバ側ではきっと"RootPOA"か"POACurrent"のどっちかが まだどこからかまだ参照されていて、そのため参照が減らないのかも)
CORBA_ORB_destroy()の最後の方の ORBit_RootObject_release (orb); でrefsが1から0に減る(解放されているのは(2)?)。(A)
正しそうだ。 しかし、直後に 「At this stage there shouldbe 1 ref left in the system - on the ORB」 というコメントがあり、この時点でrefsは1でなくてはいけないようだ。おかしいぞ。
CORBA_ORB_destroy()からリターンした後、 shutdown_orbでこのORBをもう一回 ORBit_RootObject_release (orb); している(解放されているのは(2)?)。(B)
AかBのいずれかが間違い? あるいは……
λ. GConf-2.2.0
同じくSteven O'Brien氏のパッチを適当に編集してあてる。結果は、test/testpersistenceが「*** FAILED: float values nan and 8.3 are not equal (epsilon 13.4)」で通らない事以外は、一応動いているようだ。ただ、ロックファイルの扱いがなんだかおかしい気がする。
λ. Ruby/Gtk2備忘録
む。
2003-03-16 [長年日記]
λ. ruby-1.8.0-preview2
AtheOSのRubyのパッケージ 無いと思ったらあったのね。でも、これ拡張ライブラリのダイナミックローディングが出来ないそうだ。それもなんかなぁと思いRubyのCVS版を見ると、configure.inにatheosという文字があったので1.8.0-preview2を試したら、ソース無修整でコンパイル/実行できた。ダイナミックローディングもバッチリでした。
ただ、config.guessとconfig.subが古すぎてatheosを認識してくれないので、これを新しいものに入れ替えるのと、あと現在のatheosはtruncateが未実装で常に失敗するので、インストール時にはinstrubyを編集してインストールした。
どうせなのでバイナリを置いておこう。ruby-1.8.0-preview2.bin.1.tar.bz2
λ. 007 - Die Another Day
家族で見てきた。それなりに楽しめたけど、ストーリィはいまいち。
λ. winBe - The BeOS API on Win32
とよしまさんのWinBeとは別物。ちょっと紛らわしい。
λ. Ruby-GNOME2 Document sites
くぅるだ。さすがむとうさん。(Rubyにまつわるえとせとら日記(2003-03-17)より)
ψ むとぽん [ガラは用意しました。中身の方はお願いします(^^;)。]
2003-03-17 [長年日記]
λ. 寝坊。
λ. AtheOS用のjp106のkeymap
ところで、誰かjp106キーボード用のkeymap持ってませんか?
λ. File.cleanname
手元に環境が無いのできちんと確認してないけど、Plan 9 のcleanname(2)相当のつもり。
後で、akrさんのPathnameに既にsimplifyメソッドがあるのに気が付いて、少し悔しい。
λ. 名探偵コナン
つーか、もし崖の上から下を覗き込まれたら、それだけでバレちゃったのでは?
2003-03-21 [長年日記]
λ. イラク攻撃
やっぱフランスとロシアの利権をある程度保証してでも国連決議を通したほうが良かったんでないですかね? それから、日本の米国支持の行動は、本当に日本の国益にかなうのか私にはよくわからんので何とも言えないのですが、「対イラク・米大統領最後通告 ブッシュ大統領の演説」みたいな演説を見ると、やっぱムッとしてしまう。
λ. 携帯電話
「sakai-mobile@tom.(以下略)」で私の携帯に転送されるのでよろしく。> 某方面
λ. algebraic datatype を宣言するキーワード
「type」よりは「data」か「datatype」の方がいいな……と思うのは私がHaskellユーザだから?
λ. 週末
明日と明後日は IP unreachable な予定。探さないで下さい(笑)。
2003-03-22 [長年日記]
λ. 家族で箱根に遊びにいく。寒いと思ったら、箱根は雪が降ってましたよ。
λ. ジャッカル
λ. 『16歳のセアラが挑んだ世界最強の暗号』
眠れなかったので読んでいたら読み終わってしまう。情報通信セキュリティ論を履修する前にこの本を読んでいたらなぁと思うと少し残念。
http://www.cayley-purser.ieはnot foundのようなので、CPアルゴリズムの詳細はhttp://cryptome.org/flannery-cp.htmあたりを見ると良いかも。
ところで、この本のp.239で『数学をつくった人びと(Men of Mathematics)』の一節として引用されている、「才能はあるが自信がなく、つねにあともう少し知識を蓄えてから、あともう少し学んでからと、自力で事に当たることを先先延ばしする若者」へのヤコービの態度には励まされた。池上さんにも「先行研究をあまり気にするな」と言われたばかりだし、もっと頑張らなくては……
ヤコービはみずからの最新の発見を講義し、新しいテーマが立ち現れるさまを目の当たりにさせることで研究科の学生を訓練する、大学における最初の常勤講師だったと思われる。彼は、若者を凍てつく水にほおり込み、自分自身の力で泳ぎを身につけるなり溺れ死ぬなりさせるべきだ、という信念の持ち主だった。学生の多くは自分のテーマに関する他人の業績をすべてマスターするまで、独力でなにごとかに乗り出すことを先延しにしている。その結果、いまや自立的な仕事のコツを習得する者はほとんどいないというていたらくだ。ヤコービはそうしたぐずぐずした学問の仕方を敵視した。才能はあるが自信がなく、つねにあともう少し知識を蓄えてから、あともう少し学んでからと、自力で事に当たることを先先延ばしする若者を鼓舞するために、つぎのようなたとえ話をして聞かせた。「きみの父上が世界中の女性を知ってからでないと結婚しないという考え方に凝り固まっていたら、父上は絶対にひとりの女性と結婚することはなかっただろうし、きみがいまここにいることもなかっただろう」
2003-03-23 [長年日記]
λ. 頭が冴えて眠れなくて、結局徹夜してしまった。朝食をとってからもう一回温泉に入って、それから旅館を後に。
λ. Re: functor category とデータ型
眠れなかったので、つまらないことでも考えてみた。
「data GRose f a = GBranch a (f (GRose f a))」というデータ型に対して「∀f g a b. (∀x. f x -> g x) -> (a -> b) -> (GRose f a -> GRose g b」という型のmap関数を定義するには、
type Hom{[ * ]} a b = a -> b type Hom{[ k->l ]} f g = ∀x. Hom{[l]} (f x) (g x) map{| k->l |} t :: ∀a b. (Hom{[k]} a b) -> (Hom{[l]} (t a) (t b))
という型を考えれば良いと思ったのだけど、これだと「map{| (*->*)->*->* |} GRose :: ∀f g. (∀x. f x -> g x) -> (∀x. GRose f x -> GRose g x)」となってしまう。型構築子がカリー化されていることの当然の帰結でこれはこれで正しいのだけど、こんな型の関数があってもあまり役にはたちそうにない。最初の関数の型を得るには、
type Hom{[ * ]} a b = a -> b type Hom{[ k->l ]} f g = ∀x. Map{[l]} (f x) (g x) type Map{[ * ]} a b = Hom{[*]} a b type Map{[ k->l ]} f g = ∀a b. (Hom{[k]} a b) -> (Map{[l]} (f a) (g b)) map{| k->l |} t :: Map{[k->l]} t t
とすれば良さそうな気がするけど、なんつーか、びみょー。
λ. 十国峠
「十国峠大声大会 - 富士山に吠えろ」というバカっぽい催しをやってて面白かった。ちなみに今年は第二回で、前回の優勝者は115ホンだったとか……
λ. ゼロ金利
今日の毎日新聞朝刊の、玉置和宏氏の「酸いも辛いも - 「最後の貸手」の麻薬」という論説によると、日銀のゼロ金利政策は「国債金利が急上昇したため政府の圧力で一時的に金利をゼロにした」ものだそうですよ(笑)
λ. 借りた本
- 『イリヤの空、UFOの夏 その1』
- 秋山 瑞人 [著] 駒都 えーじ[イラスト]
- 『虹の解体—いかにして科学は驚異への扉を開いたか』(UNWEAVING THE RAINBOW - Science, Delusion and the Appetite for Wonder)
- リチャード・ドーキンス(Richard Dawkins) [著], 福岡 伸一 [訳]
- 『奇跡を信じて』
- ニコラス・スパークス(Nicholas Sparks) [著], 天馬 龍行 [訳]
- 『文学部唯野教授』
- 筒井 康隆 [著]
- 『D - 双影の騎士 2』
- 菊地 秀行 [著]
λ. ハンニバル
論議をよんだあのシーンを楽しみにしてたのだけど、やっぱカットされちゃったのね。きたさんによると昨日の編集は最悪編集らしいし、やっぱ原作を読もうかあなぁ。
2003-03-29 [長年日記]
λ. クレヨンしんちゃん 嵐を呼ぶ アッパレ!戦国大合戦
.
λ. 良いプログラマは数学を学ぶ、方が良いと思う
尊敬しているプログラマを思い浮かべてみると数学に造詣の深い人が多いし、非常に共感できる。