K.Sasada's Home Page

こめんとのついか

こめんとこめんと!

message

please add long comment :).

_26(Thu)

RubyForge が変わってる。


Sun のトップページに JRuby が!


Aspect Oriented とか Object Oriented とか Context Oriented とか、色々ある(最後のは知らない)が、なら 2.0 2.0 みたいな感じで Orient Oriented なんてどうだろうと思ってみる。いったい何がどういう言語になるのか。


RubyConf に行くと、英語力の無さを痛感して、英語やらないとなぁ、という気分になるが、たいてい一週間くらいで萎える。でも、英語やらないとなぁ。

と、大島さんの日記を見ていて思う。OOPSLA というか DSL 超楽しそう。うう、しかし行ってもさっぱりわからない罠。というか、英語を話す友人がたくさんいて羨ましい。RubyConfで、あっちから話しかけてくれることは結構あるんだけど、こちらがうまく理解できなかったり、うまく表現出来ないのを見ると、だんだん引いていくのがわかる。とても悲しい。

それを補ってあまりある技術力があればいいんだが、そういうわけでもないし。


RubyConf 2006: Implementers Summit というものに誘われたんだが、奴らは容赦なく議論をしていくので、ぜんぜん話についていけない。Ruby の実装の問題点なんか、日本では全然聞けない、話すことが出来ない内容なのに、なんとも自分の無能さが悲しい。私は写真に写ってはいるが、ポカーンとしている状態。しくしく。

We also agreed to hold more of these summits going forward. I'm hoping we'll see them as a semi-annual event.

こんなこと喋ってたのか。しらねーぞ、こんなの。

まつもとさんにくっついておけば言語の壁は大丈夫だろう、とかたかをくくっていたら、まつもとさんはPCでなんか内職してるし。


まぁ、そういうわけで、海外に行くと自分の無能さを思い知らされるのだが(いや、それは海外に限らないが)、まぁ一応 RubyConf 2006 につてまとめておこうと思う。

日本語では、卜部君の日記はんばあぐさんの日記に詳しい。発表内容とかは、卜部君の日記を見るのが一番早いです。というわけで、細かい内容は省略。


移動日。一緒に行ったのは卜部君、はんばあぐさん、高橋さんの3人。大変だった。何が大変だったかというと、旅行代理店のミスで飛行機のチケットの予約がキャンセルされていたという、なんというかあり得ない大変さでした。幸い、行きのチケットはなんとか手配してもらったものの、帰りのチケットが取れないという。飛行機までの時間まったりハックする予定だったんだが、大変狂ってしまった。理由としては、e-ticket は confirmation が必要だが、旅行代理店側でそれを忘れていた、ということ。しくしく。まぁ、成田でのトラブルだったため、日本語で収まったのでよかった。

その後、急遽用意してもらったチケットを利用したためか、チケットを使うたびに「このチケットはおかしい」「パスポートに登録されているものと違う」など、色々言われることになった。よく無事に帰れたものと思う。

というわけで、海外旅行のチケットを取るときに近畿日本ツーリストを使うのは注意しましょう。

まぁ、結局五体満足で帰れたわけだが。


成田 -> サンフランシスコ。飛行機内で発表資料の準備をしようと思っていたが映画「もしも昨日が選べたら」を見てしまった。映画、久々に見たな。単純に面白かった。ラストがベタベタだったけれど。

先日も書いたとおり、ネットが使えたが、ブチブチ切れた。imap でのメール受信はちょっとつらい。imap の未読だけ POP3 で落とせる、というものは無いかな? 作ればいいのか、そうか。今度作っておこう。

そういえば、朝食の配給時、私の列だけ膳を下げてもらえなかった。なかなか添乗員さんは来ない。やっぱり呪われている。そういえば、一人だけ、ずーーっと愛想の悪いお姉さんがいたなぁ。何かを頼んでも機嫌悪そうに、面倒くさそうに対応していた。うーむ、ANA クオリティーも落ちたのか? いつもニコニコなんて、やっぱり無理ってことか。


SAN では高橋さんにお昼ご飯を一緒に買ってもらうように頼んだら、伊藤園のお茶と寿司を買ってきてくれた。ちょっ。伊藤園のお茶は、本当に日本のコンビニで買える様なお茶で、英語のラベルだけ貼ってあった。カバーの「一口メモ」みたいなのは、日本語で書いてあるんだがそんなの誰も読めんだろう。

そうこうしているうちに SAN -> DEN。

空港は広く、移動は電車。そういえば、成田の第一ターミナルは初めてだったけど、電車がなくなっていたな。使いやすくなっていた感じ。DEN はただただだだっ広い感じ。DEN からはバンでホテルへ。空港からホテルへ $19。結構高いなぁ。周りには何も無い。本当に広い。ホテルのそばはちょっとした店があった。Whole Foods という店は、日本で言う紀伊国屋みたいな感じ。

ホテル。Eric Hodel に部屋を取ってもらっていたんだが、彼の名前で取ってもらっていたので check in でもめた。でも、なんとなく部屋が取れたような気がする。部屋はとても広く、リビングとベッドルームが別だった。それぞれの部屋にTVがあったが、今回は全然テレビを見る暇がなかった。水道はリビング、バスルーム、ベッドルームになんと3箇所も。結局、この広い部屋、リビングで日本人が夜中中たむろすることになる。

その夜は Whole Foods で量り売りで買って夕食。買う途中、Eric Hodel に会ったが、顔を覚えていなかったので名前を聞いてしまった。ごめん。ありがとう。彼には今年はいろいろとお世話になった。

その後、荻野さんと合流。高橋さんはずっと発表練習をしているのを見ながら、眠かったのでさっさと眠ってしまった。


1日目。ホテルの朝飯が結構おいしい。ビュッフェスタイルだが、卵とソーセージとポテトがおいしい。ベーコンは焼きすぎでカリカリすぎだった。

会場は横にだだっ広い。超横に広い。プロジェクター2台。アメリカではこういう構成が多いんだろうか。去年の OOPSLA でもこういう構成だった気がする。ネットワークに全然つながらないので IRC で英語の解説が聞けないのが大変困った。chad に本にサインしてもらった。日本語版を見たのははじめてらしい。Eric Hodel にRubyKaigiのTシャツをあげた。

発表。高橋会長は凛々しい和服姿で登場。が、意外と和服に驚いている人は居なかった感じ。むしろ、日本人のほうが興奮していた感じ。高橋メソッドとRubyの歴史は好評だった様子。でも、RubyKaigi よりも勢いが無かった感じ(英語なんで当然か)。

Sydney and Rubinius: Hardcore Ruby では Ruby 1.8.2(だったっけ)に対していろんな改造をいていた evan が、そのプロジェクトの結末と、rubinius プロジェクトの開始について説明。Ruby で Ruby を作るという、meta-ruby プロジェクトそのまんまなやつの別プロジェクト。なんで Seattle.rb にはこういう変な奴ばかり集まるんだろう。コアすぎる。で、Seattle.rb の Eric Hodel や Ryan Davis がやっている meta-ruby とどう違うんだ、と聞いたら、同じ内容だって言ってた。meta-ruby では Ruby で Ruby の標準ライブラリを実装しているが、それを利用したい、って。Eric Hodel は、俺たちは簡単なことをやって、evan が難しいことをやるんだ、って言って笑っていた。しかし、GC も Ruby で実装するのか。まぁそれはそれでありか。しかし、今の conservertive GC を前提とした C ライブラリを exact copy GC から利用するのは無理だろう。なんか、工夫すれば出来るとか言ってたけど、ほんとかよ。


launch。日本人は日本人で固まるから日本語ばかり使って英語を上達させられないんだよ、ってわかっちゃいるが、怖くて知らない人のテーブルは避けるチキン。飯は ... えーと、忘れちゃった。ビュッフェスタイルなカンファレンスランチ。で、卜部君とまつもとさんが来てくれたが、同じテーブルにKevin Tew(Parrot 上で動く Ruby 処理系 Cardinal の作者)がいたので、色々と話を聞いてみた。Perl 6 は6になって仕様から作り始めたのでRubyも6くらいになれば仕様がまとまるんじゃないか、とかなんとか。Perl 6はPerl 6で作ることを目指しているらしい。ほんとうかなぁ。Cardinal 自体は、あんまり Ruby っぽくないような気がしたなあ。


Dynamic Graphics With Ruby は pure Ruby でこんなに簡単なグラフにって話。もう眠くなっていたような気がする。

Life After mkmf は mkmf はわけわかんなすぎるので mkrf を使って Rakefile で管理しましょうって話。Ruby 1.9.x からは rake 標準搭載で mkrf で設定ファイルを書くようになる、ということにはならないかなぁ。

Iron Mongrel: Fuzzing, Auditing, Thrashing, Risk and The Ways Of Mongrel Destruction で、Mongrel の話は何時始まるのかと思ったら、何時までも始まらなかった。Fuzzy Testing Framework の話。That manの語源って、まつもとさんの日記で出していた奴か? 発表内容はさっぱり。

Radiant -- Content Managment Simplified。Radiant の話。ruby-lang.org での話とか、アーキテクチャとか。頼むから XML-RPC に対応してください。プラグイン書けば対応できるのかしらん?


dinner。前述の Implementers Summit をやるというので、昨日の Whole Foods で買って、ホテルのレストラン(ロビー? 中庭にテーブルが並んでいる感じ)で食べる。ここでうな丼を買った。Microsoft に行ったというJohn Lamになんでわざわざ日本食食べるんだって聞かれた。彼との会話はそれだけだった。同じアジア系の顔なのに、彼は無茶苦茶英語が速くて、全然喋れなかった orz で、ホテルのレストランだったから、ホテルの人にお前ら何してんだよ、と怒られた(んだと思う)。で、カンファレンス会場で議論。詳細は pat のブログを見てください。全然輪に入れなかった。set_trace_func どうしてる? って聞いたけど、あんまり相手にしてくれなかった。JRuby の Charles が(彼しか相手にしてくれなかった)、デバッガインターフェースがあればいいんじゃね? みたいなことを言っていたように思う。


で、matz の Roundtable。今年はあんまり盛り上がらなかったな。「なんで VM を YARV に選んだんだ?」っていう質問があったんだが、その質問者の意図がようわからんかった。

Q. Will ruby get become evil

は、Smalltalk にある become という evil メソッドを Ruby でも実装せんか? という質問。勿論 No。

終わった後、少し evan に話を聞いてみた後、ぐっすりと眠ってしまったが、2時くらいに起きたのでそろそろ発表資料でも作るかー、と思ったら Skype にまつもとさんが居たのでちょっとチャットをしたら、面倒なのでこの部屋に来るということに。そのまま夜通しなんか喋っていたような気がするが、何喋っていたんだっけ。

そろそろ俺も発表の準備しないとな、と思って YARV-trunk で Rails を動かそうとしたら、なんかいろんなエラーが出てしまって、朝まで動かなかった。やっぱり日本でデモの準備していくべきだった orz


朝飯。昨日と同じだが、この日は勇気を出してオムレツを作ってもらった。

しかし、バグが直らない。具体的には gem が動かない。chad が居たので聞いてみたりもしたが、よくわからなかった。


2二日目最初。Open Classes, Open Companies。スライド一切無しのぶっ続けトーク。こっちは必死になってデバッグをしていて、ただでさえわからない英語が全部わからない。もう諦めた。

もうこれはダメだな、と思って Leveraging Mac OS X from Ruby は諦めて部屋に帰る。が、後から聞いた話ではこのトークはとても面白かったらしい。聞けばよかったな。

む、卜部君本当たったのか。いいなぁ。Ruby Cookbook が欲しかった。読みたい。誰か訳して!

Rinda and DRb in the Real Worldは、Rinda の解説だった気がするが、やっぱりよくわからなかった(しつこい)。


ランチ。タコス。このランチでも日本人と固まる。誰かと喋ったかなぁ。


ここで LT。勢いがあってなかなか楽しい。

More than enough rope to hang yourselfという発表の発表者がいないから急遽企画され、初日にスピーカー募集していた。


Web 2.0 Beyond the Browser。Rich の話。やっぱり綺麗なんだよね、図が。

I18n, M17n, Unicode, and all thatはTim Bray。彼の喋りはとても聞きやすかった。やっぱり、喋りなれてるよね。内容が初心者向けだったのもあるだろうけれど。

そういえば、彼に初日、喋りかけられてびっくりした。最初 Sun の偉い人だとは思わなかったんだけど、藤井さんから俺のことを聞いていたらしい。並列マシン欲しいんだよね、って言ったら簡単に「やるよー」と反応があった。うは。

Speak My Language: Natural Language Processing in Ruby。My Language は英語じゃないんだよちくしょう。でも、便利そうだったな。専攻の人に教えてあげようかな。


夕食。大きなチキン。ちょっと大変だった。Tim Bray が近くに居た。Eric が隣に来てくれた。Rails Podcast の人も近くに居た。でも、あんまりうまく喋れなかった。しくしく。Eric が Ruby のヒープを visualize するツールを作っていることを教えてもらって、後でデモしてもらった。PNGに落とすだけだが、リアルタイムに見れたら面白いよね。

そういえば、Podcastingの人には、初日にインタビューしてもいいかと聞かれて、おお、俺もとうとうインタビューされるほど偉くなったかと内心喜んでいたのだが、結局何も無かった。しくしく。


んで、まつもとさんのキーノート。なんか、Desgin game の話をしたことをあとで後悔していた。でも、今の体制とあんまり変わらないんじゃないかなあ。そういえば、Parrot よりも Rite の方が初出が早いんだぜ、というネタは取られてしまった。


で、さっさと引き返して、バグ取りをするが、全然終わらない、眠らないので寝てしまう。で、また2時ごろ起きたらまつもとさんがまたSkypeに居たのでチャットで「1.9.1 を来年クリスマスに出すってほんとでっかー」と聞いたら俺次第といわれてしまう。で、なんだかんだでまたまつもとさんが来る。いつも時差ぼけでなかなか朝まで眠れないそうだ。

で、なんだかんだと話しながらデバッグするんだが、デバッグが終わらない。

結局、まつもとさん、高橋さん、荻野さんに囲まれて朝の6時くらいにやっとRailsが動くようになる。ウハー。しかし、なんとも豪華なデバッグだった。

Rails のバグは、結局 1.9 でも同じ修正が必要で、先に1.9で試せばよかった。なんともデバッグの基本を知った一日であった。何度同じ過ちを犯すんだ俺は...。


で、ハイのまま朝食。たくさん食べる。

Streamlined: A Framework for Data-centric Web Applications 。本当にきっちりかっちりわからなかった。


で、YARVの発表。意外と外さなかったな。日本でも何度か使ったネタなんだが。

全然受けなかった。

やっぱりグラフのあたりは説明が全然へたくそだよな。うーむ。

ちなみに、今年はスクリプト(台本)を用意しようと思って自己紹介のスライドのあたりまでは作ってみたんだけど、途中で飽きてしまって止めた。やっぱり最後の方はグダグダになってしまった。反省。今度は作るぞ。というか、20分くらいのトークをやりたい。誰か呼んで。

うーん、やっぱりあまりいいプレゼンテーションじゃなかったな。Q&A もグダグダ。まつもとさんにご登場願ってしまった。というか、実装の話じゃなくて、仕様の話を俺にするんじゃない。


最後の John Lam の You got your Ruby in my CLR! は、やっぱりよくわからなかったけど、実装のコアな話は無かったように思う。結局、どうやって速くする/したのかなぁ。どこまで実装したのかなぁ。


アメリカ最後のランチはサンドイッチだった。おいしくておかわりしてしまった。Tim Bray と Matz が隣同士でいろいろと喋っていたが、いつものようについていけなかった。しくしく。

昼飯後、Google Summer code の話。3件。ちょっと遅れてしまった。感想はなし。


その後、デンバーのダウンタウンへ行く。人が全然いない。無料バスがメインストリートを往復していた。多分州会議場のような立派な建物を見た。夕飯はイタ飯でおいしかった。量も普通。値段は高め。人が全然いないのは、フットボールか何かの試合があるからだとか。ティラミスを頼んだら、えらいでかいティラミスだったが。チョコレート屋に入る勇気は無かった。


で、デンバー合意(http://redhanded.hobix.com/inspect/denverAccord.html)。なんかまたまつもとさんが来ていた。というか、日本人がなんとなく部屋に集まっていた。

あれよあれよと 1.9 に YARV をマージすることになってしまった(11月)。まぁ、尻を叩かれた格好。やらないといけないことだったしね。なんとかせんとなぁ。GC のバグがまだ見つからないのよねぇ。

全然話題になってませんが、Ruby リポジトリが CVS から SVN になるらしいです。これは結構衝撃的だと思うんだけど。規定路線だったのか? あと、1.8 メンテナが卜部君になるらしい。これも衝撃的だと思うんだけど、誰も話題にしていないなぁ。って、これは redhanded では言っていないのか。


発表で使った iTunes Controller。前日の発表では受けたらしいから、これも受けると思ったのになぁ。全然通じなかったらしい。YARV で Win32OLE でなんか派手なことするのは、とても簡単なことなのにインパクトはある。多分。ちゃんとできていれば。

もちろん、ちゃんと、YARV on mswin32 で動かしたよ。

# iTunes Controller
#

require 'win32ole'

$itunes = WIN32OLE.new("iTunes.Application")

STDOUT.sync = true

def get_tracks_from_itunes(name)
  plist = $itunes.LibrarySource.Playlists.ItemByName(name)
  raise "Unknown play list name: #{name}" unless plist
  tracks = plist.Tracks
  (1..tracks.Count).map{|i|
    tracks.Item(i).Name
  }
end

def play num, name
  track = $itunes.LibrarySource.Playlists.ItemByName(name).Tracks.Item(num)
  raise "unkown music number: #{num}" unless track
  track.play
end

def show_list pl
  get_tracks_from_itunes(pl).each_with_index{|name, i|
    puts "#{'%02d ' % (i+1)} - #{name}"
  }
end

def select_playlsit
  while true
    pls = $itunes.LibrarySource.Playlists
    (rng = 1..pls.count).each{|i|
      puts "#{'%02d' % i}: #{pls.item(i).name}"
    }
    print "Playlist number? > "
    i = gets.to_i
    if rng.include? i
      puts "Your select: #{name = pls.item(i).name}"
      break name
    end
  end
end

pl = select_playlsit
show_list pl

loop{
  print "> "
  case line = (gets||'').chomp
  when /\d+/
    play line.to_s, pl
  when 'playlist'
    show_playlist
  when 'list'
    show_list pl
  when 'stop'
    $itunes.stop
  when 'exit', ''
    $itunes.stop
    exit
  when 'irb'
    require 'irb'
    IRB.start
  else
    puts "unknown command: #{line}"
  end
}

帰る日。

朝の5時半に起きて6時に空港へ出発。DEN で朝飯食べて、飛行機。SAN でチケットについて、またひと悶着。SAN -> NRT ではフォレストガンプを見た。

で、無事、五体満足に日本へ帰国。


firefox 2.0 にしようかな、と思ったけどバージョンアップチェックでひっかからない。1.5 系しか見ないのかな。どうしよ。個人的には Fx よりも Tb 2.0 が大期待。

_にしお(Thu Oct 26 23:44:27 JST 2006)

 きっとorientalな言語。


好きなだけ長いコメントをどうぞ。

お名前


back

tton 記述が使えます。YukiWikiな記述してりゃ問題ありません。

「行頭に#code」 と、「行頭に#end」 で挟むと、その間の行は pre で囲まれます。プログラムのソースを書くときに使ってください。

例:

#code

(なんかプログラム書く)

#end

リンクは

[[なまえ|http://www.example.org]]

とか

[[http://www.example.org]]

で貼れます。

$Date: 2003/04/28 10:27:51 $