大山のからまんぼうというラーメンが気になるので食べにいってきた。

麻婆豆腐がのったラーメンで、麺はワシャワシャで新トンコツと一緒かな。麻婆豆腐は山椒とかの香辛料が中華っぽくてモヤシと絡めると美味しいが、ジャンクフード度はかなり高め。
スープの底に溜まった香辛料が旨かった。
酒のいわせで。
さっぱりとした口当たりで、すいすいいけてしまう。これが純米酒で1.9Kとはコストパフォーマンスが高い。気がついたら週末でほとんど飲んでしまった。平日は禁酒でもしようか。

ただ、純米の割にはどっしり感がないというか。香り少なめな感じ
他にも久礼という銘柄が入ったようで、こっちも気になるところ。
04042009 life
ぶらぶらと花見を兼ねて散歩

そういえば、犬の写真を撮ってないなぁと、帰ってきてからシャッター押した。

04042009 Arduino
とりあえずLEDを点灯させるサンプルを。

arduinoは差すとこのカッチリ感がないので、接続されてるのかちょっと不安になる。
03042009 as
インテルCPUのGNUユーザへ
分厚い
実用SSH 第2版―セキュアシェル徹底活用ガイド02042009 life
明日到着予定。
でも、まわりに持っている人がいなさそうなのが残念なところ。Fuji Poken Nightとかはないもんか、、、、
安西先生、ハイタッチがしたいです。みたいな。
このままでは、U隊長に一個贈って、家の中で名刺交換することになりそう。
schemeでレジスタ計算機を書いたら、次はparrotというレジスタ仮想機械、(そしてPerl6へみたいな。)
さて、ダウンロードしてきたソースコードについてたexamples/pir/euclid.pirというのがユークリッドの互除法のサンプルなのでこれを使う。
pirというのはParrot Assembly Language(pasm)よりも抽象度の高い言語らしい。
.sub 'example' :main
$I1 = 96
$I2 = 64
print "Algorithm E (Euclid's algorithm)\n"
e1: $I4 = mod $I1, $I2
e2: unless $I4 goto done
e3: $I1 = $I2
$I2 = $I4
branch e1
done: print "The greatest common denominator of 96 and 64 is "
print $I2
print ".\n"
.end
pasmに変換
parrot --output=euclid.pasm euclid.pir
これで、アセンブリコードが吐き出されたので見てみる。
example:
set I0, 96
set I1, 64
print "Algorithm E (Euclid's algorithm)\n"
e1:
mod I2, I0, I1
e2:
unless I2, done
e3:
set I0, I1
set I1, I2
branch e1
done:
print "The greatest common denominator of 96 and 64 is "
print I1
print ".\n"
end
ふむふむ。
ずっと5章に興味が持てなくてほったらかしにしていたのだけど、読み始めた。5章は毛色が違うように感じてたのと、単に関数型言語が知りたいだけだったら3章までで満足できて、計算機の話って何が面白いんだろうか?なんて思ってたのだけど、(僕の場合)以下のような道のりを経て5章にたどり着いた。
Cのプログラムをアセンブリから眺めてみる。レジスタとかメモリとか意識できるようになった。
4bitCPUつくる。半加算器とか全加算器が論理回路でつくれるとかそういう話は楽しい。
という長い道のりを経て、やっとSICP5章。
数日かけてバグとって、実際にGCDマシンが動いた時にはかなり感動。
gosh> (set-register-contents! gcd-machine 'a 206)
done
gosh> (set-register-contents! gcd-machine 'b 40)
done
gosh> (start gcd-machine)
done
gosh> (get-register-contents gcd-machine 'a)
2
デバッグしながら中身の動きが理解できた。