より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

de:code2019 DAY1

Microsoftの開発者向けのイベントであるde:code2019に参加してきました。

www.microsoft.com

Tech Summit 2018の時は基調講演に余裕をぶっこいて、ギリギリに行ったらサテライトで聴くことになったという幕開けでした。

今回はそうはなるまいと意気込んでました。

が、当日の朝起きたら、ギリギリの時間になってしまいました。

今回のdecodeは満席となり、ギリギリ受付終了前に滑りこめたというのに。

ですが、なんとか最前列を確保。

開演30分前の9:00がボーダーで、この頃に来ていれば最前列も空いてる状況でしたが、9:10になった頃には満席でした。

基調講演

Fluid Framework

これは初耳でしたし、説明だけでは何のことか理解できませんでした。

要するにOfficeにもGoogleドキュメントと同様の共同編集ができますが、これが高速で出来るようです。

他の人の編集が、すぐに反映されてよりスムーズな共同編集が出来ます。

それどころか自動翻訳も出来るようです。

Azure

もっともMicrosoftが力を入れているのがAzure。

Fortune500のうち95%が使っているそうです。

井上章さんのデモ

面白かったです。

コミットのコメントでタスクが連動されるというのは良いなと思いました。

反応薄い? そんなことはないです。

昨年は麺類を分類するサービスを持って来てデモしてましたが、今回は感情分析でした。

絵文字を入れると100%になるという裏技まで披露。

HoloLens2

トリは、Alex Kipmanの登場です。

大人しいギャラリーの中から歓声があがるほど。

ハリウッドスターのようなルックスですしね。

男の私も期待してたんですよ。

www.gizmodo.jp

それだけでなく、今回のde:codeにおける目玉はHoloLens2ですから。

HoloLens2はここで体験できるものの混雑を予想し、抽選で体験できるようになってます。

視野角やアイトラッキングなどの機能を搭載した高性能デバイス

私も下記ツイートのような写真を撮るはずが。そのはずがぁ!

一挙に紹介! Visual Studio 2019 新機能とMicrosoft Build 2019 で発表された開発ツール最新情報【.NET 開発者向け】

どこのセッションも満席見込みでしたが、なんとかランチにありつき、落ち着かないままセッションが始まりました。

LiveShareは、visualstudio.com上でソースコードを共有するのでコードは外に出てしまいます。

前の会社では絶対NGですが、今の会社でもオンプレのGitLabなのでどうかな。

⒋8でWPFとWinFormsでアクセシビリティ向上

4.8で WPFやWinFormsにも手が加えられるようです。

opcdiary.net

www.infoq.com

4.7でもWinFormsにも手が加えられていたんですね。

まーた、4.6.1で止まってしまいそうな。

NET5についてWCFやWebFormはサポートせず、移行方法を提供するとのこと。

WebFormはBlazorとのことですが、どこまで移行方法を提供するんでしょうか。

#最高のゲームをつくろう! マイクロソフト Game Stacks でゲーム開発をしよう!

他のセッションを予定していたものの会場が正反対なのでもう少し近いこのセッションをチョイス。

スライドは公開されてます。

www.slideshare.net

気になったのはこのあたり。

  • Minecraft自閉症の人を救った
  • 実況者のゲームに視聴者が影響をもたらすMixer
  • DirectML

    Xamarin.Forms アプリケーション設計パターン

某所でご一緒した時に既にスライドを見せていただいたのですが参加。

仕事ができる人は一週間前には準備が出来てるようです。

www.slideshare.net

docs.microsoft.com

Prism for Xamarinについて、ViewModelからダイアログは地味に必要だと思います。

デモの成功の瞬間をシャッターに収めたかったのに残念。

上級サポート エンジニアの経験お伝えします:Visual Studio 2019 でメモリー リークを追え!

こんなコアな話をするとは。

そういうの聞きたかったけど、来る人そんなにいるのかと思ったら、普通に多いです。

やっぱり、難度高いです。あとでスライドを見直したいです。

メモリ不足エラーとは何のこと?

  1. 意図的にメモリを増やす処理
  2. System.OutofMemoryException
  3. しかし、タスクマネージャーで見てもメモリは16MB(/8GB)しか使っていない。

仮想メモリの概念で、物理メモリかスワップファイルに振り分けて物理メモリ以上のデータを扱える。

プロセスのメモリ空間が足りないから起きる。

コミットサイズをタスクマネージャーで列に表示させると3GB近くが使われていることがわかる。

メモリ不足エラーはシステム全体の不足ではない。メモリー空間不足。

GC.Collect
GC.WaitForPendingFinalizers()
GC.Collect

の3行を行う裏コードを入れると何かわかることがあるかもしれないようです。

ただし、ガベージコレクターにもコストがかかり、全スレッド停止することがあるので要注意です。

ダンプファイルを取る

タスクマネージャー、Visual Studioのデバッガやprocdumpなどでも取れる。

procdump.exe -ma -a -r

がオススメらしいです。

WinDbgで30分見てもわからなければ一度諦める。

リークしているとオブジェクトだらけでなぜ起きたかは難しいので勧められない。

というわけで、Visual Studioで開いてデバッグする。

ダンプファイルをマネージコードのみ実行でデバッグします。こっちの方が楽。

マイコードのみと小さなオブジェクトの種類のチェックは外す。

Visual Studioデバッグ実行時に表示される診断ツールからリアルタイムにオブジェクトごとのメモリサイズを把握することが可能。

デバッグ実行できずとも、デバッグからパフォーマンスプロファイラーを選び、実行。

GCの強制というボタンもあり、プロファイラーにGCさせることも可能なようです。

また、診断ツールには.NET以外も有効にする設定もあります。ただし、重くなるとのこと。

Visual Studio2019になって、

になったとのことです。

sway.office.com

パーティー

Tech Summit 2018とノリは違って美女DJとか抽選会とか派手なイベントがありました。

抽選はことごとく私を避けた方に当選し被弾せずに終わりましたが、交流も出来て良かったです。

やはり、想定以上の参加者数だった様子で、人も料理も足りてませんでした。

自費負担すること

私は自費負担で何万もするイベントに参加しています。入社したばかりなので、有給休暇を2日もさせてもらえてそれで十分なのですが。

私くらいなのかもしれませんね。自費負担って。

パーティーの時に話した方々は大企業の方々でした。(私も以前は大手グループ企業の一員だったのに全くこの手のイベントに理解なしでしたが)

実はメリットとして、業務優先で参加できないということはないというのがあったりします。

これから仕事〜とか、会社から電話かかって来た、そこから抜け出して仕事に戻るとか、そんなのなくて済みます。