スケジュール
2016年5月28日
9:30 開場
9:50 開会の挨拶
Rubyに型があると便利か
最近開発したgem type_struct を中心に「Rubyに型があると便利か」という問いについて考察します。ひいては、Ruby3への議論に貢献できればと考えています。
必要となる知識
基本的なRubyの知識があればよいです。golangやcrystalのさわりもわかっていると、より楽しめると思います。
栗原 勇樹
株式会社spice life
RubyKaja 2014。子育ての合間に小さいライブラリーを作るのが趣味。
12:05 ランチ
13:25 Invited Speaker
最速ウェブサーバの作り方
近年、ウェブの体感速度は、ネットワークのバンド幅ではなくレイテンシによって律速される傾向が強まってきています。また、それに伴い、TCP Fast Open、HTTP/2、TLS 1.3といった、レイテンシの影響を削減/隠蔽する技術の標準化が進んでいます。本セッションでは、HTTP/2サーバ「H2O」の主開発者が、レイテンシの影響削減を主目的とするサーバのプログラミング技法や、HTTP/2の更なる高速化を実現する手法として標準化提案中の「Cache Digest」等を紹介し、それらをrubyから制御する手法を検討します。
必要となる知識
TCP/IPとUnixのソケットプログラミングに関する基礎的な知識があると、分かりやすいかと思います。
奥一穂
株式会社ディー・エヌ・エー
MIT TR100、日本OSS貢献者賞受賞、未踏ソフト認定の天才プログラマー。ウェブ基盤ソフトウェアが専門。代表作にPalmscape/Xiino、Japanize、Pathtraq、Q4M等。最近の仕事はHTTP/2サーバ「H2O」の開発。
アプリケーションへのRubyインタープリターの組み込み
発表者はmilter managerというアプリケーションへCRubyを組み込んだ経験と、Groongaというアプリケーションへmrubyを組み込んだ経験があります。
milter managerはメールフィルターアプリケーションです。大量の接続を同時にさばくために、マルチプロセス+イベント駆動型のサーバープログラムとして実装しています。このアプリケーションをRubyでカスタマイズするためにCRubyを組み込みました。このケースでうまく動かすためのGC、fork、シグナル、イベントループ回りの実装について紹介します。
Groongaは全文検索エンジンです。より高速に検索結果を返すために、細部もチューニングして実装しています。(細部は私は実装していません。)このアプリケーションのクエリーオプティマイザー、クエリー言語(の一部)をRubyで実現するためにmrubyを組み込みました。このケースでうまく動かすためのオブジェクトのライフサイクルの実装について紹介します。
時間次第ではmilter managerの話だけにするかもしれません。
必要となる知識
マルチプロセスとGCとシグナルとイベントループについての一般的な知識。
須藤功平
株式会社クリアコード
http://magazine.rubyist.net/?0053-Hotlinks
Re: Pattern Matching in Ruby
Rubyでパターンマッチを実現するためのライブラリであるpattern-matchに関する発表です。
本ライブラリについてはSapporo RubyKaigi 2012のPattern Matching in Rubyというセッションで機能概要を紹介したことがありますが、今回はメタプログラミングやRefinementsといったRubyならではの表現力をフル活用している実装面についてその舞台裏をお見せします。
必要となる知識
ScalaやHaskellにおけるパターンマッチの機能を知っていると内容が理解しやすいと思いますが必須ではありません。
辻本 和樹
株式会社野村総合研究所
Rubyコミッタ/power_assert開発者。いわゆるSIer業務を昼間の仕事としている一介の趣味プログラマ。
15:15 休憩
15:40 Invited Speaker
Image Recognition and Code that shouldn't exist
この発表では、Rubyを使った画像認識処理方法について、精度向上がどのように向上していったかを説明します。それと、実際に存在する必要のないコードを見ていきます。本発表で紹介する研究の目的は、あくまでも私個人の創造的で、役に立たない課題を書くことへの挑戦であり、有益な結果を産むものではありません。本発表を「自身を表示できないクワイン」と理解して頂ければと思います。
必要となる知識
Ruby, little about C, MtG (card game culture)
Aaron Patterson
IMF: Image Manipulation Framework
発表者は、Ruby のための画像操作ライブラリを昨年終盤から開発しています。本発表では、このまだ開発途上のライブラリについて、いま何ができるのか、そして将来どうしようと考えているかをご説明します。
IMF の開発が順調に進めば、いずれ RMagick は不要になります。そういう世界を速く実現するため、本発表を聞いて興味を持った人が開発に協力してくれるようになると嬉しいです。
必要となる知識
JPEG とか PNG とか WEBP などのビットマップ画像を扱ったことがあり、Ruby で画像を処理したいなぁと思ったことがある人向けです。RMagick を使ったことがある人はなお良いです。
村田 賢太
Recruit Holdings Co., Ltd. / Ruby committer
リクルートホールディングス Media Technology Lab にてソフトウェアエンジニアとして働きながら、プライベートでは BigDecimal のメンテナとして Ruby の開発に携わっている。
Optcarrot: A pure-ruby NES emulator
Ruby の高速化を煽るためのベンチマークプログラムとして、任天堂の家庭用ゲーム機であるファミリーコンピュータのエミュレータ Optcarrot を Ruby で開発した。高速な Ruby プログラムを書くための工夫と、各種 Ruby 処理系のベンチマーク結果を紹介し、MRI の最適化方針について議論する。
必要となる知識
ハードウェアに関する基礎的な知識があると望ましい。
遠藤侑介
'Ruby コミッタ。かつてはテスト、コードカバレッジ、リリースマネジメントなどを担当していた。高速化にはあまり興味がない。また、この説明文のように役に立たないプログラムを書く「超絶技巧プログラミング」を提唱・実践している。'.tap{|s|printf(t=%{'%s'.tap{|s|printf(t=%%{%s},s,t)}},s,t)}
17:35 休憩
17:55 Keynote
分散ワークフローエンジン『Digdag』の実装
ワークフローエンジンは、依存関係のある複数のタスクを実行するツールです。古典的なMakefileを始め、Python製のLuigi、商用のJP1/AJS3など、様々な実装があります。Digdagは、現在活発に開発が進んでいる新しいワークフローエンジンです。このセッションでは、ツリー構造を持つワークフローの状態遷移を効率的に実行する手法、ワークフローの実行状態の永続化と分散実行、タスクスケジューラ、Dockerによるサンドボックス化など、その実装手法を紹介しながらワークフローエンジンの構成技術について解説します。
必要となる知識
SQLの基本的な知識と、Rubyのリフレクション、オプティマイザなどの知識があると、より楽しめると思います。
古橋 貞之
Treasure Data, Inc. Founder & Software Architect
分散データベース「PlazmaDB」や分散Key-Valueストア「Kumofs」など、十年にわたって分散システムの開発に携わる。また、バイナリシリアライズ形式『MessagePack』、ログコレクタ『Fluentd』、並列ETL『Embulk』などのオープンソースプロジェクトを創始した。
18:45 閉会の挨拶
懇親会
19:30 - 21:30
スリーモンキーズカフェ 秋葉原店
〒101-0021 東京都 千代田区 外神田1-1-10 3F
懇親会へのご参加を希望される方は、懇親会チケットを別途ご購入下さい。 昼の会議に参加する方に限らせて頂きます。
なお、スピーカー、スタッフは懇親会のチケットの購入は不要です。