Cookpad Ruby Hack Challenge

f:id:koichi-sasada:20170629153022p:plain

技術部の笹田です。Ruby インタープリタの開発をしています。最近は Fiber まわりを10年ぶりにいじってます。

2017/08/30, 31 に、Cookpad Ruby Hack Challenge というイベントを行いますので、その宣伝をさせてください。

Cookpad Ruby Hack Challenge とは

クックパッドで Ruby インタプリタを Hack しよう!

クックパッドをはじめ、多くのウェブアプリケーション開発でプログラミング言語 Ruby が利用されています。Ruby で書かれたプログラムを動かすときは Ruby インタプリタで実行します。

Cookpad Ruby Hack Challenge は、この Ruby インタプリタに対して機能を追加したり、改良したり、性能向上させたりする方法、つまり Ruby インタプリタを Hack する方法を、二日間かけてお伝えするイベントです。

イベント概要

二日間かけて、Ruby インタプリタをハックします。一日目は共通課題として、用意する資料を手順どおりに進めて頂きます。二日目は発展課題として、Ruby インタプリタに残る未解決問題に取り組んで頂きます。両日とも、講師は Ruby コミッタの笹田が務めます。

また、二日目には特別企画として、クックパッド以外の Ruby 開発者とも交流できる場を用意したいと思っています。Ruby という言語や、Ruby インタプリタに対する疑問や意見がある人は、この機会にぜひ議論してもらえればと思います。

学生の方には、ぜひ夏休みのアクティビティの一つとして楽しんで貰えると幸いです。

なお、本イベントは、以前ご紹介した社内イベント Hackarade: MRI Internal Challenge を、よりわかりやすくブラッシュアップしたものになります。

こんな方に来てほしい

  • Ruby インタプリタの Hack がしてみたい方
  • Ruby プログラムは書けるけど、どうやって動いているのか知りたい方
  • プログラミング言語 Ruby および Ruby インタプリタを普段開発しているような人達が、何を考えているのか知りたい方
  • 難易度の高いプログラミングに挑戦してみたい方
  • 夏休みの思い出が欲しい方

共通課題(1日目)のゴール

  • Ruby のソースコードの構造を知る
  • Ruby のビルドができるようになる
  • Ruby の中身を弄ることができるようになる

発展課題(2日目)のゴール(できれば)

  • 未解決問題を解決する
  • 実際に Ruby インタプリタへの貢献を体験する
  • 開発コミュニティへの参加を体験する

スケジュール

注意:時間等は変わる可能性があります。

開催前

  • 7/27 (木) 募集締め切り
  • 7/29 (土) 参加者抽選決定
  • Gitter を用いたオンライン予習サポート(希望者)

8/30 (水) 一日目

  • 10:00 オープニング
  • 10:30 ハックに必要となる事前知識の講義
  • 12:00 ランチ
  • 13:00 共通課題
  • 16:00 発展課題の紹介と割り振り

8/31 (木) 二日目

  • 10:00 発展課題の開始
  • 11:30 まつもとゆきひろ氏 特別講演
  • 12:00 Ruby開発者を交えてのランチ
  • 13:00 Ruby開発者との Q&A セッション
  • 14:00 発展課題の再開
  • 18:00 打ち上げパーティー

なんでクックパッドで開催するの?

前節までは、募集ページそのままの内容でした。これだけではなんなので、本イベントを開催する動機について、少し触れておきます。

いくつかあるのですが、まずは IT エンジニアコミュニティへの還元です。クックパッドは「毎日の料理を楽しみにする」という目標のために、多くの IT 技術を活用しています。我々は OSS としてプロダクトを公開したり、この開発者ブログでの情報発信をすることで、エンジニアコミュニティへの還元を行っていますが、本イベントはその一環です。おそらく、本イベントに興味を持つ方は、向上心があり、これからのエンジニアコミュニティを牽引して下さる、かもしれない、方々だと思うので、そのような方々へ支援することは大事なことだと思っています。

笹田個人の動機としては、このようなイベントをきっかけに言語処理系といったシステムソフトウェア開発に興味を持つ人が少しでも増えてくれたり、優秀な Ruby コミッタが増えてくれると嬉しいです(Ruby にはまだまだ改良の余地がありますが、人手が足りていません)。最近、システムソフトウェアといったコンピュータの「裏方」に興味を持ってくれる人が少なくなっているような気がします。いろいろな理由があるかと思いますが、一つは難しそう、といった「とっつきづらさ」があるのではないかと思います。本イベントを通して、そのようなハードルを越えるお手伝いができればと思っています。

このような思いを実現するためには、長期的に継続して活動を行っていく必要があると考えており、本イベントはその第一歩です。うまくいけば、第二弾や、別テーマでの開催も検討できるのではないかと思っています。そもそも、クックパッド1社でやってもスケールしないので、もっと広げたいと思っており、夢(だけ)は広がります。というわけで、まずは本イベントがうまくいくといいなぁ。

おわりに

というわけで、Cookpad Ruby Hack Challenge のご紹介でした。 ご興味とお時間がある方は、ぜひご応募ください。

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/