--- layout: old_post title: 2008年書き初め permalink: /tatsuya/show/410-2008 ---

今年の書き初めはJavaScripでSchemeっぽい物、70行くらいで書き捨て。置く所が無かったのでAppJetに置いた。

http://tk-scheme.appjet.net/

AppJetは第三者の書いたコードを気軽に読み込み&実行できるのが良いな、eval(wget("http://hogehoge"))とか。最悪悪いコードが入って来ても困るのはappjet.netだし;D

"第三者のコードを気軽に実行できる" ってことで何か面白いことができないかな。

例えば、GoogleのMapReduceを独自にオープン/分散/P2Pで実現しようと思うと、まずネックなのが(色々あるけど)実行ロジックをworkerへ送り込む方法だと思う。

GoogleのMapReduceをいまさら妄想した - YappoLogs

実際問題としてオレオレでMapReduce作る時に考える事は、データとコードを各worker serverに送る仕組みを真っ先に考えなければいけない。単純にjobを分散出来た所で、それはMQとかに毛が生えた程度の面白さしかないから

worker群がいて、そこへロジックと処理すべきデータを送り込む。データは良い、でもロジックはセキュリティとパフォーマンスの懸念が常にあって "絶対安全" というのが難しい、と思ってたけど実際こうやってAppJetが動いているのをみると、何とかなるかなと思ってくる。AppJetの場合サーバサイドJavaScriptを多分Rhinoとかで動かしてると思うんだけど、パフォーマンスのチェックとかはどうやってるんだ。

TechCrunch Japanese - AppJet、シンプルなウェブアプリ制作を簡単に

世界中のPCの空きCPUを有効利用するのに、SETI@homeも面白いと思うけどオープンなMapReduceをやると面白いと思うんだけどな。今後放っといても絶対オープンにならない物だけに。

新入社員がグーグルの発想のスケールに慣れるまでに数カ月はかかるという。「ある日、誰かが、数千台のコンピューターを一斉にぶん回すような“ヤバイ”仕事を考えつく。すると“ヤツは分かってきたみたいだな”ということになる」

http://business.nikkeibp.co.jp/article/world/20071221/143754/

こんな面白そうな話、放っとくのは勿体ない。

で、あまり関係ないけどSchemeっぽい物を書き始めたけど、なんか違うな。Scheme on JavaScriptならもっとちゃんとしたのがあるし

BiwaScheme

なんだろ、(map 実行ロジック データリスト) と書いてmapが並列に分散する様な。いっそこんな感じにJavaScriptの配列で良いんじゃないか

[scm.map, function(n){return n*n;}, [10, 20, 30, 40]]

上手くまとまんない、もうちょっと考えてみよう。