僕はここだ!

読書記録とか、ポエムとか、メモとか、コードスニペットとか。まとまったのはQiitaにも書きます。(http://qiita.com/RyotaMurohoshi) 掲載内容は個人の見解であり、所属する企業を代表するものではありません。

dotnetConf 2016 Japanに参加してきた!

 2016/07/09(土)に日本マイクロソフトさんで開催された dotnetConf 2016 Japanに参加しました。

f:id:MRStar:20160709220546j:plain

 各セッションの感想などです。

dotnetConf 2016 Japan 開催にあたって ~ .NET の今と未来

 チャックさんとDrew Robbinsさんのセッション

 6/27に.NET Core 1.0がRTMになりましたね!日本からのContributionも多くなってきたそうです。

 デモが中心のセッションで「WindowsマシンでVisualStudioを使いASP.NET(.NET Core)のプロジェクトを作って、Macのマシンでそれを動す。」って内容でした。

 チャックさんとDrew Robbinsさんのデモプロジェクト中での画像イジリ合い、とっても楽しかったです。

.NET Standard Library

 BCL(Base Class Libarry)とMono、そして.NET Core用の基本クラスライブラリ群、それぞれどうなっているんだろう?差があるのか?あるならどんな差なのか?そしてこれらの差は今後どうなっていくのか?という疑問をもってました。

 岩永さんさんのセッションで「.NET Standard Library」ですっきりしました。

 発表資料

Xamarinの新しい話とMonoの深い話

 榎本さんちょまどさんのセッション

 ゆるふわなXamarinの新しい話を、ちょまどさんが、

 いくつかのトピックスを、ちょまどさんと榎本さんの掛け合いで、

 そしてMonoの深い話を榎本さんが担当されました。

 XamarinのMiguel de Icazaが登壇した本家dotnetConf 2016の2日目のキーノートは、「Xamarinを使う」より「Xamarinがどう動いているのか」だったようで、その補足説明的な内容だったようです。

 わかりやすかった~

 ちなみにちょまどさんいわく、ここ重要なポイントらしいです。

 発表資料(榎本さん)

MVVM Done Right with Xamarin.Forms and Prism

Brian Lagunasさんの英語セッション。

残念ながら、基礎知識がなくちょっと雰囲気を感じ取っただけでした。

英語セッションでしたが、すごい聞き取りやすい英語でゆっくりはっきり大きな声で話してくださったので、とっても聞き安かったです。

Brian Lagunasのプレゼン、おもしろい!!!

通訳の人もすごかったです。英語の慣用句とか英語のプレゼンでの表現とか、訳すのすごい大変そうでしたけど、とても楽しかったです。

.NET Core on RHEL

たなかさんのセッション

RHEL上での.NET Coreでのデモがメインのセッション

私自身LTや登壇をするのですが、デモとかライブコーディングは基本的にやりません。 イレギュラーなことへの対処が苦手なので。

チャックさん、Brianさん、たなかさん、ばっちり落ち着いてデモをされていてすごいなーって思いました。

発表資料

ASP.NET Core

しばやんさんのセッション

  • ASP.NET CoreとASP.NETは違う
  • 広報互換性を捨て去った
  • System.Webを捨て去った

らしいです! しばやんさんも、デモ!すごい

.NET Core/VS/VSCode他ツール類

ぼんぷろさんのセッション

ライブコーディング、もといライブツールインストールをしたこれまたデモセッション。

ハッシュタグ #dotnetconfJP、がついたツイートをプレゼン中の画面に表示していました。

Unityの勉強会で同じことをされた方がいてその時には、その勉強会のハッシュタグがトレンド入りしたことがありました。

こちらの勉強会でも盛り上がりましたね!

懇親会

すてきなピザ、サンドウィッチ、ドリンク、そしてケーキがふるまわれました!

Microsoftさん、日本マイクロソフトさん、ありがとうございます!!!!!

近いうちにC# User groupさん主催のRoslynのもくもく会が開かれるみたいですので、行けたら行きたい!!!

「Kotlin 勉強会 #1 - 初めての Kotlin」でLTしてきた

 2016/07/05(火)に開催された「Kotlin 勉強会 #1 - 初めての Kotlin」でLTしてきました。

自分の発表内容

 制限時間は5分のLTでした。

 発表タイトルは、「いつか役にたつかもしれないコレクション周りの5つのこと」

 発表内容としては、次の5個のTipsを発表しました。

  • 状況に応じてSequenceを使うべきな件
  • 要素が空の時のaverageメソッドが0.0を返してしまう件
  • キーが重複した際のassociate系メソッドが例外を投げない件
  • デフォルトインポート拡張関数を上書きできる件
  • メソッドのオーバーロードとitが相性悪い件

 資料はこちら

 この内容は「KotLinq」を作っている際に発見したことです。細かすぎて、ネタかぶりは心配していなかったんですが、楽しんでいただけたでしょうか?そして役に立つ内容だったでしょうか?

 発表の反省点としてはディスプレイケーブルを忘れてしまったことですね。いつもの会場だと各種そろっていることが多くて、甘えてしまいました。常に持ち歩かねば。

懇親会

 他の参加者の方とKotlinの話だけでなく、Androidのお話しさせていただきました。業務で最近Android担当になったんですが、最近の潮流とかつらみとかを教えていただいたり、いろいろな考え方を聞いて大変参考になりました。

 Jakeの影響ってすごいんですね。

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

 Kotlin流行るといいな。いやまぁ、JavaよりKotlinで書きたいな。

次へ

 7/1(金)のSansanさんの勉強会とあわせてKotLinqを作っている際のネタですね。

 つぎはyieldとかgeneratorのネタをがっつり貯めてやりたいな

2016年4月~6月振り返り

 2016年も気が付けば、半分終わりましたね。

 4月から6月のプログラマとしての個人活動を振り返り、3カ月前に立てた目標を反省し、次の3カ月の目標をまとめます。

de:code 2016 のコミュニティーブースにUnity部として出展した

 マイクロソフトさんにお声がけいただき、de:code 2016のコミュニティーブースに、私が所属するユーザーグループUnity部が出展させていただきました。

 とても素敵な経験でした。ありがとうございます。

 関連 de:code 2016に技術コミュニティーブースとして出展してきた!

Rx.NETにほんのちょっとContributeした

 Rx.NET(実際はIx.NET)にPull Request送って採用されました。

 やったぜ、これで(なんちゃって).NET Foundation contributorデビュー!!!(実際は大したことしていない)

 関連 「.NET Foundationが一つ、Rx.NETにほんのちょっと、ちょっとだけContributeした

UniBook5執筆参加

 第1回目から毎回参加しているUnityの技術同人誌、UniBookの執筆。

 今回はMathfという型の使い方や利用例、コーナーケースでの結果を紹介しました。

 次回夏コミでもUniBook6が決まっているので、こちらも頑張ります。

 関連 「UniBook5の「Mathfのススメ」を書きました

Qiitaで「【LINQの前に】ラムダ式?デリゲート?Func<T, TResult>?な人へのまとめ【知ってほしい】」が500ストック超えた

私が書いたQiitaの記事の中で一番ストックされている記事

【LINQの前に】ラムダ式?デリゲート?Func<T, TResult>?な人へのまとめ【知ってほしい】

が500ストックを越えました。

かなり時間をかけて書いた記事ですし、内容的にも頑張ったのである程度目標としていた500ストックを超えることができてうれしかったです。

ライブラリ開発とGithubの草運動

 をちょいちょい開発しています。

 「KotLinq」と「CollectionExtensions」(旧Kollection)は6月末までにリリースを目標としていたのですが、これはできなかったので、引き続き開発を続けたいです。

 「Githubに毎日1コミット、毎日草を生やそう」という運動もしているので、その運動の一環としてこれらも頑張っています。頑張ってリリースまで漕ぎつきたいと思います。

ブログ投稿

技術的なことはQiitaに、勉強会の参加等ログ的なことははてなブログに書いています。

Qiita

 3件だけですね。

 「IEnumerator、MoveNext()がfalseを返す状態でCurrentにアクセスした際の挙動は未定義」は、Rx.NET(Ix.NET)にcontributeした際の関連事項です。

 「intが2のべき乗か求める方法。そしてUnityのバグ」も、UniBook5の執筆した際の関連事項です。

 次の3カ月はもう少し書きたい。

はてなブログ

 勉強会のブログが6件、成果物報告が2件、読書ログが1件書きました。

 勉強会参加ブログは自分が登壇した際、ほかの人の登壇内容等を書けてないので少ない分量でも書きたいですね。あと、読書量を増やして、読書感想ブログも数件書きたいですね。

勉強会

 de:code 2016にコミュニティーブースで出展したのが今期の一番の思い出ですね。

 事前準備した登壇は1回だけですが、2回ほど飛び入りでLTをしたりもしました。

出展

 運営をしているUnity部として、「de:code 2016」のコミュニティーブースに出店しました。とても素敵な経験をさせていただきました。

 あと私は当日会場にいっていませんが、技術書典にてUnity部の他のメンバーの方がUniBook5を販売しました。

登壇

 登壇ではないけれどUniteでTAをしました。

 「de:codeの前夜祭」と「まどすた」では、飛び入りLTをやらせていただきました。

 「まどすた」では、機会があったら話そうかなって以前から思っていたネタを話しました。「de:codeの前夜祭」では、その場で翌日のde:codeのUnity部のブース出展を宣伝しました。

 事前に準備した登壇は、「第3回Kotlin勉強会 @Sansan」の10分のLTだけですね。もう少し長めの登壇もしてみたいです。

参加

 Unite、de:code 2016ともに大きなイベントでした。いつか大きなイベントで登壇したいです。

 JXUGのやつはスタッフとして、当日誘導などをお手伝いさせていただきました。

4月から6月の個人活動の目標振り返り

できたもの

  • 勉強会に参加したら必ずブログを書く
  • UniBook5執筆頑張る
  • 毎日Githubで草はやす

できなかったもの

  • 週2回・計24件Qiitaに投稿
  • 読書記録ブログを5件書く
  • 勉強会を企画・運営する
  • 20分以上何かで登壇
  • KotLinq・Kollection完成

 ブログ関連が全然書けなかった。土日しか執筆できないようねスケジュールな週が多かったり、UniBookの執筆に時間を割いたのもありましたが、執筆時間がとれず、ブログの筆をとるのをめんどくさがったのが敗因です。

 UnityもC#もKotlinも細かいネタはあるので、小出しにしていきたいです。

7月から9月の個人目標

できたもの

 前回できたものを継続する

  • 勉強会に参加したら必ずブログを書く
  • UniBook6執筆頑張る
  • 毎日Githubで草はやす

前回できなかったものを修正した目標

  • Qiitaとはてなブログ、合計20件以上投稿する
  • 書籍を3冊読んで、ブログに書く
  • 20分以上何かで登壇
  • KotLinq・CollectionExtensions(旧Kollection)の完成

最後に

2016年7月、8月、9月は、最高の夏にしたい。

.NET Foundationが一つ、Rx.NETにほんのちょっと、ちょっとだけContributeした

 .NET Foundationの一つである、Rx.NETにPull Request送ってそれが取り込まれました。

 やったね、これで俺も.NET Founcation contributor!!!

 と、言っても非常に非常に小さく、ごくまれに発生するコーナーケースのバグフィックスですが。。。あと、Rx.NETでなく、Ix.NETですが。

 Pull Requestはこちら、「Fix Ix Catch method invalid behaviour with Array. #171

 修正前は、Ix.NETのCatchメソッドを配列で呼び出した場合、想定外の例外が発生していました。修正前は次のテストに失敗していました。

[TestMethod]
public void Catch5_Array()
{
    var xss = new[] { new[] { 0, 1, 2, 3, 4 }, new[] { 5, 6, 7, 8, 9 } };
    var res = EnumerableEx.Catch(xss);
    Assert.IsTrue(res.SequenceEqual(Enumerable.Range(0, 5)));
}

 原因は、「 IEnumerator、MoveNext()がfalseを返す状態でCurrentにアクセスした際の挙動は未定義」で書いたことに関連します。IxのCatchメソッド内のIEnumerator<T>のMoveNext()とCurrent周りのコードを修正しました。

 こんなコーナーケース、自分でもよく発見したなって思います。「ix_example」っていうリポジトリで、Ix.NETのサンプルコード集を作っている時に気が付きました。

 ちなみに、Pull Requestを送って2カ月近く無反応だったんで取り込まないかと思っていました。送ったPull Request内容も修正が必要だったり、Rebaseミスったりしてしまったりしたので、次はもう少しうまくやりたいです。

 とは言え、どんな細かいことでも、Rx.NETそして.NET Foundationに貢献できてうれしいです。

UniBook5の「Mathfのススメ」を書きました

 技術書典で頒布したUniBook5の「Mathfのススメ」という章を執筆しました。

 私が参加しているUnityユーザーグループ「Unity部」では、直近過去4回のコミックマーケットにて、Unity技術同人誌UniBookを頒布しています。UniBookはUnity部の有志が集い、Unityにまつわる自分が好きなトピックを好きなように執筆した、技術同人誌です。

 先日開催された技術書のイベント「技術書典」では、その5作目、「UniBook5」を頒布しました。第1作目から毎回参加させていただいている私は、今作はUnityEngine.Mathf型のメソッドリファレンス・使い方を紹介する「Mathfのススメ」という章を執筆しました。

 「Mathfのススメ」という章の執筆モチベーションは、

  • ゲームジャム等で「意外とみなさんMathf使わないんだなー」と思う機会があったため
  • Unityの公式リファレンスを見ていて自分自身が、「この引数の場合どうなるんだ?」となる機会があったため

です。

 私の執筆した「Mathfのススメ」が、みなさんのMathfを使うきっかけとなってくれればうれしいです。ちなみに、Mathfのメソッドのユニットテストやコード例をまとめたリポジトリunity_mathf_example を公開しています。こちらもご活用ください。(よかったら☆をぽっちと)

「第3回Kotlin勉強会 @ Sansan」でLTしてきた!

2016/07/01(金)に開催された 第3回Kotlin勉強会 @Sansanで「Sequenceの話」と題してLTをしてきました。

f:id:MRStar:20160325180503j:plain

概要

恒例になりつつあるSansanさんでのKotlin勉強会、第3回でLTしてきました。

Kotlinかわいい勉強会やKotlin誕生日会などで、LTをさせていただく機会は何度かありましたが、SansanさんでのLTは初めてです。

Kotlin以外、.NETなどの勉強会でお邪魔することがあるSansanのイベントスペース。とてもきれいで素敵ですね。

あと、ごはんもおいしいですし、ビールも最高です。

発表内容

Sequenceの話」と題して、kotlin.sequencesの話を中心に、KotlinのList<T>Sequence<T>の違いや自分が作ったライブラリKotLinqの宣伝を行いました

やはり今回も発表者・参加者ともにAndroiderの方が多い中、Android関係ないテーマでしたが、楽しんでいただけたでしょうか?

List<T>Sequence<T>の違いについて、知らなかった」などの声もちらほらいただきました。参加者の皆様に学びのあるセッションとなっていたらうれしいです。

飲みながらLT、最高だな。

水島さんが来るってお昼に知ったので...

Scala構文解析のお話しでお見かけする水島さんが登壇されるとお昼に見かけました。

以前から水島さんは、Kollectionを作っていたことも知っていましたし、そのテーマでお話しされるのもお昼に知りました。

実は名前被りのライブラリ(Kollection)を作ってみようかと思っていたのですが....名前変えます。

感想

やはり登壇もそうですが、懇親会での学びはでかいですね。

素敵な勉強会をSansanさん、登壇者のみなさんありがとうございました。

第4回もあるそうなので、楽しみです。

de:code 2016に参加してきた!

 マイクロソフトの技術カンファレンス『de:code 2016』に行ってきました。

 その感想です。

f:id:MRStar:20160526025125j:plain

見て特に面白かったセッションピックアップ

HoloLens 概要 ~世界を見る新しい方法~ #DEV-013

 「HoloLens、日本で開発できないのが非常に残念。日本でも開発したい、使いたい。」

 そう思うようになったセッションでした。ユーザーからのフィードバックが大切、そう聞きます。HoloLens、日本で開発したいです!

 予定されていたもう一つのHoloLensのセッションは中止になってしまったのも少し残念でした。

TypeScript ~ Any browser. Any host. Any OS. Open source ~ #DEV-011

 チャックさんのTypeScriptのセッション。

 実際TypeScriptを書いていたこともあり、知っていることも多かったですが、非常に楽しく見ていました。

 * 「Any browser. Any host. Any OS. Open source」

 * 「JavaScript is the Assembly Language of the Web.」 by Scott Hanselman

 あたりが、とても印象に残ってます。

 ところで、

 ってTweetしたら、本人のScott Hanselmanさんから、「どうした?」って英語でメンションもらってびっくりしました。

 ロードマップ的にぼちぼち、2.0がリリースされるらしいですが、これからのTypeScriptもとても楽しみです。

ゲーム開発だけじゃない!Unityで作るUWPアプリ #CLT-014

 Unity Technologies Japanの伊藤さんによる、Unityの非ゲーム向けの活用方法を紹介するこのセッション。

 Unityクラスタ的には、絶対見ないといけないと思ってました。

 会場大爆笑。

 Touchのデモを初めて見れたり、非ゲーム分野での活用方法も多く知ることができ、とても満足です。

 (HoloLensが日本に来てたら、実際のデモが見れたんだろうと思うと、悔しい)

 ちなみにde:code 2016でUnityは、キーノートのデモをはじめ、HoloLensやGame Technologyのセッションなどで何度も登場していました。

見なかったけど気になったセッションピックアップ

 Unity部の技術コミュニティーブースの作業をしていたり、部屋に入れなかったり、他のセッションを見ていたりで、見てないけれど気になったセッションはこちらです。

これから始める Xamarin ~環境構築から iOS/Android/UWP アプリのビルドまで~ #DEV-022

 朝一番のセッションだけれども、満員。Xamarinすごい!

Xamarin Deep Dive - Xamarin.Forms の可能性 #DEV-023

 入場規制で部屋にも入れず。Xamarin人気やっぱりものすごかったです。

りんなを徹底解剖。"Rinna Conversation Services" を支える自然言語処理アルゴリズム #DBP-019

 Unityのセッションと被ったので、Unityを見に行きました。すごい人気だったみたいですね。残念。

 Twitterでやり取りはしました。(砂金さん、りんな憑依中!?)

マイクロソフト最新テクノロジと魅力あふれる未来像 #SPL-001

 残念。

.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来 #DEV-002

 こちらはゲーム系のセッションを見に行ってたので、見れず。盛り上がっていたし、自分のメインフィールドのUnityとも関連ありそうなので、できれば動画で見たいです。

クラウド心配性な上司を説得するコツを伝授します ~本当に信頼できるクラウドの構築/運用とは? マイクロソフト クラウド成長の軌跡~ #SPL-002

 こちらも別セッションを聞きに行ってましたが、Twitterで盛り上がってるのを見て気になりました。

前日のComCampも!

 前日のイベント、Japan ComCamp meets de:codeにも参加しました。

 多くのマイクロソフトMVPの方や、マイクロソフト社員の方が参加していて、こちらもとても盛り上がっていました。

 de:codeの見所や、技術的なショートセッションなど盛りだくさんでした。

 ちゃっかり、LTをして翌日の技術コミュニティーブースの宣伝もしました。

Channel 9の生放送の後ろでモブをした

 マイクロソフトの動画コミュニティサイト、Channel 9

 その生放送の撮影をExpo内でやってました。

 Xamarinの生放送の時や最後の生放送の際、たぶん映り込んだと思います。

 セッション等の映像もこのChannel9にアップロードされるそうなので、楽しみにしています。

懇親会、人が多い!すごい熱気!

 多くの人が参加したde:code 2016ですが懇親会もすごい多くの人がいました。

 すごい熱気!

 がっつり話せました。よかったです。

最後に

 さて、また明日から仕事に、そして趣味の開発に、de:code 2016での学びを生かし、気合をいれて開発していきます。

 ワクワク。