Entries from 2009-12-01 to 1 month

続 Mosh のバージョン表示 -v に Git の情報を載せたい

Mosh のバージョン表示 -v に Git の情報を載せたいで id:jch2355 さん(Git の中の人)からコメントを頂いて改良。 GIT_BRANCH=$(shell git symbolic-ref HEAD|cut -d'/' -f3) GIT_IS_DIRTY=$(shell git diff --quiet HEAD && echo "dirty") GIT_COMMIT_REV…

2009 振り返り

今年の3大ニュースは Mona 0.3.0 リリースした Mosh 0.2.0 リリースした ひげ太生まれる ひげ太が生まれ人生がより楽しくなった。生活が激変した。ある程度備えをしていたので、やりたいことは継続できている。(速度は落ちたけど) 成果 Mona web server …

Mosh のバージョン表示 -v に Git の情報を載せたい

Makefile で以下のようにしてみた。 GIT_BRANCH=$(shell git branch|grep -m1 '*'|cut -d' ' -f2) GIT_COMMIT_REVISION=$(shell git show|grep -m1 'commit'|cut -d ' ' -f2) GIT_COMMIT_DATE=$(shell git show|grep -m1 'Date'|cut -d ' ' -f4-9) mosh_CFLA…

GDB スタブを書いてみよう まとめ

gdb

成果 まとめ GDB stub を移植すれば自作 OS でも GDB が使える GDB stub は i386-stub.c を移植するだけ。とても簡単。 自前で用意するのは Serial port の read/write (必要があれば)割り込みハンドラで GDB 用のハンドラを呼び出す事。必要がなければ st…

今日の復習

ARIES 人を動かす 今年の復習は今日で終わり。

GDB スタブを書いてみよう その11

gdb

まずは細かな TODO を片付ける。 gdbCatchException の処理共通化 全ての割り込みハンドラに対応する if (remote_debug) 一番最初の breakpoint exception で stub ハンドラをインストール breakpoint() 関数の追加 行番号が表示されない問題 以下のような条…

今日の復習

Stand alone classes Merge sort コンセプトの輪郭 モジュール性

今日の復習

suffix array

GDB スタブを書いてみよう その10

gdb

GDB スタブと Mona カーネルをうまくつないでいく。できるだけ疎結合で。 カーネルスタックの入れ替え GDB スタブは基本的に割り込みハンドラ内で動くのでカーネルスタックを利用するのだが、間違いが起きないように handle_exception の呼び出し前にカーネ…

gdb stub をがっつり書き換える

gdb stub の handle_exception は割り込みハンドラを上書きする形でインストールする。これにはいくつかメリットがあって stub を提供する側が確実に stub が動くようにコードを書く事が出来る 簡単に gdb stub を ON/OFF できる などである。 一方でデメリ…

FF13

普通に面白いよ。油断するとすぐに全滅する。あと坊や弱すぎ。

何となく

Mosh 用の JIT コンパイラ・アセンブラを書いたら、アセンブリへの苦手意識がだいぶ無くなった。洗練されたコードは書けないが、naive には書ける。

今日の復習

dll

dll simple さの分け前 モンスターメソッド

アルゴリズムイントロダクション 6 章「ヒープソート」

数学的基礎とデータ構造 (アルゴリズムイントロダクション)の 6章 6.1-1 min=2^h max=2^(h + 1) - 1 6.1-2 n=min=2^h なら lgn = h n=max=2^(h + 1) -1 なら lg(n + 1) = h + 1 → h = lg(n + 1) - 1 6.1-3 部分木の根以外に最大値があるとすると、その親との…

REFER_LOCAL を JIT 化

JIT コンパイラを書くヘルパーの準備も整い、あとは全てのインストラクションを手動で JIT 手続きを書いていくフェーズになった。 ヘルパーのおかげで g++ の出力したコードが以下のようなコードになるので多少は楽が出来る。 ;; REFER_LOCAL (movq rbx (& r…

今日の復習

分割統治法 エンディアン パフォーマンス

id:Voluntas さんが memcached-client for Erlang のレビューをしてくれた

拙作の memcached client for Erlangを id:Voluntas さんがレビューしてくださった。 id:Voluntas さんは自分よりはるかに Erlang 力が上なので、より Erlang らしい運用しやすさを目指した視点が印象的。変更点は memcached-client を改悪してみた - Twiste…

今日の復習

services

GDB スタブを書いてみよう その9

GDB とのパケットのずれを解決しよう。GDB から提供されている stub は qSupported#37 への応答を返していないのが問題のようだ。 stub に手を入れて handle_exception 適当に PacketSize=400 と返すようにした。 ちなみに stub に突入する前に以下のパケッ…

進化

今日の進化 座れるようになった まだ下手だが1人でミルクを飲めるようになった ベビーカーで前のめりになれるようになった

今日の復習

ヒープ clustered の威力

起きてすぐに PC の電源を入れなかった

かわりに1時間読書してみた。起きてすぐに素晴らしい文章を頭に入れるのは良いかも。

夜泣き期間完了?

ひげ太がここ数日、夜に 7-8 時間寝てくれるようになってきた。おかげで親も睡眠不足を解消しつつある。 原因として考えられるのは 寒くないようにベストを着せるようになった 成長した 父の FF13 を応援したいという気持ち など。

復習

2の補数 あちこち同じコードを変更している

今日の復習

extaract interface introduce delgator

Erlang のプロセスメモリを追う その3

自分の作っているサーバーに関しての結論。 erl の +P オプションに Max 値 134217727 を設定してはならない 自分のマシンでは 1GB のメモリが起動時に確保されてしまった。 マシンのメモリサイズと process_info で知る事の出来る process メモリサイズによ…

今日の復習

トランザクション suffix array アドレッシング ゲート真理値 MIPS 命令実現概要 3つのモデルの有効性

今日の復習

DDD entities トランザクション 2割 どうやって機能追加する intention revealing interface

サンタさんありがとう

PlayStation 3(120GB) チャコール・ブラック(CECH-2000A) ファイナルファンタジーXIII HDMIケーブル(3m)(CEJH-15004)

珠玉のプログラミング(Programming Pearls)読み終わった

珠玉のプログラミング読み終わった。 良い本だと思うのだがあまり話題になっていない気がする。どうしてだろう。 と思ったらDan Kogai さんが書評書いてた。さすが。→404 Blog Not Found:書評 - Programming Pearls