こんにちは、hachi8833です。RubyKaigi 2019サイトにスライドや動画が続々掲載され始めていますね。前回はスライドを記事に貼っていましたが、今回からは控えめにします。
そういえば、早くも来年のRubyKaigi 2020@松本のディレクトリができていますね。
誤りや追加情報などがありましたら@hachi8833までお知らせください。
「サーバーレス」
- Day1セッション: Building Serverless Applications in Ruby with AWS Lambda - RubyKaigi 2019(@alexwwood)
- Day3セッション: Ruby Serverless Framework - RubyKaigi 2019(@tongueroo)(見に行けず😇)
AWS Lambdaの中の人でRuby runtime for AWS Lambdaの作者である@alexwwoodさんのセッションでは、LambdaでのRuby実行の実演が中心でした。DynamoDBをActive Recordっぽく扱えるgemを紹介したり、イヌ写真をレーティングするデモアプリを動かしてみせたりしました。
- リポジトリ: aws/aws-sdk-ruby-record: Official repository for the aws-record gem, an abstraction for Amazon DynamoDB. -- 作り中
- リポジトリ: aws-samples/aws-lambda-ruby-dog-rating-app: A sample serverless application running on Sinatra to rate dogs. -- サンプルアプリ
AWSエンジニアである@tonguerooさんは例のRuby on Jetsの作者です。morimorihogeさんが「productionに乗せられるものを作れそう」とJetsに期待を寄せていました。
- サイト: Ruby on Jets | The Ruby Serverless Framework
- リポジトリ: tongueroo/jets: Ruby Serverless Framework
- サイト: BoltOps Blog -- @tonguerooさんがJetsでさまざまなものを作っています
Here are the slides to the Jets talk in #rubykaigi 👍 https://t.co/DXp1oPA4it #rubyonjets #awslambda #ruby
— Tung Nguyen (@tongueroo) April 20, 2019
「データサイエンス」
- Day1セッション: Ruby for NLP - RubyKaigi 2019(@youchan)(見に行けず😇)
- Day1セッション: A Deep Learning Adventure - RubyKaigi 2019(@nusco)
- Day2ワークショップ: RubyData Workshop - RubyKaigi 2019(未参加😇)
- Reducing ActiveRecord memory consumption using Apache Arrow - RubyKaigi 2019(@mrkn)
- Day3セッション: Red Chainer and Cumo: Practical Deep Learning in Ruby - RubyKaigi 2019(@sonots、@hatappi)
- Day2パーティ: RubyKaigi 2019 コード懇親会 - connpass(Speee様スポンサー)
4年前のRubyKaigi 2016@京都で@mrknさんのセッションを聞いたときは、Rubyにおけるデータサイエンス向けライブラリやツールはかなりお寒い状態だったと記憶しています。
参考: データサイエンスにおけるRubyの現在の位置づけと可能性 | しまねソフト研究開発センター
しかしその後@mrknさんをはじめ多くの方々がRed Data Toolsというプロジェクトを立ち上げて精力的に活動し、red-chainerフレームワークやpycall、Apache Arrowをはじめとして、今回のRubyKaigi 2019ではデータサイエンス/深層学習方面の発表が増えていて、4年前からは想像できないぐらいRubyのデータサイエンス方面が充実しつつあると感じられました。
参考: Red Data Tools - Rubyでデータ処理!
- リポジトリ: red-data-tools/red-chainer: A flexible framework for neural network for Ruby
- リポジトリ: mrkn/pycall.rb: Calling Python functions from the Ruby language
@sonotsさんと@hatappiさんのセッションはRed Chainerの速度をCumo(GPU向け数値計算ライブラリ)で改善したり、ONNXで他のフレームワークのモデルを利用する話でした。
I've uploaded the slide of our (me and @hatappi) today's talk!! #rubykaigi #rubykaigiD https://t.co/4RKKTd67vZ
— そのっつ (Naotoshi Seo) (@sonots) April 20, 2019
「Programming Machine Learning」の著者でもある@nuscoさんのセッションは、深層学習の原理を解説するとともに、既存のライブラリをあまり使わずにRubyで深層学習をやってみるという企画でした。
- リポジトリ: nusco/deep_learning_adventure: Code for my presentation: "A Deep Learning Adventure", at RubyKaigi 2019
- 書籍: Programming Machine Learning: From Zero to Deep Learning by Paolo Perrotta | The Pragmatic Bookshelf
Day1の@youchanさんのセッションは見られませんでしたが、幸いDay2夜のコード懇親会のNLP(自然言語処理)のテーブルで、@youchanさんのご指導のもとで私もNLPのいろはである「MeCabでの日本語品詞分解」を初めてやってみる機会を得られました🙏。コード懇親会では他にもさまざまなお題ごとにテーブルに分かれてもくもく楽しくコーディングしていました。
参考: MeCab: Yet Another Part-of-Speech and Morphological Analyzer
「ライブラリ」
- Day1セッション: RMagick, migrate to ImageMagick 7 - RubyKaigi 2019(@watson1978)(見に行けず😇)
- Day1セッション: How to take over a Ruby gem - RubyKaigi 2019(@maciejmensfeld)(見に行けず😇)
- Day2セッション: Building Homebrew in Ruby: The Good, Bad and Ugly - RubyKaigi 2019(@MikeMcQuaid)(見に行けず😇)
- Day2セッション: Better CSV processing with Ruby 2.6 - RubyKaigi 2019(見に行けず😇)
CSVセッションを見たkazzさんによれば「リファクタリングがキレイな雰囲気で好感❤️」だったそうです。
「スレッド」「並列」
- Day1セッション: Fibers Are the Right Solution - RubyKaigi 2019(@ioquatix)(見に行けず😇)
- Day1キーノート: The Year of Concurrency(@yukihiro_matz)
初日のキーノートの中で、「Rubyのスレッドについては、当時マルチコアの未来を予測できず、導入を後悔している」「GUILDやAutofiber(名前は変わるかも)が定着したらスレッドが使われなくなるようにできるのではないか」とMatzが話していたのが印象的でした。
Apple II
年のせいか個人的に最も胸アツのセッションでした😂。太古のApple II(正確にはApple IIc)で無理やりRubyを動かすという企画です。
6502 CPUはクロック1MHz(!)、メモリ容量もファミコンと大差ないときているので、そのままではCRubyはもちろん、ライブラリをすべて取っ払ったmrubyすら動かず、それ以前にgccが動きません😇。さらにApple IIのキャラクタモード(文字がROMに焼き込まれている)には英小文字がないという難攻不落ぶり。
そこで「nRuby」と称して全部6502アセンブラでRubyを書き下ろしたそうです。生成できるオブジェクトの上限は256個までと決める代わりに、Rubyの基本的な挙動は可能な限り再現するという手加減なしの追い込みに魂が震えました❤️。発表時点では惜しくも完全に動かすところまではいかなかったのですが、それでもアセンブラでテスティングフレームワークまで作ったのだそうです。Apple IIを直接プロジェクターにつないでやってるので、矢印を無理やりインポーズするなど工夫をこらしていました。
TK-80で遊んでいた私には、画面に映った6502アセンブラリストが懐かしすぎてうるっときてしまいました😭。カンペ見なくてもLDY、STA、BNEとかの意味を思い出せるっ!ゼロページアドレッシングモード!NMI!、IRQ!
1ドル=240円のあの時代、Apple IIはあまりにも高価でした(FDDとプリンタのフルセットで80万ぐらいだった覚えがあります💸)。