give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

初の海外カンファレンス参加&初のRubyConfをできるだけ詳しくレポートします #RubyConf2018

はじめに

このブログで先日お伝えしたとおり、2018年11月13日から15日にかけてロサンゼルス(LA)で開催されたRubyConf 2018に参加してきました。

このエントリではRubyConfに行っていない人にも雰囲気が伝わるように、現地の写真やセッションの感想、英語の難易度といった観点で参加レポートを書いてみようと思います。

f:id:JunichiIto:20181126115456p:plain

とりあえず、めちゃくちゃ長くなってしまったので、先に目次を載せておきます。

ちなみに、出発前の準備については以下のエントリにまとめてあります。海外カンファレンス参加時に必要な準備等については、こちらのエントリを参照してください。

それでは以下が本編です!

写真で見るRubyConf

まずは現地で撮った写真をいろいろと紹介していきます。

会場になっていたのはミレニアム ビルトモア(Millennium Biltmore)というホテルでした。

会場に着くとこんなしっかりしたネームカードがもらえます。ちなみに立場によってカードの色が違っていて、スピーカーの人やスポンサー関係者は別の色のネームカードになっています。
f:id:JunichiIto:20181124080809j:plain

各ルームを移動する際に通るスポンサーギャラリアです。スポンサーブースがいろいろ並んでいます。てか、由緒あるホテルなので内装が豪華!!

Matzさんのキーノートなど、全員が集まるセッションではこの一番大きいルームを使っていました。RubyConf 2018の参加者は800人だそうです。

各セッションは4トラックに分かれていました。すなわち、4つのルームを使ってセッションが同時並行するわけですが、そのうちのひとつがこれです。日本ならもうこのルームだけで、中規模なITイベントが開催できそうなレベルです!

1日目の終わりには会場の2階でNationBuilderというスポンサーが主催するアフターパーティがありました。こちらはそのパーティの様子です。

会場内に(つまりホテル内に)NationBuilderのオフィスがあったのでそこも見学することができました。Apple Thunderbolt Displayとアーロンチェアがたくさん並んでいます。

ランチは3日間とも会場内でビュッフェ形式のランチが提供されました。メニューは3日間とも違っていました。これは2日目のランチです。

ランチの席がいっぱいで、どこに座ろうかな〜と思って探していたら、たまたまMatzさんの横が空いていたので座らせてもらいました。こんな感じで、Ruby界の有名人と気軽に話せるのもRubyConfのいいところですね。
f:id:JunichiIto:20181124094136j:plain

「たこ焼き仮面」の二つ名でも有名な、Aaron Pattersonさんとも記念写真をパシャリ。他にも「あっ、この人Railsのリポジトリでよく見かける人だ!!」みたいな有名なエンジニアさんがたくさんいました。海外エンジニアさんは実写アイコンの方が多く、こういうときにすぐ分かるので良いですね。(ただ、Aaronさん以外の人と写真を撮らなかったことをちょっと後悔・・・)

「私を代名詞で呼ぶときは、"HE / SHE / THEY / (聞いてくれ)" で」という、4種類の小さなバッジが配られていました。ジェンダー問題やポリティカル・コレクトネスに敏感なアメリカらしい配慮かもしれません。

毎日3時頃には30分ほどの小休憩があり、各種スイーツが食べ放題でした。ちなみに写真は撮っていませんが、水やコーヒーや紅茶は随時飲み放題になっていました。

RubyConf 2018のスポンサー企業の一覧です。日本でお馴染みの企業もあれば、初めて名前を聞いた企業さんもありました。真ん中あたりにはCookpad社の名前も見えますね。

3日目の最終セッションは「Matzに何でも聞いてみよう」的なQ&Aコーナーでした。「Ruby 3はいつ出るのか」「型チェックは導入されるのか」みたいな質問がたくさん飛んでいました。それにどんどん英語で答えていくMatzさんはさすがです!
f:id:JunichiIto:20181125145114j:plain

RubyConfで印象に残っていることベスト3

海外のカンファレンスに参加するのは今回が初めてでした。RubyConfに参加するのも当然初めてです。実際に参加してみて感じたことはたくさんありますが、その中でも特に印象に残ったことを3つ挙げます。

1. 日本のIT系イベントや勉強会に比べて女性の参加者が多い

会場内にはぱっと見て、女性の参加者が3割ぐらいいました。
また、参加者だけでなく、スピーカーにも女性の方がたくさんいました。

RubyConfでは1日目の最初と最後、それと2日目と3日目の最初と、計4回のキーノートがあったのですが、トップバッターのMatzさん以外、全員女性のスピーチだったことにも驚きました。

以下はその女性キーノートスピーカーの面々です。

f:id:JunichiIto:20181124090909p:plainf:id:JunichiIto:20181124090920p:plainf:id:JunichiIto:20181124090926p:plain

個人的には日本のIT業界はもっと男女比率が均等になってほしいと考えている人なので、日本のITイベントや勉強会でもこんなふうに女性の参加者やスピーカーが増えたらいいのになあ、と思いました。

2. 想像していたほどテクニカルなカンファレンスではなかった

RubyConfに参加する前は、RubyConfはRuby界の天下一武道会(注:ドラゴンボールのネタです)みたいなイベントだと思っていました。
登壇者はGitHubのリポジトリにスターが1000個以上付いていることが必須条件で、セッションの内容も「ひゃー、こりゃまったく付いていけねーなあ!もっと勉強せなあかんわ〜」みたいなものばかりだと想像していました。

が、そんな予想に反して、セッションのレベルは全体的にマイルドでした。
もちろん、ハイレベルなものも中にはありましたが、それはどちらかというと少数派で、各セッションは初心者向けのものだったり、組織運営に関わるものだったり、いわゆる「エモい系」というか、コードの話がほとんど出てこない自分語り的なものだったり、かなりバラエティに富んだ品揃えになっていました。

例えるなら、絶対に激辛カレーが出てくると思って覚悟して有名店に入ったのに、実際に食べてみたら「あれっ、辛くないぞ??いや、むしろ甘いのでは!?」と肩すかしを食らったみたいな、そんな感じです。

聞くところによると、今年だけが特別そういう傾向にあるわけではなく、去年もだいたいこんな感じだったそうです。

ただ、そういうバラエティに富んだセッションを取りそろえて敷居を低くしてあるからこそ、初心者や女性の方も比較的参加しやすいイベントになったのかもしれません。

また、日本人はハードウェア業界、ソフトウェア業界を問わず、何かと「技術力至上主義」に陥りやすい印象があります(かくいう僕自身も「プログラマは技術力が重要」と考えていた人間の一人です)。
ですが、今回RubyConfに参加してみて、こういう懐の深さというか、多様性を認める文化やおおらかさみたいなものが、実はアメリカという国の強さの根源なのでは?と漠然と考えていたりしました(何の根拠もない個人の感想です)。

3. 海外でもRubyが愛されていることを肌で実感できた

日本生まれのRubyが海外でも多く使われていることは以前から知っていましたが、それはあくまでネット等の情報を通して聞いた話ばかりでした。
ですが、今回RubyConfに参加してみて、Rubyが海外の人たちにも愛されていることを肌で実感できました。

言葉にしたり、定量化したりすることは難しいのですが、会場の熱気や参加している人たちの表情やリアクション、雰囲気等で「Rubyが好き!」という気持ちが伝わってきました。
パーティ等で個人的にしゃべった人たちからも「いやー、本当にRubyっていいよね」みたいな感想を聞いたりしました。

たくさんの人たちから記念撮影を求められるMatzさんを見て、「あー、Matzさんって本当にすごいんだなー」と思うと同時に、同じ日本人としてちょっと誇らしくなりました(僕の功績では全くないですが)。

初の海外カンファレンス参加でしたが、Rubyが日本生まれ&自分も日本人ということで、海外でのアウェー感をちょっとだけ軽減できたような気もします(ただの思い込み?)。

印象に残っているセッションの感想等

RubyConfでは本当にたくさんのセッションがありました。一つずつ丁寧にレポートするとなかなか終わらないので、その中から印象に残っているものをピックアップして駆け足で説明します。

ただし、どれも英語だったので僕の理解が不完全なところがあるかもしれません。
近日中に全セッションの動画がYouTubeに公開されると思うので、気になるセッションがあればそちらを見て内容を確認することをお勧めします。

■ 1日目
OPENING KEYNOTE - Yukihiro Matsumoto (Matz)
  • Rubyにおけるコミュニティの重要性をお話しされていました。
  • Rubyはハイプ・サイクルでいうところの流行期が数年前にやってきて、現在は幻滅期にある。しかし、もうすぐ回復期に入って安定期になるはずだから、投資するなら今!みたいな話をして会場を盛り上げていたのが印象的でした。

f:id:JunichiIto:20181125192334p:plain
出典: ハイプ・サイクル - Wikipedia

  • ちなみにMatzさんが英語で話すときは知性が30%ダウンするそうです(笑)。
Graphics and Simulations (and Games), Oh My! - Ryan Davis
  • Minitestの開発者やSeattle.rbのファウンダーとしても有名なRyan Davisさんのスピーチでした。
  • 今回は現在開発中のgraphicsというライブラリを紹介していました。
  • グラフィックスは自分の専門分野ではないと言いながらも、Rubyでこんなライブラリが書けるというのはさすがスーパーハッカー!という印象でした。


Building for Gracious Failure - James Thompson
  • マイクロサービスを運用する際のエラー処理の対処方針が説明されていました。
  • スピーカーのJamesさんいわく、サービス間でリクエストやレスポンスを受け取ったときは、多少おかしなデータがあってもシステムエラーを起こして処理を止めるのではなく、おかしなデータは無視してそれ以外の正常なデータを可能な限り受け入れることが大事なんだそうです。
  • すなわち、マイクロサービスの運用においては、システムエラーを発生させてサービスの流れを止めるよりも、可能な限りデータのバケツリレーを進める方が吉、ということのようです(という話だったと思うんですが、ちょっと自信がないです)。

参考: 発表スライド


■ 2日目
Let's subclass Hash - what's the worst that could happen? - Michael Herold
  • Hashie gemのメンテナさんによる講演でした。
  • HashieはHashのサブクラスとして実装しているが、そうするとHashが持っている170ものメソッドを全てサブクラスでも適切に処理することが期待される。報告されるのissueの中にはかなりレアなエッジケースも含まれることがあるが、Hashのサブクラスである以上、それにもがんばって対処した、というような苦労話が語られていました。
  • Hashie gemには僕もよくお世話になっているので、スピーカーのMichaelさんに「いつもお世話になってます!」とあいさつしておきましたw

参考: RubyConf 2018: Let's Subclass Hash - What's the Worst That Could Happen? | Michael Herold

Pointers for Eliminating Heaps of Memory - Aaron Patterson
  • さっき「一緒に写真を撮ってもらいました」と紹介した、Ruby/Rails界の超有名人、Aaron Pattersonさんの講演です。
  • セッションの出だしでは「僕はGitHubの社員なんだけど、GitHubはMicrosoftに買収されたでしょ?だから、今の僕のMacの壁紙はWindows XPの草原の壁紙なんだよ〜。HAHAHA!!」みたいなジョークを連発して、会場を爆笑の渦に巻き込みました。
  • しかし、いったん本編が始まるとRubyのメモリを使用量を減らすというテクニカルな話題を説明するために、「Cで書くとわかりにくいだろうから」という理由でRubyで書いた擬似コードを使ったり、図やアニメーションをふんだんに使ったスライドで説明したりと、随所に聴衆が理解しやすくするための工夫を凝らされていました。
  • 技術力が抜群なのはもちろんのこと、難しい話題をわかりやすく説明し、なおかつユーモアを交えて笑いも取れる、「超一流のエンジニア、マジすげー」と驚嘆したセッションでした。

f:id:JunichiIto:20181126090639j:plain
たこ焼きではなく、ハンバーガーの帽子を頭にかぶって登壇するAaronさん

Parallel programming in Ruby3 with Guild - Koichi Sasada
  • Ruby 3での導入を目指して現在開発が進められている、並列プログラミングのための新しいメカニズム、Guild(仮称)を説明するセッションです。
  • Guildが別々であれば、2つのGuildはGVL(Giant VM Lock)の影響を受けずに完全に並列でプログラムが実行可能になります(ただし、1つのGuild内にある複数スレッドの実行はGVLの影響を受ける)。

f:id:JunichiIto:20181124190421p:plainf:id:JunichiIto:20181124190432p:plain

  • Guild間では"shareable object"としての条件を満たさない限り、データを共有することはできません。

f:id:JunichiIto:20181124190447p:plain

  • GVLの影響を受けないプログラムの並列実行はとても魅力的ですね。Guildのリリースが非常に楽しみです。
  • あと、笹田さんとはこのRubyConfで初めてお話しさせてもらいましたが、物腰柔らかな方でとてもお話ししやすかったのが印象的でした。

参考スライド: http://www.atdot.net/~ko1/activities/2018_rubyconf2018.pdf

The secret power of Ruby 2.6: JIT - Takashi Kokubun
  • Ruby 2.6で導入される、JITコンパイラを説明するセッションです。
  • JITコンパイラはRubyの実行速度を速くするために導入されるものですが、速度改善が見られるケースとそうでないケースがあり、それぞれどういう理由で速くなったり、遅くなったりするのかが説明されていました。
  • セッションの内容とは直接関係ありませんが、国分さんの英語は日本語と同様非常に早口で、「あー、これは頭の中も英語で考えながらしゃべっているなー。すごいなー」と驚きました。

参考スライド: Ruby 2.6 JIT / RubyConf 2018 - Speaker Deck

LIGHTNING TALKS(LT大会)

先着順で登壇者が決まるLT大会です。このLT大会ではなんと、僕も14番目のスピーカーとして発表させてもらいました。
この話は別のエントリで詳しくご紹介したいと思います。



■ 3日目
Branch in Time - Tekin Suleyman
  • 「なぜこんな実装になってるんだろう?」と思ってgitの変更履歴を追いかけたときに、どういうコミットになっていればその理由がわかりやすくなるか、という「コミットのお作法」を説明するセッションでした。
  • 前半で「よくありがちな問題」として説明された架空の事例では「あー、それ、めっちゃよくわかる!!」と大きく頷くと同時に、自分も結構いい加減なコミットをして「悪い例」になってしまっていることを反省しました。
  • ちなみに、スピーカーのTekinさんは1日目のアフターパーティで一番長くしゃべったエンジニアさんです。易しい英語でわかりやすく話してくれたので、非常に話しやすかったです。

参考スライド: Branch in Time (a story about revision histories)

Hijacking Ruby Syntax in Ruby - Tomohiro Hashidate, Satoshi "Moris" Tagomori
  • BindingやTracePoint、Refinementsといった「素のRuby」の機能を使って、"final"や"abstract"、"override"といった「他の言語にはあってRubyにはない構文」を導入するという、非常にマニアックな発表でした。
  • そして、このマニアックな発表をしたのが、著名な日本人エンジニアである@joker1007さんと@tagomorisさんのお二人でした。
  • たまたま僕の席の隣にはMinitest開発者のRyan Davisさんが座っていたのですが、横の席でずっと「Oh...」とか「Wow!」といった独り言をつぶやいていたのが非常に印象的でした。そして最後のQ&Aタイムでは、「お前たちは最悪だ!!(You are terrible!!)」と最大級の褒め言葉(笑)を贈っていました。


ちょっと分かりづらいかもしれませんが、発表開始直前の会場の様子です。

参考スライド: Hijacking Ruby Syntax in Ruby (RubyConf 2018)

Building Serverless Ruby Bots - Damir Svrtan
  • 最近話題になっているサーバレスアーキテクチャで、Rubyを実装言語として使うための工夫や情報源を紹介するセッションでした。
  • 今のところ(2018年11月時点)、Rubyをそのまま実行できるのはIBM Cloud Functionsというクラウドサービスだけだそうです。ただ、今後はAWSのような他のクラウドサービスでも対応する可能性がないわけではないので、急いでIBM Cloud Functionsを使うべきかどうかは微妙なところかも、という話をされていました。
  • 必ずしもRubyでなくてもいいはずなのに、あえてRubyでサーバレスなプログラムを実行しようとするDamirさんの姿勢に強い「Ruby愛」を感じました。

参考スライド: Building Serverless Ruby Bots @ Ruby Conf 2018 - Speaker Deck

現地ではどれくらい英語に苦労するのか

さてさて、ここまであたかも何の苦もなく、現地でコミュニケーションしていたかのように書いてきましたが、RubyConfはアメリカで開催されたカンファレンスなので、当然英語が共通語です。参加者もおそらく現地のアメリカ人が大半だったと思います(見た目だけでは国籍を特定するのは難しいので正確な比率はわかりませんが)。

ここからは初の海外カンファレンスで英語でどれくらい苦労したのか(またはしなかったのか)を語ってみようと思います。

英語でも発表内容は5〜6割はわかる(ただしテーマやスライドのテキスト量による)

平均すれば発表内容は5〜6割ぐらいは理解できたと思っています。
特に、次の条件が揃ったときが理解しやすいです。

  • スライドにテキストや図、コードが多い(つまり、視覚情報が豊富)
  • 発表テーマが自分に馴染みのあるものである(つまり、発表のコンテキストが既知のものである)

この条件を満たしていれば、英語の細部が聞き取れなくてもスピーカーの身振り手振り、表情、声のトーンなどからだいたい内容を理解することができます(誤解している可能性が絶対ないとは言い切れませんが)。

逆にスピーカーの中には、スライドにほとんどテキストが登場せず、ひたすら口頭で説明していったり、Rubyの話がほとんど登場しない(つまり、コンテキストを僕が十分に理解していない)、本人の社会貢献活動を語ったりする人もいました。
こうなると、「うーん、わかったような、わからんような(でも理解できた自信がまったくない)」という感想になりました😓

ライブキャプションはありがたいけど・・・

一部の発表ではライブキャプションという字幕サービスが提供されていました。
これは下の写真のように、スライドの上部に(ほぼ)リアルタイムでスピーチの内容を表示してくれるサービスです。

f:id:JunichiIto:20181126182237j:plain
Photo by @Codingmamakaz

これは一見すごくありがたいのですが、仕組みとしては裏で人間が頑張ってタイピングしているので、どうしても数秒のタイムラグが発生してしまいます。こうなると、スピーカーが今喋っている内容と目で追いかける英文が食い違ってしまうので、逆に混乱してしまいがちでした。

また、ときどきタイピングが追いつかず(もしくは専門用語を正しく聞き取れずに?)に内容が抜け落ちるときもあります。「そこが知りたかったのに!」という部分が抜け落ちると少し残念な気持ちになりました。

もちろん、ライブキャプションのおかげで聞き取れなかった部分を理解できたことも多少ありましたが、そういう機会は数える程度だったので個人的には「最悪なくても大丈夫かな」という印象でした(せっかく提供してもらったのにごめんなさい🙏)。

共通の話題がないと初対面の人に話しかけるのは困難

前述の通り、RubyConfに参加していた日本人は参加者全体から見ると少数派です。会場にいた日本人はおそらく20人前後だったんじゃないかと思います。

ずっと日本人同士で固まって日本語でしゃべっていると、日本の勉強会に来たのと変わらなくなってしまうので、僕は「できるだけ現地の人とコミュニケーションを取ろう」と思ってRubyConfに臨みました。

・・・が、実際やろうと思うとめちゃくちゃハードルが高かったです。

そもそも、初対面の人に話しかけようと思っても共通の話題がないと話しかけるきっかけがありません。
最初は僕が英語があまり得意じゃないからハードルが高いんだろう、と思っていたんですが、これってよく考えると日本の勉強会でも同じなんですよね。

同じ勉強会に来ているからといって、いきなり見ず知らずの人に「どうも初めまして!」と声をかけるのは日本人同士でもハードルが高いはずです(陽気なアメリカ人同士ならできるのかもしれませんが・・・)。
なので、こっちが相手のことを前から知っていたり、その人の発表を聞いたあととかじゃないと、なかなか話しかけられないなー、と思いました。

Ruby界の有名人やスピーカーの人であれば比較的話しかけやすい

逆にいうと、そういう条件が揃っているときは、あまり躊躇なく話しかけることができました。

たとえば、Ryan Davisさんに「Minitestよく使ってます!(RSpecも使ってるけど😅)」と話しかけたり、スピーカーの人が歩いていたら「さっきの発表聞いてました。すごく良かったです!」とフィードバックを返したりすることができました。

ちなみに、活発にOSS活動をしている@koicさんや@284kmさんは、OSS活動を通じて交流があるエンジニアさんたちとたくさんお話をしていました。
なので、OSS活動をたくさんしている人であれば、もっとRubyConfを楽しめるかもしれません。(僕も頑張らないと!)

一緒にご飯を食べてくれる人は確保しておいた方が良い

僕はあまり後先考えずに一人でRubyConfに乗り込んだのですが、前述の通り「面識や共通の話題がない人と、いきなり仲良く」というのはなかなかハードルが高いので、日本人であれ、現地の知り合いであれ、一緒にご飯を食べてくれる人は確保しておいた方がいいと思いました。

周りの人がみんなわいわい仲良くおしゃべりしている中で、一人だけぽつーんと「ぼっち飯」になるのはちょっとつらいです(しかも異国の地で)。

僕の場合は幸い、ランチや晩ご飯は日本人エンジニアの中に混ぜてもらったのでつらい思いはせずに済みましたが、ここはちょっとノープラン過ぎたかな、と反省しました。

英語ネイティブ同士の雑談はまったく意味不明(汗)

1日目のアフターパーティでは何名かの現地エンジニアさんたちとお話をしました。
ですが、4人以上のグループになると現地エンジニア同士の雑談が始まって完全に取り残されることがよくありました。
英語ネイティブ同士の雑談はさすがにほぼ聞き取れなかったです。

また、1対1でしゃべっているときも、こちらのレベルに合わせて易しい英語で喋ってくれる人と、情け容赦なく話してくれる人の2通りに分かれていました(いや、後者の人も実際は気を遣ってくれていたのかもしれませんが・・・)。

僕はリスニングがそこまで得意ではないので、容赦なく話されると会話を楽しむよりも、相手が言っていることを聞き取るだけで精一杯になってしまい、精神的にちょっと疲れました。

こんな経験を何度かしたので、「海外のIT企業に勤めたりすると、こんな感じになるのかなあ。現地で働いている日本人はすごいな〜」と、僕は海外在住の日本人エンジニアの苦労を勝手に想像したりしてしまいました。

その他、感想もろもろ

最後に、RubyConfに関するその他の感想を書いておきます。

  • スポンサーブースでたくさん無料Tシャツ(またはトートバッグ)をもらいました。あまり知らないサービスもありますが、デザインがオシャレなので普段着として着ることができそうです。

  • RubyConfの記念Tシャツプレゼントもありました。こちらがそのTシャツです。

  • 4トラックあるセッションのうち、どのセッションを見るのかはその日の朝までに決めておきました。会場で考えているとちょっと余裕がなくなるので、事前に決めておいて正解だったと思います。
  • 現地のエンジニアさんたちはスライドにやたらとアニメーションGIFを盛り込んでくるな〜という印象があります。目の前の大きなスクリーンで、ガチャガチャと同じ動きが繰り返されるのはちょっと目障りで、個人的にはあまり好みではありませんでした😔
  • 雑談をしてると、たまに簡単な日本語を話してくれる海外エンジニアさんがいました。「この間日本を旅行したよ」と言ってくれる人もいました。アウェー感を感じがちな異国の地で、日本や日本語に興味を持ってくれている人がいると、すごくホッとしますね。
  • 日本のIT系イベントでは出版社や書店がスポンサーブースを構えていることがありますが、RubyConfでは出版関係のブースや関係者は見かけませんでした。チャンスがあれば「プロを目指す人のためのRuby入門の英語版を出しませんか?」みたいな営業活動をしたかったのですが、あえなく失敗に終わりました(苦笑)。
  • Rubyエンジニアの@igaiga555さんがおっしゃっていたとおり(参考)、会場内は冷房が効きすぎてめちゃくちゃ寒かったです!上から羽織るパーカーを持っていって正解でした。この寒さのせいか、2日目や3日目に体調を崩す日本人エンジニアさんも中にはいたようです。

おまけ:個人的に嬉しかったこと

私事ながら、拙著「プロを目指す人のためのRuby入門」に「本書の刊行に寄せて」の文章を書いてくれたMatzさん本人に対して、ようやく感謝の言葉を述べることができました。
それと同時に、僕が持っている「プロを目指す人のためのRuby入門」にMatzさんのサインを書いてもらいました。

Matzさん、どうもありがとうございました!

まとめ

というわけで、このエントリではRubyConf 2018の参加レポートを長々と書いてみました。

行く前は「一人で海外旅行なんてしたことがないけど大丈夫かな」とか「まったく英語が通じずに撃沈して帰ってきたらどうしよう」みたいに心配していましたが、なんとか無事にRuby Confに参加して帰ってくることができました。

実際に海外のカンファレンスに参加し、いろいろなものを見たり感じたりすることで、ネットの向こうにしかない、漠然としたイメージでしかなかったアメリカのIT業界が、自分の中で少しだけ具体的でリアルな存在に変わったように思います。

みなさんがもし、RubyConfや海外カンファレンスに初めて参加する機会があれば、このエントリを参考にしてもらえると幸いです😃

ちなみに来年のRubyConfはテネシー州のナッシュビルで開催されるようです。
(ナッシュビルといえばギブソンの本社がある街!ギター工場に行ってみたい!!)


謝辞

RubyConf参加に関わる渡航費や宿泊費、参加費等を補助してくれた、勤務先の株式会社ソニックガーデンに感謝します。どうもありがとうございました!

また、「ぼっち状態」でRubyConfに乗り込んでいった僕に仲良くしてくれた日本人エンジニアのみなさんもどうもありがとうございました。
海外のカンファレンスで完全に単独行動するのは時期尚早だったということがよくわかりました😅

最後に、RubyConfを運営してくれたスタッフのみなさんと興味深いお話を聞かせてくれたスピーカーのみなさん、それに現地で雑談したエンジニアのみなさん。
みなさんのおかげで「人生初の海外カンファレンス体験」を楽しいものにすることができました。Thank you very much!

次回予告?

RubyConf関連で書きたい話はまだ書き切れていないので(まだあるんかい)、このあとのエントリで以下のような内容も書いてみようと考えています。興味がある方は後日またこのブログをチェック(または、読者登録)してみてください!

  • 英語でLTをするための準備やポイント
  • Los AngelesやSan Diegoの観光レポート

あわせて読みたい

他の方が書かれたRubyConf 2018の参加レポート

RubyConf 2018の参加レポートは他の日本人エンジニアの方々も書かれています。
それぞれまた違った角度からRubyConfの様子を知ることができるので、こちらもあわせてご覧ください。

techblog.zozo.com
blog.agile.esm.co.jp
joker1007.hatenablog.com
tech.speee.jp

「初の海外カンファレンス参加」というテーマで書かれた他の方のブログ等

初めて海外カンファレンスに参加する際に気を付けるべきことは何か、ということを調べていたときに参考にさせてもらった情報源です。
www.daiwa-computer.co.jp
chiiia12.hatenablog.jp
qiita.com

プロフィール写真を変えました in 2018

お知らせ

今年もやってきました。プロフィール写真変更の季節!
ということで、新しいアイコンはこの写真でいきます。

f:id:JunichiIto:20181109065650j:plain:w300

ちなみにこれまではこの写真でした。

f:id:JunichiIto:20181109065724j:plain:w300

実はちょっと古い、新しいプロフィール写真

ただし、新しい写真は最近撮ったものではなく、昨年の末に会社で撮ってもらったプロフィール写真です。
なので、実は写真を撮ってから1年近く過ぎています。

なんでこの写真に変えたのかというと、RubyConf向けに作った英語版名刺と統一するためです。

f:id:JunichiIto:20181107115423j:plain

リアルとネットのアイデンティティを統一する

じゃあ、なんのために名刺の写真に合わせたのかというと、もし海外の人が僕の名刺経由でFacebookやTwitterにやってきたときに、同じ写真だと「あっこれ、このあいだのアイツやん」ってすぐに識別してもらえそうだからです。

すなわち、リアルとネットのアイデンティティの統一、ってな感じでしょうか。

僕はネットとリアルを分けるのではなく、逆にネットとリアルは地続きにしたいと考えてる人なので、ネット上でも実名&実写アイコンで活動しています。

まとめ

そんなわけで、今後はこのプロフィール写真でしばらくお付き合いください〜!

RubyConf 2018に行ってきます 〜初めての海外カンファレンス参加&海外一人旅に向けた準備について〜

2018年11月13日から15日の3日間、ロサンゼルス(LA)で開催されるRubyConf 2018に参加してきます。

参加といっても登壇ではなく、あくまでただ聞くだけの人です。
今回は僕にとって初めての海外カンファレンス参加になります。
単独で参加するので、海外に一人で出かけるのも初めてになります。

初めてのことだらけですし、結構心配性なので「どうしよー、大丈夫かなー??」と不安に思う部分も多いですが、「えいやー」とgive it a tryの精神でちょっくら飛び込んできます。

現時点ではまだその日を迎えていませんが、これまでにやってきた準備等をざっくりとまとめておきます。
今後、海外カンファレンスへの参加を考えている人の何か参考になれば幸いです。

【もくじ】

Crystal Ball Room in Millennium Biltmore Hotel
会場のMillennium Biltmoreホテルはこんなところだそうです。

2018.11.08追記:教えていただいた参考情報を追記しています
この記事を公開した後にTwitterで教えていただいた有益な参考情報を各セクションに追記させてもらいました。

RubyConfに参加することを決心する

RubyConfに行こうと思ったのは、たまたまTwitterでRubyConfに関するツイートが目に入ったからでした。
以前から行きたい!と強く思っていたわけではなく、「へー、なんか面白そう」という、なんとなくの直感で行ってみたいなと思いました。

ただ、こう考えたのは若干の伏線があります。
今年の夏に家族でハワイに行ったのですが、実際にハワイに行ってみると「頭の中で想像していたハワイ」とは全然違う体験ができたのです。

なのでそれ以来、ネットで見聞きして知ったような気になるのではなく、実際に現地に足を運んで、自ら体験することがとても大事だと考えるようになりました。

おそらくこの夏にハワイに行っていなければ、RubyConfのツイートを見かけてもスルーしていたと思います。

家族(というか妻)に了承を得る

とはいえ、僕が家を空けてしまうと、家事や子どもたちの面倒を見たりする妻の負担が大きくなります。
妻に「無理!」と言われたら諦めようと思いましたが、幸い、妻は快諾してくれました。
どうもありがとう😆

会社に費用の負担を申し出る

しかし、海外のカンファレンスに行こうと思うと、飛行機代、ホテル代、カンファレンス代と、かなりの費用がかかります。
カンファレンス代だけでも700ドル(=8万円近く)です。
個人で負担するのはなかなか厳しいので、勤務先のソニックガーデンに「RubyConfに行きたいんですけど、費用って負担してもらえます?」と尋ねてみました。

そうしたら、ありがたいことにこちらも快諾してもらえました。
感謝感謝です🙏

ただし、「来年のRubyConfでは登壇者になってね」と、なかなかハードルの高い条件を付けられております(ひー😂)。

@_ko1さんからの参考情報


RubyConfのチケットの購入

家族と会社の了承が得られたので、さっそくRubyConfのチケットを購入しました。
せっかく了承をもらったのに、売り切れてしまったら意味がないので、ここは早めに行動しました。

僕は9月19日に購入しましたが、そのちょうど1ヶ月後の10月19日に全部売り切れてしまったようです(速い!!)。


飛行機のチケットと宿の確保

さて、次は飛行機のチケットと宿の確保です。
これも後回しにして良い便や良い宿が取れなくなるといろいろ辛いので、早めに確保した方がいいと思います。
僕はどちらも9月の末に予約しました。

飛行機のチケットを取る

飛行機は乗り継ぎ便を選択すると安くなりますが、時間もかかるし体力的にもしんどくなりそうだったので、直行便を選びました。
関空からLAまでの関空便だとJALとアメリカン航空があるのですが、僕が調べる限りどちらも同じ額だったので、JALを選びました。
チケット代は往復で17万4820円でした。
結構お高いですね・・・。

Airbnbで宿を確保する

続いて宿の確保ですが、これは会社のメンバーから「海外のホテルは高い割にイマイチなケースがあるから、Airbnbで取るのがいいよ」と言われました。

Airbnbを利用するのは初めてだったので、「スーパーホスト」と呼ばれる評価の高いホストの宿を選択しました。
また、移動で体力を消耗しないよう、会場に近い宿を選びました。
こちらは5泊6日(現地時間の11/12〜11/17)で7万7785円(1泊あたり約1万5000円)です。

id:koic さんはRubyConfの会場になっているホテルを予約して、1泊3万4000円程度だったそうです。

たしかに金額だけ見るとAirbnbの方が安そうですが、これだけでAirbnbに軍配を上げるのは時期尚早な気もします。
実際に泊まってみて、満足できるかどうかが大事なポイントですね。

ちなみにAirbnbは個人対個人の宿の貸し借りになるので、ホストの人とは随時、英語でメッセージをやりとりする必要があります。

参考:パスポートとESTA

僕は今年の夏にハワイに行ったので大丈夫でしたが、当然パスポートを事前に取得する必要があります。
すでに持っている人も有効期限が十分残っているか確認しておきましょう。
半年ぐらい有効期限が残っていないと入国を拒否されるケースもあるみたいです。

また、アメリカに入国する際はESTAの申請も必要になります。
こちらも有効期限が2年あるので、僕は今回申請不要でしたが、初めてアメリカに行く人はESTAを申請しておきましょう。

大きな出費を合計すると約33.3万円、トータルの予算は40万〜50万円

海外カンファレンス参加で大きな出費となるのは、飛行機代、宿泊費、カンファレンス参加費です。
これらの費用を合計すると今回は、

飛行機代 17万4820円 + 宿泊費 7万7785円 + カンファレンス費 約8万円 = 約33.3万円

になりました。

これに後述する、あれやこれやの費用を足していくと、予算はだいたい40万円から50万円ぐらいの間になるでしょうか。
うーむ、なかなかの金額ですね。。
会社に費用を負担してもらうのであれば、この経験が無駄にならないよう、いろんなことを吸収して帰ってこないといけませんね。

UberとLyftのアカウントを作る

会社のメンバーから「海外の移動はUberを使った方が安いし、安全だし、確実だよ」と言われたので、Uberのアカウントを作りました。
アカウントの認証でSMSを使うので、日本にいる間にアカウントを作っておく方がいいと思います。

また、ネットを見てると「現地ではLyftの人気も高い」という話だったので、Lyftのアカウントも作りました。

空港から宿までの移動はUberかLyftを使う予定です。
ただ、どちらも実際に利用したことがないので、「ちゃんと利用できるかな〜」と少し心配だったりします。

現地での通信手段(Wifi環境)を検討する

日本にいるときと同様、いやそれ以上に海外でスマホが使えることは日常生活の生命線です。
ハワイに行ったときは「イモトのWifi」を利用したのですが、感想としては「可も不可もなく」という感じでした。

ハワイから帰ってきてから知ったのですが、最近では携帯キャリア各社も海外でのデータ定額オプションを提供しているようです。
料金も「イモトのWifi」と変わらない(むしろ安い?)し、Wifiアンテナを持ち歩かないぶん荷物も減るので、今回はこれを利用してみようと思います。

僕はauユーザーなので、auの「世界データ定額」オプションを使う予定です。

これもたぶん大丈夫だとは思うけど、現地に着いてから「あれっ、まったくネットにつながらへんやん!!」ということになったら焦るだろうな〜、とちょっと心配しています😅

海外旅行保険に入る

海外でもし怪我をしたり病気になったりしたら大変です。
お守りとして海外旅行保険に入っておきましょう。

僕は損保ジャパン日本興亜の「新・海外旅行保険【off!】」という保険に入りました(ハワイ旅行に続いて2回目)。

新・海外旅行保険【off!(オフ)】 | 損保ジャパン日本興亜

保険料は7日間で3260円です。

この料金で以下のような補償を受けられるのですから、入っておいて損はないと思います。

内容 補償額
傷害死亡・後遺障害 ¥20,000,000
治療費用 ¥20,000,000
疾病死亡 ¥20,000,000
賠償責任 ¥100,000,000
携行品損害 ¥300,000
救援者費用 ¥20,000,000
航空機寄託手荷物遅延等費用 ¥100,000
航空機遅延費用 ¥20,000

@hsbtさんからの参考情報


英語名(アメリカンネーム)を検討する

以前読んだ「エンジニアとして世界の最前線で働く選択肢」という本の中に、「アジア人の名前は読みづらいものが多いので、英語名を名乗った方が欧米人とコミュニケーションが取りやすい」という話が書いてありました。

僕の「淳一(Junichi)」という名前も少し読みづらそうだったので、全然別の英語名で名乗ることを検討しました。
が、英語ネイティブの知り合いに尋ねてみると、「いや、そこまで難しくないし、通じなければ"Jun"と名乗ればOK」という返事をもらったので、今回はそのまま日本語の本名を使うことにしました。

ただし、ネイティブの知人いわく、「つ」が入っている名前(ツバサ、ツカサ、etc)とか、「りゅ、りょ」系の発音が入る名前だとちょっと発音しにくい、とのことなので、人によっては英語名を検討してみても良いかもしれません。

英語版の名刺を用意する

実際にどれくらい使うのかはわかりませんが、自己紹介代わりに英語の名刺を渡そうと思って、英語版の名刺を作ってみました(作成は会社に依頼)。

f:id:JunichiIto:20181107115423j:plain

日本の名刺と欧米の名刺はサイズが違うようなので(欧米の名刺の方が少し小さい)、業者に発注するときは名刺のサイズも気にした方がいいかもしれません。

参考: 欧米サイズの名刺 | 昇永堂

名刺に合わせてSNSのプロフィール写真を変更する

FacebookやTwitterのプロフィール写真を英語版名刺と同じものに変更しました。
なぜなら、現地で出会った人が名刺経由でFacebookやTwitterにやってきたときに、名刺とSNSの写真が同じだと「あ、こいつだ!」とすぐに識別してもらえそうだからです。


現地の気候を調べる

ロサンゼルスの11月の気温は僕の住んでいる兵庫県に比べると、ちょっと暖かいぐらいのようです。

ロサンゼルス(アメリカ)の天気 - 日本気象協会 tenki.jp
f:id:JunichiIto:20181107175447p:plain

この気温を見る限り、服装はこちらと同じか、少し薄着で過ごせそうな感じがします。

@igaiga555さんからの参考情報


両替の方法を検討する

ハワイに行ったときは日本で3万円ほどの現金ドルに両替したんですが、現地ではほぼカード払いで済んでしまったので、現金はほとんど使いませんでした。
今回は1万円ぐらいを空港で両替しておけば十分かな〜と考えています。

@mogyaさんの参考情報


ノイズキャンセリング機能付きヘッドホンを買ってみた

飛行機には10時間以上乗らなくてはなりません。
僕は飛行機に乗っているときの「ゴーッ」というエンジン音が結構気になるタイプです。

最初は耳栓を付けてしのごうと思ったのですが、ネットを見ていると「飛行機にはノイズキャンセリング機能付きヘッドホンが有効」という話が載っていました。
今までそういうヘッドホンを使ったことはないのですが、実際に使ってみるとどうなるのかが気になり、興味半分でBOSEのヘッドホンを買ってみました。

ネットのクチコミはまあまあ良かったのですが、実際に使ってみるとどうなるやら?
帰ってきたらまた体験談を載せたいと思います。

@Alyson__Tさんの参考情報


その他、買い物もろもろ

着替えや歯ブラシなど、旅行に必要になりそうなものをもろもろ買いそろえました。
具体的な持ち物は以下のようなサイトに詳しくまとめられているので、こういうサイトを見ながら足りないものを100均やドラッグストアで買いそろえれば良いと思います。

ちなみに、iPhoneやMacのACアダプタは日本でもアメリカでもそのまま使えるので、電圧変換器は不要です。

英語の勉強・・・???

はい、英語です。
ハワイは日本人向けの観光地だったのでそこそこ日本語が使えましたが、今回はおそらく完全にアウェーです。
日本語はほとんど使えないでしょう。

海外の技術書を翻訳してるし(Everyday Railsのことです)、前職は外資系企業に勤めていたし、TOEICも860点あるし、英語はまあまあ得意な方なんですが、リスニングとスピーキングはあまり得意ではないんですよね〜。
特にリスニングが一番不安です。

時間があればあらためて英語の勉強をしようと思ったのですが、ここ数ヶ月、あれこれ忙しくて結局ほとんど勉強できていません。
去年のRubyConfの動画を2〜3本見た程度です。

おそらくこのままぶっつけ本番で、現地に向かうことになると思います。
いや〜、どうなることやら??

現地に着いて、Airbnbのホストの人と話すところからいろいろ苦労しそうな予感がしています💧

まとめ

というわけで、今回のエントリではRubyConf 2018に向けて、これまで進めてきた準備をあれこれ書いてみました。
今後、海外カンファレンスに参加する人がこのエントリの内容を参考にしてくれれば幸いです。

また、海外カンファレンスの経験がある人は、僕の知らない耳寄り情報なんかも教えてもらえると嬉しいです😄

RubyConfが終わって帰ってきたら、またいろいろ書いてみようと思います。
RubyConfに向かう日本人エンジニアのみなさん、現地で会ったら仲良くしてやってください!🙏