先週行われたOSC Tokyo 2009/Springの日本Rubyの会のコマで、3週間ほど前にリリースされた新しいRuby、Ruby 1.9.1について、Ruby 1.9コンサルタント(自称)としてお話をしてきた。

浅草ではRuby 1.9.1を使ってます

資料はこちら。

今回は新機能などをいちいち細かく紹介するのはやめて、もっとざっくりと全体像をなるべくユーザーの視点から語ってみることにした。 つまり、今あなたがRuby 1.9.1をダウンロードしてインストールして毎日のスクリプティングに使い始めると何が嬉しいのか?何が楽しいのか?どんな良いことがあるのか?というのがメインテーマ。
事実、僕自身は毎日Ruby 1.9を使っていて非常に楽しい思いをさせてもらっているし、この機会にその楽しさをみんなに伝えたい、と思ったのだが、それって、何か理由を一つ挙げるとすると何故なんだろう?と考えてみると意外に説明が難しい。
で、僕なりに考え直してみた結果が、EnumeratorがどうしたとかVMがどうしたとかそういう難しいところじゃなくて(そういうのはささだ先生にお任せして)、「新しいことはいいことだ」で語った内容だと思う。
(以下、デンパ注意)

“Ruby”は人類の英知の結晶だ。”Ruby”は単にいちプログラミング言語の名前であるのみならず、僕らプログラマーが世の中をもっと良いものにしていく社会的ムーヴメントだ。
Rubyは、プログラミング言語としては必ずしもコンピューターサイエンス的な意味で最高に高度なものではないかも知れないが、どこかの大企業が自社製品を売り込むための思惑が込められているわけでもなければ、誰かの気まぐれな思いつき「だけ」で成り立っているわけでもなく、その代わりに、ユーザーがもっと楽しく、もっと豊かにプログラミングができるようにしたい!というみんなの想いがこれ以上ないぐらい高い密度で凝縮されてできている。
(特に太平洋の向こう側に住んでいる)一部の心ないRailerたちが過去のRubyの一部を切り取った”Ruby 1.8.6”という言語にしがみつこうとしているとかいうような話もあるようだが、おそらく彼らの曇った目にはRubyが”ちょっと仕事を便利にしてくれるプログラミング言語”というぐらいにしか映っていないのだろう。
でも僕らはそうじゃない。今たまたま日本に生まれてプログラマーという人生を選んでRubyという言語に出会ったおかげで、僕らはこの魔法のかかったムーヴメントの真っただ中に身を置くことができる。新しいRubyが毎日作り出されていく奇跡を肌で感じることができる。
さらに、何かしらの形で自分なりのアウトプットを先っちょのほうに投げ込んでみることによって、自分の中の何かがそんな魔法を作り出すエネルギーに変わって世界中を幸せにできたりするかも知れない。この”Ruby”という、世界中を巻き込みつつ未だかつてない規模で進行している「祭り」にリアルタイムで遭遇したというこのチャンスにあなたも参加しないなんてもったいない!
これが、あなたが今すぐにRuby 1.9.1を使い始めるべき最大の理由だ。

というようなことを語ろうと思ったけど、朝イチで眠かったし、ちょっと宗教じみてるかなー、とか思って自重してしまったっていうのもあったし、あと満員御礼(笑)で若干テンションが下がった、ってのもあって、ちょっと電波力を抑えすぎてしまったかな、と今では反省している。次の機会があったらもっと本気で電波出すことにしよう。

とにかく、あれを聞いて一人でも「Ruby 1.9.1をインストールしてみたよ!」とか「Asakusa.rb入りたい!」とか言ってくださる人が居たらいいなぁ。

第2回Asakusa.rb

August 4th, 2008

7/26(土)、 第2回Asakusa.rbが開催された。

今回は、 隅田川花火大会 の真っ最中に 花火会場のほど近くにお住まいのメンバー のご自宅にて開催、という、とっても夏の浅草「らしい」集いになった。
結局花火に夢中で、肝心のhackの方は全然はかどらなかったわけだが、まぁたまにはそういうのもアリなんじゃないでしょうかね。

そんなわけで、 まとめはこちら

今回は、前回よりも一層、「Rubyの凄い人」と「Railsの濃い人」がそれぞれ集まったようなメンバーで、 「RubygemsってやつをRuby 1.9から標準添付にしてるんだけどそんなもの使ったことないよ」っていう人「Rubygemsは毎日使ってるけどRuby 1.9から標準添付になったなんて知らなかった」っていう人 が異文化コミュニケーションを果たすことができたというのは、これもまたAsakusa.rbの活動のひとつの大きな狙いだったりするので、個人的にはけっこう満足だったりする。

それから、今回のもうひとつ大きな収穫と言えば、「Rubyのおかしな挙動を見つけたらどんどん Redmineに上げちゃっていいよ」と Rubyコミッターチームに言っていただけたこと。
そんなわけで、とりあえず前回同様に最新版のRubyでも再現したSEGVの件について Redmineに報告しておいた

今回のこれのおかげで、今後の進め方がひとつはっきり見えてきたような気はする。
つまり、日頃いろんな関わり方でRubyを使っている多彩なメンバーが集まって、あちこちからYARVを突っついていじめて、とにかくたくさんバグを出して、片っ端から Redmineに報告する、というだけでも、立派な成果と呼べるものになるんじゃないだろうか?
ただ、それにしてもこのチケットはあまりに大雑把すぎて非常にいただけないので、次からはもうちょっときちんと切り分けができるようになりたい、というあたりは課題かな。

ちなみに、このとき明かされた舞波さんの新しいプラグインの構想が、超life changingで革命的すぎる一品だった!
あれさえあれば、Rails 2.xのあのダサかっこ悪い respond_toブロックがウルトラセクシーな記法に大変身!
心待ちにしておこう。

と思っていたら来た!
http://blog.s21g.com/articles/697
・・・けど、 致命的な問題 が><
ん〜、惜しい!

ファンの皆様、引き続きmaiha先生の新作にご期待ください!

第1回Asakusa.rb のときに発見されて修正された Railsのバグをパッチにして投げてみたところ、
http://rails.lighthouseapp.com/projects/8994/tickets/623

そっこーで無事本体に取り込まれた。
http://github.com/rails/rails/commit/bb33432b0f5bf644713e696e4dafc7e7d3cc5808

ということで、さっそく成果が出たよ!めでたい!

なにしろこんなたった8文字書き加えるだけのパッチでも、僕一人ではどんなに頑張っても絶対に解決できなかったであろう、(僕にとっては)充分に高度な内容である。
そういう意味でも、みんなに集まってもらって会合を開いた価値はあったわけで、非常に喜ばしい。
しかし、エラーメッセージを一目見て解決してくださったのはささださんだし、
正しいデバッグの方法を指南してくださったのはgotoyuzoさんだし、
実際にキーボードを叩いてくださったのはかくたにさんだし1
それ以前にネットにつなげてくれたのは cojiさんだし、
という具合なので、実は僕は何もやってないんだけど、
でもコミットは何故か僕の名前でクレジットされてて恐縮だ2
そんな意味を込めてチケットの説明文には “We” って書いたんだけど、
でもなんの文脈もないので、「"We"って誰だよ?」って感じだよな。

そしてこれにて一件落着、かと思いきや、その直後にこんなアップデートが。
http://github.com/rails/rails/commit/3c282f3a0a7c1d5ab91241674251794ead5fa41d
なになに? uses more memory than eval with block ? そうなの?
Rubyは奥が深いなぁ・・・

1 このあたりについては かくたにさん的には何やらいろいろ言いたいことがあったらしい 。すみません><

2 しかも gitの configの user.name あたりの設定ができてなくて漢字でフルネームとかいって、恥ずかしすぎる><

このたび、こんなような趣旨で、 Asakusa.rb という団体を発足させてみた。
第1回 Asakusa.rb のご案内 – http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45213

メールの内容を再掲するのもなんなので趣旨を3行でまとめると、

  1. 東京の下町とかそのあたりに住んでいる Ruby技術者たちが、
  2. オフで集まって酒でも飲みながらみんなで楽しくハックしつつ、
  3. 何か具体的な「成果を出す」活動を目的とした地域Rubyistコミュニティ

である。

なんだか偉そうなことを言ってるが、もちろんいきなり僕一人でそんなことができるわけがない。
今回の件は、ちょっとしたご縁があって、ささだ大先生・かくたに大明神のお2人の強力なお力添えがあってのことである。
もともとの話の発端は RubyKaigi 2008の「3日目」にさかのぼるのだが、まぁつまり、ここらへんで張られた伏線がやっと回収されてきたというところだろうか。
http://kakutani.com/20080623.html#p01

さて、そんなわけで、さっそく第1回の会合を7/11の金曜日に実施した。

MLへの告知がほんとに直前になってしまったことについては、何人かの方から「急すぎ」というもっともなご指摘をいただいた。
最初からあんまり人数ばっかり集め過ぎて収集つかなくなっちゃうのも嫌だから、第1回は敢えてある程度敷居を上げてコアなメンバーに絞ろうとしたという意図も多少あったのだが、その反面えらくクローズドな印象で感じ悪い告知になってしまった。
うーん・・・。難しい。

まぁそれでもけっこう人は集まってくれるもんで、当日は、
ささださん
かくたにさん
後藤裕蔵さん
Cojiさん
レオさん
「バリケン」の人
などなど、Yet Another Ruby Cityの名に恥じない総勢10名の実に豪華すぎるドリームチームが集結することになった。

肝心のハックの方は、こちらの準備の不手際もあってなかなかネットに繋がらなかったり、と、しょっぱなからずいぶんとグダグダな展開になってしまったが、それでも結果としてはあの短時間にしては充分な「成果」は出たと思うし( Railsの YARV対応漏れバグを1箇所直した!! )、なにより、この人たちが集まると何かめちゃめちゃものすごい化学反応が起こってすげぇことができちゃいそうな手応えを感じた。
そんな中に居合わせることができただけでも、日常では味わえない素晴らしくエキサイティングな体験だったと思う。
この歳になって自分がバンドで一番下手くそなメンバーで居られるというような、そんな素敵な機会を与えてくださった皆様に心から感謝したい。

そんなわけで、よければ引き続きこれからも活動を続けて行きたいと思っておりますので、
みなさま、今後とも Asakusa.rb をどうぞよろしくお願いいたします。
それから、これを読んで興味を持たれた方は、 http://qwik.jp/asakusarb/ に書いてある手順でメール1通でご加入いただけるので、次の機会には是非是非ご参加ください!
お待ちしております。