開発部サービスチームの日下(@n0_h0)です。
今回、初めて RubyKaigi に参加してきました!
この記事では、印象に残ったセッションを3つご紹介いたします。
弊社からは2人参加しており、もう1つのレポート記事は以下のリンクになります。
セッション紹介
bancor: Token economy made with Ruby
@kurotaky さんによる Bancor Protocol に関するセッションです。
暗号通貨等のトークンは、マイナーなものほど売りたい時に買手が見つからない流動性リスクという問題があります。
そこで、トークンの価格決定を自動化することで流動性リスクを解決しようとしているのが Bancor Protocol です。
より詳細な説明に関しては、スライドにも挙げられていました以下の記事に書かれています。
しかし、Bancor Protocol を実際にブロックチェーン上で試してみるにはインフラの問題や学習コストの高さ等のハードルがあります。
そこで、Bancor Protocol はただのプロトコルですので、シミュレーションを行える bancor gem を作成されており、デモも行われました。
実装を読んでみると、結構シンプルだったのが興味深かったです。
Hijacking Ruby Syntax in Ruby
@joker1007 さんと @tagomoris さんのお二人によるセッションです。
Binding、TracePoint、Refinements 等を使用したメタプログラミングの力を紹介されていました。
特に、TracePoint と Binding を使用する事で任意のコード中の変数を上書きすることが出来るというのは強烈だと感じました。
また、メタプログラミングの力を行使するだけではなく、Refinements を使用することで安全に利用できる gem を作られていたのは本当に凄いと思います。
個人的には、1番 Ruby の大いなる力を感じることのできる発表で、とても面白かったです。
How to get the dark power from ISeq
@youchan さんによる ISeq の可能性を探求するセッションです。
ISeq とはパーサー&コンパイラ、RubyVM の中間に位置するものです。
Ruby のコードはパーサーによって解釈されて ISeq にコンパイルされ、RubyVM によって実行されます。
ISeq は内部APIとして扱われており、ドキュメント化されていません。
しかし、ISeq の仕様をドキュメント化する事ができれば、他の言語で作成されたコードを ISeq バイナリ形式に変換することで、RubyVM で動かすことができるようになります。
実際、@youchan さんが ISeq Builder というものを作成されており、brainfxck コンパイラのデモが行われました。
有効に使うことで Ruby の方言を作れるのではないか等、とても面白い提案をされており聞いていてワクワクするセッションでした。
おわりに
Rubyist の熱気を肌で感じる3日間でした。
同時に、自分の力不足による危機感も感じ、まだまだ勉強していきたいです。
シンクロ・フードでは RubyKaigi は出張として扱っており 参加費、交通費、宿泊費の会社負担、土曜日の休日出勤扱い を行っております。
Rubyist を絶賛募集しておりますので、ご興味のある方は以下よりご連絡ください!