日記 (2006年12月)。
$Id: 200612.php,v 1.35 2007/01/02 03:14:58 isaki Exp $

2006/12/01 (金)
友人に連れられて、いつもと違う広島では時々メディアに 登場するほうのメイドカフェに行ってみた。 まあいつものメイドカフェがあるのもどうかと思うけど。 もともとどういう建物のどこの部分だったところか知らないけど ビルの1階のはずなのに窓が一つもなくて、コンクリートの反響音が すごいので、ここで録音したテープを日本音響研究所の鈴木松美先生に 解析してもらうと「地下室ですね」って言われそうな店内。 おまけに店内の照明は薄暗くてピンクだし、 「お帰りなさいませ」と「いってらっしゃいませ」の掛け声が 居酒屋みたいに威勢がいいし、なんかシチュエーションを間違えてないか。 別に個人的にメイドカフェに何かのシチュエーションを求めて行ってるわけ じゃないけど、 要するにこのジャンルのお店はコンセプトだけが売りなんだから そこを間違えると何も残らんような気がするのよね。

2006/12/02 (土)
XP がブルーバックになるくらいだから、デバイスとかに依存する話だろう と思って、確認のためおうちの PC にも Borland C++ を入れてコンパイル。 うむ、うちでは即死 (ブルーバックにならずに即再起動) する。ありえねー。
原因は分からんけど、症状は一応判明。 FTP の特定のコマンドを発行すると即死するみたい。 それもありえねー。 きっと OS にバグがあって、 コンパイラにもバグがあって、 ソースコードにもバグがあって、 全員の絶妙なハーモニーで発症するんだろうな。

2006/12/04 (月)
Winbond W83627F/HF についてのメモ。 W83627F/HF のコンフィギュレーションレジスタは 8ビットポート 2つが見えてて、 i386 だとたいてい I/O ポートの 2Eh, 2Fh か 4Eh, 4Fh のいずれかに繋がっているらしい。 で、2つのポートに機能的には 3つのレジスタがあることになっている。
略称 名称 オフセット 要するに
EFER Extended Functions Enable Register +0 2Eh (4Eh)
EFIR Extended Functions Index Register +0 2Eh (4Eh)
EFDR Extended Functions Data Register +1 2Fh (4Fh)
つまりよくあるアドレス(インデックス)レジスタと データレジスタっていう構造をしてて、 アドレスレジスタ側が論理的に Enable Register という機能も兼ねていると いうだけ。

レジスタにアクセスするには以下のように「開けゴマ」が必要。

EFER ← 87h
EFER ← 87h
使い終わったら以下のようにして閉じておく。
EFER ← 0AAh

レジスタにアクセスできる間は、 EFIR (インデックスレジスタ) に読み書きしたいレジスタ番号を書き込んで、 EFDR (データレジスタ) を読み書きするという、よくあるタイプ。 で、 コンフィギュレーションレジスタには 11個の論理デバイスが繋がっていて、 それぞれ 1ページずつのアドレス空間を持っているので、 それを切り替えて使う感じ。これもよくあるタイプ。 レジスタは CR00 から CRFF まであって、単純に EFIR に書き込む インデックス 0x00 〜 0xff に対応した呼び方。

レジスタ 論理デバイス
0 1 2 3 4 5 6 7 8 9 A B
FDC Parallel UART A UART B なし KBC CIR Game,
MIDI,
GPIO1
GPIO2,
WDT
GPIO3,
VSB
ACPI HW
Monitor
CR02ソフトウェアリセット?
CR07論理デバイス切り替え
CR20Device ID = 0x52 (RO)
CR21Device Revision (RO)
CR30 論理デバイスアクティベーション。 指定ビットを立てるとこの論理デバイスが有効になる。
CR40
:
CRFF
論理デバイス設定レジスタ。 各論理デバイスごとに異なる。

CR00 〜 CR2F まではグローバルレジスタで、たぶん現在選択中の論理デバイス に関係なく参照できる。 上表には4つしか書いてないけど他にもある。 CR30 〜 CR3F までは各論理デバイスごとの制御レジスタ。 といっても全員 CR30 に Enable ビットがあるだけ。 CR40 〜 CRFF までが各論理デバイスごとの設定レジスタで、 当然各論理デバイスごとに異なる。

例えば UART A で遊ぶために論理デバイス 2 に切り替えるには

CR07 ← 0x02
と書き込めばよい。I/O レベルでいうと
EFIR ← 0x07
EFDR ← 0x02
ね。
ポート21番 (標準の FTP ポート) に対して EPRT, EPSV を発行すると WindowsXP が即死する。他のポートなら大丈夫。うーん。

2006/12/05 (火)
永井さんの日記より。 フリースケール、68K/ColdFireアプリのコンテストを開催 (PC Watch)。

CPU 命令はそのまま実行、I/O アクセスを フラッシュ ROM に入れた XM6 がソフトウェアエミュレートすると きっと素敵な感じ。誰か作ってくれたら、このキット 10万でも買うかなあ。 それはさておき、 NetBSD を動かしてみようキットとして遊んでみたいかも。 でも自分だと NetBSD が動くまでには 2年くらいかかりそう。 でもってその間にエロい人が 1ヶ月くらいで動かしちゃいそうだけど。


2006/12/07 (木)
トムとジェリーに出てくる「あの」チーズは エメンタールチーズというらしい。 「トムとジェリーに出てくるあのチーズ」でみんな頭に同じものが 浮かぶところがなんか面白い。
1chipMSX はすでに予約が締め切られてて発送開始してたりするのね。 6月頃の展示会だったか何かでカタログを貰ってその時は何も決まって なくて、ほんまに生産するかどうかも分からなくて、そのまましばらく 忘れてて今日になって知った感じ。 しかも当時は MSX1 の予定だったのが MSX2 になっとるし。 MSX1 だといろいろ微妙だけど MSX2 だとそこそこ使い道があるよな。
gcc で -O2 つけて最適化すると memcmp() など一部の関数が gcc のビルトイン関数でインライン展開される。 NetBSD/i386 上の gcc 3.3.3 がインライン展開したアセンブリソースは cmpsb (バイト比較) 命令を使って書いてあるけど、 -O2 を指定しない場合に普通にリンクされる NetBSD/i386 標準ライブラリの memcmp() は cmpsl (ロングワード比較) 命令を使って書いてあるので、 -O2 を付けずにコンパイルした memcmp() のほうが 3倍速い (実測値)。 で調べてみたら -fno-builtin ていうオプションが用意されてて、 この話はしっかり FAQ 並みにベタな話なのね。

OS の標準ライブラリが遅くてしょぼければ gcc 様のビルトイン関数の ほうがイイヨーって話なんだろうけど、NetBSD/i386 だと memcmp() は 共有ライブラリの中でアセンブリでばりばりに書かれてるから gcc ビルトインの memcmp() には速度メリットもサイズメリットもなさげかなあ。


2006/12/08 (金)
あれ、NetBSD (3.0) ってば、i386 はアセンブリで書いた 爆速 memcmp() を libc に持ってるのに、 share/mk/sys.mk で (arch によるけど少なくとも i386 なんかは) もれなく CFLAGS=-O2 って書いてあるので、 普段は絶対に gcc がビルトイン memcmp() をインライン展開しちゃう 気がしたりしなかったりするんだけど、なんか間違えてるんかしら。

2006/12/10 (日)
いいとも増刊号に出てた斉藤舞子が誰だか分からないくらい げっそりしてた。どしたんじゃろ。

2006/12/11 (月)
今日の TODAY。(「今日の TODAY」ってのもなんかおかしいけど)
あと6日で 福田 明日香 さんの22回目の誕生日です。
一週間後は 安藤 美姫 さんの19回目の誕生日です。
うっ、安藤美姫より福田明日香のほうが 3つも上なのか…。 福田明日香は永遠に 13歳だなあ。
ちょっと前の新聞の投書欄に「空港の発券周りが全部機械化されてて、 係の人に尋ねても機械でやってくださいと言われて こっちは子連れだっつーのに機械のところまで歩かされた、 合理化のためとは言えなんだかなあ」みたいな (かなり要約) 投書があった。 確か32〜33歳女。

あのさあ、どこの空港のどこの航空会社か知らないけど、 空港でそんなこと言ってたら JR なんか絶対乗れねーぞ、お前。 空港の係員は完全マニュアル対応で機械的だから不快に感じることも あるだろうけど、あれは言葉をかえるとてきぱきしてると言うんだよ。 みどりの窓口のおっさんなんか見てみろ。 対応が卑屈で非人道的だから。日勤教育の成果がよく出てるよ。 切符買うだけなのに窓口で喧嘩になった友人知人から聞いた 体験談を思い出すだけでもはらわたが煮えくり返りそう。


2006/12/12 (火)
ドラクエ9、来年 DS で発売予定 _|‾|○。 DQ9 が出たらプレステ3 を買おうと思ってたのに…。 DS を買うのはなんか屈辱的。
1chipMSX、一般発売を開始したらしいので早速買ってみる。

2006/12/15 (金)
Windows でスレッドセーフ。 もともと UNIX 用に書いてた FTP クライアントでは慣れ親しんでいる strtok_r(3) を使っていたが、Windows の開発環境のコンパイラは strtok_r() なぞないとおっしゃるので、その時はとりあえず コンパイルを通すために、スレッドセーフでなくなるのは 承知の上で strtok() に変更してコンパイルした。 今日になって重い腰を上げて、strtok() をやめて別の方法で 書き直してみた。

で、その後、他の関数のスレッドセーフティについて調べてたら Windows では strtok() もスレッドセーフだとか…。 へー、そうなのか…。まあ strtok() 使ってた時よりもコードが きれいになったからいいけど。

W83627F/HF の親戚で W83627G/HG ってのがあるけど G がつく方は単に RoHS 対応ってだけらしい。

2006/12/16 (土)
NetBSD/zaurus が OpenBSD からポーティングされたっぽい。
1chipMSX が届いた。早っ。
しばらく commit してない気がしてたらもう1年以上も commit して なかったので、英作文ちう。

2006/12/18 (月)
朝、ポストに投函しようと思ってたものがあったのに忘れてた。 午後、会社の非技術系の先輩から聞かれた技術ネタの質問に 間違えた回答をする。 帰りに、朝投函し忘れたやつをいつものポストに入れたら そいつは年賀状用の口だった。いつも通勤途中にあって使ってるそのポストは 2口のポストで片方が「普通郵便」、もう片方が「大型/国際」と なってる奴なんだけどこの時期なので「年賀状」と「その他」っていう 分類に変わってた。そりゃないよ…。 まあどうみても年賀状には見えない封筒だから、さすがに気付いて 普通郵便で扱ってくれるといいな…。 さらに、駅の券売機で値段は同じで逆方向の切符を買ってしまい 窓口で交換してもらう。 家に帰って晩飯の際、お茶を入れようとしてポットのボタンを押しながら わき見してたら急須からお湯が溢れてた。 うーん、1日中だめだめ。

2006/12/21 (木)
NetBSD 3.0 以降の libutil にある sockaddr_snprintf(3) は、 sockaddr 構造体の中身をアドレスファミリごとによしなに表示してくれる。 とは言うものの AF_LINK のアドレスを 01:02:03:04:05:06 形式 (コロン区切り) ではなく 01.02.03.04.05.06 形式 (ドット区切り) で表示してくれるので個人的にはいまいち嬉しくない。まあこれは 好みの問題だから別にいいけど。 更に IPv6 リンクローカルアドレスもインタフェース番号が埋め込まれた KAME 形式のまま表示されるのでこれは結構悲しい。 あと、フォーマットも微妙な書式ばっかりだしなあ。 %f はアドレスファミリを数値で表示するんだけど、 数値で表示するんならアドレスファミリに関係なく常に
snprintf(dst, dstsize, "%d", sa->sa_family);
で出来ちゃうんだから、別にいらないよなあ。どうせやるんなら "AF_INET" とか "AF_LINK" とかいう文字で表示して くれるくらいじゃないと、ちょっと使い道ないなあ。
libutil ついでにもう一個。カーネルの中でよく使う bitmask_snprintf(9) は ユーザランドからは使えなくて、ユーザランドで同じことをするのが libutil の snprintb(3)。

2006/12/22 (金)
家に気球が降りてきた。
この辺は毎年、冬の特に寒い晴天の日の朝には気球が飛んでいるのはよく 見掛ける。近くにある広島大の駐車場で気球が今まさに地面から離れて 浮いているところに遭遇したこともあるので、 気球を見ること自体は珍しくない。

でもさすがに近くに降りてくることは珍しい。 前回は 10年くらい前、学生の頃、裏の家の田んぼに降りてきたことがあった。 今回はうちの敷地。

自宅ビニールハウス大公開 :-)

地上班らしき人たちもやってきたところの様子。 ちなみにアスファルトで舗装されてるように見えるところは 公道ではなくて敷地内に訳あって舗装がしてあるだけ。
だいぶんしぼんできた。
この写真では見えないけど、後ろ(気球の下にあたる方向) から2人か3人 がかりで、気球を徐々にくるみながら中の空気を前 (上にあたる方向) の穴 から吐き出させる感じで畳むみたい。

手前に写ってるのは弟。

気球って夢があって素敵な乗り物だからということで何でも許されてると 勘違いしてるのか知らないけど、 ゴンドラが燃えてて不時着したとか言うのなら事故ということで まあ話は別だが、 そうじゃなしに事前の連絡もなく居住者の意図に関係なく 例えそれが空からとは言え 人ん家の敷地に勝手に入ってきたら れっきとした「住居侵入罪」な。 そのくらい勉強してから気球に乗れよ。 それどころか、 地上班も当り前のように人ん家の庭を通り抜けて敷地内に入ってきたけど、 気球を追っかけてたらどこ入っても許されるわけじゃないぞ、 勘違いするなよ。
このあと出社のため駅に向かってたら、離合も困難な田舎の一本道で、 別の気球が田んぼに降りててワゴン車にゴンドラを積み込もうとしている ところだった。 道路のあぜ道側にゴンドラ、もう片側にワゴン車がとめてあったので、その 間を通り抜けないといけないわけだが、 両サイドミラーとゴンドラ、ワゴン車との 間はたぶん 5cm ないくらいで、朝からイライラ棒状態。

2つも近くに降りたってことは風の影響なのか知らないけど、 夢のある乗り物の下の現実は割りと迷惑極まりない。

ちなみに気球は航空関係法では浮遊物になるそうな。 動力がないからってことみたい。 航空法以外のところでは自転車相当になるとか書いてあったな。 人が乗るもので動力がないからってことか?
そういえば数日前の報道ステーションでも、原動機付きの パラグライダーに乗って宮島を低空から撮影するやつをやってたな。 あのシリーズは何回か見たことあって、たぶん世間には好評なんだろうけど どうも違和感がある。

普通のパラグライダーは風を読んで風に乗って滑空するものなので、 技術とお金が必要なわりには割りと単に自己満足的なもののような気がするし、 風があって滑空できて安全に着地できる場所と言えば必然的に 場所も限られることから、必然的に人に迷惑を掛ける可能性も低くなるし、 所詮人力程度で滑空してるだけなのでそれは当然構わない。

しかしそれに原動機をつけて自分の意志で飛び続けるのは話は別だと思う。 エンジンのっけて空飛んでたらどう考えても一人乗りの航空機なんだけど、 日本の法律では航空機に該当しないため免許は不要とのこと (海外では航空機に該当する国もあるらしい)。 しかし免許が不要だからと言って勝手に空を飛んでいいかどうかは話が別だよな。 なぜ一個人が誰の許可もなく民家の上空を飛んで(通過して)いるのか、 なぜ一個人が誰の許可もなく民家を上空からカメラで撮影しているのかとか。 写真家だったらどこへ入って何を撮ってもいいと勘違いしてるのか 知らないけど、法律は守れよ。 つーか法律以前に自分のしてることがおかしいとは思わないのかしら。

あ、法律は守ってるな。航空法には該当しない訳だから。 民法だから「お前、うちの上空を無断で通過しただろう」つって 民事裁判起こされない限りセーフってわけか。 いやいや、民事裁判されなかったら何やってもいいってことじゃないだろう?

2006/12/23 (土)
地元の友達と韓国焼肉。 韓国人の一家がやってるのか知らないけど、店員さんは 注文をとる時など客と喋る時は日本語で、 それをバックエンドに伝える時など 店員同士で喋る時は(日本語も混ざるけどほとんど) 韓国語。 同じ伝送路上で音声が言語分割多重してあるから混線しないね、とか ちょっと考えて面白かった。

2006/12/24 (日)
友人の結婚式。料理ウマー。
HDD レコーダ (東芝 RD-XS46) が予約録画に入ろうとした瞬間に フリーズした…。 本体の電源ボタンすら効かないので仕方なくコンセントをぶち抜いたが、 今回はまだ録画に入ってなかったためか、データは全部無事だった。 よかった、よかった。
しかし 恐いなあ。ついつい HDD に録りっ放しで しばらく DVD にバックアップとってなかったからなあ。 しかしあれか、東芝のは2年ごとにフリーズする仕組みになっとるんかなあ。 今週は忙しいから年末休暇までもう1週間無事に持ってくれるかなあ。

2006/12/25 (月)
NetBSD。訳あって ISA バスにぶらさがってるあるデバイスの プローブよりも先に、 同じ ISA バスにぶらさがっている別のデバイスのほうを プローブしたいことがあって、調査ちう。
ジェームス・ブラウン死去 orz。 ジェームス・ブラウンと言えば「フグよ! 結構。」(そっち?)

2006/12/26 (火)
PCI バスのようにバスが自分で子デバイスの有無を判別できる やつ (direct configuration っていうらしい)は、 自分で見つけた順にプローブするが、 ISA バスのようにそのような機構をもたないバスの場合 (indirect configuration) は compile/XXX/ioconf.c の struct cfdata cfdata[] に 登録されている順にプローブに行く。 ので、とりあえずなら ioconf.c を直接書き換えてコンパイルした カーネルで上げてみればプローブ順が変わるのが分かる。 あ、その構造体のすぐ下にある cfroots[] ってのが cfdata[] 中の 何番目がルートデバイスかっていうのをインデックスで持っているので そこもずらす必要があるかも。

で、それはいいんだけど、ioconf.c に書き込まれる順番は どうやったら変更できるんだろう。

sys/dev/isa/isa.c の isaattach() に ISA バスでも direct configuration (っぽいこと?) をするために、 knowndevs があればそれを先にコンフィグしてるっぽいんだけど、 knowndevs を登録する部分が XXX になってて実装されてない。 ふみゅー。
内輪の送別会兼忘年会で五エ門。ウマー。

2006/12/27 (水)
knowndevs に登録してみたらもちろん他のデバイスよりも 先にプローブされるんだけど、knowndevs は当然 known device を プローブすることが目的なので、 今回のようにどこの番地にあるかプローブしないと分からない状況には そぐわないし、そもそも先にプローブしたいという点では全然 本質的に違うしなあ。
やっぱりデバイスの初期化が順序に依存するのはよくないか。
今日がすでに仕事納めという気楽な友人に誘われてまたメイドカフェ。

2006/12/28 (木)
結局ちょっと本質とは違うけど knowndevs をうまく使うことで 今回はよしとしよう。
会社の (オフィシャル)送別会兼忘年会。タコ天ウマー。

2006/12/29 (金)
今日までたっぷり仕事 orz。 その後は先輩と焼肉ウマー。しかしここんところ続くな。

2006/12/30 (土)
今日から短い年末年始休暇。 誰か早く休日の振り替えの理不尽さについて国会で検討してくれ。
スーツをクリーニングに出しにいったついでに近くの吉野家で昼飯。 昼時だけ牛丼を再開してるようで、吉野家で牛丼を頼んだのは 牛肉輸入停止後初めてだな。 でも何年かぶりだったのでつゆだくっていうの忘れてた。
先週買ってきてたブロードバンドルータをようやく設置。 今まで使ってたのは最初に ADSL にした時に買ってきたやつで I-O DATA の NP-BBRsx。とにかく自動再接続がほとんど出来ないので 外からおうちに入ることがよくある私にとってはかなりのネック。 ということで数年前から OpenBlockSS を使ってたんだけど 今年の夏の雷で壊れちゃったので、 臨時で復活させてたのよね。 でもやっぱり再接続しないからいい加減見切ることにした。 で、先週たまたま電器屋さんで見てたら 今どきただのブロードバンドルータなんて3000〜4000円くらいで売ってんのね。 ってことで買ってきてみたのが BUFFALO BBR-4MG。 設定したらすぐに繋がったのでさすが今どきのブロードバンドルータ。 さてこれからお手並拝見と。
ついでに、こっちも先々週から届いてたんだけど KDDI の開通連絡が 来たので新しいルータの接続先は KDDI にしてみる。 ソフトバンク ODN さようなら。
HDD レコーダの中に残っている編集済みのものを全部 DVD に バックアップ完了。間に合ってよかった。 つーか前回 HDD が飛んだ (2005/01/03) のは、バックアップをとろうと思って 編集(HDD内コピー) してた時だったので それじゃ恐くて編集も出来ないって感じなんだけどな。
10年前の MD に今ごろ曲名ラベルを作成中。 だいたい CD 1麻衣まるごとダビングなんてことは滅多にしなくて、 徐々に MD が埋まっていく感じの使い方をするほうなので 背中に曲名を書くのは一番最後に1本の MD が完全に 埋まってからになるんだけど、 その頃にはもう面倒くさくなっているのと、 そういう使い方をしてるので だいたい何にどれが入ってるか覚えてたんだけど、 最近もう無理。 てことで延々曲を聞いては Google で正確な曲名を検索して 下書きしておいて、1本全部終わったら清書するの繰り返し。

2006/12/31 (日)
年賀状書き。早くこの文化やめようよ。
フィギュアスケート 浅田真央が今年の SP (ショートプログラム) で使ってた曲は 「チャルダッシュ」(チャールダッシュ) という曲で、 本来はマンドリンの曲らしい。 浅田真央にはあんまり興味ないけど、この曲はその昔、10数年前に NHK でやってたエドサリバンショーの中でバイオリンの早弾き芸 (というか顔芸に近かったけど) で 使われていた曲なので、それが知りたかっただけ。

井崎のホームページへ戻る
isaki@NetBSD.org