とりあえずXML

perlを使った簡単なホームページ作成法を探しているうちに、XMLに出会いました。 XMLに対応しているブラウザは、IE4以上、NN6以上のようで、そのままホームページにしてしまうにはまだ抵抗がありますが、Accessのようなデータベースで処理できにくいデータをXMLファイルにしておき、perlでHTMLに書き出せば楽できるんじゃないか、と考えています。今、使えそうなサンプルを探し回っているところです。
 言ってることが二転三転してますので、ご注意下さい(^^;)。

2000/04/08

perlmonthのチュートリアルのうち、とりあえずXML::ParserのStreamを使った方法を試す。やりたいことは、一つのイベント情報ファイルから、属性がyesとなっている、該当するイベント情報だけを抜き出すこと。DOMを使う必要があるのかどうかもまだよく分からない。とりあえずStreamで可能かどうか、試してみる。(と言うようなことが書ける所まで、やっと来た。perlmonthのお陰です

2000/12/07

早くしないと今年が終わってしまう(^^;)。webに限定するならもう少し便利なものがありそうらしい。現在RDFを調査中。

2000/12/16

RDFはとりあえず脇へ置いといて…(^^;)昔、脇へ置いといたAxKitに挑戦中。やはりここに舞い戻ってしまった、と言う感じ。Axkitを動かすには、mod_perlが必要と言うことなので、perlの入れ替えを行いました。ActivPerlのbuild620にすればppmで簡単にmod_perlがインストールできたのですが、Apacheの設定で挫折(T_T)。設定の簡単そうなWindows用mod_perlのバイナリーセット(Apache Perl SSL DBI...)をダウンロードしました。猿(私)にもわかる親切なreadmeファイルが付いているわ、Apacheの設定もローカルマシンではそのまんまでもとりあえず動くわ、SSLまで付いてるわ、cgiとmod_perlの違いを比較できるサンプルも付いてるわ、で一番の難関は、ISDNの回線使って13MBのファイルを落とすことでした(^^;)。以下、猿にもできた強硬手段

  1. ここの指示に従い、ファイルをゲット
  2. インストール済みだった、Apache,ActivePerl522をアンインストール(^^;)
  3. 1.でダウンロードしたファイルを解凍、指示に従い移動、パスの書き換え(mod_perl、mod_sslどちらもすんなり動く)
  4. jperlを復活させるため、ActivePerl522を /usr/local/bin に再インストール
  5. jperlをインストールしようとして、真っ青。以前はファイルの移動だけだったはずなのに、インストールプログラムが付いている。パスを書き換えperlを古い方に戻して再起動、perl -v で5.003になるのを確認、jinstallを実行。無事jperl復活。
  6. パスを5.6に切り替え、apacheを起動。まず、今までのjperlのcgiが動くか試すが、サーバーエラー。DOS窓から実行すると、DBI.pmが見つかりません(^^;)。そりゃそうでしょうねぇと、ppmでインストールしようとしてまた真っ青。再びパスを5.003に切り替え、再起動…もっと楽な方法があれば教えて下さい(^^;)。
  7. この際なので、必要になりそうなものはありったけppmでインストール。再度パスを5.6に切り替え、再起動してapacheを立ち上げ。無事古いプログラムも動くようになりめでたし、めでたし(cgiのパスの書き換えがいっぱい残ってしまいましたが…後悔はしてませんね)。

2000/12/19

Windows用AxKitを自分でコンパイルするには、nmakeだけではだめで、VC++が要るんですって。う〜ん、お金はなるべく出したくない、と言うことでまたまたJavaに浮気。Java版AxKitのCocoon(と言うかAxKitがperl版のCocoonのようなものだとあったので)に挑戦。必要なファイルを落とすだけ落とし始めたものの、mod_perlの13MBなんてめじゃない。ヴァーチャルマシン(30MB)のダウンロードで遂に挫折。おまけにInstall のページを見ればこちらも、Even if win32 distribution comes with precompiled binaries, the mod_jserv module and the native wrapper need a C compiler in order to operate correctly. Currently only Microsoft Visual C++ (version 5.0 or higher) is supported.ですって(T_T)。
Visual C++買うくらいなら、中古のパソコンか外付けハードディスクでも買って、Linuxか何か入れたい気もするけれど、マニュアルの付いたVisual C++があっても良さそうな気も。思案のしどころです。

2000/12/20

VC++6.0買いました。1万足らずでやはり一番経済的。何故かマニュアルの代わりにアスキーの「VisualC++6.0 プログラミング入門」が付いている(^^;)。
AxKitのメーリングリストを通じて、上記バイナリー版の作成者、Randy Kobes氏に送ってもらったMakefile.PLのウインドウズ用パッチをあてて、今度こそ!で実行…あなたのApacheのソースコードはどこ?ときた。そんなものありませんがな、でApacheのソースをダウンロードし、srcフォルダだけApacheのルートへコピー(こんなんでいいのかな)。そしたら今度は、mod_perlのソースはどこ?ときた(^^;)。ダウンロードしてコピー。が今度はあるはずのファイルが無いと言われる。Makefile.PLをいじくっていると、どうやら違うところを探しに行っているらしい。強引にパスを修正し、再度実行で、今度はパソコンに存在しないファイルが見つからない、と言われる。不吉な予感的中…どうもApacheのコンパイルからやり直す必要があるらしい。めげめげ(T_T)。

2000/12/22

ここを見ながらついにアパッチを自分でコンパイル! Apache/1.3.14(Win32) running...の文字が出た! C:にRandy Kobes氏のApacheを残したままD:のルートに入れ、パスは書き換えていないので少し不安だが、Randyの方は1.3.12だから間違いなさそう(^o^)v。
だが、まだ道程はとおい…。

2000/12/23

mod_perlのコンパイルはnmakeだけではできないようで、初めて使うVisual Studio。mod_perl付属のファイルを読みながら、言われるままにビルドまでこぎつけるが、エラー1、ワーニング0。どこを見ればエラーログがあるのかも分かりません(^^;)。困った時はwebで検索。こんなページを見つけました。「FileViewより「ApacheCore.lib」および「perl.lib」を削除」の部分が抜けていたようで、削除するとエラー0になりました。コメントアウト云々のところは無視しても大丈夫でした(少々不安ですが)。Randyのhttpd.conf-perlをもらってapacheを起動すれば無事mod_perlが動きました。残るはAxKitのインストールだけ…と思ったのが甘かった。nmakeでLINKがどうのこうのエラーが…。果たして私のパソコンでAxKitが動く時が来るのでしょうか(T_T)。perlも自分でコンパイルする必要があるのかな?

2000/12/31

一応今世紀中にAxKitのコンパイルだけできました。ポイントは、Apache、mod_perlとも自分でコンパイルする。mod_perlのソースはhttp://perl.apache.org/from-cvs/modperl/から最新版をダウンロードしないと駄目(2000/12/24現在)。AxKitのMakefile.PLを実行した時のワーニングが全部消えるまで、見つからないと言われたものはインストールし、古すぎると言われたものはアップデートする(「may be harmless」を真に受けてはいけない)。
 だが、これで動くと言うわけではないんですね(^^;)。Apacheが立ち上がってくれません(T_T)。ロードできるモジュールがありません、INCはここと、ここと、こことと書いてあるその中にちゃんと存在するモジュールが!

2001/01/07

XMLファイルを簡単に編集できるソフトを捜し、「XML」、「エディタ」、「フリー」で検索したら(^^;)、エディタの代わりに、AxKitの代わりになりそうなものを見つけてしまいました。ここ(なかなかいいページです)からたどれる横浜ベイキットのXML Server(BXS)! 日本製だと言うこと、インストールの簡単さと商用サーバー等への移植性の高さを目指しているそうで、私のようなのにはお誂え向き! cocoonやphpも動くみたいだし。で、腹をくくって懐かしのjdk(20MB)を二晩がかりでダウンロード。BXS(3MB)も無事ダウンロードでき、指示通り解凍してbxs.batを実行したところ、「JAVA_HOMEを特定しろ!」と怒られる。どこを読んでも特定の仕方が分からない。しょうがないので職場でJAVAに詳しいTくんに聞き、bxs.batに「SET JAVA_HOME=C:/jdk1.2.2」の1行を追加。やっとの事で、私のPCでXMLアプリケーションサーバーが立ち上がりました(^o^)。
 で、まずやったことは、AxKitの中のサンプルをごっそりBXSの下にコピー(^^;)。ところが動かないんですね、これが。MattくんのサンプルはスタイルシートにXPathスクリプト(なんかパールっぽい)を使っていて、これをBXSが解釈できないんでしょうか。で、しょうがないからAxKitのクイックスタートのサンプルをコピーして動かしてみると、無事動きました。XMLファイルとXSLTファイルを組み合わせてHTMLとして出力する、と言う考え方は同じようです。

2001/01/08

フリーのXMLエディタを求めてFree XML tools and softwareから軒並みアタック。たまたま一番最初にダウンロードしたマイクロソフトのXMLpadがシンプルで気に入ったけれども、日本語で編集する方法が分からない。とりあえず横においといて他に使えそうなのを捜す。W3CのAmaya、パス。IBMのXeenaもパス。ChannelPoint,Inc.のMerlotがとりつきやすそうかな、というところ。頑張ってjdk落としたお陰です(^^;)。次に必要になるのはDTDですが、Web用のDTDて結局htmlのDTDになるんだろうか?(^^;)。ここで道を誤ると後が大変そうなので、時間をかけて調査するつもり。

2001/01/14

MLからタイムリーなアドレスが流れてきました。HTML Tidyは結構使えます。htmlファイルをxhtmlに変換してくれるありがたいソフト。xhtml変換するとどんなメリットがあるかと言うと、xhtmlファイルだとXMLパーサでいじくれる―つまり、正規表現に詳しくなくてもプログラムでデータの取り出しや入れ替えが可能になるってことでしょう!? やっと本来のテーマにたどり着きました(^^;)。
それにしても日本人に生まれたお陰で余計な苦労がいっぱい。そう言うと隣から「中国人よりはましでしょう?」と言う声が。そうねぇ、と言ったものの日本語だろうが中国語だろうがアラビア語だろうが非英語圏の苦労は似たようなものの様な気が…。

2001/01/16

namazu用のインデックスを作り直そうとしたところ、モジュールが足りない、と言われる。perlを入れ替えたせいらしい。CPANからもらってきて入れるが、どうしてもText::Kakasiのコンパイルが上手くいかない。あきらめてActivePerlに変えたらすんなり動きました。AxKitも捨てがたいのですが、ActivePerlにもインストール不可能では無いらしいので、バイナリーが出るのを待つことにしよう。

2001/02/10

AxKitの1.2がリリースされたのに伴いRandy(最近呼び捨て)からwin32のパッチがMLに流れてもので、早速試すもまた失敗。バイナリーでの配布は不可能でしょうか、とMLに流したところRandyが一晩でppm用のAxKitつくってくれたのですが、XPathScriptを使った方は簡単に動くのに、XSLを使った方が動かない。ああして見ろ、こうしてみろ、こうタイプしたらどんなエラーが返ってくる? とカナダからリモコン操作されているのですが(^^;)、その通りやっているつもりなのに、私がやるとパソコンを替えても同じエラーが出る(T_T)。Randyと同じことをしていると動くはずなので、きっと同じことをしていないんでしょうね(^^;)。超基礎的なことで、向こうは言わなくても当然やっているべきと思いこんでいて、私が知らない何かがあるんでしょう。
しょうがないので日頃お世話になっているActivePerlのメーリングリストで助っ人を募集し、興味を示してくれた岡部さんに(RandyへのメールをCcで)ドーンと振ってしまいました。勝手にすみません、ここで公式にお詫び致しますm(_ _)m。しかし、肩の荷が少し軽くなったようで、たまっているスタートレックでも読もうかなと言う気分(^^;)。

2001/02/11

Randyさんから新しい libapreq.ppd 届く。新しい方で入れれば今までの苦労が嘘のようにすんなり動く。mod_perlかApacheに含まれる libapreq のバージョンの不整合が原因だったよう。後は日本語コードを通すだけ。こうなったら最後までつきあってもらおう。

2001/02/12

AxKitのマニュアルがどこにあるのかわからず四苦八苦。AxKit.ppm内にそれらしいのが書かれているが非常に読みにくいので、確かpodなんたらというのがあったはずだとPerl初心者の部屋で検索。pod2htmlを初めて使って抜き出したマニュアルがこれ

2001/02/17

AxKit 1.3が出たようです。今回はXSPに力を入れたらしい。XPS(XPathScript)と名前がとっても紛らわしい(^^;)。タグタイプで、BXSXiに似た感じかな? 現在AxKitの日本語化を岡部さんにお願いし、私はBXSでXSLTを勉強中(^^;)なので、タグタイプの方が移行しやすいかも。Randyさん、またバイナリー版を作ってくれるかな。駄目なら岡部さんにお願いしよう(^^;)。
XSLTだけではBXSの能力の一部しか活用していないことになりますが、それでもすごい。今まで苦労していたことが簡単にポコポコできてしまう。うれしくって涙がでちゃう(T_T)。便利な世の中になりました。お世話になった皆様、感謝ですm(_ _)m。

2001/02/19

別のパソコンにAxKitをインストールしようとしたら、エラーが出る。よく見ると幾つかファイルの日付が18日になっている。どうやらRandyさんAxKit 1.3用ppmを作ってくれているらしい(^o^)。XSPの名前も見える(^^;)。まだMLに告知は流れてこないのでもう少し待ってみよう。

2001/02/23

AxKit 1.3をコンパイルしようとしたが上手く動かなかったようです。と言うことでActivePerl用のAxKitは現在1.2です。XPathScriptの勉強を始めましたがXSLTとずいぶん勝手が違い四苦八苦。と思ったら一番肝心なものを読み忘れていました。XPathも知らずにXPathScriptを使おうとしても分からないはずだ(^^;)。これで少し前進できるかも。

2001/02/25

XPathScriptは多分、use XML::XPath;が必要ないPerlスクリプトです(^^;)。スタイルシートだと言うからXSLT的な考え方に引きずられて分け分からなくなってしまいましたが、XML::XPathを使ったCGIみたいなものだと割り切ってPerlでガリガリ書いてしまうとすごく楽です。XSLTと違って妥当でないHTMLも書けてしまいます。
現在大きな問題点が一つ。AxKit1.2のXPathScriptにはcall-template()に相当する機能がない! もちろんXSLTを使えばいいのだけれど、一度XPathScriptを使ってしまうとXSLTはすごく読みづらい(^^;)。AxKit1.3にはimport_template() と言う機能が追加されたと聞くと、なおさらXSLTを使う気が起こらない。
1枚のサイトマップ用ファイルから、ご先祖さまの階層に戻っていくナビゲーション用横バーと、同じ階層の兄弟たちを縦に並べたメニューボックスを自動埋め込みしようと思っていたのに、現在のAxKit1.2ではどちらか一方を選ばなくてはならないもよう。Randyさ〜ん(^^;)。

2001/02/28

前記、「現在のAxKit1.2ではどちらか一方を選ばなくてはならないもよう。」の部分は間違いでした。xmlの方で2つのツリーを完全に合成しておけば可能でした。しかし、サイトマップ用のツリーが結構大きいのと、自分に都合のいい書き方ばかりしているので、ボテボテのスタイルシートになり、少しでも訂正するとロードに時間がかかります。一度表示させるとキャッシュされるのでポンと出てくるのでその差がよけい大きく感じられます。スタイルシートを変更した時は、wgetか何かで引っ張り、強引にサイト丸ごとキャッシュ化させとけばいいんでしょうが(^^;;)。HTML化されてキャッシュになってしまえばどんな下手なスタイルシートだろうが、達人が書いたスタイルシートだろうが関係ありませんからね(^^;)。
 冗談はさておき、手抜きをするためページを作成するとき、参照可能な場所は全て参照で済ませ、デザインや構成の違いをif文で済ませ、極力少ないスタイルシートで行こうと思っていたのですが、ある程度スタイルシートのバージョンも用意した方がいいのでしょうか。
 今日はApacheのhttpd.confのDirectoryIndexにindex.xmlを追加。ディレクトリ名だけでindex.xmlが出てくるように変更(直ぐ忘れるのでメモ)。

2001/03/04

決めた〜、決めた〜、AxKitと道連れに〜。と言うことで、BUU(スタートレックのメーリングリスト)でご一緒のおおた@豊中さん(いろいろお世話になりましたm(_ _)m。BXSのメーリングリストはこのままずっと拝読させていただきます。余裕ができたらXiも試して見たいと思っています)がおられるBXSにも未練はありますが、いつまでもうろうろしているわけにもいかずAxKitに決めました。理由はPerlの方がちょっとでも慣れているのが一つ。こいつについて行っても間違いはないかな、と思わせるほどの知識とバイタリティーをMattくんから感じたことぐらいかな。BXSに対する不満があったわけではありません。
スタートレックとXMLの思わぬ接点と言えばもう一つ、googleでつり上げたMattくんのPDFファイルによれば、AxKitは日本語中国語はちろん、クリンゴン語だって大丈夫だそうです。
そして今日、スタートレックのページの更新をしようとしたら、cgiが動かずファイルに保存しようとする。Apacheを入れ替えてから一度は更新したはずなのに。で、httpd.confに直に書いていたAxKitの設定を、<Directory "c:/Apache/htdocs">で囲んでやればcgiと共存できました。XML、Apache、mod_perl、スタイルシート。覚えることが多すぎる。しかしマスターすれば今まで苦労してきたことがサクサクできそう。
ActiveStateのAwardsに日本からMattくんに清き一票を投じておきました。

2001/03/07

今頃XSLTの本が届きました。図入りでまずまずと言ったところ。XSLTの本は一冊あっても無駄ではないでしょう。
AxKit1.2に付属のXPathScriptはimport_template()に未対応ですが、1.3からXPathScript.pmだけ上書きコピーしてやればAxKit1.2でも動くと言うことで、こわごわ試すとちゃんと動きました。こうなればLinuxはやめて2000にしてもらおうかな(^^;)。ポスグレのwin版もあるし、ほとんどwin32で欲しいものが揃ってしまうので。これでxmlの形はほぼ決定。コードはShift_JIS、スタイルシートの指定はなし、DTDファイルのみ指定、メニューファイルの読み込みはxmlファイルのレベルではなくスタイルシートのレベルで行う方がいい、と言うマット君のご意見(たのむから日本人相手にこんなんつかわんといてくれる?)に従いこれもxml側ではなし。できると分かってれば私だって最初からそうしてます。
でぼつぼつhtmlファイルをxmlに変換し始めると、いきなりエラー(^^;)。「−」が引っかかっているのを発見。しかし「−」が含まれていないファイルでもエラーの出るのがある。クリンゴン語でも大丈夫だってぇ?? 目出度いことにトレッキーと判明した(^^)岡部さんにおすがりしようとも思ったけれど、確かロシア語のコードがどうのこうのと言う話題が出ていたのを思い出し、先にAxKitの方に質問を回しました。キャッシュの中のhtmlはutf-8で完全なファイルなのに、それがブラウザに表示されると出力コードをs-jisに変換しようがしまいがきれいにブラウザに読み込まれない。間で何かが起きている。

2001/03/17

「−」が引っかかる件は、Mattさんにお手上げだ(stumped)と言われてしまい(彼からこんな言葉を聞かされるとは思ってませんでしたが)、岡部さんに回したらなんとXMLのFAQでした(^^;)。shift_jisからutf-8に変換するためのマッピングテーブルが幾つか存在すると言うのが根本的な原因で、今回の場合はshift_jisからutf-8にはWindowsのマッピングテーブルを用いて変換され(だからキャッシュのutf-8ファイルは秀丸できれいに読める)ていたのに、utf-8からshift_jisに戻すiconvはUnicode Consortiumのマッピングテーブルをもちいている(らしい)為、解釈時にエラーが発生していました。解決策は、Unicode Consortiumのマッピングテーブルを用いてutf-8で保存してくれるエディタを用いることで、xyzzyと言うフリーだけれど高機能なエディタを使い、保存時に「STD UTF-8n」を指定すると大丈夫でした。

2001/03/21

XPathScript完全攻略―とまでは行かないけれど、期待した出力が得られない時は、謙虚に自分のXMLファイルやXPSファイルをもう一度チェックできるようになりました(^^;)。新しいものを始めた時は毎度のことですが、この域に達するまでが大変です。AxKitとの信頼関係が築き上げられ、今はなかなかいい感じ。HTMLファイルをXMLファイルにコンバートしながら、ぼつぼつXMLファイルの更新をどうするかも考えていかないと。岡部さんお勧めのwikiを試して見るつもり。

2001/03/28

 yuki wikiは結構簡単に動きました。これとCSSを使えば、W3C的優等生のページができあがる気がします。しかし、敢えてタグをグチャグチャ入れたいときもある、と言うことで(^^;)、編集用スタイルシートを一枚追加 ****.xml?style=edit で呼び出すことにし、上書き処理はcgiで行うことにしました。utf-8に変換するためJcode.pmをインストールする必要があったのは、鈴木さんのおかげでppmできました。ファイルの更新自体は簡単にできましたが、更新したxmlファイルをxyzzyで開くと、テキストエリアで入力した部分が、全て改行コードの前に「^M」と言う記号が付いている。xyzzyの過去ログを見ると、これは\crのことらしい。mod_perl対応と言うことで初めて使ったCGI.pmのせいかと思い、cgi-lib.plに変えても同じ。AxKitのせいかと思い、htmlとcgiに変えてもやはりテキストエリアから入力されたテキストの改行コードには余分な「^M」が付いている。どうやら秀丸では表示されないため今まで気付かなかっただけらしい。更新を繰り返しても「^M」増えない(常に1個)だし、パーサーも文句言わないみたいなので、まっ、いいか(^^;)とも思ったけれど、やはり気持ちが悪いので、Perlメモから改行コードを統一するコードをもらってきて入れたらきれいになりました。ぜ〜んぶWindowsの改行コードだから統一する必要ないと思っていたのに。不思議だ。
 テキストエリアにファイルを読み込んでWeb上でHTMLファイルを更新する上での問題点2点

  1. 文字参照が置換されてしまう。
  2. テキストエリア内にはテキストエリア(終了)タグを読み込めない

文字参照の方は読み込んでから再置換すればいいんでしょうが、2の方は? 回避策をご存じの方があればよろしくお願い致しますm(_ _)m。
 さて、お次はデータベースタイプのFAQとNEWSの更新ですが、単純な構造なので通常のデータベースで十分だと思っていたけれど、タイトルや更新責任者などのヘッダ部分の情報をどこへ入れればいいんでしょう? やはりXML対応データベースがいるのかな。とりあえずはテキストで更新かな。


2001/03/30

CSSを勉強中。素っ気なかったこのページに少しだけ使ってみました。


2001/04/01

CSSの勉強を続行中。こころWebからパクってきたCSSをアレンジして使ってみました。どっかで見たようなページになりました(^^;)。しかし、デザインとコンテンツを分離できると言うのはとっても便利です。AxKitの方は最新版1.3_9が3月29日にリリースされてます。スタイルシートにXML::LibXSLTが使えるようになったそーです。

2001/04/01

ショッキングなニュースの為、本日二こま目。AxKitが「どこぞ」に買い取られたそうです。それはないでしょうマットさん、と言いたいけれど、AxKitの良さが認められたと言うことであるので複雑な気持ち。上手く跡を継いでくれる人が現れれば、マット版とオープンソース版とに枝分かれする事になるんでしょうか。今のままでも十分実用に耐えると思うので、有能なプログラマーがいっぱいいるPerlのことでもあるし、きっと現れてくれると信じたいです。これを機にApacheやmod_perlグループと近づいてもらってもいいし。AxKitのサイトは封鎖するようなことが書いてあったので、慌てて最新版のダウンロードだけは済ませました。世の中、何が起こるかまったく分かりません(^^;)。岡部さんにメールを書こうとして日付を見て躊躇。もしかしてエイプリル・フールかも(^^;)。

2001/04/02

ショッキングなニュースはやはりエイプリル・フールでした。んまにもうっ、焦りましたよ。もう少しで大騒ぎして恥をかくところでした。おかげで昨日しこしこ1.3_9を落としだばかりなのに、今日は1.3_91のお知らせ。バグフィックス及びパッチが主のようですが。
話はかわって、CSSは結構ブラウザによって表示がまちまちのよう。同じIEで見ても、バージョンが違うと表示が違う。こころWebからもらったスタイルシートは、括弧の閉じの前に「;」がないため、IE5.5で見ると「;」の無い最後のラインは無視されていました。<DT>タグへのスタイルはNN4.7では正しく表示されません。

2001/04/14

Accessに入っているデータからXMLファイルを書き出そうとすると、またまたIEだと真っ白な画面、NNだと「ドキュメントにデータが含まれていません」のメッセージが。CGIで書き出したxmlファイルをxyzzyで開いて上書き保存すると同じデータがきれいに表示される。見た目はまったく一緒なのに。数百件のAccessのデータの中から一つ一つ「休載」にチェックを入れ書き出しから外しながら犯人探し(^^;)。xyzzyを手に入れるまでエラーを出してくれた、〜、−などは大丈夫だったのに、見つけた犯人はなんと「~」(半角チルダ)!。URLには付き物なのに、これが使えないようでは話になりません。話の弾みでCGI MLに助けを求め、鈴木さん川合さん貞廣さんと、そうそうたるメンバーにお相手していただき無事解決。Jcode.pmではなくUnicode::MapとUnicode::Stringを使ってSJISからUTF-8に変換することで解決できました。どちらもppmでインストールでき、Unicode::Mapのドキュメントの日本語訳が川合さんのところにあり、使い方は貞廣さんのところにあります。
つまづいたのは「$SJSMap = new Unicode::Map("SHIFT-JIS"); 」とすべきところを「$SJSMap = new Unicode::Map("SHIFTJIS");」としていて上手く行かなかったことぐらい(^^;)。
他のやり方でもできるかも知れませんが、とりあえずこれが動いたのではや興味は薄れ、日本語コードを真剣に勉強する機会をまた逸してしまったかも。教え概のないやつですみませんm(_ _)m。

2001/04/17

人に教えておきながら、そのURLをついでにクリックしてびっくり(^^;)。なんなんだ〜Apache::PageKitって! もしかして、もしかして、早まったかも。私がやりたい程度のことなら、こっちの方が楽かも。AxKitでHTML::Templeteが使えないものかと欲を出し始めていたところだけに思わずグラグラ。早速MLに登録。ppmは検索したけれど無し。駄目もとでWin98にインストールしようとしたろころ、Apache::Sessionが見つかりませんと言われ、Apache::Sessionをppmインストールしようとすると、お使いのビルド用のファイルが見つかりません、と言うようなエラーがでる。しょうがないので新しいPerlをダウンロードしても結果は同じ。未練は残るけれど、今は関わっている余裕無さそうかな。

2001/04/19

JAVA製ですが、Enhydraと言うアプリケーションサーバーを使うと、デザインとロジックの切り分けが完全にできるようです。XMLCと言うのを使って、xmlファイルやhtmlファイルをコンパイルしてJavaクラスに変換し、表示の時に合成してhtmlであるかのように見せかけるらしい(?)。最近、「Java製=インストールが楽」と言うイメージなので、早速ダウンロードしようとしたら、ちょっとお兄さん、30メガ越えているじゃありませんか(^^;)で2時間と表示され、断念。Apache::PageKitがどれほどのものか分かりませんが、少なくともファイルサイズからすれば比じゃないですね。しかし、http://oreilly.apacheweek.com/にはpagekit0.91はまだアルファ版だが試して見る価値があると書かれている。

2001/05/04

あこがれのXをやっと手に入れました(T_T)。泣き顔なのは初めてのTFTモニタの犠牲の上にだからです。
 ことの発端は、ゴールデンウイーク中のおもちゃにと外付けハードディスクを購入。Dドライブにあったデータを全て外付けハードディスクに引っ越し。DドライブにVine Linux 2.1 をインストールしました。ど素人がUSBモニタとそれにつながるUSBキーボード&マウスにLinuxを入れようと言うのがそもそもの間違いだったようで(^^;)、モニタの周波数を片端から「テスト」している間に液晶モニタが真っ白になり、再起動しようが、フロッピーから起動しようとしようが真っ白なまま(T_T)。本体だけをシコシコ息子の部屋に運び、COMPAQ Presario2294のモニタ、キーボード、マウスを借りたところあっけないほど簡単にインストール終了。Xも立ち上がり、ネットワークもつながり、ネットスケープでちゃんとKCNのホームページもでるではありませんか。喜んでいいのか悲しんでいいのか(^^;)。またまた高い授業料を払ってしまったようです。
 授業料取り戻すには、なんとしてもAxKitの最新版のインストールまでこぎ着けねば。がその前にLinuxの勉強からです。

書き忘れていましたが、フォームからの入力をUnicode::MapでUTF8に変換して保存したものをエディタで開いてびっくり、改行コードが全部とんでしまっていたのですが、またまた貞廣さんのお世話になり、$str =~ s/([^\x00-\x1F]+)/utf16( $Map->to_unicode($1) )->utf8/eg; とする事で解決しました。

2001/05/15

サイトマップに、最近更新のあったものだけ更新日を表示するようにしようと、my $update = findvalue("document('$url')//update");でリンク先xmlファイルの最終更新日をゲットしようとしたら、「dtdファイルが見つかりません!」 今まで直にxmlファイルを呼んでいたときには文句言わんかったくせに、と試しにc:\dtdsの下にdtdファイルをコピーしたらエラーがパッタリ止まります。これはアパッチのドキュメントルートをお忘れのよう。MLに尋ねると案の定v1.2のバグだそうで、もっと新しいのを使え、と言われてしまいました。

でもって、FreeBSDにAxKitをインストールしてもらいました。メイクファイルで、iconvが見つからない問題と、無事インストールが済みアパッチが起動した後で、xmlファイルを表示しようとしたらセグメント・フォールト(?)とがでるFAQで引っかかったくらいで(ちゃんとクイックスタートに書いておいてもらいたいものです(^^;)、xmlサーバーが立ち上がりました(さすがはプロだな〜と感心)。最新版を入れてもらったのと、OSが変わったのとで、今までのxmlファイルやスタイルシートがちゃんと動いてくれるかどうか心配でしたが、XMLファイルをShift_JISにしていたのが残っていたらしく、Shift_JIS用のマッピングファイルが見つからない、というエラーが出たのと、キャッシュを書き込み時にパーミッションエラーが出たくらい。キャッシュは上書き可能なディレクトリを作成し、一カ所にまとめることにしました。

続きはなぜかLinuxページで…

2001/11/01

お久しぶりです(^^;)。Linuxは一時中断中で、又こちらに戻ってきました。
この間の大きな出来事は、おおた@豊中さんがXMLの本を出されたこと。ちょっとしたはずみで私の名前を載っけてもらいました(^^;)。おまけに献本までしてもらって(^o^)。JAVAな本ですが、親しみやすい例題で、XML関係のツールが一式付いていて、インストールの仕方や設定の仕方等、初心者にもわかりやすく書かれていて、読むよりもまず使って覚える私のようなタイプにはぴったり。

AxKitの方は、HTML,i-mode,WAPの3モード対応ページに挑戦中。AxKitを使うとこんなのはちょちょいのちょい、のはずだったのが予想外に悪戦苦闘。まず、ヘッダ情報がデフォルトでは text/html が勝手に付いてしまうのでこれを text/x-hdml なり text/vnd.wap.wml に変更するところで第一のハードルに。困った時のgoogle頼みで、キーワード「handoheld.xps」で見事にこんなサイトを一本釣り! 我ながら素晴らしい(^^;)。
英語の例題が動いてもやはり問題は日本語で…。「$r->content_type('text/vnd.wap.wml');」と強制的にヘッダを書き換えると、「AxOutputCharset shift_jis」が無視され、UTF-8で出力されてしまいます。こちらは検索しても上手く行かず、ソースをプリントしたものの眺めるだけ、で(^^;)mod_perl MLに質問し調べてもらったところ「仕様」のようでした。親切な宮川さんのお陰でスタイルシートに1行「$AxKit::Cfg->AllowOutputCharset(1);」を入れることでshift_jisで出力できました(日本語で質問できるありがたさをしみじみ感じました)。これがAxKitとして正しいやり方かどうかは分からない様ですが、とりあえずはこれでスタイルシートの方の環境は整いました。
残るはMultiViewを使った画像の処理ですが、これがまだ上手く行きません。ブラウザではちゃんと表示できるのに、WAPシミュレータでは表示できません。ApacheはちゃんとPNGを送っているのに、表示に失敗している感じ。同じ画像でもファイル名を最後までちゃんと記述すれば表示できるので画像のせいでは無さそうだし。スタイルシートで拡張子を付け足すことも考えたけれど、同じWAP用でも端末の種類により、ビットマップだったりPNGだったりすると、やはりMultiViewを使いたい。もう少し調査が必要。

2001/11/04

画像にMultiViewを使うのは思ったよりも色々問題がありそう。ブラウザによってはpngに対応していないのに、pngを受け入れると偽ったり、ワイルドカードを使ってくるのもあるよう。それに、i-mode用のgifとPC用のgifが同一でいいのか、と言う疑問もあるし。やはりスタイルシートで拡張子を付ける方法が今のところ最善のような気がする。と言うことは、ビットマップしか読めない端末は無視(^^;)。このあたりをもっとスマートに処理してくれるモジュールはないんでしょうか? 画像を一つ置いておけば、適当なフォーマットとサイズにして渡してくれると言うような? おまけにAxKitのようにキャッシュ化もしてくれるような?

2001/11/17

3モード対応ページ作りは予想外に苦戦しているので、後々の資料にするため、別ページを準備中。

Pagekit 1.07のアナウンスがBoris Zentnerさんから流れてきて???。作者はT.J. Matherさんだったはず。メールをほじくり返してみると1.06のアナウンスもBoris Zentnerさんから流れている。T.J. MatherさんはXML::GDOMEを発表したばかりなので、libxml-ennoの時とは事情が違いそうですが。

axkit.orgからLinuxでのApacheとTomcatのベンチマークテストのページにリンクされてるのを発見。Java製のWebサーバーってみんなこんなに重いんでしょうか? それともTomcatやJigsawに致命的な欠陥があるんでしょうか?(有料のJavaサーバーならもっとすごい?)
MattさんがAxKitの開発をCとmod_perlで行うことにしたのは、Linux版Javaが不安定だったから、と言うのを読んだこともあるけど。これを見てCocoonに対する未練がふっきれたのは事実(^^;)。

2003/03/08

FreeBSD 4.7に無事自力でAxKit1.6.1をインストールする事ができ、再び戻って参りました。自力と言ってもありがたいportsのお陰なのですが(^^;)。RedHat7.2がすんなり入ったマシンですが、FreeBSD 4.7ではXが立ち上がってくれません。しかしそれを無視するなら、設定は非常にわかりやすく、各種ソフトのインストールもportsのお陰で楽々。素人がAxKitをインストールするなら、FreeBSDが一番簡単かも。

久々の更新の訳は、demoフォルダのESQLのサンプルがいきなり(データベースの設定した覚えがないんですが)動いた事に大感激したため。知らない間にSQLiteと言うの入っている。
名前とemailが登録できる簡単なデモですが、日本語文字を入れてもきれいに表示されるじゃないですか。う〜ん、素晴らしい。
これでemacs(これがねぇ)さえ覚えれば、AccessもWindowsも捨てられそう。

2003/03/23

いじくっている間にAxKit::Wikiが動きました。インストールでエラーが幾つか出ていましたが、とりあえずは動くよう。

2003/04/13

AxKit上で動くCMS(コンテンツ・マネージメント・システム)は上記 AxKit::Wiki の他、XIMSCallisto CMSがあるよう。WikiはSQLite、XIMSはオラクルorポスグレ、CallistoはXMLファイルをそのまま利用しているらしい(^^;)。XIMSにはあのKipさんもからんでいるらしいので期待しているのですが、現在ターボールの提供待ち。それに比べCallistoの方はWebでデモが見られます。とりあえずCallisto(のインストール)に挑戦してみることに。
MLのアーカイブ

2003/05/13

Callisto CMSのインストールは例によって途中でめげ(デフォルトでは日本語入力ができないみたいだし…)、XSPに挑戦中。ロジックの中ではCGIと同じだと思っていたのになぜかサーバーエラー。大小比較が、タグの片割れと解釈されているらしいのに気づくまでずいぶんと時間が…(T_T)。
やっと解決したと思ったら、今度はWebUtilタグリブが動かない。エラーも出ずに値が空…。前途多難かも。

2003/05/22

待望のAxKit日本語版メーリングリストができました。参加はaxkit-jp-subscribe@axkit.orgまで空メールを送信下さい。主催者はDaisukeさん。大変頼りがいのある方です(^^;)。

2003/06/19

せっかくAxKitの日本語版メーリングリストができたのに、日々XSLTと格闘する毎日です…。XSPもぽつぽつ使いはじめ、AxKitのメーリングリストに投げようと準備を始めては何とか踏みとどまっているところ。せっかく発見したことを忘れないよう、「私がはまった穴:XSL編」と「XSP編」を作成中です。


AxKit

perl&XMLリンク

Unicode関連

Perl Modules

XMLリンク

スタイルシート

アクセシビリティ

その他

関係がありそうな本



●戻る●