2017/8/30の 初心者歓迎XamarinのLT会!Xamarin入門者の集い #3 で LT して来ました。

発表した資料はこちらです。

もうちょっとだけ詳しく Qiita に書いた記事はこちらです。

LottieXamarinで始めるXamarinアプリのアニメーション

今日は

  • 登壇のきっかけ
  • テーマ選定の理由
  • 振り返り

について書きます。

登壇のきっかけ

Xamarin に強くなりたい!以上。

テーマ選定の理由

今回は単なる興味です。

LT のテーマは「身近な問題に向き合う」にすると決意していながら、自分が Xamarin について何か発表する姿がイメージできな過ぎて、

  • 取り組んでいる人あまり見かけない
  • もともと気になっていた

ということで、アニメーションのライブラリ Lottie の Xamarin 版を調べることにしました。

振り返り

結論としてはやっぱり何か直面してる問題を解決したかった一方で、特定のライブラリを(ある程度危機感を持ちながら継続的に)追いかけるのは良かったなぁと思いました。

K

ライブラリ(github上のリポジトリ)を追いかけるようになったこと

ライブラリの動作検証しているとき、最初に試したバージョンが iOS でバグがあり動かない状態でした。

リポジトリを見てみると issue が立っていて、何人か同じ問題で困っている模様。

リポジトリにスターをつけて issue に動きがある度に届くメールを見ていると、数日後に issue は解決。

(正確にはリポジトリで Watching 状態にして、特定の条件でメール通知するように設定)

本来使っているライブラリの動きくらい追えよという感じかもですがやってなかったので習慣にします。

ついでにこれまでスルーしてたメールのフィルタも整理したので業務効率もアップですw

あと、リポジトリにスターつけたら twitter に垂れ流すやつ( IFTTT )割とこけるので困ってます。

Microsoft Flow なんとなく見てみたら GitHub 系は issue 立てる系とかしかなかったのでリクエストしようと思います。

こんな感じで使える IFTTT みたいな iPaaS です。

Microsoft Flowを使ってSlackからVisual Studio Team Servicesのビルドを実行する

スライドの枚数少なくして DEMO 入れた

前回、前々回とスライドの枚数が多く、時間もキツキツで喋る方もしんどかったのでスライドの枚数を減らし、せっかくのアニメーションだったので DEMO (ってほどでもないですが)スライドから別ページに切り替えて動かしました。

趣旨にもよるとは思いますが、今回は動いてて楽しいやんなーみたいなのが伝わればよかったので…伝わってたら嬉しいです。

詰め込み過ぎもやめてよさそうです。

記事書くのマークダウンにしたら捗った(ブログの話)

効率は上がった気がします。

今更ながら読んでる『達人プログラマー』の影響です。

P

自分が解決したい問題ではなかったこと

今回はこれに尽きる気がします。

気になっていたライブラリだとは言え、自分がアニメーション導入したかったわけでもなく気合が足りませんでした。

気合とは具体的に

  • サンプルよりもっと踏み込んだ使い方をしてみる
  • どういうコードなのか追ってみる
  • ライブラリを使ったときと使わなかったときの実装を比較する

などのことです。

いきなり本質に切り込めなくても改善していこうと思います。

T

テーマ設定時に問いかける

  • 何が問題で、どうやって解決したのか
  • なぜ解決する必要があるのか
  • その解決策はどのように成り立つのか
  • 考え疲れた?まぁ LT は LT やし全部満たせんでもええよ

Microsoft Flow に GitHub スターのパーツリクエスト

とりあえず言ってみる。

7/25の第7回 Tokyo Jazug NightのLTで登壇してきました。

JAZUG

Japan Azure User Group (通称JAZUG) は、Microsoft Azureを学び、楽しみ、活かす、日本のユーザーグループです。2010/8/26に結成したばかりのコミュニティです。ぜひ、一緒に作っていきましょう。 ちょっと興味がある=ゆるふわな方 から 実ビジネスで使うんだよね な方まで歓迎。 職種はなんでもござれ。 ※プログラマ~企画者、デザイナ歓迎。ゆるふわなコミュニティとお考えください。

connpass JAZUG (Japan Azure User Group) ページより

発表した資料はこちらです。

VSTS、Slack、Microsoft FlowでASP.NET CoreアプリのCIをやってみる

第6回にも登壇したので、そのときと比べてどうだったか、今後どうしていくかについて書こうと思います。

Tokyo Jazug Nightで「Azure FunctionsとAWS Lambdaの開発フローの違い」を話してきました。初めての登壇とその理由 #jazug

このテーマにした理由

当初は「そんなに使わないけどたまにテストで使うASP.NET CoreアプリのCIとリソース管理(使うときだけ SlackとかでさっとApp Service立ち上げるイメージ)」をうやるべく、VSTS使ったり、下に貼ったスライドのようにAzure Automationでよしなにしてくれる仕組みを作ろうと思っていました。

第6回の記事に書いたように、直面している問題の解決が第一にあって、副次的に発表ネタが増えるみたいな感じにしたかったんです。

しかし、そのASP.NET Coreアプリは別にローカルで立ち上がればそれでよいという話になって前提がなくなってしまいましたw

※問題が、問題解決のための労力を割かずして解決するのはよいことです

ただ、

  • VSTS触ったことなかった
  • CIツールそもそも触ったことなかった
  • CIツール以前にビルドフローで叩かれるコマンドってどんなのがあるのかよくわかってなかった
  • Logic Apps面白そうだった(けど触ったことなかった)

というのもあり、大枠のテーマは変えないことにしました。

前回の振り返りを踏まえて改善したこと

前回の振り返りはこうでした。

Good

  • LTに臨む指針ができた
  • 会社でMS関連の技術扱ってることをLT後も含めて伝えられた
  • 他社の方と一緒に何かをやるきっかけができようとしている

Challenge

  • 間違ってる部分があった
    • シーケンス図→会社の人に教えてもらった。修正済み。LTくらいなら先に会社でさっとやってしまうとよさそう
    • Azure Functionsの実行時間は5分から10分に伸びた→LTの準備段階で参考にさせていただいたブログ書いてらっしゃる方のLT資料に対するご指摘。ありがたい。完璧に準備するのは無理なので、指摘もらった点は資料に反映していくようにしよう
  • 緊張しすぎわろた→もうちょい練習しよう
  • 平日準備厳しい→土日に8割方終わらせても平日に残りやり切るの厳しいタイミングもあるので、平日は練習するだけ、練習時に気づいたこと直すくらいに…
  • 変換コネクタ貸してもらえなかったらアウトだった→type C to HDMIしか持ってってなかったけど、端子トゲトゲの青いやつだった。コネクタ買っとくかな…

で、それを踏まえて変えた部分はこんな感じです。

改善点

間違ってる部分があった、緊張しすぎわろた

自分で何回か読む練習したのと、嫁氏がエンジニアなので変なところがないか聞いてもらいました。

嫁氏は今回発表した技術を普段使ってるわけではないことは棚に上げます。

平日準備厳しい

火曜日開催だったのでその前の土日には仕上げました。

変換コネクタ貸してもらえなかったらアウトだった

今回は(も)動画撮影の会社の方が準備してくださってましたが、購入したのでいつでも大丈夫!

その他

前回の内容はスライド見るだけではあまりにざっくりでだからなんやねんみたいな感じになってしまったので、今回は合わせてQiita記事にもしときました。

反響なさすぎて寂しいですが、備忘のため…(つよがり)

振り返りと今後

振り返り

Good

  • VSTS、Logic Apps、Microsoft Flowも触ったことなかったけど一応形になった
  • うまくいかないときフォーラムで聞いてみたら回避策が見つかった
  • 今回VSTS、次回MS Flowみたいな感じに分けようかと思ったけど、その時点で持ってる知識全部出して次はまた別のことやるべきって思ってそうしたこと

Challenge

  • 前進させたい
    • うまくいかないってtwitterで言ってるよりはフォーラムでも書くほうがマシではあったけど、OSSならPR出したり再現できる形でissue上げたり、英語で書いて開発してる人によりフィードバックが届きやすい形にすることで改善なり前進なりに繋がるようにしたい
  • 問題はより目の前のものを
    • 今回も調べ始めたらどんどん気になることが出てきて楽しかったけど、深堀っていく対象は選ばないと人生進捗しない感がすごい
  • 内容濃くない割りに詰め込みすぎで早口
      5分のLTに妥当な内容とはとか考えると悩みしかないけど、詳細は別にするにしても内容1つに絞ったほうがよいかも。けどまぁ人に行動促すんじゃなくて、自分が勉強するためにやってるしいっか…

今後

次は8月末の初心者歓迎XamarinのLT会!Xamarin入門者の集い #3でお話しします。

仕事でXamarin触っているので、強くなりながら臨めたらなぁと思います。

Japan Xamarin User Group (JXUG)主催のイベント、初心者向けXamarinハンズオン! #3でメンターをやってきました。

と言っても、 今回のハンズオンのテーマになっていたXamarin Dev Days Tokyoに参加したのが去年の11月、それを元にアプリを作って少しいじっただけ、という感じなので「メンター」と名乗るほど詳しくないですし、メンター枠でイベントに参加するのも初めてでした。

そんな前提のもと、

  • やっといてよかったこと
  • 答えられた質問
  • 答えられなかった質問

をまとめておこうと思います。

やっといてよかったこと

実際にハンズオンの題材をやってみる

事前に題材を嫁氏(エンジニア)とやってみました。

Xamarinの概要説明、環境構築、ハンズオンを一緒にやってみることで、つまずきそうなところに事前につまずきw、ある程度解決策・回避策を予習したり、自分が特にわかってない部分を勉強し直したりできたのはよかったです。

ハンズオンの題材をいじる

ちょっと前ですが、ハンズオンの題材をベースに簡単なアプリを作りました。

Xamarin.Formsで家の日用品管理アプリを作り始めたお話

ハンズオンを単になぞるのに加えて、いじってる方が次どういう風に勉強してったらいいのか実感がわくのはよかったです。実際参加者の方とそういう話をすることはなかったですが…!

答えられた質問

“XamlCTask” task failed unexpectedly

数人。今回の題材だと、Xamarin.FormsのバージョンアップすればOKでした。本質的な理解ができているわけではない…

Androidの実機デバッグをするとき、デバッグ対象に接続した実機が出てこない

その場で一緒に調べたところ、XamarinとかVisual Studio以前にドライバが端末を認識できていない状態でした。

この辺(Windows のデバイス マネージャーのエラー コード)見ながらの対応でした。

どんな質問にも怯まずとりあえず一緒にぶつかってみる姿勢大事そうでした。

ビルドし直しても変更内容がエミュレータに反映されない

コード絶対正しいはずなのに何でだろう…と思って、最終的にVisual Studio再起動したら反映されました。

本質的な理解はしていませんが、どこでVS側で新しいソースビルドできてかったのか、エミュレータが古いソース見ていたのか、もう少し問題切り分けできたいなと思いました。

コード正しいはずなのにコードビハインドで赤線が表示されている

多分できるのでビルドしてみください、でビルドできました。

正しいコードでも即座に反映(コード解析的な意味で)してくれないこともある…けど何でなんだ…

APIからデータ引っ張ってきてくれない

データ引っ張ってくる部分コメントアウトされていたので、コメント外してもらいました。

基本コードのコピペで進めていくハンズオンだと気付けないこともあると思うので、実際追ってみてから参加するのとても大事だと思いました。

Azureのポータルの見方よくわからない

本筋はXamarin.Formsであるがゆえに、バックエンドのサービス構成の基本事項等々まで説明するわけではないので、なおさらこういう部分まで丁寧にサポートできると安心して本来の勉強したい部分にフォーカスできるのかなと思いました。

Commandの書き方がしっくりこない…どう勉強したらいいか?

MVVMでUIからビジネスロジックを呼ぶ手段であること、メソッドと動作可否を引数にとること、ActionやFuncの元になるラムダ式の仕組みがあることをお話したものの、自分でもあまりしっくりこず…

勉強していくための記事とか添えれたらよかった気がしました。

他にもあった気がしますが、覚えてるのはこれくらいです。

答えられなかった質問

iOSのプロジェクトをiPhone実機でデバッグするために必要なこと

iOS持ってなくて、事前にも調べてなくてその場で調べました。

が、強い人が教えてくれてました。

Xcodeから設定してましたがよくわかったないので調べてみよう。

Androidのエミュレータが起動できない

今の自分の環境では特に問題なく動いた(理解してるわけではない)ので、何かあったときに何もわからず…

別の方に助けていただきました。

エミュレータ系は環境構築でハマるお決まりなのでもうちょい勉強しといてもよかったかもですね。

まとめ

自分の力不足感は否めなかったものの、自分が勉強できたこと、本質的な提案ではないけどハンズオンを進めるための手助けにはなった(はず)ということで勇気を出して申し込んでみてほんとによかったなぁと思いました。

次はこのイベント(初心者歓迎XamarinのLT会!Xamarin入門者の集い #3)で、JXUGでは初めての登壇です。

まだ1ヶ月半くらいあるので、それまでにもっと強くなって臨みます。

弊社freeeでもXamarin案件があるので、興味ある方ぜひお声がけください!!

日本を変えたいWindowsアプリエンジニア募集!!

6/22の 第6回 Tokyo Jazug Night のLTで登壇してきました。

JAZUG

Japan Azure User Group (通称JAZUG) は、Microsoft Azureを学び、楽しみ、活かす、日本のユーザーグループです。2010/8/26に結成したばかりのコミュニティです。ぜひ、一緒に作っていきましょう。 ちょっと興味がある=ゆるふわな方 から 実ビジネスで使うんだよね な方まで歓迎。 職種はなんでもござれ。 ※プログラマ~企画者、デザイナ歓迎。ゆるふわなコミュニティとお考えください。

発表した資料はこちらです。

connpass JAZUG (Japan Azure User Group) ページより

Azure FunctionsとAWS Lambdaの開発フローの違い

今回、社外・面識のない方が大半の場で登壇するのが初めてでした。そのため、なぜ登壇しようと思ったのか、これからどうしていくのかとかその辺書き残しておこうと思います。

登壇のきっかけ

マネジメント

色々あった気もしますが、根本にあったのは特に技術面での成長に対する不安だったと思います。

営業から業務プログラミングとか0でエンジニアへ転職したのが2015年の1月。

思うように伸びない時期が大半だった気もしますが、2017年4月、正式にロールとしてチームの運営的な部分もやっていくことになり、拍車がかかったというのが大きかったと思います。

当時といってもそんなに時間経ってないですが、こんなことを考えていました。

  • マネジメントも様々な技術分野同様、専門知識のある一分野なのでキャッチアップしないと
  • 業務として純粋にコード書いたりする時間減るかも
  • 技術大してないのにマネジメントってなんというかダサい

マネジメントが技術的成長を妨げるとは全く思ってなくて、技術的に成長していける確認が持てていないタイミングでマネジメントもやる絶望感がただただありました。

インプットの質を高めるためのアウトプット

チームではMicrosoft関連の技術を扱っていて、品川でよく開催されている勉強会にけっこう頻繁に足を運んでいました。

3/25に参加したのがこちら。

.NETラボ 勉強会 2017年3月

.NETラボ 勉強会 2017年3月のまとめ #dotnetlab

後の懇親会で色々と話を伺っていると、雰囲気的に自分も登壇できたらなぁと思いました。

そしてたまたま当日目について記事がこちら。

“ただの興味”がいつか武器になる–及川卓也氏が語る、一流エンジニアのアウトプット法

インプットしないかぎりアウトプットできないので、最初にアウトプットするということを続けていくと、必然的にインプットしなければいけなくなるのです。

僕がよく勉強会で言っているのは、「ライトニングトークは敷居が低いから、とりあえず枠を押さえちゃえ」と。それで手を挙げて、「こういうネタで話そうと思ったけどダメでした」と言っても、やさしい勉強会やコミュニティなら許してくれます(笑)。”>僕がよく勉強会で言っているのは、「ライトニングトークは敷居が低いから、とりあえず枠を押さえちゃえ」と。それで手を挙げて、「こういうネタで話そうと思ったけどダメでした」と言っても、やさしい勉強会やコミュニティなら許してくれます(笑)。

あと、デザインパターン勉強していて、けどなんかしっくり来なくて「どうやって勉強したらいいですか?」って聞くと、

「実際にデザインパターンが必要な必要な開発・シチュエーションに出会って適用すること!」

っていうお話をしていきました。これは登壇のきっかけではないのですが、自分の「技術的成長に対する不安感」の核心なので後でまた触れます。

今度はどこで話すかというお話です。雰囲気的に3月に参加した.NETラボさんでお話できたらなぁと思っていました。

が、毎月第四土曜に開催されるこの勉強会は参加できないことが多く、どうしよう、と…

思っていたときに4/22のGlobal Azure Bootcamp 2017@Tokyoに参加してやっていく気持ちが高まり、5/17のJAZUG女子部 第11回勉強会で今回登壇した第6回 Tokyo Jazug NightにLT枠があると知って(?)20秒くらい悩んで申し込んでみました。

ネタはまだない。

話すネタ

そう、申し込んでみたものの何も決まってない。

そもそも5分のLTってどういうのあるんやろう…

  • 最新情報・動向
  • 新しい技術試してみた
  • 導入したときのtips
  • Deep Dive
  • 俺の作ったサービスを見てくれ
  • なんとなくエモい話

とかとか?形から入ると一番大事な部分、話す内容がない。

折しも社内ではピアレビューというのがある時期。

会社では定期的にマネージャー以外にも近くで仕事をする同僚から良い面と良い面を伸ばすために必要なことを書いてもらう機会があります。

そこでもらったコメントの一部がこうでした。

  • 得意分野ができて技術をインプットするサイクルはうまく作れるようになったと思うので、今度は情報をまとめるだけじゃなくアウトプットを意識するといいと思う。ここで言うアウトプットは社外での発表とかそういうものではなく、ちゃんと技術を形にしたものであるべき。
  • Webアプリ開発などの基礎的なスキルはまだまだ不足していると感じるので、引き続きエンジニアとしてのレベルをトータルで1段あげれるような取り組みはしていったほうがいいと思う。これも勉強会に参加するとかじゃなくて手を動かす時間を取ったほうがいい。

まさに自分が直面している問題の話でそうだなぁと思う一方で、もっと意図が知りたいと思ったのでランチのお時間いただきました。

誤解を恐れつつまとめると

「自分が困った問題の原因を考え抜く、調べきる」

です。

そういうわけで、LTするにしても、LTのためのネタ集めをするのではなく、問題に向き合うことを大前提にすると決めました。

その課題を解決する手段として、今回であればAzure技術を位置付けるような形で話できるのが理想であると。

先ほども少し触れたように「デザインパターンどう勉強したらいいですか」みたいな質問をしてしまう前提として、漠然と自分の打ち手がないことへの不安から何となく教科書的なものを一通りさらっていくような勉強してしまうという自分の弱点があります。

体系的な知識が必要な場面はあるとは思うものの、自分に圧倒的に足りてなかったのは問題そのものに向き合う姿勢でした。

サーバレスアーキテクチャ

今回LTで話したのはAWS Lambdaの話とAzure Functionsの話です。

サーバレスアーキテクチャとか、話は最近よく聞くし、ポップでキャッチーな響きなので登壇後も優しい方々がいいねやリツイートしてくださいました。

もちろん、このLTの準備はサーバレスアーキテクチャに始まっていなくて、メインは

こうだったのが

こうなった

というのが中核です。

アプリへのレスポンスを改善するためにとった手段が最終的にサーバレスアーキテクチャになっただけで、beforeとafterの間に移行のための別アーキテクチャがあったりします。

とはいえ、手段としてのAWS Lambdaの特性を知るためのAzure Functionsの勉強はとても有益でした。

  • 「サーバレスアーキテクチャ」としてメリット・デメリット
  • 制限事項への対応
  • 新機能の意図

は特定のプラットフォームにだけ活きるものではなく、両者に活きるものだからです。

LTのスライドだけ見ると、ちょろっと調べれば何となくまとめられてしまいそうな内容になっています。しかし、最終的な成果物がどういう形であれ、問題に向き合うプロセスは別に形にしたり、こんな風に書き留めておきたいと思っています。

登壇の振り返り

そういうわけで、7/25実施の第7回 Tokyo Jazug NightにLT枠で既に申し込んでいます。

よりよくしていくためにほんのちょっと振り返ります

Good

  • LTに臨む指針ができた
  • 会社でMS関連の技術扱ってることをLT後も含めて伝えられた
  • 他社の方と一緒に何かをやるきっかけができようとしている

Challenge

  • 間違ってる部分があった
    • シーケンス図→会社の人に教えてもらった。修正済み。LTくらいなら先に会社でさっとやってしまうとよさそう
    • Azure Functionsの実行時間は5分から10分に伸びた→LTの準備段階で参考にさせていただいたブログ書いてらっしゃる方のLT資料に対するご指摘。ありがたい。完璧に準備するのは無理なので、指摘もらった点は資料に反映していくようにしよう
  • 緊張しすぎわろた→もうちょい練習しよう
  • 平日準備厳しい→土日に8割方終わらせても平日に残りやり切るの厳しいタイミングもあるので、平日は練習するだけ、練習時に気づいたこと直すくらいに…
  • 変換コネクタ貸してもらえなかったらアウトだった→type C to HDMIしか持ってってなかったけど、端子トゲトゲの青いやつだった。コネクタ買っとくかな…

次回もがんばるぞー

スライドにも書きましたが、この本よかったです。今AWS Lambda始めるならこれ!という感じです。

今日はALGYAN主催の「IoT ALGYAN(あるじゃん)2周年記念・IoT祭り2017!機械学習 豪華3点盛+IoT」に行ってきました!

IoTには機械学習がつきもの!ということで、AWS、GCP、Azureのユーザグループからそれぞれ各プラットフォームの昨今の機械学習事情を勉強させてもらえる、という貴重な勉強会@品川Microsoftでした。

コミュニティ

ALGYAN(あるじゃん): 日本から世界へ、明るく楽しくIoYT(The Internet of “Your” Things)を広めよう! という、熱く真面目なコミュニティです! あなたもコミュニティーメンバーになって(会費無料)、わくわくしながら世界のIoYTを盛り上げましょう! https://www.facebook.com/groups/ioytjp/ (←登録必須:無料だし)

とのことです。

勉強会

IoTには馴染みまったくなかったですが、最近機械学習の勉強してるのと、データの発生源としてのIo「T」という視点で聴いてるとシンプルに楽しかったです!

ハッシュタグ

お品書きとスライド

スライドはconnpassやtwitterで見かけたものを適宜追加していきますー

概要はconnpassより。

JAWS-UG「AWS で始めよう!はじめての機械学習

発表者: 中丸良さん
JAWS-UG AI 支部・コンテナ支部コアメンバー。AWS 認定 DevOps エンジニア・ソリューションアーキテクトプロフェッショナル。
概要: 機械学習、特に深層学習に注目して各クラウドのサービス・状況をみながら、AWS を選択する理由やその上手な使い方をご紹介します。デモを交えて実例も見ていただけます。

TensorFlowとGCPの話

発表者: 下田倫大さん
TFUG(TensorFlow user Group)主催者
概要: 2/15に発表されたTensorFlow v1.0を中心に、GCP上の種々のデータ分析、機械学習サービスの話をします。GCP上のデータ分析のワークロードについてイメージを掴んで頂けるようなお話にします。

Azure MLとCognitive とBotFramework 豪華3点盛+IoT(裏話はトーク中心に)

発表者:梅崎猛さん
JAZUGメンバー、セゾン情報システムズ テクノベーションセンター
概要:
・質問応答システム with Cognitive Transrator +QnA
・BotFramework 現状と裏話
・IoTに絡んだなにか

LT

①「TED Azure IoT PoCキット(仮題)」

東京エレクトロンデバイス IoTカンパニー バイスプレジデント 福田さん

②「アットマークテクノのIoT戦略」

株式会社アットマークテクノ 代表取締役 實吉さん

③「さくらのIoT PlatformとMicrosoft Azureのちょうどいい関係」

さくらインターネット株式会社 IoT Platform Team 西田さん

④「ラズパイマガジンとIoT」

日経Linux副編集長(ラズパイマガジン編集長) 安東さん

⑤「スマホのパワーをIoTへ 〜ハイパフォーマンスボード『DragonBoard』で〜」

アロー・ユーイーシー・ジャパン株式会社 IoT事業推進室 室長 目黒さん

⑥「XamarinでIoT

ちょまどさん

⑦「PayPal User Group立ち上げました!」

PayPal User Group 本山さん

セッションメモ

JAWS-UG「AWS で始めよう!はじめての機械学習

発表者: 中丸良さん

機械学習ってなんだっけ?というところから、中でも話題の深層学習について。

TensorFlow、Chainer、CNTK等、深層学習を一から実装せずに済ませるフレームワークについては下記を基準に妥当なものを選定する必要があるという話はどのプラットフォームでやるにも大事なので詳しくなりたいなぁと思いました。

  • 対応アルゴリズム
  • 動作端末・環境
  • 計算速度/リソース利用効率
  • 利用可能な言語/手続的・宣言的
  • スケーラビリティ/複数GPU、並列サーバ対応
  • 情報の豊富さ/エコシステム/商用サポート

そして、チュートリアルならまだローカルのpythonで済むものの、多様かつ大量のデータを扱うにはクラウドサービスを活用して環境構築するのがよいと。

機械学習関連のサービスはもちろん、GPUインスタンスや機械学習にもってこいのDockerイメージも。

次のLTでもJupyter notebook + Dockerは必須だという話がありました。

これが全部入りAMI

僕は機械学習(ガチ)の環境構築やったことないのであまり実感わきませんが、経験ある方だとありがたみがより深く実感できるようです。

環境構築一連の流れはこちら!
DeepLearning ハンズオン環境構築 @ MaruLabo × JAWS-UG

個人的にはまだローカルで十分そう…

TensorFlowとGCPの話

発表者: 下田倫大さん

TensorFlow、名前はよく聞くものの、version1系になったのが2017年2月というのはとても意外でした。

Google社内で

  • OK Google(音声認識)
  • Gmail(スパムフィルタ)
  • Google Photo(画像の自動分類)
  • Google 翻訳(翻訳の自動学習)

で活用されていて、2015年の11月にオープンソースに。

Google Trendsでの人気度動向僕も今ちょっと見てみます。

セッションでもあったようにかなり地域差もあって面白いです。

リンククリックしたらそのまま見れるのでよかったらどうぞ!

コスト関数の動きや分類度合い等いろいろ可視化できるTensorBoardもいい感じです。

TensorFlowの技術的詳細はこっちのスライド見ると幸せになれるとのことでした。
× TensorFlowは深層学習に特化したツールである
◯ TensorFlowはデータフローグラフを利用した数値計算のためのオープンソースのソフトウェアライブラリである

あとはJupyterをベースとしたGCP特化の分析環境として紹介されていたGoogle Cloud Datalabが気になりました。

AzureにもMicrosoft Azure Notebooksがあるように、今のところJupyter Notebook形式で分析のデバッグ、記録、共有していくのはデファクトな感じになってるみたいですね。

ただ、Google Cloud Datalabはpythonの3系に対応しておらず、GPUインスタンスも使えないことから伸び代あります!状態。
Datalab(+GCP)を中心にしたデータ分析環境

Azure MLとCognitive とBotFramework 豪華3点盛+IoT(裏話はトーク中心に)

発表者:梅崎猛さん

まずはこちらのチュートリアルのお話。

Machine Learning のチュートリアル: Azure Machine Learning Studio で初めてのデータ サイエンス実験を作成する

Azure MLはデータ準備→モデルトレーニング→スコア付けとテストをGUI操作するとそのモデルをAPIとしても使えるというサービスです。

機械学習のフローをモジュール化し、パズルのように組み替えがらモデルを作ります。

豊富なチュートリアルを見つつ、チートシートを参考にしてアルゴリズムを選びつつ…

作ったモデルはAPIとして公開できるので、しっかりバッグエンドまで面倒見てくれるところが魅力的です。

MicrosoftのAI投資は基盤からサービスまで徹底してる様はこのブログの記事(勉強会レポート…)でもとりあげてきました。

.NETラボ 勉強会 2017年3月のまとめ #dotnetlab

まどすた #2、Visual Studio 2017 リリース記念勉強会のまとめ

TensorFlowもAzure GPUインスタンス上で!

GPU版TensorFlowをAzure NCシリーズ上に構築する

まとめ

コミュニティでっかい!今回はプラットフォームごとのユーザグループ複数分野で集まってたのもあるとは思いますが、めちゃくちゃ盛り上がってますね。

自分の業務がWebだから余計に感じるのかもですが、きゅうりの分類とか普通にわくわくしましたw

今はまだローカルでなんとかなる範囲の勉強してますが、そのときもフレームワークそれぞれの特徴の差異はまとめていこうと思いました。

クラウド上のリソース使うときはそもそも環境を作っていける人でないのでその辺も強くなれたらよいなぁ…

あと幸運にもいただきものが素晴らしかったのでとてもテンション上がるいい1日でしたー

勉強会に参加したらブログにまとめるマンです。

今日は.NETラボ主催の勉強会に行ってきました!

コミュニティ

.NETラボ: .NET技術やマイクロソフト製品について勉強するコミュニティー。毎月第4土曜日に定期開催しています。

とのことです。毎月開催タイミング決まってたら心の準備しやすいですね!

勉強会

今日は.NETラボ 勉強会 2017年3月ということで、テーマは幅広くということでしたが、Microsoft Bot Frameworkネタが2件 + LUIS(Language Understanding Intelligent Service。Cognitive Servicesの1つでリクエストに含まれる文を解析して文の目的と構成要素に分解してレスポンスを返すよう学習させられるAPI)今すぐ手を動かして開発したくなるような話題が特にアツかったです。
ハッシュタグ #dotnetlab

お品書きとスライド

上がってるものはまとめていきます!概要はconnpassより。

  • .NETラボ紹介とご案内(木澤朋和さん
  • マイクロソフトMVPアワードプログラムのご紹介(木澤朋和さん
    • マイクロソフトMVPアワードプログラムのご紹介と新しくなった申請方法についてお話します。応募を検討されている方のご相談にも乗ります。
  • 今こそMicrosoft Bot Frameworkを学ぼう中島進也さん
    • 2016年3月末に公開されたMicrosoft Bot Framework。 もうすぐ1年が経ち、そろそろPreview版から正式版になるのではと期待が高まります。 そこでBot Frameworkを使用したの開発を始めるにあたって必要な概要を俯瞰的に紹介いたします。
  • 最近流行りのエンジニア田舎へ移住ってどうなの?(藤原隆博さん)
    • ①移住を志した経緯 ②移住直前直後の失業時の苦労 ③田舎のit仕事って? ④客先常駐型の仕事はある? ⑤6次産業化、廃校利用等の新ビジネス ⑥マスメディアへの露出 ⑦兵庫県のit移住の補助金制度 ⑧移住に対する所感。
  • BotFramework と LUIS を使ったアプリの開発横浜 篤さん
    • BotFramwork(とBotServices)の概要と、Cognitve ServisesのLUISの概要を説明し、サンプルのアプリで開発の一例を紹介します。
  • 進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説~(日本マイクロソフト テクニカルエバンジェリスト さっくるさん
    • 今年の前半に公開が予定されているWindows 10 Creators Updateにより、Edgeには新しくさまざまな機能が追加されます。本セッションでは、Creators Updateで追加される可能性が高い新機能について、既存機能のおさらいやデモを交えてご紹介いたします。
  • ライトニングトーク & ディスカッション

セッションメモ

マイクロソフトMVPアワードプログラムのご紹介(木澤朋和さん

最近毎月申請できるようになったMVPについて。

特典はめちゃ多い!

  • MSDNサブスクリプション
  • Office 365 ENterprise E3提供
  • MCP受験料50% off
  • XamarinUniversityサブスクリプション
  • MVPグロサミ
  • Channel9での動画配信
  • 技術情報の提供(NDA)
  • 賞状と盾

それよりも、もちろんMVPになることが目的でないし、申請の要件にあるコミュニティへのよい影響や情報発信も受け取り手があってこそなので感謝を忘れずにというよいお話でした。

勉強会の後にお話聞かせていただきましたが、エンジニアとして大きくなるべくよい情報の発信(をするための鍛錬)やっていきたいなぁということで記事書いたりLTしたりやっていくことにします。

MVP詳細は公式ページにて!

今こそMicrosoft Bot Frameworkを学ぼう中島進也さん

Bot開発するためのフレームワークもいろいろ出てるんですね!

  • よさげなところ
  •  ワンソースでマルチチャネル(Slack、Skype、Facebook…)対応
  • Channel Inspectorで各チャネルにどの機能が対応してるか教えてくれる
  • 開発から公開までの全行程サポートが手厚い
  • 注意!
  • .NET Core未対応
  • Bot Directoryで公開することが前提で、プライベートで運用したい場合は要相談
  • 会話情報は匿名化して収集される(かも)
  • 気になる
  • Direct Line API: connector未対応のプラットフォームやスマホアプリと接続するためのしくみ
  • Xamarin Shopping App
  • C#でLine bot

よく使ってるプラットフォームにのっかって機能提供できるはめちゃくちゃアツいですね!

新しくアプリを入れるモチベーションがない人でもLineだったり、その他よく使ってるSlackやチャットサービスに向けて対話的なインタフェースでサービス提供できるとなったときに夢広がりますね。

と思う一方でLineにそういうサービス(アカウント)接続したところで継続的に使った試しはないので研究してみたいですね。

最近流行りのエンジニア田舎へ移住ってどうなの?(藤原隆博さん)

広い庭で犬と駆け回りたい…

というのはおいといて、僕は東京好きですが、土地の商機やチャンスを見出して生きていくのも素敵だなぁと思いました。

BotFramework と LUIS を使ったアプリの開発横浜 篤さん

Microsoftの言う「AIの民主化」の実感高まるセッションでした!

一から実装するには大変なAIパーツをGUIで設定するとAPIで利用できるし、もちろんbotから使うこともできる。

bot開発は中島進也さんの発表にもあった通り全フローのサポートが厚く、こんなエミュレータも!

コミュニティは盛んで資料も豊富!

4/8〜9にはハッカソンイベントも!

強いなぁと思いました。

進化するEdge! ~Creators Update版の新機能から既存機能までまとめて解説~(日本マイクロソフト テクニカルエバンジェリストさっくるさん

圧倒的情報量!

Edgeほぼ使ったことないですが、少なくともInternet Explorerに抱いていたイメージとはいい意味でかけ離れていました。

古いIEをエミュレートしたり、Windows Defender Application Guard(preview, 信頼されてないサイトを開くときに仮想環境でブラウザ立ち上げてチェックしてくれる)エンプラ系の設定も完全にスルーしてたので追っていきたいですね。

ディフェンスもガードもするんですか…!

あとエクステンションとUWPやWin32アプリを連携できるのは個人的にとてもとても気になるので攻めたいですね。

ライトニングトーク & ディスカッション

まとめ

自分も登壇しよう!と思いました。

今日聞いた話ももちろん、最近人と話しててぶつかり稽古が必要…

たまたま今日読んだこの記事(“ただの興味”がいつか武器になる–及川卓也氏が語る、一流エンジニアのアウトプット法)にも思うところがありました。

業務的にもWindowsデスクトップ(+ サーバサイドや関係するフロント)を作るのに加え、日々オープンに、ダイナミックに発展するMicrosoftの技術を取り入れてガンガン開発していこうぜ!というチームにしていくのでやっていくしかない状況です。

下のリンクの要件はちょっと古くなってますが、そんなチームを一緒に盛り上げていく仲間も募集してるので、ちょっとでも興味ある方は気軽に声かけてください!
日本を変えたいWindowsアプリエンジニア募集!!

Visual Studio2017のリリースの興奮冷めやらぬ中、C#関連の勉強会が2つあったのでそのまとめです!

まどすた: Windows 10 や Windows 10 Mobile、Windows Desktop など、Windows クライアント アプリ開発に焦点を当てた技術系勉強会コミュニティです。
日本C#ユーザー会: 日本のC#ユーザーを応援するコミュニティです。不定期に懇親会や勉強会を開催してきます。

ということで、C#で困ったときにググると行き着く方々がたくさん登壇したり、twitterタイムラインでうぇいうぇい言ってる楽しい感じでした。
#まどすた
#csugjp

Microsoft社の隣り合ったセミナールームで同時開催!ということで行き来できるもののどちらのセッションも聞くことはできません。

なので、この記事は僕が聞かせてもらった内容はまとめつつ、もう片方もスライド集めたりしてどちらの勉強会の内容も振り返れるようにできたらいいなぁと思います。

当日のスライド

見つけ次第足します。見つけられないかもしれないので、優しく教えてください…

僕が聞いたセッションには★がついてて、下の方にまとめなり調べたことなりを書いていきます。

まどすた #2

Visual Studio 2017 リリース記念勉強会

セッションメモ

自分の理解不足のところを調べたり、自分が思ったことを足したりしてるので、セッション内容そのものではないことをご理解いただけると幸いですm(_ _)m

①マイクロソフトの最新テクノロジー(高橋忍 さん

1時間のセッション。終始ワクワクするものでさすがやなぁと思いました。

大きく分けて2つ、MSの注力分野であるAIの民主化とMixed Realityのお話です。

Democratizing AI
この記事(Microsoft Ignite ~ “Democratizing AI” が実現する今後の方向性)にもあるように、AIをいろんな人に使えるようにセグメント別に様々なサービスを提供しているというお話。

レイヤーとその具体例としては、

Agent: Cortana等ユーザーと直接やり取りを行うUI、いわばout of box
Application: Office 365等、情報を活用し、洞察を得て、次の一手へのヒントを提供
Services: Cognitive services、Bot Framework等、情報の分析や解析を行うエンジン
Infrastracture: Azure等、アプリケーションやサービスをを支えるプラットフォームとしてのクラウド

というものです。AIサービスとしても、部品としても、基盤としてもなんでもありですね!

中でも Cognitive ServicrsはAPIも豊富。研究しがいありますね!(ほんとにいっぱいあってアクセスするとびっくりすると思います…!)

Microsoft Cognitive Services を始める ~ 全21種のサービス概説と開発準備

APIとして使え、叩けばjsonで結果が返るので開発しているサービスに組み込んで使ってみたいものです。

中でも動画解析が今アツいようで、動画ないで何が起きているかが文章化できるまで進んでいるようです。

ただ、既存の動画に対して行うもので、ストリーム処理は開発中のようで、実現すれば防犯にも使えるかもとのことでした。

音声認識の精度向上も凄まじく、世界記録更新(単語誤認率を5.9%)みたいな話題もありました。

マイクロソフトが GPU の活用で音声認識の世界記録を更新

人間で4.x%とのこと。

ただ、その数字を追うというよりも、生活にインパクト与えらえる方が大事というお話への共感が大きかったです。

紹介されていたこの動画とてもよいです。

CPU→GPU→FPGAの話はよく理解できなかったので割愛です。

あとはAmazon alexaとの対比で出てきたCortana Skills KitとCortana Devices SDKのお話。

CortanaをWindowsやAndroid、iOSはもちろん、このSDKベースの様々なデバイスで活用できるようにするという画期的なしくみです。

先発のAmazon.comの音声アシスタントAlexaで用いられる「Alexaスキル」のコードを転用することもできるそうです。

de:codeでセッション予定(?)とのことでかなりそそられるお話でした。

HoloLens

Mixed Realityとは何かについて。

Mixed Reality: フィジカルとバーチャル世界の融合。両世界の干渉がある世界。例えば、バーチャルな物体が床に落ちて壊れるようなこと。

HoloLensはスタンドアロンなデバイス。CPU、GPU、センサとか全部入ってる。もともとキネクトで開発やってたチームが作っていて、ジェスチャー認識のためのプログラムの強化版も入っているそうです。

ドイツのメーカーのThyssenKruppは既にエレベーターのサービスにHoloLensを導入していて、

  • 過去のメンテ状況表示
  • 今日の作業表示
  • アラートが出たときにどうするかの指示
  • 本社のエキスパートにスカイプで呼ぶ
  • 本社では作業者が見てる画面を確認でき、本社から画面にペンで矢印等書ける

みたいなことが実現してるんですって。めっちゃわくわくしませんか?

操作はwin10と同じようなもので、UWPベースでアプリが作れるとのことで高まりますね!

Xamarin.Forms とコンソールアプリでモデル層を共通化してみたYuka Abuno さん

C#のGUIアプリはM-V-Whateverで作りますが、その中のMVVMはFat View Modelになりがち!

でも、いろんなクライアントアプリが作れるC#( = マルチタイプ?)でアプリを作る上ではModelをしっかり作りこむことで効率的に開発することができる。Modelはアプリそのものなんだというお話でした。

具体的にご自身で作られた、バックエンド: ASP.new、クライアント: web、Xamarin.Forms、コンソールなチャットサービスを例に挙げモデルを作りこむお話でした。

これがサービスのコード。

yuka1984/ChatXFSample

自分で作ってるXamarin.Forms製の日用品管理サービスも(相対的に)Fat ViewModelになってきてこういう設計のお話を渇望していたので、じっくり読んで勉強したいですね。

途中で出てきた

も調べてみようと思いました。

③Unity の素人がスマホゲームをリリースしてみた ~ 副業解禁!? でおこづかいをゲットしたい ~(matatabi-ux さん

スライドは敢えてアップしないとのことだったのであまり詳細は書かずに…

群雄割拠・地獄絵図、個人でも出せばDLしてもらえる時代は終わったのスマホゲーム市場において、

  • iOS、Android、Windowsのダウンロード状況は?
  • 何に対して課金してもらえる?
  • ランキングを上げるには?
  • どういうジャンルのゲームを攻めるべき?

というのを分析して実践したお話。

単に面白い!みたいのではなくて、収益を得るためにとるべき論理的なアプローチで成果を上げているのは天晴れでした。

紹介されていた放置系ゲームの雄、ひとりぼっち惑星が印象的でした。

確かにバズってたなぁ…

④Desktop Bridge でデスクトップ アプリをストア公開するまで(亀谷学人 さん

Classic Desktop app(WPFやWindowsForms等exeファイルを実行するやつ)をストアアプリ(UWP)に変換(※変換ではない)するための手順や注意点についてです。

これはスライドぜひもう一度見たい & みなさんにも見て欲しいと思う内容でした。

というのも、今春リリース予定のWindows Creators Updateにはストアアプリ以外のアプリインストールを制限する機能が入るという話があります。

Visual Studio Codeまでインストールできないとか本家まではじいてたり、こういうの導入しそうな企業はこの設定にするように社内調整するのに時間かかったりそもそも運用できるのかとか色々あって直ちには進まないかもしれません。

ただ、MSとしてもストアアプリ介す世界にはしたいと思うのでストアアプリ対応需要は近々あるのではと戦々恐々としながら聞いてました。

お話にあったデメリット・メリットを実際に検証したいなぁと思いました。

メリット

    • 優れた展開プロセス
    • ストア掲載
    • クリーンなアンインストール
    • UWP機能の活用
    • マネタイズ
    • シームレスな更新
    • UWPの機能でライブタイル、コルタナ、トースト通知等UX改善に使えるものは使っていきたいですね!

一方、レジストリやAppDataへの書き込みがリダイレクトされ、ストアアプリ用の領域に書き込まれる等意図しない挙動や、権限周りで落ちる部分ないかは慎重な検証が必要そうです。

そういう知見はどんどん共有していきたい!

あと、VS2017専用拡張機能でDesktop bridge環境でデバッグできるというのはだいぶお世話になりそうですね。

Developing and Deploying .NET Core on Linux田中 孝佳 さん

わたくし.NETのWeb自体をよく理解しておらず…

stagingやproductionの環境変数の切り替えの話、private nugetサーバの話、SELinuxは有効にしようという話…

⑥Visual Studio 2017 の新機能(大田 一希 さん

URLにhttps://aka.ms/okazukiが追加されたokazukiさんのVS2017の注目新機能セッションです。

新機能に関する記事やイベントはあちらこちらで見かけますが、精緻なライブコーディングが多くすごかったです。

あまり取り上げられてない気がするけどヤバい機能としては、

Run to Click
ブレークポイントでとまってる状態からある程度先まで実行を進めたいとき、「ここまで実行」というGUI操作ができるのはおいしそうです。
ctrl + F10でも。

コーディング規約の共通化
他の言語だとライブラリ入れたり大変そうですが、this入れる入れないとかも「説明」「優先順位」「重要度(エラー、警告、提案…)」というフォーマットで細かく設定できる!

NullReferenceExceptionが詳細に
parent?.child?.nameみたいに書いてるときにnullで落ちてもこれまで行数くらいしかわかりませんでした。

でも、childがnullなってるで!みたいに細かく表示しれくれるようになりました。便利!

クラス名、ファイル名の整合性
どっちかだけ変えてもう片方は変更しそびれる…みたいなシチュエーションで、もう片方も変えとく?みたいに聞いてくれます親切。

XAMLerへの福音
デバッグ実行時リアルタイムで変更を反映してくれる!圧倒的にヤバい!

Xamarin.Formsにも早く来てくれますように…

感想

Visual Studioが新しくなるのはもちろん、Microsoft Platformがオープンに、多様に発展していく様子はほんとにわくわくするなぁと思いました!

クライアントだけでなく、インフラだけでなく、サービスだけでない、かつどれも日に日に新しくなっている。

広くマスターしていきたいなぁと思いを新たにした1日でした!!!

ということでMSのイベントに行ってきました。

昨日Visual Studio 2017の正式版がリリースされ、本国でKeynoteとDemoがあったんですが、それを見つつMSのエバンジェリストの人がわやわや喋る + LTみたいなイベントでした。

立食パーティみたいな感じであんまりメモとったりできなかったのですが、覚えてる範囲でVisual Studio 2017の目玉?を書いときます!

インストーラ

  • 超絶はやくなった。今まで2時間とかかかってたのが10分に!(※オプションによる)

本体

  • 起動もはやくなった。50%減!(※パッケージ* による)
  • ライブユニットテスト
    • 割とVS2017の目玉扱いされていて、コード変更して1秒後くらいにunitテストが自動で走り、落ちてるテストの行の横に×ついたりする。

こんな感じ!


Visual Studio 2017 RC のライブ ユニット テスト より

動画

  • コード検索絞り込み
  • mつけるとメソッドだけに絞れたり
  • エディタコンフィグのサポート
  • suggestionという形式でエディタにコーディング規約埋め込める

C#7

コンテナ

Docker for Windowsにデバッガ使える、ステップ実行できる!

Xamarin

  • インストーラ性能改善
  • テンプレート場面場面で適切なのに絞られて表示されるようになった(元々選択できるものすべて羅列されて大変だったんです…)
  • モバイルのプロジェクトだけでなく、バックエンドも一緒に雛形作ってくれるオプションが出た
  • インテリセンス賢くなった(特にXAMLまわり)
  • アプリのUIプレビューで階層構造が立体的に表示できるようになった(?)

Visual Studio Mobile Center

  • モバイルアプリのテスト、ビルド、配布、クラッシュレポート等統合管理できるやつに直接VSから繋げるようになった
  • windowsもcoming soon画面が出た
  • react nativeも入った(MSのプラットフォームで作ってないものでも受け入れていく意向)
  • github連携
  • ブランチ毎に
  • テストはエミュレータでない。デバイスファームにapk投げつける
  • 招待制だったがそうでなくなった

DevOps

  • Redgate Data Tools)が組み込まれた
  • DBスキーマからマイグレーション スクリプト作れる?
  • SQL Server標準ツールもインテリセンス強化

続きはde:code 2017)ということで見に行きたいなぁ…

まだ2015使ってますが諸事情によりサービスパックが出るまでは上げない予定です。

入れて試してみないと実感わかないですが、いろいろ試したいですね!

個人的にXamarin.Formsで家庭の日用品管理アプリを作ってるので、Visual Studio Mobile Center使ってみたいなぁと思ってます。

Xamarin.Formsで家の日用品管理アプリを作り始めたお話

Androidは実機でビルド・デバッグしてますが、使ってるmacにXamarin入れる容量的余裕がなく…

いろいろと楽しみですねーーー

エンジニアになって2年ちょい、ブログでは人生の進捗報告しかやってこなかったのでたまにはエンジニアしようと思います。

勉強した内容とかQiita書けばええやん、社内のことならQiita:Teamでええやん、と思ってたんですが、一時の気の迷いです。

 

サービスが作りたい

エンジニアになるまで人に教えてもらったり、独学したりする上で開発を勉強するなら自分で何か作るしかない!

ということで作ったのがこれとか、

【重大発表】飲み会幹事向け検索サービス「助三(すけさん)」リリース!!!

これとかでした。
http://toshi0607.sakura.ne.jp/kakusan/index.html

そして、物心ついてからは自分でサービス作ってない!

業務以外で書くコードは大体写経。別に作りたいものないし…

とかとか普段通りの休日を過ごしていたときに出会ったのがXamarin.Formsでした

Xamarin.Formsってなに?

Xamarin.FormsというのはC#で書くとWindowsのストアアプリはもちろん、iOSアプリも、Androidアプリも、macのデスクトップアプリも、もうちょっとしたらTizenアプリも作れてしまう便利なプラットフォームなんです!(雑)

※いろいろと誤解のある表現なので、厳密に知る必要がある方はいろいろググれば出てくると思います。
Xamarin(ザマリン) とはなんぞや

昨年Microsoft社がXamarin社を買収してVisual Studioと関連付けて無料で使えるようになったこともあって注目する人も増えて気がするし、Microsoft社も積極的に宣伝してる様子です。

そんな中、昨年Dev Days Tokyoというイベントがあり、参加してみると感動したのでXamarin.Formsで何か作ってみたい!!!という気持ちが高まりました。

感動したというのも、

  • 普段書いてるC#でアプリが動く!
  • コミュニティ(JXUG: Japan Xamarin User Group)の方超絶親切

というのがあります。環境構築なかなかうまくいかなかったんですが、めちゃくちゃ助けていただいた結果、自分の書いたコードが自分のスマホ上でアプリとして動く感動を得ることができました。

家の日用品の在庫を管理するアプリを作ろう

割ととりあえずコード書いて動くもの作りたい、という動機が強かったものの、日用品管理でたまに困ることがありました。

スーパーに行ったときにケチャップ家にあったっけ?

お風呂でシャンプー切れてるうわああああああああ

みたいに、日用品・食料品を買える場所に行っても家にある在庫の数がわかんなくてもやもやする、日用品切れてから気付いてイライラする、みたいなことがあるのでそれを解決できるものを作ることにしました。

もちろん、もの切らしたくないならAmazonで定期便セットすればいいんですが、食料品とか絶対近くのスーパーで買うし、日用品は薬局行くし、そこ突き詰めることはやめてとりあえず動くもの作って改善していくことにしました。

というわけでStockIOというアプリを作りました。

gif動くかなぁ…基本的な仕様は

  • 買わないといけない = 在庫数が自分で設定した閾値以下
  • 買い物リストを更新(+をクリックして在庫数を増やす)するとリストから消える
  • 管理タブには管理したい在庫の名前、在庫数、閾値を一覧できる
  • 在庫の新規登録、更新、削除ができる

 

という、今のところ何の変哲もないCRUDがあるだけです。いつもAndroid端末を使ってるのでAndroid端末だけ動作確認してます。

iOSをビルドするためにはmacにXamarin入れてリンクしないといけないんですが、容量的に厳しく…

コードはこんな感じです!

https://github.com/toshi0607/StockIO

開発した内容とか今後実装したいこととかもGithubのissueで管理してます。

https://github.com/toshi0607/StockIO/issues?utf8=%E2%9C%93&q=is%3Aissue

アーキテクチャ

バックエンドはご多分に漏れずAzureです。

Azure Mobile Serviceというのがあって、DB準備してくれるのはもちろん、

  • オフライン同期
  • ユーザ認証
  • プッシュ通知

等々、モバイルアプリを作るうえで欲しくなるものが揃っています。

オフライン同期には対応してます(たぶん)。

これからの展望

  • Realmで動くようにする
  • ユーザ認証できるようにする(家族単位とか、複数ユーザで共有したい)
  • エンプティUIになるときアニメーションつける(Lottie使ってみたい)
  • 画像登録できるようにしたい
  • 在庫に対してお店を登録して、残数が閾値下回ってる状態でそのお店の近くに行ったらプッシュ通知くるようにしたい
  • iOSでも動くようにする
  • 登録作業もうちょいどうにかならんかなぁ…もはや写真だけでよいかもやし、写真撮るだけで名前入ったら楽そう
    • Azure Cognitive Services使いたい(機械学習モジュールがAPIで使える!!)

とかとかです。機能作るというより、技術要素かじりたいという思いの方が大きいです。

一応MVVMで書くようにしてるので、今それっぽくないところは(それっぽくないと認識できる程度に勉強して)直していきたいです。

ストアにもゆくゆくは上げたいな~

明けましておめでとうございます。

2016年は前半はブログを振り返る範囲では仕事面ではパッとしない感じでしたが、後半は色々な経験ができ、掲げた目標もそれなりに達成できて盛り返した感じでした。

プライベートは文句なしです。

2016年を振り返り、2017年に向けて色々と考えようと思います。

2016年仕事面

今年何を目指すかみたいなところは元々

  • Windowsプロジェクトを体制として確立する
  • JavaScriptと真剣に向き合う(「ニャンちゅう圧倒的にこれできないからこのプロジェクトはなしかなぁ」をなくす)
  • android触る
  • API!

をがんばる年にしたかったみたいです。

転職して1年が経ちました。2015年の振り返りと2016年の目標!

が、6月時点ではもっと目の前の技術に向き合わないと何も成果出せないと打ちひしがれてたみたいですね。

28歳になりました

というわけで、この半年間はC#でWindowsのクライアントアプリを書くことと、アプリをちゃんと使ってもらうためにフロント(Backbone.js + CoffeeScript + CSSな部分。まだまだ残ってるので…)を変えていくことに集中していました。

結果、担当してる部分で対応範囲、品質、利用状況どれもだいぶよくすることができ、半年前には想像できなかったくらい良い気分で今年を終えることができそうです。

ざっくりとした内容は年末のfreee Engineers Advent Calendar 2016に書きました。

技術的マイノリティプロジェクトで幸せに過ごすための5つの方法
まとめると、社内的にマイノリティな言語を使ってるプロジェクトにいても、

  • 少し抽象化すれば他の言語、プラットフォーム、プロジェクトで活かすことができる技術や手法はたくさん学べる
  • どんな技術を使うか以前に、問題を正しく把握し、解決できているかどうかに集中すると幸せになれそう

というお話です。

特に印象深かったのは次のようなことです。

情報を得るために情報を発信する

今年は敢えてブログではなくてQiitaで技術記事を書きました。C#のことを基礎から学ぶにあたっても、知らないからこそ調べて記事にして発信することでフィードバックはもらえるし、調べて詳しくなるしでいいことしかなかったです。

去年の2記事に対して19記事。書く抵抗もだいぶなくなってきました。

Qiitaで書いた記事

ユーザさんが抱える問題の解決にフォーカスする

いわゆる「プロダクトマネジメント」の本を読む機会があってめちゃくちゃ影響されました。

特にこの本は学ぶものが多かったです。

ユーザさんがあれほしい!これほしい!って言ったからあれやこれを作るのではなく、あれやこれの背景にある課題は何かをとことん考え、それを解決するものを作る。

会社でもよく言われます。

freeeを支えるマジ価値開発の極意

意識しても簡単にできるものではないので、こういうのを意識してうまく作られたプロダクトをたくさん触ってみたり、課題をあぶり出すためのよいフレームワークを勉強してみたり追っていこうと思います。

フロントエンドとの闘争

少しずつ勉強してきたフロントエンド(Javascript)もやっと触る機会がありました。

仕事ではBackbone.js + CoffeescriptとCSSにほんの少し触れ、プライベートではReactの勉強が進みました。

本体ももちろんなのですが、トランスパイルの仕組みが整理できてないので今年はもう少しプライベートプロジェクトで進められたらと思います。

KPIのトラッキング

ユーザさんに価値が届いているかどうか、そのための施策が有効か、それらを可視化し追い続けることの重要性をひしひしと感じました。

基盤作りからクエリまで、ほぼ何もできないので今年は勉強しないと…

というような感じでした。総括すると、特に10〜12月のプロジェクトは自分がエンジニアになるときになりたいエンジニア像として掲げた

「技術寄りでサービスを考え、作り、変え、大きくしていくことができるエンジニア」

 

を体現したようなものだったのでとても有意義でした。

そして目指したい姿と、それに必要なスキルがもう少し具体的になったような気がします。それを踏まえて2017年仕事面でこんな風に過ごしたい!を考えようと思います。

2017年仕事面

「技術寄りでサービスを考え、作り、変え、大きくしていくことができるエンジニア」というのも2年経って少し変わってきた気がします。

サービスが立つべきはやっぱりユーザが抱える問題を解決できてるかどうかで、そのためにはどんな技術も頑張って身につけたいと思うようになりました。

また、特に解決したい、マジで価値あると思うのは「リスクをとって挑戦する人」が抱える問題です。

なので、目指したいのは

「リスクをとって挑戦する人が抱える問題を解決することができるサービスを作り、変え、大きくしていくことができるエンジニア」

です。

そのために必要な技術は意識的にキャッチアップしたいです。

特にデータを扱う領域で不足しているスキルは今年重点的に習得したいです。

整理すると次のようになります。

データを扱う領域

プログラミングなんだからそりゃなんでもデータは扱うだろう…という感じですが、具体的には

  • クエリ、データベース: 自分で早くKPIを追えるように、それが動く土台も詳しく
  • 機械学習: 経営者が一歩先に進むための判断をサポートするという文脈かついいタイミングなので追いたいです

基礎力向上

データ扱う領域はもちろん、エンジニアとしての身につけておきたい部分は引き続き。

  • 設計: 打ち手を増やして、サービスを作る、変える、大きくするを継続的によくするために。汎用的なデザインパターンとクライアントサイドの定石をまず身につけます。まだまだベストプラクティスを追うフェーズでよいと思っています。
  • フロントエンド: ユーザさんが直接的に触る部分をよくするための技術、問題解決できるサービスであることを伝えるための手段として。サービスで使われてるメインの技術をまずは追えるように…C#(WPF)的な文脈ではもうちょいxamlちゃんと理解しようと思います。
  • linux: もうちょっとコマンド自由に使えるように…去年はLinux標準教科書を環境作って追ってみたら多少ましになったので、その復習プラスサーバの負荷状況調べれるようになりたいです。

その他

日常的な作業を効率化したり理解深化したりとか興味本位だったりとかです。

  • git: 最低限もわかってない感があるので、本一通り見るのは最低限やります…
  • Xamarin: C#のコードが自分のスマホで動くのは純粋に楽しそう
  • エディタ: RubymineとVisual Studioもうちょい使いこなそう…

 

という感じで頑張っていこうと思います。求められる役割は四半期ごとかそれより細かい単位で変わるとは思いますが、ユーザさんの抱える問題が解決できるか?を常に考え開発していきます。

 

2016年音楽面

去年の目標は

  • 元気ハツラツ90年代をたくさん歌うこと
  • 久石譲さんの曲をピアノで1曲ちゃんと弾けるようになること
  • 心の底から歌い、届けること

だそうです!ピアノは皆無…好きで聴いてそれだけで満足していました。

ただ、今年も歌を歌う上の課題には1つずつ向き合い、潰していけたと思います。

1つ治ればまた1つ…みたいな感じで際限なかったですね。

相当な期間昼休み返上で練習すれば何とかなる部分もあればそうでない部分も…

まだまだ現役でがんばります。

2017年音楽面

個人として引き続き課題をつぶしていくこと、際限ない課題に向き合うことを諦めずに続けること。

これに尽きます。

あと会社で作った軽音部、人も増えてきたのでできる限りみんな楽しめるように頑張りたいです(あいまい)。

 

2016年家庭面・精神面

家庭面というセクションができる大きな変化の年でした。

一昨年マラソン途中棄権した男が東京マラソン完走するまでの過程とゴール

というわけで一昨年末に出会ったエンジニアと6月に結婚しました。

 

あと昨年のテーマであった「許す(問題にもっとフォーカスして解決できる人になる!)」はできませんでした。

原因は何かは『反応しない練習』という本を読んだらうんうんという感じだったので、そもそも「許さないといけない状況を生んだ自分の精神の未熟さ」を見つめる1年でした。

人に期待してためていらいらいしないように、今年は最初からぶつかろうと思います。

2017年家庭面・精神面

今年は海外旅行行きたい!

後結婚式なんらかの形でできると嬉しいです。

あと、すごい幸せなのでそれを当たり前と思わず幸せを維持できるように月々の生活を振り返ったり、仕組み化できる部分は仕組み化したりいい感じにやっていきたいと思っています。

そして「心身共に健康な状態を保つ」がテーマです。

具体的には睡眠を科学する、です。

今年もよろしくお願いします!!