9月14日~16日に開催される札幌Ruby会議。その見どころを紹介する事前特集、後半戦の第3回目です。今回は2日目のセッションと、同日のおわりに開催されるLightning Talkを紹介します。
セッション紹介 2日目
"コミュニティのある風景。" - 佐藤竜之介
佐藤さんは株式会社えにしテックにて、ソフトウェア開発を行う技術者です。またRuby札幌の所属であり、札幌のJavaScript勉強会、Sapporo.jsも主宰しています。
最近、"ソーシャルコーディング" という言葉を耳にする機会が増えてきています。ソーシャルコーディングは「単に狭いところで流行っているだけではない。Rubyの会が行う今後の活動においても、おそらく活動の一端を支えるキーワードの1つになるのではないか、と思われるくらいには重要な考え方である。」(Rubyist Magazine0036号冒頭文)と言われるほど注目されています。
ソーシャルコーディングという言葉を耳にしていても「実際は難しいのではないか?」「新しい言葉なので、最新技術が盛り込まれているのではないか?」と不安もあるかもしれません。しかしながら佐藤さんは、ソーシャルコーディングは"特別"な人達だけに関係するというものではなく、 ただソフトウェアを開発することが好きでありさえすれば、 だれでも楽しむことができるものであると言います。
今回は特に"ソーシャルコーディング"にまだ触れたことがない、もしくは少しでも興味がある方々に向けての発表になります。このキーワードを聞いて気になっていた方にはぴったりのセッションになるはずです。
"Purely functional programming in Ruby" - 前田修吾
modruby、erubyの開発、Rubyコーディング規約の作成、RailsによるアジャイルWebアプリケーション開発の翻訳など多岐に渡る活躍をされ、Rubyアソシエーション副理事長でありRubyコミッターでもある前田修吾さんの発表です。
Rubyは、既にブロックなどの形で関数型言語の機能の一部ををうまく取り込んでおり、皆さんも、普段、特に関数型言語由来であることを意識せずに便利に使っていると思います。今回はさらに一歩関数型へと近づいて、Rubyで純粋に関数的なプログラミングを行う方法をご紹介いただきます。
なお、『Rubyベストプラクティス』という書籍では、Rubyにおいての関数型プログラミングのテクニックについて、1章を割いて取り上げられています。講演を聴く前に読んでおくとより一層楽しめるかもしれません。
"Social Coding をはじめよう" - Shota Fukumori (sora_h)
最年少Rubyコミッターとして知られ、「中卒フリーター」を自称するsora_h(福森匠大)さんの発表です。sora_hさんは中学校を卒業した今年の3月に「第7回 日本OSS奨励賞」を個人部門で、そしてsinsai.infoの開発メンバーとして団体部門で受賞しています。
あなたはGitHubを活用していますか? GitHubは無料で使えるGitリポジトリを提供するのみならず、ソーシャルコーディングを実現するための機能を数多く提供しています。今回の札幌Ruby会議の講演者募集も、このGitHubの仕組みを活用して行われました。
GitHubには実に100ものsora_hさんの公開リポジトリがあり(8月25日現在)、sora_hさんは「ソーシャルな」コーディングを実践しています。それらはほんのちょっとしたスクリプトから公開しているアプリのソースコード、競技プログラミングの回答、そしてGitHubの“fork”機能を使って他人のリポジトリから分岐したものなど、多岐にわたります。
“pull request”は、GitHubの根幹をなす機能ですが、sora_hさんによれば、Ruby界で有名なプロジェクトでも日本人からのpull requestの割合はとても少なく、ソーシャルコーディングを実践できている日本人は少ないのが現状のようです。現在GitHubのようなリポジトリホスティングサイトは広く使われるようになりました。しかし、Gitをインストールした、GitHubに登録した、だけで止まってしまい、うまく活用できていない方も少なくはないのではないでしょうか。
このセッションではsora_hさんがいままでに提出したpull requestなどの実例を取り上げて、ソーシャルコーディングを実践する方法を説明します。これを期にあなたも、自分のソースコードを「ソーシャルに」世界と共有する手段を身につけてみませんか?
"Pattern Matching in Ruby" - 辻本和樹
Rubyコミッターでもある辻本 和樹さんの発表です。
Rubyにはありませんが、パターンマッチという機能を持つ言語が多数あります。とても簡単に言ってしまうと、強力なcase文です。case文と同様、値によって処理を分ける際に良く用いられますが、より便利な記法や機能が用意されています。case文に比べると機能が豊富なため、記述が複雑になりがちなパターンマッチですが、辻本さんはどのような記法を実装されたのでしょうか。
パターンマッチは関数型言語では広く利用されている機能であり、辻本さんの前に発表される前田さんの発表とあわせて、現在よりさらに関数型言語の利点をRubyで利用するにはどういう方法があるかというテーマで聞くとより楽しめるかもしれませんね。
"Γυβψ のコミュニティ" - Danish Khan
ソースコードなどをgitベースでホスティングするサービス「GitHub」で仕事をしている、Danish Khanさんの発表です。氏はRubyを使い始めたことによって、実践的なプログラミングの技術を身につけたくなってきた、またそれを教えていくことも楽しいことだと感じられるようになってきたとのことです。
このセッションでは、Rubyコミュニティにおける「新入りと古参」が話の核となっています。Rubyができてから18年が経過し、Rubyにおける人の繋がり=コミュニティはどんどん大きくなっています。そのような中で、新たにコミュニティに入ろうとする人はどうすれば慣れていけるのか、またそういう人たちを長くコミュニティに属している人はどうすれば支えていけるか、といった話をしていただきます。
また、Rubyのコミュニティでは、人との付き合いが長くなったことによる交流関係が存在し、また「アジャイル」や「テスト駆動開発」などのRubyのコミュニティにおいて定着した文化もあります。こういったものがコミュニティに及ぼす利点・欠点を踏まえ、コミュニティにどうすれば新しい人が入りやすくなるかについても取り上げます。
"アメリカのカンファレンスに行こう!" - 原田洋子
yokoletこと原田洋子さんは2009年からJRubyプロジェクトのコミッターとして活躍し、今年のRuby Heroに選ばれました(「Ruby Hero Aword」は2008年から始まりましたが、受賞は日本人としては初の快挙です!)。
JRubyとは、Java言語で実装されたRubyの処理系です。原田さんはJRubyプロジェクトで、RedBridge(またはJRuby Embed)と呼ばれる、JavaからRubyコードを呼び出す重要なライブラリの開発者を務めています。
そんな原田さんの発表は、アメリカで開催されるカンファレンスへの参加のすすめです。国際化のすすめについてはさまざまな文脈で語られますが、ことプログラミングの分野でも英語が有利になることは多いでしょう。
原田さんはblogやTwitterもほとんど英語で書いています。発表に臨んでの記事 も書かれていますので、こちらあわせて読んでみてください。
また、今回の札幌Ruby会議にも海外から多くの参加者・発表者が参加します。ランチや懇親会で、もの怖じせずにコミュニケーションを持つことで得られるものもあるのではないでしょうか。
"Ruby; Exported" - 宮川達彦
紫色のなにかを口に押しつけているハッカー、宮川達彦さんによる発表です。
宮川さんは主にPerlプログラマとして精力的に活動しており、Shibuya.pmの立ち上げやYAPC::Asia(YAPCはYet Another Perl Conferenceの略称)の開催に関わっていることで知っている方も少なくないのではないでしょうか。また、2012年の2月にはCOOKPADへの転職を発表したことが話題を呼んでいました。
RubyがPerlなどの言語から大きな影響を受けていることはよく知られていますが、逆にRubyやそのプロジェクトが他の言語に与えている影響も少なくありません。この発表ではRackやUnicorn、Bundlerといったプロジェクトを取り上げ、それらのコンセプトがPerlの開発者コミュニティにどのように影響を与え、受け入れられていったのかをご紹介いただきます。
Perlプログラマとして有名な宮川さんによる発表ということで、他のセッションとは異なった視点での話が期待できます。RubyとPerlの関わりを通して、それぞれの言語やコミュニティ、文化の良さを再発見できる機会になるのではないでしょうか。
"Japanese - a programmer's language" - アンドリュー グリム
オーストラリア、シドニーから「Japanese - a programmer's language」と題した、アンドリュー グリムさんの発表です。アンドリューさんは、ニューサウスウェールズ大学のバイオインフォマティクスの研究者で、Encyclopedia of Life関係の仕事でRailsを使ったことをきっかけにRubyと出会い、今はPlain Old Ruby Objectsを専門としています。
日本語は一見したところ非常に奇妙な言語のように西洋人には見えるそうです。しかし、多くの点で他のヨーロッパの言語よりも英語に似ていて、非常に論理的な言語だと感じているそうです。また、アンドリューさんは昨年のRubyKaigi2011で、ランダムなRubyコードを生成することでRubyの様々な処理系におけるバグを見つけるためのSmall Eigen Colliderというライブラリについての発表をするために日本に来るにあたり、日本語を勉強したとのことです。
今回のセッションでは和製英語や敬語、接頭辞などを題材に日本語の、興味深い特異性の一部をご紹介いただきます。日本語を勉強中の方はもちろん、普段日本語を使っている人にとっても、自分が何気なく使っている言語について考えることができる、興味深いセッションになりそうです。
"Rails3レシピブック外伝" - 松田明(+豪華ゲスト陣)
松田明さんはRubyのコミッターであり、地域コミュニティ「Asakura.rb」の発起人です。そして松田さんのGithubには、沢山のRails向けのプロダクトが存在するなど、日本におけるRailsの第一人者でもあります。
今回は、松田さんが著者として関わっている『Rails3レシピブック190の技』についての発表です。松田さん他、豪華ゲスト陣を招き、紙面の都合で載せることのできなかった隠しレシピや新レシピを惜しげもなく紹介するそうです。
発刊後1年の間に新たに開発された新レシピが公開されることから、1年間での変化を振り返ることもできることでしょう。また、読者の健康を損なう恐れすらある裏レシピ、闇レシピも公開されるとのことですので、相当濃い内容であることが伺えます。
なお、基本的なレシピには触れないそうなので、まだ著書を読んでいない方は事前に読んで予習しておくことをおすすめします。
"Towards Ruby 2.0: Progress of VM Internals" - Koichi Sasada
笹田耕一さんは現在Heroku, Inc.にてフルタイムのRuby開発を行なっているCRubyコミッターです。前職では東京大学大学院情報理工学系研究科にて講師を務められており、現職に移られたことが記憶にあたらしい方もいるかもしれません。Ruby1.9で採用されたVM(仮想マシン)であるYARVの開発や、Ruby用マルチ仮想マシンによる並列処理の研究など、Ruby開発の中心人物の一人です。
今回の発表では"Towards Ruby 2.0: Progress of VM Internals"と題し、今年の12月24日にプレビュー版、Ruby誕生から20周年にあたる2013年2月24日に正式版のリリースが決まった「Ruby2.0」のVMに関連する新機能についてや、Rubyインタプリタの性能向上についての発表です。
またRuby2.0公開への計画についても紹介があるそうで、コアなRubyistにとって注目度の高いセッションになるのではないでしょうか。
"Ruby on Rails: The Bad Parts" - 浦嶌啓太
永和システムマネジメントのチーフプログラマである浦嶌啓太氏(@ursm)のRuby on Railsに関する発表です。浦嶌氏はRuby on Railsやアジャイル開発の経験が豊富なRubyプログラマであり、最近では@ITの運営するQA@ITの開発に携わっています。
賛否両論はあると思いますが、Ruby on RailsはRubyをメジャーなプログラミング言語へと進化させた原動力の1つです。しかしながら、その黒魔術的なしくみに苦しめられたプログラマも少なくはないでしょう。そして、現在もなお、進化し続けるフレームワークであり、その歪みからは目を背けることはできません。
本セッションでは、そのようなRailsの闇を浦嶌氏の視点で切り捨て、今後はどのように進化していくのかをご紹介いただきます。
"Rubyによる本気のGC" - 中村成洋
中村成洋さんことnariさんはNaClに所属するCRubyのコミッターであり、「nariさんといえばGC」「GCといえばnariさん」というほどGCが好きなことで知られています。これまでにもGCに関するセッションを数多く行なっており、通称G1GC本、GC本と呼ばれる2冊の書籍を執筆しています。
昨年のRubyConf2011ではスピーカーとして初の英語でのセッションを行い、その後RubyConf Argentina 2011にも登壇するなど活躍の場を広げています。またnariさんはシャイであることで知られるRubyistのなかでも、自ら公言するほどシャイな方ですが、「あきらめない」という座右の銘や、GCにかける愛情をみていると、内に秘める情熱は非常に大きいように感じられます。
そんなnariさんが今回お話されるのは「Rubyによる本気のGC」です。C言語ではなくRubyを用いて本気のGCを書く方法についてお話されるとのことでどのように実現されるのか、興味深い話を聞くことができるでしょう。
Lightning Talk
2日目の最後はLightning Talkが行われます。今回は11本のLightning Talkが予定されています。
プログラミングとRubyと家族と自分 - 沼田一哉
フリーソフトウェア開発者である沼田さんのLTです。家計簿ソフト「家計簿さな太郎」の開発を通して、自分は「何のためにプログラミングをするのか」ということやプログラミングと家族との関わりを紹介します。
7 reasons you should buy the dRuby book. - Masatoshi SEKI
dRubyによる分散・Webプログラミングの著者である関さんが、あなたがこの本を買うべき7つの理由を、読者の視点、著者の視点、Rubyコミュニティの視点から話します。
axlsxを使ったグラフ・書式・画像などを含めたOOXML生成 - モーガン・ランディ
Randy MorganさんはRubyでOOXMLを生成することができるaxlsxというgemの開発者です。このLTでは、顧客レポートにCSVよりもaxlsxを用いるべきとしてその理由を説明します。
thinreports-railsのご紹介 - 篠田健
PDFジェネレーターであるThinReportsをRailsで使うためのテンプレートハンドラについて、作者の篠田さんが説明します。
Rails Hackathon in Okinawa - 安川要平
Okinawa.rbの設立者である安川さんが11月17日と11月23日、24日に行われるRails hackathonを紹介します。
非Rubyな会社で仕事にRubyを持ち込むための5つの方法 - 栗林健太郎
栗林さんによる、Rubyを使いたいけれど非Rubyな会社に務めている方々に向けて、思う存分Rubyが書けるようになるためのテクニックを紹介します。
Code Review in Action - Naoto Takai
Cookpadの高井さんが、社内で毎日10を超えるpull requestsをGitHub Enterpriseでレビューを行っている経験から、コードレビューを通して内部の品質を高める方法と、そのポイントについての発表です。
nadoka さんの m17n 対応のベストプラクティス - 西山和広
IRCサーバのクライアントプログラムである「nadokaさん」を作っている西山さんによる、多言語化のベストプラクティスについての発表です。
mruby on TOPPERS - 高橋征義・やまねゆりえ
達人出版会・日本Rubyの会の高橋さんと、やまねゆりえさんによるmrubyについての発表です。QEMU上のTOPPERS上のmrubyではなく、今回はハードで実際に動かしつつ詳しく説明していただけるようです。
自分のためのコードを書こう - Hibariya
Hibariyaさんが自分のためのコードを書いていく中でどのようなことが得られたのか、gemやオープンソースに関連したいくつかのトピックを紹介します。
LET'S SUBMIT YOUR PROPOSAL - こしばとしあき
東京Ruby会議10実行委員長を務めるこしばさんによる、CFPの応募へチャレンジするコツについての発表です。
次回予定
次回は最終日である3日目のセッションを紹介する予定です。開催直前の9月11日に公開予定です。お楽しみに!