「Erlang/OTPトレーニング2013.10」に参加してきました

概要

並列処理に強く、耐障害性を持つプログラミング言語およびその実行環境であるErlang/OTPの本格的なトレーニング。今回のトレーニングでの学習範囲はErlang/OTPの基礎からOTP(Open Telecom Platform)の入り口までくらいまで。

主催は「株式会社 時雨堂」
参加費は1万円(招待枠ということで免除いただきました。助かります。ありがとうございます...m(_ _)m )
場所はスポンサーのVOYAGE GROUP会議室を貸していただきました。

講師は、軽量 高速なHTTPサーバ「cowboy」の開発者であり、Erlang/OTPのトレーニングをプロとして実施しておられる Loïc Hoguinさん。

スポンサーにはVOYAGE GROUP以外に「Basho Japan」も名を連ねておられました。懇親会のピザとお寿司はBasho Japanさんから出していただきました。ピザおいしかったです(なんかみんなお腹空いてたらしくピザがみるみるなくなっていってたw)。

日時: 2013年10月13日(日) 10:00 - 20:00
場所: 株式会社VOYAGE GROUP セミナールーム「パンゲア

目的

今回参加の目的は3つあって、

  1. Erlang/OTPについて、基礎からきっちりとしたトレーニングを受ける
  2. Erlang/OTPを使っておられる方々と交流していろいろお話聞きたい
  3. 以前からTwitterでは色々アドバイスなど頂いており、今回のトレーニングの主催者でもある時雨堂の@voluntasさんにお会いしたい

です。
@voluntasさんには以前からアドバイスや情報を頂いたり、自身のトレーニング目的で書いたErlang/OTPアプリにgithub上でコードレビューや提案を頂いておりながらも、まだお会いした事が無く、今回はじめての対面となりました。

出発-到着

開催地は東京、僕が住むのは島根。というわけで前日からの出発となりました。島根 - 東京間にはサンライズ出雲っていう夜行列車があるので、これで行くことにしました。

余談ですが、今が神在月のせいなのか、島根は観光で行き来される方がかなり多く、サンライズ出雲も一週間前に切符買いにいきましたが禁煙席は既に満席でした。サンライズに乗りたい人は早めに切符買った方がよさそうです。当日とか前日では多分厳しいと思います。

あと、渋谷ははじめてで、駅周辺でわりと迷子になりました(笑

受付を済ませると参加者にbashoステッカーや扇子が無料で配布されました、のでありがたく頂きました。MacBook Proに即張りです。

それとCowboy Tシャツを売ってました、ので買いました。えらく人気があったようで最後の1枚でした。

レーニン

予定通り、10時ごろからLoïcによるトレーニングが開始されました。トレーニングが英語ということもあって、だいたい1時間に一回休憩をいれながら行われました。

ちなみに僕はこの日のために2週間前からNHKの「おとなの基礎英語」と「リトルチャロ」で英語を勉強した訳ですが、残念ながらその程度の付け焼き刃で聞き取れるほど甘くはなかったですw
(でもせっかくなので英語の勉強はこのまま続けていこうと思います)

とはいえ、プレゼンテーション的に前に画面を映して、それに伴ってLoïcが喋る感じで進んだのと、ある程度予備知識があったのでわりと内容はわかりました。

ちなみに当日のトレーニングで使われたプレゼンテーションはこちら
http://ninenines.eu/talks/thinking_in_erlang/thinking_in_erlang.html

当日実際に書いたソースコードはこちら
https://gist.github.com/essen/6970232

内容は

  1. Erlang/OTPの概念
  2. hello world」から始まる基礎的な構文、四則演算など
  3. 関数、型、ガード、case節、パターンマッチなど...
  4. 再帰によるループ、Accumulator...
  5. spawnによる並列実行、spawnとリスト内包表記の合わせ技など...
  6. メッセージパッシング、receiveによるメッセージの取り出し
  7. プロセス間でのcastやcallを実装
  8. プロセスのクラッシュとmonitor,linkなどなど
  9. gen.erlのソースコードを読む(ここ重要!)
  10. 質疑応答

という感じでした。OTPのソースコードというのは実は見た事無くて、この部分が今回のトレーニングで一番印象的 & 勉強になりました。

懇親会

懇親会は終始なごやかな雰囲気の中でお寿司など頂きながらお話しさせていただきました。

ちょっとびっくりしつつもうれしかったのは、以前僕がgithubにあげたeredis_poolというeredisとpoolboyを組み合わせただけのアプリ(といえるのか?)をお仕事のアプリで使って頂いている方とお話できたことです。
まあほんとに組み合わせただけで、自分で書いたところはちょっとなんですが... しかも数ヶ月前に、その方の同僚の方からプルリクエスト送って頂いていたのに全く気づいていませんでした...(翌日の帰りの新幹線の中でプルさせていただきました。すみません...)
でも自分の公開しているものが誰かのお仕事に役立っていると思うと嬉しいです。

そんな中はたと見ると、Basho Japanの @kuenishiさんがおられたので、初対面でしたが少しお話しさせて頂きました。最初@kuenishiさんと二人で話させて頂いていましたが、いつの間にか周りに人が増えてRiakやErlang/OTP, Elixirやなんやで話が色々と盛り上がりました。

@voluntasさん、@kuenishiさんとは、その後の食事もご一緒させて頂き、とても楽しい時間を過ごさせて頂きました。お二人とも実力、知名度ともに高い方ですがフレンドリーに接して頂き嬉しかったです。それから色々と技術的に濃いお話も聞けて興味深かったし大変勉強になりました。

振り返り

レーニングの内容はいわゆる飛行機本を読んでいれば知っている内容が大部分でしたが、前述のようにOTPのソースコードの一部を読む機会を得たのと、実際にそれっぽいものをLoïcに続いて自分で手を動かして書いて学べたのは収穫でした。

また、トレーニング全体を通して、要点をポンポンとあげつつ重要な部分は実際にコードを書きながら概念を説明して頂けて効果的なトレーニングだと感じました。このへんはさすがに普段からトレーニングを仕事としてやってるプロです。
この進め方は会社で僕が他の社員にErlang/OTP教える際の参考にさせて頂きます。その前にもっと勉強が必要ですが....

それと、懇親会、食事と色々とお話できたのは本当に楽しかったし勉強になりました。

島根からだと交通費もばかにはなりませんが、それ以上にすばらしい時間が過ごせました。
主催の時雨堂さん、講師のLoïcさん、場所を貸して頂いたVOYAGE GROUPさん、懇親会のピザとお寿司をごちそうして頂いたBasho Japanさんには心からお礼申し上げます。

もし続編等あったら是非また参加したいと思います。ありがとうございました!