Ruby Kaigi 2008

なんか Golf コンペとかいう頭の悪いイベントをどうこうしろとのことで行ってきました。呼んで下さった運営の方とかありがとうございます。

思い出す。

0日目。とりあえず着いてネットとかでゴルフ場を微妙に改造とかして、13時ちょい前に問題2つ上げた。ゴルフ場は壊れたりとかしなくて良かったと思う。問題2問は、色々考えて普通な複利計算をする問題と、ちょっとややこしい漢数字のパースの問題にしました。あまり簡単な問題すぎると非ゴルファーな人にはかえって解いてもらいにくいかなーとか夢想したんですが、ややこしい問題はあんまり人気がなかったので失敗みたいでした。すんません。

複利計算は私の解で最適に近いんじゃないか…とか思ってたけど、論外だった。ひどかったです。あと練習問題として hello を出力するだけの問題を出したのですが、これは Ruby だとなかなか奥が深くて、 Ruby をかなり深く理解しておられるであろうただただしさんがなかなか 10B にならん、とかおっしゃってて面白かったです。 a.*b+c ほどには気が効いてはいないんですけど、なかなか。

で期間中はゴルフ縮める気力もなくだらだらコード書いてて、あと sedCompound interest 解いたけど案の定タイムアウトとかしたりしてました。かけ算とか無理です。んでから講評とかしなければならなかったのですが、誰が1位かさっぱりわからないとか、自分のコード説明するけどそれとっくに破られてるし、とか色々ひどかったです。プレゼン用の html はその場で html を出力するプログラムを書いた。

なんかしら参加して下さった方々ありがとうございます。リモートで旗包み系なコードを投稿して下さった本職の方々もありがたかったです。

でみずしまさんが泊めてくださるとおっしゃっていたので、ありがたく泊めていただきました。適当だったので本当に助かりましたありがとうございます。さらに JVM について色々教えてもらったり、 soutaro さんに車で牛九大仏とやらに案内してもらったり(ムダにデカくてすごかった)、色々オトクでした。

1日目は YARV, rubinius, JRuby を興味深く聞いて、後はぼんやり聞きながらコード書いたりしてました。ぼんやり聞いてたのでは mame さんとか面白かった。 mame さんと言えば hogelog さんと対消滅とかするんじゃないかって程度に区別がついてなかったんだけど、二人とも無事みたいで良かった。

懇親会でぼんやり酒呑んでたら Reject 会議の akr さんネタが面白そうとか、 YARV から3番地コード作るとか、色々興味を魅かれる感じだったので残留を決意してみずしまさんにまた泊めていただいた。重ね重ねありがとうございます。あとついでに勢いで Reject 会議に応募してみた。あと憧れの eto さんと会話できて良かった。

2日目はこう MacRuby がすごかった。 Ruby 実装の中で一番心がひかれる感じだった。 CRuby ベースってのはやっぱネイティブバイナリ信者としては。あとは akr さんはこうプレゼンうまいなぁと思った。 matz さんを説得する方法のプレゼンだったんだけど、そのプレゼン自体も説得力があった。あとは型推論GC を興味深く聞いた感じだった。

んで Reject 会議は Yajit とかゴルフ場とかは、なんかあんま喋ってて面白くなさげだったので、 infix to postfix の話を高速でしてみた。正直わけわからんかったと思う。すんません。特に alias が使えるようになったのと、 _ が :method_missing に化けるのは両方がうまくあわさってこそなんだけど、まぁそこまで説明できず。以下にプレゼン資料。

http://shinh.skr.jp/dat_dir/infix/000.html

0日目に使ったスクリプトをちょっと手を入れて生成しました。ページ送りは vimperator の ]] で進めるというお手軽手法でやってみた。このやりかたはなかなか肌にあう感じで、いいかも。生成したコードは以下みたいなの。

http://shinh.skr.jp/tmp/mkp.rb

http://shinh.skr.jp/tmp/infix.txt

他の発表は akr さんの String#succ とか、 3番地コードとか、やる夫の JRuby とかが面白かった。 3番地コード作るやつは Yajit で使えるといいなーと思った。あとなんかささださんが熱く語っていてかっこよかった。他にもなんかあった気がするけどまぁいいや。

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h