7/27 (金)
INTERLINK が逆引きサービスを無料で開始
クレジットカードの明細を見る時にしか気にしないが、このサイトはINTERLINKのZOOTサービスで運用している。 その INTERLINK が 7/25 にから固定IPアドレス1個の顧客以上にIP アドレスの逆引きサービスを 開始したとのこと。
つまりうちの対象ですか!!
いまだと逆引きは 219.117.195.5.static.zoot.jp だけど、これを ns.nminoru.jp に出来るってことだね。
でも Interlink が今頃になってこういうサービスを無料で導入してきたのはなぜだろう?
自分自身はBフレッツでネットワーク的な上がりも下りも満たされたためか、昨今はプロバイダー界の話題から遠ざかっていたのだが(Interlink の話を最後に書いたのは2005年2月1日だよ)、IPの逆引きができないとイヤ〜ンな方向世間の圧力がかかっているのかしら?
7/22 (日)
[Food] すみれ@ラゾーナ川崎店 (公式)
シラナカッタ…
北海道ラーメンの「すみれ」が川崎に出店していたとは!!
一昨年に池袋の東武百貨店に出店した時はすぐに駆けつけたのだが、川崎に出店してから一年近く立つというのに同僚の人に言われるまで気づかなかった orz
というわけで突撃。
2005年の7月30日に食べた池袋東武百貨店は(たまたまだったのかも知れないが)すみれラーメン独特の火傷しそうな熱さが足らなくてちょっと不満だったが、こちらの方がラー博や北海道で食べた味に近いような気がする。
[Movie] ハリーポッターと不死鳥の騎士団
「すみれ」でラーメンを食べるまでの時間を潰すためにチネチッタで映画を見ることにしたのだが、、、これといった映画をやってない。 とりあえず「ハリーポッターと不死鳥の騎士団」に入ったのだが、、、すいません、途中で寝てしまいました。
今日見つけた変なオブジェクト
川崎ルフロンの入り口には「シンデラステップス」と呼ばれる階段状のステージがあるのだが、カブトムシとクワガタの形をしたバルーンが展示されていた。
角の部分が動力で動くようになっているのだが、クワガタの角がなんだか卑猥だ…
7/17 (火)
相馬さんと
JAVA PRESS 誌がご縁で知り合った相馬さんと町田で会食。 色々とお話をした。 相馬さんは nminoru と同年だがベンチャー企業の CTO として辣腕を振るっていらっしゃる。 それに引き換え我が身のなさけなさよ。
かつて Java 屋だった相馬さんも、今は Ruby + RoR がメインだそうだ。 某社の中にいると分からなくなるが、世の中が移り変わるのは速いものよ。
上の写真は町田の「ホルモン道場」です。
7/16 (月)
Sipahh
モスバーガーで売っている牛乳の味が変る「不思議な」ストロー Sipahh を初体験。
キンキンに冷やした牛乳をこのストローで飲むといろいろな味(これはストロベリー味)がつく。 子供の頃に飲んだミルクセーキメーカーみたいな味でなんだか懐かしい。
iHP-120 が故障
4年前に購入した iHP-120 の動作が怪しくなっている(2003年12月21日)。
ときどき再生中に文字通りハングアップして、操作を受け付けなくなってしまう。
こうなると電源をオフにするしかないのだが、そのボタンもソフト制御のために効かない。
ネジを外さないとバッテリーユニットが外れないので、バッテリーが切れるまで放置するしか方法がない。
む〜.
[時事] 地震
新潟中越沖地震が発生。
被災地の方にはおくやみ申し上げます。
7/13 (金)
[Linux] Linux カーネルを LANG=C 以外でビルドしちゃダメ
LANG=ja_JP.UTF-8 などビルドした Linux カーネルを使うと動かなくなるツールがあるナリ。
Linux カーネルの起動時に最初に出すメッセージ(/proc/versionでも見れる)は、 カーネルビルド中に gcc -v で値を貰っているために、 LANG を指定しておかないと非ASCIIなメッセージが埋まってしまう。
Linux version 2.6.9-42.EL (root@example.com) (gcc バージョン 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 Thu Jun 21 11:57:20 JST 2007
カーネルで作ったクラッシュダンプが、 ダンプ解析ツール crash で動作しない。 crash は namelist の確認として、 vmlinux 中に埋め込まれたバージョンをチェックしているのだが "(gcc version " との文字列比較が 含まれているためだ。
P.S.
2.6.21.3 のソースコードを見ると LANG、LC_ALL を 強制的に設定するように修正が入っている。
echo \#define LINUX_COMPILER \"`LC_ALL=C LANG=C $CC -v 2>&1 | tail -n 1`\") > .tmpcompile
でも icc でビルドしたカーネルはどうなるんだろう?
7/11 (水)
[Linux] pfmon/libpfm based on Perfmon2
性能評価の季節(?)がやってきたようで VTune を含めていろいろなツールを物色しているが、 簡単な計測は perfmon2 を使った pfmon でほとんど事足りることに気づく。
IRIX の perfex というコマンドというコマンドがあったが pfmon はそれに似ていて、 time コマンドや strace コマンドのように pfmon の後に続けたコマンドを実行して 実行サイクル・TLBミス率・キャッシュミス率などが計測できる (実行中のプロセスへのアタッチやシステムワイドな計測も可能)。 perfex 同様に一般ユーザの権限で実行可能。
測定可能なイベントと一緒に計測できるイベント数は、 計測対象の CPU の Performance Monitor Unit (PMU) に依存している。 Itanium2 だと Madison までは 4 組、 Montecito は 12 組まで指定可能。
同種のツールと比べると fork/vfork/clone/exec の対応が良くて、 子プロセス/サブスレッドまできちんと追跡してくれるのが○。 あと計測を開始するトリガー条件を細かく決められることができる。
例:IPC を求めるために実行サイクルと実行命令数を カーネルとユーザで分けて計測する場合の設定。
> pfmon\ -e CPU_OP_CYCLES_ALL,CPU_OP_CYCLES_ALL,IA64_INST_RETIRED_THIS,IA64_INST_RETIRED_THIS\ --priv-level=u,k,u,k a.out
Perfmon2 を使ったツールに q-tools (プレゼン資料) というプロファイリングツールがあるけど、 こっちはまだ発展途上のようだ。 Oprofile 使う方がベター。
7/5 (木)
[CPU] ia64/gcc で整数ゼロ除算
普通の UNIX の C プログラムは整数ゼロ除算を行うと SIGFPE シグナルが送られてプログラムが停止するものだが、 IA-64/Linux 上で gcc を使うとゼロ除算の結果は不定値になる。
IA-64 は整数除算命令がないので、 gcc はライブラリ(___divdi3)でそれを補う。 その中では浮動小数点演算で代用していてゼロチェックは行っていない。
IA-64 は浮動小数点演算命令は存在するが Itanium2 では実装されていないので 浮動小数点逆数近似命令 frpca を使う。 frpca は f9 が 0.0 なら条件によってはフォルトが起こすことは可能なのだが、 ここではフォルトが起きない。
浮動小数点ステータスレジスタ(ar.fpsr)の設定を変更すると トラップが発生するようになるのだが、 一緒に浮動小数点割り込みでも SIGFPE が出るようにのでうまくいかず。 む〜。
ENTRY(___divdi3)
.regstk 2,0,0,0
/* Transfer inputs to FP registers. */
setf.sig f8 = in0
setf.sig f9 = in1
;;
/* Convert the inputs to FP, so that they won't be treated as
unsigned. */
fcvt.xf f8 = f8
fcvt.xf f9 = f9
;;
/* Compute the reciprocal approximation. */
frcpa.s1 f10, p6 = f8, f9
;;
/* 3 Newton-Raphson iterations. */
(p6) fnma.s1 f11 = f9, f10, f1
(p6) fmpy.s1 f12 = f8, f10
;;
(p6) fmpy.s1 f13 = f11, f11
(p6) fma.s1 f12 = f11, f12, f12
;;
(p6) fma.s1 f10 = f11, f10, f10
(p6) fma.s1 f11 = f13, f12, f12
;;
(p6) fma.s1 f10 = f13, f10, f10
(p6) fnma.s1 f12 = f9, f11, f8
;;
(p6) fma.s1 f10 = f12, f10, f11
;;
/* Round quotient to an integer. */
fcvt.fx.trunc.s1 f10 = f10
;;
/* Transfer result to GP registers. */
getf.sig ret0 = f10
br.ret.sptk rp
;;
END(___divdi3)
追記
gcc に
-minline-int-divide-min-latency
か
-minline-int-divide-max-throughput
オプションを
つけるとコードが除算コードがインライン化されるが、
出てくるコードはほとんど同じようだ。
一方、icc では条件をチェックして自前で break.i 命令を呼び出すので、 SIGFPE が発生する。
7/3 (火)
[Tips] /home をオートマウント
忘れそうになるので備忘録。
NFS で公開されている home ディレクトリを手っ取り早くオートマウントするには、
/home に対応する auto.home ファイルにワイルドカードを用いる。
/home /etc/auto.home
* -fstype=nfs,soft,intr,nfsvers=3,rsize=32768,wsize=32768 pxm-x86-3:/home/&
最後の&を忘れると悲しいことになる。
7/2 (月)
[備忘] レンズ

最近、 ハヤカワ文庫から出ている 「黒体と量子猫」(ジェニファー・ウーレット著)と 「山海経〜中国古代の神話世界」 を立て続けに読んでいたのだが、 奇しくもレンズの話題が立て続けにでたのでメモしておくよ。
先に読んだ「黒体と量子猫」は一章を割いてレンズの歴史を記述している。 レンズに関する最古の記録は約5,000年の古代アッシリアの粘土版に出てくるらしい。 割れた隕石の欠片を覗くと向こう側のものが拡大して見えるとあるようだ。 人造と分かる最古のレンズは紀元前7世紀。 古代アッシリアの首都ニネヴェの宮殿移遺跡から発見された水晶のレンズらしい。
ところが昨日購入した「山海経」には
その序文に陽の火が冰水(こおり)から生じ
とあり、
欄外の注に『博物志』の戯術に「氷を削って円ならしめ、挙げてもって日に向かわせ、艾(もぐさ)をもって後において、その影(ひかり)を承くれば、則ち火を得」という。
と書かれている。
氷のレンズで火が作れるということらしい。
「山海経」の序文を書いた郭璞も
「博物志」を書いた張華も
西晋の人なので3世紀後半から4世紀の住人。
レンズの実用的な応用は9世紀以降になるけど、 アジアの端と端でレンズの効果は知られていたんだねぇ。
7/1 (日)
[CPU] IA-64 の保護キーのメモ
IA-64 の保護キーに 関して嬉しいことがわかったのでメモしとく。
Itanium2 は 1 つのコアが 16 本の 保護キーレジスタ(Protection Key Register; PKR)を持っていて、 それぞれ 24 ビットのキーフィールドと各1ビットの属性フィールドが 4個(有効・無効、実行権限、読込権限、書込権限)存在する。
有効な PKR の中で重複したキー値を持っているレジスタがあるとダメなのだが、 IA-64 は PKR のどれかに有効な値が代入される時は 他の 15 本のうち一致するキーを持った有効な PKR があると 自動的に無効化(v フィールドが0になる)してしまうらしい。 今まで挿入したいキーと重複する PKR がある時は、 まず古い PKR を無効値で潰していたのだが、 要らない手間だったようだ。
細かい話だけど、 アセンブラルーチンは可能な限り短くしたいからね。