vscodeの利用に必須な”ワークスペース”の概念

背景

node.jpを触ってみようと思いました。そして折角なのでvscodeで開発しようと思いましたが、vscodeの事をあまり分かってなかったのでこの機会に勉強しました。なお私はバッチファイルなどしか書けないエンジニアで、モダン開発の知識は皆無です。このエントリは自分用のメモで特にみなさんに新しい知識を提供できるものではありません。

vscodeとは

MS製のソースコードエディタ。人気

Visual Studio Code – Code Editing. Redefined

従来型のテキストエディタとの違い

さて、私は旧来からのサクラエディタ使いである。

サクラエディタ

結論から言うと、秀丸やterapad、notepad++など、従来のテキストエディタを使い慣れていた人が最近のソースコードエディタを使う場合、考え方を変える必要がある。テキストエディタの延長線上にあり、テキストエディタよりもいろいろ出来るツール、と考えると上手く使えない。

環境設定の考え方:ワークスペースの概念

従来のテキストエディタの場合、例えばシンタックスハイライトや文字の折り返し設定などは、ファイルの拡張子単位で環境設定を行っていた。

しかしソースコードエディタではディレクトリ単位での環境設定となる。

具体的には違う拡張子のファイルでも同じワークスペースの設定であれば、同じ設定で動作させることが出来る。何がメリットか?例えばpython用のワークスペースとjavascript用のワークスペースでは設定を変えた方がよいときもあるし、ブログ用にテキストをがしがし書くワークスペースでは日本語の読みやすいフォントで表示したい、といったことを実現できる。

ワークスペースの概念とはつまりはプロジェクトの考え方である。1つのソフトウェアを開発するにあたって必要な定義ファイルやモジュールなどを1まとめにプロジェクトとして定義し、gitで変更管理などを行う。開発の世界では普通の考え方のようだが、シェルスクリプトしか書いていないインフラエンジニア上がりに取っては不慣れな概念であった。

つまりvscodeの環境設定の神髄は1にワークスペース、2にワークスペース、3、4、5もワークスペースである。

なお、ワークスペースには複数のフォルダを束ねることが出来る。それについては以下で説明していく。

vscodeの設定構造

以下のような構造となる。

vscodeは4つの設定定義レベルが存在する。

  1. vscode全体の設定(プログラム規定値)
  2. vscode全体の設定
  3. ワークスペース単位の設定
  4. フォルダ単位の設定

「vscode全体の設定(プログラム規定値)」と「vscode全体の設定」を便宜上違うものとして扱っているのは、vscode全体の設定(プログラム規定値)はプログラム内部に組み込まれており、カスタマイズしたvscode全体の設定だけが設定ファイルとして表現されるためであり、どちらも設定のスコープはvscode全体にかかる。

ご想像の通り、設定の優先度は「vscode全体」が一番弱く、「フォルダ単位」が一番強い。例えば、vscode全体で白ベースの色設定を行っていたとしても、ワークスペース単位で黒ベースの色設定を行っている場合、それが優先される。

それぞれの設定ファイルの場所は以下。

名称 パス ファイル名
vscode全体のユーザー設定(規定値) なし なし
vscode全体のユーザー設定 C:\Users\keisuke\AppData\Roaming\Code\User settings.json
ワークスペースのユーザー設定 任意の場所 [ファイル名].code-workspace内のsettings.json
フォルダ単位のユーザー設定 フォルダ.vscode settings.json

vscode全体のユーザー設定

ファイル -> ユーザー設定 -> 設定より、vscode全体のユーザー設定が可能である。具体的にはフォントサイズやエディタの配色テーマを設定できる。

仕組みとしては、規定値がプログラムに組み込まれており、設定を変更した内容がsettings.jsonに追記される。

C:\Users[プロファイル名]]\AppData\Roaming\Code\User\settings.json

“ワークスペース”の概念

ワークスペースにはフォルダを指定可能であり、複数のフォルダを指定する事も出来る。規定ではワークスペースは作成されないので、明示的に作成する必要がある。作成してもしなくてもいい、と考えるのは間違いで、vscodeを効率的に使うためには作成必須である(ここがテキストエディタ文化になれたユーザーがハマりやすい部分)。ワークスペースとするフォルダを指定したら、ワークスペースを保存する。すると、[ファイル名].code-workspace というワークスペース定義ファイルが生成される。内容は以下の通りある。

ここでは、ワークスペースファイルから見て自分自身のフォルダと、C:\script~という2つフォルダが1つのワークスペースに定義されている。

ワークスペース用のユーザー定義

ワークスペースを定義する事で、vscode全体のユーザー設定を上書きするワークスペース用のユーザー設定を定義できるようになる。例えば、vscode全体の配色テーマは白だが、ワークスペース用のユーザー設定で黒と定義した場合、そのワークスペースで作業する際は配色テーマが黒になる。

ワークスペース用のユーザー設定を実施した場合、ワークスペース用のユーザー定義ファイルである[ファイル名].code-workspace内のsettings.json内に設定が記載される。

※ 上記の赤枠部分

フォルダ用のユーザー定義

同じ考え方で、vscode全体のユーザー設定、ワークスペース用のユーザー設定を上書きする、フォルダ用のユーザー設定が可能である。ただしフォルダ用のユーザー設定はvscode全体やワークスペースと比べて限定的であり、配色テーマの変更などは出来ない。

フォルダ用のユーザー定義は、各フォルダの.vscode\settings.jsonに保存される。

ここまでのまとめ

さて、これでワークスペースの概念と、vscodeの設定構造が分かったが、具体的にこれらをどう使えばいいか。私の考えでは…

  • vscode全体設定は基本的に規定値
  • powershell用、javascript用、テキスト用など、用途に分けてワークスペース設定を行う
  • フォルダ単位の設定は利用しない

である。結局大事なのはpowershell用、javascript用、ブログ用テキスト用など、用途に分けてワークスペース設定を行う事である。例えば、javascript用ならWebにUPするので、文字コードはUTF-8、改行はLFの方が都合がよいが、powershellでActiveDirectoryから値を取り出して保存してExcelで開きたいなら、文字コードはSJIS、改行はCR+LFがよい。

フォルダ単位の設定を利用しない理由は、正直用途がよく分からないからだ。この後、勉強を進めていくことで利用シーンに気づくかもしれないが、今は利用しないでおく。

誰も知らないMicrosoft LauncherとOffice 365 EM+Sの関係

前書き

Office 365 アドベントカレンダー、12月12日です。実はアドベントカレンダー用にForms/Flow/GraphAPIのエントリを書いていたのですが話題がかぶってそうなので、Androidスマホ用Microsoft製のMicrosoft Launcherの話をします。誰得?

※ Forms/Flow/GraphAPIのエントリはこちら

そもそも”ランチャー”とは

簡単に言うと、Androidスマホの”外観”を表現しているソフトです。昔、WindowsXP時代に、explorer.exeを入れ替えることでWindowsをLinux風にしたりMac風にしたり、といったことがはやりましたが、ああいうことが出来ます。iPhoneの場合、ジェイルブレイクしない限りiPhone固定のあの外観となりますが、Androidの場合はランチャーを変更することで同じスマホでも全く別の外観に変更できます。

以下、Microsoft LauncherのGoogle Play のアプリの画面ショットです。

デフォルトのランチャーから変更するメリットは?

理由その1. メーカー純正のランチャー使いづらいから

昔のNECのPCのように(名指しごめん)、デスクトップにメーカー製の余計なソフトが表示されてしまうように、AndroidもメーカーによってはXperiaなんとかソフト、みたいに普段自分が使わないソフトが場所をとっちゃってる場合がある。これをランチャーを変更し、クリーンな状態から自分好みのデスクトップを作ることが出来ます。

以下、懐かしのNEC製WindowsXP(邪魔なアイコンを削除したい – 日経トレンディネットより)

以下は、富士通製スマホに搭載されている富士通純正のランチャー。アイコンが大きく使いやすいが、スマートでない印象を受ける(ホーム画面の設定をする | 富士通 arrows M02 | BBIQ接続・設定マニュアル)より。総じて、3rdパーティーの作るランチャーの方がクールで多機能、といった印象です。

理由その2. スマホメーカーを乗り換えても同じ外観で操作できる

例えば、Xperiaを使っていてXperiaのランチャーに慣れてしまった場合、Huaweiスマホに乗り換えるとHuawei製のランチャーになります。もちろんこれにXperiaのランチャーをインストールすることもできるのですが、Xperiaのランチャー = SONY製のソフトが裏でインストールされている前提なので、無理やりHuaweiにインストールしてもセットアップが面倒。

こういう理由で3rdパーティーのランチャーを利用したほうが利便性が高まるし、メーカーロックインも避けれてよいと思います。

Androidで有力なランチャーソフト

ランキングを見てみたところ、以下の4つあたりが有名なようです。右側の数字はダウンロード数。

私はNova Lanucherの有料ユーザーでしたが、Microsoft信者なのでMicrosoft Launcherの存在を知って 速攻乗り換えました(真の信者ならWindows Phone使え!という声は無視)

ともかく、Microsoft LauncherはAndroidランチャーソフトの中でそこそこの知名度のようです。他のランチャーが無料版と有料版で格差があるのに対して、Microsoft LauncherはMicrosoftの戦略製品であり、すべての機能が無料でそこそこ多機能なのがよいかもしれませんね。

Microsoft Launcherでできること

外観の変更系などランチャーとしての基本機能に加えて、Microsoft Launcherでは、ランチャー自体にOffice 365 のアカウントを登録し、連携することができます。具体的には…

その1. Exchange Onlineの予定表が表示される

連携したOffice 365アカウントの、Exchange Online メールボックスの予定表に登録している予定を、

  • 予定の開催時刻
  • 予定の件名

まで表示できるようです。なお、表示期間は当日~1週間となります。

その2. Windows 10 のタイムライン連携ができる

Windows 10に”タイムライン”という、起動したアプリケーションや開いたファイルが記録できる機能があります。この機能が、Androidスマートフォン上でも使用できるようです。よって、仕事用のWindows10でSharePoint上のExcelファイルを開くと、その履歴がAndroidにも同期され、Androidのタイムラインでクリックするだけで同じファイルを開くことができます。

EM+Sを用いたMicrosoft Launcherの制御方法

情シス視点で私用端末からのOffice 365へのアクセスを防ぎたい場合、アクセス元がMicrosoft Launcherである場合の制御を考えます。使うのはもちろんEM+Sライセンスで利用できるAAD条件付きアクセスです。

AAD条件付きアクセスルールをMicrosoft Launcherに合致させる

結論から言うと、Microsoft Launcherを制御するためには、Exchange Onlineサービスに対して条件付きアクセスを書ければよいです。理由はEM+Sの制御ルールとして、特定のアプリが触りに行くサービスのうち、一番厳しい条件付きアクセスルールが適用されるということです。Microsoft Launcherは現状、

  1. Exchange Onlineの予定表
  2. Windows 10のタイムライン

の2つを表示します。1.はExchange Onlineサービスなので、Exchange Onlineに対する制御をかければいいです。Win10のタイムラインはDelveか何かに保存されているのかな…と思うので、もしかしてDelveに対して制御をかけても効くかもしれないですね。

動作確認

EM+Sの試用版テナントを契約し、テスト用のユーザー”emsuser”を作成します。以下のように条件付きアクセスを構成します。

  • ユーザーとグループ:emsuser
  • クラウドアプリ:Exchange Online
  • 条件:デバイス プラットフォーム -> 全てのプラットフォーム
  • アクセス許可:アクセス権の付与 -> 多要素認証を要求する

PCからの確認

試しにPCのブラウザからログインして、多要素認証がかかることを確かめます。

Microsoft Launcherからの確認

この状態でMicrosoft Launcherからアカウントを登録します。

ID/Passwordを入力すると…。

多要素認証が動作します。

スマホに届いたSMSを登録すると、Microsoft Launcherへのアカウント登録が完了します。

Exchnage Onlineの予定も表示されました。

Azure AD のサインインログを確認すると、

  • アプリケーション:Microsoft Launcher
  • クライアントアプリ:Mobile Apps and Desktop clients

と表示があります。

ブラウザはChrome mobileのようです。

ということで、Exchange Onlineに対してしっかりと条件付きアクセスを設計している環境であれば、Microsoft Launcherに対しても同等のポリシーが適用される仕様となります。

余談

Microsoft LauncherでOffice 365 アカウントを登録すると、Androidシステムの”仕事用アカウント”に設定が保存されるようです。で、仕様かどうかわかりませんが、Microsoft Launcherではアカウントを登録することができるが削除することはできず。Androidシステムの”仕事用アカウント”設定から削除する必要があります。

また、Androidシステムの”仕事用アカウント”の仕様だと思いますが、Office 365上でパスワードを変更しても、再認証が求められません。Windows版のOneDriveのような感覚でしょうが、OSに何らかの認証キャッシュを持って初回設定後は何があっても再認証が不要となるようです。

EM+Sがない場合

注意:ここからマニアックな話に入ります。

EM+Sを買うカネはない!けどMicrosoft Launcherなんて知らなかった!私用端末で予定表が見れるのはまずい!禁止しよう!…と決めたとします。ここで勘違いしやすいのがExchange Onlineの設計でよくやる外部との予定表共有禁止と、Microsoft Launcherで予定表の閲覧を不可とすることは全く関連性がないということです。

外部との予定表共有を禁止するためのExchange Online で共有ポリシーについてはこちら。

Exchange Online で共有ポリシーを作成する | Microsoft Docs

用途としては、自分の仕事の予定を外部、例えば取引先や家族と共有したい、というものですが、日本企業では許可されたドメイン以外は共有禁止になっている所が多いと思います。この機能は、自分の予定を他人に共有するかどうかの制御ですが、Microsoft Launcherは、自分のID/Passwordで自分の予定表を見ているだけなので、無関係です。

ではどうやって制御するか?

ユーザーの利用できるプロトコルでの制御

結論から言うと制御できないようです。

以下、テストユーザーのプロトコルをできるだけdisableに。

この状態でも無事に予定表が表示できてしまいました。

よって別の方法を考えます。

Exchange Onilne クライアントアクセスルールの利用

素人にはお勧めできないNew-ClientAccessRuleを使います。結論から言うと、ブロックできました。

Exchange Online クライアントアクセスルールでは、Set-Casmailboxで設定できるものより詳細なプロトコルベースでアクセス制御が可能であり、以下の12通りのプロトコルが指定できます。

  • ExchangeActiveSync
  • ExchangeAdminCenter
  • ExchangeWebServices
  • IMAP4
  • OfflineAddressBook
  • OutlookAnywhere
  • OutlookWebApp
  • POP3
  • PowerShellWebServices
  • RemotePowerShell
  • REST
  • UniversalOutlook

これを怪しい順にブロックしていくと…

なんと、RESTを追加した時点で、予定表が見えなくなってしまいました。これは予想外。

ただ、OutlookクライアントがMAPIベースでなくRESTベースで作り変えられる、という話もあるので、今後は本格的にアクセスプロトコルがRESTに集約されていくのかもしれないですね。「Microsoft launcherのアクセスを防ぐためにはRESTとかいうのをブロックすればいい!」をやるといろいろと終わるの後注意ください。

なお、このアクセス制御はExchange Onlineに対するアクセス制御となるので、Microsoft Launcherに対するOffice 365アカウント登録・ログイン自体はうまくいきます。

図解するとこんな感じです。

ということで誰が望んでいるかわかりませんが、Microsoft Launcherの仕様が分かったのですっきりとしたクリスマスを迎えられそうです!!!!!ほんとこれ誰得だよ…。

※ 真面目にAndoridを管理する場合は、本日公式から出た以下の記事をご確認ください。

How does Microsoft Intune transform Android enterprise management? Let me count the ways – Microsoft Tech Community – 299289

オーナーなしTeamsをメンバー自身に救出させる~Forms/Flow/GraphAPIを利用し、無駄な管理者運用を削減する~

このエントリでは、オーナーなしTeamsのメンバーがFormsから問い合わせをすると、条件を満たした場合、自動的に問い合わせたメンバーをオーナーに昇格させる仕組みの作成方法を記載します。

が、本当に伝えたいのは

Forms/Flow/GraphAPIを組み合わせることで管理者権限の一部だけをユーザーに切り出し、既存の管理者作業が自動化でき、管理者もユーザーもハッピーになれる!

ということです。今回のフロー以外にも…

  • メールが着信しているか確認するための、メールログの検索
  • SharePointライブラリの容量拡張
  • メーリングリストへの社内メンバー追加

といった、判断が単純で例外が少ない作業は、容易に置き換え可能と思われます。

今回作成するフロー

こちら。

Forms/Flow/GraphAPIを組み合わせることで、ユーザーからのインプットを元に判定を行い、自動で処理が行われるようにできます。

作成したフローのソース

githubに置いておきました。

teraco/rescue-noowner-teams

このエントリ、画面ショット中心で画面の中の文字列は画像のままなので詳細パラメーターコピペしたい!という場合は、githubのソースをご確認ください。めんどくさがりやですいません。なおこのエントリの画像もgithubのソースもテストテナントのテナントIDやアプリケーションIDが入っていますが、自分のものに置き換えて利用してください。

※ テストに使用したアプリケーションは既に無効化されています。

Forms/Flow全体像

フロー全体像です。次のスライドからセクション毎に説明します。

1.Formsの作成

チーム名だけを入力可能なFormsを作成します。シンプルですね。

2. Formsの値読み取り

ひとまず上記Flowで入力された値と裏で送信されているユーザーIDなどを読み取ります。あと、後半で使う変数もここで定義しています。

Apply to eachは勝手に作られますので、ひとまず上から順番にFlowを作っていきましょう。

3-1. ユーザー所属Teams読取り

Formsでユーザーが申請したチームにユーザーが実際に所属していることを確認します。そのために、ユーザーが所属しているTeamsの一覧を取得します。

List joinedTeamsは先日GAされたTeams関係のAPIです。で、ポイントですが、List joinedTeamsのユーザー指定がユーザーオブジェクトIDしか受け付けずUPNが使えない事です(これで2日ほどハマりました)。

よって前段でGet a userしてユーザーのユーザーオブジェクトIDを特定してからjoinedTeams実行してます。

3-2. 処理対象Teams特定

ユーザー所属Teamsと、Formsに入力されたTeamsの名前が一致していることを確認します。ここは普通のif文。

4-1. グループオーナー有無確認

ユーザーが申請したTeamsにユーザーが所属していることは確認できましたので、実際にそのグループのオーナーが0人であることを確認します。オーナーが存在する場合、管理されているTeamsであり、ユーザーが勝手にオーナーに昇格しようとしている、ということですので…。

4-2. グループオーナー昇格

条件を満たしたので、申請者をグループオーナーに昇格させます。

動かしてみましょう

所有者が0人になったチームが存在します。

ユーザーがFormsから申請します。

申請者が所有者になります。

出来上がった業務フロー

before

after

ということで情シスの介入が不要となりました。

まとめ

こまごまとしたユーザー問い合わせに対して、ほぼ判断なく事務的に実行している情シス業務をForms/Flow/GraphAPIに肩代わりさせて楽になりましょう!

おまけ

Flow vs LogicApps

上記の処理はFlowではなくLogicAppsでも実装できます。ではどちらがよいか?

  • マイクロソフト社の推奨
    • Flowはユーザー自身がユーザーの仕事を便利にするための個人的なツール、LogicAppsは情シスが組織全体に使わせるフローを作るための物
  • 現実
    • 機能差
      • Flowはスマホ用のボタンをトリガーとできたりするが、それ以外ではLogicAppsの方が多機能
      • 逆に言うとFlowで間に合う機能で実現できるならFlowでよい
    • 課金体系
      • FlowライセンスはOffice 365に含まれており、一定回数以下の実行なら無料
      • LogicAppsはステップあたりの課金であり、1回の実行から課金されます。

よって手軽に使えて機能的にもLogicAppsに比べて遜色のないFlowがよく使われていた印象です。

しかしながら、2019年2月1日からHTTPコネクタを利用するためには、Office 365 のFlowライセンスではなく、Flowの有料ライセンスが必要となり、FlowとLogicAppsの機能差が広がります。

※ このエントリのフローもLogicAppsかFlowの有料ライセンスがないと実現できなくなりました。

Updates to Microsoft Flow and PowerApps for Office 365 – Microsoft Tech Community – 289589

今後もこのような流れが続きFlowとLogicAppsの機能差が拡大するならば、組織全体で動作を保証しなければいけないものはLogicAppsで作るのがよいかもしれません。

Flowをもっとうまく書く

先日、太田さんがツイートしていたigniteのFlowセッション動画がお役立ちです。

Microsoft Flow and PowerApps: Advanced workflow and business process management – BRK2230 – YouTube

13:58くらいから解説があるのですが、今回のフローのようにifのネストが発生する場合にそれを避ける方法など、実用的なテクニックが記載されています。

前述の通り、FlowではなくLogicAppsを使う場合、課金体系がステップ毎になるので、少ないステップでLogicAppsを実装することがお金に直結します。ので頭を使ってパズルを解くようにLogicAppsを作る必要があります。非常に楽しそうですね!

その他各種テクニック(メモ)

GraphAPIアプリケーション登録方法

こちらに全てが書かれています。

Microsoft Flow の HTTP アクションにある Active Directory OAuth 認証で Microsoft Graph API を利用する | idea.toString();

2018年12月現在、「アプリ登録」と「アプリ登録(プレビュー)」があり、登録手順が若干違いますが…。アプリ登録の概念を理解すれば登録できるはず…です。

JSONスキーマの確認

Flowで実際に流して確認してもいいが、GraphAPIでAPIをたたき、戻ってくる値を確認するのが一番容易。慣れている人はPostmanやPowerShellを使用可能。

JSONスキーマがエラーになる

上記の方法で自動認識させると厳密な型判定を行うので、実際に流してみてNull値があった時にエラーとなる。型指定を解除するか、使用しない項目なら単純削除すればOK。

GraphAPI経由でのOffice 365 レポートをFlowで取得する

第23回 Office 365 勉強会で発表した内容の続きです。発表した内容はこちら。

このブログエントリではFlowによる情報収集を説明します。

  • GraphAPI経由でのレポートが一番有用だが、レポート取得するのにひと手間かかる
  • Flowで取得する事で、日次データ取得が簡易になる

作業1. アプリケーション登録

Azure AD Portalからアプリケーションを登録し、GraphAPI経由でデータを取る準備をします。手順は割愛…。リファレンスの通り、レポートを取得する際はReports.Read.All権限でOKです。

作業2. Flowでの取得

本題。レポート取得のためのFlowを作成します。

1. GraphAPIにアクセス

URI欄に取得対象のGraphAPIのURLを入力します。FlowでHTTPリクエストアクションを追加し、Active Directory Oauthを選択。作業1. で登録したアプリケーションの情報を登録します。

2. 戻り値の解析
  1. で指定したAPIの戻り値がJSON形式となるので解析します。スキーマはこちら。

{
“type”: “object”,
“properties”: {
“Transfer-Encoding”: {
“type”: “string”
},
“request-id”: {
“type”: “string”
},
“client-request-id”: {
“type”: “string”
},
“x-ms-ags-diagnostic”: {
“type”: “string”
},
“Duratio”: {
“type”: “string”
},
“Strict-Transport-Security”: {
“type”: “string”
},
“Cache-Control”: {
“type”: “string”
},
“Date”: {
“type”: “string”
},
“Location”: {
“type”: “string”
},
“Content-Type”: {
“type”: “string”
},
“Content-Length”: {
“type”: “string”
}
}
}

自分で調べるときは、GraphAPIのリファレンスを見る、GraphExplorerから動かしてみる(一番かんたん、おすすめ)、ひとまずFlowでGraphAPIをたたいて戻り値を全部確認するなどの方法があります。

3. 実データにアクセス

戻り値内にあるLocationに実データへのアクセスURLが記載されているので、HTTPアクセスを行います。

4. Flow実行条件の修正

“OAuth認証してトークン取得”のHTTPステータスコードは302だが、Flowの仕様としてエラー扱いとなるので、エラーでも次のステップを実行するよう設定を変更します。

GraphAPIの仕様上、データへのアクセスを試み、認証が成功した場合、直接データはダウンロードできず、HTTPステータスコード302とともに“データがダウンロード可能な一時的なURL”が生成される。PowerShellやPostman、ブラウザは302に対応して自動的にリダイレクトされるが、Flowはしていないため、今回のような手順を作成している。

5. 動作確認

Flowで設定した定期的なスケジュールでユーザーデータのダウンロードが可能となりました。

参考にしたページ

Monthly Office 365 Update (2018年9月分,10月分,11月分)

Office 365のアップデートを定期的にチェックして気になったものをピックアップするシリーズ。ブログタイトルはMonthlyですが例によって3か月分。8月からやってないので微妙なんですけど、継続は力なので。

チェックソース

メッセージセンター

MC147699 New features: Outlook for Windows user experience updates and Coming Soon preview pane

Outlook for Windowsでリリース予定の新機能をユーザーが試用できる機能。私の環境では先日有効になってました。

MC147874 New feature: Insight Services in Excel (Win32) / MC149159 New feature: Ideas in Excel and PowerPoint Online

ってのが有効になるようです。設定を行う事でOFFにできる…ようですが、記事を見た感じだと、ONのままでも問題ないような気がしますね。インターネットに情報を取りに行ってしまうので、エンタープライズ要件では嫌がられる可能性がありますが。

MC149276 Outlook for Windows now blocks external content in S/MIME messages by default

S/MIME署名付きメッセージに含まれる外部コンテンツをブロックするようにする。例えば、悪意のある画像やコンテンツへのリンクが張られた場合でも表示してしまっていたわけで、本来こういう動作になるべきで、バグ修正との位置づけです。業務上困る場合は、レジストリ設定で回避できる様子。S/MIME署名付きメッセージとかそんなに見かけないですけどね…。

MC149826 We’re updating the look of Office 365 desktop apps

ProPlusのリボンアイコンが変わるやつ。私は新しいデザインが好きです。

MC150492 Reminder: We’re extending coverage of enhanced anti-spoofing protection to all Exchange Online organizations

ATPの一部の機能がEOPしか使えない顧客にも降りてくる話。以前このブログでも話題に上げました。

ATP AntiSpoofingについて

MC152260 Updated feature: portal.office.com/myapps migrating to the Office 365 gallery

個人用アプリが廃止され、Office 365 Galleryが正になる、という話。SIer的には、AADP案件の動作確認で個人用アプリにアクセス出来る事、というテストケースがあるので、それがこれからはOffice 365 Galleryになるくらいでしょうか。

MC152261 Reminder: Support for TLS 1.0 and 1.1 in Office 365

TLS 1.0,1.1のサポート廃止するよ、というリマインダー。当初はTLS 1.0,1.1をブロックするという話でしたが、MSが日和ってノンサポだけどブロックしないという仕様になったようです。

MC152529 Improving the way we show user’s private OneDrive content in Microsoft Search in SharePoint

SPO使った検索で自分のOneDriveのコンテンツとSharePointの共有コンテンツが分かりやすく表示するよ、という話。

MC152628 Updated: Your users will now receive emails with product training and tips for services in their subscription

Office 365からユーザーに、Office 365 の機能の積極的な利用を促すメールが勝手に配信される様子。MSが製品の利用率を上げたいための施策ですが、管理者側で使わせていない機能の紹介をされるとたまったものではないので、SIer的にはOFFを推奨。

なお、みんなが文句言いまくった結果、リリースが凍結されたらしいです。

MC152814 Microsoft Stream intelligence capabilities available in additional Office 365 plans

Streamの自動字幕機能が、下位のライセンスでも使えるようになる、という話。弊社がE5で普通で使えてたので、他のライセンスで使えないのは知りませんでした。実際に使った結果はこちら。

Teams会議を録画したら自動的にMicrosoft StreamにUPされて、会議で発言した人物を自動検出してくれる機能について

ちょっと期待外れです。

MC152817 New feature: Compliance Control Information Added to Microsoft Secure Score

Microsoft セキュリティスコアにGDPRとかNISTの概念が追加されました。このセキュリティスコアアクションをするとGDPRとかNIST的にナイスですよ~と表示してくれます。よって”全社でGDPR対応するんだ!”って時に使えますね。まぁセキュリティスコアのアクションは可能な限り実行すべきですが。

Enhancing Microsoft Secure Score with Compliance and Service Health Information – Microsoft Tech Community – 280316

MC152952 New feature: New authoring experience for custom sensitive types

全国1,000万人のDLPファンが待ち望んだ、Office 365 へのDLPカスタム定義の追加がサポートされました。今までもPowerShell経由で追加はできたのですが、サポートに聞いてもできるか分からないとか言われるし、自分で追加しても動いているかどうかわからん、ということでかなり怪しい機能でした。今回、GUIからの定義追加がサポートされたから、少しはマシになったのかな。今、一番検証したい機能(だが、顧客ニーズがない)

MC164812 We’re updating presence in Microsoft Teams and Skype for Business

こんなアナウンスあるけど、SfBOとTeamsのプレゼンス、全然リンクしませんわ…。

MC165013 New feature: Scoped Directory Search in Microsoft Teams

Exchange Online のアドレス帳ポリシーに従って、Teamsでコンテンツを探す際のスコープがカスタマイズされる、ということ。正直、ABPをちゃんと設計している会社さんってそこまでいないし、仮に設計していなくてこの機能を知った所でやってみようとう会社は少ないぽいので、現実的に恩恵を受けられる組織は少ないんじゃないかな、と思います。運用大変。

MC165218 Outlook mobile simplifies its sync technology

Outlook for iOS/Androidを使用した時の、Office 365 Exchange Onlineとの同期アーキテクチャが変更になり、より早く、より帯域を食わない形になるそうです。バックエンドの変更なのでわざわざアナウンスするほどでも…と思ったけど、アナウンスするということは何かあるかもしれぬと思い、メモ的に記録。

MC165255 Updated feature: Users can now customize their private discussions in Teams with tabs

プライベートチャット(おそらく、普通のTeamsのチャット)を、チームのタブとして追加できるようになったよ、とのこと。この機能、誰得?とのことですが…。

現在のTeamsの改善要望TOPは”チームの中に、プライベートチャネルを作成できるようにしてくれ”というやつです。具体的には、部のチームを作ったとして、そこの中にマネージャーしか閲覧できないチャネルが欲しい。しかし、現在のTeamsには実装されていないので、別のチームを作成してマネージャーだけそこに召集する、としなければいけません。よってマネージャーは所属チームがめちゃくちゃ増える。

要望TOPなのでとっとと実装すればいいのですが、私の想像ですが、Teamsのアーキテクチャ的に”チームの中に入れ子の権限を実装する”というのが難しいんじゃないでしょうか。仮に可能ならば、すぐに実装していてもよさそうですし。ということで、これがすぐに実装できないので、

  • マネージャー同士でチャットを開始するの
  • そのチャットを、チームのタブに追加する
  • 結果として1つのチーム内でマネージャーだけしか見ることのできない会話ができる

という強引なソリューションな気がします。

Office 365 ATPの適用方法が変更になるかも

こんにちわ。個人的にATPライセンスを購入している変わり者です。最近、ATPのライセンス適用状態に変化があったので分かっている事を書きます。簡単に言うとOffice 365 ATPのライセンスがユーザーに対して明示的に割り当て可能になりそうです。

今まで

  • ATPのライセンスを保有していれば”紳士協定”で利用できた。
  • そもそも、ライセンス割り当て画面にATPが存在せず、物理的に割り当て不能だった。
  • “紳士協定”を守るために、Exchange Online ATPの設定画面より、ATP除外グループを指定して、適切なユーザーがATPを利用できるようにしていた。

現在確認できている事

  • ライセンス付与画面に、「Office 365 ATP」というカテゴリが増えている
  • ユーザーへの割り当て画面にも表示され、ライセンスが割り当てられてない状態である
  • 動作確認を行ったところ、どうやらライセンスを割り当ててなくても、ATPは動いている様子である

これからの予想

  • E3やE5ライセンスと同じく、ユーザーにライセンスを適用する事でATPが利用可能となる
  • ライセンスを付与していない場合、ATPが動作しない

疑問

  • 共有メールボックスなど、無料ライセンスで作成できるリソースに対するATPの割り当て方
  • SharePointなど、複数ユーザーが共有するリソースに対するATPライセンスの考え方はどうなる?
      - 相変わらず紳士協定?

まとめ

ATPは当初、Exchange Online ATPとしてリリースされ、受信メールに対する振る舞い検知として導入されてきました。この時点ではユーザーオブジェクトにライセンスを付与する、という行為は不要であり、ATP管理画面より適用ユーザーを選択する仕様でした。しかしながら、ATPライセンスを持たなくてもATPを使用できてしまう状態であり、よく言えば便利、悪く言えば意図せずライセンス違反を誘発する仕様でした。(E5系の機能もこういうの多いです)

この状態は2,3年?変わらなかったですが、Office 365 ATPと名前が変更され、SharePoint OnlineやTeamsにもATPの範囲が広まったこともあり、適切にライセンスを管理する方針に変更される流れも自然かな、と思います。

現状はMSからアナウンスがない事もあり猶予期間なのか、ライセンスを付与せずともATPが動作する状況です。自分のテナントで、ユーザーにATPライセンスを付与せずとも”Exchange Online ATP 安全なURL機能”が動作する事を確認しました。

ということで今のところ何もしなくても大丈夫そうですが、今後はMSからのアナウンスに注目する必要がありそうです。

画像など

ライセンス画面で「割り当ててください」と表示される。

ユーザー画面を見るとATPが割り当て可能になっており、割り当てられていない状態である。

実際にはATPのsafelinkが動作する。

Global Office 365 Developer Bootcamp 2018 – Japanに行ってきました。

Global Office 365 Developer Bootcamp 2018 – Japan – connpass

です。twitterのまとめはこちら↓

Global Office 365 Developer Bootcamp 2018 – Tokyo, Japan #Office365Dev まとめ – Togetter

LTの資料はこちら(見つかった分だけ)↓

ハンズオンの資料はGlobal Office 365 Developer Bootcamp 2018 – Japan – connpassのリンクからたどれます。

まずは前準備含めたいろいろな調整を行って頂いた運営のみなさま、膨大な資料を分かりやすく説明頂いた登壇者の皆様、みんな面白かったLTの皆様、そして参加者のみなさんありがとうございました。あと会場を無料で貸し出して頂いた日本MSさんと、とんかつプレゼントしてくれた米MSさん!

最高かよ…(もぐもぐ)

私のLTちょい補足

GraphAPIのスロットリング(20181027 office365 developersday)についてしゃべりました。資料以上の事は話してないので詳しくは資料参照なのですが、中にURLをいろいろ埋め込んだのにslideshareじゃリンクに飛べないという事に気づいたので、ここに記載します。

余談ですが、LTが終わった後に同じようにスロットリングに引っかかった経験のある方に声をかけていただき、盛り上がりましたw やっぱりみんな苦労してるんですね…。これについては本当に改善を望みます…。

4つのセッションのイメージと私が選んだセッション

今回は4つのテーマに分かれてのハンズオンでした。つまり4つのうち1つを選ばなければいけません。会場に行くまでの私の心境。

  • テーマ: SharePoint Framework
    • 怖そう…
  • テーマ: Microsoft Graph
    • これやろ!
  • テーマ: Office アドイン
    • 不要ぽい
  • テーマ: Microsoft Teams
    • 一応興味あり

SharePointは、周りに猛者がたくさんいそうなイメージがあるのでちょっと及び腰になっちゃいます。Graphはいろいろと応用がきくのでやってみたい!Office アドオンはまぁ不要ぽいし、Teamsって聞くとひとまず「おっ!」ってなりますよね。

しかしながら、登壇者の皆様のショートセッションを聞いた後の私の心境↓

  • テーマ: SharePoint Framework
    • 凄そう…!
  • テーマ: Microsoft Graph
    • ちょっとローレベル?
  • テーマ: Office アドイン
    • 面白そう!
  • テーマ: Microsoft Teams
    • Ci/CDかぁ~。

SharePointはもう内容からして凄そうな感じがしたので、もう少しSharePointと仲良くなってから取り組みたいかな…。Graphは意外と知ってることが多そう?少なくともGraph Explorerとアプリケーション権限つける部分は知ってるしな~。知らない所もありそうだから聞きたいんだけど。Office アドインは、ダルいマクロの話かと思ってたらWebの仕組みを使って開発できるってことで俄然興味沸いたのと。管理者視点でどういう事が出来るのか、技術的な所を抑えたかったです。Teamsは内容的に面白そうだけど、実際に自分がTeams開発担当になってサービス改善を続けていくことは今の所なさそうかな(ちょっとTeamsアプリ作りたい、とかそのレベルの興味だった)と思いました。

てことで、Office アドインのセッションに参加しました。

Office アドインのセッションについて

めちゃくちゃ良かったです!恥ずかしながら私、Office アドインについては全く知識がなかったのですが、講師のきぬあささんのお話と資料の作りがすごく良くて、「なぁ~るほど!」と唸りながらハンズオンしてました。また、資料の作りがすごく良くて(2回目)ある程度自分で分かってきたらセルフハンズオンでどんどん進めていけます。実際、当日、説明されなかった章もありましたが、私は自分で手順を進めてその部分を進めることが出来ました。

Office アドインのセッションに出ようと思って出れなかった皆さん、本当に資料の作りがすごく良いので(3回目)後からでもよいのでぜひやってみてください。

Office アドインの将来?を考えてみる

今回初めてOffice アドインという存在を知り、仕組みもある程度わかりました。SIer的には、これが今後メジャーになっていくのか?注力したほうがいいのか?とかを考えてしまうのですが…。Office 2013の時は基本的な事しかできず、Office 2016になっていろいろできるようになった、という事もあり、(まだ古いOfficeが多い現状では)いきなり覇権を取る、というのは難しそうです。一方、Office Onlineでも同じように使えるというのはvbマクロにはないメリットだと思います。

最低限、エンタープライズ環境がOffice ProPlusに統一され、基本的にみんな最新のOfficeです、という時代になってからが勝負じゃないでしょうか。

一方、昔ながらのvbaを10年以上も使い続けている現場も知っているので、そういう現場は粘ってこういうのを一生使うかも。昔は、超いけてるvbマクロを無料でホームページで公開している人も多くそれが業務利用されていたりするけど、今は無料公開文化が減って、ビジネスで使えるソフトウェアは何らか収益化を目指すから、そこは昔の無料マクロが強かったり。

きぬあささんがおっしゃっていた通り、今は本屋にExcelマクロ本が並び技術者もたくさんいますが、将来的にマクロ技術者が少なくなり、Officeバージョンも統一され、Webが重視され…といったいろんなファクターが重なりあい、

昔ながらのExcelマクロを使うメリット < Office アドオンを使うメリット

となれば、徐々にOffice アドオンがメジャーになる…かな?あ、けどマクロだけじゃなくRPAとかも競合になるんだよなぁ。

まとめ

凄く価値のあるイベントだったので来年も出たいと思います!

ATP AntiSpoofingについて

E5なくても使えるようになったやつについてです。

Set up Office 365 ATP anti-phishing policies | Microsoft Docs

ATP Anti Spoofingとは

新GUI(セキュリティ&コンプライアンスセンター)で新たに設定可能となったATP フィッシング対策機能となります。

動作ポイント

今までのスパムフィルターの位置で動作します。名前は”ATP”とついていますが、動作ベースで理解するならEOPの一部として理解したほうがいいかもしれません。

設定検討項目

  • 偽装対策(Anti-phishing protection)
  • なりすまし対策(Anti-spoofing protection)
  • フィッシング対策(Anti-phishing protection)

の3つを設定します。設定箇所は3つですが、英語ページだと、Anti-phishing protectionとAnti-spoofing protectionの2種類と定義されています。

https://docs.microsoft.com/en-us/office365/securitycompliance/anti-spoofing-protection
https://docs.microsoft.com/en-us/office365/securitycompliance/anti-phishing-protection

偽装対策(Anti-phishing protection)設定項目

機能 説明 入力可能な値
保護対象のユーザー 攻撃者による偽装から保護する内部と外部のユーザーを最大で 60 人追加します。成り済まされる可能性の高いユーザー、例えばシステム管理者や役員を追加することをお勧めします。 内部ユーザー(最大60名)
保護対象のドメイン 攻撃者による偽装から保護する外部のドメインを追加します。例えば、よくメールのやり取りをする関連会社など。 外部ドメイン
保護対象のユーザー 攻撃者による偽装から保護する内部と外部のユーザーを最大で 60 人追加します。成り済まされる可能性の高いユーザー、例えばシステム管理者や役員を追加することをお勧めします。 内部ユーザー(最大60名)
保護対象のドメイン 攻撃者による偽装から保護する外部のドメインを追加します。例えば、よくメールのやり取りをする関連会社など。 外部ドメイン
処理 偽装ユーザー、偽装ドメインが発見された際のアクションを、それぞれで指定できます メッセージを他のメールアドレスにリダイレクトする/メッセージを受信者の迷惑メールフォルダーに移動する/メッセージを検疫する/メッセージの配信と[BCC]行への他のアドレスの追加を行う/配信される前にメッセージを削除する/処理を何も適用しない
偽装ユーザーに関するヒントを表示 偽装ユーザーと判断した場合にヒントを表示します。 有効/無効
偽装ドメインに関するヒントを表示 偽装ドメインと判断した場合にヒントを表示します。 有効/無効
通常とは異なる文字に関するヒントを表示 保護対象かどうかにかかわらず、例えばaDmIn@c0ntos0.comというユーザーからメールが送信された際に、ヒントを表示します。 有効/無効
メールボックス インテリジェンス ユーザー毎にメール送受信状況をチェックし、ユーザーがよくやり取りするユーザーを保護ユーザーと定義します。 有効/無効
信頼できる送信者とドメイン ここで指定したユーザー、ドメインには本ポリシーを適用しません 内部ユーザーまたは外部ドメイン

なりすまし対策(Anti-spoofing protection)設定項目

機能 説明 入力可能な値
なりすましフィルターの設定 なりすまし対策による保護の有効化の選択をします オン/オフ
処理 なりすましを検知した際の処理を選択します メッセージを受信者の迷惑メールフォルダーに異動する/メッセージを検疫する

フィッシング対策(Anti-phishing protection)設定項目

機能 説明 入力可能な値
高度なフィッシングのしきい値 フィッシング攻撃の可能性があるメッセージを Office 365 がどの程度積極的に処理するかを制御します。 1-標準/2-積極的/3-より積極的/4-もっとも積極的

利用方針

いろいろいじって楽しむ分には問題ないですが、世の中的な実績が少ないためエンタープライズ向けの適用は慎重に行うのが良いと思います。ポリシーを限定したユーザーに適用する事が出来るので、まずはそこから試すのがいいでしょう。

余談

呼び名 セキュリティリスク 定義
スパムメール なし ユーザーが受信登録していないにもかかわらず、送信されてくるメール。ランダムなエイリアス + ドメイン名を宛先に送られる、あるいは名簿業者などからメールアドレスが漏れ、勝手に送られてくるもの。
バルクメール なし ユーザーが受信登録行為を行い、結果として送信されてくるメールのうち、”迷惑”と感じるメールの事。どこまでが”有用”であり、”どこからが”迷惑”であるかはユーザーの主観によるが、Exchange Onlineではバルクメールの閾値を1~9の9段階で定義し、閾値以上のメールを”スパム”と扱うことが出来る
迷惑メール なし スパムメール、バルクメールの総称。迷惑メールはマルウェア、フィッシングメールと違い、ユーザーを騙して金銭を奪うような意図はない
マルウェア あり 悪意のある添付ファイルやHTML形式の埋め込みが行われ、セキュリティの甘いPCで開くことによって、PCに悪影響を与えるもの。主にバックドアやキーロガーなどを仕掛け、最終的にはクレデンシャルの取得、金銭・データの取得につなげようとする意図のメール
フィッシング あり 悪意のある添付ファイルの代わりに悪意のあるリンクが文中に存在し、リンクにアクセスする事でマルウェアと同じような結果を得ようとする意図のメール。
スプーフィング あり 送信者アドレスと送信した人物が本当に一致しているのか、確認できないメール。システム的な事象であり、悪意のあり,なしは関係ない。ほとんどが悪意があり送信者を偽っているものであるが、社内システムからExchange Onlineに送信され、SPFが登録されていないものなどが”スプーフィング”扱いとなり、結果としてフィッシングスコアが上がり、マルウェアメールと判定されてしまう場合がある。

分かりやすくセキュリティリスクあり・なしで語りましたが、必ずしも”なし”なわけではありませんので注意。

Teams会議を録画したら自動的にMicrosoft StreamにUPされて、会議で発言した人物を自動検出してくれる機能について

まとめ

  • “会議で発言した人物を自動検出してくれる機能”はMicrosoft Streamに実装された映像検知AIの機能であり、Teamsで録画したかどうかは関係ない
  • Teamsで会議をしたとしても、映像内に人物が十分に拡大できていないとMicrosoft Streamで検知できない。

詳しく

表題のようなシナリオでIgniteで発表があり、実際の製品でも既に使用できるようになっています。

で、これがうまく機能するなら、自分が出席しない会議の録画を後から見直して、キーマンがしゃべった所だけ重点的に聞く、という事が出来るのでよいと思いました。あと、複数人の会話が含まれる議事録を自動で文字起こしで作りたい(別ブログ)でも調べましたが、現状の音声認識ソフトだと複数人が参加する議事録を自動で文字起こしするのは難しいので、これも会議の録画を見ながらしゃべった人を特定する事で、議事録を楽に、正確に書き起こすことが出来ればいいなと思いました。

やってみた

試しに、5,6人の会議で全員Teams会議に参加し、会議を録音してみました。結果、以下が分かりました。Teamsの機能とStreamの機能で分けて書きます。

Teamsの録画機能

  • 録画をONにした時の動作
    • Teamsアプリの内部で映し出されている映像と入力されている音声を記録する
  • 誰かが資料を共有する前
    • 参加者のアイコンか、参加者が映像をONにしている場合、PCのカメラデバイスでとらえた映像が表示される
    • 参加者が多数の場合、発言した = PCの音声デバイスに入力があった参加者のアイコン(あるいは映像)がフォーカスされる
      • これはSkype時代から存在した機能
  • 誰かが資料を共有した後
    • 資料が前面に表示され、参加者のアイコン(あるいは映像)は録画領域の外にはじき出される

Streamの映像検知AIの機能

  • 映像の中の”顔”ぽいものを検知し、口の動きが”発言”していれば、発言しているとみなす
  • “顔”が小さすぎる場合、検知しない
  • 資料が前面に表示され、参加者のアイコン(あるいは映像)は録画領域の外にはじき出される場合、検知しない

検証結果

社内の会議と、youtubeの映像で確認しました。社内の会議は冒頭のtwitterで張り付けた通りですが、Excelで資料共有した瞬間に参加者のアイコンが録画画面外に移動してしまったので人物検知ができなくなってしまいました。

youtubeの映像はこちらを利用させていただきました。

Password-less Auth using Azure AD | Best of Microsoft Ignite 2018

例えば1:21の時点で女性が発言をしていますが、カメラワークが切りかわった1:28では人物を検知しなくなっています。

f:id:teraco:20181006145915j:plainf:id:teraco:20181006145918j:plain

結論

  • PCの画面共有をすると、Teamsの画面がPCの画面(ExcelやPPTなど)に切り替わるので、結果的に人物検知しなくなる

ということでダメじゃね?ということになりました。普通、Teams会議する時は資料共有しますしね。もしこれを解決するなら、資料共有はSkype for Business、会議音声録画だけTeamsでやればうまくいきます(死

Ignite2018参加レポ

Ignite2018に行ってきました。技術的な発表は頭がオーバーフローしてまとめきれないので…ひとまず旅行記だけ書いていきます(‘ω’)

会場までの所要時間

行き

  • 家→成田まで:2時間 + 待ち2時間 = 4時間
  • 成田→ダラス→オーランド:10時間 + Transit待ち3時間 + 3時間 = 16時間
  • オーランド → 会場 = 30分

合計:20時間30分

帰り

  • 会場 → オーランド = 30分 + 待ち2時間 = 2時間30分
  • オーランド → シカゴ → 成田:3時間 + Transit待ち2時間 + 13時間 = 18時間
  • 成田→家まで:+ 2時間

合計:22時間30分

でした。

f:id:teraco:20181002004355j:plain

遠いですね(白目)
品川は近くてありがたいです。

会場について

大きさ

デカい。広い。具体的には、1日終わった時点で万歩計が15,000とかになってました。セッションを聞きながら運動もできるイベント…?会場の端→端の移動だと5分~10分歩くので、次のセッションまでの時間計算重要。ちゃんとしたスニーカーを履いていくとよいです。

f:id:teraco:20181002004358j:plain

googlemapsで計ったら端→端は700mくらいでした…。会場が広いので、迷う人は迷うと思います。私は地図感覚が良いので、2日目くらいには名前をきけば大体の場所とそこへの最短ルートが思い浮かびましたが、そうじゃない人は紙で地図を印刷して行くとよいと思います。

寒さ

比較的寒かったですが、想像していたほどではなかったです。私は寒さに強いので、ほとんどのセッションは半袖長ズボンでしたが、寒さに耐えられないセッションは、持参のダウンを羽織ってました。軽くて小さいユニクロウルトラライトダウンは有能でした…。

あと、Tipsとして、寒いときはアメリカナイズなおデブちゃんの隣に座ると、熱気であったかいという事が分かりました…。

f:id:teraco:20181002004508j:plain

こんだけ密度高いとあったかいです。

無線LAN

比較的繋がりました。特にPCで無線LANを拾えなかったことはなかったと思います。スマホだと途切れることもありましたが、単純にスマホの調子が悪かっただけだと思います。環境は良かったです。

電源

潤沢でした。事前情報だと、コンセントの取り合いになると聞いていましたが、ホテルの壁から直接取れるし、会場に設置されたスペースにも電源が配置されていました。

私個人は、電源が取れなかった時に備えて、PC用のバッテリーと予備のPCも持って行ったのに、全くの無駄でした。そもそもPCをあまり使わなかったのと、Surface Bookのバッテリーの持ちがすごぶる良くて、バッテリーが50%を切ることはありませんでした。

参考までにバッテリーはこんなのです。飛行機の手荷物として持ち込めます。

イベント環境

ライブ配信の利用

ほとんどのセッションが、MyIgnite(Ignite参加者専用ページ)で同時中継をしてました。よって会場に行かなくても手元のPCでセッションを受講する事が出来ます。もちろん、会場に行った方が臨場感があって面白いです。ライブ動画の利用シーンとしては、移動時間がなくて、歩きスマホ(周りに気をつけましょう)でセッション見ながら、次のセッションに移動するとか。

あと、セッションを12個同時に配信しているサテライト会場があり、手元のイヤホンで見たいセッションに音声を合わせる神スペースがありました。「つまんねーなー」と思ったら手元のスイッチで音声を切り替えられるので、どのセッションに出るか迷ってる時はここでチェックするのがお勧め。英語堪能なら左右で違うセッションを聞くことも可能です(死

f:id:teraco:20180926113604j:plainf:id:teraco:20180926121236j:plain

飯、飲み物

おいしかったです。

f:id:teraco:20180926081157j:plainf:id:teraco:20181002004657j:plainf:id:teraco:20180925080340j:plain

写真がおいしくなさそうなのはほっといてください。

事前情報だと飯はクソマズで会場外のフードコートに長蛇の列ができる…と聞いていましたが、そんな事はなく。2日目の昼食だけ冷え冷えの弁当で、それはちょっと微妙だったのですが、後で聞くと去年は全部それだったようです(そりゃキツい。 美味いといっても毎朝ベーコンとエッグとクロワッサン、と代わり映えしないので、飽きはきます。会場の周りも所謂リゾート地でピザにハンバーガーにステーキしかないので、ちょっとキツい。例えば日本で言うと、毎日高速のサービスエリアとかディズニーランドの中の飯だけ食ってろ、と言われているようなもので、5日間ずっとは飽きます。

案内

そこら中にTシャツ来た案内の人が立っているので、迷ったら聞けばよいです。

セッションの選び方

今回、セッションの数は1627個ありました。多すぎます。てことで行く人達で話し合ったのが「(レベル)100とか200のセッションは(エンジニアにとっては)つまらないだろうから、300とか400のセッションを受けよう」です。それで絞り込んでも400~500個にしか減らないので大変。やはり我々、日本の文化圏の人間なので、スピーカーの名前を見て「お、こいつのセッションなら面白い!」と思えないのが厳しいです。

てことで初日は各自で回ったうえで、夜に集まって2日目以降の作戦を話し合いました。結果、20分のセッションの優先度を下げようとなりました。20分のセッションは、日本のイベントだと10分間の”シアターセッション”にあたるもので、エクスポ会場の端でゲリラ的に行われるようなものです。

初日に回ったメンバーの話を総括すると75分とか45分のセッションに比べて、新しい情報が出てくることは少ない事が分かったので、2日目以降は優先度を下げました。とはいえこれも難しく、MS社員じゃないMVPの人がしゃべるセッションはそこでしか聞けない内容が含まれていたりする…。

最終的には、ほとんどのセッションは後でも動画で見れる事を考えて、自分が課題を持っていて、スピーカーに質問したくなるセッションを選んでいました。

ちなみに今回、興味があるセッションをExcelに書き出して纏めました。Ignite公式アプリの調子が悪かったり、いろんな条件でセッションを絞り込みたいときに便利でした。

f:id:teraco:20181002004812j:plain

旅行準備

ホテルや航空券

会場近くのホテルはすぐに埋まってしまうので、Igniteへの参加が決定したら出来るだけ早くホテルを取った方がよいと思います。航空券についても、直前になればなるほど値上がりし、乗り継ぎが多かったり変な時間のものになってしまうので、余裕をもって取った方がいいでしょう。

持ち物

海外だからといってそんなに必要なかったです。基本的にはホテルと会場の往復なので、会社に行く程度の荷物+着替え3泊分で洗濯しながら回してました。現地で参加者特典のかばんも貰えますし、エクスポ会場を回ればメーカーロゴ入りのTシャツももらえるので、ワンチャン服さえも要らない…。夜に遊びに行ったりお土産を買いこんだりする人はそのための準備が必要でしょう。

twitterアカウントやLinkedInアカウントの準備

会場で仲良くなった人と連絡先を交換する際、メールじゃなくてtwitterアカウントを教えあうことが多かったです。もちろん、メールでもOKだと思うのですが、twitterの方が相手とよりカジュアルに繋がれるので私としてはお勧めです。(エンジニアの必携ツールですよね)

まとめ

  • 行くことが決まり次第
    • ホテルを抑える(重要!)
    • 航空券を抑える
    • twitterアカウント,Linkedinアカウントを開設
      • 海外の人とつながる時、その場でtwitterアカウントを教えあうことが多かったです。
    • パスポート、ESTAなど海外に行く準備
  • 3週間前くらい
    • セッションスケジュール確認&ラボ申し込み
      • ラボ系は早く申し込まないと埋まってしまうので注意!
    • 必要であれば英語の練習
  • 前日
    • 持ち物整理