雑記帳 2004年 10月第2週

2004/10/03 Sun.

そういや書くのをすっかり忘れてた。9月30日にもう一回品川に行ってきたのですよ。しかも定時後ですよ、定時後。アホかと。
まぁ、例のプロジェクトが無事にカットオーバーを迎えたという事で、ちょっとした飲み会があったのです。タダなら参加ですよ。
以前に俺に意味不明な講釈を垂れた営業のO塚とかいうセクハラ親父はいませんでした。新潟に出張だとさ。働いてきたまえ。
んで、品川で作ってきた機能は、10月3日現在では一応稼動中なんだよなぁ。どうやら仕様変更とかが色々あるみたいだけど。
そのまま品川に継続して勤務とかなら、まぁ全然いいんだけどさ。環境も悪くなく、周囲の人も一部を除いていい人多いしね。
でも、ウチの会社から品川に常駐してる人が一人いるんだよね。えーと、名前何ていったっけな。聞いたばっかりなのに忘れた。
品川の職場では結構近い席だったんだけど、話す機会がなかったんだよね。ってかさ、電話口で英語バリバリなのはカッコいい。
たまに後ろを通ってディスプレイをチラ見するんだけど、何やらメーラー開いててやたらと英文がズラズラ並んでるとか……。
おぉー何だかよくわからんけどカッコいいぞとは思うんだけど、絶対手を触れたくない領域であるような気がしないでもない。
某国家公務員がNOVAに行き始めたとか言ってたが、いかがなもんだろう。やっぱり英語はどんな業界でも必要なんだろかねぇ。

2004/10/04 Mon.

とりあえずこの話題から。こちらの画像をご覧下さい。いかなる形であれ、ウェブ系の開発をした人なら知っているサイトかと。

うわぁぁぁ、何という事がっ!?「あの」mikeneko氏が亡くなっているようです。数々のウェブ製作者の開発を助けたmikeneko氏。
.htaccessのリファレンスに関しては、凄まじい数の利用者がいたのではないのでしょうか。ウチのトップにもリンクがあります。

@@@ 管理人が死んだ場合 2回目 @@@

80 名前:Name_Not_Found 投稿日:04/09/26 00:10:43 ID:i9NIKjh4
ミケネコさん。お世話になりました。安らかにお眠りください。
81 名前:Name_Not_Found 投稿日:04/09/26 10:52:06 ID:OzHHfFK6
げ。ミケネコ氏も死んだのか...。
本格的なサイト管理者って、やたら早死にとか多くない?
82 名前:Name_Not_Found 投稿日:04/09/26 12:27:40 ID:???
ミケネコ氏、ショックですね。
いままでなんやかやとお世話になって、まるで永遠にサイトが続くように思っていました。
悲しいことですが、これも自然の摂理。自分にも訪れる日が来ると実感しました。
合掌。
83 名前:Name_Not_Found 投稿日:04/09/26 14:10:34 ID:???
俺もあのサイトにはお世話んなった…
ご冥福をお祈りします。
84 名前:Name_Not_Found 投稿日:04/09/26 14:24:25 ID:???
ミケネコが無くなったのが痛いなあ・・・
せめてコンテンツを残しておいて欲しかったが・・・
85 名前:Name_Not_Found 投稿日:04/09/26 17:27:13 ID:???
2~3日前まで見られたミケネコさんのサイトが無くなってて来てみれば・・・。
めっちゃ、お世話になりまくりだったのに。
すごいショック。
せめてコンテンツを残して置いて欲しかった・・・。
ご冥福をお祈りします。
86 名前:Name_Not_Found 投稿日:04/09/26 17:44:54 ID:???
昨日、ブックマークからついつい何度もアクセスしてしました。解っちゃいるのに…
いつも、解らないことがあればアクセスしてた…。ネット上で失った物はかなりあるけど、
いつも、あたりまえの様にアクセスしてただけに、無くなった時の空虚な思いは大きい…
HTMLの基礎を教えてくれたのもここでした…
CSSのなんたるかを教えてくれたのもここでした…
Web制作関連のサイトは数あれど、俺にとってはこのサイトは最も見やすく、最も読みやすいサイトでした。
特に例を示しながらの CSS は説得力あった…今の google で検索トップにでる .htaccess の
設定方法を覚えたのもこのサイトでした…

今まで、ありがとう…さようなら。
御冥福をお祈りします。

自宅サーバー設定関連では、かなりこちらのサイトにお世話になってました。何かとわかりやすい説明方法は彼ならではです。
あー、何つーか、お気に入りかつ超実用的なサイトが無くなると、結構ダメージが。しかも管理者が亡くなったなんて話は……。
ただ、サイトが閉鎖してしまっても、現在に生きるウェブ製作者達はmikeneko氏の事は忘れないでしょう。素晴らしい方でした。
うぅ、マジなのかよmikeneko氏……。俺からも一言、ご冥福をお祈りします、とだけ言わせて下さい。すんげー空虚な気分だ。

で、ここでリアルタイム更新開始。ちなみに今は14時40分だ。OK、ここは簡潔にいこうじゃないか。ってか、簡潔にさせて下さい。

ある日、手紙が届きました……
          _____
         / ヽ____//
         /   /   /
        /   /   /
        /   /   /
       /   /   /
       /   /   /
      /   /   /
       ̄ ̄ ̄ ̄ ̄

       | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
       |                    |
       |                    |
       /    ̄ ̄ ̄ ̄      /_____
       /              /ヽ__//
     /   浜松町に逝け   /  /   /
     /              /  /   /
    /   ____     /  /   /
   /             /  /   /
 /             /    /   /
  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/    /    /

ぬぁぁぁ、何でいつも俺ばかりこういう事になるんだっ!納得いかねーぞ!責任者出て来い!ついさっき話をしたばっかだけど!
あぁン?「駅すぱーとで調べたら遠くなかったじゃん」だとぉ!?てめぇ、ウチから駅まで歩いてみろ!それだけで20分かかるぞ!
てめぇの脳内では、通勤時間と電車乗ってる時間は必ず同じなのか?脳内は年中お花畑ですか、そうですか。おめでたいねぇ!
京王相模原線はな、朝は特急が無いんだよ!わかってんのか!?わかんねぇんだろうなぁ。日本語通じるか?在日逝ってよし。
OK、心が超寛大な俺様から妥協案を提示してやったぞ。ありがたく受け取っておくんだな。クソ営業もマジで頭悪い。クソだしな。
一つ、朝の出社時間を遅らせる事。浜松町勤務で9時出社とかやってられるかってーの。アホじゃねぇのか、そんくらいわかれよ。
一つ、期限を明確にする事。あのな、再来年の3月までなんかやれるワケねぇだろ。フェーズで区切って考えてみろや低脳ども。
てか、立川の案件じゃねえ。自分の低脳さを丸出しにしながらも日々の生活資金稼ぎに必死な営業は生きてて恥ずかしくない?
東京支店の知り合いから聞いたぞ。お前、東京支店で使えんって言われてこっちに飛ばされたんだって?低脳証明お疲れ様。
この際だから、いっそ関東圏から消えて下さると、非常に我が社に貢献できると思われるのですが、いかがなものでしょうか?
何でこうロクでもない話ばかり俺のとこに来るんだ。ってか、ロクに営業活動してないお前らのせいで業績落ちてんじゃないの?
最近営業活動はどんな感じでやってんだと聞いてみると、「どこも営業は大変だし、案件もそんなたくさん無いからねぇ」だとさ。

        ┏┓          ┏━┓            ┏┓                          ┏━━━━┓
  ┏┓  ┗┛    ┏┓  ┗┓┃┏┓┏┓  ┏┛┗━━┓┏━┓              ┃┏━━┓┃
┏┛┗━┓┏┓┏┛┗━┓┃┃┃┃┃┃  ┗┓┏━━┛┗┓┃┏┓┏━━━┓┗┛    ┃┃
┗┓┏━┛┗┛┗┓┏┓┃┗┛┃┃┗┛    ┃┃    ┏┓┗┛┃┃┗━━━┛    ┏━┛┃
┏┛┃┏━┓  ┏┛┃┃┃    ┃┗━━┓  ┃┃┏━┛┗┓  ┃┃              ┃┏━┛
┃┏┛┗━┛  ┗━┛┃┃    ┗━━┓┃  ┃┃┃┏┓┏┛  ┃┃┏┓          ┗┛
┃┃┏━━┓      ┏┛┃    ┏━━┛┃  ┃┃┃┗┛┃    ┃┃┃┗━━┓    ┏┓
┗┛┗━━┛      ┗━┛    ┗━━━┛  ┗┛┗━━┛    ┗┛┗━━━┛    ┗┛

2004/10/05 Tue.

昨日散々疲弊したせいで、今日がもうすでに週末に思えるんだけど、まだ火曜日かよ。浜松町行くのはいつからなんだ?
そんな鬱になることばかりを考えていてもしょうがないので、ここはやはりプログラミングで現実逃避をする。かなりおすすめ。
長らく放置していて、ようやく今の知識で何とかなりそうになってきたので、サイト内検索のCGIをあれこれと組んでみたりする。
アレだ、BBSでの検索機能が完成したからこそできるのです。こういうのは知識の習得になるのかな。何だか地味すぎる気が。
とりあえず組んでみようってことで、ささっと書いてみました。おぉ、一応動くぞ。キーワードを含むHTMLだけを抽出するのです。
でも、何だか挙動が不審。とりあえずクソ重い動作をかけているので、レスポンスがやたらと悪いのはお察し下さいってことで。
適当にキーワードを打ち込んで動くのはいいんだけど、ファイルに存在しないキーワードを検索にかけると、該当ファイル有りに。
ありゃ、何がおかしいんだか。さすがにBBSの検索機能のロジックを丸ごとこっちに持ってきたのは、微妙にマズかったのかな。
例えば、HTMLのタグを全て取っ払った上でキーワードからの抽出をしてるけど、キーワードに「BR」とか指定すると動いてしまう。
でも、HTMLが取っ払われてるのは確認してるし、もちろんファイル内にもそんな言葉は記述してないし。えぇー、何なんだぁ。

2004/10/06 Wed.

何となーくだけど、サイト内検索機能のバグの原因がわかった気がする。うーん、これを直すのは激しく手間がかかるなぁ。
キーワードに「BR」を指定して検索すると、そんな言葉は対象ファイル内には存在しないにもかかわらず抽出されるバグ。
とりあえず、普通に調べたのではわからないので、色々な方法を試すことに。まずはWindowsの検索機能を使って試してみる。
例えば、何でもいいのでテキストファイルを作って、その中に以下の記述をしてみて下さい。

CDを焼きたい。Rを買いに行かなければ。

こう書いたテキストファイルを保存して、Windowsの検索にかけます。フォルダを開いてCtrl+Fで検索ウィンドウが出ますね。
対象ファイルはテキストなので、ファイルまたはフォルダの名前に「*.txt」と記述。含まれる文字列に「BR」と指定して検索です。
……どうなりますか?OSによっては「もしかしたら」違うのかもしれませんが、作ったテキストファイルが結果に出てませんか?
少なくともWindows 2000では確認できてます。キーワードは存在しないのに抽出されてしまう。しかし、バグではなさそうだ。
次に、先ほどのテキストの中身を以下のように編集し直してから、再度検索にかけて見て下さい。

CDを焼きたい。
Rを買いに行かなければ。

間に改行を入れるだけです。この状態で、先ほどと同じように条件に「*.txt」と「BR」を指定。さて、どうなるでしょう。
不思議な事に、今度は検索結果に出てこないはずです。これはまたややこしい話になってきました。これは一体何なのか。

まずは日本語環境というものをある程度理解する必要があるかもしれません。それでは最初にPerlが扱うテキストファイルから。
Perlの機能の一つにファイルテスト演算子があります。テキストファイルなのかバイナリファイルなのかの判定などもできます。
しかしながら、もちろんPerlそのものが開発された言語環境は英語です。ここに大きな落とし穴があったりします。要注意。
例えば、先ほど作ったテキストファイルをPerlでテキストファイルなのかバイナリファイルなのかを判定してみるとどうなるか。
どう見てもテキストファイルにもかかわらず、このファイルはバイナリファイルと解釈されてしまいます。一体何が起きてるのか。
すなわち、「日本語環境で動かす事はできるが、開発環境が英語圏であるため、マルチバイト文字を認識できない」ということ。
Perlで扱えるテキストファイルは一般的にplain textと呼ばれます。簡単に言うと、全部が半角英数字だけのテキストのことです。
そこに半角英数字以外の文字がやたらと混ざっているテキストファイルを読み込ませても、解釈できない文字として扱われます。
そうすると、Perlは「このファイルはplain textではない」という判定を下し、その結果バイナリファイルとして解釈されてしまいます。

今回のバグの件とどう関係があるのか。Perlがバイナリファイルとして認識するなら、こちらもバイナリファイルとして扱います。
そういうワケで、「BR」という文字列が無いにもかかわらず抽出されてしまうファイルを、あえてバイナリエディタで開きます。
んでもって、「BR」という文字列が無いファイルにあえて「BR」をバイナリ検索してみる。ここで、驚くべき事実がっ!

な、何だってー!?検索がヒットしてますよ奥さん!これは……いわゆるS-JISでのPerlの文字化けと似たような原因だろうか。
しかしながらよく見ると、この中には「BR」という文字は見受けられない。だけど検索にはヒットしている。これは何故かっ!?
幸いな事に、自分の雑記の中で「BREW」という言葉を使っているため、今度はこの言葉で検索をかけてみる。その結果がコレ。

両方の画像を見ればわかると思うのですが、バイナリでは「BR」という文字列は「4252」として表現されていますね。
すなわち、「BR」で検索するという事はバイナリの「4252」で検索するという事と同義だったワケです。真相が近づいてきました。
一部の人は疑問を持つでしょう。前者の画像では「4252」でヒットしてるけど、実際の文字列部分には「R」しかないぞ、と。
ここが大きなトラップ。前者の画像の文字列部分を見て下さい。「R」の前に「。」がありますね。これが今回の元凶です。
「。」はマルチバイト文字なので、バイナリでは4桁で表示されます。画像は省略しますが、「。」を検索すると「8142」にヒット。
解明しましたね。「。R」という文字列に対して「BR」で検索をかけると、「814252」に対して「4252」で検索することになるワケだ。
確かにこれだとヒットするよなぁ。テキストファイルをバイナリファイルとして誤認する事によって発生する問題ってことですかね。
え、これを直すのかって?えーと、何か手っ取り早い方法はないモンかねぇ。この件は、ちょっと自分にはわかりかねますね。
ちなみに、Perlの一種で日本語に正式対応していると思われる「JPerl」がありますが、これなら正しく処理できるらしいです。
でも、汎用性を求めるならば特殊な環境は使いたくないしね。滅多な事ではモジュールを使わないのもそのせいだったりします。

んで、最後にちょっとオマケ。二種類作ってもらったテキストファイル、何で後者の方は「BR」の検索でヒットしないのでしょうか。
普通に文章を読み書きしているだけではわかりませんが、文字制御コードとかいう色々な特殊文字が存在していたりします。
後者のテキストファイルでは、「。」と「R」の間に改行コードと呼ばれるものが付加されていたので、検索にはヒットしないのです。

……ってかさ!何でまた、よりによって「BR」なんかで検索してみようと思ったんだろうねぇ自分は!勉強になったけどさ!
それ以前にPerlもマルチバイト文字にしっかりと対応してくれってーの!何かと色々ややこしくてたまらないんだってーの!

2004/10/07 Thu.

とりあえず昨日発覚したバグは放置して、サイト内検索をあれこれと。結構いい感じで仕上がってきたと思うけど、どうでしょう。
このCGIに課せられた課題は大きなもので2つ。まずは前者の検索キーワードの判定ミス。果たしてEUC-JPで対策可能か。
次に、ファイルの中身を一部分表示するときに、検索したキーワードの前後を表示するようにしたい。これは激しく難しそうだな。
そういえば、BBSも同様のバグがありましたよ。「。R」とか書き込みして、「BR」で検索すると出てきてしまいます。あいたたた。
そもそも標準環境でのSHIFT-JISなのに、何でいちいちEUC-JPを想定して組まなきゃならんのだ。対応しないPerl本体が悪い。
まぁそんなことを愚痴っても、マルチバイト文字に正式対応したPerlが出るのは当分先の話だろうから、しょうがないわな。

で、明日なんだけど、どうやら一回浜松町まで出向く事になりそうだ。マジで行きたくない。金払ってでもご勘弁願いたい。
とりあえず半年とか軽く言いやがるけど、多摩センから浜松町に半年通うってのは相当キツいぞ。わかれよクソ低脳どもめが。
あー、Javaなんてロクにやってないんですけど。スキルの無さを丸出しにして、手っ取り早く向こうに断られてこよっかな。

2004/10/08 Fri.

EUC-JPってのは便利ですね。ようやく先日発覚した検索ミスのバグを直すことができました。EUCの正規表現は素晴らしい。
んで、早速これを他のものにも導入しようかなーと思っているところへ、一本の電話が。16時に浜松町の北口に来いとのこと。
うへー、こっちは行ってやるって立場だってのに、向こうは何様のつもりでしょうか。俺様至上主義の痛い方なんでしょうかね。
で、ウチのクソ営業と向こうの方と喫茶店でしばらくあれこれ雑談というかヒアリングというかをする。大体1時間ちょうどかな。
どうやら激しく火を噴いているプロジェクトのようで。聞いた話からだけでも、品川以上の激務は容易に想像できます。却下。
そもそも、火を噴いているJavaのプロジェクトにJavaの素人を連れて行くなと。Javaでの業務経験1年以上?俺は10ヶ月です。
さすがに問答無用で自分の考えを叩きつけるワケにもいかないので、三重くらいのオブラートに包むお決まりの言いまわしを。
そんなこんなで、こちらの本心を何ひとつ伝えることなく、浜松町での話し合いは終了。まぁ、行かなくて済むことになりそうだ。
話し合いが終わったのが17時ちょいで、そのまま直帰することに。クソ営業と同じ電車がイヤだったので、渋谷で降りることに。
どっか寄っていこうかと思ったけど、腹が立っててそんな気分ではなかったから、結局また山手線に乗って帰ることにしました。
台風来てんだよなぁ、雨風が強くてスーツが濡れまくり。ちくしょー、先日クリーニングから返ってきたばかりだってーのにさぁ。

2004/10/09 Sat.

携帯が止められてます。

受信はできるが発信ができねぇ。