2008-03-09

List Comprehension and Mnesia

プログラミング Erlang に出てくる Database Mnesia. query を list comprehension で書く. quote みたいのはないのに, どうやって list comprehension を query に map するのかと思ったら, list comprehension からは query handle というのが 返されるらしい. C++ の expression template に似ている気もする. すげーな Mnesia. collective intelligence も list comprehension の 威力を伝えていたし. だいぶ印象がかわった.

How Rackspace Now Uses MapReduce and Hadoop to Query Terabytes of Data

Hadoop. 実用してるとこ結構あるんだな. Yahoo もようやく使ってるというニュースがあったし. あとは last.fm も使ってるんだっけ? http://wiki.apache.org/hadoop/PoweredBy に色々書いてるか.

処理するデータやアプリがあるってのは大前提だよな. このごろはほんとにアプリが羨しい. この話はすげー面白い. プレインテキストから素の MySQL, 変な構成 (merge table とか), でようやく v3.0 で Hadoop に到達. こうやって順にステップアップしてかんと 分散システムってでいきないよなと思う.

Open Issue in Recommender Systems

Idea

引用 attack

privacy

RRTR

subdivision surface. すげー懐しい. 学生の頃はけっこう熱心に勉強した. あのころから流行り物に弱かったんだな.

Squirrel

マニュアルすって読んでる. 言語は普通だ. 普通なのは良いことだ. class がちゃんと first class ぽいのは面白いが, table との一貫性は もうちっとがんばっても良かったんじゃないか. と, 思っている様子がマニュアルから伺えた.

頭いたい. ぼーっとする

花粉のせいと鬱のせいと半分くらいかな. RRTR 言って a 氏と話しているうちに 気分は若干改善.

Squirrel

マニュアル読んだ. thread, weakref よく考えられてる. thread は別 VM になって, かつ root table が share されるのね. ここが一番心配だったけど, さすがによく考えられてる. root table を share しなければ concurrent に 動かせる. すげー good. たぶん class も書き換えなければ share しても平気そうだし. でも refcount のガードが心配か...

コード読む甲斐がありそうだな, これは.

Weakref in Squirrel

よくできてんな.

このくらいでいいかもなー. linked_ptr の方が良いところもある(no dynamic-allocation)けど, こっちの方がシンプルだ.

refconted-object の mixin or subclass で weak-referable ってのをつくる? でも weakref できるかどうかを使われる側が決めるのは厳しいか. まーオブジェクトはちょっとデブになれってことかもね. 巡回参照避けるにはやむなし.

Revokable とは何がちがうのか?-> ちゃんと開放されて参照がなくなる.

boost は? refcount のオブジェクトに use_count と weak_count がある. 巡回参照はおきないのか?-> おきない. 結局 boost も否応なしに weak 分の overhead はある. weak は業界標準認定で OK ぽい.

弱参照実装の候補:

trade-offs

Idea:

OSS Recommenders

なんか Java のしか見当らないんだけど, 速いやつはないのかな.

速いやつを書きたいなー. とりあえず taste くらいの機能を揃えれば 使ってもらえるんだろうか.

taste の文書を読んで機能と設計を学ぼう. クラスタリング + item-item くらいでだいたい OK だと思うんだけど, どうなんだろね.

links:

Taste

居ても立ってもおられず.

interfaces:

んー. 恐しいほど patan と似てるなー... 設計の趣味は理解できるというか, 近い. ちゃんと java っぽい作りになってるし.

なんか地味に書けば勝てそうだなあ. アーキテクチャは似たようなかんじにして, アルゴリズムの種類を増やしていけばいいのかな. 問題は taste がどれだけ現実に実用的なレベルなのかっつうことか. ちょっと探した感じだと採用事例ないなあ. でも開発自体は active なんだよね. cofe とか cofi はとまってる.

いちおう敬意を表して taste っぽい名前をつけるのがいいかもね.

標準でローカルで動く速いデータソースを用意してやるのがよさそうね.

TODO:

ねよう...