日本Rubyカンファレンス一日目

投稿者 akira 2006-06-09 15:00:00 GMT

いろんな人と会えて、うち何人かの人とはお話もできて良かった。

URIライブラリはなんとかせねばなと思っていたのだけど、やはりなんとかせねばなあ。チェックゆる版URI.parseはともかく必要そうだというのは良いとして、はて長い名前にするかどうか。akrさんのセッションは後半盛り上がり始めそうなところで時間切れになってしまったのだが、そこまでの話で考えてみるに、一般的にはチェックゆる版の動作のほうが望まれるのかないう見方もあり得る。しかし、そうするのは互換性がなさすぎるので、同程度の長さのチェックゆる版メソッドを作るのかな。いやいや、まずいものはまずいでしょということで、長い名前のほうが良いのかもしれない。今の気分だと後者だがどうしたものか。

同じくURI関係で、URI.escapeとURI.unescapeは好ましくないという提案もいただく。まあ、たしかにそうかなと思うところでがあったので、一度整理して考えてみようと思う。webrick/httputils.rbのを使うと良いのかなと思ったら、これはrequire 'socket'してるんだなあ。webrick、cgi、uriとは別にescape/unescapeメソッドがあると良さそうなんだけど(webrickの中で切り出してもらうのでも良いけど)。

あとはRFCへの追従か。いろいろあるなあ。

日本Rubyカンファレンス一日目(続き)

投稿者 akira 2006-06-09 15:01:00 GMT

Ruby 1.9.1がリ安定指向版として2007年12月までにリースされる予定であることが発表された。YARVとM17N、あとなんだっけな。まあ、そういったものを含めたものにしたいと考えられているとのこと。RubyGemsも標準添付する方向で考えたいけど、RubyGems陣営の動きもあるので、リリースに間に合えば入るかも、らしい。個人的には、RubyGems陣営の一部にバイナリパッケージでの配布形態に関して制限したいという考えがあるようなのが標準添付の足枷になるんじゃないかと思う(どれくらいホンキで言っているのかよく分からないが)。

リリースはまだ少し先に話ではあるけれど、鬼車の入ったRubyがこれまで考えていたよりも早くリリースされるというのはうれしい。

なひさんの 「セキュアアプリケーションプログラミング」とakrさんの「使いやすいライブラリAPIデザイン」は、もう少し時間をとってじっくり聞きたかった。これはやはり勉強会とかするですか、とちょっと思う :-)

bdb、rcov、WWW::Mechanize、ruby1.6

投稿者 akira 2006-06-05 15:00:00 GMT

bdb-0.5.8と最近のRuby 1.9の組み合わせがうまくない(rb_frame_this_funcとGetWriteFileがどこかのタイミングでなくなった)ようなのでパッチを送ってみる。と、いつも通り10分程で返事がくる。なんかすごい。

rcov.debがそろそろ欲しいかもなと思ってwnppを見たらすでにあった。よく考えるとapt-cache show rcovしかやってなくてsearchしてなかった。librcov-ruby{1.8,1.9}が提供されているが、ちょっと古いかな。WWW::Mechanizeもdebが欲しいなと思ったんだが…… これはまだなさそうかな。だが、時間切れ。

自分の分のRemoveRuby16対策はだいたい終えたつもり。そろそろ削除依頼が出される時期かな。

Kwalify

投稿者 akira 2006-06-05 15:01:00 GMT

そうそう、Kwalifyのdebも欲しいよなあと思ったら、これまた既に提供されていた*1

少し前、といっても考えてみると二年前くらいの話だが、欲しいものは自分で作らねばっていう状況はかなり少なくなってきたといえそう。ありがたい。

*1 ただ「Depends: ruby (>= 1.8.1)」とかってのはどうかなあと思うが。

関東でもRuby勉強会を

投稿者 akira 2006-05-31 15:00:00 GMT

RHG勉強会は今やHaskellなんだそうで、Ruby勉強会が定期的に行われているのは関西なんだそうだ。で、IRCで関東でもやりたいねという会話がなされていた。

Railsに特化しないようなのであれば参加したいかも。Railsも興味はあるけど、人々が集まるならもっと間口が広いほうが面白そうなので。

個人的にはRubyForgeやRAAの新着・更新の追っかけとかRuby 1.9の動向とか、そういう話が聞ける場があるとうれしいかな。RubyForgeやRAAの新着情報くらいは見ているけど、実際に試してみるとか難しいし、まったく知らないものは素通りしてしまうから。あとは短期集中でチュートリアル的なのとか(それこそRailsで◯◯みたいなのとか)。

まあ、開催されたとしても実際に参加できるかどうかっていうのはスケジュールとかでどうなるか分からないのだけど。(だいたい都内は遠いんだよなあ……。)

働くRuby

投稿者 akira 2006-05-03 15:00:00 GMT

ふとRubyの使い方を振り返ってみた。

最も動いているRubyスクリプトはPRIME、ximapd、RAIL、tDiaryあたりかな。いずれも動作的にはdaemonちっく。ximapdに関連してbsfilterも常時動いている。他にcronジョブちっくなスクリプトが十数個動いているだろうか。きちんとした形になっているものとしてはpdumpfsをよく使っている。

コマンドラインで使うものの中ではrdtoolとdocdiffかな。あと、忘れちゃいけないapt-listbugs。ただ、コマンドラインでというと「-e」を最も使っているような気もする(まあ、これは単一のスクリプトとはいえないけど)。

日本Rubyカンファレンス2006

投稿者 akira 2006-05-01 15:00:00 GMT

6月10日〜11日に日本Rubyカンファレンス2006が開催とのこと。参加予定。

ローカル変数

投稿者 akira 2006-04-27 15:00:00 GMT

$ ruby -e '                                                               
a = 1
b = 2
t = Thread.new(a) {|x| y = a; p [a, x, y]; b = 0; Thread.stop; p [a, x, y]}    
sleep 1
p b
a = 2
t.run
t.join'
[1, 1, 1]
0
[2, 1, 1]
$ ruby -e '
i = nil
t = Thread.new {0.upto(10) {|i| Thread.stop}}
t.run; p i
t.run; t.run; p i
t.run; t.run; t.run; p i
5.times {t.run}; p i
t.run'
1
3
6
10
-e:8:in `run': killed thread (ThreadError)
        from -e:8

ダメなホスト名のURIを作ってみる 2

投稿者 akira 2006-04-21 15:00:00 GMT

HTTP/HTTPS限定として、たとえばこんなとか?

require "uri"
 
BAD_URI = "http://dame_yo.example.jp/atom.xml"
 
in_uri = BAD_URI
begin
  uri = URI.parse(in_uri)
rescue URI::InvalidURIError
  begin
    tmp_uri = URI.escape(in_uri)
    uri = URI.parse(tmp_uri)
  rescue URI::InvalidURIError
    m = %r{\A(https?://)([^/]+)(.*)}i.match(tmp_uri)
    uri = URI.parse(m[1] + "dummy" + m[3])
 
    c = /\Ahttps/ =~ m[1] ? URI::HTTPS : URI::HTTP
    uri = c.new(*URI::Generic.component.collect {|x| x == :host ? m[2] : uri.send(x)})
    # または: uri.instance_eval {set_host(m[2])}
  end
end
p uri #=> #<URI::HTTP:0xfdbe12ef8 URL:http://dame_yo.exmaple.jp/atom.xml>

時々「エラーになっちゃってまいるのよ」というメールをもらう*1。許容する文字を指定できるようにするとか、そういうのが必要なのかなあとも思うのだけど、そうするには少なくともschemeは限定しないとならないし、schemeによってはそううまくいくかどうか……。URI.parse的なものはあきらめてもらって、文字チェックをしないURI::HTTP.buildみたいなものを設けるほうがよいだろか。とかなんとかで、いまいちどうすればいいものだか分からない。

*1 「ブラウザでは見られるだろう?」とかも。でもブラウザとライブラリじゃあ扱いを同じにはできないよなあ。

プログラミングRuby 第2版

投稿者 akira 2006-03-08 15:00:00 GMT

むむ! プログラミングRuby 第2版 言語編同ライブラリ編が出るのか。買わねば。