2003-07-18 7899歩

λ [FreeBSD] ata(4) RAIDの先頭セクタ構成

/usr/src/sys/dev/ata/ata-raid.h, /usr/src/sys/dev/ata/ata-raid.cを参照すると、 HighPointのRAIDカード以外はすべてPromiseのRAIDカードFastTrakの セクター情報を元に設定することになっている。ata-raid.cより抜粋:

switch(adp->device->channel->chiptype) {
case 0x4d33105a: case 0x4d38105a: case 0x4d30105a:
case 0x0d30105a: case 0x4d68105a: case 0x6268105a:
case 0x4d69105a: case 0x5275105a: case 0x6269105a:
case 0x7275105a:
    /* test RAID bit in PCI reg XXX */
    return (ar_promise_read_conf(adp, ar_table, 0));
case 0x00041103: case 0x00051103: case 0x00081103:
    return (ar_highpoint_read_conf(adp, ar_table));
default:
    return (ar_promise_read_conf(adp, ar_table, 1));
}
return 0;

SiSとかIntelの奴もPromiseと同じなんかなー。

片肺運転の実験失敗

実験してたらマスター側のHDDがBIOSからも認識しなくなってしまった。なぜやー。

最近Maxtor DiamondMax16シリーズ(4RxxxL0か4AxxxJ0)のを大量に購入してるけど今のとこハズレなし。 なによりビット単価がべらぼうに安い。 サーバ機用のHDDは Maxtor 4R120L0 に統一してスペアディスクを稼ぐ計画が進んでるので、 この実験機用に2台追加するか。

λ 「阪神タイガースCF」

こういうのこそ経済効果炸裂だよなー。

λ Hiki

「週末にWikiのようなものを立てます」と宣言してしまったので…一応Hikiの予定。 開発バージョンだと Hiki/RD+ が取り込まれているらしい。

λ [Windows]バイナリ文字列変換

VBScriptだけで画像データを受け取ろうというかなり力技なサイト。 AppendChunkのバグの話を読むと画像データをデータベースに保存する方針がかなり萎える。

MSAccessでロングバイナリデータを使う

もちっとASPで画像のやりとりをするサンプルコード。.Netじゃない環境だとBASP21使わないと辛いか。

バックエンドをSQLServer2000にしてやってみたが、大きな問題なし。getJpeg.aspの最後のところにちょこっと単語の入れ替えがあったぐらい。

objConn.Close
Set objConn = Nothing

global.asaにタイプライブラリを指定する方法は知らなかった。 指定したバージョンのMDACがインストールされているかどうかは微妙なので、 あんまりバージョンに依存しないGUIDが知りたい。2.0のGUID指定すればいいんかな? Windows2000だったら2.5スタートらしい

ActiveScriptRubyでやってみる

バイナリを AppendChunk に渡すところを、Rubyの流儀で普通にStringクラスの変数を渡してしまうと、勝手にUnicodeにして渡そうとする。 バイナリを正確に渡す方法は、どうも VT_ARRAY|VT_UI1 (参考:Win32::OLE::Variant) すなわち符号なしオクテットの配列として渡すのが正しいらしい。

が、こういうVariantをRuby上で作る方法が分からん。 Win32OLEリファレンス がGoogleですぐに出てこないのは困りもの。

…このリファレンスの「特殊なタイプ」のところに一応書いてある

x._invoke dispid, [[1,2,3]], [VT_ARRAY | VT_UI1]
と記述すると、Win32OLEはバイト配列を作成し、OLEAUTがバイト配列のバリアントとして呼び出しを行うため、正しく処理される。

けど、これは難しすぎまする! 掲示板で質問してみた。

λ SWIGとRuby

かなり網羅的なドキュメント。

SubversionのswigによるPython bindingの実装読んだらめちゃめちゃPython依存だらけでドヨーンみたいな。 結局のところSWIGとRubyを理解して最初から書いてもそんなにコード量は増えない雰囲気。

SubversionのC APIについてはUsing the Subversion Client API が参考になる。

[]