某日記

(前期)

平成14年12月1日(日曜日)

師走

早いよ。肛門屁の出口光陰矢の如し。

users-jp

users-jp は、当初の理念や目的はどうあれ、 現実はもはや初心者の唯一の駆け込み寺になってるのは事実だし、 変な人がいるのも事実なので、いまさらこれをどうこうするというのは、 考えても疲れるだけで大して意味がない。

もう 5 年くらい前からこういうことがうだうだ言われてたけど、 それから偉い人々がうだうだ言ってて状況が変わったか、というと、 結局全然変わってないんで、これはもう半ば definitive に 『そういうもの』なのよ。 beginners-jp とか作っても、結局は users-jp が分裂しただけみたいな ことにしかならなかったし(まあ最初からわかってたことだけど)。 奇特な人が users-jp で初心者の相手をするのはいいことだと思うし、 逆に初心者が変な人の毒牙にかかろうが、 これがきっかけでフレームが起ころうが、 それが users-jp なのでしょうがないんじゃないのかな、と思う。

tech-jp

で、私はそういうスタンスなので、無責任な言い方をしてしまえば、 今の users-jp がどうなろうと割と知ったこっちゃない。 しかしながら、 (周囲の日記あたりで話題になってることとは微妙に別の話になるものの) いいきっかけなので主張しておこうというのが一昨日の話。 つまり、技術的な話が users-jp に埋もれられると(少なくとも私は)困るので、 そういうのは tech-jp でやってほしいなぁ、ということなのですな。

もちろん、他人がどこの ML に何を投げるかをとやかくいうのは、 ある意味教えてクンと同じくらい僭越な話なので、IMHO と言ってるわけですな。 本来の理念からすれば、tech-jp という ML があること自体おかしくて、 全部 users-jp でやるべきなのかもしれないけど、 現実的にはそうも言ってられない。 そういう理念を貫きたい人には無理にお願いしようとは思わないし、 いちいち users-jp に出ていってまで主張しようとも思わないんだけど、 少なくともここ読んでる人で、 users-jp に技術ネタが埋もれられると困るという考えに賛同してくれる人は、 技術的話題には努めて tech-jp を使うよう、僭越ながら重ねてお願いしますにゃ。

常駐

こんなソフトを待っていた!!

秋葉でバラ IV 80G を買ってきたのだが、 家に帰ってきて机の奥のほうをふと見ると、 買って忘れられているバラ IV 40G 未開封品が見つかる罠。

平成14年12月2日(月曜日)

ねむいでつ。

マンガ読みながら通勤。ヤンマガの予告に頭を抱える:

「12月23日妹増刊、『イモ増』発売決定!!」
世の「妹ブーム」(?)に乗って、ヤングマガジン連載中の『妹は思春期』と 姉妹紙アッパーズの『全日本妹選手権!!』のカップリング総集編。 藤沢とおる、沙村広明、西本英雄他豪華ゲストも何か描きます。
なんでつか、この濃ゆいカップリングは。

沙村広明氏には卍さんの妹をぜひ :D~~~~

せっかくなのでキャプりました:

link local address for IPv4

IPv4 のリンクローカルアドレスブロック 。 確か WinXP が、何もネットワーク設定せずに ether 線つなぐと、 その辺のアドレスに手当たり次第 ping 打ちまくって自動的に空きアドレスを 探してくれたような。正直うざったい。

もともとグローバルアドレスゾーンなので、 放っておくと外に出てっちゃうのよねぇ。

関連 。 UPnP にしろ zeroconf / ランデブーにしろ、 インフラでは dhcp とか v4 リンクローカルとかを使うのですにゃ。

USB ホスト CF

昨日の夜に irc あたりで話題になってた CF な USB ホストアダプタ 。 なんでこれを話題にするかというと、 PocketPC で使えるなんてことには全く興味が無くて、 PCI/CardBus じゃないホストコントローラが非常に珍しいからなのですな。

これがあれば昔の PCMCIA しかないマシンで遊べそうなんだけど、 チップがわからないのと値段が高いのがたまにきず。 ISA とか PCMCIA で使えるチップというと Cypress の 組み込み用の奴(元 ScanLogic 製)くらいしかないんで、 これなら slhci ドライバを改造すれば NetBSD で使えそうな予感。

メモ

MOTOROLA Microcontrollers

いまだに 68HC05 ファミリとか現役なんだね。6809 みたいな 単体 8bit プロセッサはさすがに作ってないみたいだけど、 68HC05 は統合型プロセッサなので、まだ組み込みで使い出があるのかもしれず。

平成14年12月3日(火曜日)

読み込み

読めないレジスタを読んでたりして 。 あと、ワード以上はアラインメントを揃えてないと読み書きできない デバイスとか、 たまーにバイトごとに読み書きしないと動かないデバイスとかありますね。

タバコ

どうも最近 JT がなりふり構ってないように見えるのう。

「情報は武器」リンク。

ちなみに、日本政府でのタバコの管轄は基本的に財務省。 これと農水省系のタバコ農家閥が結びついてる。 このへんの巨大な利権があるから、日本政府は全く役たたずなのも頷ける。 一方で、この件に関して厚生労働省の動きが全く目立たないのは、 基本的に管轄外なので大したことをしてないんですな。 あと、やっぱり旧厚生省が政治の力学上弱い立場なので、 大したことができないというのもあるだろうにゃ。 縦割り行政の弊害というのは、こういう弱いところを見てるとよくわかる。

キャッチ

すげー

妄想:

……そしてわたしは、彼のその包容力のある大きな胸に飛びこんだの。
ちょっと驚いたような、それでいて恥ずかしそうな顔をしてから、 両手を広げて待ち構える彼。
わたしは心の中で、こう叫んだの。
「わたしのすべてを受け取って!」 ……キャッ、恥ずかしい♥
<悪のりしすぎです。

HESSLA

普及しねーだろ 。 というのは、GPL なソフトウェアと組み合わせられないから。 GPL とデュアルライセンスにしてしまったら、そもそも意味がなくなるしね。

gcc-ssp

OpenBSD の標準の GCC が ssp 付きになった 模様

IBM の ssp パッチ

アレ

オタク大賞レポート 。 さとみん登場。

gcc-pch

OpenDarwin の anoncvs から落として NetBSD で build してみたが、 --load-pch しようとすると、

cc1plus: PFE: unable allocate load area at or below assumed load address
compilation terminated.
などと言われて失敗。中身見てないんで仕組みがよくわからんのだが、 emacs みたいなダンプとかしてますかね。

PCI

せっかくなので、NetBSD の PCI の config 寄りな部分の話を書いてみる。 config(9) の知識がないとさっぱりわからないと思います。

config という観点から NetBSD の PCI の MI な部分をみると、 大きく分けて次の 3 つの要素から成ります:

  1. pcibus インターフェース属性
  2. pci(4) デバイス
  3. 各 PCI チップのドライバ
ここで、これら 3 つの要素は次のような関係を持っています:
  1. pci(4) は、pcibus インターフェース属性にのみ attach できる。 また、pcibus インターフェース属性に直接 attach するのは pci(4) のみである (config フレームワーク的には pci(4) 以外のものをぶら下げることも 可能だが、実用的な観点からは意味がない。 )
  2. pci(4) はインターフェースを提供しているデバイスであり、 各 PCI チップのドライバは pci(4) が提供しているインターフェースに ぶらさがることができる。
これらの関係は、具体的には files に次のような形で 記述されています(簡略化しています):

結局のところ、物理的な「PCI バス」を表現しているのは pci(4) です。 より精密な解釈をするのならば「pci(4) はバスドライバであり、 pci(4) が提供しているインターフェースが PCI バスそのものである」 という見方になるのでしょう。 じゃあ pcibus の立場は何かというと、これは 「あるデバイスが子供として pci(4) (バスドライバおよびバス)を 生やしている」 という可能性みたいなものを示しています。なんでこんなややこしいことに なってるのかというのを設計者の気持ちになって推測すると、 これは PCI のコンフィグレーションの機構に起因しているのだと思いますし、 非常に見事な分割なんですが、 そのへんの細かいことはとりあえず置いておいて次に進みます。 

どんなデバイスが pcibus 属性を持っているかというと、 これは半分くらいはマシン依存の話になります。 なんでかというと、PCI 系のハードウェア実装に依存しているからですな。 一般的な i386 アーキテクチャの場合、次のものが pcibus 属性を持っています:

  1. mainbus ドライバ
  2. pchb ドライバ(PCI ホストハブ)
  3. ppb ドライバ(PCI-PCI ブリッジ)
ppb はいいとして、 ここで mainbus と pchb については注意が必要です。 CPU を根元として見た場合、 一見、システムの一番 CPU に近い PCI バスはすべて pchb にぶら下がるような 気がしますし、実際のハードウェアはそうなっていますが、 NetBSD における抽象化では、 PCI の bus 番号 0 のバスだけは mainbus ドライバから生え、 pchb はこの pci バスから生えているように見えます。 これは半分は config(9) の都合であり、 半分は pchb のコンフィグレーションレジスタの内容を素直に解釈した結果で、 つまりは PCI のコンフィグレーションの機構に起因しているといえます。

普通の pchb は PCI バスが一本しか生えていないので、 この場合 NetBSD 的には pchb は pci0 から生えた単なる飾りのように見えます。 たとえば、うちのメインマシンの dmesg はつぎのようになってます(抜粋):

pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Silicon Integrated System SiS 730 Host Bridge (rev. 0x02)
ServerWorks のサーバ用 pchb みたいに 4 本 PCI バスが生えてるような奴だと、 最初の 1 本は mainbus から生え、これに pchb がぶら下がり、 さらにここに、あたかも PCI-PCI ブリッジのように 3 本の PCI バスが 生えるような形になります。この場合、たぶん次のような dmesg になるでしょう:
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Hoge Hoge Host Bridge
pci1 at pchb0 bus 1
pci1: i/o space, memory space enabled
pci2 at pchb0 bus 2
pci2: i/o space, memory space enabled
pci3 at pchb0 bus 3
pci3: i/o space, memory space enabled

眠いのでとりあえず今日はここまで。つづくかも。つづかないかも。 なんかメモ書きの域を抜けてないような気もするけど、 PCI と newconfig の割と深い知識が必要なので、説明難しいのよ、ここ。

なお、普通にデバドラ書くためにはこんな知識はほとんど必要ありませんけど。 普通は放っておけば、 ブートの初期の段階で BIOS やら PCI フレームワークやらが 各デバイスのコンフィグレジスタにきっちりと必要な値を設定してくれるんで、 あとは probe と attach を半ば機械的に形式通りに書くことによって、 受け取りたい割り込みへの intr hook やら、 アクセスしたいリージョンに対する bus space handle やらを establish してやるだけ。

平成14年12月4日(水曜日)

ぷちむね。

流行語解説

14:13 現在のデータ 。 まだ補完予定。

平成14年12月5日(木曜日)

昨日

せっかくなので、HTML よりも記述が楽な形式の辞書ファイルから HTML ファイルを自動生成するようにしてみた。 worddic script。 一年ぶりくらいで ruby 触ったら文法忘れてたけど、 ちょっと触ってたら思い出した。やっぱり ruby は楽しいにゃ。

今回はクラス継承を使わない方向で実装してみた。 どうもやっぱり、クラスを継承して interface を strict bindinding する やりかただと、ちゃんとトップダウンに設計しないと動かないんだけども、 ちょっとしたプログラムでそれやろうとすると、設計だけで疲れちゃうんだよね。 ある程度までの規模のプログラムなら、 むしろクラス継承なんか使わないで by name な方法で lazy binding して しまったほうが楽よねぇ。C++ なんかだと by name な方法はコストが高いけど、 ruby だとクラス継承使おうが使うまいがコストはほとんど変わらない気がするし、 あえてクラスの親子関係を厳密に構築したところで、 is_a? メソッドが使えるくらいのメリットしかないのよね。

worddic スクリプトでいうと、たとえば DefaultLineFormatter と CustomLineFormatter は、 継承関係という観点からすれば全く関係ないクラスだけども (もちろん Object クラス以下は共有しとるけどな)、 インターフェースはちゃんと Lazy に(心の中で)共有してるし、 相互に交換可能なフックとして動作してる。 クラス継承なんかしなくても正しくオブジェクト指向してると思うにゃ。

今日もぷちむね。

夕方

ひもろぎ(1)かってきた。

夜中

某氏の協力により、 あの AV を鑑賞。かなりバカだ。

キャスバル兄さんがおっしゃるに、 「私に面白い趣向がある」。 で、自分の妹のシャツの胸のところをハサミで 小さく丸く切り抜くやいなや、キャスバル兄さん、勝ち誇ったように

ふははははははは、
連邦軍の女兵士も、
乳首だけ出されては形なしだな!
(部下に向かって)乳首だけを揉むんだ!!!
とか大声で言うのやめてください :D~~~~~~

笑い死にしそうでつ。だめだもうだめだ……

平成14年12月6日(金曜日)

ううむ

そんなの微妙すぎー

夕方

ひきつづき三次元グラフィックスでお遊び(注:仕事でつ)。 これで H/W 3D アクセラレーションが効くようになるわけだが、 細かいところを抜きにすれば、なんかあっさりと動くし。 まあ、サンプル実装も単なる stub だからなぁ。 i845 でも割と速いな。フォグとかその手の視覚効果やってると、 速度が 100 倍くらい違うなやっぱり。

「やってもできるかどうかわかんない」レベルから、 「まあ、やればそのうちできる」レベルになったので一安心。

平成14年12月8日(日曜日)

今日のバナー

ワラタ

平成14年12月9日(月曜日)

おととい

有料化してから初めて RO をやる。やっぱり iris つながらんので baldur に キャラ作った。剣士にして、下水 2F でゴキ囲まれまくりでも余裕なくらいに 育てる。

起きたら頭が活字だった。 いや、正確には「気づくと頭が活字だった」かもしれないにゃ。

話は昨日まで遡る。川崎駅近くの沖縄料理居酒屋でしこたま泡盛呑んで食って 江洲さんに家まで送ってもらい、 家では夕飯のお好み焼きをしこたま食って自室に戻った。 そうしたら、ちょうど「世界遺産」が始まったのでそのまま布団かぶって 見てたわけだ。 ごぞんじの方はごぞんじのとおり、「世界遺産」はあの寺尾聡の ぼそぼそとした語り口が魅力の一つなのだが、 酔っぱらいにあの語り口は最上の睡眠薬だったりする。

……

で、何かザーザー音がするので見てみると、 いつのまにかテレビが砂嵐になっている。 時計を見ると 5:00 だった。当然電気も点けっぱなしで寝てたのね。

「酔い覚めの水、下戸しらず」なんていう川柳があるが、 あれは単なる渇望感の充足であって、 ニコ中と同じで誉められたもんじゃないな、 とか他愛もないことを考えつつ、冷蔵庫の水を一気に三杯ほど飲み干す。 すると、これが呼び水になって頭と体が動きだしたようで、 すっかり目が覚めてしまった。

さて、時計を見ると、まだ 5:05 である。起きるには早すぎるので 自室に戻ってもう一度布団をかぶる。眠れない。 外から、「わー、雪だー」などとはしゃぐ妹の声が聞こえてきたが、 道理で寒いわけだ。寒いので相手にせず、布団をかぶる。眠れない。

こういうときは、マンガでも読むに限るので手近にあったのを引っ張り出す。 少女漫画。こないだ本棚を整理したとき、下のほうに少女漫画を移したので どれを取っても少女漫画だ。

さて、雪降りまくりでマンガ読みまくり、 その段にあった適当なやつを n 冊(n は自然数)ほど読んで、 頭がすっかり少女漫画になっていた。 ただしなぜか下ネタ系で充足されたわけだが、 それはいいとして一向に眠くならん。 そこでちょっと考えてみた。何で眠れないかだ。そりゃそうだ、 休みで十分寝溜めした上に、一度 5 時間以上寝てれば眠くもならん。 いつのまにか 9:00 になっていたりしちゃったりなんかして。

外からはバスがキャラキャラとチェーンの音をきしませながら 走り去っていく音が聞こえ、近くの小学校からは、 「校庭が荒れるから雪遊びはしないように」というけちくさい アナウンスが流れていたが、ようするに世の中は十分に起きているのであるな。 でも、ここまで来たら意地でも寝てやるのだ。

マンガはあらかた読み尽くした --- いや本当はさっき読んだ数の 10 倍くらいの マンガがあるから読み尽くしてはいないんだけど --- ので、 今度は積ん読してあった文庫本を取り出す。椎名誠のエッセイ集だ。 内容自体はだいぶ前のものだが、文庫本として出たのはつい最近のやつで、 他愛もないがどことなく笑えるその文章を読み進める。でも眠れない。

さて、そうやって最後まで読み進め、「あとがきに代えて」や解説、 奥付、そしてカバーの「椎名誠の本」まで一字一句逃さず読んだが、 眠れない。眠れない。眠れない……

「……そこで突然、目覚まし時計のベルが鳴った。ふっと目を覚まし、 ベルを止める。10:50 。いつも起きる時間だ。 あたりを見回すと、テレビが煌々とあたりを照らし、 それは昨日と変わらないチャンネルを映し出していた。 そう、これは全部夢だったのだ」 とかいう風になれば、つまらないながらもオチも付くというものなのだが、 全くそんなことはなくてオチもなく単に眠れずに件の 10:50 になってしまい、 最後に文庫本を読んだ結果として頭が活字になってた、 というだけの話なのであったにょ。

平成14年12月10日(火曜日)

雪解けとったな。

謎スクリーンショット

現実逃避:

いろいろ足りんのでいろいろ出てないけど、そろそろ飽きたので勘弁(ぉ

とかいいつつちょっと進歩:

さらに進歩:

サーバ側に G 言語というスクリプト言語風のもので書かれた マイクロコードを送り込んで、これで UI とか実装するのが GMW のウリ (ちなみに、背景の網目模様も G 言語で書いてるのよん)。 あと、X と違って、ディスプレイサーバにガーベージコレクタがあるので メモリを割と好き勝手にできる。

ただ、今の目で見ると、実装にあまりにも古すぎる部分が多いので、 これを使って今さら何かできるか、というと何もできないとは思う。 GMW を現代風に作りなおしたら面白いかもしれないね。

さらに進歩: