火曜日, 12月 12, 2006

実装と理論

実装は何となく出来てきた.
後はコレに,「理論,数式,理論評価,実験評価」が加わると,誰も手出しが出来なくなって,勝ちだゼ!

月曜日, 12月 11, 2006

JavaScriptで高階関数

例:
function higher_order() {
var add = function (x, y) {
return x + y;
}

var sub = function (x, y) {
return x - y;
}

calc(1, 5, add);
calc(7, 6, sub);
}

function calc(x, y, f) {
return f(x, y);
}


これを,XMLHttpRequestで利用。

function getJson(uri, func) {
var req = new XMLHttpRequest();

req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var linksJson = req.responseText;
var data;

eval("data = " + linksJson);

func(data);
}
}

req.open("GET", uri, true);
req.send(null);
}

function process1() {
var func = function (data) {
// process
}

getJson("hoge.json", func);
}

水曜日, 12月 06, 2006

perl

なんで,perlってやつは,演算子にeqとか 使ってんだよ!
お前はアレか?それで,イクォール(equal)とかでも言いたいのか!?
それに,@_とかキモイ予約語つくんじゃねーよ!
awkを見習え!Pythonを見習え!Rubyを見習いやがれェェェェェ~!!!!

日曜日, 12月 03, 2006

Ajaxで遊ぶ

Ajaxで作った面白サイトを集めてみる
そんで,極めつけはこのスクリプト(元ネタ
javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i < DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);
  1. ブラウザで,画像のたくさんあるページを開く(例:google image
  2. ブラウザのURLの欄に,上のjavascriptをコピペ
  3. おもむろにリターン!
いや,こりゃすごいですね.

javascriptのデバッガとしては,FireBugがとても優秀なようです.
Firefoxのプラグインとして動くそうですが,ステップ実行や,breakpointの設定,変数のウォッチができる模様.

土曜日, 12月 02, 2006

利用する言語

利用する言語は

Core 部分 : C++
UIへのインターフェース: C++
WEB UI: JavaScript
CLI: Python
データフォーマット: JSON

にしよう.

Javaで無い理由:
Javaは公称値よりも体感が大分遅い
Javaは使うときに不愉快
「Write Once, Run Anyware」とはとても思えない
straceとかで追えない
JVMがおかしいと手出しができない

XMLで無い理由:
Parseがやたら面倒
見難い
JSONに比べて重い
特に優れているとは思えない

Ruby, Perlじゃない理由:
Rubyは遅い
バイトコンパイルして欲しい
RubyもPerlも$を使っているのが嫌
個人的にPythonはCライクでとても見やすい

cvsにtagつけた

tag: p2pati-0-4-rc1

Linuxだとコンパイルが通ってなんとなく動くバージョン.

- MacOS XとNetBSDは未検証
- WEB UIは作成中

次は,WEB UIができあがったらRC2にしてタグ付けようっと.

特に問題ない限り,pthreadはちゃんとjoinしたほうがよさげなことがわかった.

通常の3倍速で近付いてきます!

シャアだ…赤い彗星だ…に,逃げろ〜!!

久々に,Pentium M 2GHzをつんだThink Padを使って,NetBSDのコンパイルをしてみるけれど,VMWareや,Pentium III 1GHzを使ったときとは比べ物にならないくらいの速度でコンパイルしてくれる.
はえ〜
しかし,Atokに比べて,Anthyがとてもお馬鹿なので使いづらい…

というわけで,今からユーザーランドをインストールしてみて,おかしくなったら,Debianに移行しようかな.

金曜日, 12月 01, 2006

Bonjour

BonjourはAppleの開発した,zero configurationによる自動的なIPアドレス設定と,マルチキャストDNSを使ってサービス発見を行うソフトウェアです.
もともとApple Talkが実現していたことを,IPを使って実現します.

- AppleのBonjour紹介ページ
- Apple Developer Connectioのページ

このソフトウェアは,OpenSourceソフトウェアとしてソースコードが公開されており,Apache Lisenseで提供されています.

Bonjourは,基本的にローカルリンク上でしか動かないわけですが,MacOS 10.4からDynamic DNSを使って,違うSubnet間でも利用できるようになっています.
しかしながら,これは,せっかく,DNSサーバを利用せずにサービスを発見できるという利点を無くしてしまっています.
これはとても,勿体ない,というわけなんです.

mDNSResponder-107.6
サンプル ResQuerySample

デモンストレーション用のWEB UIを作ったら,DNS機能と,mDNSをいじっていこうと思うわけです