2003-08-01 [長年日記]
λ. Topology via Logic 進捗
Chapter 3 の途中まで読んだ。
本題には関係ないのだけど、preorderを同値関係「a≦b∧b≦a」で割ってposetを作るのが、forgetful functor Posets→Preorders の left adjoint になってるってのはちょっと新鮮だった。
λ. バイト
ちょっと凹む。打たれ弱いなぁ、俺。
λ. ルパン三世 お宝返却大作戦
ルパンはいいね。
2003-08-02 [長年日記]
λ. 某所で夏祭り
落ち込んでたけど、自分が今悩んでることが、どうでもよい小事に思えてきた。もうやりたいようにやろう。立ちふさがるものは全部なぎ倒して踏み潰せばいいし。
2003-08-03 [長年日記]
λ. 筑波山
家族で筑波山の方へ遊びに行ってきた。なんか妙に人がたくさんいると思ったら、ガマ祭りというお祭りをやっていた。ガマの油売り口上とか、ガマール銀行とか、ガマ神輿(?)とか、変わったものが沢山あって楽しかった。で、筑波山に登る予定だったのだけど、むちゃくちゃ暑かったので、ケーブルカーで頂上(?)まで登って、そこから男体山にだけ登った(ちなみに女体山とゆーのもあるのです)。頂上で昼食をとって、それから適当に時間をつぶして降りてくる。汗をかきまくったので、青木屋という所で温泉に入った。眺めがむちゃくちゃ良かった。
そーいえば、takotセソセイに筑波のことをいろいろ聞いておけばよかったなぁ。
2003-08-04 [長年日記]
λ. ITスキル標準人材育成研修
というのがあって丸の内で日立の人と一緒に研修などするわけですが、今日がその一日目。僕がとっているのはデータベースコースというやつで、今日はSQLや正規化とかについて簡単な復習。
昼食を講師の吉田先生におごってもらった。感謝。
17時で終了。その後、豊田さんと横浜の紅雲餃子房でご飯を食べて、本屋とゲーセンで時間をつぶす。やっぱジョイスティックは難しい。パッドならあんな負け方は絶対に……
λ. Ruby 1.8.0 リリース!
リリースおめでとうございます。いやー、めでたい。
λ. 研究会
清木研にはかわいい娘が多いと吉本さんに聞いて、来期は清木研に行こうかと心が揺れております。
2003-08-05 [長年日記]
λ. ITスキル標準人材育成研修
今日は全文検索, TF*IDF, SuffixArrayなどについて。LSI(Latent Semantic Indexing)がいまいちよくわからなかった。ApacheとPostgreSQLの設定で周りの人たちがほとんど総崩れだったのだけど、こんなんで大丈夫なのかなぁ……
2003-08-06 [長年日記]
λ. ITスキル標準人材育成研修
マルチメディアデータベースとかメタデータの話。実習では、とりあえず画像のHSV(HLSの方が良かったかも?)の各成分について平均と分散を計算してみる。SとVは確かに画像の明るさや鮮やかさやコントラストを反映した結果が出てきたけど、Hは……って、考えてみたらHの平均や分散って何やねん! 単純に計算したら意味ないよねー。というわけで、Hは無視してSとVに関するデータを使って類似度を計量しようとするわけだけど、どうしたものかちょっと悩ましい。結局、考えるのが面倒くさくなってしまって、適当な係数で調整した後、ベクトルとして内積をとってみる。あー、なんて安直な。
終わってから気がついたのだが、最初にデータを平均や分散にしてしまったのがダメで、ヒストグラムをとって、ヒストグラムの差の積分(?)で距離を定義したりすると、もうちょっと良かったんじゃないかと。あー、でもヒストグラムが櫛になってる可能性を考えると、単純にこれではあまり嬉しくないかも。むー
2003-08-07 [長年日記]
λ. ITスキル標準人材育成研修
データマイニング。アプリオリアルゴリズムとかはこれまで名前だけしか知らなかったので、結構興味深かった。実習は、特に興味のある対象がなかったので、日銀からテキトーに企業物価指数のデータを落としてきて、各分類の間で指数の変化を比較して、相関を調べてみる。かなりいい加減だけど、それっぽい結果が出てきて、わりと嬉しい。それから、中村さんに KDnuggets というのを教えてもらう。
2003-08-08 [長年日記]
λ. ITスキル標準人材育成研修
ORDBとUDFの話。実習はUDFを使った高度な検索ということだったので、SQLのLIKEって使いにくいなぁとも思っていたし、鬼車を使って正規表現によるマッチングなどやってみる。しかし、text構造体のvl_lenを、構造体のサイズではなく、vl_datの要素数と勘違いして、時間を結構無駄にしてしまい、あんまりたいしたことはやれなかった。くそぅ。
なんにしても、データベースコースは今日でお終い。それほど新しい知識を得たわけではないけれど、これまであまり縁の無かったデータベースを、ずいぶん身近に感じられるようになりました。吉田さんありがとう。
λ. MCC
案内用の画面って、あれはWindowsだったのか。「更新の通知」がポップアップしていて気がついた。しかもPowerPointかよ……
λ. 夕食
せっかく東京に出てきていたので、この機会にむとうさんと夕食。場所は壁の穴で、むとうさんに奢ってもらってしまった。感謝。おいしかったです。むとうさんに会ったのは初めてなのですが、想像していた以上にナイスガイでした。2人とも「まつもとゆきひろさんを囲む会」には申し込んでいなかったのはちょっぴり残念でしたが、とても楽しかったです。しかも、むとうさんに自宅まで送ってもらってしまいました。これまた感謝。ちなみに、むとうさんの車カッコよかったっす。
2003-08-09 [長年日記]
λ. 昼過ぎに起きる。よく寝たなぁ。今頃 LL Saturday やってるかな。
λ. 弟が帰省。弟が持って帰ってきた漫画を読む。
λ. Re: 同一でないにもかかわらずそれが判定できないってどういう状況?
ちょっと曖昧な表現ですが、2つのオブジェクトが、あらゆるオペレーションに対して同じ結果をもたらすならば、その2つのオブジェクトが同一であるかを判定する事はできないです。例えば、仮にRubyにObject#__id__やObject#equal?がなかったとしたら、2つの同値なBignumが同一であるかどうかすら判定することは出来ないはずです。(追記: Rubyだとこの場合でも singleton method やインスタンス変数を追加したりすることで判定できてしまいますね。すっかり見落としてました。まぁ、むりやり捻り出した例なので、あまり細かいことは気にしないで下さいな)
こういうのを Behavioral Equivalence っていうんだっけかな。実はよく知らないんだけど。
λ. 北朝鮮に関する報道の歴史
メモ。不定期日誌(2003-08-08) より。
λ. Re: アイデンティティ
しかし、副作用の全くないオブジェクト指向プログラミングというのは、なかなか考えにくい。はたして実用的に可能なのだろうか。もし可能なら関数型言語に完全に整合したオブジェクト指向機能が実現できそうだが。 O'Camlには副作用があるしなあ。
副作用の無いオブジェクト指向プログラミング言語といえば、一応 O'Haskell なんかがそうでしょうか。とはいっても、Monadを使って状態を表現しているわけで、まつもとさんの期待しているものとはきっと違うだろうけど。
λ. Topology via Logic 進捗
この一週間あんまし進んでない。Complete Lattice, cHa, Frame の関係でちょっとだけ混乱中。
λ. Re: お前ら sprintf() を使え
$hoge = "XXX" . substr("000$year",-4) . substr("0$month",-2)
sprintf()使えってのはもっともだけど、このトリッキーさにちょっと感動。
ψ 通りすがり [昔、8bitマイコンのBASICでは整数→16進文字列変換を print right$("000" + hex$(x..]
ψ さかい [なるほど。勉強になります。 P.S. 関係ないですけど、そういえばJavaにはprintf()系の機能はないんです..]
ψ あるふぁ [J2SE1.5 では printf() が提供されるはずです。]
ψ さかい [おぉ、そうなのですか。それは知りませんでした。 J2SE 1.5 といえばGenericsはよく耳にしますが、他にも..]
ψ wisteria [printfが提供されるってことは、数値をunsignedで出力するとかサポートされるのかしら。 いや、調べればいい..]
ψ さかい [数値をunsignedで出力するってこういう事? out.printf("%ud\n", -1); => 42949..]
2003-08-11 [長年日記]
λ. nonzero?
もし nil.nonzero? を定義するとしたら、やっぱりnilを返すのだろうか。と、ふと思った。
λ. LL Saturday
Language Update と パネルディスカッション「LLとオブジェクト指向について」 の発表資料が公開されていたので見てみる。それから、たださんの発表資料も公開されていたので見た。
λ. 買った本
- 『殺竜事件 — a case of dragonslayer』
- 上遠野 浩平 [著] 金子 一馬 [イラスト]
- コミックマーケット64 カタログ
- -
- ダ・ヴィンチ 9月号
- -
2003-08-14 [長年日記]
λ. 「残酷な神が支配する」って完結してたのか。知らなかった……
λ. LDAP on Debian
これは, Debian testing/unstableにおけるLDAPの設定の説明です。LDAPの基礎知識はあるものとします。いずれ基礎知識の文章もかくかも。
メモ。へたれ人生(2003-08-14)より。
λ. Topology via Logic の Chapter 5 を読了
Chapter 5 読了。この章では、Topological System, Topological Space, Locale とその間の関係を扱っている。ここまで読んできて、向井先生が「言語の意味論」で強調していた Channel theory や Chu space と Locale や Topology との繋がりがようやく見えてきた感じがする。Topological Space と Locale の一般化である Topological System は、タイプ集合がフレームになってるClassificationと考えられる。
あと、「A proof of spatiality of a locale shows completeness of a logical system」に、ちょっと驚く。
2003-08-17 [長年日記]
λ. コミケ
行ってきた。今回は一人だし、気合も全然入っていないので、家を出たのも8時過ぎ。着いたのが、10時ちょっと前くらい。おー、並んどる、並んどる。40分くらい並んでようやく入れた。中はやっぱり暑い。体調が悪かったので少し厚着してたのだけど、やっぱし要らなかったな。
λ. 戦利品等
- 『東方妖々夢』 / 上海アリス幻樂団
- 『LINES』/ Yu Kamone @ possiblyrain
- 『しまほっけ から〜ず』/ 黒田和也 @ しまほっけ
- 『NECROMANCY』 / チンギス半蔵, くにじ, 長谷川みさきち, 木曾哲, ことっち, (ゲスト 如月三郎太) @ なまにえニンジン
- 『EmptyBom』 / 蒔王戎市 @ PumpkinPie
- 『ダメ人間白書 2003年度版』 / ダメ人間生活協同組合もうだめぽ
- 『Cthulhu typing』 / Masakazu Yanai @ Cronus Crown
- 『こぴぼん』 / Flat Breast
- 『夏じゃ!!』/ 夢々停
- おにぃちゃんへのお土産
- 『メイドさん祭り?』 / 夢職人 @ 夢幻工房
- ...
東方妖々夢を買うのに30分近く並んでしまった。ここまで人気があったとは知らなかった。あと、『MALIGNANT VARIATION DVD EDITION』は並んでいる途中で完売になってしまい入手出来なかった。残念。
λ. 残念ながら rubyちゃんのコスプレは見当たりませんですた。
λ. あと、随分前に「『週間おにぃちゃんマガジン - 特集: 2003年夏 流行のおにぃちゃんはこれだ!!』というタイトルで何か作って委託するかも」とかどっかに書いた記憶があるけど、結局実現しませんでした。
λ. 東方妖々夢
さっそくノーマルでプレイ。5面のボスで一気にすべてのコンテニューを使い尽くしてしまい撃沈。思ったより手強い。もう一回プレイしたら今度は6面ボス(ラスボス?)で死亡。時間がないので、この辺りにしておく。
某氏はノーマルは一発でクリアらしい。くそぅ、やるなぁ。
λ. comonads
monadがこれだけ広く使われているのだから、その双対のcomonadにも何かに使えないかなぁ……と思っていたら、やっぱりあるのね。Codata and Comonads in Haskell (LtUより)
【2006-05-12追記】他にも色々とある。
2003-08-21 [長年日記]
λ. Re: 頭の体操。
(子)リストのリストがあって、子リストにはシンボルが2個以上入ってたとする。たとえば、((A B) (C D) (E F) (A G) (H F I)) のような感じ。
これを、同じシンボルを含む子リストはまとめたいとする。たとえば、例で言えば ((A B G) (C D) (E F H I)) のようなリストを返す。
最初に思いついたコードはこんなの。かっこ悪いな。しかも破壊的な関数使ってしまったし。
(use srfi-1) (define (solve data) (define cells (map (lambda (x) (cons #t x)) data)) (define (last-cell cell) (if (car cell) cell (last-cell (cdr cell)))) (define (for-each-unordered-pair f l) (if (not (null? l)) (let ((x (car l)) (xs (cdr l))) (for-each (lambda (y) (f x y)) xs) (for-each-unordered-pair f xs)))) (for-each-unordered-pair (lambda (a b) (let ((a2 (last-cell a)) (b2 (last-cell b))) (if (and (not (eq? a2 b2)) (not (null? (lset-intersection eq? (cdr a2) (cdr b2))))) (begin (set-cdr! a2 (lset-union eq? (cdr a2) (cdr b2))) (set-car! b2 #f) (set-cdr! b2 a2) )))) cells) (delete-duplicates (map (lambda (cell) (cdr (last-cell cell))) cells) eq?)) (display (solve '((A B) (C D) (E F) (A G) (H F I)))) ;=> ((G A B) (C D) (I H E F))
ψ nobsun [module Main where import List solve :: Eq a => [[a]] -> [[..]
ψ nobsun [Maybe なんか使う必要なかった。:(]
ψ さかい [おー、なるほど。 これもfoldrでいきますか。 Haskellらしいですね。 P.S. そういえば、Haskel..]
ψ nobsun [Shiro さんとこの wiliki の Y.Hana さんのアイデアを Haskell での実装 solve' ..]
ψ nobsun [Haskell での Union-Find の例 http://www.cs.bris.ac.uk/Teaching..]
ψ さかい [そのY.Hanaさんのコードは、もともとHaskellで書いたのをSchemeで書き直したもののようですよ。 ht..]
ψ nobsun [なんと ^^;]
ψ さかい [> Haskell での Union-Find の例 > http://www.cs.bris.ac.uk/Teac..]
2003-08-22 [長年日記]
λ. 最近行ってみようかなぁとか思ってるもの
- 第一回プログラミングおよびプログラミング言語サマースクール (PPL Summer School 2003)
- 第20回 「記号論理学と情報科学」(SLACS 2003)
- 数学基礎論 Summer School 2003
- 第十四回 ALGI (代数,論理,幾何と情報科学研究集会)
最後の2つはITSSと重なってしまっている。
ψ ささだ [いいなぁ愛知。]
2003-08-26 [長年日記]
λ. 東方妖々夢
霊夢と咲夜はなんとかクリア出来たんだが、魔理沙がなかなかクリア出来ない。あ、ノーマルの話ね。Extraとか???とかの話じゃないよ。
λ. enum/flags class for Ruby-GNOME2
Ruby-GNOME2の列挙型とフラグ型の扱いを変更して、整数ではなく、固有のクラスのインスタンスとして扱うことにした(変更作業はまだ全部は終わってないけど)。利点は
- 分かりやすさ。例えば Gtk::Label#justify が整数の0を返しても意味は分かりにくいけど、返ってくるのが固有のクラスのインスタンスならば、inspectすれば誰にでも意味が分かる。(今はinspectのフォーマットは「#<Gtk::Justification left>」みたいな感じ。フォーマットは変更するかも)
- 型安全。「Gtk::Label.new.justify = Gtk::Window::TOPLEVEL」とかはTypeErrorになる。
といったところ。
ただ、flagsのクラスのAPIでいくつか悩んでいる。 悩みの1つはフラグをテストするAPIで、 以下の3つを実験的にすべて実装してあるのだけど、 どれを推奨するのが良いかなぁ。
- 「flags & Gtk::Dialog::MODAL != 0」 (これまで通り。でも「!= 0」というのはやはり野暮ったいなぁ)
- 「flags >= Gtk::Dialog::MODAL」 (ビットの集合として考えた時の包含関係で比較演算子を定義してあるので、 最初のコードとは若干意味が異なるけど、これでもテスト出来る)
- 「flags.modal?」(これが一番Rubyっぽい?)
λ. 最近読んだ漫画
λ. Topology Via Logic 進捗
滞ってる。ようやくScott位相がでてくるあたりまでは進んだ。
2003-08-27 [長年日記]
λ. 明日から北海道に行ってきます。
λ. 東方妖々夢
魔理沙(魔符)で、反魂蝶までたどりついたのだけど、あと10秒くらいのところで、アイテムにつられてレーザーのタイミングを見誤って、やられてしまう。くやしい。
2003-08-30 [長年日記]
λ. 帰ってきました。あー、疲れた。
λ. libglade and custom widget creation function
libgladeのこの話。C言語の方法はC言語にとってとても自然な方法なのだが、Pythonの方法はビミョーな気がする。この方法ではカスタムウィジェットを使ったファイルを読み込む際に必ず、set_custom_widget_handler を呼ばなくちゃいけなくて、同時に設定できるハンドラはひとつしか無いため、複数のコンポーネントが同時にlibgladeを使おうとしたときに、嬉しくない事になるんじゃなかろうかと想像……。
(そもそもこのカスタムウィジェットのユーザー用の引数が整数が2つと文字列が2つというのも全然必然性が無いし……というのも結構思うのだが、考えないことにしよっと)
λ. それから、むとうさん指摘の表示されない問題。本来はgtk_widget_show()をハードコードするのではなく、CommonタブのVisibleプロパティを反映すべきだと思うのだが、なんでそうなってないのだろう。まぁ、なっていないものは仕方がないと思い、GladeXMLCustomWidgetHandlerからプロパティの情報にアクセスする方法はないものかと旅行中に調べたのだが、これは無理そう。GladeWidgetInfoは渡されないし、GladeXMLからGladeInterfaceを得るには非公開の構造体にアクセスする必要がある。
λ. とゆーか、GtkHtmlViewを使いたいだけなら、クラス名を指定する方法の方が良いような気もするが。
2003-08-31 [長年日記]
λ. お昼
ゲンキョウワンというタイ料理屋さん。
λ. PPL Summer School 2003
なんか愛知まで行くのが面倒になって、結局申し込まなかった。パラメトリシティ原理の話とか結構聴いてみたかったんですけどね。
ψ ささだ [a[] とか a[1,2,3] とかインデックス系には使えませんもんね。これからルパンを見ます。]
ψ さかい [そうですね。arityは常に1で固定ですね。 P.S. Proc/MethodとArray/Hashを混用している..]
ψ ささだ [私もそう思ったんですが、Array は 2個も取るようで(コマカイ)。Method に変換しても、嬉しいのかな? ..]
ψ さかい [おっと、そうでした。 lambda{|x,| a[x] } の方が intension revealing という点..]