2002/ 2/ 1

新人歓迎会

2 年以上いた会社で今更新人歓迎会も無いだろ、と思いつつとりあえず無銭飲食。一発目の変換が wireless 飲食だったのは何か嫌かも。

久しぶりにカラオケに行ったなぁ。

2002/ 2/ 2

新年会

CSSPro の新年会、ではなく、W3C day に行けなかった yuu さんを励ます会に行ってきました。

実は W3C day で既にばけらさんに会っていた罠。なんと~。しかも覚えてなかったり。がっくし。

ばけらさんが海老天を指して「この海老食べていい?」というのが非常に印象的でした。やっぱ海老ですか。でも、特別好きだと言うわけでもないらしい。

参加者は yuu さん、ばけらさん、村正さん、えむけいさん、かえせらさん、私の 6 人で、20 時に集まって適当に居酒屋へ。

謎話【何】などで盛り上がっていたら、気付いたら 0 時前。ばけらさんは急いで帰宅。残った 5 人は朝までゆっくり話そう、と言いつつカラオケボックスへ。最初は歌っていたものの、結局途中から話込み始め、5 時前に店を出た。

吉野屋で軽く朝食をとって帰宅。色々な話ができて、非常に楽しかったのでした。

やっぱり、自分とは違う、他人の視点での話を聞くのは勉強になるなぁ。

2002/ 2/ 3

それは Netscape 6 が悪いの? @ カナかな団の躁鬱

padding-top を指定した場合

Mozilla 0.9.7 では確認できませんでした。こちらで確認してみては。

Netscape 6.2.x は Mozilla 0.9.4 ベースなのでかなり古いです。

position: absolute; な場合

position: absolute; な box は normal flow から外れて位置決定される筈です。ということは、親 box の直下の box は position: absolute; な box の次の要素によって生成される box になります。

そうなると、隣接する box の上下マージンは併合される仕様から、いくら margin-top を指定したところで、親 box の margin-top として持っていかれます。その際の親 box の margin-top は、親 box と内部に隣接した box の持つ margin-top で、より大きい方の値になります。

ということで、それは仕様通りの動作。8.3.1 Collapsing margins 辺り参照でしょうか。

position 指定しなくても z-index を解釈する

9.9 Layered presentation 辺りを見ていただくのがいいでしょうか。

全ての box は三次元的な位置を持ち、stacking context 内での stack level を持ちます。この stack level が z-index です。つまり、解釈されない方がおかしい。

ということで。

日記更新スクリプト

しまった、content negotiation 用にファイル名を変更した部分に追従させるの忘れてた。しくしく。

2002/ 2/ 4

目が覚めた時、そこには

昨日、目が覚めたら、なんか remote login していたコンソールが固まっていたので何事? と思いつつ remote host の CRT の電源を投入。

しかし、さっぱり映りもしないのでマシンの電源ケーブルを引っこ抜き、完全に電源を落としてから PC の電源を再投入。

そうしたら起動しましたが、fsck 中に快音ならぬ怪音を発して再度休眠に。これは HDD が死んでしまわれましたか。

とりあえず、緊急的に先日実家から送られてきていた 40GB の HDD を接続。MS-DOS の fdisk で解放できないパーティションができちゃったから新しいのを買って解決という豪快なことをされた為に送られてきたブツなので、FreeBSD の fdisk からちゃちゃっと解放して FreeBSD only で 40GB 確保。あぁ、広い。

とりあえず FreeBSD 4.5-STABLE に上げてから旧 HDD を mount して中を見てみると、見事に /usr/local/pgsql/data 部分にアクセスすると怪音がしてしまいました。よりによってそこですか。

/、/home、/var は何の問題もなかったので、/usr だけは mount -f して強引に乗せ、他の部分は cp -RP で解決。

しかし、/usr/local 以下が怖いので、アプリは綺麗に入れ直すことに。地獄。

X とか KDE とか GNOME とかは作りたくないなぁ。

2002/ 2/ 5

portupgrade

reicha で knu 氏がチャレンジャーを募集していたので、とりあえず 2002/ 2/ 4 版を突っ込んでテスト。おお、CVSweb 参照できるようになってていい感じ。

HOLD_PKGS もコメント通りに japanese/dpkey7 や japanese/wnn7* と記述できるように変更されましたし、いい感じです。まぁ、これは ja-dpkey7 や ja-wnn7* と書けば通ってましたが。

さて、かし支障よりportinstall の部分にツッコミ入れろとの命令を受けましたので、少しだけ。

portinstall は portupgrade 等の ports 管理用パッケージ群 pkgtools に含まれるもので、通常は初期インストール時に portinstall を、アップグレード時に portupgrade を利用します。

これは sysutils/portupgrade にあり、これは Ruby を要求します。まぁ、詳しい依存関係は Makefile 辺りを参照という事で。

詳しい使い方は man portupgrade(1) 他に譲るとして、以下のような特徴を持ちます。

  • ports から容易にパッケージ名でアプリケーションを入れることができる。
  • ports ツリーとインストール済みのアプリケーションのバージョンを比較し、新旧のチェックを行うことができる。portversion。
  • アップグレードを行う場合に旧バージョンを削除してから新バージョンをインストールするため、インストール情報の不整合が起きにくい。バージョン管理用のデータベースも ports ツリーに合わせて更新されます。
  • ports から自分で build するだけではなく、バイナリパッケージである packages を用意してそこからインストールすることも可能。勝手に packages ファイルを fetch してきてインストール可能。当然依存関係も辿ります。portupgrade -P <package name>。
  • 特定の ports に依存するもの、特定の ports が依存するものを再帰アップグレード可能。例えば png のメジャーバージョンが変わったときでも portupgrade -rR png みたいな。png とか XFree86-4-libraries とかだと泣きたくなるかも。
  • sudo を使うことで、一般ユーザから ports/packages の更新が可能。内部で勝手に呼び出します。portupgrade -s。

この他、man 読めとしか言いようがない程、豊富で便利な機能が満載です。FreeBSD の ports/packages 管理はこれが現状一番楽でしょう。

この他、自前 build する場合 (ports で入れる場合) には -cC (make 前に clean し、make install 後に clean する) なども必須と言えるでしょう。

設定ファイルは /usr/local/etc/pkgtools.conf です。コメントが充実しているので、これを覗けば man 見なくても書けるかも。

この他、ports_glob なども微妙に便利。cvsup ports-supfile したら ports_db -uU しておく癖も付けると良いでしょう。

とりあえず、こんな感じでどうでしょう。

del/ins 要素に背景や境界線を @ 私的日々憂鬱

Mozilla 0.9.7 でできてますが、何か?

とりあえず、style 属性で試してみたところ、しっかりできてました。

あと、title 要素がまだ 1 月っぽいです。先日私もやってましたが。

2002/ 2/ 6

del/ins 要素に背景や境界線を (2) @ 私的日々憂鬱

追試してみました。20020205 な Mozilla nightly 0.9.8+ です。

block level/text level 共、なんら問題なく border: 10px groove; background: #c0c000 url(/banner.png); とか適用できました。

単にスタイル指定間違えて適用されていなかっただけとかいう事はないですか。

Mozilla 0.9.8 話 @ Latest topics 2002/ 2/ 5

私的日々憂鬱は h1 がまだ 1 月だという罠。

Mozilla 0.9.8 で inline box の背景の位置指定はできていますが、何か?

ふむ、現象確認しました。ins 要素中に p ですか。

Mozilla のデフォルトスタイルシートが ins, del { display: inline; } なのが影響している様です。

ということで、ins, del { display: block; } p ins, p del { display: inline; } で解決ですか。

最初にテストしたとき、自分のサイトの標準スタイルシートを利用していたために気付かなかった模様。

CSS 的には text level/block level という概念はなく、純粋に指定された要素に割り付けられたプロパティでレンダリングするのが基本なので、デフォルトスタイルシートがこう判断されるだろう的な事を期待せずに、全部自分で書いて解決。

XHTML 2.0 でもその方向なので、Mozilla で一旦 * { display: none; speak: none; } してから全部書いてみるといいかも。その後でこのスタイル削除しないと WinIE で爆死確定らしいですが。というか、Mozilla.jp で最初やりました。しくしく。

ちなみに、Mozilla で見られないのは JavaScript が悪さしているようです。私は許可しているサイト以外ではサイトポリシーで蹴落としているので何の影響も無く、フツーに表示されました。

Mozilla 0.9.8 話 @ 私的日々憂鬱 2002/ 2/ 6

:not 疑似クラスを利用するのが最善……そうですか?

通常の文章は段落 (paragraph) の中にのみ存在する、という前提を元にすると、ぱっと思いつく辺りだと h1, h2, h3, h4, h5, h6, p, dt 位しか無いので、これ以外にはいきなりべたでテキストを書かなければ何の問題もないと思います。

text level element 自体、これらの要素にしか含まれないので当然指定する必要はなし。div の直下に文章を書かない、ということが求められるようになりますが、まぁ、私はこれは自然なことだと思いますので全く気になりません。

ブロック要素を含みうる要素に含まれていない場合にのみ display: inline; に切り替えるよりも、text level の構文で出てくる場合にのみ display: inline; を設定する方が容易に幸せになれるかと。

ちうか、まぁ、このスタイル指定の利点は実は IE でも問題なく適用される点があるのですが。ちなみに当然のことながら :before/:after 疑似要素で何か出したりすることは出来ません。

あと、標準で display: block; の方が何かと楽、という意味もありますか。XHTML 2.0 出てきたときには h 要素もリストに加えるのか、それとも :not(section) とかを追加する方がいいのか、とか。

よりコストが少なさそうな方を選択するなら、否定指示の方が項目も多そうでちょっと嫌かな、と思います。

text level の構文はこの要素に含まれる場合にのみ、と言明した方が、これとこれとこれとこれと...これの要素に含まれない場合にのみ text level という判断をするよりも簡単ですよね。

勿論この要素を含まない要素のみ、というセレクタは欲しいのは変わりませんが、実際さほど困らないと言うか。

2002/ 2/ 7

新型 FIVA

1/10 頃のニュースでアレですが、reicha ネタということで。

カシオが所謂マニアをターゲットとした新型 FIVA を発表ということで、見てみたら……痛々しすぎませんか。

とりあえず、シスプリのコアなファンは 12 × 3 台 (もしくは 4 台) 買いましょう。1 台 10 万としても 360 万 (480 万) です。すげ。

Mozilla 0.9.8+

Mozilla のリリース番号の後ろに + が付いているのは nightly build の印です。だいたいリリース日の数日前からリリース用と開発用に枝分かれして、リリース用には 0.9.8 などと付けられ、開発用には 0.9.8+ といった形になります。

0.9.8+ の開発ラインは、そのうちまた枝分かれして 0.9.9 と 0.9.9+ に分かれたりします。

なので、実は 0.9.8 リリース数日前から 0.9.8+ な人は存在することになります。

宗教的動物 @ 燈明日記 2002/ 2/ 6

他の方の反応を見ていて、宗教という文字自体に過敏反応しているのかなぁ、とか思ってしまいました。

○○ちゃん萌えとか、そういうのも一種の偶像崇拝であり、アイドルなんてのはまさにその端的な例で (idol = 偶像)。

私はキリスト教徒では無いですが、キリスト教の教えにある汝の隣人を愛せよの言葉には非常に強い感銘を受けた覚えもあります。

そもそも強い不可思議な自然 (もしくは超自然) の力などを擬人 (神) 化して勝手に恐れたり崇拝しているだけの妄想に過ぎないと見ることもできる訳ですし。

第一、ちゃいちゃんパパさんの引用された言葉を言った人自体、人間以外の生物が宗教を持たないというのはどのように証明したのか、ただの思い込みで言っていないか、という点が全くもって不明と言うか。

他の動物が宗教を持っていないという思い込み自体、人間の傲慢ではないですか。

キリスト教の教えにある、神は自らに似せて人間を作られた、という話自体が人間の思い込みによる傲慢ではないですか。

ガブリエルをマリアに遣わされた神が、何故その足でマホメットの所へ行ったのでしょうか。

そもそもキリスト教は唯一神とされていますが、キリスト教はユダヤ教の新興宗教の一派であり、ユダヤ教の聖書 (旧約聖書) ではイスラエルの民を導く神であり、他の民族はそれぞれ別個の神を有していたのはどういう事ですか。全然唯一神じゃないじゃない。

イスラム教の方は全然知らないと言ってもいい程度にしか知らないので、マホメットにガブリエルを遣わされた神をアッラーと崇めているかはちょっとわからないのですが、一緒であるのであれば、イスラム教のアッラーとキリスト教の神は同一の存在と言うことになりますが、なぜそれで争いますか。

キリストは自らの喉の渇きを癒すために道端に生えた樹 (無花果でしたっけ) に果実を求めたものの、そこに木の実がなっていなかったが為に枯らしてしまう、という行為を行っています。これがキリスト教の真実の一端を示していませんか。

イスラエルの民は多民族を犬 (Linux ではなく) と呼び、キリストは慈悲深いので子犬と呼んだ、という話が聖書にはありますが、慈悲深いとかそういうレベルを超えて、自らの属する集団以外を蔑視する選民思想が根強いキリスト教の教えになびくことなど出来ません。

キリストへ救いを求めた多民族の者に対し、イスラエルの者を救うのが先である、と民族差別を平気で行う様な教えが万人を平等と見なしているのかも疑問です。

いや、キリスト教を非難したり貶めたりするつもりはないのですが (他の宗教はキリスト教に比べてもっと知らないというだけなので)。

と、脊髄反射でこんなことを書いてしまう私も過剰反応ですね。

まぁ、要はそんな人間の傲慢に彩られた言葉など気に止める価値はないってことです。

2002/ 2/ 8

Not acceptable

それはね、あなたが出している HTTP 要求ヘッダの Accept-Language 中に含まれている言語で書かれたコンテンツが WWW サーバ上に無いから、別の言語で書かれているファイルの一覧を出してくれただけなんだよ。

ということで、せめて .jp なドメインのコンテンツ見てるんだから ja 位含めておいてくれぃ。

2002/ 2/ 9

記念すべき一歩

手元に届いた www/mozilla+ipv6 の差し換え版をふにふにと build。

……おおっ、素晴らしい素晴らしいですよ!

IPv6 reachability を落とした host から、しっかり www.kame.net とか www.jp.FreeBSD.org が開けますよ! かめが踊りませんよ!

いけてます。ばっちり。すばらしい。つことで、これ、今の www/mozilla+ipv6 に commit してください。ぜひぜひ。

まぁ、maintainer だから数日後に cvsup したら新しくなってそうだけど。

これで IPv6 対応な Mozilla を使ったときに IPv6 reachability が無い場合でも問題なく使えますね。嬉しい~&hearts;

でも、やっぱり DNS query order problem は残っているので getaddrinfo() に書き換えるのは必要でしょうね。

これは宿題ということで……。(^^;

DOM Level 3

W3Cから DOM Level 3 の Working Drafts が出たらしい。

2002/ 2/10

ユーザエージェント統計 2002/ 1

NiAOU 氏のログにも同じスクリプトを流していた為に 1 月分のデータを完全に消してからデータに落とし直した後、出すのを忘れていたので今頃。

ユーザエージェント統計 2002 年 01 月分
参照数 比率 ユーザエージェント名
53975 100.0% 総数
9633 17.85% IE 6.0
7673 14.22% Update checker
7380 13.67% IE 5.5
6602 12.23% Mozilla
4024 7.46% Robot
3474 6.44% Mozilla classic compatible
2740 5.08% IE 5.01
2031 3.76% Others
1855 3.44% IE 5.0
1588 2.94% Proxy server
1155 2.14% w3m
1124 2.08% Netscape6
1106 2.05% Opera
620 1.15% Old IE
569 1.05% Mozilla classic
482 0.89% Downloader
448 0.83% Mozilla/NN6 compatible (undefined)
254 0.47% Lynx
233 0.43% IE 5.12
214 0.40% Konqueror
158 0.29% AOL browser
143 0.26% Internet Ninja
105 0.19% IE 5.13
96 0.18% IE/Tab
76 0.14% SkipStone
64 0.12% iCab
37 0.07% Java client
30 0.06% i-mode
19 0.04% spam bot
17 0.03% Galeon
9 0.02% Validator
6 0.01% IE 6.6
5 0.01% SHARP PDA
1 0.00% IE 6.1
1 0.00% IE 7.0
1 0.00% IE 1024.0
1 0.00% IE 666.0
1 0.00% IE 6.00
22053 40.86% IE
19963 36.99% Others
7819 14.49% Mozilla
1409 2.61% Text browser
1106 2.05% Opera
620 1.15% Old IE
569 1.05% Mozilla classic
214 0.40% Konqueror
158 0.29% AOL browser
64 0.12% iCab
利用 OS 統計2002 年 01 月分
参照数 比率 プラットフォーム
37382 100.0% 集計対象総数
9827 26.29% Windows 2000
9315 24.92% Windows 98
3600 9.63% Windows Me
3055 8.17% Windows XP
2304 6.16% FreeBSD
2127 5.69% Linux
1886 5.05% Windows (undefined)
1420 3.80% BSD series OS
1168 3.12% Windows 95
673 1.80% Windows NT 4.0
616 1.65% NetBSD
544 1.46% Windows NT (undefined)
425 1.14% MacOS
200 0.54% Solaris
92 0.25% MacOS X
37 0.10% BSD/OS
22 0.06% IRIX
18 0.05% OpenBSD
17 0.05% OS/2
17 0.05% X11 (undefined)
14 0.04% HP-UX
3 0.01% Windows NT 3.x
2 0.01% AIX
15969 42.72% Windows
14102 37.72% Windows NT
4487 12.00% BSD series OS
2127 5.69% Linux
425 1.14% MacOS
255 0.68% UNIX
17 0.05% OS/2

DB にデータが正しく落ちていれば簡単なのだけど。

2002/ 2/11

Host ID だけ static にして prefix を含めてそれ以外を rtsol から設定する

標準外の方法なので、今後もっとまともな方法でできるようになるかもしれないけど、とりあえず。

ifconfig_IF_alias0="inet6 fe80::1 prefixlen 64"

ipv6_ifconfig_IF(_alias) では、rtsol を出す機会が無くなってしまうので、rc.network 側で処理させる為にも、ifconfig で書いておく。

KAME な実装以外では不明。

IE の自動更新チェック

入れてくださるのは非常にありがたいのですが、http://www.alib.jp/mozilla/ 以下のコンテンツは全て http://www.mozilla.jp/ に移っています。

登録を変えてくださらないと、こちらにとっては非常に悲しいことになります。

というか、昨日のアクセスログに異常に 404 が多いのでアクセスログを確認してみたら、1 人の方の 404 になっているリクエストが 1 時間で 700 以上ありました。

あんまり激しく続くとちと辛いので、変更をお願いします。ODN のダイヤルアップで更新チェックしている方です。

2002/ 2/12

CBUG 勉強会

波田野さんのマシンを借りてプレゼンしようとしたら、Mozilla が URL バーで Backspace を何度か押しただけでこける。だめぢゃーん。

ということで、発表を飛ばし。つか、元々時間無くなってたし、ということで。

次回発表に使うとしたら、今の分にさらに肉付けしないとダメだねぇ。まぁ、今回のは実質 4 日程度で緊急で作ったものなので、端折り端折りした部分があるので、肉付けしておきましょう。

その前に、自分のノートでしっかりディスプレイ繋げられるようにしますね。(^^;

転居先決定

引越先を決めて、NTT の工事申し込みも済ませる。

2/22 には回線工事が行われるので、24 日中にサーバ移転を行う予定。余裕を見て 13 時から 16 時までの間に行う予定です。

そのため、この時間帯にはサーバが停止することとなります。

申し訳ありませんが、よろしくお願いします。

2002/ 2/13

moz-users

ちょっと傍観していると、途端に正確でない情報とか、不明瞭な情報とかが流れておもしろいかもしれない。

しかし、あれでいいのかな。

他人事ながら、ちょっと心配になる。

2002/ 2/14

Mozilla

IPv6 to IPv4 fallback がまだ不完全だった模様。

ということで、さすがに環境がある人でないとテストもままならないというかそもそもテストできないですか。

ということで、Mozilla の開いた瞬間に思わず目をそむけながら :q! とタイプしたくなるようなコードと格闘決定。しくしく。

2002/ 2/15

Mozilla IPv6 -> IPv4 fallback

connect() のタイミングの時の fallback 処理と同じものを timeout の時にも突っ込んでみた。

…… www.kame.net にアクセスさせてみたら、10 分経っても timeout ダイアログも何も出やしない。もちろん fallback もしない。ダメダメ。

timeout が発生するまで fallback が成功するか確認できないので、1 回の try がえらく長くなるのが辛いかもしれない。

Mozilla IPv6 to IPv4 fallback (2)

タイトルが微妙に違うけど、まぁ良し。

timeout の時にも fallback できるようにしてみました。ということで、とりあえず patch 作って送付。確認してもらおう……と思ったけど、良く考えたら送った先の人は確認環境が無いのだった。しくり。

IPv6 な環境ある方は、www/mozilla+ipv6 (0.9.8) の files 以下にある patch-netwerk::base::src::nsSocketTransport.cpp を timeout にも対応してみたぞバージョン patch に差し換えて試してみてください。

パケットを落とすのはクライアント側ではなく、ルータ側にしてください。クライアント側で落とした場合、connect() の段階で即座に fallback が発生して、timeout で試すことができません。

2002/ 2/16

Mozilla DNS query re-entrant problem

reicha ネタ。Mozilla で名前解決でえらく時間が掛かっている間に別の query を発生させると、mozilla/netweak/dns/src/nsDnsService.cpp の nsDNSRequest::FireStop() に再入し、rv = mUserListener->OnStopLookup(mUserContext, hostName, mStatus); の中で hostName に NULL が渡ってしまったりとかする現象を確認。

www/mozilla 0.9.8,1 や www/mozilla+ipv6 0.9.8,1 では発生せず、www/mozilla+ipv6 0.9.8_1,1 で発生するらしい。

ということは、fallback する段階の stage select で間違っているのかなぁ。

www/mozilla+ipv6 0.9.8_1,1 ということは、connect() で失敗している段階の方でも問題があるのかも。

2002/ 2/17

Mozilla DNS query process problem

とりあえず、アドレスはテスト実行で行ったもので記述。こんな感じで流れてます。

再現の為に http://tv.nikkansports.com/008a/ を使ってます。

  1. DNS 問い合わせが行われている途中でハイパーリンクを辿る。nsSocketTransport::Process() から DNSRequest->Cancel(NS_BINDING_ABORTED) を呼ぶ。nsDNSRequest::Cancel() が呼び出される。nsDNSRequest の this は 08A57700 (以降、nsDNSRequest の this は同じ値)。

  2. ユーザがハイパーリンクを辿ったことにより DNS query queue に入った新しい DNS query の項目を処理に入る。nsDNSService::Run() 中から lookup->ProcessRequests() が呼び出される。nsDNSService の this は 0812A600 で、lookup は 08A17000。

  3. lookup の this が 08A17000 の処理で、PR_LIST_HEAD → PR_REMOVE_AND_INIT_LINK → nsDNSService::Unlock()。

  4. nsDNSLookup::ProcessRequests() から request->FireStop() が呼び出される。nsDNSLookup の this は 08A17000 で、request は 08A57700。

  5. nsDNSRequest::FireStop() に入る。nsDNSRequest の this は 08A57000、mLookup は 08A17000、mUserListener は BFADCE88。

  6. nsDNSRequest::FireStop() で名前が取得される。mLookup は 08A17000、hostName は ad.jp.doubleclick.net、hostEnt は 08A17020。

  7. nsDNSRequest::mLookup に nsnull がセットされる。

  8. nsDNSRequest::FireStop() で mUserListener->OnFound() が呼ばれる。mUserListener は BFAFEE18。

  9. nsDNSRequest::FireStop() で mUserListener->OnStopLookup() が呼ばれる。mUserListener は BFADCE88。

  10. nsDNSRequest::Cancel() の応答が戻ってきて FireStop() を呼び出す。mUserListener は BFAFEE18。

  11. nsDNSRequest::FireStop() が呼び出される。mLookup は 00000000、mUserListener は BFAFEDD8。

  12. mLookup が nsnull なので ASSERTION 発生。ASSERTION: FireStop called with no mLookup.: 'mLookup', file nsDnsService.cpp, line 381 ###!!! Break: at file nsDnsService.cpp, line 381 という感じ (行番号は trace code が入っているのでずれてます)。

  13. nsDNSRequest::FireStop() で mUserListener->OnStopLookup() が呼ばれる。mUserListener は BFAFEDD8。

  14. nsDNSRequest::FireStop() で nsDNSService::gService->mOut が呼ばれる。

  15. nsDNSRequest::FireStop() から抜けて nsDNSRequest::Cancel() へ戻る。

  16. nsDNSRequest::Cancel() から抜ける。

  17. nsDNSRequest::FireStop() から mUserListener->OnStopLookup() が呼ばれる。mUserListener は BFADCE88。

  18. ASSERTION 発生。ASSERTION: You can't dereference a NULL nsCOMPtr with operator->().: 'mRawPtr != 0', file ../../../dist/include/xpcom/nsCOMPtr.h, line 650 Break: at file ../../../dist/include/xpcom/nsCOMPtr.h, line 650。で、core 吐いて落ちる。

こんな感じですか。再入対処の lock は正しく行われているっぽいけど、処理順序が予測されない順序で流れてしまって、その為に後で送られた request の名前が解決されずに抜けてしまっている感じ。本当はこの後で tv.nikkansports.com の名前解決が行われていなければならないのだけど……。

さて、発生する場所や過程は大体わかったので、あとは fallback patch のどこが影響しているのかを確認……かな。

2002/ 2/18

Mozilla (略)

まとめるだけ。

DNS query 中に別リソースを要求すると、Connection Error の状態に移行して前の要求をキャンセルするために、DNS request があったら一端 DNS request に Cancel を流す。

この影響で core 吐いているっぽい。

うまく動いているコードで trace しようとしたら 0.9.7 では一瞬で query が解決されて試験にならなかった罠。0.9.8 作らないと。

2002/ 2/19

Mozilla

見出しが段々短くなってる気がするけど、まぁ、気にせずに。

赤紙っぽいメールが届いてどきどき。

とりあえず、core 吐いているのは mozilla/netwerk/dns/src/nsDnsService.cpp の nsresult nsDNSRequest::FireStop(nsresult status) 中にある rv = mUserListener->OnStopLookup(mUserContext, hostName, mStatus); で出ているのは間違いないっぽい感じ。

XPCOM なトコなので、仮想関数テーブルが壊れているのかとか、その辺りを見ないと駄目かな。

全く作りが分からない巨大なソースを追い掛けるのはつかれます……。

久しぶりに部活動したい気分なので、お誘いメールを投げてみよう。たまに気分転換しないと煮詰まってしまうし。

しかし、Mozilla 0.9.9 code freeze は 2/20 という罠。間に合う気がしません……。

2002/ 2/20

部活動

久しぶりに部活動に行ったら、特別ゲストとしていわさきさんが。うわ~、久しぶりです。

食後、いきなり髭を剃り始めたのが印象的でした。:)

2002/ 2/21

契約

転居先の契約を済ませ、本などを半分程移動。近いので手で持っていってみたり。

各種手続きとか買い物とか散髪とかしてたら、1 日何も出来ませんでした。しくり。

とりあえず、会社行く前に免許の住所書き換えかな。

交換局からの距離が 200m 程近くなったみたいなので (前の交換局と違うような……) 速度がちょっと上がるといいな。落ちたら泣くかも。

メーリングリスト

@alib.jp なメーリングリストはともかく、他の方のでは、やりとりするだけ時間の無駄だという様なものには参加しないようにしよう。今やり取りしているのも force shutdown。

例えば Web 標準化 ML とか。

2002/ 2/22

フォント弄り系サイト

TrueType font ファイルを開いてベクトルデータぐりぐりとか、そういう方法を説明しているサイトとか、X-tt 配布サイトとか、自作フリー TrueType 配布サイトとか、そういうサイトの事かなぁ。

というか、そうに決まってます (断定)。

というか、それって glyph 弄りなのでは。

ということで、VBScript とかでレジストリ書き換えて、システムのフォント設定を弄るとか。

最悪。

2002/ 2/23

天中殺

ノートのキーボード破損。サーバ機のメイン HDD 破損。つきすぎ。

課外授業

平田さんかし支障とで、燔楽へ。

その後、カラオケにごー、という事になったのですが、当初 1 時間か 2 時間位、という話だったのが気付いたら徹カラになってしまった辺りがなんとも。

このメンツだったら鶚さんも誘えば良かったなぁ、と後で気付いてみたり。

2002/ 2/24

サーバ機交換

時間もそんなに取れないので、さくさくと 23 日中にベアボーンを注文しておいた物が届いたので、他の荷物の到着待ち時間を利用して生きている HDD 他を移す。

スリムタワーからマイクロタワーに変わったので、low profile ではない、普通の PCI カードが挿せるようになったのでちと楽になったかも、という感じですか。

2002/ 2/25

Mac なお話

Macintosh の事は Mac と呼ぶのはわかりますが、MAC と書かれると MAC アドレスや強制アクセスコントロール (MAC) の事だとしか認識出来ません。最近は基本的に後者。

他にも MAC を Acronym Search で探すとたくさん出てきます。トップが Macintosh の略なのがあれですが、ここは大文字/小文字を分けてませんしね。たとえば Denial of Service が DoS ではなく DOS と書かれているように。

でも、dosage が dos と小文字であったりする辺りが謎。あまり厳密に分けてはいないのかな。

[23:58:46] <mac2> (MacがMacintosh、MACはMACアドレス、macはぼく(笑)) < 謎 と発言されていたので、mac はのださんということで。

2002/ 2/26

Mozilla DNS query problem

原因は Mozilla 0.9.8 に無理矢理 IPv6 to IPv4 fallback patch を突っ込んだせいで、周囲と不整合が起きていた、というのが真実っぽい。

念の為に plain な Mozilla current と、www/mozilla/files/patch-* の patch を (当てられる分だけ) 当てた Mozilla current では、何の問題も出ませんでした。がく。

ということで、Mozilla 0.9.8 では IPv6 to IPv4 patch を当てずに使うのが正解っぽい。もしくは Mozilla current (!= nightly) を使うのが正解。

これで肩の荷が降りた~、と喜んだのも束の間。getaddrinfo() 化が残っているのだった……しくしく。

2002/ 2/27

2002/ 2/28

MAR さん迎撃肉

とりあえず、約束の 64MB メモリを渡せて良かった。家を出たとき、しっかり忘れてたしなぁ。;)

明日は食事会でしょうか (とか言ってみる)。

色々と話が聞けて良かったです。うん、うん。

なぜ Strict に拘るのか

XHTML 1.1 には Strict なんてありません……とか言ったら終わりますね。

一番簡単な理由は、そうしたデータ形式だと定義されている以上、それに従っていなければ正しいデータとは見なされませんから、ソフトウェアが処理できなくても文句は言えないので、本当にソフトウェアに処理させたいデータなのであれば Valid な HTML が記述されていなければならない、というだけの話ですね。

Windows のシステムデータが壊れていたら起動できなかったり、正しく動作しなかったりするのに、WWW ブラウザの場合だけはそれでも解釈しろ、と言うのはちと変ではないかと。

なんとかレンダリングしろ、というのであれば、Excel とかのデータが壊れていた場合にもある程度修復して表示しろ、というのと変わらないので、正しく認識できなくても当たり前。

HTML 3.2 で記述された HTML 文書の場合、仕様には US-ASCII/ISO-8859-1 程度しか利用できるコードが明示されていないため、日本語は使えませんが、これが正しく処理できなくても文句は言えない筈です (某走る人の方は HTML 3.2 で良い、と主張されていましたから、きっとコンテンツは英語で全て提供してくれるのでしょう:))。

肉じゃない部活動 2nd mix

今日はかに石焼き丼にしてみました。うまい。

でも、好みの差で、麦とろ飯系の方が好きかな。^^;

明日は……行くのだろうか。行きたいけど。