history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-04-01

BitChannel / FastCGI

こないだは簡単に流してしまったけど、FastCGI はけっこういいねえ。 仕組みはシンプルだし、pure Ruby 版インターフェイスもあるし、 CGI からの移行も簡単だ。

cgi = CGI.new

FCGI.each_cgi do |cgi|
  ....
end

に変えるだけで終わり。 まあ、こういうことができるように作っとかないとだめだけど、 それなりに作っておけば意外と簡単に変更できる。

家のウェブサーバは FastCGI にしようかな。

(13:25)

(追記) BitChannel は FastCGI に変更した。 なんかめちゃ速くなったね。 tDiary も fcgi 化できるだろうか……。

(追記2) ときどきレスポンスにひっかかりを感じることがある。 Recent のときに多いようだ。なんだろう?

萌えなymXMLユーザガイド

http://ruby.yunyun.jp/ymXML.html

普通のマニュアルに唐突に絵が入ってるのがシュール……

(14:33)

BitChannel / FastCGI (2)

しまったー!

そうだよ……内部で CVS/Entry をキャッシュしてるんだよ。 どうも表示がおかしいと思ったら、これが原因か。

まあ、見付けるのが難しい潜在バグを発見できたということで、 結果オーライだ。

(15:21)

BitChannel / FastCGI (3)

キャッシュミスマッチは修正した。 いまいち美しい修正にならないのが残念だ。 Recent でひっかかるのもついでに直ったような気がする。

しかし本当に速いなあ。

(16:39)

BitChannel / 動作環境拡大計画 (1) esehttpd

chroot しなければ動くようにはなった。 chroot するとなぜか cvs が exec できずに落ちる。

(root)/bc/index.rb
(root)/bin/cvs

こんな配置で、File.exist?('/bin/cvs') も true になってるのに、 exec は no such file or directory になってしまう。よくわからん。

(例によって) CVS が何か余計なことをやってるんじゃないかと思って /bin/true とか /bin/hello もやってみたけど、これも exec できない。

CGI プログラム

print "Content-Type: text/html\r\n"
print "\r\n"
fork {
  exec "/bin/true"
}
Process.wait

エラーログ

(eval):3:in `exec': No such file or directory - /bin/true (Errno::ENOENT)
        from (eval):3
        from (eval):2:in `fork'
        from (eval):2

環境は以下の通り。

  • esehttpd 0.309 (chroot, embedded ruby)
  • ruby 1.9.0 2004-03-27
  • Linux 2.4.22 i686

とりあえずあきらめることにした。 先に webrick servlet を攻略しよう。

(21:04)

BitChannel / 動作環境拡大計画 (2) WEBrick servlet

WEBrick servlet として動くようになりました。 WEBrick で CGI 使って動かしても面白くないんで、そっちは試してません。

(00:34)

BitChannel / Wiki記法標準化案

そういえば Wiki 記法標準化案についてですけど。 決まったらどうするかと言えば、たぶん何もしないと思います。

だって基本的な部分はすでに実装してそうだし、 「*」のキャプションとかは現時点の文法と衝突するから実装できないし、 強調だの水平線だのは何が起ころうと入れる気はありませんから。

また「中間記法を用意して云々」っていう案も見かけますが、 それはそれで問題があると思います。

  • 検索しにくい
  • diff しにくい
  • 文法を間違ったまま中間記法を経由すると壊滅的な被害を受けるかもしれない

特に最後のはシステムが工夫すれば済むわけじゃないのが致命的です。 例えば pre ブロックを閉じ忘れてセーブしてしまった場合、 次はたぶん二つの記法が混ざって登場することになる。

(00:56)

本日のツッコミ(全2件) [ツッコミを入れる]
なかだ (2004-04-01 21:37)

ruby自身が動いてるんなら共有ライブラリの線はないか…。
chroot $root straceで試してみるとか。

青木 (2004-04-01 21:55)

そ れ で す た
ruby は esehttpd 自体にリンクされているので、
共有ライブラリがなくても動いてしまうのでした。
/lib 以下をごっそりもってきたら行けました。

修行しなおしてきます……。

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS