2000-05-06(土) [長年日記]
■ RuBBS 0.3.1
w3mでRuBBSのcookieが保存されないのが悔しくて、少し調査。w3mのcookieが保存されているファイルを見ると、各フィールドがTAB文字で区切られている。ははん。lさんのパッチでは、名前とメールアドレス、それからアンカー(?)代わりの「#rubbs」という文字列がそれぞれTABで区切られているので、これがそのままw3mによって保存されると、読みだし時にフォーマットが不正で消されるってことか。わかった。TABを使わなければいいんだ。どうせbase64でエンコードした以上、このあたりはあまり気にする必要はあるまいて。
さらに、昨日判明した対Netscape対策と、コ板であった過去の投稿を見る時にno-cache指定は不要という指摘に対応する。なかなか根本的な改良にとりかかれないけど、ま、不便を強いるのもなんなので、これでリリースしちまおう。
■ w3m 0.1.9
w3mの動作を確認するにあたって、最新版のバイナリを持ってきた。w3m-0.1.9-1k1.i586.rpmね。あと、すっかり忘れていたけど、午後のこ〜だがファイナルバージョン(2.35)になっていたので、そのRPM版も拾ってきて入れておいた。そういや、最近CD買ってないな。なんか買うか。
■ Ruby EB
あと、Ruby EBを使ってちまちまと遊ぶ。項目間のリンクをたどれなくてもいいなら、BookView相当の検索くらいはできるCGIはあっと言う間にできてしまった。くふふ。これで家中どのマシンからでも辞書が引けますわ。たいしたものではないけど、いずれ公開しよう。
2000-05-05(金) [長年日記]
■ RuBBS 0.3.0
ダラズのlさんから、RuBBSのパッチがいくつか送られてきていたので、これを取り込んで正式リリースを作らにゃならなかったんだけど、連休前は忙しくてそれどころじゃなかった。連休初日はひさびさにのんびりしたけど、翌日から取り組む。
本文中の引用の色を変えるパッチと、cookie対応のパッチを当ててから、スタイルの違う部分を手直ししたり、下位互換性を維持するための修正を入れていちおうOK。オープンソースっていいよねぇ。問題は投稿者の名前とメールアドレスを保持するためのcookieに日本語が生で流れるようになっていること。他のサイトのcookieを見てみると、日本語はたいていURLエンコードされている。動けばいいというバータリー的な作りでもいいけど、何かおきたら面倒なので、手軽に使えるbase64エンコードしてみる。
もう一つ、RuBBSはサーバーの負荷を下げるためにカレントログは静的なHTMLに吐き出すようにしてるんだけど、このせいでせっかく保持しているcookieの値が投稿フォームに反映できない点だ。ReplyはCGIを経由するから使えるんだけど、新規投稿では使えない。でも、新規投稿用のフォームがログと同じページにある必要はないよね……なんて考えてたら、lさんが先にそのためのパッチをくれた(笑)。うーん、こりゃ楽でいいわ(ってをい)。
さっそくそのパッチも当てさせてもらい、ささいな問題をいくつか修正して、ひさびさに0.3.0としてリリース。これでずいぶん使いやすくなったはず。ついでに新たに掲示板を作るためのmakebbsコマンドも少し手直ししておいたので、UNIX系OSで運営するのは楽になったと思うんだけど……文化的にこういう作りでいいのかどうか、いまだによくわからじ。
リリース後になって、RuBBSがNetscapeを落とす原因がわかった。Replyを押すとときおりNetscapeがBus Errorで死ぬのだ。長いこと原因がわからなかったんだけど、どうやらフォーム中のTEXTAREAタグにWRAP="SOFT"という属性が指定してあるとき、TEXTAREAの幅よりも長い文字列が設定されていると起きるらしい。ずいぶん前に、esBooksで買い物をする時に、契約書を表示できなかったのもこれが原因だったわけだ。つーことは、Linux版Netscapeを使う限り、この属性を指定してはならぬってことだ。Windowsを使っていた頃ならいざ知らず、自分がLinuxを使っているのにこの状況を放置するわけにはいかんなぁ。ほとんどw3mを使っているとは言え。次のリリースでWRAP属性は排除しようか。
2000-04-25(火) [長年日記]
■ RubyEB
で(?)、RAAを眺めていたら、RubyEBなんてのがあって腰を抜かす。い、いつのまに……。もちろん、以前マイペディアのところで出てきた、電子ブックを扱うライブラリ「EB」を、Rubyからいじるための拡張モジュールである。ruby-listでも活躍されているにゃすさんの作。ふふふ。なんだ、これがあれば無敵じゃん(謎)。ありがたく使わせていただくっす。
今日のところは拡張モジュールのビルドまでやろう。ruby-eb10.tar.gzを持ってきて、適当なディレクトリに展開。Rubyの拡張モジュールにはたいていextconf.rbというスクリプトが付いていて、これを実行するとMakefileを作ってくれる。で、できたMakefileでおもむろにmake。……eb/eb.hがないと言われる。むむ。これは本体であるEBのヘッダであろう。うちには実行ファイルのRPMだけを入れてるしな。開発セットも入れねばならん。
コンダラのスナップショットを見たらアップデートされていたので、eb-2.3.7-1k2.i586.rpmとeb-devel-2.3.7-1k2.i586.rpmをゲット、インストールする。今日は最初から-Uvhで入れたぞ(笑)。そして、もっぺんmakeする。eb.soができたら、make installしてもいいけど、ファイルは1つだし、Rubyも1.4.4からsite_rubyの場所が変わったみたいだし、ってことで、手動で/usr/lib/ruby/site_ruby/1.4/i586-linux/に移動する。
さて、付属のtest.rbをちょっといじって動作確認をしてみよう。13行目にb.bind("/cdrom")ってのがあるので、/cdromの部分を適当なEBが入っているディレクトリに変えてみる。うちは和英辞典EDICTが入っている/usr/local/share/eb/edictを指定。test.rbを実行すると、「じしょ」という言葉と「ちしき」という言葉の英訳がずらずらと表示される。やったぁ。
そういえば、mypaedia-fpw、1.0.1になってますな。あまりうちの環境には関係なさそうな感じだけど……とりあえずゲットしておこう(笑)。