Entries from 2009-11-01 to 1 month
データ格納方法 pull up feature どのメソッドテストすべき Erlang 内包表記 なぜ Code Complete コンストラクションの重大決断
アプリケーションのログディレクトリを erl -xxx log_dir としていたのだが の部分が . (カレントディレクトリ)になると application_controller: syntax error before: '.': . と謎のエラー。 これは get_env/1 の戻り値が Erlang Term であることに気付…
これは良い。コミット分けたいときあるある。
Mosh の utf16-codec における UTF16 UTF32 変換のバグを修正。 U+10FFFF (境界値)でバグってた。反省を生かして素直に unicode.org の FAQ のコードの通りに実装。 http://unicode.org/faq/utf_bom.html#utf16-3
id:mjt さんの協力により Mosh のリポジトリを Git に移行し higepon's mosh at master - GitHub に置きました。 リリース物の配布などは今まで通り Google Code で行います。 今までと違いスクリプトにより生成されるソースコード類を出来るだけリポジトリ…
twitter にも書いたのだけど、個人的に Git が速い(commit, push, clone, merge など)のが気に入った。
パタヘネマルチサイクル ソフトウェア種類特定 コンストラクションの重大決断 2割
珠玉のプログラミングの14章。 14.6.1 分からなかったので答えを見た。実装のチューニングをしろという問題意図らしい。 14.6.2, 14.6.3 略。 14.6.4 ハフマン符号 頻度が少ない順に取り出す 浮動小数 小さい順に足しあわせる ファイル サイズ順に突っ込む。…
上流工程の重要さ supple design Intention revealing interface side effect free function
簡単なテストが通った。タイムアウト実装はこれから。 SourceForge - monaos/monaos/commitdiff
disk space management
Smart UI antipattern
Erlang で書かれたアプリケーションの logger 。使っていると色々と疑問がわいてくる。 今思いつくだけでも error_logger という名前なのに設定で sasl とか log_mf_h など違う名前が出てくるの? error_logger の吐くログはなぜ rb で見るの?面倒だよね。 …
Apache でいうところの apachectl 相当のものを作った。 構成は xxxctl シェルスクリプト で getopts して nodename などをうけとる Windows なら bat ファイル(まだ作ってない) xxx_control.erl 実際に stop などのコマンドを実行 コマンドは rpc:call(No…
man inet(3) すると分かるのだが erl に kernel application へのオプションを渡す事が出来る。 % erl -kernel inet_default_listen_options [{nodelay,true}
復刊.com で投票してくれた皆さんのおかげですね。 復刊.comの記事 参照 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - ひげぽん OSとか作っちゃうかMona-
本実装は週末かな。
introduction to lock management changing software ランダムに選ぶ
Erlang で書かれたアプリケーションを配布する場合に ビルド方法 ディレクトリ構成 起動・再起動・終了方法 などをどう提供しているのかを調べてみた。 id:Voluntas さんと id:cooldaemon さんに教えてもらった候補たち RabbitMQ, Yaws, MochiWeb, ejabberd,…
(let loop ([lst lst]) (cond [(null? lst) '()] ;; ここ [else ...])) のように値を返さないという意思表示で '() を返していたんだけど。 cond と組み合わせる場合は type 数が少ない (let loop ([lst lst]) (cond [(null? lst)] ;; #t が返る [else ...]))…
定義されているマクロが 750 個を超えると SEGV するバグを修正。スタック自動伸長で一部考慮が足りない部分があった。
Value Objects
アルゴリズムイントロダクション 第1巻の 1 章。 1.1-1 子供を背の順に並ばせる。 1.1-2 例えば車なら使用する燃料の量。 1.1-3 配列。 長所:どの要素も定数時間でアクセス 短所:挿入のコストが高い 1.1-4 類似点:経路の組み合わせ。 相違点:巡回行商人…
Gauche 0.9 がリリースされたようです。正式なアナウンスは明日とのこと。 Gauche | Get Gauche at SourceForge.net
Layered Architecture
Code Complete読み3周目完了。 読み返すといろいろ気づく。Programming Pearls も言及されてた。
replace global reference Intel 浮動小数
条件変数を実装する途中経過は master には見せたくないので共有レポジトリにトピックブランチを作った。 % git checkout -b cond-var % git push origin cond-var http://monaos.git.sourceforge.net/git/gitweb.cgi?p=monaos/monaos;a=summary 入門Gitの 8…
最近書いた Mona の API は TDD で開発したのでテストコードが付属している。 当然ながら Mona の API なので Mona 上にテスト結果が表示されるのだが qemu 立ち上げる qemu のウィンドウが最前面に現れる テスト結果を目視 qemu 終了する と大変面倒で、気…
wait 側のユーザーコード mutex->lock(); while(!some_condition) { condition->wait(mutex); } // ここでお仕事。必要に応じて some_condition 書き換え。 mutex->unlock(); wait が内部でやる事は (1) mutex->unlock (2) スケジューラーの wait queue へ追…