Entries from 2009-10-01 to 1 month

アセンブラをリファクタリング中

子守の合間にアセンブラをリファクタリングしていた。ようやくまとまってきた。リファクタリングの過程で x86-64 のアドレッシングに関して更に理解が深まった。 mov とか lea はおおよそ以下の pack-op 手続きでアセンブルできる。 (define (pack-op bits64…

今日の復習

DDD entities selection RDB 概要 Fake it ubiquitous language マインドマップ コンストラクションの重大な決断 2割

分散環境で使えそうな Lock-Free linked list を探している

いくつか論文を読んで見た。欲しいのは双方向リンクリスト。 Lock-Free Linked Lists Using Compare-and Swap 単方向リンクリスト A pragmatic implementation of non-blocking linked-lists 単方向リンクリスト deleted markd "Two-Handed Emulation: How t…

今日の復習

image texturing mock object one step test

qemu + GDB

qemu -s -S で kernel を remote debug 出来る。シンボルテーブルを読ませてソースコードに対応させる事も可能。 ただ、一番使いたい機能としてアプリが落ちた場所を見つける機能の使い方が分からない。 Linux 上の通常の gdb なら SIGSEGV とかで勝手に止ま…

今日の復習

小さな箱から脱出する方法 TDD の心構え ノンブロッキングアルゴリズム broken test

自転車のリアライトを買い換えた

以前使っていたのは 光る面積が狭い 単五電池で面倒 取り付け位置が限られる と色々と不便だった。 購入したのは↓ 単四電池 エネループにする予定 細い部分にも取り付け可能 光る部分が広く目立つ。 などの良い点がある。 これをつけている自転車をよく見か…

今日の復習

OOSC クラス SQL->Algebra 封筒の裏計算 並列化すべき場所を見つける データパスと制御

distributed doubly linked list のアルゴリズムに使えそうなものを探している

Two-Handed Emulation: How to build non-blocking implementations of complex data-structures using DCAS を読んだ。uid の保持にグローバルな何かが必要なので P2P では使えないそう。

ぐーちょきぱー

「ぐーちょきぱーで何作ろう」の歌でひげ太が高い声を上げて大喜びする。ツボなんだろうなあ。

小さな発見 on x86-64

Mosh の Jit のために gcc (x86-64) の出力するコードを見ている。何となく発見や疑問があるので書いてみる。 見ている範囲では r8-r12 をあまり使わないように見える がんばって rax, rdx 辺りを使い回している印象 どのみち 64bit レジスタ使うなら rex pr…

今日の復習

要求 円高・円安 準備の重要性 gamma correction texture mapping プラクティスの決定

場合分けしてみた - Skip Graph の concurrent JOIN を考える - その4

id:kibayos さんの PDF「構造化オーバレイの一貫性保証」 に書かれている Skip Graph の一貫性保証の例を読み解く。 http://live-e.naist.jp/sensor_overlay/3/doc/yoshida.pdf その3の続き。 Concurrent Join のアルゴリズムをカジュアルにフォーマライズし…

Shibuya.lisp テクニカルトーク#4

Shibuya.lisp テクニカルトーク#4の告知が出ています。 今回のテクニカルトークも大変豪華。今から楽しみ。

TCP/IP プロトコルスタックの移植をどうしようか

OSKit はライセンスが GPL なので使えない事が分かった。正攻法なら FreeBSD から移植するのが良いだろう。 具体的な移植方法はともかく、「移植した」という記事はよく見かける。 An experienced developer could port IP, UDP, and TCP to an existing emb…

今日の復習

要求 2割 課題定義 明示的なロック CPU パイプライン repository

Skip Graph の concurrent JOIN を考える - その3

id:kibayos さんの PDF「構造化オーバレイの一貫性保証」 に書かれている Skip Graph の一貫性保証の例を読み解く。 http://live-e.naist.jp/sensor_overlay/3/doc/yoshida.pdf その2の続き。双方向リンクリストに conncurrent Join / Remove する話。 続い…

Skip Graph の concurrent JOIN を考える - その2

id:kibayos さんの PDF「構造化オーバレイの一貫性保証」 に書かれている Skip Graph の一貫性保証の例を読み解く。 http://live-e.naist.jp/sensor_overlay/3/doc/yoshida.pdf その1の続き。双方向リンクリストに conncurrent Join / Remove する話。 その1…

今日の復習

ロックで concurrecy control なぜ Code complete を勉強するか 正しいプログラムを書く persistent strategy inversion of control

Skip Graph の concurrent JOIN を考える - その1

id:kibayos さんの PDF「構造化オーバレイの一貫性保証」 に書かれている Skip Graph の一貫性保証の例を読み解く。 http://live-e.naist.jp/sensor_overlay/3/doc/yoshida.pdf (PDF) 探索処理は任意のタイミングで実行可能 資料 P14 。 Join は下位レベル…

Mona 0.3.0 をリリースしました

概要 これは、日常で Mona を使える事を目指した第一歩のリリースです。 音楽を再生し、Web サーバーを動かし、インタラクティブなシェルで作業をすることができます。 QEMU を同梱したパッケージをダウンロードすれば、bat ファイルを実行するだけで簡単に …

JIT における手続き呼び出しの問題点

JIT コンパイルされた手続きが、別の手続きを呼び出す場合の扱いが理解できないので整理。 通常 VM インストラクションにおける処理 FRAME: vPC などを push CALL: cprocedure なら native call 。closure なら vPC に jump RETURN: スタックから pop した v…

今日の復習

総称性 スレッドセーフクラスの組み立て

coverage 99% になった

gen_server callbacks の terminate と code_change が残りの 1% 。

Skip Graphs の concurrent join の論文募集

ないかなあ。オリジナルの論文では link_op 時に隣のノードを見比べて link_op 転送としか書いてない。 複数のレベルで一貫性を保つのは難しい気がする。 追記 kota abe on Twitter: "まさに今この問題ではまっている気が RT @shudo: RT @higepon: 日記ed Sk…

もーうゃん

ひげ太が「とうちゃん」と僕を呼んでいる気がするんだけど、妻には「もーうゃん」と聞こえるとか。

今日の復習

モデリングの core に何使う? シンクロナイザ フィードバックを生かす I/O コスト比較

x86-64 アドレッシングまとめ

このまとめは、間違い勘違いを含んでいる可能性があります。ご注意を。 基本 mov [base-reg + index-reg * scale + displacement], src-reg ; intel 形式 movq src-reg, displacement(base-reg, index-reg, scale) ; gas 形式 (movq (& base-reg + (* index-…

8章「アルゴリズムのデザインテクニック」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの8章。 8.7.1 maxendinghere の不変表明は「任意の 0 .. i-1 に関して maxendinghere がx[i - 1] を含む部分配列の総和の max 」であること。 0 のときは 0 なので成り立つ。 k - 1 まで成り立っているのであれば、maxendinghere は x[…

Erlang における equal 演算子

覚えられない。 == equal to /= not equal to = less than or equal to less than >= greater than or equal to > greater than =:= exactly equal to =/= exactly not equal to