富山Ruby会議01に運営の一人として参加しました

toyamarb.github.io

11/3(日)、三連休の真ん中に富山Ruby会議01が開催されました。

富山では(北陸でも)初のRegional RubyKaigiということで、Toyama.rbにほぼ毎回参加している私も、運営の一人として参加しました。
(運営とは言っても、細かな落ち穂拾いと当日の写真撮影ぐらいで、そこまで役に立てなかったかもですが。。。)

参加人数について

1週間前ぐらいになっても、思ったほどに人が集まらず、結構不安がありました。
懇親会も、お店からは「貸し切りのためには30人以上でお願いします」と言われており、「足りなかったらどうしよう。。?」と思ってました。

そもそも、富山で "Ruby" を主題にした大規模なカンファレンスをやって、どの程度来てくれるんだろう?という不安がずっとありました。

ただ、数日前になると続々と申し込みが増えて、椅子足りたっけ。。?ぐらいとなりました。
結果としては、本編60人オーバー(+16人の発表者)、懇親会も当日追加を含めて38名(だったかな?)ぐらいの大盛況となりました。

本編

本編の最中は、写真撮影をしていたので、真剣に聞けなかった場面も多々ありましたが、覚えてる限り・スライド見直しながらで感想などを書いていきます。(敬称略)

招待講演「○○からRubyへ」伊藤 淳一

○○からRubyへ / #toyamark - Speaker Deck

○○からRubyへ・Ruby事始めコーディング動画 #toyamark - YouTube

型がない(語弊あり)言語でも、ある言語でも、結局は動作確認するし、テスト・レビューするよね。そんなに変わらなくね?とのこと。
たしかに、ある程度チームのスキルレベルが高ければ確かにと思う反面、それが不安定な状況では、型の安心感はあるなーと思います。

そのためにスキルアップし、良いコードを書いていく必要があるよね。ということで、"良い"の一つである"読みやすいコード"の話(次のセッション)に続く。

他にも、経験者が語るRubyの利点などが多く、今後比較が必要な場面では見返したら良さそうなスライドでした。

「読みやすいコードとRubyらしいコード」黒曜

読みやすいコードとRubyらしいコード

個人的にも、いつも気にしている"読みやすいコード"について、リーダブルコードからエッセンスを抽出した感じ。
また、そこに"Rubyらしい"を付け加え、Rubyにおける"読みやすいコード"についての考察。

名前の付け方や処理の書き方など、自分でも気をつけつつ、教育もできるようになっていかないとなーと思いました。

「初心者PHPerがRubyキメて思うこと」oratake

初心者PHPerがRuby(+Rails)キメて思うこと - Speaker Deck

初心者に近い視点から、どのようにしてWeb系企業を目指し、学習していったかというお話。
個人的には、だいぶ昔に通った道、、感がありましたが、今ではRailsチュートリアルが整備されていたり、各種いろんな動画教材があったりと、便利な時代になりましたね。
ただ、情報がありすぎて、その取捨選択するスキル・良い情報にたどり着くためのスキル、などが必要になるのかなーと。
そのために、コミュニティに参加するのは良いですね。

「Crawler on Rails」suginoy

GitPitch Slide Deck

お昼を挟んでクローラーを作るお話。
サーバと逆の動作だからRailsを使えるのでは?って発想が面白かったし、実際に意外と使える部品が多いのも面白かったです。
個人での開発だと、それに合わせた選択が必要だよなーというのは共感しました。
外部サービスに依存してるアプリケーションでも、外部サービス側の動作が想定外だったり、急に変わったりするので、どこまで厳密にチェックすべきか?というのは考えないといけないよなーと思いました。

「TracePointから学ぶRubyVM」joker1007

TracePointから学ぶRubyVM - Speaker Deck

ガチ枠。
写真撮りながらというのもあったけど、おそらく半分も理解できてない気がします。
(そもそも、TracePointとは?ってのが、いまいち理解できてない気がする。)
わからないなりに、「プログラムもプログラムで動いている」ということが改めて実感できた気がします。
また、これだけ強い人でもコードから変数名の意味は推測するしかないということだったので、コメントだったり略さないことだったりは大事だなーと思いました。

「北陸で Ruby なお仕事に携わるための3つの戦略」清原 智和

北陸で Ruby なお仕事に携わるための3つの戦略 - Speaker Deck

エモい話枠。
特に地方だと、自分のやりたい仕事をやりたければ、いろいろ越境しないと難しいよね、という話。
実際に経験したことがベースの話だったので、かなり納得感のある話だった。
とはいえ、自分にここまでできるのか?という気持ちも大きいので、今の会社を辞めたとしても、リモートできる企業を探そう、、、というきもちになりました。

「業務で!Rubyを!キメる!」伊藤 浩一

Project automation for internal affairs - Speaker Deck

ちょっとしたツール(ワンショットのツール)であれば、比較的自由に技術選定しやすく、やりたいことをやりやすいという話。
個人的には静的解析とかにちょっと興味があり、RuboCopの話に興味があったけど、想定外の使い方で面白かったです。
ASTってちゃんと見たことなかったんですが、説明を聞いているとなんとなーく読めそうな気はしてきました。

「mrubyでハローワールド!」羽角 均

mruby de Hello World! - HASUMI Hitoshi - Rabbit Slide Show

弊社からのスピーカースポンサーということで、mrubyの話。
mrubyとかmruby/cが別ということは知っていたけど、ROMやRAMの使用量も違っているとのこと。
その分制約も違うので、使う場所にあわせて考える必要がありそう。
そこから、コンパイラを作る話になったけど、わかるようなわからんような。。。
ただ、順々に説明されることで、なんとなくの流れはわかったような気がしました。

LT1: muryoimpl

RSpec導入奮戦記/The struggle of introducing RSpec - Speaker Deck

Rspecでのテストコードを、短期集中で増やしていく話。
テストを広めていくための方法や、その際に気をつけたことが紹介されていました。
自分もテストを書いて、広めていかないとなーと思っているので、参考になりました。

LT2: ふぁらお加藤

俺 と Ruby - Speaker Deck

個人事業主として、なぜRubyを選択するのか?という話。
Rubyで仕事してる人は、比較的こだわりの強い人が多く、ハズレが少ない印象とのこと。
個人的には、Ruby書いている人たちは、そういう層と、"Railsでしか書けない層"に大きく二分されると思ってるので、そこだけ見分けられれば、いい感じの人と仕事できそうというのは納得。

LT3: 相生ゆら

元富山県民から見たRubyコミュニティ - Speaker Deck

富山弁枠。かつ初心者枠。
実務経験4ヶ月で、この規模の会場でLTしたのはいい経験だろうなーと思いました。
パーフェクトRuby読んで、アルゴリズムの問題をゲーム感覚で解き、Railsチュートリアルをサクサク進められるって、かなり優秀なのでは。。?と思いました。

LT4: wtnabe

join-kanazawarb-or-7years-passed-since-it-was-borned - Speaker Deck

地方勉強会の歴史の話など。
Kanazawa.rbは7年継続しているとのこと。すばらしい。
地方で"Ruby"で完全に縛ったコミュニティ・勉強会を開いてもつらいのは、全力で同意。(そもそも、自分もそんなにRubyを書かない)
最近行けてなかったのですが、Kanazawa.rbも久々に参加したくなりました。

LT5: Yuka Kato

(スライドは公開されてなさそう?)

Capybaraの裏側の話。あと、Capybaraのかんたんなおさらい。
BrowserとDriverにいろいろ種類があって、用途によって選ばないとなーと思いました。
PhantomJSがメンテ終了してたのは聞いたことあった気がしますが、それに引きづられる形でDriverも世代交代してる?
次に使うことがあったら、Apparitionはちょっと調べてみようと思いました。

LT6: 水尻裕人

RUBYでアッカーマン関数の計算をがんばる方法 / How to write ackermann function in ruby - Speaker Deck

アッカーマン関数って、聞いたことあるようなないような、、ぐらいでしたが、たしかにまともに計算できなさそう。
再起って、アプリケーション開発ではあんまり使うことがないけど、いざ使うとなるとテクニックが必要になるので、覚えておいて損はなさそう。
最適化オプションつけてみたけどだめでした -> Ruby自体のコンパイル時に指定が必要だよ(うろ覚え)的なツッコミがすぐに入るあたり、すごく強い人達を呼べたんだなーと再認識しました。

LT7: よしだ たけひこ

RubyによるC言語コードのメトリクス測定

組み込みエンジニアが、本業のすぐ隣の開発(調査)ツールとして、Rubyを使う話。
小さなプログラムをかんたんに動かせて、正規表現がさくっと使えて、外部のライブラリもかんたんに導入できるということで、ちょっとした調査ツールには確かに良さそうですね。
で、厳密なツールを作るのは難しいものでも、用途に合わせて、人力の補助ツールとして作るのは良さそうですね。

LT8: 羽角 均

(スライドなし)

2度目の登場。
先程の発表で入ってなかった、Generate Codeの部分のライブコーディング?
vimでライブでバイナリ列を書いていくという荒業に出て、なんとなくやりたいことはわかったけど、途中のハプニングで完成できずに終了でした。
なんとなく、バイナリ列がどうなっているか?が、わかったような、わからんかったような。

招待講演「型なし言語のための型」松本 宗太郎

型なし言語のための型 - Speaker Deck

最後に今後のRubyの話。
Ruby3で型を入れようとしていることは知っていたけど、パフォーマンスが目的ではないというのは知らなかった。
型関連の歴史についても全然気にしたことがなかったので、型推論が思ってたよりも昔からあったことには驚きました。
最初の招待講演で好きなメソッドとして挙げていた map が、最後の招待講演で邪魔者扱い(語弊)されていたのが面白かったですね。
Union typesやflow-sensitive typingなど、"型なし言語のための型"として必要な要素を徐々に理解できました。
TypeScriptの成功は、たしかに特異なことだったんだと、なんとなく理解できました。
「人類は型を書く」ってのは確かに面白いと思いました。型を書かなくて済んでいたJavaScript界隈で、これだけTypeScriptが流行っているのが面白いなと。
TypeScriptは、センスよく型を解決しているんだなーと感じました。
型なし言語に型を導入するという意味で、 incompatibleという指定の必要性は理解できるけど、もともと型のあるJavaから入った自分としてはなんだかなーという思いもあったりします。

全体の感想

懇親会でも話に上がりましたが、発表の順番が絶妙だったと思います。

別言語からRubyに入った話・Rubyの良さの話

Rubyらしいコードの話

初心者がRubyに抱いた感想
という比較的初心者向けのセッションを午前中に聞いて、
Rubyでちょっと変わったアプリケーションを作る話

RubyVMの話で深淵をちょっと見せて

頭使ったところで、北陸(地方)特有のエモい話

エモい話入れつつ、ちょっとASTの話

mrubyをベースに、言語の作り方の話

LTでちょっと閑話休題

型のがっつりした話

という感じで、緩急つけつつ、前に聞いたことがちょっとずつ関連する流れでした。

毎年やるのは運営的にきついですが、数年後にはまたやれたらいいなと思いました。
まずは、Toyama.rbに継続的に参加しつつ、集客など手伝えることは手伝っていきたいと思います。