Contents

善意よりもカネらしい・・・( May 30 2000 )

えっと、某団体の過去ログの件。データの三分の二はできてたけど、いい子ぶった協会員に水をさされたのでもう進める気がなくなりました。
ステキなサムシング・・・。

> Back 2 Contents

言い出したら死刑(ぐは( May 26 2000 )

 某暴力団体・・・もとい、シェアウェア作者協会(いやー、協会のヒトの一人が「この協会には武闘派の人間もいる」って言ってたし、・・・あ、単に警察に流すだけだったっけ?)の掲示板のログ、見てみたいけど・・・見れないんですよね、これが。検索もできないし。・・・ってんで、この掲示板に「XML形式でログ作ります」って書いてしまったんだな、これが。<ォィ
 端末室で、ラクダ本(オレイリーのPerlマニュアルっす。理解できないやつはラクダ固め・・・違うか)を読みながら、掲示板のログの切り刻み方を考えてみる。前日、TOC氏としゃべっていて、「Perlの正規表現を使いこなせばどんなログも操作できる」ってつぶやいていたのを思い出す。掲示板のログに相当するHTMLを見回してみると、XML化に「不要」なタグばかりである。SPANタグ、IMGタグはもちろん不要だ。FONTタグは、投稿者名をあらわすとき以外は要らない。Aタグは、NAME属性(投稿番号)と、HREF属性にメアドが入っているときと、HREF属性が親記事を指すとき、この3種類以外は全部無視。あ、XMLするときはBRタグは閉じるんだっけ・・・こんなことを考えながら、ひとまずXMLっぽい塊はPerlと手作業から作られたのである。そのサイズ、2500件、4MB。
 さて、XMLファイルができたらひとまずIEのXMLパーサ機能にかけたくなるのが心情である。早速IEにドロップ。4MBもあるから、多少は待たされるんだろうな・・・と思っていたが、思いのほか、結果の表示は早かった。上から200件目のあたりで、パースエラーが出たのだ。また、エラーが謎で、「セミコロンが足りません」というものだ。・・・これは、このBBSの仕様らしい。というのは、<と>は、それぞれ&lt;&gt;とエスケープするのに対して、&は・・・エスケープしないのだ。ォィォィ。まあ、実際IExでは&はエスケープしなくてもHTMLモードなら表示できるけど、XMLモードだと・・・「実態参照」とかが関わってくるので、ちゃんとエスケープしなくてはいけないのだ。・・・ごっつ大変やんけ(苦笑)
 さーて、ログを十分こねくり回して、改めてIE5のXMLチェックにかけてみる。おお、エエ調子、エエ調子。・・・何時まで待たせるつもりだ・・・とか思ったら、そりゃそうだ、「エレメントごとツリー表示」をするから重いのだ。ここで、適当に「メッセージ番号だけ表示」なXSLを利用するように設定・・・おお、速い速い。およそ5秒(PentiumIII500MHz、メモリ128MB、Win98)。ちなみに、「XSLなし(実際は、エレメントごとツリー表示な、Microsoft標準のXSLを使っている)」だと・・・2-3分はかかるね。
 とりあえず、XML自体はできたので、あとはスクリプトあるいはVCでのコードを作成するだけ・・・かな(^^;

> Back 2 Contents

xsl:evalに泣く( May 18 2000 )

List1 泥臭い方法(苦笑)
根元(document)部の処理。
<xsl:for-each select="section" order-by="-number(date)" >
<h2><xsl:value-of select="title"/>( 
<font size="2"><xsl:apply-templates select="date"/></font>
	 )</h2>
<xsl:apply-templates select="cts"/>
</xsl:for-each> 

date部の処理。
<xsl:template match="date">
	<xsl:eval>myfc(this.text)</xsl:eval>
	</xsl:template>
 このコーナーは、前に述べたとおり、xml と xsl で記述して、あとで html 形式でレンダリングして公開しているのですが、日付出力部分がうまくいかなくて、ずっと悩んでいました(
ココ参照)。xsl:param、xsl:valueの2つがxsl:eval内で使えないってことはかなり痛いので、別の方法を探していたら・・・解決策は、Javascript式に比べて少し泥臭いですが、ありました。(List1)文書の構造が、日記1日分(section)の中に日付(date)と題(title)、それと本文(cts)の3つに最初から分けてあったのが多少なり良かったみたいです。あ、このmyfcって関数は、文字列型の引数を拾ってバリアントで返すヤバイ関数です。 xsl部分 を見ると、暇つぶしになっていいかもしれません。
 この前の「ILoveYou」事件でも、HTMLへ埋め込み可能なスクリプト言語の危険性が指摘されています。Javascriptを嫌う人に、わざわざ日付表示(文書処理)のためだけにJavaScriptをOnにしてもらうのも気が引ける。せっかくXSL使うんだから、HTMLへのレンダリング過程で一緒に文字列処理もやってしまいましょう。でも、流石に、レイヤーの開閉だけはJavaScriptに頼るしかありません・・・でも、実際、この「ソース表示レイヤ」閉じる人、いるんですかね。最初は、このソースレイヤは閉じた状態で、見たいときだけ開ける・・・って風にするつもりだったんだけど、JS嫌いな知り合いがいるんで、最初から見せておいて、・・・閉じる必要なんて、本当はないんだよね。最初から見せてるんだから。
 XSLのスタイルいじりには慣れたけど、肝心の「C++でXMLを直にいじる」ってこと、全然取り組めてないんだよね。MSXMLを使おうとすると、IDLコンパイラのエラーでサンプルのビルドに失敗してしまうし、IPEXは・・・実用させようにもちぃっと費用がかかる(数十万円だったかな)し、expat等の海外のライブラリもイマイチ導入できない(英語をしっかり読んでないからかな?)。MSXMLだと、IE5以上でないとまともに動作してくれなさそうなので、できればexpatを使いこなせるようになるといいんだけどねぇ・・・。
 あ、今回のXSL改造で、「Contents」も表示させてみましたが・・・どうでしょうか?XML自体をほとんどいじらずに、XSLのみを手直しするだけで、HTMLに変換したときの質が大きく変化するのは、やっぱり凄いものがあります。

> Back 2 Contents

TNT2m64を使ってみた!( May 14 2000 )

 マシンの不調などで、ここんところ、コード書きも何もできなかったので、久しぶりの日記の更新・・・になります。あれから、PentiumIIIも無事届いたし、何を思ったかオーバークロックしたら案の定キャプチャカードが逝ってしまったし(ォィォィ)、ということで来月は改めてキャプチャカードを買う羽目になってしまった。<自業自得
 さて、おーばーくろっくに耐え切った連中(とりあえず、ベース100MHZで駆動させてます)で、この記事を書いているのですが、その・・・PIIIを落札する数日前に、TNT2m64とWindows版FF8を購入していたりします。はい。だって、欲しかったんだもの。FF8をやるなら、パソコンのモニタよりも、やっぱりTVでしょ・・・って訳でもないけど、今回のTNT2m64搭載カードは、S端子・コンポジット両対応のビデオ出力がついています。カードを差し替えて、付属のドライバを入れて・・・性能を見てみました。2Dに関して言えば、なんと、似非AGPのBansheeより落ちています(笑)かたや、SGRAM、かたや、SDRAMってことなのか、それとも、内部的に128なBansheeと内部的に64なTNT2m64の差ってところか。どちらにしろ、ベンチ的には遅いです。困ったさんですね。では、3Dではどうなのでしょう。どことなく、TNT2m64の方が上です。16MBしかない、今までのカードより、32MBある、今のカードのほうが、管理できるテクスチャの量が多いので、その分だけ表現度が上だったのかもしれません。FinalRealityの結果では、AGP2倍モード対応(マザボがAGP2倍までなので)が幅を利かせたのか、やっぱりTNT2m64の方が上でした。あとで、3DMark2000で実験してみます。
 テレビ出力のほうですが、こちらはまた綺麗。自分は、Bleem!なる、Playstationエミュレータを持っているのですが、テレビ画面でR4をやったときは少し感動モノでした。カード製造元のAOPenのドライバでは、640*480 32bit color が限度でしたが、本家nVidiaのドライバでは、ちゃんと800*600 32bit color で表示できました。しばらくはPlaystationっぽく遊べそうですわ。
・・・プレステ、何台買えたんだか(笑 >ヲレ

> Back 2 Contents

ねっとおーくしょん( May 07 2000 )

 そろそろ、KNI対応CPUが欲しいなぁ・・・なんて思いながら、ネットオークションをさまよってみた。ま、具体的には、Yahoo!オークションなんだけどね。当初は、Celeronの566Mhzを狙ってたんだけど、自分のマザーボードが8倍掛けまでしか対応していなかったので、素直にPentiumIIIをゲットすることだけを考えることに。また、Pentium IIIといっても、Katmai版とCoppermine版の2種類があります。自分のマザーボードは、Katmai時代のボードなので、Coppermineだと少し不安だったので、Katmai版PentiumIIIの獲得にチャレンジしてみました。
 Yahoo!オークションの場合、出品リストの確認(「ひやかしましたなー、おもいきりひやかしましたなぁー、いいですなぁーひやかしはー」@Dejiko)はYahoo!に登録しなくてもOK。入札は、Yahoo!に登録・ログインしてから行います。お目当ての石を決めて、いざ、入札。・・・結局、Katmaiの500Mhz(100*5)を20500円で落札しました。まあ、それなりのお値段ってとこですかね。ちなみに、550Eの大須価格は、24,800円です。
 で、出品者の方も、過去に数十件の商談をまとめてきただけあって、かなりの凄腕(かな?)。ゆうパックの、インターネットを利用した追跡なんてサービスも、彼から教えてもらいました。国内なら、Fedexみたく追跡ができるんですよ。荷物についていかなくてもいいんです(笑
 さあ、商品が来るまで待つとしましょう。(^^)

> Back 2 Contents

This XSL was written by kotetsu@imart.or.jp