Tech Sketch Bucket of Technical Chips by TIS Inc.

サンフランシスコでScala関係のMeetupに参加してきました

Pocket

現在、ScalaやPlay,Akka,Spark関連の技術動向調査や市場調査などのため、アメリカはシリコンバレーへ出張中です。出張中にサンフランシスコ近辺で開催されているMeetupに参加してみたので、その話を簡単に紹介したいと思います。

Meetupとは

サンフランシスコ、シリコンバレー近辺でどういった技術が流行っているのか、どんなふうに活用されているのかなどを知るためにはMeetupに参加するのが良いというアドバイスをもらいました。

Meetupというのは、Wikipediaによると「世界中の様々な地域でのオフライングループ活動を促すソーシャル・ネットワーキング・サービスである。」とのことで、世界中の様々な地域で、様々なテーマでミーティングが開催されています。特にサンフランシスコ、シリコンバレーでは技術系のMeetupが盛んに開催されているようです。日本でいうとATNDconnpassDoorkeeperを利用して開催されている技術系の勉強会がそれに近いと思います。

Meetupのサイト「http://www.meetup.com/」から近くで開催予定のミーティングを簡単に検索する事ができます。

Meetup

今、私が注目している「Scala」「Play」「Akka」と「Spark」というキーワードで探してみました。
そこで出張期間中にうまくタイミングが合ったイベントでスケジュール上参加可能だったものは「SF Scala」「Scala Bay」というMeetupグループで以下の3つのイベントでした。

SF Scala

Scala Bay

グループとしては他にもいくつかあったのですが、現在アクティブに活動してそうだったのが、この2グループでした。参加するMeetupの幅を広げれば毎日でも参加出来ると言う噂は聞いていましたが、たしかに、もう少し幅を広げると週2、3回のイベントに参加出来そうでした。せっかくなので、私も最初の週は、上記以外にもモバイル系、IoT系や日本人エンジニアが集まる会など幅を広げ色々参加してみました。ただ、たくさん参加する事が目的ではないので、翌週からは別の予定や、参加したMeetupの内容を消化する事に時間を充て、参加するMeetupのテーマを絞り込むようにしました。

SF Scala

SF Scala」のSFはSan Franciscoです。その名の通りサンフランシスコのScala Meetupです。「世界を支配する(dominate)ためにScalaを使うファンクショナルプログラマーのためのグループ」だそうです。

(1) Smart Clients with Scala, Finagle and Curator; (2) Intro to Erlang

10/28に開催された「(1) Smart Clients with Scala, Finagle and Curator; (2) Intro to Erlang」というイベントに参加しました。Cisco Merakiで開催され、アジェンダにあるとおり、サンフランシスコ湾とベイブリッジを見る事ができ非常に眺めの良い会場でした。networkingの時間(後で説明します)には、ちょうどそのころ開催されていたワールドシリーズ「サンフランシスコ・ジャイアンツ VS カンザスシティ・ロイヤルズ」の試合が中継されていました。

Agenda

  • 6:00pm -- doors open, food, drink, and networking, best view in the city
  • 6:30-7:30pm -- Druid
  • 7:30pm-8:30pm -- Erlang
  • 8:30-9:00pm -- networking

本イベントは2つの講演があり、1つ目は「Smart Clients with Scala, Finagle and Curator」でした。DruidとTranquilityを組み合わせたシステムの例を紹介されていました。Druidはリアルタイム分析のためのオープンソースデータストア、TranquilityはDruidにイベントを送るためのスマートクライアントです。

2つ目の講演は「Intro to Erlang」でした。AkkaがインスパイアされたといわれるErlangのオーバービュー、同時実行のアクターモデル、分散システムのサポートなどを紹介されていました。私自身Erlangの話をしっかり聞くのは初めてだったので、あまりにもAkkaの考え方に似ていたのは驚きでした。

Function-Passing Style, A New Model for Asynchronous and Distributed Programming

そしてもう1つ、11/6に開催された同じSF Scalaの「Function-Passing Style, A New Model for Asynchronous and Distributed Programming」というイベントに参加しました。

Function-Passing Style, A New Model for Asynchronous and Distributed Programming

講演者はEPFLの博士課程で、Scala言語開発者であるMartin Odersky教授のもとプログラミング言語の研究に取り組んでおられるというHeather Miller氏です。現在研究中である非同期と分散プログラミングのための新しいモデルに関するお話でした。"function-passing" 或は "function-passing style" と呼んでいてActorモデルの逆の考えとのことです。Heather氏は今年の6月にドイツで開催されたScala Daysでも講演されていたこともあり、本講演には100名以上の方が参加されていました。

Scala Bay

もうひとつのScala関係のグループ「Scala Bay」は「Scalaとその関連技術やソリューションの学習、適用、促進に興味を持つプロフェッショナルなScalaユーザのグループ」だそうです。サンフランシスコのベイエリアをカバーしていて毎月第2月曜日にミーティングが開催されます。

Dean Chen, "Diving into Spark Internals"; Alex Cozzi, Kafka and akka for high-performance real-time behavioral data."

私が参加したのは11/10に開催された「Dean Chen, "Diving into Spark Internals"; Alex Cozzi, Kafka and akka for high-performance real-time behavioral data."」というイベントです。
2つの講演があり、1つ目はeBayのバックエンドエンジニアリングのリードであるDean Chen氏による「Diving into Spark Internals」でした。Dean氏はeBayでScalaとSparkの採用に携わってきたということで、Scalaで構築された大規模なデータ処理のための次世代エンジンとよばれるApache Sparkのちょっと突っ込んだ話をされました。後日イベントのオーガナイザーから届いた情報によると、3,000人のJavaエンジニアに対してTypesafe社が行ったサーベイの結果、17%もの人が本番環境でSparkを利用しているということからも、Sparkに対する注目度の高さが伺えます。

2つ目はAlex Cozzi氏による「Kafka and akka for high-performance real-time behavioral data.」です。Kafkaキューからのイベントを処理するためにハイパフォーマンスアプリケーションを実装するためのAkkaの使い方についての講演でした。KafkaはLinkedInで大容量のイベントとログデータを低レイテンシーで収集および配信する目的で開発されミドルウェアにおける分散処理の基盤として活用されました。複数データソースからデータを受け取り、後続にメッセージとして流すリアルタイム分散メッセージ処理を行うPublish-Subscribe型のメッセージングシステムです。

ネットワーキング

日本で開催されているIT系の勉強会との違いとして、言葉が英語という事の次に大きな違いはネットワーキングタイムです。

日本の場合、勉強会の開始が19:00だとすると19:00に主催者がちょっとしゃべって講演がスタートして、場合によっては終了後に懇親会が開催されるという流れだと思います。こちらでは、19:00に講演は始まりません。時間通りに行くと、まだそれほど人は集まっておらず、ピザやビール等の飲み物が用意されていて、自由に食べていいよと言われました。Meetupの会費が無料だったので少し驚きましたが、会場提供者がスポンサーとして提供して下さっているようでした。なかなか、講演は始まらず、徐々に人が集まりだしてきて、30分後くらいに、講演がスタートします。あらかじめ、アジェンダに書いてある事もあるのですが、講演前にネットワーキングという時間が設けられ、その名の通り、エンジニア同士が自由に会話をしてネットワークを構築するための時間が提供されていました。こちらのエンジニアにとってネットワークが重要視されてことを象徴する、日本との大きな違いを感じました。

networking

英語が苦手な自分には正直厳しかったですが、積極的に話しかけてきてくれる参加者もいて良いトレーニングになりました。また、到着するなりビールというのも日本ではあまり見かけません。日本だとミーティングが終わってから懇親会があったりなかったりですが、講演前にビールを飲むというのはいいのか、悪いのか。。ネットワーキング的には良さそうですね。私も最初は郷に入れば郷に従えでこれがシリコンバレー流かと思いながらビールを飲んでいたのですが、さすがにアルコールを取ってしまうと英語の講演を聴いて理解する事が難しくなってしまい、2回目からは控えるようにしていました。

もう1つの違いは講演中の質問や意見の多さです。日本だと講演後にまとめて質問を受け付けて回答するという形式が多いですが、こちらでは講演中に参加者が容赦なくしゃべりだします。時には、質問に質問が重なり10〜20分もの間講演が中断するという場面もありました。国民性の違いなのか、ただ参加するだけではなく、参加したからには何か持って帰ろうと言う意志を感じました。

まとめ

最近では、日本でも海外からスピーカーの方を招待したイベントも多く開催され、海外との隔たりも少なくなっているようにも思いますが、内容的にはまだ過去のイベントで話した内容の再演に近いものであったり、少しリアルタイム性に欠ける場合が多いのではないかと思います。そんな中、今回の出張では研究中の内容であったり、日本ではあまり頻繁に開催されないテーマのお話を生で聞けたのは貴重な経験でした。
いくつかのMeetupに参加してみて、イベントのほとんどが日本と同じように講演後に資料やムービーを公開してたりするので、ネットワーキングという形の交流は難しいものの、講演の内容は今後も日本からウォッチしていけるなと思いました。また、やはり、こういったMeetupに参加すると1エンジニアとして一度はこういう場で自分もしゃべってみたいなという思いも込み上げてきました。

そして、日本でもシリコンバレー風のMeetupをやってみても面白いかなとも思ったので帰国後に企画してみたいと思います。日本の場合、小規模の勉強会にスポンサーがつくという事はあまりないので、なかなか難しいところもありますが是非チャレンジしてみたいと思っています。

エンジニア採用中!私たちと一緒に働いてみませんか?