某日記

(中期)

平成13年5月11日(金曜日)

時計止まってて大幅遅刻。鬱。

エミュ

エミュレータ 。 何が「エミュレータ」なのか、という定義をしないといけませんな。

xbiff

こんなスクリプト:


wdc driver for DC

遅いけど動くらしい 。 恐るべし名古屋方面。

平成13年5月12日(土曜日)

ううむ

NetBSD/dreamcast のビルド。ソースに手を加えず、 手を替え品を替えいろいろやってみるも、 egcs の shel--netbsdcoff だと ENTRY(x) で .type 擬似命令の使い方に文句をつけられるし、 shel--netbsdelf だと bin/cat のリンクで名前解決ができない。

しゃあないから sys/arch/sh3/include/asm.h を直して coff で 文句言われないようにした。 ネイティブ egcs と、groff のコンパイルにも失敗するので、コメントアウト。

とりあえずブート成功:


しかし、rm とかするとことごとく panic するぞ。 syslog は起動するとこける:

tlb_handler: va 0x0, spc 0x8c0d2836, exptype 0x40 (syslogd)
Stopped in pid 177 (syslogd) at 0x8c0ce3a2:     mov     r14, r15

平成13年5月13日(日曜日)

夕方

今日は毎年恒例の、小鳥週間に焼き鳥を食べる会である。 もう 3 回目なのね。 告知が遅かったせいか、人の集まりはあまりよろしくないのであった。

焼き鳥

うむ、当たりであった :D

いや、もともとこの会の正式名称は、 「小鳥週間に焼き鳥を食べながら日本酒を飲む会」なのだけども、 焼き鳥と日本酒が両立するお店というのはなかなかなくて、 3 年目にしてはじめてヒットしたというか。

一人頭 11000 円も飲んで食ってるけど、これは大満足の部類だな。

FTP と inetd

今日の話題でした 。 こがさん曰く、ftpd をどうするのか、と、 inetd をどうするのがいいのか、は頭が痛い問題ということですな。

NetBSD/Dreamcast

パニックの原因は、thorpej のポカミスであった模様。 よくあるリスト操作で、リストの次の要素のポインタを テンポラリ変数にとっておいてから切ったり貼ったりするのだが、 このテンポラリ変数に代入するのを忘れておった。

PS2 Linux Kit

すげー 、 オレも売りに出そうかな :D

そんなにしてまで 6/20 に欲しいのか。どうせまた追加分が出るだろうに。 まあ、あのバカ高いくせになんの役にもたたない AIBO が 飛ぶように売れた国だからな(藁)。

平成13年5月14日(月曜日)

停電だったので金曜日に shutdown したのだが、 そのときに sync 2 2 2 2 ... giving up したので、 -s 起動(苦笑)。

ついでに、3 月ごろの -current にアップデート。

ううむ

オープンソースは儲からないのか? 。 やっぱり、昔ながらのオープンソースビジネスモデルは GPL じゃなくて BSD ライセンスであり MIT ライセンスだったんだよな。 ぼちぼちとその良さを再認識した企業や人々が出はじめたわけだね。 最近は、GPL なソフトウェアが BSD ライセンスに転換する例も ぼちぼちと見られるので、好ましい傾向が広がっている感触があるな。

クイズ

C++ クイズ。次のコードは正しいコード? また、正しい場合は /* A */ 地点での a の値は? (1)NULL, (2)不定, (3)その他。 また、何故そうなっているかを述べよ。

typedef void *VoidPtr;
void foo()
{
	VoidPtr a;
	a = VoidPtr();
	/* A */
}

これ、「何故そうなってるのか」までちゃんと知らないと C++ でまともなプログラム組めないんだよな…。 例外中立/例外安全あたりといい、 C++ は知らないとプログラム組めない項目が多すぎるぞ。 しかも、そういうののほとんどは ARM 以降に出てきたものだったりして。

平成13年5月15日(火曜日)

FreeBSD-i18n

頭痛(ache)がしてきた…

libc/string/w* は locale insensitive なので、すぐにインポートできるな。

とりあえず手をつけた :D

しかし、なんでこー時間のない時に限ってこういうこと言い出すかな… FreeBSD で完結してくれよ…ぶつぶつ…

-current 環境作らんとな。

…やっぱり頭痛の種は ache だよ…。 わたしゃ ache を説得できる自信がないぞ。 どうも奴の言い分を聞いてると、 「触るな」と言われてるようにしか聞こえないんだが。

…一番無難なところでおさめるか。 とりあえずは、LC_CTYPE は触らない、ダイナミックローディングにしない、 rune を駆逐する(optional だけど、ache は消したがるでしょ、きっと)、 ISO C 1995 の機能を入れる、とするだけでも、 あと 5 年は幸せでしょ、きっと。あとは頼む>誰か。

でも、これって私がやる必要が全くないよな。 これ以上やるのなら、やっぱりある程度全権委任してもらわんと、 やってられん。 少なくとも、ache みたいなことを言う人がいるところでは、 これ以上何かをやるモチベーションが出ないな。

そうか、ja_JP.EUC の話題が出てから、もう 3 年になるか。

我々が 3 年ほど前に見て、「使えねー」って捨てた奴です :D

私は全く戦ってるつもりはないんですが 。 戦うことを放棄してる、ともいう。

あっとゆーまに これと同等になったぞ。

プリンタ

使用済みパスネットカードの裏を見ましょう :D

C++

おおむね正しいです 。 ただ、「なんでそうなってるのか」はどっちかというと 「なんで標準型には built-in constructor というものが存在するの?」 ということを訊いてるので、 これは「テンプレートで困らないように」だと思います。

平成13年5月16日(水曜日)

あさ

眠いがな。

NIS

ううむ、FreeBSD-current なマシンを立てたが、 どうしても ypbind がうまく動かん。

たばこ

日本政府がタバコ対策に消極的なのは税金のせいでしょ。 地方たばこ税が止められると困る自治体が多いからだろうなぁ。 たばこ税は国税地方税合わせて 2 兆円いかない程度で、 国税と地方税でだいたい半分くらいずつ。 国税の 1 %、都道府県税の 2%、市町村税の 4% 程度になる。

一方で、ある試算によると、 たばこが原因で年間 3 兆円の損害が出てる、という話もあるんだよな。 もちろん、これは国家財政に対する損害ではなくて、日本全体での話だが。

まあ、そろそろ法の網をかけてもいいんじゃないかのう。 たとえば、私が食い物屋に行くと、必ず禁煙席ってのは隅っこの どうでもいいようなところに申し訳程度にあるもんだが、 食い物屋でタバコを吸われることほど、周囲に迷惑なことはないんだよ。 まあ、飲み屋とかはしょうがないとしても。

まっとうなタバコ喫みなら、食い物屋では普通吸わんもんだが、 世の中まっとうな人間なんてほとんどいないから、 無神経にぷかぷかやってる人間は実に多い。 いや、ほとんど、というのは言い過ぎか。 それどころか、百歩譲ってそういう人は喫煙者全体の 5% としても、 いや、都心の標準的なハンバーガー店の混雑時の店内を 煙で満たすには十分な人数なんだよ、実は。 驚くには当たらない。5% 則: 「すべての問題は、全体の 5% で起こる」

よって、よく喫煙者はモラルの問題というのだけど、 実際には喫煙者のモラルで何とかなるようななまやさしい問題じゃない。 だって、一般的に言って、どんなにモラル教育しても、 インモラルな人間を全体の 5% 以下に下げることなんて不可能なんだもん。 喫煙者のモラルに対して非喫煙者はなんの期待もしてないし、 できないんですわ。

条例でも何でもいいから、食い物屋は禁煙席比率を全体の 2/3 以上にする、 っていう縛りを入れてもいいくらいだと思うぞ(効果のほどは別として)。 あるいは、ばるさんが言っていた、喫煙免許制もいいな。

平成13年5月17日(木曜日)

The NetBSD ICBM WhereTo

わはは 。 「どっかの OS は HOWTOなんてもんを持ってるけど、オレらには WhereTo ってのがあるぞ! キミが NetBSD developerの一人や二人を核爆弾で融かしたいと思ったら、 こいつはキミの ICBM (大陸間弾道弾)をちゃんと命中させるのに 使えると思うぞ :-)」

「ハッカーはジョークの王様」という奴で、 こんぐらいブラックなのがハッカーのジョークの面白さの一面なので、 「核で融かすとは何事か。日本の国民感情に配慮せい」 とか真面目にとらないように :-)

そうえば、日本の FreeBSD people は nuke のことを「銃殺」とか「爆破」とか言いますな :-) wordlist に追加しといてね>doc-jp の誰か。

FreeBSD-current

ううむ、どうも zsh の configure をすると、 named FIFO のチェックでブロックするな…。 昨日 NIS が動かなかった原因はこれか。

感情論

感情論 。 嫌煙家の立場でも同じことが言えて、 「喫煙家は何言っても『迫害されてる』(という感情論)を返してくる」 なのではないかのう。

建設的な話ができない人は相手にしちゃいけない、 っていうだけで、そういう人はどこにでもいる。 まあ、聞く耳持たないような人間でないと活動家になれないとは思うけど。 とかく活動家は、活動のための活動に走る傾向があるからのう。 それももっともな話で、つまりは扇動者の原則: 「自分の問題を解決するには、それを相手の問題にしてしまえ」

で、私は「嫌煙活動家でないけど単純に煙の害に悩んでる人間」 なのは確かだし、 「非喫煙者として現状は理想とかけ離れ過ぎてる」 のも確かだけど、その原因を喫煙者に求めようと思ってはいないし、 逆に言えば、そういう提起に対する問題原因を (政府も非喫煙者も、それどころか喫煙者自身さえも) 喫煙者に求め過ぎてるんじゃないかな。 5% 則によって、その原因は個々の喫煙者の意思ではどうすることも できないような、言ってしまえば自然法則とか天の采配とかいうものに 近いところに原因があると考えるべきなんだ、と言いたいわけ。

んで、どうすればいいか、といえば、 もっと天の采配に近いところで何とかしなきゃいけない、 ってのは極めて自然な結論だと思うな。だから、法の網になるわけですね。 まあ、比率はとりあえずどうでもいいよ。 まず線を引くのが重要でしょ。 ちなみに、「煙草を吸わないけど嫌いでもない人が決める」という方法論は、 全く平和になりません。なぜなら、その人は問題を共有してないからです。 経験的に、問題を共有してない人に問題解決を完全に委譲すると、 ろくなことにはなりません。

C++

コピーコンストラクタ 。 ぢゃあ、こんなクイズはどうかな: 次のプログラムはどういうふうに動くでしょう?


ちなみに、 コピー代入子とコピーコンストラクタの違いは、 次のプログラムを実行すると明確になるかな:


結局私の C++ に対する印象は、 「C++ のエキスパートでない限り C++ は使い物にならない」 だったりして。直感と反する部分が多すぎる。

アレ

ここ から これ 。 あはははは。 子供のときにこれやっておけば、少なくとも真性にはなりません :D。 子供のうちでないと、特に癒着なんかしてると、 それこそ手術しないと剥がせなくなるらしい。 ちなみに、仮性予防も、 「子供のころから根気よく open な状態(←ってなに?)にしておいて、 皮にクセをつけておく」 でござんす。あくまでも俗説ですが。

皮の害ってのはいくつかあって、 そのほとんどはろくでもないっちゃろくでもないんだが、例示すると:

  1. 本人が恥ずかしいと思えば恥ずかしい
  2. 明確な根拠は無いが、陰茎ガンの確率が上がると言われている
  3. 明確な根拠は無いが、早いと言われているので候
  4. 本人にはあまり問題がないのだが、相手に摩擦感がなくなるので、 そういうことに敏感な相手の不評をかう

…下品ですまぬ。

ニセ

今週のオレ的進捗の無さが危機的状況に。あう。

平成13年5月18日(金曜日)

絶賛死亡中

本業の個人的スケジューリングのミスと、 今日の夕方からの個人的用事によって非常に忙しい。

つーわけで DOM DHTML なんぞと戯れる。

コピーコンストラクタ

VC++ ってまともだったんだ :D 。 ちなみに、「funyu が表示されない」が正しい動作です。

struct A {
	A() { }
	template <typename T_>
	A(T_ const &) { cout << "funyu" << std::endl; }
};

C++ の仕様に、 「テンプレートコンストラクタはコピーコンストラクタにはならない」 と明記されてるので、上のクラスにはデフォルトコピーコンストラクタが 暗黙のうちに追加されて、次の文と(今回のクラスの動作上は)等価になります:

struct A {
	A() { }
	template <typename T_>
	A(T_ const &) { cout << "funyu" << std::endl; }
	A(A const &) { }
};

これは多分、 テンプレートコンストラクタをコピーコンストラクタにしてしまうと、 A の単純なバイトコピーができる状況でも非効率な処理をしないと いけない可能性が出てしまうからかのう。まぎらわしい。

ニセ

明日出社の危機である。

しかし、ECMAScript おもろいな。 お祈り(bless)こそしないものの、perl みたいなオブジェクト指向で遊べるぞ。

やっぱり間に合わず。明日出社せねば。

誤読

エッチ、しよ。しお・に・い・ち・ゃ・ん♪ 」 ブーーーー! 俺は、飲みかけのコーヒーを吹き出した。

コメント

コメントにコメント 。 「自明なコードに対する自明なコメントには意味がない」 「自明でないコメントを書かなければいけない時には、 多くの場合自明でないコードを直したほうがよい」 「コードが直せない時に限ってコメントを書く」 従って、私の書くコメントは XXX 付きなものが多い。 あと、空のコメントも多い。 空のコメントの使い方を覚えると(特にカラフルなエディタでは)便利だ。

これは、ある程度読む人のコード読解力に依存する部分があるのだが、 少なくとも私が普通の場合に書いたコードを読もうとしてる人で コードが読めない人ってのはいない(と信じたい)し、 誰でも読んでわかるような平易な書き方と冗長なネーミングを心がけてる。

No Limits

ううむ 。 IE のレンダリングエンジンの DLL ってのは、 GPL でリンクを許される例外が適用できるものなのかのう。

Windows のソフトで GPL 使おうと思うと根本的に破綻してるよな。 だって、どこまでが GPL の言うところの OS のライブラリなのかわからんし、 GPL が想定してないようなライブラリ形態(つまり (D)COM)みたいなものも あるしなぁ。

さて

そろそろ吉祥寺へと出撃するくゎ。 中央線はなにかと危険なので、渋谷経由が安全っぽいかな。

平成13年5月19日(土曜日)

つーことで

会社でござる。

昨日

こがさんに誘われて、吉祥寺まで Darie さんのライブを見に行く。 つめてつめてやっと 60 人分の席を確保してるようなところに、 100 人くらい入ってるような状況なので、編成も小さくて ピアノ + フルアコフレットレス + ギター + バイオリン。 何気にこの人、ピアノも歌も両方無茶苦茶うまいな。 拍子もテンポも調もころころ変わるし、 バッキングがトリッキーに一拍スリップしてたりするんだけど、 全然いやみじゃないのね。

そのあと渋谷で台湾料理食べて解散。

フェードアウト

パレット 。 「単純に考えて 3 倍」はともかく (実際には諸事情で 3 倍以下になるもんだけど)、 paletted color のハードウェアアクセラレーションの恩恵を得るには screen mode が paletted color (多くの場合 8bit モードと等価) でないといけないし、(PEACE の log 見てるとわかるけど) LVNS も paletted color なスクリーンモードでないときは、 内部に自前でパレット持って native depth に展開してます。 しかしながら、それでも奴は速いですな。 どちらかといえば、LVNS が当時のハードウェアに合わせて いい具合にシンプルイズベストに作ってあった、 という話ですね。その分犠牲にしてる部分もあるわけで。 犠牲の例:「どう頑張っても 200 色程度以上は使えない」 「本質的で無いところで開発に時間がかかる」 「そういう開発作業に特化された希な人材が必要」

ただ、「優秀な人材は常に絶対数として希である」 という法則と照らし合わせてみると、 市場が膨らみ過ぎて優秀な人材が投入されてるゲームの比率がどんどん 下がってる、ってのもあると思うけど。 「優秀な人材の投入」っていうのは、こう書くと個人の問題に見えるけど、 実際にはゲームを一人で作ってるわけではないから、 一人だけ突出してることには全く意味がないし、 かといって全員どんぐりの背競べではどうしようもない。 むしろ「良い人材の良い組み合わせ」というべきか。 昔からゲームの質は玉石混淆だったわけだけど、 玉の数はあまり増えずに石の数ばかり増えた、というか。 まあ、LVNS はあの当時の状況が背景にあったからこそ 生まれたゲームだったと思うな。 年々「良い人材の良い組み合わせ」が生まれにくい状況になってるんだと思う。

あっち方面

にわかに騒がしくなってるが、わたしゃ仕事が忙しい。 恥ずかしながら、私が英語のメールを一通書こうとすると、 それで私が趣味のコードを書くために割り当てることのできる時間の 一日分くらいが消えるのだ。 私の失敗は、梅本さんからこの仕事を引き受けた時に、 自分の作業量の見積もりにこの分の見積もりを入れてなかったことと、 従ってそこをはしょったことだと思う。結果として、 より仕事を難しくしたのはいうまでもない。

I18N 詳しくない人がこの問題に何らかの貢献をしたいと感じた時に それをするすべは、ache と曽田さんのやりとりを翻訳して、 bsd-locale-ja か tech-jp あたりに投げることでしょう :D

いずれにしろ、私の今の能力では、 「現状の FreeBSD に対して妥当だと思われる形に XPG4DL を修正しつつフィードバックする」という作業はできても、 「今の事態を英語で収拾する」ということはできない。 この点に関して、現状の私は無能だし、 収拾しない限りフィードバックもできない、というデッドロックに陥ってる。 幸か不幸か、私にとっては FreeBSD がこの点において不便でも、 その不便さを身につまされることがない、 というのも状況を停滞させてる原因だと思う。 不幸な点は「停滞してること」だが、 幸いな点は「私がじたばたして状況をこれ以上悪化させる見込みはない」 というところだと思う。

従って、「残念ながらブロックしてるスレッドは suspend 状態で放置してる」 と表明します。私が原因でブロックしてるわけで、 その点に関しては無責任で非常に申し訳ないと思うけど。 デッドロックが解消されれば再びスレッドが動き出しますが、 私には肝心の「自分一人でデッドロックを解消する」 ということをする能力がないのです。 あるいは、「どうすればデッドロックが解消されるのか」 ということを知る能力もない。 原因の一つは、「このところ、時間があまりにも無い」なので、 少なくともそれが解消するまでは、何も進まない可能性が高いです。

コメント

コメントを入れされられる話 。 これが、私の提唱するところの「面倒くさいという方法」の 「無駄な努力を美徳とする風潮はやめよう」において言われてる 「無駄な努力を美徳とする風潮」なんですな。

「無駄な努力を美徳とする風潮」のたちのわるいところは、 現在「無駄な努力を美徳とする風潮」を形成してるのは 多くの場合過去に「無駄な努力を美徳とする風潮」に乗せられて 「無駄な努力」をしてしまった人で、 そういう人は組織の指導的立場にいる、というところだな。 誰しも自分が過去にした努力を「無駄な努力」だと認めることは難しい。 一方で、組織の被指導的立場の人間は、 指導的立場の人間の美徳を壊すことを(普通は恐怖などの感情によって) しようとしないものだし。

また、場合によってはそのことを認めたとすると、 それはすなわちその人が 「現在の仕事に必要な能力的な欠陥を自分で補う能力がない」 ということを認めたことになる、という事情もあるな。 それは多くの場合彼にとって致命的な事態なんですな。 なぜなら、「その『能力的な欠陥』をコメントという形で 他人に補ってもらわないと、彼がその仕事を遂行できなくなってしまう」 ということを認めるのに等しいから、場合によっては失職の危機になる。 こういう場合、とかく人はその原因を自分の無能ではなくて他人の不親切に 求めたがるのは、至極当然のことと言えば当然のことなのだね。

とかく世の中、 「コメントを入れることは良いことだ。すべからくコメントを入れよう」 と思ってる人が多いのだけど、それは場合によっては無駄な努力であって、 その分の時間をコード読解力の訓練に当てた方がどれだけ建設的か。 コード読解力が付けば、いつコメントを入れるべきか、もわかるようになるし、 その結果としてコメントが少なくなるか、あるいはほとんどなくなってしまう、 という傾向になるのは至極当然のことだと思います。

ニセ

HTML + JavaScript + DOM と戯れる。慣れない言語は辛い。 かりかりとクラスの束を作る。

そんなこんなで 23 時。もうバス無いぞ。

平成13年5月20日(日曜日)

今日

寝てました。週末のうち 1 日はやっぱり使い物にならんな。

うぐぅ

please push start button 。 うぐぅ。 関連リンク ←つーかどこから見つけてきますかそういうの>オレ。

32:00

もう 32 時か。寝よう。