Microsoft Build 2017に参加してきました

Microsoft Build 2017に参加してきました

プログラマーの田嶋です。
先日シアトルで開催されたMicrosoft Build 2017に参加してきました。

Microsoft BuildはMicrosoftが毎年開催している開発者向けのカンファレンスです。今年はシアトルにて05/10〜05/12に開催されました。弊社プロダクトのminaraiはMicrosoftのAzureを利用しています。そのためAzure周辺と、また個人的に興味がある機械学習周辺の発表を中心に傍聴してきました。

その中でも興味深かったものについて紹介していきます。

 

前日 ₋ 現地入り

初日は朝からキーノートが予定されていたため前日にシアトルに到着しました。
実は当方今年で34歳にして、海外経験ゼロ。ビクビクしながら迎えた初めての入国審査にて:

  • 審査官: 「アメリカ来るの初めて?」
  • 私: 「はい」
  • 審査官: 「誰かと来たの?」
  • 私: 「いえ、自分だけです」
  • 審査官: 「こっちに知り合いいるの?」
  • 私: 「いないです」
  • 審査官: 「…マジで?w」

…片言の英語しか喋れないのに1人で渡米という状況は笑われて然りだなと思いつつなんとか審査を通過。公共機関を乗り継いで無事ホテルにチェックイン、なんだかんだ行って外国来てしまえばなんとかなるものだなと思いながらバドワイザーを呑んでその日は過ごしていました。

1日目

Keynote Day1

初日のKeynoteは朝8時開始、前の方に座りたかったので7時くらいに会場につくと、既に長蛇の列ができていてカンファレンスの規模の大きさを実感しました。

盛大な拍手で迎えられたSatya Nadella氏は、これからのソフトウェアインダストリーとそれを牽引していくMicrosoftについて説明していました。特にこれからのソフトウェアインダストリーのキーワードとして「Multi-device」、「Artifical Intelligence」そして「Serverless」の3つを強調していました。

個人的にはScott Hanselman氏によるAzure Cloud Shellの説明が印象に残りました。
Azure Portal上に新しく追加されたこのAzure Cloud Shellを起動すると、ブラウザの画面上に表示されたbashシェルからVMの一覧表示やVMの作成などが行えるようです。

また同じくこのタイミングで発表のあったiPhone向けAzure Management Mobile App上から上記Azure Cloud Shellを起動するデモが行われ会場から拍手が起きていました。

Bot capabilities, patterns and principles

Bot Frameworkの開発者による、チャットボットを作る際のパターン/アンチパターンについての発表でした。

チャットボットのみでは要件を満たせない場合にWebページに誘導するときのプラクティスや、チャットボットから人(オペレータ)へhandoffすべきタイミングなどについて説明がありました。この発表の内容はBot FrameworkのWebページにまとまっているようです。

How to run massively scaling mobile games on Microsoft Azure

Next Games社のCTOによるAzureの利用例の発表でした。どちらかというとAzureというより「The Walking Dead」などのモバイル向けゲームアプリケーションを開発する際の苦労話が中心でした。

クライアントはUnityでC#、サーバもC#で実装されていて、ユーザによるチート対策のために一部プログラムソースを共有しているそうです。ただサーバは.NET、UnityはMONOでしかもOS毎にC#の挙動に差分があるためソートなどの処理を自前実装しているらしく、スライドに映し出されたC#のソースから実装者の苦しみがにじみ出ているようでした。

2日目

Keynote 2

主にWindows 10 Fall Creators Updateについての内容でした。

Micrsoft Garph上ではユーザ、デバイス(Windows、iPhone、Android、…)、オブジェクト(エクセルファイル等)、アクティビティ(エクセルファイルの編集行為等)が表現されており、開発者はAPIを通してこれにアクセスしてアプリケーションを作成できるそうです。これを利用すれば例えば、パソコン上で閲覧していたブログ記事をiPhoneで、読んでいた途中の部分から表示するようなアプリケーションをVisual Studioを使って作成できるそうです。

What’s new in TypeScript?

TypeScriptの開発者Anders Hejlsberg氏によるTypeScriptについての発表でした。

特に真新しい内容はありませんでしたが、Visual Studio Code上でエディターによる文法チェック等の支援を受けながらコーディングするデモは軽快で会場も盛り上がっていました。

シアトル

少し脱線してシアトルについて。

到着した初日は快晴でしたが、基本的に噂通り雨の多いところでした。ただ雨が降り出してもわりと短い時間で止んでしまうので、街を見渡してもあまり傘を持っている人は見かけませんでした。
日本と比べるととても多文化なところで、全身ユニクロの変な日本人が街をうろついていても特に気に留められることもなく過ごしやすく感じました。(日本帰国するのが嫌になるくらいには居心地よかった)

ただ、自分に見合った食事の方法は結局最後までわかりませんでした。外食する勇気もないので(そもそも日本でも怖いから一人で外食しない)スーパーでお惣菜を買ってしのいでいましたが、それでも量が多いのとそれに比例してコストも高いため毎日サラダと1$くらいのスナック菓子を食べていました。

電車とバスはORCAというSuicaやPASMOのようなカードを利用して乗車していました。印象的だったのが、駅にもバス停にもこのORCAを使ってどのように乗車するのか―先払いか後払いか、どのような装置にタッチすればよいかちゃんと説明が書いてあり、初めての人でも迷わずに利用できるよう配慮されていました。(日本のバスも見習って欲しい…)

3日目

Early detection of cancer: Developing NLP classifiers to analyze biomedical literature

癌診断のための血液検査ツール向けの、micro-RNAと遺伝子の間の関連具合を検知する自然言語処理に基づいた分類器の開発についての発表でした。

micro-RNAと遺伝子の研究は90年代からよく行われていて文献は大量に存在するので、目標はこれら文献の集合から任意のmicro-RNAと遺伝子のペアの関連具合を予測する分類器を作成すること。人手で十分な教師データを準備することが難しかったのでDistant Supervisionを利用したそうです。

特徴量にはn grams、品詞タグ付け、word2vecを検証し、これら3つの組み合わせ全てでロジスティック回帰を行いF値を比較して最も良い組み合わせのものを模索したそうです。結果としては結局n gramsのみの場合が最も精度が高く、文献中でのmicro-RNAと遺伝子の関係の表現がどれも似通っているからと考察しているそうです

個人的に自然言語処理を用いた業務を普段行っているので、この発表が一番興味深く聞くことができました。

Using the Windows Subsystem for Linux and the Windows Console for a next generation development experience

開発者によるWindows Subsystem for Linux(WSL)の最新機能に関する発表でした。
WindowsとWSLの間でなるべくシームレスに作業できるよう改善を重ねているらしく、bash側からVisual Studio Codeを実行したりだとか、LinuxのファイルシステムにWindowsのDドライブをマウント、Windowsのコマンドラインの出力をLinuxのコマンドにパイプなどのデモを行っていました。

ーーーーーーーーー

Microsoft Build 2017は世界中から開発者が集まる、日本で体験できるかわからないくらい大きなカンファレンスで、参加できて非常に良い経験になりました。

私は普段MacやUbuntuを利用していますが、カンファレンスに参加して興味が出て思わずWindows PCを購入してしまいました。これからWindows Subsystem for Linuxで遊ぶつもりです。

ただやはり英語に難があり積極的にコミュニケーションを取ることができなかったので、もっと英語を勉強してまた機会があれば参加したいと思っています。

追記

買ったWindowsで遊んでみました、WSLで起動したUbuntu上で立ち上げたNode.jsで「Hello, World!」。もー楽しいー

CATEGORY :