try! Swift 2018 New York で登壇してきました

f:id:kenmaz:20180905123525j:plain

2018年9月4日〜5日にニューヨークで開催された try! Swift 2018 New York に登壇してきました。25分のトーク+25分のオフィスアワーで質疑応答、というのが私に与えられた枠でした。トーク内容は前回のtry Swift Tokyo の5分間LTで発表した超解像+CoreMLの話のロングバージョンです。

www.tryswift.co

発表資料は以下

speakerdeck.com

動画もそのうちYouTubeに上がると思います。 

いまは空港で帰りの飛行機待ちです。時間があるので忘れないうちに、時系列順で起きた出来事、行ったこと、思ったことを書き綴ります。面白かったセッションは最後に列挙します。

2018-04-04 Natashaからの招待

3月に行われたtry! Swift Tokyoが終わって数週間後に主催者のNatasha から9月のニューヨークで話さない?と招待が来ました。おそらくTokyoでのLT発表がそこそこウケた+英語での発表だった、というあたりが招待された理由なのかなと思います。発表内容については、できればTokyoでのLTの発表内容のロングバージョンがいい、という要望がありました。

ちょっと悩む

NYCで登壇できるチャンスはそうないので即答でOKと言おうかと思ったけど、ちょっと悩みました。メルカリへの転職の選考が進行中だったからです。このとき取りうる選択肢としては以下のようなものがありました。

  • (A) 転職しない + 登壇する
  • (B) 転職時期を9月以降にずらす + 登壇する
  • (C) 転職する + 登壇しない
  • (D) 転職する + 登壇する

 まず(A)について。そもそも超解像についてはほぼプライベートの時間を使って取り組んでいましたが、前職のマンガアプリ開発との親和性が非常に高い。DeNAにこのまま留まって業務と絡めてより知見を深めつつ、しっかり準備した上で満を持してNYCで登壇する、というのが多分一番安牌な選択だったかなと思います。

とはいえ、そこそこ考えた末、転職をしようと思っていたわけで、別の理由でそこにストップを掛けるってのはどうかなとも思いました。ってことで(B)のプランも浮かびましたが、なんというか、さすがにいろいろ多方面に不義理な感じがしたので、これは選択肢から外しました。

というわけで転職はすると決めたのですが、転職してあまりフィットしなかったりいきなり激務になったりして全然登壇準備ができなかったらどうしよう、という不安が湧いてきました。しかも今回はフル英語での発表+質疑応答なので、そっち方面の準備もしっかりする必要があります。なので(C)もちらっと頭に浮かんだのですが、これは流石にせっかくのチャンスなのにもったいない、ってことで、多分最もタフな(D)を選択しました。

誰か(誰だったかな?)が「迷ったら面白そうな方、一番タフそうな方を選べ」ってことを言っていて、これまでも度々その言葉に従ってきましたが、今回もその言葉に従うことにしました。
社外発表は社としても推奨しているので、本業と折り合いをつけて業務中に作業してもいいよ、と前もって聞いていたので、まあなんとかなるでしょう、という気持ちで、Natashaに承諾メールを返信しました。

2018-05 有給消化期間

無事メルペイへの転職がきまり、5月はほぼ1ヶ月有給消化してました。転職後はきっとバタバタするので、この期間にガガッと準備を進めてやるぜと意気込んでいました。まずテーマ決めからはじめましたが、このとき気になっていたのが以下の論文です。

[1708.00853] Audio Super Resolution using Neural Networks

ResNetを使って音声データに対して超解像するぜという手法についての論文です。こいつをCoreMLでうまくiOSバイス上で動かして、「はい、画像を超解像できることがわかりましたね。では画像だけですか?いいえ、音声に対してもできます!フー!!!」みたいな感じで発表できたら盛り上がるやろな、と思って早速調査を開始しました。で、結果としてはこれは失敗に終わりました。かなりハマりつつもなんとか動くものができたわけですが、処理があまりにも重すぎて実用に耐えない感じになってしまったからです。それ以前にCoreMLに変換できるようにKerasで実装する部分でかなりハマったりして、なんかゴニョゴニョやっているうちに5月が終わってしまいました。この期間は発表準備の他にも、個人プロジェクトとして長年運営しているAnimeMakerのサーバーサイドをAWSに移す作業もしたりしてて、発表の準備作業は実質フルで8日間くらいの稼働だったかな。

2018-06 ~ 2018-09 メルペイでの業務開始+発表準備

6月からメルペイの仕事が開始しました。入社後から2つのプロジェクトに関わらせてもらってるのですが、とっても楽しくて6,7月はあまり準備作業はやってなかった気がします。さすがに8月もそろそろ近づいてきた段階でやばいなと思い、業務と平行して発表準備を進めました。

英語との格闘

メルカリには英語力向上プログラムとして、DMM英会話、英語話者との週に一回のチャットランチ、専門の先生とのレッスン、などなどが備わってるのでフル活用することにしました。なんと言っても僕の英語力はひどくて、たとえば「ABC」のことをこれまで「エービーシー」と発音してましたが、じつは「スィー」だということを知ったのがこの8月末です。妻も引くくらい知識がぽっかりと欠如している部分があるのです。あとチームメンバーも半分くらい英語話者エンジニアなので、彼らとなるべく英語で話すように心がけてました。でもやっぱり難しいし、聞き取るのが特に難しいです。

2018-09-02 いざ出発

9/2から5泊7日でいよいよ出発。羽田空港10:30ころ発。旅費とホテル代は主催者持ち。自腹でANAプレミアムエコノミーにアップグレードしておいたおかげか、ずっと機中でプログラミングしていたおかげか、13時間のフライトもあっという間でした。JFK空港に到着後はsimカードや両替はスキップしていきなりタクシーに乗り込みました。これがちょっと失敗で、イエローキャブ?っていうんですかね、運転雑だし、エアコン効いてないし、なんか怖いし、ドル現金持ってないし、オフラインだし、ちゃんとホテルに到着するだろうか?という不安とともに30分くらいでホテルに到着。

f:id:kenmaz:20180902115433j:plain

タクシー

Yotel NewYork

スピーカー勢はみんなここに泊まるみたいです。部屋にあった案内をみると東京のカプセルホテルに着想を得たホテルらしく、狭くはあるがクリーンで機能的、ってのが売りのホテルのようです。非常に快適でした。

f:id:kenmaz:20180902123835j:plain

ホテルの部屋

タイムズスクエア

ホテルにチェックイン後は歩いて10分くらいのところにあるタイムズスクエアへ。でっかいLEDがビルの壁にびっしりあったり、人混みでごった返していたり、渋谷センター街あたりの雰囲気がありました。京都のような碁盤目にそった町並みで、ビル群はどれも巨大で大規模な丸の内のよう。屋台のブリトーを食ってストリートパフォーマーを眺めたあと、AT&Tに行ってSIMカードをゲット。2GBで$25。

f:id:kenmaz:20180902141917j:plain

タイムズスクエア。裸のおっさんが集会してる

2018-09-03

2日目は午後にtry Swiftのワークショップがありますが、それまではフリーなのでちょっと観光。

MoMA

ホテルから歩いて途中ニンテンドーストアによりつつ、MoMA ニューヨーク近代美術館に到着。ゴッホやアンディー・ウォーホルなどが展示されてました。

f:id:kenmaz:20180903112529j:plain

アンディー・ウォーホル

f:id:kenmaz:20180903110601j:plain

ゴッホ

f:id:kenmaz:20180903111631j:plain

ルネ・マグリット

Appleストア巡礼

その後はセントラル駅内にあるアップルストアへ訪問。立派な駅の建物の二階部分がまるっとストアになってて荘厳な雰囲気のストアでした。

f:id:kenmaz:20180903125648j:plain

奥の二階部分が全部アップルストア

try! Swift Day0 ワークショップ

僕がうけたのは暗号通貨+iOSというテーマのワークショップでした。ブロックチェイン、イーサリアム、スマートコントラクトといった概念の説明から、実際にイーサリアムフレームワークを使ってアプリを作ってみようというワークショップでした。なんとなくわかったけど、こっから更に踏み込んでやろうか、という気にはまだなれてない。ちなみに会場は TANOOKI LABSという会社のオフィス。TANOOKI = 狸ですって。TANUKI、じゃないんだね。
ちなみにここでサンフランシスコで働いている keitaitok と初めて出会う。日本語が通じる!

f:id:kenmaz:20180903153338j:plain

ワークショップ会場

スピーカーディナー

ホテルに戻ってスピーカーディナーに参加。ここで@d_date@satoshi(と初めて合流。@Satoshiとは実際に会って話すのはほとんど初めてな気がする。そして同じメルカリに勤める@JonBottとも合流。彼はKotlinのWorkshopの講師として参加していたんだけど、会場のネットワークの不調で1時間ほどWorkshopが中断しちゃったとのこと。ちなみに今回は2回もブロードウェイ・ミュージカルを見たんだけど、Jonに強くオススメされたからです。ほかにも主催の@natash、インドから来た@Gopal、台湾からきた@Audreyコロラドから来た@Tomたちとお話をした。

f:id:kenmaz:20180903192805j:plain

スピーカーディナー

2018-09-04

朝起きると軽い頭痛だったので薬を飲んで凌ぐ。時差ボケで変な時間に目が覚めてちょっとつらい。時差ボケは3日くらいでだいたい治りました。

try! Swift Day1

いよいよメインイベントの初日がスタート。東京のときは800人くらい参加者がいましたが、ニューヨークでは300人くらいのひとが参加している模様。会場は傾斜のある座席で正面にステージがあり、小さい劇場のような感じ。実際try Swift day2後にはジャージー・ボーイズのコンサートが行われていたみたい。

f:id:kenmaz:20180904095013j:plain


スピーカー受付後、簡単な会場ツアーをしてもらう。運営スケジュールのレクチャー、ステージ機材の説明、バックステージ、スピーカー控室、など一通り案内してもらう。
一日の流れは、朝食、25minトークx3、30min休憩、25minトークx3、昼食〜、みたいな流れ。休憩時間が結構長めなので、そこで会場の他の参加者とおしゃべりすることができる。テーブルも数少ないので、この席ご一緒していいですか?から始まり、どっから来たんですか、という感じで自然におしゃべりができる感じになっていました。

f:id:kenmaz:20180904090925j:plain

300人なので最終日には結構顔ぶれを覚えられました。Appleの人とも話ができた。なんかSwiftNIOのチームメンバーが東京にもいるみたいなこと言ってたような気がした。

ミュージカル: fozen

初日終了後、ボーリング上でパーティがあったみたいなんだけど、僕はそれには参加せずfrozenのミュージカルを見に行く。チケットは$150くらいで前日にインターネットで購入できて、すごくお気軽。ブロードウェイでは毎日100くらいのミュージカルがやっているらしくびっくり。日本で言うところの劇団四季の劇場みたいなものがあちこちにあって、しかもそれらが毎日上演されているっていう。文化として完全に根付いている。でfrozenはどうだったかというと、今にして思うとすごく良かった。まず映画版を何回も見ているので、多少言っていることがわからなくても内容は完全に理解でき、しかもほとんどの曲がわかる、ってのが非常にでかい。演出もド派手で、エルザのあの氷の魔法が舞台装置やプロジェクションマッピングでうまく再現できていて迫力がある。ミュージカルといえば舞台下のオーケストラピットでの生演奏もライブ感があって良く、それで「レリゴ〜」とか歌うわけですから、かなり盛り上がります。お薦めです。

f:id:kenmaz:20180904184228j:plain

frozen

2018-09-04 try! Swift Day2

いよいよ登壇当日。

登壇

13:00からリハーサル。出番は14:30から。今回はスライド+iPhone実機でのデモ、という構成でしたが、スライドとiPhoneの画面表示はPAの人が切り替えてくれるようになってました。特に切り替えボタンなどはなく、「Let's go to the demo」と言ったらいいタイミングで画面を切り替えてくれて、「Back to the slide」と言ったら戻してくれる、といった具合。マイクはハンドマイクではなく、お尻ポッケに機械を入れてTシャツの中から線を通して胸元につけるタイプのテレビっぽいあれ。ピンマイク?そしてスライドのページめくりはWWDCとかでみんな持ってるあのリモコンみたいなやつが使える。本格的な機材構成となっていました。

f:id:kenmaz:20180905131010j:plain

リハ

リハ中に舞台袖でスタンバイしていると、NSHipsterでお馴染みのMattと一緒になった。おお、あの有名なMattだ、と思いブログ読んでるよー、っていったらクックックッ、あれねえ、、みたいな感じの反応でした。なんか結構変わった人だった。あといろいろNYCのおすすめ情報とか教えてくれた。
とかなんとか言ってるうちに本番スタート。

f:id:kenmaz:20180905143517j:plain

正直あんまり発表中の記憶がないんだけど、とりあえず自分の英語が通じてるのかどうかわからない不安がずーっとあった。舞台上から観客席のお客さんの顔もバッチリ認識できて、ウケてるのか、ウケてないのか、理解できてるのか、できてないのか、あ、あの人席を立った帰っちゃうのかなー、とかとか。

やはり内容以前に、自分の英語が通じてるのかわからない、という点が一番不安だった。普段の会話であれば相手の相槌などを見ればわかるが、発表となるとお客さんとは距離があるので、よほど大きく相槌してくれないかぎりはわからない。何を言ってるんだこいつは・・。みたいな変などよめきは無かったのでとにかくそこは気にせず話し続けた。

そんな中でしたが、デモはそれなりにウケたような気もする。前日にデモ中に小ネタというか、ちょっとクスッとしてもらえそうな要素をいれておいたんだけど、それにちゃんと反応してくれたのでホッとした。ただ後半にかけて割と淡々と進めちゃったので、もうちょっと2,3箇所、そういう要素を入れておいたほうがもうちょっとやりやすかったかなー、などなど反省しています。とりあえず噛まずにはっきり発音できるように、その練習ばっかりしていたので、そのへんまで気が回っていなかったなー。

f:id:kenmaz:20180905143257j:plain

ステージから

てことでだいたい25分の持ち時間のうち、23分間くらいを使って発表を終えて、スピーカーQ&Aブースへ移動。誰も来なかったら悲しいなーと思ってたけど、スピーカーのAudrey、Gopal、そしてはじめましてのBerta、スピーカー以外にも、Jermaineや他2, 3名くらいの人が質問に来てくれて、とにかく喋りまくったので終わったら喉がカラカラになった。

f:id:kenmaz:20180909191943j:plain

取り囲まれる

f:id:kenmaz:20180905160859j:plain

最近機械学習の勉強を開始したという人

発表後はしばらく呆然としつつ、d_dateの発表を見る。内容がきっちりまとまってて、面白かったな〜。さすがやで。compactMapValue使っていこうな。

f:id:kenmaz:20180905172056j:plain

d_dateさん

Pizza

終了後はCyberAgentリクルート、eurekaの日本で働くメンバーたちと合流してピザを食いに行く。今回の旅行で一番うまかったかなー。その後もしばらくウロウロしてホテルに戻って即寝落ち。

f:id:kenmaz:20180905194050j:plain

ピザ

2018-09-05 Meetup & 観光

パンケーキMeetup

satoshiに声をかけてもらって、ホテルのレストランでみんなでパンケーキを食う会に参加。そして皆さんとお別れ。また会いましょう!

f:id:kenmaz:20180909192118j:plain

パンケーキ

その後は一日かけて観光&おみやげ探し

ハイライン

古い貨物列車の線路跡をつかった散歩コースみたいな感じのところ。30分くらい歩く。めっちゃ暑かった

911メモリアル博物館

ツインタワー跡地の池を眺め、博物館で当時の状況を振り返る。観光客は多かったけど、みんな神妙な面持ちで、他の観光地とはまったく雰囲気が違いました。2時間くらいかけて回った。

f:id:kenmaz:20180906130158j:plain

グラウンド・ゼロ

メトロポリタン美術館&セントラルパーク

地下鉄でアッパータウン方向へ向かう。この辺はダウンタウンよりも静かで比較的きれいな街だった。メトロポリタン美術館についた頃には夕方で17:30に閉まっちゃうので、20分くらいしか滞在できなかった。自然博物館のほうにもいきたかったけど、このスケジュールじゃ無理ですね。また来たいところ。

f:id:kenmaz:20180906165922j:plain

外から

帰りにセントラルパークを歩いていたらリスを発見。めっちゃ可愛かった。

ミュージカル観劇: CHICAGO

汗だくになったので一度ホテルに戻り、シャワーを浴びてから、今回2度めの観劇、CHICAGO。frozenとは全然違ってJazzバンドが舞台したのピットではなく舞台上にデデンと並び、その前でザ・ブロードウェイといった感じのムキムキでキレキレの男女がピシパシ歌って踊るというミュージカルでした。そして圧倒的に英語がわからず、ジョークもわからず、話の筋もわからず、そして圧倒的な睡魔により、上演中に何度も寝てしまうという結果に。俺にはまだ早かった・・・・。

f:id:kenmaz:20180906222958j:plain

シカゴ

2018-09-06 帰国

そしてあっという間に帰国の日。Lyftで空港に向かう。Uberもつかったけど、便利過ぎますねコレ。

f:id:kenmaz:20180909192438p:plain

スクショ

その他・雑感

家族との通信

家族とはLINEボイスメッセージと娘からのお手紙で主にやり取りをしていました。

f:id:kenmaz:20180902213605j:plain

こんな手紙の写真が何度か届く

ニューヨーク雑感

住みたいかと言われたらあまり住みたくはない。でもアッパーとかブルックリンのあたりはもうちょい住みやすそうな感じなのかな。ニューヨークを語れるほどの経験はまだ足りてないけど、まだ見たかったものとかもあるし、自由の女神もスキップしちゃったし、ブルックリンにも行ってないし、またチャンスがあったら行きたいです。

現地エンジニアたちとの会話

やっぱりもっと自由にみんなと交流できるともっと楽しかっただろうなとは思います。1:1ならまだしも、複数人の会話になるとついていけないことがほとんどなので(これは前からわかっていたが)、引き続き訓練あるのみ。今回はスピーカーとして参加したので、何かと向こうから話しかけてもらうことも多く、こちらから話しかけるときも話のきっかけが作りやすくて、よかったです。

おもしろかったセッション

Taken For Granted

speakerdeck.com

Swiftの歴史について。コミットログをさかのぼり、Swiftが世に初めて公開されるまでにどんな変遷を経てきたかという非常に興味深いセッションでした。Swift was Ruby.

Idea to launch

起業とプロダクトづくりの話。最初はテックの話じゃないのかよーと適当に聞いてましたが共感するところも多く、印象に残った。

www.tryswift.co

SwiftNIO

ClientでSwiftNIOを使うわかりやすい説明。SwiftNIOを使って、SMTPクライアントをiOS上で作るという例。わかりやすかった。

www.tryswift.co

Creating a delightful tactile user interface

Appleのデザイナによるデザインの話。スライドも凝ってて面白かった

www.tryswift.co

Trusting SDKs

みんなCocoaPodとかでSDKを気軽にインストールしてるけど簡単にハックされまっせ的な話。発表社はFastlaneの作者の人でしたが、ほとんどFastlaneの話は出てきませんでした。が、興味深い内容だった。

www.tryswift.co

Compassionate Code Reviewer

ギスギスしないためのコードレビューのコツ。レビュワーコメントの書き方のいい例・悪い例をたくさん紹介してくれて、すぐい仕事でも活用できそう。

www.slideshare.net

Hacking Mazipan

自分の一つ前の発表で舞台袖にいたので見れなかったけど、絶対面白いだろうなという発表。あとで見る。

speakerdeck.com

Super Resolution with CoreML

自分の発表。はい。

speakerdeck.com

Strings Seven Ways

www.tryswift.co

NSHipsterのMattによる文字列関係のあれこれ。あんまりちゃんと聞いてなかったけど

Make our Swift better

d_dateさんの発表。compactMapValue !!!

speakerdeck.com

まとめ

ということで怒涛の5泊7日が終了しました。準備はめっちゃ大変でしたがとにかく無事終わってよかった。大成功!ってことにしとこうな。ここから年末くらいにかけては、ひとまず本業のほうに全力を注いでいく感じになりそうです。来年くらいになんかまた登壇できるような何かを仕込んでいこう。やっていこうな!