富山Ruby会議01に運営の一人として参加しました
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における"読みやすいコード"についての考察。
名前の付け方や処理の書き方など、自分でも気をつけつつ、教育もできるようになっていかないとなーと思いました。
「初心者PHPerがRubyキメて思うこと」oratake
初心者PHPerがRuby(+Rails)キメて思うこと - Speaker Deck
初心者に近い視点から、どのようにしてWeb系企業を目指し、学習していったかというお話。
個人的には、だいぶ昔に通った道、、感がありましたが、今ではRailsチュートリアルが整備されていたり、各種いろんな動画教材があったりと、便利な時代になりましたね。
ただ、情報がありすぎて、その取捨選択するスキル・良い情報にたどり着くためのスキル、などが必要になるのかなーと。
そのために、コミュニティに参加するのは良いですね。
「Crawler on Rails」suginoy
お昼を挟んでクローラーを作るお話。
サーバと逆の動作だから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を選択するのか?という話。
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を使う話。
小さなプログラムをかんたんに動かせて、正規表現がさくっと使えて、外部のライブラリもかんたんに導入できるということで、ちょっとした調査ツールには確かに良さそうですね。
で、厳密なツールを作るのは難しいものでも、用途に合わせて、人力の補助ツールとして作るのは良さそうですね。
LT8: 羽角 均
(スライドなし)
2度目の登場。
先程の発表で入ってなかった、Generate Codeの部分のライブコーディング?
vimでライブでバイナリ列を書いていくという荒業に出て、なんとなくやりたいことはわかったけど、途中のハプニングで完成できずに終了でした。
なんとなく、バイナリ列がどうなっているか?が、わかったような、わからんかったような。
招待講演「型なし言語のための型」松本 宗太郎
最後に今後の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に継続的に参加しつつ、集客など手伝えることは手伝っていきたいと思います。