やぎしんぶろぐ

C#er/プログラミング作法

de:code Day 2

Day2

5 月 25 日 (水) 9:30 - 18:30

09:30 ~ 10:30 DEV-022 これから始める Xamarin ? 環境構築から iOS/Android/UWP アプリのビルドまで ?
10:45 ~ 11:45 DEV-011 TypeScript ~ Any browser. Any host. Any OS. Open Source ~
13:10 ~ 14:10 DEV-001 リアルタイムデモで実感!Visual Studio Code の極意
14:25 ~ 15:25 DEV-005 200 時間以上お客様と向き合ってみえた Team Foundation Server による開発業務効率化の実現方法
15:55 ~ 16:55 DEV-023 Xamarin Deep Dive - Xamarin.Forms の可能性
17:10 ~ 18:10 CHK-001 All about DevOps ? DevOps 第一人者のガチトークバトル!

ちょっと遅くなりましたが、de:code2日目の振り返り。

いやー。熱すぎる2日目。ではレビューを殴り書きで。

 

 【これから始める Xamarin 〜環境構築から iOS/Android/UWP アプリのビルドまで〜】

<Speaker>

写真:千代田 まどか

千代田 まどか日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
テクニカル エバンジェリスト

 
写真:田淵 義人 氏

田淵 義人 氏 エクセルソフト株式会社
ソフトウェア事業部 
Business Development Manager

 
写真:砂金 信一郎

砂金 信一郎 日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
部長 エバンジェリスト

 
写真:高橋 忍

高橋 忍 日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
プラットフォーム エバンジェリスト

 

ちょまどさん人気は凄かった。笑

 

  • ターゲットプラットフォーム特化型のこれまでがXamarinで変わった!!
  • クロスプラットフォーム特化型>と呼ばれるXamarin。Xamarinの導入によって、C#/.NETだけでiOSAndroidWindows Appアプリが作れる。
  • 高価だったXamarinが、Windowsが買収したことによって、タダVisual Studio上でコンパイルができるようになった。
  • ※ただ、UIはネイティブコードで作ったほうがよい。(エンドユーザーの求めているものに少しでも近づけられるから。)
  • Xamarin.Formsという、Xamarin Nativeの進化版で画面の共通化が容易になった。
  • UIコードも統一&XAMLで記述 (XAMLC#によって全てを開発できる環境が整っている。)これね。C#覚えたら勝ちってこと?笑
  • ページのレイアウトは6つから選択して、19種のコントロールをレイアウトにはめ込む形。WPFxamlとはちょっと違う感じがする。

ちょまどさんから一言。

①すぐに始めよう ②JXUG(ジェイザグ)と呼ばれるXamarinコミュニティあるよー
③ちょまどをこれからもよろしく。

 

【TypeScript ~ Any browser. Any host. Any OS. Open Source ~】

<Speaker>

写真:井上 章

井上 章 日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
テクニカル エバンジェリスト

 

井上さんのプレゼン、すごい聞きやすかった。なんでなんだろう。堂々としてるってだけじゃないんだよなー。

 

  • TypeScriptはコンパイルをするとjsファイルが作成される。(コンパイラはTypeSctiptで作られているらしい。)
  • TypeScriptはオブジェクト指向型の言語としてコーディングすることができるので、C#でコーディングしている現場の人たちは入り込みやすいのかな?
  • TypeScriptでの記載がC#と違ったのでちょっと見づらかったけど、getterとsetterの考え方などを導入できるし、protectedなどの修飾子も使えるので、始めのうちは明示的に宣言しておくと、より入り込み易いかな。

TypeScriptも面白そうだけど、やっぱりC#の勉強を進めていくべきかなーって改めて。

 

【リアルタイムデモで実感!Visual Studio Code の極意】

<Speaker>

写真:戸倉 彩

戸倉 彩 日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
テクニカル エバンジェリスト

 

写真:池田 尚史 氏

池田 尚史 氏 GitHub, Inc
Solutions Engineer

 

戸倉さんに一度お会いして見たかったんですが、お忙しすぎてタイミングを逃してしまったー。

Visual Studio Codeを使ったデモが大半占めていました!

 

以前、自分のMacに入れてコーディングしてみようと思ったんですが、よくわからないエラーが出てきたので断念してました。(開発環境構築で手詰まりしてたら何の意味もない、って砂金さんか高橋さんがおっしゃってたなー・・・)

 改めて着手してみたら、できた。というか、Permissionがそもそもないところに作ろうとしてただけだった。笑

 

IDE(※)でもなく、ただのエディタでもない、それぞれの良いところを持ってるVisual Studio Codeを使ってこれからコーディングしてみようと思います。まだ.NET入れられてないんだけどね・・・。.NETが入ればC#で開発できるらしい!

 ※プログラミングするための開発環境のことで、エディタとかコンパイラとかばらばらで存在しているものを一つにまとめて開発しやすくしたもの!

 

 

【Xamarin Deep Dive - Xamarin.Forms の可能性】

<Speaker>

詳細を見る
 
写真:田淵 義人 氏

田淵 義人 氏 エクセルソフト株式会社
ソフトウェア事業部 
Business Development Manager

田淵さんのセッション!

朝一発目のちょまどさんとのセッションでXamarinの面白さをずっとお伝えしてきている、という熱い魂を持った方と印象を受けたので、田淵さんだけのセッションでは何がお聞きできるのか、というところが気になったのでこのセッションに!

以下、箇条書きで!

  • Xaml.Plugin.Mediaでカメラなどのプラグインを使うことができる(つまりカメラアプリとかつくれちゃう)!
  • Xamarin.Forms はこれまでUIは個別に作り込む必要があったNativeを変更し、ビルド時に自動マッピングしてそれぞれの言語で使えるUIの作成に成功!

(Xamarin.Formsの可能性)

  • OSS、将来性、Microsoftのバックアップ
  • 良さ:ワンソース ⇄ マルチUI 自動マッピングして、各ネイティブのUIコードができる(例①) DataPages = JSONのURLを指定するだけで、UIも綺麗にまとまっちゃう例。(例②) WorkBook = 仕様書+コードを書く 仕様書を基にコード化してくれるらしい。それが広まったら世の中のエンジニアの仕事の形態が変わっちゃわない?って単純に思いました。上流工程大だね

 

田淵さんのGithubアカウント。ここにXamarinに関するコードやらなにやらが掲載されているらしい。

github.com

 何やら楽し気な雰囲気を感じたので、早速Xamarin Studioをインストールしました!土日にちょっとコーディングしてみようかなと思います。(実機で試してみたいので、Android端末欲しい・・・)

 

【All about DevOps ~DevOps 第一人者のガチトーク バトル! ~】

詳細を見る<Speaker>
 
写真:牛尾 剛

牛尾 剛 マイクロソフト コーポレーション
ITPro - Japan
シニア テクニカル エバンジェリスト

 
写真:吉羽 龍太郎 氏

吉羽 龍太郎 氏 Agile , DevOps, Cloud コーチ

 
写真:前佛 雅人 氏

前佛 雅人 氏 クリエーションライン株式会社

 
写真:高添 修

高添 修 日本マイクロソフト株式会社
デベロッパー エバンジェリズム統括本部
エバンジェリスト

 

以上の4名の他に、倉貫さんというDevOps界では名の知れた方が傍聴者でいらしてたらしく、急きょ5人体制でやってた。形式は座談会。

一番熱い話が聞けたセッションでした。

”本当にその選択が正しいの?ってのを常に考える、それを会社全体で選択していかないといけないよね!って皆さんがおっしゃってて感慨深かった。

以下、箇条書きで。

 

  •  日本は遅い!!(CHEFの人に聞いたら”日本は8年遅れている”らしい)

<どうしたら早くできる?>

  • そもそも日本が遅いのは→従来型の開発モデルでやらないと、リスクが・・・ってところが大きい。
  • 経営者はプロジェクトの承認を恐れる。Opsは外にあるから、ってなるとそもそもDevOpsになってない。
  • いい加減、開発の流れを変えていったほうがいいよねー。
  • Opsの面での悩み、その解決法は?)→それがあったらセッション化してる!笑
  • 底上げが大事!若手!⇒単純に、頑張ろうと思った。
  • DevOpsは宗教に負けてはならない!※宗教とは、会社の伝統的な?なぜやっているかわからないような行事や言動。俺もこれがあったら、ちょっといろいろ考えるなー。
  • 前佛さん「クラウドを見ることによって、開発者と運用者が同じゴールを見るようになった。だからクラウドを導入する動機が”クラウドをやろう”ではなかった。」
  • SIerが儲からないから誰もDevOpsやらない。
  • 今の日本は、”ITがあるからビジネスを発展させていこう”ではなくて、”ビジネスを成功させるためにITを使おう!”ってなってる。

Opsは今後どうしていくべきか?>

  • 高添さん:IT系、人間系の二つに分かれる。
  • 圧倒的敗北を経験すべき。(人が運用をするコスト>>機械が運用するコスト)
  • だからコードが書けないOpsの人は今後使われない。スキルで金を稼げないとだめ!(ただ、人に優しくないとか協力的じゃないやつは絶対重宝されない!)
  • 日々の学習は非常に大事。
  • 定年まで仲良く頑張ろう!の時代は終わってる。会社としては、勉強&教育の機会を与えてあげなければ、だめ。

ー牛尾さんがDevOpsが好きになった理由ー

アジャイル開発の推進の人だとそれしか話せない。でもエバンジェリストだとなんでもできる!それを伝えていきたいから、何でもやる!→牛尾さんのDevOpsハッカソンに出ることにしました。

 

<DevOpsに関してどのようなテクノロジーを学ぶと良いか?>

  • トレンドの技術を学ぶとか、自動化したいからとかだったら出直したほうがよい。テスト自動化でどれだけのコストが削減できるのか、などの少し深いところまで考えた時にDevOpsがいいなと思ったらやるべき。
  • サーバレスアーキテクチャ!(アマゾンでは導入している。コードをサーバにおいておけばサーバのコーディングは何もしなくて良い!Azureはそこらへんもすごいらしい。)
  • ってなると、やっぱりXamarinはすごいきてる!エンドユーザからのフィードバックは重要。カスタマイズ指向だと、バージョンが変わったときに大変。GOがきてるらしい。

 

このセッションで、”Xamarinを学んでおいたほうがよい”というのが繋がって、締めのセッションとしてはとても充実していたと思う。

 

ではでは総括を後程。

 

 

 

de:code Day 1

行ってきました!de:code 2016

〜Day 1〜

10:00 ~ 12:00 KeyNote すべての人の可能性を拡げるモバイルファースト、クラウドファーストの世界
12:45 ~ 13:30 SNR-002 間違いだらけの IoT プラットフォーム~今すぐビジネス拡大に繋げるためのデータ基盤構築~
13:50 ~ 14:50 SPL-003 黒船襲来!世界DevOps トップ企業 x マイクロソフトによるトーク&デモバトル セッション
15:05 ~ 16:05 SPL-005 オープンソースから見たマイクロソフト
16:35 ~ 17:35 DEV-020 Bot Framework & Cognitive Services ~自動応答ソリューション開発に挑戦~
17:50 ~ 18:50 CLT-005

今こそ WPF ~ モダンデスクトップアプリケーション開発再考 ~

 

 タイムスケジュールはこんな感じっすね。

 

【すべての人の可能性を拡げるモバイルファースト、クラウドファーストの世界】

<Speaker>

写真:Satya Nadella
 

Satya Nadella

Chief Executive Officer,
Microsoft Corporation

 
写真:Steven Guggenheimer

Steven Guggenheimer

Corporate Vice President &
Chief Evangelist,
Microsoft Corporation

 
写真:Akira Sakakibara

Akira Sakakibara

Chief Technology Officer
Microsoft Japan Co., Ltd.

 
写真:Katsura Ito

Katsura Ito

General Manager,
Developer Experience & Evangelism Lead,
Microsoft Japan Co., Ltd.

でも、他にも!

牛尾さんや井上さん、戸倉さん!

そして、海外の企業からDevOpsの先駆者の方々・・・

(Chef、MESOSPHERE、Hashicorpのそれぞれの社長と米MicrosoftSam Guckenheimerさん

激アツすぎるよー。歴史的瞬間を目の当たりにしました(ってまじで適当なこと言ってますが、本当に凄かったんです・・・。)

 

で、ざっくりな内容を箇条書きにて。

  • りんなちゃんの話から。人間にはやっぱり自然言語が一番身近で、Bot conversation & Conversation as a platformで実現しているりんなちゃんにこの自然言語を学ばせることによって、ほとんど人のAIが今後生まれるらしい!  で、"Botはテクノロジーの塊”らしい。将来は、"ピザ3枚注文してー"って文字列を打つと何枚?って返してくれて注文までやってくれたり・・・”飛行機が遅れているから違う飛行機予約する?”って話しかけてくれたり・・・”ホテル予約してー”ってお願いしたら近くのホテルを探して勝手に予約してくれたりするかもらしい。りんなちゃんにLINEして、みんなで育てよう!※タレコミ情報だけど、近々りんなAPIが公開されるらしい。
  • 先日アメリカ(?)で行われたMicrosoftのBuild 2016では、cmdで開いたターミナルでbashシェル動かして、lsコマンドを打つだけで現地の人たちは興奮していたらしい。笑 でも、正直Windowsの環境でUNIXコマンド打てるのは俺でもびっくりした。
  • ”自動車の会社はもうソフトウェアの会社だ”ってSatya Nadellaさんはどっかの社長に言われたらしい。笑 どこだっけ?トヨタ

  • からの・・・Satya Nadellaさん、”未来はソフトウェアで動く”。生活の中にもっとコンピューティングというものが浸透していくと。ユビキタスコンピューティングが今よりもっと身近になると。(ユビキタスコンピューティングは死語だと思ってたけど、まさかこの言葉が出てくるとは・・・。)

  • Microsoftは、分散型のクラウドインフラとかIoTとかに力を入れていきたいみたい。(社内ハッカソンでRaspberry PIいじってるし、それをAzureにつなげてた。)

  • ”すべての開発者のためにマイクロソフトは提供していくだろう。”って。これは最近のMicrosoftの動き方を見ると”そうですよねー”ってなりました。Satya Nadellaさんに社長が変わってから動き方も変わったのかなーと。

  • ”テクノロジーとは?何ができる?” → そのテクノロジーで、”あなたは何ができる?”と問いかけ。世の中にはこれだけのテクノロジーがあるのに、何もしないの?と少しワクワクさせられました。

  • 開発者同士の会話、知識共有は非常に重要。これは俺も最近現場で感じております。
  • 全てがWindowsのデバイスであれば何でもできるし、スケーラビリティ(柔軟性)の点でも価値の高いものが今後Microsoftのソリューションから出てくる。
  • そして、Office365のおかげですべてのソリューションを一つに管理することができる(?)。本当?
  • Xamarinのデモで(戸倉さん)Azureで動く対話型のデータビジュアライズツールであるPower BIとD3.jsを使ってde:code関連のツイートが世界のどの地域で多かったのかを可視化するデモをやってた。スペックの高いマシンを使うとD3.jsでもしっかり動くんだなーと感じました 。僕は卒論でD3.js断念してccchart使いましたが。※D3.jsとかccchartとかは、あるデータを見易いように加工して表示してくれるJavaScriptのライブラリです。

そして僕は話に夢中でパソコンのタイプを諦めた・・・。笑

 

【黒船襲来!世界DevOps トップ企業 x マイクロソフトによるトーク&デモバトル セッション】

<Speaker>

写真:牛尾 剛

牛尾 剛 マイクロソフト コーポレーション
ITPro - Japan
シニア テクニカル エバンジェリスト

 
写真:Sam Guckenheimer

Sam Guckenheimer Microsoft Corporation
Partner PM Manager

 
写真:James Casey 氏

James Casey 氏Chef
VP of Partner Engineering

 
写真:Aaron Williams 氏

Aaron Williams 氏Mesosphere, Inc.
Head of Developer Advocacy

 
写真:Mitchell Hashimoto 氏

Mitchell Hashimoto 氏 Hashicorp
Creator of Vagrant, Packer, Consul. CEO of Hashicorp

 
写真:鈴木 逸平 氏

鈴木 逸平 氏 クリエーションライン株式会社
執行役員

※え、なんか写真貼れた。

 

とりあえず、殴り書き。
サムさんはTFSなどのサービスなどをリリースした。まさにDevOpsの先駆者
 

  • DevOpsを会社に導入する際に何に気をつけたらよいのか。どういう準備すればよいのか。→会社を挙げての改革が必要。でも変革には覚悟が必要だ。経験値が豊富な会社とのつながりが非常に重要。変革というのは本当に大変だ。
  • 正しいツールを使ってDevOpsを広げていく→DevOpsのイベントには絶対に人は集まる
  • 新しい技術を導入し続ける(学び続ける)ということは非常に大事(というかやるべき)。
  • DevOpsで自動化するところはする。DevOpsの良さを見極めるためにもまずはやってみることが重要。
  • どの事象においてもコミュニティーが大事。一人では何もできないということかな?

 

オープンソースから見たマイクロソフト

<Speaker>

 

写真:まつもとゆきひろ 氏

まつもとゆきひろ株式会社ネットワーク応用通信研究所フェロー
一般財団法人Rubyアソシエーション理事長

 

 

RubyMicrosoftを嫌っていたのではない。MicrosoftRubyを嫌っていたのだ。”

 

良き隣人として、Microsoftと関わっていくらしい。

ほとんど愚痴だった。笑

 

 

Bot Framework & Cognitive Services ~自動応答ソリューション開発に挑戦~】詳細を見る

写真:ジニアス平井 (平井 昌人)

ジニアス平井 (平井 昌人) 日本マイクロソフト株式会社
マイクロソフトテクノロジーセンター
テクニカルアーキテクト

 

ジニアスさんの話、難しすぎて全く覚えてない(泣)

 

SkypeBotを使う → ピザの注文がチャットでできる!それが、企業でも応用できるよね!ってやつ。

一番の謎。Bot FrameworkでMicrosoftが目指すゴールってなんだろう?

今後の動向は目が離せません。

 

【今こそ WPF ~ モダンデスクトップアプリケーション開発再考 ~】

<Speaker>

写真:東 賢 氏

東 賢 氏 インフラジスティックス・ジャパン株式会社
代表取締役/シニアUXアーキテクト

 
写真:山口 慧 氏

山口 慧 氏 インフラジスティックス・ジャパン株式会社
ソリューションコンサルタント

今の現場ではWPFを用いて開発しているのですが、”なぜWPF?”ってところはブラザーのasiさんに教えてもらったようなもらってないような・・・って感じだったので、改めて学びたかったので!

Web言語とWPF
本気でJavaScriptで取り組む覚悟があるのか。(スクリプト言語の進化のスピードに柔軟に対応できるシステムが作れるのか?ってことですかね。)
 

UWPとWPF
〜UWPにできないこと〜

DBに直接アクセスできない。
ファイル、印刷関係、UI上では画面はシングルページでしか起動できない。
 

※まずUWPって何?→Universal Windows Platformの略で、新しいOSと考えてよい・・・のかな?UWPの上にWindows10が乗っかってて、10で動作する様々なデバイスで柔軟な画面レイアウトの配置変更だったり、機能を変えたり、ってできる、でよい?笑

Q.10年後、安定して使えるテクノロジーは?
A. ない。マイクロソフトですら考えてない。
→3年くらいのスパンで考える。もっとも安定したランタイム環境は.NET
 
なぜあの時、WPFにしなかった?
GPUの普及の問題でWPFのためのランタイム環境に問題があった。
・スキルセットがない。(Windows.Formsで慣れているから・・・)

Windows.Formsって、WPFとかSliverlightとかが普及する前にクライアント画面を作成するために用いてたAPIのこと
 
WPFXAMLって?
・データバインディングでデータを表示。
バックエンドロジックとの疎結合(画面レイアウトの変更が容易になっている)
 上の太線が結構一番の良さだと思う。


Click Once

主な特長として、(ノータッチ・デプロイメントと比べると)何といってもローカルにプログラムがインストールされるために、実行時のセキュリティ設定を柔 軟に指定できるようになり(セキュリティ制限をまったく受けずに実行されるようにすることもできる。ただしこのように書くと、セキュリティ面で問題がある ように思われるかもしれないが、それについては続編で詳しく述べよう)、またこれによりオフラインでも利用できるようになることだ。もちろん従来のノー タッチ・デプロイメントのようにインストールせずにWebから直接実行する配置オプションも残されている。ClickOnceには、状況に合わせて選べる 多彩な配置オプションが用意されているのだ。

 の技術を用いてWPFが動いているのも良さらしい。

現実的なことを東さんがおっしゃっていて、ビジネスに用いるならこれを考えろと。

  • 「クライアントテクノロジーは変わるもの」と納得する。
  • システム全体のメンテナンスサイクルとクライアントテクノロジーは切り分けて考えよう。
  • UWP or WPF or Webを考える前に、クラウドへの対応を考えるべき。サーバサイドはより安定しており、API志向の設計に切り替えていくほうが安全。
  • WPFは直近の選択肢。数年先に切り替えることも視野を入れてモダンなUI設計をするきっかけにすると割り切る(もちろん、切り替えないかもしれない。)

 

と、もうセッションの最中でログを残すのも一苦労で・・・。

家に帰ったらばたんきゅーでした。

 

これをみて、後で思い出せるかなーは微妙(泣)

少しずつ編集していこうと思います。

 

Day 2は後ほど!

【C#】readonly定数定義とconst定数定義の違い

これ、わかりやすぅーい。

qiita.com

 

前に、

 

”public readonly const string”

ってコードが書かれてた(というか自分もそれを真似て実装した)気がするけど、大丈夫かな?

裏でどう動作しているのかはやっぱり把握しておかないと、バグ修正とかでつまづきそうだな。

ブラザーのasiさんに

www.amazon.co.jp

これもらったからちょっと調べてみます。

 

 

 

 

なんか、他の人のブログをパクってリンク貼ってるだけのブログ、つまんないなー。笑

ちょっと技術的なやつ投稿してみようと思いまーす。

 

やぎしん

基本情報処理技術者試験受かりました!

学生時代にノー勉で試験を受けた結果、落ちるという失態から2年・・・。

やっと!

f:id:s_yaginu:20160517120920p:plain

成績はこんな感じ。

午前問題、こんなに間違ったか?

ちょっとショックなので、回答ちゃんと振り返ろう。

午後問題もマークミスしたし、やっぱり見直しは大事。

 

次の応用情報に向けても頑張っていこうと思いまーす!

 

5月12日の話

今日は13日だけど、昨日の話を。

 

昨日は、弊社の採用活動のお手伝いとして、母校の会津大学を訪問して来ました。

この時期だと、ほとんどの就活生は企業の面談や説明会の予定が入っているらしく、なかなか就活生が集まらないという状況でした・・・。弊社内定者の子が事情によりまだ大学に在籍しているため、その子にも手伝ってもらっての説明会となりましたが、5名程来ていただいて、なかなか豊作でした!

 

また、卒業論文でお世話になった宮崎先生のところにご挨拶に伺いました。変わらずお元気でいらっしゃっていて、

「おー社会人だな。会えて嬉しいぞ。」

と声をかけてくださいました。とても嬉しかった。

先生ありがとうございました。

 

帰りは常駐先の皆さんにお土産を買って帰りました!

福島名物、柏屋の薄皮饅頭

やっぱりおいしい。

 

会津大学の学生が弊社に増えてくれると、エンジニアのレベルがもっと上がると確信しているので、また機会があったら積極的にお手伝いをしたいと思っています。(まぁ、でも、マッチングが一番大事か。笑)

クラウドの勉強

弊社では、技術者全員を対象として、クラウドの勉強をするプロジェクトが動いています。プロジェクトのゴールは、MicrosoftMCP認定資格 70-532の取得!!

 

qiita.com

 

資格の取得には結構疑問があったけど、その人の”技術レベル”を見るには一番判断しやすい項目であることは間違いないです・・・。

(本当に業務が忙しい時に、取れ!!!って言われたら死にそうですが)

 

なので、応用情報の勉強に飽きたりしたら息抜きにこっち勉強しようかなーなんて。

でもとりあえずは応用情報頑張る!