探索日記

2003年10月 ← 2003年11月 → 2003年12月




2003-11-01(土)

Proxomitron

 今日、改めて逆アセンブルソースを見てみたら、あっさり目的の関数が見つかった。 動作ロジックや内部コードも分かったのであとはこれをどう書き換えるか。 バイト数増えそうだけど元の場所に収まるだろうか…。

2003-11-02(日)

本日のチェキ!

 母校で後援する桑島法子様。 っていうかこの写真ほんとに本人? すげーモアイっぽい顔なんだけど。

2003-11-03(月)

Red Hat Linux 9

 いいかげんサーバを立ち上げたいなあと思い、先週ダウンロードしておいた Red Hat Linux 9(ftp 版 CD 三枚組)を焼いてインストール。

 GA-7VTXH の BIOS で何故か CD-ROM ブートが指定できない。 一度設定を初期化したら指定できるようになった。

 インストールは滞りなく完了。ちと画面がボケてるのとちらついてるのは設定が悪いのか RADEON 9000 が悪いのか。

 PPPoE の設定が分からなくてしゅーりょー。

謎の乗算

 usbmon で以下のような内容のコードを書いた(模式化してあるので実際のコードとは違う)。

typedef struct { char buf[38]; } X;
X array[128];

void foo (X* p)
{
  int index = p - array;
  〜
}

 p が配列 array の何番目の要素かを index に求めるという処理だが、 C 言語も久しぶりなのでホントにこれであってるのか少しだけ不安になって gcc2 の出力を見てみた。

move.l #678152731,-(sp)
move.l a3,d1      ;a3 = 引数の p の値
sub.l #_array,d1
move.l d1,-(sp)
jbsr ___mulsi3      ;符号付32ビット乗算
addq.w #8,sp
asr.l #1,d0      ;d0 = index

 ……( ゚д゚)

 (゚Д゚≡゚Д゚)

 ( ゚д゚)ポカーン



 なんで乗算してるの? この意味不明な巨大な数は一体。 しかもこれで除算したのと同じ結果が出てるし。



 ( ゚д゚)…



 図を描いてみた。



 38×678152731÷2=0x????_????_0000_0002÷2 になるので、下位32ビットだけ見れば 38 を 1 に変換していることになる。 index = 2 以上の場合も当然成り立つ。

 gcc2 がこんな奇妙なアルゴリズムを使うのははじめて見た。

2003-11-04(火)

本日のチェキ!

 SHARPHEADS にテストプログラム。

 ツクモ各店でMSI 製キューブ系 PC 自作キット「MEGA PC」購入者に交換用透明アクリル外装版をプレゼント中AKIBA PC Hotline!)、 あの人気ベアボーン「MEGA 651」に限定!?の透明アクリルモデルAkiba2GO!)。 久しぶりのアクリル。

 もう一つ。 ZOAAOpen の透明アクリル製キューブ系 PC 自作キットの予約を受付中 (しばらく前の展示品記事)。

2003-11-05(水)

本日のチェキ!

 ポインタの正当性SHARPHEADS)。 完璧ではないかもしれないけど kmmallocとか。昔 Human68k でコンパイルした覚えがかすかに。手元に残っていないので、きっとその時は途中で移植作業をやめてしまったようだ。

 で、元発言に対する鎌田さんの「完璧さを追求するならfree()だけ完璧にしても意味がない」。 「少なくとも free() では死なせたくない」ってところに、 free() より遙か手前で死ぬようなコードを出して意味がないってのは話が違うような。 事故ったらどうせ車が壊れるからシートベルトをしても意味がない、みたいな。

2003-11-06(木)

も う だ め ぽ

 Sleipnir の公式掲示板がひどい状況だわ。 イヤハヤ。

どこでもホイール

 セレクトボックスのあるページを Sleipnir で表示すると、セレクトボックスにフォーカスがない状態でもホイールの回転がセレクトボックスのスクロールになってしまう。

 かなり不便で困っていたが、 どこでもホイールの設定がまずかったようで、 Internet Explorer_Server クラスのスクロール行数を 0 にしたら普通の動作に直った。

 と思ったら、セレクトボックスにフォーカスがある状態のカスタマイズが Internet Explorer_Server クラスにならないようだ。

あー

 Sleipnir の公式掲示板の件ですが、 日記をアップロードしたしばらく後に、書き込みがバッサリ削除されたらしく、今見ても何もないです。

2003-11-07(金)

本日のチェキ!

 パソコン価格1ケタ間違った!丸紅サイトに注文殺到YOMIURI ON-LINE)。 で、その千人の中に本当ホントにその値段で買えると思って本気マジで注文した奴は何人いるんだ(´Д`)。

Ad killer
Name = "cool.ne.jp Ad killer  (2003/07/10; )"
Active = TRUE
URL = "$TYPE(htm)[^/.]+.cool.ne.jp/"
Bounds = "<!-- cool -->*<!-- cool -->|<SCRIPT*</SCRIPT>"
Limit = 4096
Match = "*(http://ad[0-9]+.cool.ne.jp/|function popup)*"
Replace = "<!-- Ad killed -->"

Name = "xrea.com Ad killer  (2003/05/28; )"
Active = TRUE
URL = "$TYPE(htm)[^/]++.xrea.com/"
Limit = 4096
Match = "<CENTER> <A HREF=http://www.xrea.com/*</A> </IFRAME> </CENTER> $STOP()"
Replace = "<!-- Ad killed -->\n"

 今まで使っていたフィルタが古くなったので更新。↑旧 ↓新。

Name = "cool.ne.jp Ad killer  (2003/11/07; )"
Active = TRUE
URL = "$TYPE(htm)[^/.]+.cool.ne.jp/"
Bounds = "<!-- cool*<!-- (end of|) cool*-->"
Limit = 4096
Match = "*http://(hpad.www.infoseek.co.jp:80/|www.infoseek.co.jp/images/ads/)*"
Replace = "<!-- Ad killed -->$STOP()"

Name = "xrea.com Ad killer  (2003/11/07; )"
Active = TRUE
URL = "$TYPE(htm)[^/]++.xrea.com/"
Bounds = "<center>*</center>"
Limit = 4096
Match = "*http://ad[0-9]+.xrea.com/*"
Replace = "<!-- Ad killed -->\n$STOP()"

2003-11-08(土)

ふー

 今頃 Blaster 系のウイルスに引っ掻き回されてるバイト先って…。

2003-11-09(日)

あー

 某所の過去ログ漁ってたらそれだけでしゅうりょー。

2003-11-10(月)

 中途半端な眠りだとわけのわからん夢をよく見る。

 その1。

 IRC のチャット仲間二人と自転車に乗ってラリアットで敵を倒す試合に出場。 敵も三人組かと思ったらゴリラが出てきた。 一応そのゴリラは(ラリアットで)倒したけど次の敵が出てきそうなところで終了。

 その2。

 インターネットが繋がらないというお客様の家に行くと共聴だったので、 ブースターや分配器を見るために(※1)、お風呂場の天井裏(※2)を覗かせてもらう。

※1 本当はパソコンの設定やケーブルモデムの動作を先に確認する。まあ夢なので…。

※2 ブースター・分配器は家の外壁に付いてたり、お風呂場以外の屋根裏に置いてある場合もあるので、 いきなり屋根裏を見るのではなく、家の人に聞くか工事履歴を確認すべき。まあ夢なので…。

 で、運良くそこに問題のものがあった訳だが…。

 分配器じゃなくてイモ繋ぎ(※3)で分配してあった(´Д⊂。今までネット接続できていたのが奇跡なくらい。 そういえばこの家テレビの映りも悪いしなぁ。誰だよこんな工事した奴は!

※3 イモ繋ぎだと電波が弱くなる、ノイズが飛び込む、上りのノイズも飛び込む、と悪いことばかりである。

 で、家の人はすぐに直せると思ってるようで、なんか外出の準備してこっち見上げてるし。

 というところで終了。

 まあ実際こんなケースだったら、ケーブルの端をF型接栓に加工して、 双方向(インターネット)対応の分配器とハイパスフィルターを取り付けるのかな…。 基本的には保安器を双方向対応の一分岐に交換して、ケーブルモデムまで単引きするべきだけど。

本日のチェキ!

 SIONUで遊べ!!(ネタ元:STUDIO KAMADA)。

 68版のマッピーの画面写真(下の方)@MAPPY MANIAC (ネタ元:かーずSP)。

 男弾森のうさPのスクリーンショッツ (STUDIO KAMADA)。

 買い物山脈 ザ・フィットマウス<手の匠>のフィット感PC Watch)。 で、リスはどこにいるんだ?

 GWAVE2003〜1st Beat〜。エロゲ主題歌のコンピ。 巫女みこナースとプリンセスティアがいいと思うけど他が微妙すぎ。

2003-11-11(火)

本日のチェキ!

 <入力ミス>1万9800円でPC販売 丸紅のネット販売パソコン価格1けたミス、表示通りに販売へYahoo!ニュース)。 丸紅ダイレクト、VALUESTAR Fの価格設定事故PC Watch)。



 (  д )


                  ゚

            ゚

 やられた…。試合に負けて勝負にも負けた。祭に参加して注文した奴らの勝ちだ。

 ●紅さんは総会屋にでも絡まれましたか?




 気を取り直して。

 ブラジャーって何歳から着けましたか? (;゚∀゚)=3

 親戚のおにゃのこをメイドさんに(ネタ元:BRAINSTORM)。⊂⌒~⊃。Д。)⊃

2003-11-12(水)

本日のチェキ!

 MUTEX の実装のテストSHARPHEADS)。

 各所で畏怖されている神の洗濯風景Lunatic Cylinder) に関して、知り合いじゃないかという疑惑が(笑)。 本人曰く違うということで一安心。

 というか、つまりアレを干した人間が少なくとも二人はいるということか…。

free() のアレ

 いや、最初の設問は全く問題ないと思いますが。

2003-11-13(木)

usbmon

 残りのコマンドをずんずん実装。と言っても、 手持ちのデバイスだと対応してなそうなコマンドばっかりなので動作確認が取れない (対応してないから STALL するのか、データに間違いがあるから STALL なのかが分からない)。

 とりあえず get status 以外は完了。

 今まで USB2.0 は考慮してなかったけど、先日購入したメモリが USB2.0 だったので、追加されたデスクリプタに対応。ここで時間切れ。

2003-11-14(金)

本日のチェキ!

 フルメタル・パニック?ふもっふに「Human68k OS」RetroPC.NET)。 な(ry。見てたけど気づかんかったわ。

 透明アクリルを多用したノーブランドのキューブ系 PC 登場AKIBA PC Hotline!)。 うーん、アクリルの感じがあまり出ていなくてイマイチかなぁ。キューブ型って結構かさばる。

 リビング+:テレビ全チャンネル、まるごと1週間録画 〜斬新な発想の「Big Channel」ZDNet)。 むう。日本電算機株式会社って iBOX 作ってるところか。昔、資料請求したなぁ…。

 そこまでして見るほどの番組があるのだろうか( ´∀`)。

Proxomitron 改造計画

 usbmon をいじった翌日は多少飽きが来て手を付ける気力が沸かないので、 気分転換に Proxomitron の例の部分を見てみる。

 まず、逆アセンブルソースから該当部分だけ抜き出して、nasm にかける。 と、32 ビット命令の頭にプリフィックス 0x66 が付いてしまう。 どうもこれは 16 ビットモードで 32 ビット命令を使う場合に付いてしまうらしい。 Proxomitron のコードには付いていないので、もともとのコードは 32 ビットということだろう。 nasm のマニュアルを見たところ、擬似命令「BITS 32」を使うと 32 ビットモードになるとのことで、ソースの先頭に書き込んでみたところ、解決。

 もう一つ問題が発生。0x3a 0xd3 と 0x3a 0xd0 の逆アセンブル結果がそれぞれ cmp dl,bl、cmp dl,al で、これをアセンブルすると 0x38 0xda、0x38 0xc2 になってしまった。 うーん、これは内部フォーマットが違うだけで同じ動作なんだろうか。

 どうもそうっぽいのでこれはまあいいのかな…。

 以上で本日もしゅーりょー。

2003-11-15(土)

んー

 ちょと忙しかった。

2003-11-16(日)

ふー

 お気に入りに入れてるサイトを全部巡回すると他のことする時間がないな…。いかんいかん。

2003-11-17(月)

usbmon

 HUB 関係のコマンドを作ろうとしたところ、CUI を標準リクエストにしか対応させておらず、 クラス定義リクエストやベンダ定義リクエストを使えない状態だったので、 コマンド解釈部分の作り直しからはじめた。

 USB の低レベル入出力部分も同様に対応してなかったので、こちらも作り直し。 調子が乗ってきてサクサクとコーディングしてたけど、明日はバイトなので中断。

2003-11-18(火)

Proxomitron: Deny Java Applet

 没フィルタしりーず。

 2ch に書き込まれたフィルタをアレンジしてみましたが、以下のフィルタではリードオーバー・エラーが頻発します。

Name = "Deny Java Applet (READOVER ERROR)  (2003/04/23; KG)"
Active = TRUE
URL = "(^$TYPE(oth))(^$KEYCHK(J))(^$LST(AllowJava))"
Bounds = "<applet*</applet>"
Limit = 1024
Match = "(^$URL(http(s|)://$LST(AllowJava)))*code=$AV(\0)?+"
       "($URL(http(s|)://$LST(DenyJava))|$URL(http(s|)://((*/)+)\1*)"
       "$ASK(AllowJava,DenyJava,Allow Java Applet?\n\n"
       "URL: \u\nApplet: \0, \1))"
Replace = "<font size=0>[Denyed Java Applet:\0]</font>"

 どうも $ASK() の使い方によってはリードオーバーが出てしまうので、 $LOCK()+$CONFIRM()+$ADDLST() に分解して強引に対策しました。

Name = "Deny Java Applet  (2003/04/24; KG)"
Active = TRUE
URL = "(^$TYPE(oth))(^$KEYCHK(J))(^$LST(AllowJava))"
Bounds = "<applet*</applet>"
Limit = 4096
Match = "(^$URL(http(s|)://$LST(AllowJava)))*code=$AV(\0)?+"
       "($URL(http(s|)://$LST(DenyJava))|$URL(http(s|)://((*/)+)\1*)$LOCK()"
       "(^$CONFIRM(Allow Java Applet?\n\nURL: \u\nApplet: \0))"
       "$ADDLST(DenyJava,$WESC(\1))|$ADDLST(AllowJava,$WESC(\1))$URL(^?))"
Replace = "<font size=0>[Denyed Java Applet:\0]</font>"

 問題なく動作するように出来たのでこれをしばらくの間使っていましたが、 マッチする度にダイアログが出てくるのが煩わしい(しかもいつ出るか予想できない)上に、 実際のところ許可するケースが数えるほどしかないので、ダイアログを出さないようにしました。

 その場で許可したい場合はキーボードの J を押しながらリロード、 常に許可したくなったら手動で URL リストに追加します。

 J が押された場合に自動で URL リストに追加する方法もありますが、 フィルタを作る手間+フィルタの数を増やすデメリットと、 追加する機会が何回あるかを考えると、全然割に合わないのでシンプルな動作に留めました。 ただし、爆裂ブロック崩しだけは(個人的に)許可したい場合が多いので、 常に許可するようにハードコーディングしています。

Name = "Deny Java Applet [J]  (2003/11/18; KG)"
Active = TRUE
URL = "(^$TYPE(oth))(^$KEYCHK(J))(^$LST(AllowJava))"
Bounds = "<applet*</applet>"
Limit = 1024
Match = "*code=$AV((^BakuBlockV*.class)(\0))*"
Replace = "<font size=0>[Denyed Java Applet:\0]</font>"

 AllowJava ブロックリストは適当に用意して下さい。

2003-11-19(水)

usbmon

 んー、パケット転送ルーチンをいじったら、コマンド書き込み後にステータスが返らなくて終了しないようになってしまった。 ソースコードの一部をコメントアウトしたりすると動作するようになったり…。

 原因が分からん。

 しかも風邪ひいたらしく調子が悪い(´・ω・`)

2003-11-20(木)

WarNSFd

 日本語フォルダ名に入れて起動するとあぼーん。最初、XP では使えないのかと思った。

2003-11-21(金)

本日のチェキ!

 Darkside X68000 にて、MPCM version 0.45A+2スプリアス割り込みの中の人も(以下略)。 MFP いじった後に andi.w #$0500,SR でユーザモードに戻るのは全然基本的なレベルの話じゃないと思うにゅ。

2003-11-22(土)

本日のチェキ!

 極小空間=カプセルホテル(ネタ元:STAR LIGHT PARADE)。 カプセルホテルってこういうところなんだー。

 昨日チェキした MPCM version 0.45A+2 は以前から公開されていたものから、ドキュメントの 「ライトバックキャッシュ」という言葉を「コピーバックキャッシュ」に変えただけでパッチ内容は同じ模様。

usbmon

 ハマリ確定の予感。

 これでやる気をなくしちゃったりすると一年くらい放置しちゃったりするので怖い怖い(ぉ

 秋葉に買い物にでも行って気分転換するか。

 と、その前に PID_SETUP の時の転送コマンドが DATA0 だったので、もしかしたら逆なのかも知れないと思って DATA1 にしても症状変わらず。というか DATA0 でも DATA1 でもデバイスの方は受け取ってくれるのか。

 速度判別の後にリセットしてないのが悪いのかなあ。これは明日試してみよう。

2003-11-23(日)

本日のチェキ!

 XM6 version 1.45 (PI. HomePage)。SASI まわり。

 Intel 製 Gigabit LAN カードの偽造品が流通、パッケージ品もAKIBA PC Hotline!)。

2003-11-24(月)

あきばー

 いろいろ買いたいものがあったので久しぶりに秋葉原へ。



 USB の延長ケーブル(シリーズAコネクタ−シリーズAレセプタ)を若松で240円で買ったら、 サトームセン PC isLand では安くて品揃えも多かったので少し悔しい。

 森真之介の『HAPPY★LESSON』はかなり萌える。しあわせ。

アニスシード

 声優の某成瀬未亜がウェイトレスやってると話題の新しいメイド喫茶 Cafe Anise seed へ行ってみた。

 レジのにーちゃんが物凄くホストっぽくてウェイトレスが全員ホストだったらどうしようと一瞬恐怖を感じたものの (というかその場合ウェイトレスではなくてウェイターになるね)、 ちゃんと女の子でした。かわいい子がそろっててレヴェル高いかも。かわいければ男でも

 内装も落ち着いてていい感じ。場所柄と経営母体の格の違いだろうか(どこか知らんけど)。

 地下一階が禁煙席、中二階が玄関レジとトイレ、地下二階が喫煙席になっている模様。 禁煙席からレジを見下ろすような席に座ったけど、ウェイトレスが手すきのときはレジの横に待機していて、 思いっきり正面に向かい合っちゃうので羞恥ぷれいの気分。 ちなみにレジのある壁は一面鏡張りになってるので後の席の様子も良く見える。

 後の席で空いた皿を下げようとして「空いたお下げ…あっ」とか言ってしまうドジっ娘が微笑ましく…。 とか思ってたら自分も痛恨のミスを。紅茶のポットから注ぐときに網を添えるのを忘れてカップに茶葉をドボドボ入れちまった。 どちらもいわゆるヒューマンエラーの一種ですな(と意味不明なことを言って誤魔化してみるテスト)。

 で、実はその後の席の客が友人だったことがあとで判明。⊂⌒~⊃。Д。)⊃

 しかもその友人、本日二回目の来店だったらしい(笑

もえたん

 で、例の『萌える英単語』も買うつもりで秋葉原と池袋を探し回ったけど見つからなかった。 最終手段として、大型書店がひしめく池袋でもダントツの規模を誇るジュンク堂書店の語学フロアも探してみたけど、影も形も見えず。 端末で調べると在庫が32冊あるような感じだったのでレジで聞いてみると、

店員(内線で語学書のフロアに在庫確認)
店員「あ、在庫確認お願いします。三才ブックスの、え? はい、…、はい」
店員「入荷しましたが全て売れてしまいました」



   ||
 ∧||∧
( / ⌒ヽ
 | |   |  32冊も仕入れて売り切れかよ…
 ∪ / ノ
  | ||
  ∪∪

っていうか書名まで言ってないのに通じてましたヨ? そんなに問い合わせ多かったのか。

 ちなみに、せっかくだから端末から打ち出したプリントを持って返りました(左はメイド喫茶のレシート)。

ついでに

 しばらく前に撮影した机周辺の写真が、デジカメに残っていたので載せてみる。ちょっとボケてるけど。



 この写真だと PC 二台モードですが、68 をいじる際は液晶モニタを左にずらして CZ モニタを見えるようにし、 ミニキーボードを仕舞って 68 のキーボードを出してきます。流石に机の上が狭くなって、 資料の本を見ながらのプログラミングもちょっとやりにくいです。

2003-11-25(火)

本日のチェキ!

 【コラム】ハイテクウォーカー 第95回 執筆=佐藤晃洋 地上デジタル放送を追い風に? CATVの狙いとはMYCOM PC WEB)。 JDS きたー。つか特にコメントが思い浮かばないけど、一応チェキ。

2003-11-26(水)

うーむ

 明日のCD「ショートサーキット」&DC「恋愛CHU!」発売記念イベントに行こうかどうかで迷う。始発で行けば6:24着か…間に合うだろうか。

 usbmon にも手が付けられない(ぉぃ

2003-11-27(木)

結局

 行かなかった。俺通情報によると、

 という状況だった模様。つーか徹夜禁止ってのはギャグにもなってません。

本日のチェキ!

 X68000 LIBRARYSION IV 掲載。

 177 の国会での質疑について某おにいちゃんよりズバリな情報提供をいただきました。 国会会議録検索システムにて簡易検索 → 開会日付:昭和61年10月21日から昭和61年10月21日まで、検索後:アダルトポルノで検索 → 検索結果一覧表示 → 決算委員会をクリックで表示されます(セッション管理をしているため残念ながらディープリンクが出来ません)。 情報提供ありがとうございました。177 の販売がどうなったかについても引き続き情報は募集中です。

 C 言語と仮定して、age = age++; の動作は未定義なので、突然義理の妹ができたり、捨て猫にミルクをあげたら猫耳娘になって押し掛けて来たり(注:猫に人間用の牛乳を与えてはいけません)、懸賞に当選したといってメイドさんが訪問して泊り込みで働いてくれたりするかも知れません。 参考:C FAQ初級C言語Q&A

 オーバーニーで足コキLunatic Cylinder。 (´Д`)

 静かなブーム:道端で『iPod』を共有するユーザーたちHotWired Japan (ネタ元:Hjk/変人窟)。聴いていたのは巫女みこナースですか?

特大ニュースが

 超先生が事故死!?

 な、なんだってー!!(AA略

 Winny 利用者で逮捕者二名!!

 な(ry

 超先生の所属はどの会社(ブランド)だったのかとか、 Winny の匿名性をどうやって破ったのか(別件逮捕?)とか、疑問がいろいろと…。

2003-11-28(金)

飲み会

 バイト先の仲間と。ビールとサワー一杯ずつで酔った。

2003-11-29(土)

本日のチェキ!

 XPSDownload ページに usbmon-0.30。手前味噌でなんだけど一応。

 XM6 開発日記がここのところ更新されています。

 ヤフオクに HARP。ジャンク扱いっていうか最初からジャンクだろ?という声もあり。

 透明アクリル製のキューブ系自作 PC キットが AOpen から発売AKIBA PC Hotline!)。うーん…。

2003-11-30(日)

あー

 なんか最近疲れが溜まりやすい…。バイトは慣れたんだけどなぁ。




2003年10月 ← 2003年11月 → 2003年12月

goto ../index.html