Entries from 2009-08-01 to 1 month

Erlang の crypto:start が失敗するときは

{undef,[{crypto,start,[]}のように crypto:start が失敗するときは % sudo apt-get install openssl libssl-dev してから、Erlang を ./configure からやり直すと良い。

uIP って

httpd と webclient 共存できるのだっけか。 できるならデモを1つくらい作るかな。

0.2.0 を色々修正 その2

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割

0.2.0 を色々修正

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 の -net user でも動いた

QEMU に DHCP リクエストを投げてアドレスをもらえた。すんなりと uIP が動く。 net user オプションの場合 Mona QEMU の間のパケットのやりとりを Wireshark で見ることはできないので苦労した。 gdb で QEMU の bootp.c を動かせばよいことに気づいたらあ…

Mosh 0.2.0 をリリースしました

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

Erlang でありがちなミスをしてしまった

self() は spawn の外でやらないとね。 spawn(fun() -> hoge(self()) end)), receive {ok, Result} -> Result end.

V8

V8 の svn trunk をビルドした。 fib(39) において Mosh との比較をしたかったのだ。 Mosh V8 Perl(参考) 19.2sec 3.1sec 145sec V8 は Mosh より 6.2 倍速い。V8 は JIT があるので速いのは当然として、問題は Mosh が JIT を搭載した時に勝算があるか?だ…

Windows でリンクエラー

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割

QEMU -net user 続き

udp は chksum = 0 だと none 扱いなのか。これは楽だ。 DHCP DISCOVER 送信 DHCP OFFER 受信 address 取り出し DHCP REQUEST 送信 までできた。PACK/PNAK は無視しても良さそう(QEMU的な意味で)

今日の復習

OOSC モジュール性 8割

ベビーカー購入 - コンビ メチャカルファースト EY-360

色々下調べし店頭でも確認後、最安を楽天でコンビ メチャカルファースト EY-360を購入。 良い点は とにかく軽い 口コミ評判が大変良い 色展開が良い たたんだときに自立する(マクラーレンは自立しない) 知っておくべき悪い点は 外国製のタイヤの大きなベビ…

Erlang Common Test の Code Coverage Analysis 便利!

使い方は簡単。coverspec ファイルを書く。(マニュアル→Code Coverage Analysis)。 {level, details}. {incl_mods, [mio_node, mio_app, mio_sup, mio_memcached]}. テスト実行時の run_test に -cover coverspec ファイル名を渡すだけ。 出力 timeout の…

gauche.test で出力を抑制する

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 とした場合の hostname

erl -sname hoge とした場合、ホスト名を合わせて hoge@localhost で rpc:call のキーとなる。 @ 以下は hostname なのだが必ずしも localhost にはならないようだ。OS や設定によるらしい。 hostname を強制したい場合は -sname hoge@localhost と起動時に…

Erlang OTP でアプリケーションの start/stop をどうするか?

Erlang OTP アプリケーションをターミナルで起動する。それをどうやって停止するか。 起動自体は erl -noshell -noinput -pa ebin mio -s mio_app start & のように mio_app:start => application:start(mio) という流れ。 rpc:call で application:stop を…

今日の Mona

DHCP discovery を投げても反応がない。QEMU を gdb でおっかけたところ UDP check sum がおかしい。 あと Ether Frame を大きくしよう。

今日の復習

OOSC モジュール性 2割 Value object 10割 Layered Architecture 10割

2章「ああ(そうか)!」アルゴリズム - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの2章。 2.6.1 順列を列挙して、辞書をリニアサーチ。 時間とメモリがあるなら辞書をあらかじめソートしておく。 2.6.2 ファイルをソートしてそのあと走査。 2.6.3 コード参照。 2.6.4 略。 2.6.5 abc -> bac ->bca -> cba かな? 2.6.6…

Erlang OTP : application と supervisor behaviour 組み合わせにおける起動と停止

application behaviour と supervisor behaviour を組み合わせてアプリケーションを起動停止する方法を調べたのでメモ。 マニュアルは以下。 supervisor application 誰が何をして、どの型(callbacks)を実装しているべきなのかが把握しづらかったので mio …

QEMU の -net user

QEMU の -net user はとても便利なのだがゲスト OS に DHCP クライアントを備えていることを要求する。 NIC ドライバやプロトコルスタックを少しずつ積み上げて開発することに QEMU を使用している自作 OS にはやさしくない。 QEMU は MAC アドレスを知って…