Entries from 2009-08-01 to 1 month
{undef,[{crypto,start,[]}のように crypto:start が失敗するときは % sudo apt-get install openssl libssl-dev してから、Erlang を ./configure からやり直すと良い。
httpd と webclient 共存できるのだっけか。 できるならデモを1つくらい作るかな。
Lisp Scheme Part27 で指摘してもらった点を追加・修正。 shebang に含まれる '-' のせいでエラーが起きる件を修正 test/mysql.ss の修正 Windows では loadpath の区切りを ; にする
Testability 10割 associations 10割
testability 3割 Erlang 基礎 10割 lock management 10割 smart UI anti-pattern 10割 並行プログラムにおけるエラー 10割
Lisp Scheme Part27 で指摘してもらった点を追加・修正。 configure での Gauche チェックをなくした repl で >mosh のあとにスペースを入れる Windows において REPL を ctrl-c で終了できるように。 SetConsoleCtrlHandler で対応 Windows においてバージ…
IOC 10割 Persistent strategy 10割 再利用性へのアプローチ 10割
究極の英単語SVL〈Vol.2〉中級の3000語を購入したが、鞄の中で会社と自宅を往復させるには重すぎる。 ということで分解した。これくらいなら軽くて良い。
ああそうか!アルゴリズム 10割 再利用性へのアプローチ 0割 今日はひげ太をベビーカーに乗せて、遠くのスーパーまで。 ベビーカーに荷物をぶら下げるフックを購入。便利。 一回も泣かなかった。刺激があったようで店の中できょろきょろしたり声を出したりし…
QEMU に DHCP リクエストを投げてアドレスをもらえた。すんなりと uIP が動く。 net user オプションの場合 Mona QEMU の間のパケットのやりとりを Wireshark で見ることはできないので苦労した。 gdb で QEMU の bootp.c を動かせばよいことに気づいたらあ…
Mosh 0.2.0 をリリースしました。 ソースコードダウンロード。 Windows 用インストーラ。 追加・変更点は以下の通りです。 並列ライブラリ (mosh concurrent) を追加 Erlang (もしくは termite)のような Shared nothing/メッセージパッシングベースの並列…
ノルマなし。がんばったなあ。
The Computer Language Benchmarks Gameを教えてもらった。 色々な言語処理系のベンチマークを比較できる。Lisp 系や Small Talk なども含まれているのがポイント高い。 例 Scheme PLT vs Perl Python3 vs Ruby 1.9
self() は spawn の外でやらないとね。 spawn(fun() -> hoge(self()) end)), receive {ok, Result} -> Result end.
V8 の svn trunk をビルドした。 fib(39) において Mosh との比較をしたかったのだ。 Mosh V8 Perl(参考) 19.2sec 3.1sec 145sec V8 は Mosh より 6.2 倍速い。V8 は JIT があるので速いのは当然として、問題は Mosh が JIT を搭載した時に勝算があるか?だ…
mpz_import と mpz_export がリンクエラー。Mosh で使っている GMP ライブラリに含まれていなかったのでリビルド。GNU MP for Windows win/gmp に vcproj がある。 ftp.gnu.org/gnu/gmp から gmp-4.1.tar.gz を持ってくる。少し古いのだが指示されたバージョ…
OOSC モジュール性 10割
問題の正確な定義 10割 モデルと実装を結びつける 9割 モジュール性 10割
udp は chksum = 0 だと none 扱いなのか。これは楽だ。 DHCP DISCOVER 送信 DHCP OFFER 受信 address 取り出し DHCP REQUEST 送信 までできた。PACK/PNAK は無視しても良さそう(QEMU的な意味で)
OOSC モジュール性 8割
色々下調べし店頭でも確認後、最安を楽天でコンビ メチャカルファースト EY-360を購入。 良い点は とにかく軽い 口コミ評判が大変良い 色展開が良い たたんだときに自立する(マクラーレンは自立しない) 知っておくべき悪い点は 外国製のタイヤの大きなベビ…
使い方は簡単。coverspec ファイルを書く。(マニュアル→Code Coverage Analysis)。 {level, details}. {incl_mods, [mio_node, mio_app, mio_sup, mio_memcached]}. テスト実行時の run_test に -cover coverspec ファイル名を渡すだけ。 出力 timeout の…
gauche.test でテストの経過表示を省略したい。with-ports で消してみた。 (use gauche.test) (let ([oport (open-output-string)] [eport (open-output-string)]) (with-ports #f oport eport (lambda () (test* 'plus 2 (+ 1 1)))) (test-end))
erl -sname hoge とした場合、ホスト名を合わせて hoge@localhost で rpc:call のキーとなる。 @ 以下は hostname なのだが必ずしも localhost にはならないようだ。OS や設定によるらしい。 hostname を強制したい場合は -sname hoge@localhost と起動時に…
Erlang OTP アプリケーションをターミナルで起動する。それをどうやって停止するか。 起動自体は erl -noshell -noinput -pa ebin mio -s mio_app start & のように mio_app:start => application:start(mio) という流れ。 rpc:call で application:stop を…
DHCP discovery を投げても反応がない。QEMU を gdb でおっかけたところ UDP check sum がおかしい。 あと Ether Frame を大きくしよう。
OOSC モジュール性 2割 Value object 10割 Layered Architecture 10割
珠玉のプログラミングの2章。 2.6.1 順列を列挙して、辞書をリニアサーチ。 時間とメモリがあるなら辞書をあらかじめソートしておく。 2.6.2 ファイルをソートしてそのあと走査。 2.6.3 コード参照。 2.6.4 略。 2.6.5 abc -> bac ->bca -> cba かな? 2.6.6…
application behaviour と supervisor behaviour を組み合わせてアプリケーションを起動停止する方法を調べたのでメモ。 マニュアルは以下。 supervisor application 誰が何をして、どの型(callbacks)を実装しているべきなのかが把握しづらかったので mio …
QEMU の -net user はとても便利なのだがゲスト OS に DHCP クライアントを備えていることを要求する。 NIC ドライバやプロトコルスタックを少しずつ積み上げて開発することに QEMU を使用している自作 OS にはやさしくない。 QEMU は MAC アドレスを知って…