Entries from 2009-10-01 to 1 month
DDD Documents Crash recovery log extract and override getter テストできない web tier heart of software query plan 最適化 aggregates code complete オブジェクトライフサイクル
Mutex に timeout 機能を実装した。カーネルのスケジューラやイベント周りのコードを久しぶりに触った。 イベント待ちの API デザインは Windows の WaitForSingleObject や WaitForMultipleObjects が良いのかな。
珠玉のプログラミングの11章。 11.5.1 n 回見ればよい物ばかりなのでソートしなくても良さそう。 11.5.2 コード参照。 11.5.3 データ数で計測して交わるところを考える。 11.5.4 すべて同じ値の配列の場合。 11.5.5 問題の意味が分からないので略。 11.5.6 …
ふと目を離した隙にひげ太が「うつぶせ」→「あおむけ」の状態になってた。日々成長してうれしい。 理論上はごろごろ転がってどこにでも移動可能になったのか。寝かせたり置いておく場所にさらなる配慮が必要だ。
いろいろと制限付きではあるが JIT 版の fib が動いた。(正確には JIT コンパイラが吐くコードが動いた。Just in time なコンパイルはしてない) 速度比較 通常の (fib 30) 250msec JIT (fib 30) 200msec JIT 版の fib はまだ速くなる余地がある。 VM の仮…
timeout つき Semaphore または conditional variable msec 精度の時刻取得 Thread::self() くらいかな。
コードを書く前に プロセス間通信 radiometry 条件 queue hash based indexing 設計チェック
gettimeofday 相当を実装するには TSC を使う。クロックサイクルを取得しないといけないのか。
JIT 実装中に VM の仮想レジスタの内容やスタックを覗きたい事がある。 GDB のユーザー定義コマンドを利用して以下のように定義した。 ## stack top is "sp 1" define sp printf "%d\n", ((intptr_t*)(*(((intptr_t*)$rdi) + 5)))[-$arg0] end define hook-s…
コードを書く前に 2割 設計チェック 2割 プラクティスの決定 準備の重要性 株実践
FreeBSD 系のソケットは移植難度が高い。なので lwIP にしようかと。 採用理由は 移植難易度が低い事 BSD Socket API がついてくる事 今もメンテナンスされている事 uIP とおなじ作者(いまは違う人達がメンテしている) 採用 OS が多い事(組み込みだけど)…
コンストラクションにおける設計 2割 DDD リファクタリング アトミック変数 クラスの品質
実装してみたところ1つ想定していなかったケースがに遭遇。多分バグ。 上位レベルに存在する key が下位レベルに存在しない。 これだけなら insert の途中と推測されるんだけどいくら待っても表れない
Name URL TCP/IP License Minix http://www.minix3.org/ orignal BSDL http://www.nyx.net/~ctwong/minix/ DexOS http://www.dex4u.com/ original asm BSDL MenuetOS http://www.menuetos.net/ orignal asm original MorphOS http://www.morphos.de/ ? ? Syl…
GDB でレジスタを表示するときに (gdb) info register rax # もしくは i r rax としていたが、レジスタは変数としても参照可能なことを知った。頭に $ をつけるだけ。 (gdb) print/x $rax 変数として参照できるので、操作の度に自動でレジスタを表示する dis…
クラスの品質 7割 継承の部分が覚えられない。明日がんばる。
クラスの品質 1割 ライブラリ依存に殺される learning test erlang multi core concurrency control B+ tree 貧乏人のデイトレ
TCP/IP プロトコルスタックは BSD 系の物を移植しようと思っていたが、lwip も調べてみる事にした。 実は lwip には BSD Socket API がついてくる。これさえあれば当座は lwip でしのいであとからごっそり入れ替える事も可能だな。 Mosh の OSCompatSocket.c…
貧乏人のデイトレ 1割 Dead lock projection (3D) services
value objects 課題定義 repositories 要求 factories
コードを書く前に R形式データパス DDD documents 並行処理構築部材 procedural texture データベース raid layered architecture
日付->曜日 ファイル別コスト比較 コード書く前に 2割 並行プログラム試験 投資信託にだまされるな Tree-based indexing
珠玉のプログラミングの10章。 10.6.1 インタプリタのコードとか。 10.6.2 bitmap はどうだろう。用途によるか。 10.6.3 HDD 80GB Mem 1GB 空き 180MB 10.6.4 略 10.6.5 関数の補正に1要素=数ビットの表を利用した。 10.6.6 よく分からなかった。 10.6.7 has…
Sets a lock on the specified nodes (or on all nodes if none are specified) on ResourceId for LockRequesterId.と書いてあるので set_lock の Nodes に [] を指定したら常に true が返ってきて困った。 global モジュールのコードを読んだが set_lock({…
こんなのがさらっと提供されている事が分散に強い言語ってことだよな。 The ability to globally register names is a central concept in the programming of distributed Erlang systems. In this module, the equivalent of the register/2 and whereis/1…
FreeBSD のプロトコルスタックを Mona に移植する計画がある。そこでコードを移植する際の一般的な方法論をまとめた記事を探しているがなかなか見つからない。 根性で移植というのはいやなので探してみた。英語では「Source code porting」がキーワードのよ…
初めての子供が生まれて 4 ヶ月が経ちました。 育児本、育児雑誌、パンフレット、Web などで「出産前にやるべき事、そろえておくべき物」を調べたのですが、子供が実際に生まれてみて分かることも多くありました。 また雑誌や赤ちゃん用品のお店が提供してい…
最近ひげ太は、4ヶ月目に突入。眠いとぐずるようになった。抱っこし動き回ったりしたがあまり効果が無くて困っていたのだが、対処方法が分かってきたのでまとめておく。 静かな部屋に連れて行く(テレビがついていたり、突発的な音が鳴らないところ) うつ…
珠玉のプログラミングの9章。 9.5.1 Mosh でやったことがあるので略。 9.5.2 配布プログラムがうまく動かないので略。 9.5.3 do while なら良さそう。という話だろうか。 9.5.4 配列が小さい順にソートされていると、arrmax が 2倍呼ばれてしまう。 9.5.5 本…
Erlang の global:set_lock で複数ノードを一括してロックできる事が分かったので考え直した。 一晩寝かせよう。