我らがAsakusa.rbのたぶん100回目ぐらいのmeetupを記念して、4月10日の日曜日に大江戸Ruby会議01なるちょっとしたカンファレンスが開催された。
でもって、えらそうに基調講演してきた。

とりあえず資料はこちら。タイトルが動かなさげだったりしたのをこっそり直したりちょっと写真を増やしたりと、若干バージョンアップしています。

それから動画はこちら。大江戸KaigiFreaksの皆さん(1名だけど)、迅速な仕事をありがとうございます。

100.times { Asakusa.rb.meetup! } / @a_matsuda from ogi.

内容については、思い返してみるに我ながらだいぶえらそうで感じ悪いんだけど、通算100回のコミュニティ活動を通して感じたことや考えたことのエッセンスを、あまりパーソナル過ぎないような形で言語化して伝えようとしてみたつもり。
なんだけど、予定された基調講演で予定どおり登壇するのはたぶん初めてだった(2010年のRubyKaigiで代打の基調漫談ならやったけど)というのと、Keynoteのリモコンがうまく繋がらなかったこともあって、ちょっと舞い上がってしまってうまく話しきれなかった部分もあるので、以下少々キーワードごとにちょっとだけ補足していこうと思う。

・「Asakusa.rbは勉強会じゃありません」

これはまぁ割と最初からブレずに言い続けてることなんだけど、つまり、勉強するだけの勉強会はそろそろ卒業しようぜ、という意図。
偉大な先達である高井さん(新婚)の「勉強会に勉強しに来るヤツは素人」とのお言葉どおり、勉強会に参加して何が一番おもしろいって、いわゆる「懇親会」だよね。じゃあ本編が全部まるごと懇親会みたいなのをやったらもっと面白いじゃん、と思って。
「勉強したい人は来るな」は、勉強会に勉強だけしに行きたいタイプの人はたぶんAsakusa.rbには向いてないから来ないほうがいいよ、という意味。
最近のAsakusa.rbの日常は数式で表すとまぁおおむね

meetup = 勉強会 - 勉強

みたいな感じになってるよね。

・「セミナーじゃないんでお客さんはご遠慮ください」的な

これって前にも誰かがもっと上手に言ってたよなぁ、と思って今ぐぐってみたらかくたにメンバーだった。ああ、そうか、『Life Hacks PRESS』で読んだのか。

・メーリングリストが「えー」な件

これはたぶん僕がメールとかチャットとかの読み書きがあんまり好きじゃないからで、ぜんぜん関係ないけど今住んでるマンションの理事会の副理事長とかやってて今週末はマンション飲み会をやったりとか(オレ幹事)夏には神輿を担いだりする(今年は自粛…)んだけど、これがほんとの「地域コミュニティ」ってやつで、こっちなんかメーリングリストすらないわけよ。でもって、地震が起こった時なんかは誰からともなく管理人室に集まって対策会議が始まったりする。
要は、物理的な距離感とインターネットへの依存度はおおよそ反比例するわけで、どうやらインターネットがあまりうまくない僕みたいなのは地域コミュニティぐらいが性にあっているようだ。

・「仲間を集めろ」

これはやっぱりすごく重要なわけで、単に◯◯.rbとかノリで名乗ってみてTwitterで微妙につぶやいてみたりしてATNDだかで適当に告知しといたらまほうみたいにたのしいなかまがぽぽぽぽ〜ん、なんて都合のよろしいことはあるわけなくて、コミュニティの旗揚げ時のメンバーの取捨選択みたいなところは特に慎重にグッとパワーをかけて行うべきところだと思う。例えば会社を作るときと一緒、って言えばなんとなくわかってもらえるだろうか(会社なんて作ったことないけど)。

たとえば麻雀で卓にひとりシロウトが混じったらゲーム全体が一気につまんなくなっちゃうのと一緒で、なにか特別な目的意識を持ち寄ったりしてる人だけが集まったらそれがなにかクオリティにつながると僕は信じている。で、実際にそれをひと足お先に実現しちゃっているのが Seattle.rb だよね。

・「仲間」

それにしても、僕みたいな一般人がコミッタの皆さんなんかを捕まえて「仲間」だとか言っちゃうのはもちろんとっても畏れ多いことなんだけど、「Ruby : Rails」「開発者:ユーザー」の垣根を超えて2つのコミュニティが歩み寄ってリアルなコミュニケーションの場を形成する、という目的のためにはコミッタの皆さんのご助力がどうしても必要なファクターだった。 と思っていたら、旗揚げに付き合ってくださって以来ずっと面倒を見てくださっている顧問の先生のようなささださん、いつも持参の焼酎を飲みながらRubyを書きに来てくださるなかださん、いつもgdgdでダメダメな僕らに的確なツッコミと細やかな気配りをしてくださるなひさん、毎度予告もなしに気軽に遊びに来てくださるまつもとさん、さらには卜部さん、成瀬さん、うささん、ゆうぞうさん、といった、何を訊いても何でも知ってて答えてくださる化物のような面々の揃った、世界にも類を見ない、本当にひどいメンツ(いい意味で)の集まるコミュニティになってしまった。
こんなスーパーバンドにいちプレイヤーとして在籍していられる一介のRailsプログラマーなんて絶対浅草以外の世界中どこに行っても存在し得ないわけで、自分は本当に信じられないぐらい恵まれた境遇にいるなぁ、としみじみ思う。
ちなみに、この「2つのコミュニティ」の分断、っていうのは、思うに”the Rails Invasion”という急激な変化に伴って形成されたひずみであって、我々はそれを少しでも平たくしていくためにはどういう行動を取ればいいんだろうか、みたいな話は次にどこかで何かの折にしゃべる予定。興味があったら聴きに来てください。

・最後に

当たり前だけどいちおう言っておくと、僕はべつに他の勉強会やコミュニティのあり方をdisる気とかはまったくなくて、「僕の」コミュニティはこういう心意気でやってます、というのを100回目を機にご紹介というか自慢しただけ。
“SOCIAL CODING”な今の時代、プログラマーが人とかかわらずに生きて行くことは難しい。そんな中、みんなそれぞれ自分にあったコミュニティを探せばいいと思うし、見つからなければ自分のコミュニティを作ればいいと思う。少なくとも今のRuby界には居心地のいい居場所がきっとある。

Community.find_or_create!

今回のお話が、そんな皆さんのこれからのコミュニティ活動の一助になれば幸いです。

先週行われた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通でご加入いただけるので、次の機会には是非是非ご参加ください!
お待ちしております。