Entries from 2009-05-01 to 1 month

今日の復習

External Sorting 10割 Updating distributed data 7割 Distributed Database 3割 Light weight Container and IOC 10割 Radiometry 3割

テストフレームワークの下調べ

test/record.scm の実行時間はデバッグ版の mosh で 700-800 msec 。 そこから (test-eq? ...) などを抜くと 300 msec 前後。 つまりテスト実行時間の半分以上がテストフレームワークコードの実行。 その中には (mosh test) のロード 10msec (test-eq? ...) …

GDB で特定のシグナルを無視したり表示したり

(gdb) help handle # ヘルプ表示 (gdb) handle SIGPWR "nostop" "pass" "noprint" (gdb) handle SIGXCPU "nostop" "pass" "noprint" SIGPWR や SIGXCPU は pthread_cond_wait Boehm GC 関連で本来の用途とは違う用途で使われている。

LED 人感センサーライト購入

夜トイレに行くときに真っ暗なのが気になっていたので「乾電池式 長寿命、高輝度LEDを採用(美しい淡い発光)LEDセンサーライト OSC-11T」購入。 LED なので長寿命 電池式で配線いらず 周囲が暗くなると作動待機状態になる 人が近付くとライトが自動点灯 と…

今日の復習

Extract and override getter 10割 僕のアプリには構造なんてない 10割 Distributed Database 0割 Radiometry 0割 メソッドテストできない 10割

(mosh test) を速くしたい

(mosh test) library は srfi-64 をバックエンドに使っているのだけど、そのせいで実行が遅い気がする。 unit test は素早く実行できることが大事なのに、良くない兆候だ。 テストそのものにかかる時間はしょうがない。でもそれ以外にもテストフレームワーク…

vring の仕組みを理解 - virtio

contrib/Misc (rev 5343) でいくつかの実験を行った。virio の ring の仕組みを理解した。 以下は思いついた実験とその結果のメモ。 実験は全て Ether Frame 受信。(ARP broadcast と static ARP + telnet による IP ) ring->avail->idx = 1 、つまり受信…

スレッド対応は続くよ

Reader をスレッドセーフにしなければならない。yylex や re2c が呼び出す、ファイル読み込み関数はどうがんばってもグローバル。 pthread_getspecific で VM インスタンスを取り出して色々と調停する形に。

プーリング

プロセスが pool される echo server を書いてみた。応答性能が良くなり満足。 ただしコードが複雑になる。 accept するプロセス echo 応答するプロセス群 上記2つを調停するプロセス の3種類のプロセスが必要。 まだまだそこまで複雑ではないが、バグもヘル…

今日の復習

Factories & repository 10割 Erlang プロセス 10割 Erlang 汎用イベント処理 10割 Introduction to Lock management 10割 Distributed Database 0割

echo server マルチプロセス版

Mosh プロセスの実体は shared nothing VM thread。実体はグリーンスレッドとかでも良い気がする。 (import (rnrs) (mosh) (mosh concurrent) (mosh socket)) (let ([server (make-server-socket "4649")]) (display "Echo server: START\n") (let loop ([co…

Multi-VM

SSD大先生に。その方針で良いと思うとお墨付きを頂いた。 追記 その後彼は酔っていることが判明。

メインスレッドがすーっと音もなくいなくなる問題

Mosh で特定のマルチスレッドプログラムにおいて、メインスレッドが音もなくいなくなる問題に遭遇。 SEGV や Signal ではない。 デバッグに苦慮していたのだが、kosaki さんに 普通、痕跡を残さないのはexitかassert経由のabort。そのへんにブレークポイント…

今日の復習

Introduction to Lock management 以下10割 Executer ETS コード変更したいけど リバレッジシンキング

100円ショップの12色カラーペンでマインドマップを描くときの注意点

陽に当てると、あっという間に文字が消えていく。デジタルで保存しておくこと。 自分はデジカメで撮って Picasa Web に上げてる。

QEMU の MAC アドレスをあらかじめ登録しておく

% sudo tunctl -t tap0 % sudo arp -s 192.168.50.3 -i tap0 "52:54:00:12:34:56" こうしておけば、デバッグ時に Mona がわざわざ ARP 応答しなくて済む。

vring

vring の全容が微妙につかめない。

今日の復習

Query Plan と最適化 10割 Projection 10割 DDD Documents 10割 DDD 図 10割 キャッシュの基礎 10割

Erlang インストール

% wget http://erlang.org/download/otp_src_R13B.tar.gz % tar zvxf otp_src_R13B.tar.gz % cd otp_src_R13B/ % ./configure % make % sudo make install % erl Erlang R13B (erts-5.7.1) [source] [smp:2:2] [rq:2] [async-threads:0] [kernel-poll:false]…

マルチスレッド対応

事前に用意した部品たちを組み合わせて、!, receive(パターンマッチ・タイムアウト)などを実装した。pthread_cond_timedwait は使い方が難しいね。 早めにリモートプロセスを実装した方が良さそうだという感触を得ている。実装の途中でマルチスレッド対応…

今日の復習

Query plan と最適化 5割 Projection 2割 以下10割 プロセッサ入出力I/F Hash Based Indexing Basic transform

TAP ICMP 動いた - virtio

TAP で ARP, ICMP REQ/REPLY が動いた。

今日の復習

Ubiqutous Language 9割 Domain model 5割 条件 queue 10割 Erlang 外部接続 10割 vertex blending 10割

QEMU の tap でパケットを見たい

背景 QEMU の -net user ではなく、-net tap を使う方法に切り替えた。その際に、Wireshark、tcpdump でパケットを見る方法を模索する。 うまくいく例 % cat /etc/qemu-ifup #!/bin/sh sudo /sbin/ifconfig $1 192.168.50.2 up のように QEMU に interface …

今日の復習

今日は出かけるので早めに。 ubiquitous language 8割 以下10割 Concurrency control B+ Tree B+ Tree in practice ISAM Projection

Till there was you ギターソロ

ある程度弾けるようになったので、原曲に合わせて練習。 非常に勉強になる。指が追いつかないなど技量の都合でリズムが狂っているところが露わに。 自分は手先がかなり不器用なので、長くゆっくりと練習していこうと思う。 関係ないが「自分の頭の悪さが自覚…

spawn の基盤実装完了

spawn の基盤となる muliti-vm mutex condion variable を実装した。ようやく spawn に取りかかれる。

思わぬ副作用

出来心で (syntax x) を #'x と write するように Mosh を変更した(数日前)。 今日、この Mosh で psyntax を展開して Gauche 上で動く Mini Mosh に #'x を読ませたら read error に。 それはそうか。全く気づかずにしばらくはまってしまった。(悪いのは…

今日の復習

並行処理構築部材 10割 TDD基本 10割 マルチコアCPU 10割 性能の定義 10割 Procedural Texturing 10割

今日の復習

並行処理構築部材 8割 Buffer management 10割 例外 10割 投資信託にだまされるな 10割 性能の定義 6割