Skip to content

Instantly share code, notes, and snippets.

@JunichiIto
Last active December 20, 2015 07:49
Show Gist options
  • Save JunichiIto/6095960 to your computer and use it in GitHub Desktop.
Save JunichiIto/6095960 to your computer and use it in GitHub Desktop.

Rubyもくもく会 2013/07/20

先週、僕は東灘区民センターで開催された今月の西脇.rb & 東灘.rbのもくもく会に参加しました。

もくもく会って何?

もくもく会は3月から開催されていて今回で5回目です。僕が参加するのはこれで4回目です。形式はこんな風にシンプルです。参加者がそれぞれこれからやることを発表します(プログラムの開発が多いですが、何かの調査になる場合もあります)。次に2~3時間それをやって、それが終わったらやったことを発表します。発表の際は質疑応答やコードレビューもあります。

大半のプログラミング勉強会は研究会形式であったり、プレゼンテーションを聞く形式であったりすることが多いですが、このやり方はそれらと全く異なっています。もくもく会が重視していることは実際に手を動かして学ぶことと、他の参加者からフィードバックをもらうことです。こういった技術や知識は本を読んでも手に入りません。

長い間僕はほとんど会社の外に出ませんでした。近くで開催されたプレゼンテーション形式の勉強会には数回参加したことはありますが、僕は内気なので参加者の人たちと本当に交流することはできませんでした。もくもく会は小さなグループで行われるのでフィードバックが得られやすく、とてもインタラクティブな勉強会になります。youRoomや懇親会でも活発な議論が行われるので、とても親密な空気が生まれます。様々な分野の人たちが参加しているのも特徴の一つです。フリーランスの人やスタートアップを起業した人、研究者、普段の仕事でRubyを使っている会社員、使っていない会社員などなど、いろんな人たちがいますが、みんなRubyのスキルを向上させようとしている人たちばかりです。

僕がやったこと

僕がやったのは独自のtag_parserプロジェクトの開発です。これは僕が仕事で使っている単純なメッセージフォーマットを処理するためのライブラリです。最初は正規表現で処理しようと思ったのですが、しばらくして壁にぶち当たりました。一つ一つのケースに対応しているうちは良かったのですが、すべての細かいケースまでカバーできるように一般化しようとしたら、だんだん泥沼にはまっていきました。聞くところによると、メッセージをパースするにはステートマシンが使えるそうです。そしてZed Shawが書いたエッセイから、Ragelというステートマシンジェネレーターがあることを知りました。このtag_parserではRagelを使ってトークナイザーを生成します。テストや実行に必要な周辺のコードはRubyで書いています。

最後に

全員の発表が終わったあと、みんなで懇親会に行ってご飯を食べたり技術的な話をしたりしました。懇親会はもくもく会の中で一番好きなところかもしれません。みんなが今取り組んでいることを聞いたり、かなりテクニカルな議論をしたりするのが僕は好きです。

次回のもくもく会に興味がある人がいたら、Doorkeeperのサイトを随時チェックしてください。このイベントは日本語で行われるので、日本語が話せないと参加するのは難しいかもしれませんが、興味があるなら参加する価値は十分あります。言葉の問題があれば僕も精一杯お手伝いしますので!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment