いよいよ今週9月14日~16日に開催される札幌Ruby会議。その見どころを紹介する事前特集も最終回の第4回目です。今回は3日目のセッションとRuby Kaja、会期中に開催されるサブイベントを紹介します。
セッション紹介 3日目
"Ruby の世界の継続的デリバリ" - 柴田博志
Rubyで実装されたWeb日記システム、tDialyのコミッターの一人として知られる柴田博志さんによるセッションです。柴田さんは現在、株式会社paperboy&co.に在籍し、技術基盤整備エンジニアとして新しい方法論や技術の導入、開発手法の整備などソフトウェア、サービス開発でよいとされていることを普及させる活動をメインに行なっています。
柴田さんによると継続的デリバリーを実現するためには導入する組織のプロセスに合わせた仕組み作りやツールの採用が必要とのことで、今回の発表では特にRubyistが継続的デリバリーを導入する場合に効果的なパターンやツールについて紹介します。また、柴田さん自身の経験をベースとした内容になるそうで「継続的デリバリー」などの書籍だけでは得られない実践的なものとなるでしょう。
継続的デリバリーに興味を持っている方や、実際に導入されている方、ソフトウェアの開発・リリースプロセスの改善に興味のある方にとって特に有意義なセッションです。
"コードについて語るときに我々の語ること" - 向井ジョニー
PIVOTAL TRACKERの開発でも有名なPivotal Labsの向井ジョニーさんによる講演です。「コードについて語るときに我々の語ること(What We Talk About When We Talk About Code)」というタイトルはレイモンド・カーヴァーの小説を連想させますね。
小説は、誰が読んでも同じ文字が書いてあるのに、人によって受け取り方が異なります。不思議ですね。読む人のすごしてきた人生、考え方や立場の違いが影響するのでしょうか。コードも同様に、誰にとっても同じ文字なのに、経験の浅い開発者と熟練の開発者、プロダクトマネージャーにとってはそれぞれ捉え方が異なるようです。
様々な観点からコードを眺めることで、既存のコードにも新たな発見があるでしょう。それはコードをより良く保ってくれるはずです。どうしたら、今ある観点を元に、新しい観点でコードを眺めることができるでしょうか。どうしたら、コードへの考え方の違いを、開発の手助けとすることができるでしょうか。このセッションではそういったことをご紹介いただきます。楽しみですね。
"分散 RSpec" - 村田賢太
村田賢太さんはRubyコミッターであり、桁数の制限のない小数値を扱うライブラリ「BigDecimal」など、数学関連のライブラリを中心に貢献をしています。札幌在住当時はRuby札幌の中心メンバーの一人として活動していました。
RSpecはRubyのテスティングツールです。このセッションではRSpecのスペックファイルが書かれたファイルが与えられたとき、それらの処理を分散して実行することについてご紹介いただきます。これはすなわち、複数のCPUコアや複数のマシンに処理を分担させることが可能ということであり、実際に村田さんが所属しているクックパッドでは、このライブラリがCIジョブの時間短縮に貢献したとのことです。
分散実行の際に問題になる点、例えばProducer-Consumer問題(DB書き込みなど依存関係のある処理があっても、意図した結果が出るような手順で処理する)への対応についても言及される予定です。分散処理全般に関心のある方にも興味深い内容になるのではないでしょうか。
"The First Cut is Deepest" - Linda Liukas、Terence Lee
Rails Girlsの共同設立者Linda Liukasさんと、Rails Girlsのお手伝いをしているTerence Leeさんによるセッションです。
何であっても、初めての時は大変ですよね。一般的に、初心を持ち新鮮な観点で物事を見つめている場合に得られるものは多いようです。逆に、ある程度慣れてしまい、初心を忘れると得られるものも減ってしまうようです。
Rubyのコミュニティに置き換えても、同様なことが言えるのではないでしょうか。読者の方の中にも、初めてRubyやRailsを触った時、環境構築や未知の概念に触れて、悩んだり戸惑ったことのある方がいると思います。自分がかつて悩んだ問題と同じ悩みを持つRuby初心者がいたとして、してあげられることは何でしょうか。その問題の解決を手助けしたとして、手助けは初心者のためにのみなるのでしょうか。手助けした方は何を得るでしょうか。
このセッションでは、そういった我々(コミュニティ)がRuby初心者に対して手助けできることは何か、また、良いコミュニティをつくるために彼らから我々が学べることは何か などについてご紹介いただきます。
"ユーザ指向サービスデザイン" - 江渡浩一郎
江渡浩一郎さんは、独立行政法人 産業技術総合研究所に所属しています。専門分野は集合知で、特に多くの人が共同で一つの構築物を作り上げる過程に興味を持っています。主な代表作はメーリングリストとWikiを組み合わせた「qwikWeb」、物理シミュレーションシステムを用いた作品を共有する「Modulobe」、今回紹介される「Wedata」などがあり、書籍『パターン、Wiki、XP ―― 時を超えた創造の原則』の著者でもあります。
「インターネット上の多種多様なWebサイトを処理対象とするサービスを設計することは難しいが、それはそれぞれのWebサイト毎に異なる処理方法を記述する必要があるからである。これは、ユーザ自身が自分で処理方法を記述するようにすれば解決できる」というのが"ユーザー指向サービスデザイン"の目指す方向です。
今回は、Wedataを基盤として使用している、AutoPagerizeを実例として"ユーザ指向サービスデザイン"についてご紹介いただきます。AutoPagerizeは閲覧しているWebページに自動で継ぎ足しを行うGreasemonkeyスクリプトです。このAutoPagerizeに必要なメタデータを共有するサイトがWedataであり、Wikiのように誰でも書換えられるデータベースを作成するシステムです。
AutoPagerizeやWedateを通して「ユーザ指向サービスデザイン」について知ることができるでしょう。
"Spree で約3ヶ月でイチからEコマースサービスを作るまで" - 白土慧
Ruby on Rails製のオープンソースのEコマースサイト構築ソリューション Spree についてRuby札幌に所属する白土慧さんにご紹介いただきます。
札幌生まれ札幌育ちの白土さん。大学ではWebと複雑ネットワークを学び、卒業後はディスカバリーエンジンを手がける株式会社サイジニアに所属。その後フリーランスを経て、現在はWebエンジニアとして活動しています。Twitterユーザ向けリアルタイム通知サービス NotWife の開発者です。好きな言語はRubyとJavaScript。雑誌『Web+DB Press』で2011、2012年にかけRubyの連載を担当。過去にRubyKaigi2010、2011の実行委員も務めました。
これまで Eコマース案件に関わったことがなかったという白土さん。しかしRailsとSpreeを利用することで、開発に携わったメガネ・サングラスの通販サイトOh My Glassesを開発者2人とデザイナー1人という少人数チームで3ヶ月という期間で構築できたとのことです。
日本国内でSpreeを本格的に活用した事例はおそらく初めてで、本セッションではSpreeを利用した開発や、運用における様々なノウハウが聞けることでしょう。RailsでEコマース案件に携わる開発者には色々参考にできる内容となるかもしれません。
"たのしい開発へ至る道" - Tatsuo Sakurai (tatsuoSakurai)
スタートアップRubyの著者の一人であり、札幌Ruby会議2012のGold Sponsorである株式会社万葉の櫻井さんの発表です。櫻井さんは数年前プログラマになったときにいろんな悩みを抱えていました。そこで、たのしい開発につながりそうな、気になる言葉に出会いました。それは、「アジャイル開発」と、「ペアプログラミング」という2つの言葉でした。
この2つの言葉と、「社長がエンジニアであること」、「コミュニティに参加している」点を合わせて会社を探したところ、万葉という会社を見つけ出し思い切って転職したそうです。
たのしく仕事をできるようになるまでの経緯と「どのようにRubyコミュニティに入って行くか」「どうすればRubyが楽しめるか」についてお話いただきます。発表を通して、たのしい開発へ至る道が示されるでしょう。
"DCI and the application builds our mental models" - 角谷信太郎
Ruby会議ではおなじみ、角谷信太郎さんが今年も登壇します。角谷信太郎さんは株式会社永和システムマネジメントに所属するエンジニアであり、「一般社団法人日本Rubyの会」の理事も勤めています。札幌Ruby会議も含まれる地域Ruby会議プロジェクトに深く関わるキーパーソンの一人です。
「DCI and the application builds our mental models」と題されたこの講演では、一部Rubyistからも関心を集めているDCI(Data、Context and Interaction)という考え方に関してご紹介いただきます。DCIはMVCアーキテクチャの提唱者でもあるTrygve Reenskaug氏により提唱され、デンマーク在住のDCIエヴァンジェリストJames O.Coplien氏により普及が進められてる、MVCアーキテクチャを補完する新たなパラダイムです。
DCIの特徴は、これまでは実装とは関係なく思えていた、プログラマ・エンドユーザ自身の思考もシステムを構築するアーキテクチャーの一つに含めてシステムを考える点にあります。ユーザの思考をソースコードに折り込むために、DCIでは「ロール」と呼ばれる概念をオブジェクトに紐づけます。現在DCIが注目を集めているのは、Ruby on Railsで構築されたWebアプリケーションでも、初期構築から時間を経つとともに保守しづらくなっている状況が背景にあるのではないか?と発表者の角谷さんは考えています。
本発表では、角谷さんが開発に関わったRuby on Railsを使ったWebアプリケーションにどのようにDCIを取り入れていくか実践例もふまえつつ、DCIについてご紹介いただくことになります。
"ソーシャルコーディング時代のふつうのプログラマサバイバルガイド" - 三村益隆
asakusa.rbに所属し、Rails勉強会@東京を開催している三村さん。昨年行われた日本Ruby会議2011ではレポート班を務められ、LTではコミュニティと勉強会の違いについて発表されていました。また、Herokuを使って開発やサービスを運営する人たちのためのWiki、「mWiki」の開発者でもあります。
三村さんが勤める永和システムマネジメントでは、昨年から開発インフラとしてGitHubを導入しています。これまでは主にプロジェクト内だけで共有されていたソースコードが、GitHubによって社内で共有されるようになり様々な人からのフィードバックが得られるようになりました。
この事例のように今後ソーシャルコーディングのメリットを活かした開発環境や開発手法が仕事の現場においても普及していくと予想しており、自身の実体験からソーシャルコーディング環境で仕事を行う上でのプログラマの立ち振るまいについてご紹介いただきます。
ソーシャルコーディングにまだ慣れていないプログラマから、今後仕事でも導入を検討しているプログラマまで、ソーシャルコーディングに関わるプログラマにとっては興味深い発表になりそうです。
"Off the Tracks - Challenging the Rails Mindset" - Nick Sutterer
Nick Suttererさんはドイツ出身のRubyistでヨーロッパ各地のRuby、Railsコミュニティのイベントやアメリカ、南米のカンファレンスに参加しています。Nickさんの開発したCellsやApotomoはRailsのViewを拡張するモジュールとして以前から多くの方に使われています。
今回のセッションでは"Off the Tracks - Challenging the Rails Mindset"ということで、いくつかのgemを用いて、Railsがどのように真のOOPフレームワークに変わるのか、MVCがなんであるのか、AJAXインターフェースをよりよくするのかについてお話いただきます。また、そのためにDCIやdependency injection、PORO(Plain Old Ruby Object)を使用するとのことです。
Nickさんにビールをおごると、リソースとモデルを混同してはいけない理由や彼がパンクロックバンドでベースを弾く理由を聞かせてもらえるそうなので、興味が有る方は会期中に挑戦してみてはいかがでしょうか。
"自給自足プログラミング" - 原悠
Rubyの本拠地・松江市でお仕事をされている原悠さんの発表です。原さんはRuby/SDLでのゲーム開発支援キットや、ローカル環境のみで利用するようなRuby on Railsのアプリケーションを公開・配布するツール「RailsStation」など多数のRubyで作ったソフトウェアを公開されています。
このセッションでは、自分に必要なソフトウェアを自作することがテーマです。プログラマは、自分が欲しいと思うソフトウェアがあれば、それが世の中になくても自らの手で生み出し、コンピュータをより快適に利用することができます。すなわち「自給自足」することができるわけです。また、その自給自足をするにあたって、どのような技術があると便利なのかをご紹介いただく予定です。
今回の札幌Ruby会議のテーマである「We Code.」を、自分の欲しいコードを書くという視点から考えてみませんか。
"バグを修正する方法" - Kenji Okimoto (a.k.a okkez)
Kenji Okimoto(okkez)さんはRubyリファレンスマニュアル刷新計画の中の人として知られています。また、Ruby関西のRuby/Rails勉強会@関西でRuby初級者向けレッスンを担当していました。okkezさんが勤める株式会社クリアコードはフリーソフトウェアの開発に携わってきたプログラマーが多く在籍し、フリーソフトウェアを積極的に取り入れ、活用しているそうです。okkezさんも業務としてフリーソフトウェアに含まれるバグの調査・修正を行なっています。
今回のセッションでは「バグを修正する方法」と題して、実例を挙げながらバグを特定・修正する方法についてご紹介いただきます。ここで対象とするソフトウェアは、内部構造について詳しく知らないものも含まれます。Rubyに限らないソフトウェアの調査・修正方法について学びたい方、フリーソフトウェア・オープンソースコミュニティに貢献してみたいと思っている方などは、ぜひこの話を聞いてみると良いでしょう。
"おやすみシャワーができるまで" - 設樂洋爾
株式会社えにしテックにてCTOを務める設樂洋爾(しだらようじ)さんの発表です。設楽さんはフィーチャーフォン対応用Railsプラグインであるjpmobileの開発やスープカレー情報検索サイトsoupcurry.info、Twitterで話題になっている情報を知ることのできるbuzztterといったサービスの開発・運営を行なっていることで知られています。
設楽さんは先日行われたクックパッド株式会社主催の第3回開発コンテスト24にチームで参加し、そこで彼らが開発したiPhone用アプリ「おやすみシャワー」は特別賞を受賞しました。このセッションでは彼らがどのように「おやすみシャワー」を企画し、作りあげていったのかをご紹介いただきます。
この開発の際の話は設楽さんのブログや、チームのメンバーである大和田純さんのブログでまとめられています。事前にこれらのエントリーに目を通しておくと、設楽さんの発表をさらに楽しめることでしょう。
この発表では、それぞれが高い能力を持ったチームである彼らがいったいどのように企画をデザインし、何を大切にしていたのか、そして「おやすみシャワー」で誰を幸せにしたいと思ったのか、そんな熱い話を、チームでの開発ノウハウや技術面の話とともに聞けることが期待できます。
"テストに開発を駆動させたい!" - 諸橋恭介
永和システムマネジメントの諸橋恭介さんの発表です。諸橋さんは、Rails3レシピブックや、達人出版会から出版されているはじめる!Cucumberの著者として知られています。諸橋さんがCucumberを使い始めたのは、半信半疑で試してみたら日本語が書けることが気に入ったためとのことです。
現在、Rubyを使ったシステム開発において、テスト駆動開発はやるべきこととしてすっかり定着しました。しかし、実際にテストを書こうとすると、"どのようなテストを書くべきなのか"を悩み、かえって手が止まってしまうこともあると思います。
このセッションでは、諸橋さんが、RSpecやCucumberのテストを書くときの"気分"や"考えていること"を伝えながら、本来の目的である「開発を駆動する」様子をご紹介いただきます。
"Finding True Love in Legacy Software" - Dane Harrigan
Dane HarriganさんはHerokuのAPIチームに所属するエンジニアです。Daneさんは仕事以外でも色々なgemを書いたり、Rubinius、Radiant CMS、the Heroku Gemなどへのコントリビュートも行なうなど、多岐にわたる活躍をしています。
HerokuといえばRuby on RailsのPaaSを提供し、Matzがチーフアーキテクトを勤める、Rubyistであれば憧れのベンダーの一つです。このセッションでは、そんなHerokuのエンジニアとして活躍するDane氏より「Legacy Software」についてご紹介いただきます。
Heroku APIはHerokuのプラットフォームにおいて、もっとも古くて大きなコードベースを持っています。Legacy softwareには、普通のソフトウェアでは見たこともないようなcodeが含まれています。しかし、同時に複雑な問題解決の方法や、なぜこの決断がされたのかという歴史が伴っています。DaneさんはLegacy codeを受け継いでいくことが、どのように、そして、なぜ素晴らしい体験になりえるかということをお話しいただきます。
ほとんどの人は、巨大なコードベースを引き継ぐよりも、新規にプログラムを作り上げる方がワクワクするでしょう。Legacy softwareと恋に落ちたというDane氏の講演は興味深いものです。
"30days Album の裏側 - レガシー Rails 編" - 長永健介
株式会社paperboy&co.にてWebサービスの開発に携わる長永さんのセッションです。長永さんはRuby on Rails製で20万人以上の会員数を誇るオンライン写真共有サービス30days Albumの開発を担当し、本アプリケーションを「古いRailsの使用」「不十分な自動テスト」という2つの側面で「レガシーなRails」アプリと感じています。
Railsは優れたフレームワークですが、アプリを開発したことのあるプログラマであれば、度重なるバージョンアップへの追従やテストコードの保守を継続し、レガシーと言われないアプリケーションを維持し続けることの難しさを少なからず経験しているはずです。
本セッションでは「30days Album の裏側 - レガシー Rails 編」と題しまして、長永さんがこれまでレガシーなRailsアプリケーションの運用と開発に携わる中で得られた知見やノウハウなど様々なトピックについてご紹介いただきます。Railsプログラマがどのようにレガシーコードと向き合いそして乗り越えていくかについて非常に興味深いお話が聞けそうです。
"クリアなコードの作り方" - 須藤功平
須藤功平さんはフリーソフトウェアプログラマーであり、株式会社クリアコードの代表取締役です。社名の由来である、クリアなコードを書くことに強い関心を持っています。全文検索エンジン「Groonga」の開発にも携わっていおり、事例としては「ぐるなび」のレストラン検索や「スカパーJSAT」の番組情報検索などがあります。また、今回札幌Ruby会議2012ではPlatinumスポンサーとして後援し、3名に参加チケットを譲ります」と案内していたことで話題になりました。
今回は、「クリアなコードの作り方」について普段どのようにクリアなコードを書いているかをご紹介いただきます。須藤さんは書籍『リーダブルコード』の解説を書かれており、そこには読みやすいコードを書くためのヒントが隠されています。こちらも必見です。
RabbitやCutterの人でも有名な須藤さんですが、他にも様々なオープンソースプロダクトに携わっています。クリアなコードを広めることで見通しの良いプロダクトにしていきたい気持ちが伝わってきます。
"プログラミングのトレーニング" - Taszycki Michal
Applicakeで"delicious"なソフトウェアを開発されているTaszycki Michalさんの発表です。Applicakeでプロジェクトのマネジメントをしながら、Code Retreatsという活動を通して同僚のプログラマを訓練しています。
今回のセッションでは、どのようにルーティンを設計するのか、どのように成長を計測するのか、ルーティンを簡単に習慣づけるにはどうしたらいいのか、という3点を示します。そして、次のレベルにスキルアップするために仲間のプログラマーを鼓舞すること、プロ意識の必要性に関する議論を始めること、プログラミングのトレーニングという活動を始めることの3点が今回の発表においてTaszyckiさんが目指すゴールです。
プログラマとして自分を高めて生きていくために、必見の発表となりそうです。
Ruby Kaja
Ruby Kajaとは日本のRubyistを表彰するもので、Yokohama.rbにてnagachika氏によって提案されました。Ruby Hero Awardという海外で行われている、Rubyコミュニティにおいて活躍した人を表彰するものをヒントにし、もっと日本のRubyistにも光をあてて更にコミュニティを活性化していこうという試みです。
kajaとは漢字で書くと「冠者」となり、若手の筆頭という意味を持ち、狂言の太郎冠者に由来しています。元々の冠者は男子を意味しますが、Ruby Kajaは性別不問です。今回の形式ではRubyコミュニティの単位でエントリーを行い、各コミュニティが表彰を行いたいと思う、Rubyist一名を選出する形式で17のコミュニティからエントリーされています。
札幌Ruby会議ではこのRuby Kajaの表彰式を行います。色々なコミュニティから選出された、全国のRubyist達を一緒に祝うとともに、この新しい試みがどのようにコミュニティを活性化していくのか楽しみです。
サブイベント
またやる出張版toRuby(併設The dRuby Bookサイン会)
RubyKaigi2011でもこっそり開催された、ゆRubyのtoRuby(栃木Ruby)パートが札幌Ruby会議2012の2日目の12:30から再度開催されます。
ゆるくぬるい勉強会ということで、島根大の講義のテキストに使った「dRuby体験」を教材に、一台のマシンで複数のプログラムが協調しあう様子を体験できます。
dRubyの開発者であり、書籍も執筆されている、関さんのお話を直接聞きながら、分散オブジェクトシステムについて学べる貴重な機会です。
参加申し込みはこちらで受付中です。ゆるい気分で参加してください。
try(:english)
JRuby/Nokogiriコミッタであり、日本人として初のRuby Heroにも選ばれた原田洋子さんによる国際交流企画が札幌Ruby会議2012の3日目、昼にピザ付きのミートアップとして開催されます。
4人程度の小さなグループで、ネイティブスピーカーRubyistと直接話しましょうという内容です。札幌Ruby会議2012の参加者限定開催で、英語が苦手な方、勉強中の方は、実際に話をしてみると英語を勉強しよう!という気持ちになるので、ぜひ参加をしてください。
海外のRubyistが仕事や趣味でどんなプログラムを書いているのか、また英語で実際に会話をしてどれくらいお話をすることができるのか、交流の場としても、学習の場としても有用な経験ができるでしょう。
参加申し込みはこちらから行うことができます。
おわりに
4回に渡って札幌Ruby会議2012のみどころを紹介しました。ご覧になっていただきありがとうございます。
当日会場にお越しいただけない方も、公式サイトにてURL告知予定のUstreamや、当日の速報レポートを楽しんでいただけると幸いです。今回の事前特集を執筆したメンバーが、当日レポートも担当いたしますので、引き続きよろしくお願いします。
We Code!