Entries from 2009-09-01 to 1 month
10割。 Rasterize Texturing pipeline ACID Set and Aggregate ARIES Transparency 僕のアプリ構造ない Writing Solid code
Object クラスのメンバ関数呼べた。 うまく動くはずなのになんで動かないんだろう?とずっと悩んでいた件も解決。 isNumber の call 後に第一引数 VM*(rdi) を restore し忘れていた。正確には rdi を参照している場合は restore が必要な事は理解していたの…
OOSC モジュール性 10割 フレネル反射 10割 Estimate cost of plans 10割 writing solid code 2割
僕のアプリは API 呼んでいるだけ 10割 タスクの実行 Executer 10割
JIT のコードで一部どうしても動かないところがある。 rdi につっこんだ this が正しいはずなのに SEGV 。うーむ。なんだこれ。
C++ のメンバ関数は関数ポインタをとる事は出来てもアドレスは無理。とはいえ JIT で必要なので以下の方法でとる事に。 実体は this が第一引数のマングリングされた関数だから呼べるのは当たり前だけど合法かが微妙。 const Object t = Object::makeFixnum(…
10割 Distribured Database Aggregates 変更が永遠に終わらない
(let* ([label (gensym)] [asm (assemble `((movq rax ,(vm-make-fixnum 2)) (movq rbx ,(vm-make-fixnum 2)) (cmpq rax rbx) (je ,label) (movq rax ,(vm-make-fixnum 3)) (label ,label) (retq)))] [proc (u8-list->c-procedure asm)]) (test-true (proced…
QEMU で virtio-net を有効にすると、なぜか ES1370(サウンドカード)の音質が悪くなる現象の原因がやっと分かった。 結論としては Mona の ES1370 ドライバの初期化処理が良くなかったようだ。 元のコードでは以下のように、コントロールレジスタからステ…
Smart UI Antipattern Simple さの分け前 正しいプログラムを書く 全て10割。
オブジェクト指向入門 第2版 原則・コンセプト(通称 OOSC)読み終わった。長かった。 読んだ動機は単純で「オブジェクト指向を正しく理解したい」から。ちょうど同じ時期に読んでいたDomain-Driven Designでも、モデリングのツールとしてのオブジェクト指向…
map-accum と match-lambda* の組み合わせとか人生で一度も経験ない。 jmp label のために addr という seed を持ち回って評価していくのがきれいだ。 こういう職人芸は盗まねば。 ;; asm :: [Insn] -> [Byte] (define (asm insns) ;; first pass. create [(…
Updating distributed data 10割 Join 10割 simple さの分け前 4割
VM Instruction の REFER_LOCAL_PUSH_CONSTANT を定義。 macro-xxx はヘルパー的なマクロ。このマクロのおかげで細かいミスが減らせるはず。 VM Instruction の定義は quasiquote でやってるけど、これが正しいのかは、もう少し進んでみないと分からない。 …
正しいプログラムを書く 0割 以下10割。 B+ Tree in practice Services ISAM 封筒の裏計算 小さな箱 オブジェクトのライフサイクル
Skip Graph へ (key value) を並列 insert をしたときに gen_server がデッドロックする問題に悩まされる。 insert は handle_call 経由で insert_op_call が担当する。insert 自体は自分自身のデータを変更(左右のノードの更新とか)が発生する。つまり St…
提案者は R6RS 用の SRFI を開発している人ですね。 103: Library Files http://srfi.schemers.org/srfi-103/ 104: Library Files Utilitie http://srfi.schemers.org/srfi-104/
obj.isNumber などインスタンス関数のポインタを JIT コンパイラ側に渡さないと。 C だったら楽なんだけど。 追記 よく考えれば特に変わらないか。
ループ不変表明 総称性 モデリングの core に何に使う? 契約による設計 Value Objects
JIT コンパイラが生成したコードで落ちるときは、無限ループ(=0xEB 0xFE)を挿入し二分法で場所を特定。 落ちる直前のコードにデバッガ起動(0xCC)を挿入し、デバッガで事前条件が成り立っているか調べる。 という感じで進めると良いかも。0xCC だけでも…
「自分の小さな「箱」から脱出する方法」を読んだで、良い本だけど万人にすすめられる本ではない理由をうまく言語化できなかったのだが、極東ブログ: [書評]自分の小さな「箱」から脱出する方法(アービンジャー・インスティチュート)でうまく述べられてい…
珠玉のプログラミングの7章。 7.6.1 分からない。 7.6.2 10Mbps と10GB のメモリスティックを10km/h で運ぶ。 ネットワークで 10GB 転送するには 800 秒かかる。 800 秒あれば約 2.5km 進める。1-2km ならメモリスティックを自転車で届けた方が良い。 でもよ…
コミュニケーションの本。コミュニケーションテクニックの話は一切無い。 「自己欺瞞(箱に入る)」の状態が、いかに人間関係をダメにするかを主人公とともに学べる本。 会社の研修や、あやしげな宗教の勧誘でこの本を勧められたら、辟易してしまうであろう…
手続きのアリティ(引数の個数)をプログラムから取得する手続きの提案です。SRFI-101 とおなじ提案者ですね。 SRFI 102: Procedure Arity Inspection
全て10割。 例外 vertex blending マルチコア
続:ES1370 の音質が QEMU 0.8.2 と 0.10.5 で違うの続き。 色々と起動オプションを変えて観察してみた。-net user が ON/OFF で割り込み頻度が変わる。 ON の場合には 1/4 くらいになる。 Mona 側でどちらの場合とも、es1370.cpp の動きを見たが、割り込み…
sar とか movsxd など知らなかったな。 SAR r/m64, imm8 : REX.W + C1 /7 ib MOVSXD r64, r/m32 : REX.W** + 63 /r
全て10割 再利用性へのアプローチ 仮想記憶 3つのモデルの有効性 高度なパイプライン ビヘイビア Buffer manager OS vs dbms
今日は、ひげ太の面倒を妻に任せて完全休日だった。 明日は交代。僕が面倒を見て妻が休日。
多摩川のサイクリングコース経由で、羽田空港近くの城南島海浜公園へ。離陸直後の飛行機を間近で見られる。 思ったよりは間近ではなかったので望遠レンズが欲しいと思った。連休なので城南島は過疎ってた。 多摩川は野球場多い。 望遠レンズが欲しい。 大き…