Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

キーワードで振り返るRubyKaigi 2019@博多(#3)サーバーレス、スレッド、データサイエンス、Apple IIほか

こんにちは、hachi8833です。RubyKaigi 2019サイトにスライドや動画が続々掲載され始めていますね。前回はスライドを記事に貼っていましたが、今回からは控えめにします。


rubykaigi.orgより

そういえば、早くも来年のRubyKaigi 2020@松本のディレクトリができていますね。

誤りや追加情報などがありましたら@hachi8833までお知らせください。

「サーバーレス」


AWS Lambdaの中の人でRuby runtime for AWS Lambdaの作者である@alexwwoodさんのセッションでは、LambdaでのRuby実行の実演が中心でした。DynamoDBをActive Recordっぽく扱えるgemを紹介したり、イヌ写真をレーティングするデモアプリを動かしてみせたりしました。


AWSエンジニアである@tonguerooさんは例のRuby on Jetsの作者です。morimorihogeさんが「productionに乗せられるものを作れそう」とJetsに期待を寄せていました。

「データサイエンス」

4年前のRubyKaigi 2016@京都で@mrknさんのセッションを聞いたときは、Rubyにおけるデータサイエンス向けライブラリやツールはかなりお寒い状態だったと記憶しています。

参考: データサイエンスにおけるRubyの現在の位置づけと可能性 | しまねソフト研究開発センター

しかしその後@mrknさんをはじめ多くの方々がRed Data Toolsというプロジェクトを立ち上げて精力的に活動し、red-chainerフレームワークやpycall、Apache Arrowをはじめとして、今回のRubyKaigi 2019ではデータサイエンス/深層学習方面の発表が増えていて、4年前からは想像できないぐらいRubyのデータサイエンス方面が充実しつつあると感じられました。

参考: Red Data Tools - Rubyでデータ処理!


@sonotsさんと@hatappiさんのセッションはRed Chainerの速度をCumo(GPU向け数値計算ライブラリ)で改善したり、ONNXで他のフレームワークのモデルを利用する話でした。


「Programming Machine Learning」の著者でもある@nuscoさんのセッションは、深層学習の原理を解説するとともに、既存のライブラリをあまり使わずにRubyで深層学習をやってみるという企画でした。


Day1の@youchanさんのセッションは見られませんでしたが、幸いDay2夜のコード懇親会のNLP(自然言語処理)のテーブルで、@youchanさんのご指導のもとで私もNLPのいろはである「MeCabでの日本語品詞分解」を初めてやってみる機会を得られました🙏。コード懇親会では他にもさまざまなお題ごとにテーブルに分かれてもくもく楽しくコーディングしていました。

参考: MeCab: Yet Another Part-of-Speech and Morphological Analyzer

「ライブラリ」

CSVセッションを見たkazzさんによれば「リファクタリングがキレイな雰囲気で好感❤️」だったそうです。

「スレッド」「並列」

初日のキーノートの中で、「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!

参考: 6502 Instruction Set

1ドル=240円のあの時代、Apple IIはあまりにも高価でした(FDDとプリンタのフルセットで80万ぐらいだった覚えがあります💸)。

関連記事

キーワードで振り返るRubyKaigi 2019@博多(#1)

キーワードで振り返るRubyKaigi 2019@博多(#2)Rails、JIT、コントリビューション


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。