読者です 読者をやめる 読者になる 読者になる

僕はここだ!

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

UniBook6の「Hello Programmable Tile!」という章を執筆しました。

成果物宣伝

 コミックマーケット90でUnity部が頒布するUniBook6。その第一章「Hello Programmable Tile!」を執筆しました。

 UniBook6は、コミックマーケット90の3日目(2016年8月14(日))、西f-21aにて頒布です。

 他の方の執筆内容や価格などは、Unity部のこちらのページを確認してください。

Unity部って?UniBookって?

 Unity部は、ゲームエンジンUnityのユーザーグループです。(私はその運営をお手伝いしています。)

 UniBookは、そのUnity部の有志が集まりUnityに関連するトピックを、担当者がそれぞれ自由に執筆する技術同人誌です。

 直近過去4回のコミックマーケットでUniBook1からUniBook4を、2016年6月25日(土)に開催された技術書典でUniBook5を頒布しました。

 そしてコミックマーケット90の3日目(2016年8月14(日))にて、Unity部はUniBook6を頒布します。

執筆内容は?

 Unity 2D機能の早期アクセスバージョンであるUnity 2D Experimental Preview。その一部であるTile Map Editorの中のProgrammable Tile。

 私が執筆した「Hello Programmable Tile!」では、2D Experimental Previewとは、Tile Map Editorとは何かを説明し、サンプルプロジェクト内のProgrammable Tileのサンプルコードの簡単な解説を行いました。

 執筆モチベーションとしては、Unite 2016 Tokyoの「ビルディング・2Dワールド in Unity ~2D機能のあれやこれや~」というセッションで感動した、Programmable Tileを一人でも多くの人に広めたかったからです。

 セッションの動画はこちら

 完全に余談ですが当初「Unity5から地味に加わっていたメソッド達」という内容を計画していたのですが、もろもろの理由で没にしました。

かっこいいデザインが!

 けーご氏の手腕により、UniBook6は、Re:VIEW + InDesignにより作成されています。

 ありがとう、けーごさん!超かっこいい!!!

さいごに

 あまりまだ情報がないProgrammable Tileに興味がある人はぜひ手に取ってみてください!

 UniBook常連の方も、UniBookは初めての方も、UniBook6をよろしくおねがいします!

湯ナイト2016に参加しました

勉強会レポート

 2016年、7月16(土)・17(日)・18(月・祝)で開催された湯ナイト2016に参加しました。

f:id:MRStar:20160719015420j:plain

 私が所属するUnityユーザーグループ、「Unity部」の夏季恒例イベント、「湯ナイト」。その年の4月に開催されたUnityの公式カンファレンス「Unite」のセッション動画を見て、それについてディスカッションを行い、Unityの理解度や知見を高めよう、というイベントです。例年、静岡の伊東の山喜旅館様で二泊三日の日程で開催しています。温泉に入ったり地元のおいしい料理も食べたりします。あと翌月に控えたコミケのために、UniBook(Unity部が出している技術同人誌)の作業をしたりもします。

 さてこの湯ナイト、泊まりがけのイベントということで、普段の勉強会や懇親会よりもより深い話や相談ができます。毎年毎年、諸先輩方にアドバイスをしていただいたり、相談にのっていただいたりと、大変感謝しております。

 また来年、湯ナイトが開かれ、エンジョイできればと思います。

 あと、ですね、湯ナイトって、毎年海の日当たりの3連休で開催するんですよ。そして僕の誕生日、旧海の日(7/20)なんですよ。

f:id:MRStar:20160719015436j:plain

 ちょっと早いですが、祝っていただきました!本当に、本当にありがとうございます!!!何歳になっても祝ってもらうのはうれしいですね!ありがとう。部長のかまたさん!

 以下、湯ナイトのツイート。

 まじめに動画を見ているところの写真を撮り忘れました。

 さて、毎年最終日は観光をします。今年は一昨年につづいて初島という伊藤・熱海から25分くらいでいける離島にいきました。そこでシュノーケリングを体験したんですが、大変感動してしまいました。「すげー」という言葉しかでてこなかったです。魚以外にも、小さなイカとか、ウツボ?とか、カニとか、いろいろいました!!!

 伊東も初島もとてもいいところなので、皆様ぜひ!!!

 来年の湯ナイトが楽しみです!

 

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 を公開しています。こちらもご活用ください。(よかったら☆をぽっちと)