technologiesHomeArticlesaboutMeetupみなとRuby会議でペアプロしてきたみなとRuby会議01に参加してきました。一般的な講演の他に、ペアプロのセッションがあるという面白いRuby会議だったのですが、実はペアプロは初めてだったので気づいたことを書いてみます。ペアプロの相手は@hibariyaさんで、僕はナビゲーターしかしなかったんですが、それでも多くのことがわかりました。2人の役割分担は車の運転と同じ初めての道を運転するとき、ナビがあった方が楽ですよね。コーディングでは初めてのものを実装することが多いんです。誰かが案内してくれた方がずっと楽なはずです。ナビゲーターは、ドライバーより多くのことを考えられます。タイピングに脳を使ってないから。次に何をタイプするか、近道はないか常に考えていられます。書かれていた通りでした。(他にもコーディングの最前線で使うべき戦術が丁寧に書かれていて、おすすめの本です。)考えるだけの時間がなくなる「考えるだけの時間」とは、話していない、聞いていない、タイプもしていない時間です。僕は一人でコーディングするとき比較的考え過ぎる方だと自覚していて、減らしたいと思っているんですが、ペアプロをしてれば圧倒的に少なくなりそうです。それはもちろん、ナビゲーターが考えることを引き受けるからという理由もあるのですが、もっと重要な理由があると思います。一人で考えてて一番ダメだと思うのは、情報が十分でない状況で複数のことを比較しているときです。いう時やるべきなのは、情報を得るためにどれかを選択して実行することです。ところが同時に、手戻りをなるべく減らしたいという動機があるため、実行せずに情報を得ようとしてしまうのです。ペアプロでは、ナビゲーターはタイプしないので、手戻りの考慮から一歩引くことができます。ドライバーは、自分で決断できなくても、ナビゲーターが指示したことなら実行しやすいでしょう。このようにペアプロならば、ナビゲーター/ドライバーのどちらであっても考える時間を減らすことになります。今日の会場はネットワークが貧弱だったため、ネットを介してソースコードを共有せずに、1台のマシンを交代で使うという方針でした。それは非現実的でした。僕は日本語キーボードを使ってるんですが、ペアを組んだ@hibariyaさんのマシンはUSキーボードでした。screenのエスケープキーが違いました。エディタの設定は更なる乖離を見せてくれたでしょうが、もう確認はしませんでした。他人のマシンで快適にコーディングなんてできないと思います。ペアプロするなら常にドライバーの人のマシンを2人で見るべきだと思いました。いうわけで、ナビゲーターしかしなかったものの、たくさんの気づきのあったペアプロでした。ペアプロが向くケース、向かないケースも少しわかりました。ペアを組んでくださった@hibariyaさん、ありがとうございました。みなとRuby会議01を運営してくださったYokohama.rbのみなさん、ありがとうございました。みなさんお疲れ様でした。2011で丸儲けしたお祭り騒ぎしてるだけのつもりだったのに、Twitterとか見ると“スタッフのみなさん、ありがとうございました”とか書いてあるんですよ。これは丸儲けなんじゃないかってというのは私が最終日のチェックアウト(区切りをつけるための一言)で言ったセリフだ。2011に当日スタッフとして参加し、3日間、朝から夜まで働き、体力は尽きたが、そんなことはどうでもいいくらい楽しい思いをさせてもらった。2011は7月16日から18日までの3日間、練馬文化センターで開催され、2つのホールで合計47のセッションと、無数のライトニングトークが行われた。参加者は約1,000人で、その中には海外から来た人も多い。私の記憶には、そんな数では表し切れないとてつもなく強いインパクトを残した。RubyKaigiは完全に非日常的な体験だ(あんなものが日常的にあってたまるか)。人の体験には、一緒に過ごす人が大きな影響を与えるように思う。RubyKaigi中は普段とは全く違う人たちと過ごした。実行委員と当日スタッフのメンバーを合わせて約50人。ネットを介してしか知らず、半分以上の人が初対面。そんな人たちと、初めての場所で、1,000人のお客さんを迎えるために働く。実行委員長が言っていたが、RubyKaigiは毎回違ったものになるので、毎回“初めてのRubyKaigi"であり、何が起こるか分からないのだそうだ。2011は新しい体験だった。豪華なセッションの数々も印象的だった。全員は挙げないが、魅力的なセッションが朝から晩まで続く目の眩むようなタイムテーブルだった。スタッフだったので1/4くらいしか生で見てないが、記憶に焼き付くような話がいくつもあった。我々スタッフはそれをホストし、1,000人の人たちそれぞれに、何かしら持って帰ってもらえたのではないかと思う。言葉を尽くしても足りないが、僕にとってRubyKaigiは素晴らしい体験だった。大変と言えば大変だが、もう一度やりたいと思う。知っての通り今回で“日本RubyKaigi”はおしまいだ。やりたければ、自分なりの形を見つけて自分でやらなければならない。それが“最後のRubyKaigi”の意義の一つであり、角谷さんの「答え合わせしませんか」は、それを促すメッセージだ。RubyKaigiとは何なんだろうかと思う。あんなに多くの人に支持されるのか。同じ会場で同じ人を集めて同じセッションを開けばRubyKaigiができるのか。ここで分析したり持論を展開したりはしないが、RubyKaigiをRubyKaigiたらしめるエッセンスがある。それを探求しつつ、自分のまわりに“答え”を作っていきたい。RubyKaigiは楽しく、活気があり、出会いがあって、私を啓蒙してくれる。自分のまわりのものがもっとRubyKaigiっぽかったら素敵だと思う。自分の会社やプロジェクトがもっとRubyKaigiっぽかったら。会社やプロジェクトを大好きになると思う。自分だけでなく、他の人も大好きになってくれるものならもっといい。そのためにはどうすればいいか?何をどうすれば、RubyKaigiっぽくなるのか?それを探求しながら自分のまわりに広めていきたい。RubyKaigi大江戸Ruby会議に参加して。大江戸Ruby会議01に参加してきましたので、そこで感じたこと、考えたことなどを、コミュニティへの感謝を込めて書き記したいと思います。会場は深川江戸資料館のホールで、広すぎず狭すぎず、ちょうどよい大きさだと思いました。大きな会場ならさらに多くの人が参加できますが、雰囲気が変わってしまいそうなので、開催規模としてちょうど良かったのではないかと。近くには隅田川の支流が流れ、河畔の桜並木が満開でした。ホールは地下だったのですが、ユナイテッド・デザインワークスによる無線LANが設営されているという周到さでした。}」で、Asakusa.rbの趣旨や活動、歴史などが紹介されました。印象に残ったのは「Rubyを良くしたい」というAsakusa.rb結成、活動の動機でした。この言葉は一見簡単なようで実は意味がわからなくて、というのはRubyは言語であってツールですが、別にCRubyにパッチを送るとかいう意味ではなさそうだからです。確かにAsakusa.rbにはコミッタが参加していますが、松田さん自身はそういう活動はしてません(よね?)ではどういう意味かというと、もちろん松田さんにお聞きすれば答が返ってくるでしょうが、自分なりの解釈でAsakusa.rbに参加するのも楽しいように思えるんですよね。Rubyを使うことは、Rubyの応用事例を増やして信頼度を上げるでしょうから、Rubyを良くすることになりそうです。Gemを作ったりすればもっと直接的に貢献できるでしょう。「Ruby」に「Rubyコミュニティ」を含むと解釈すると、範囲は大きく広がります。「Rubyコミュニティを良くする」というのはもう本当にいろいろな解釈がありそうですが、書くと野暮になりそうだし、探求を続けていきたい領域なのでここには書きません。結局、「Rubyを良くしたい」の解釈は様々に可能ですが、いずれにしても自分以外の誰かに利することなので、「あなたを幸せにしたい(Rubyを通して)」ぐらいに考えておいてもいいのではないでしょうか。いずれにしても、僕はこの基調講演を聞いて、Asakusa.rbに参加してRubyを良くしたい(Rubyを良くすることを探求したい)という思いを強くし、参加する決心をしたのでした。Talk)がありました。Talkはデータを見せるものよりストーリーを語るものが多い印象です。Talkはカジュアルで、感情に訴えてくるところが見てて楽しいですね(そうでない、データを見せるものももちろんありますが)。Ruby会議は学会ではなく、交流会の意味合いが強いので、そういう発表の方が理にかなっているし、モチベーションの源になったりします。個々の発表の感想は省きますが、今日も6人のNinjaに楽しませていただきました。ありがとうございました。懇親会は桜鍋の店で、珍しい、美味しい料理をいただきました。ある飲み会の大皿料理でなく、コース料理だったのも嬉しかった。座敷だったので人が移動しやすいのも良かったんではないでしょうか(実際には僕はチキンなので移動せず、移動してくる人を待ち構えていた)。僕は体が大きいので、席が狭いのだけが少し辛かったんですが。周りには左手側から@tyabeさん、@konk303さん、@nahiさん、@junyaさん、@jugyoさんという席。最初にnahiさんのhttpclientの話から、Railsのthreadsafe!関連の話へ。この辺は実はよくわからないので、優先順位の高いものが終わったら調べ直そうと思います。1.8.7でGCが解放したメモリをOSに返せないのかという話になったようで、@nahiさんが@shyouheiさんのところへ。"そういう研究もあるが、閉じた組織がやってるので状況はわからない"という回答をもらってきました。いう風に、リアルなユーザの要望がその場でメンテナに届いて回答が返ってくるのが面白い。Asakusa.rbです。途中、角谷さんに社内でやった『アジャイルな見積もりと計画づくり』読書会の話をできたのが嬉しかったんですが、あまりに個人的なので省略。その他にもリアルにRubyで商用サービスを動かしてる人たちから、JavaScriptのテストの方針や、負荷とDBの勘所の話を聞くことができました。自分はいつも職場でたった一人のRubyistとして仕事をしていて、またコンシュマー向けのアプリをリリースしたこともなく、レスポンスのほとんどない世界で漠然とした孤独を感じていました。懇親会で話を聞くうち、自分が作ったものを公開すれば必ず見る人がいる、使う人がいる、もしかしたら喜ぶ人もいると思えるようになってきました。これは仕事以外で開発をする上でとても大きなモチベーションになります。懇親会で話を聞かせてくれた方、大江戸Ruby会議と懇親会を開催してくれた方には心から感謝します。