Rubykaigi 2019 Day2 レポート

Rubykaigi 2019 Fukuoka

どうも!皆様初めまして!
株式会社ねこじゃらし の エンジニア スクラムマスター 市川です!
2019年4月18日から 3日間、福岡県で開催されている Rubykaigi2019 に 弊社エンジニアと共に参加させて頂いております🙇
昨日、1日目の内容について、中山村上 が記事を書いておりますのでそちらもぜひ御覧ください!

私の方では、2日目についていくつか書かせて頂きます!

All bugfixes are incompatibilities

登壇者: nagachika ( @nagachika ) さん

f:id:nekojarashi-Inc:20190421090639j:plain
公演の様子

このセッションに入る前に RubyGems.org から重要なお知らせがありました。 RubyGems.org のアカウントがハックされ、悪意のある Gem がリリースされる事象が発生しているので アカウントをお持ちの方は、パスワードの変更を行ってほしいとのことです。

セッションの内容としては、Ruby の安定化メンテナンスとしてどのようなことを普段されているかという内容でした。

Ruby の ブランチ運用について

Ruby のブランチ運用では、Trunk をベースに開発を開発を行っていて Trunk から 安定版のブランチを切り出しているそうです。
作成された安定版ブランチには、1人ずつ安定化メンテナーがつき Trunk にて修正された bugfix を様子を見ながら、各安定ブランチ へマージを行っているとのこと。
ちなみに安定版ブランチが Trunk に戻ることはないそうです。

安定化メンテナーが普段されていること

上記で話されていた、bugfix を 安定版ブランチへマージする 部分等のより具体的な話になりました。 中でも印象的だったのが
メンテナンスを行った時の失敗談の内容で
修正されたパッチの修正内容がとても綺麗だったので、思わずマージしたら処理が重くなってしまったため revert した
ってエピソードがエンジニアらしいなと思いとても印象的でした笑

Better CSV processing with Ruby 2.6

2つ目のセッションは
Ruby 2.6 で CSV が早くなった話

登壇者: Kouhei Sutou (@ktou) さん、 Kazuma Furuhashi (@284km)さん
このお二人の掛け合いは、コントのようなやり取りで進む発表方法でとても面白くめちゃくちゃ笑わせて頂きました笑

CSV の Parsing 速度向上について

Ruby2.5 と Ruby 2.6 のCSV の Parse の速度についてご説明されていて シンプルな CSV だと
1.7倍 💨

ダブルクオートが含まれる CSV だと
2倍弱 💨

,(カンマ) の内側に ダブルクオートが入っている CSV だと
1.5倍 💨

開業コードが含まれている CSV だと
3倍 💨

上記のような速度改善となっているようです。

CSV の Writing 速度向上について

今度は Write の 速度について

generate_line を用いた場合
2.4倍 💨

<< (左シフト) を用いた場合
1.6 倍 💨

上記の結果を見ると generate_line  を用いたほうが早いように見えますが↓

generate_line vs << (左シフト)

Ruby 2.6 だと 約7倍 💨
Ruby 2.5 だとなんと 10倍 💨
左シフトのほうが早いという結果になってました。
なので、書き込みを行うのであれば左シフト推奨とのことです。

CSV Parsing Writing のまとめ

Parsing については、1.5 ~ 3倍 💨

Writing については、1.5 ~ 2.5倍 💨

CSV の読み書きについては、様々なシステムで関わってくるので、こういう速度改善は本当に大切ですよね。

intimate Chat with Matz and mruby developers about mruby

登壇者: isshi さん with Matz さん Yamaneさん (nora mrubyist)

mruby について ishii さん と Matz さん、そしてゲストの Yamane さん お三方の対話形式による発表でした。

yamaneさん について

nora mrubyist という肩書(?)とのことで
nora mrubyist と名乗っている理由は、仕事で ruby を使っているわけでもなく趣味で mruby を使われているからとのことです。
具体的には ロボコン で使用するロボットのプロブラムに使用しているそうです!

mruby を作った背景

経緯としてははじめ国から『なにか冒険的なことを始めるための制度』があるのでそれを活用するために
福岡県と協力して、『軽量 Ruby プロジェクト』 として始めたのがきっかけ。

mrubyを作っていく中で、 Matz さん も大変だったみたいで
ギブアップしたいと漏らしていたとおっしゃってました。

『0から作るのは大変。差分の開発は数日で終わる。0 からの開発は最初は全然動かいので、"きっとこれは未来に動く" ってモチベーション管理が大変だった。』

と言っていて本当に作るのに苦労されたんだなってことが伝わってきました。

mruby 開発プロジェクトにかかったプロジェクト費用は
1億3000万円くらいかかったそうです。
めっちゃ費用かかったんですね

mruby は ruby の反省点を踏まえながら開発されたそうで ruby よりもメモリ管理に気を使うように作っているそうです。

ruby と mruby の違いについて

ruby = All in one!
それに対して
mruby = myruby!

mruby は、組み込み先のメモリ容量などを考慮した上で、必要なライブラリを選択し 自分用にカスタマイズした ruby を作れるようです。

ちなみに mruby が主に活用されているものとして、ロボットや人工衛星があげられます。

追記:番外編 ( Rubykaigi 開催中に食べた美味しいご飯 )

Rubykaigi 開催中に色々なものを食べました! どれも大変美味しかったので紹介させて頂きます!

株式会社ドリコム さん が YataiSponsor として Rubykaigi に屋台を出していて、そちらで食べたご飯になります↓

f:id:nekojarashi-Inc:20190421093712j:plain
ruby ラーメン

f:id:nekojarashi-Inc:20190421094259j:plain
うどん (何うどんだったか美味しすぎて名前をわすれてしまった・・)

f:id:nekojarashi-Inc:20190421094454j:plain
焼鳥丼

どれも大変美味でした(๑´ڡ`๑)

また、会場以外でも食べました !

f:id:nekojarashi-Inc:20190421095217j:plain
久留米ラーメン ( スタイリッシュ?バージョン)

f:id:nekojarashi-Inc:20190421095313j:plain
久留米ラーメン ( 昔ながらのこってりバージョン )

番外編のほうが写真が豊富
そしてほぼ麺類

本当にどれも美味しくって麺類以外にも色々食べてみたくなりました笑 また 福岡 に来る機会があったときはもっといろんなものを食してみようかと思います🍴

感想

今回 Rubykaigi に初めて参加させて頂くにあたって不安な点がありました。
昨年、ねこじゃらしに入社してすぐに スクラムマスター として仕事をするようになり、しばらく仕事でコードに触れていなかったので
正直 Rubykaigi に参加して参加者の皆さんとお話できるだろうか・・・と少し不安でした。

しかし、懇親会等でお話してくださった方々に
『え!めっちゃ大変じゃないですか!』や『スクラムマスターが技術のこともわかるってとても大事ですよね。』
等々暖かく 受け入れていただけて、Ruby界隈ってすごく優しいコミュニティが構築されているんだなって実感しました!

今回の Rubykaigi 中に個人的に嬉しかったことがありました。 1日目の商店街を貸し切った懇親会時のことですが、近くに まつもとゆきひろさん がいらっしゃったので思い切って話しかけてみました!
実は、私は 10年ほど前に まつもとさんとお話する機会がありまして、その時のことを覚えていらっしゃるか聞いてみた所
『 OSC のときですよね?覚えてますよ!懐かしいですね!』
と覚えていてくださっていて大変嬉しかったです。
相変わらずとてもお優しい方でした。
まつもとゆきひろさん 、貴重なお時間を頂きありがとうございました!

まだ最終日がありますので、最後まで楽しんでいこうと思います! 3日目についても、弊社エンジニアの 古川・奥秋 からレポートがあがると思いますので そちらもお楽しみに!

それでは! 最後までお読み頂きありがとうございました。 そして、Rubykaigi を運営されている皆様、登壇された方々、懇親会でお話させて頂いた方々
楽しいイベントを本当にありがとうございます!