2004-12-20 [長年日記]

_ [NaCl][Ruby] 某 CMS 納品

2 ヵ月ほど開発してきたとある CMS を今日納品してきました。

ひたすら CGIKit + TapKit で構成されていますが、直前まで CGIKit 本体をいじっていたような気がします。 でも、おかげで CGIKit の内部をそれなりに理解することができました。

このエントリーを含むはてなブックマーク 

_ [Ruby] CGIKit-1 vs. CGIKit-2

さて今回の開発では安定版の CGIKit-1 を使いましたが、今は CGIKit-2 が積極的に開発されているみたいなの、こちらも見てみようと思います。 CGIKit-2 は (ちゃんと) ステートフルなライブラリになっているのが特徴のようですが、CGIKit-1 だと 'HelloWorld.cgi?element_id=MainPage&name=value' みたいな「まだ読める」 URI だったのが、CGIKit-2 では 'HelloWorld.cgi/c/d99ac00221ef70d6/0.2.0' みたいな「ちょっと読めない」URI になるのは個人的にはちょっと微妙かも。

まあ CGIKit-1 でむりやりステート保存するような使い方もできるので、しばらくは両方いろいろ試してみることにします。

このエントリーを含むはてなブックマーク 

_ [Ruby][tDiary] amazon.rb で Timeout::Error

先日の rAntenna のエラーと同じように、timeout のブロックの中で例外が出てしまいました (rAntenna の方も、その後同じエラーが何度かありました)。 環境は ruby 1.8.2 (2004-11-11) [i586-linux] です。

execution expired (Timeout::Error)

/usr/lib/ruby/1.8/timeout.rb:42:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:196:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:55:in `timeout'
/usr/lib/ruby/1.8/net/protocol.rb:196:in `rbuf_fill'
/usr/lib/ruby/1.8/net/protocol.rb:160:in `readuntil'
/usr/lib/ruby/1.8/net/protocol.rb:171:in `readline'
/usr/lib/ruby/1.8/net/http.rb:1554:in `read_status_line'
/usr/lib/ruby/1.8/net/http.rb:1538:in `read_new'
/usr/lib/ruby/1.8/net/http.rb:833:in `request'
/usr/lib/ruby/1.8/net/http.rb:615:in `get'
(plugin/amazon.rb):63:in `get_amazon'

rAntenna も amazon.rb も、

timeout(limit) do
  begin
    ...
  rescue Timeout::Error
end

↑こんなコードだけれど、Net::HTTP.get の時は↓こういう使い方でないとダメとか?

begin
  timeout(limit) { ... }
rescue Timeout::Error
end
このエントリーを含むはてなブックマーク 
本日のツッコミ(全2件) [ツッコミを入れる]
_ zunda (2004-12-21 11:44)

Net::HTTP.getが中で上げてるTimeoutErrorとrescueしてるTimeout::Errorと違うのかも、と思ったのですが、そんなことはなかったですorz

_ pochi (2007-04-27 12:48)

随分前のお話ですが、 <br>timeout は、Net::HTTP の部分で設定するのが <br>妥当だと思います。 <br>今更修正したくないでしょうけど。 <br> <br>

[]