僕はここだ!

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

多少アクセスのある古いブログの記事を更新した

長く技術ブログをやっていると、過去の記事の内容が言語・フレームワーク・ライブラリのアップデートで不適切な内容になることがあります。

言語・フレームワーク・ライブラリのバージョンを明記すればまぁ問題ないんだろうけど、読者は更新があることを気づかない場合もあるし・・・

今は技術的なことはQiitaに、記録的なことはこのブログに書いてるんだけど、以前別の「はてなブログ」で技術的なことも書いてました。

最終更新記事が5年前のそのブログ、実は今でも日に30~40件くらいのGoogleからの検索流入でのアクセスがあります。

で、そのアクセス先の3割が「UnityのGetComponent」についての記事。

当時のUnityは4系。ブログ内で「これはできません」って説明している内容が、後にリリースされたUnity5からできるようになってました。

記事内でバージョンの明記はしていたので、嘘ではないけど誤解を与えるかもしれないため、その部分の内容を修正しました。

古いブログ、日記的・記録的な内容が多いけど、今後のメンテナンスどうしようか?そこそこアクセスがあったから、修正したけれど全てでこれをやるのはしんどいな・・・・

(ていうか流石に5年前の記事だし、日付見たらみんなそっと閉じるよね?ね?)

「社会の常識だろ」と言う言葉が嫌いだ

「社会の常識だろ」と言う言葉が嫌いだ。

あなたが「社会の常識だろ」と言う言葉を、取引先に、部下に、後輩に、同僚に言いそうになった時、一度考えて欲しい。

あなたが今「社会の常識」と思った「それ」は、本当に「社会の常識」なのか?


「社会の常識だろ」という言葉が嫌いだ。

「社会の常識」は社会よりもずっとずっと小さい「コミュニティ」の中だけで通じる共通のルール・マナー・方針ではないだろうか?

それは社会ではなくて、あなたのチームの、あなたの友人間での、あなたの家族の、あなたの会社の、あなたの世代の、あなたの職業の、あなたの業界の、あなたの街の、その中だけの「常識」じゃあないだろうか?


「社会の常識だろ」という言葉が嫌いだ。

「自分が属していないコミュニティの中だけで通じる常識」を「社会の常識だ」と言われることがあるからだ。

「このチームの方針だ」とか、「うちの会社のルールだ」とか、「このユーザーグループのモットーだ」と言う言葉は嫌いじゃない。

コミュニティーで明確に方針・ルール・モットーが決められているならば、それに準じて、考え、行動しよう。(もし問題があれば、その常識を改善しよう)


「社会の常識だろ」という言葉が嫌いだ。

それは「なぜそうなのか」という説明を放棄する言葉だからだ。

こういう歴史があり、こういうデメリットがあり、こういう見えない問題がある、そういう必要な説明をすっぱりと放棄する言葉だからだ。


あなたが、「社会の常識だろ」と言う言葉を、取引先に、部下に、後輩に、同僚に言いそうになった時、一度考えて欲しい。

本当にそれは「社会の常識」なのか?もっと小さなコミュニティでの常識ではないのか。

「社会の常識」ではなくて、「このチームの方針だ」とか、「うちの会社のルールだ」とか、「このユーザーグループのモットーだ」とか言い換えられないだろうか。

「社会の常識」と言う言葉で、必要な背景や理由の説明を放棄していないだろうか。


「あなたの常識」は「相手の常識」とは限らない。

「社会の常識だろ」という言葉が嫌いだ。

C#のリファレンスに間違いを見つけたからMicrosoftDocs/feedbackにフィードバックを送った

C#の公式リファレンスに間違いを見つけました。

↑の二つのインターフェースは、GetEnumeratorというメソッドを持っています。(二つともIEnumerable<T>から引き継いだもの)

リファレンス内には、GetEnumeratorというメソッドがあるのですが、メソッドではなく、プロパティセクションにあります。

同じような現象は、他にもあって次のIEnumerator<T>でも起きています。

多分、

  • 親のインターフェースはメソッドを持っている
  • 継承したインターフェースはプロパティしかない

で、継承したインターフェースのドキュメントでこの不具合が起こっているかもしれません。

小さな問題ですが、報告しました。

github.com

公式リファレンス(docs.microsoft.com)へのフィードバックはこちらから。

何か問題があったら、フィードバックを送りましょう。

2019年2月振り返り

あっという間に2月が終わりました。

2019年も1/6が終わりましたね!

早い!

2月の目標振り返り

  • 起床時の体重を67.5kgで安定化できるようにする
  • .NET Coreにあげたissueをすすめる(ダメだったら別の方法を考える)
  • Webフロント系の技術のインプット。そしてアウトプットの方向性を定める
  • Unity、Tilemapのアップデートの再キャッチアップ

起床時の体重を67.5kgで安定化できるようにする

ここ数日の起床時の体重。

66.8kg、68.0kg、67.8kg、68.0kg、67.2kg、66.7kg、67.5kg、67.9kg。

3月の目標 : 「起床時の体重を67.0kg以下で安定化できるようにする」


.NET Coreにあげたissueをすすめる(ダメだったら別の方法を考える)

.NET Coreのcorefx(Standandard Libraryのコード)のリポジトリにissueを立てました。

IEnumerable<T>IsEmptyという拡張メソッッドを追加しよう」というやつです。

github.com

残念ながら、賛成してくれた人もいたけれど、たくさんの人からの賛成を得られませんでした。多分このまま放置になりそうです。

「ダメだったら別の方法を考える」として、MoreLINQというライブラリにPull Requestを送りました。

github.com

残念ながらこちらもリジェクトとなりました。MoreLINQのメンバーといろいろやり取りをして、学びが大きかったです。

corefxに追加したり、既存のライブライに入れるのではなく、自分でライブラリを作ろうと思います。

3月の目標 : 「LINQ補助系の自作ライブラリの公開」


Webフロント系の技術のインプット。そしてアウトプットの方向性を定める

Angularの公式ドキュメント読んだり、TypeScriptの公式ドキュメント読んだり。

公式ドキュメントがしっかりしているからこそ、アウトプットの方向性超悩む。

とりあえず3月はインプットがっつり。

3月の目標 : 「AngularとTypeScriptの公式ドキュメントを読みまくる」


Unity、Tilemapのアップデートの再キャッチアップ

実は何もできず。3月はリベンジ!キャッチアーップ!

3月の目標 : 「Unity、Tilemapのアップデートの再キャッチアップ」

3月の目標

  • 起床時の体重を67.0kgで安定化できるようにする
  • LINQ補助系の自作ライブラリの公開
  • AngularとTypeScriptの公式ドキュメントを読みまくる
  • Unity、Tilemapのアップデートの再キャッチアップ

書いた記事

Qiita

LinqAlias作った

System.Reactive.Observable.Aliases」ってのはあるのに、LinqAliasってないな?

NuGetに何か公開してみたい!

ってことで、「LinqAlias」っていうのを作って、Nugetでライブラリを公開、GitHubでコードを公開しました。

詳しくはこちらを!

qiita.com

www.nuget.org

github.com

趣味

サンデーで連載していた「金色のガッシュ!! 」の完全版。

ここでしか読めない、書き下ろしのおまけ漫画も熱いお話も!

連載時も好きだったんですが、30才になって読み返すと、チラチラ泣いてしまって。大好き!


ファイナルライブを目前に控えているのに、「Wake Up, Girls!」にハマり始めた。


ラブライブサンシャイン!ファンミ、いつも楽しいです

意気込み

毎月毎月、ちゃんと目標を意識して達成していきたい!

2019年1月振り返り

2019年もあっという間に1ヶ月終わりました。

て言うか、この投稿を書いている2月11日って、日数的には1年の1/10終わってる?

早い!

2019年1月の目標とその結果

  • 数値の目標を決める
  • 2019年の中期目標を決める

未達!どちらの目標も決めていません。

2019年は目の前のやりたいことを全力でやることにしました。

(本音を言うと、3ヶ月後ですら何をやってるかわからないから、目標立てづらい。)

  • 体重を68kg台にする

達成!やったね!けどメタボになったよ!(後述!)

2019年2月の目標

  • 起床時の体重を67.5kgで安定化できるようにする
  • .NET Coreにあげたissueをすすめる(ダメだったら別の方法を考える)
  • Webフロント系の技術のインプット。そしてアウトプットの方向性を定める
  • Unity、Tilemapのアップデートの再キャッチアップ

以下、1月の振り返り!

メタボになった

実は「メダボ」になりました。腹囲が数ミリメートル、規定値をオーバーしてしまい、加えて他の数値がいろいろあれでした。

正直、痩せたいとはそこまで思わないけれど、健康にはなりたい。年齢的にも30才になったし。

とりあえず夏までに、体重を65kgくらいまで落とすことを目標にします。まずは食事量を見直します。多分、単純に深夜に食べ過ぎな気がする。

BuriKaigiと.NET Core

毎年この時期はBurikaigiに参加しに、北陸は富山に行っています。

mrstar-logs.hatenablog.com

とても楽しかった(詳しくは上の記事参照)!

さて、ここでのお題が「.NET Coreを使った」ものだったんですよ。(詳しくは上の記事参照)

初.NET Core、いろいろ調べたらLINQでちょいちょい知らないメソッドが追加されていました。

qiita.com

これは、.NET Standardにも入ったので、将来的に.NET FrameworkやXamarin、Unityでも使えるようになるらしい。

さて、LINQにいろいろメソッドが追加することができるのであれば、自分は色々追加したいものがあります。ということで、.NET Coreのクラスライブラリに、issueとして追加したいメソッドを提案しました。

github.com

あった方がいいと思うんだよなー。LINQIsEmpty

Webページ作ったり、ウェブフロント色々調べたり

個人のゲーム開発のWebページ作ってみました。

mrstar-logs.hatenablog.com

さて、仕事でWebフロントをやることになったので、ちょいちょい去年の年末から、小さくアウトプットも始めています。(本当に小さいけれど)

mrstar-logs.hatenablog.com

mrstar-logs.hatenablog.com

やっていきます。もちろん、ゲーム開発の方も。

mrstar-logs.hatenablog.com

衣食住のこと

実は引っ越し考えていたのですが、コスト的に諦めました。ランニングコストをあげたくなくて。あと乾燥機付き洗濯機も欲しかったのですが、引っ越さないと置けなくて諦めました。

ということで、代わりではないですが金の弾丸を使って4年住んでいる部屋を掃除しました。(してもらいました)

mrstar-logs.hatenablog.com

あと、シュレッダー、掃除機、ゴミ箱なんかを買って住環境を整えています。

あと、手袋とあったかいヒートテックヒートテックタイツを買いました。あったかい。やっぱり、寒いのは害悪だ。あったかいの最高。

趣味

正月は「ポケットモンスター Let’s Go! イーブイ」をやりました。何回カントー地方を冒険したかわからないけれど、やっぱりワクワクしますね。リザードンの背に乗るの楽しい。

www.pokemon.co.jp

あと、

楽しいです。とても楽しいです!

また、暖かくなったら沼津にいきたい。

ラブライブ!サンシャインの映画の公式動画、沼津PV(冒頭7分の映像)!

www.youtube.com

意気込み

色々と

  • 変わり始めたこと
  • 整い始めたこと
  • 毎年の恒例のこと

などいろいろあった1月。

2月は方向性を定めつつ、しっかりと下準備をしていきたい。

BuriKaigi2019でドキドキライブコーディングした! #BuriKaigi

2019/01/26(土)に、宇奈月国際会館セレネ・延対寺荘で開催された「BuriKaigi2019」に参加し、「C# ドキドキライブコーディング」で登壇しました。

f:id:MRStar:20190129012228j:plain

Burikaigiでのドキドキライブコーディングは、3回目!

ドキドキライブコーディング自体は、4回目!!

私のBurikaigi(とその前身イベント)への参加は、5回目!!!!

toyama-eng.connpass.com

毎年毎年、この時期に富山に行くのが本当に楽しみです!


BuriKaigiは、毎年1月末に富山で開催される.NET & Javaのテクノロジに関する勉強会です。 富山や北陸の方だけでなく、東京や関西などからも多くの人が参加します。

C# ドキドキライブコーディング」は、

そして、私が、

  • @AILightさんが出すお題を、セッション中その場でライブコーディングでする
  • @AILightさんが事前に出すお題を事前に作成し、セッション中その場で競わせる

という、BuriKaigiの.NETトラックの恒例ネタ企画です。


今年の事前作成のお題は、

Base64エンコード・デコードの処理時間をきそう」

というものでした。

さて、「ネタ企画」と紹介しましたが、全力で真面目にやる「ネタ企画」です。

アルゴリズムで戦う」のではなく、「C#を駆使して、相手の裏をかいて倒す」という戦いです。ネタ企画です。

ここら辺の詳しい話は、私の資料の前半を見てみてください。

speakerdeck.com


今回の作戦名は、

「〜全てが0になる、全てがAになる〜」

です。

作戦はシンプルで、

  • 引数に渡ってきた「byteの配列」の全ての要素を0に書き換え
  • デコード結果もエンコード結果も常に一定
  • 爆速!!!!

「〜全てが0になる、全てがAになる〜」

という作戦名はデコード結果が全て0エンコード結果が全てA(と末尾に==)になることからつけました。


勝負の結果は、優勝です!

今回は失格にならなかった(?)です!嬉しい!初優勝!!!

ただ、内容的には完敗です。

実はまともな方法も用意していたのですが、Bit演算して、new string(char[])すること以上、何も浮かばなかった。

for展開するとか・・・・

正直、「試合に勝って、勝負に負けた」って感じです。

あ、ちなみに例年通り、「ライブコーディング」はダメダメでした。


ドキドキライブコーディングを観ていただいたみなさん、楽しんでいただけたでしょうか?

今年はしっかりと自分の役割を全うできたと思うのですが、いかがだったでしょうか?

今年の会場の、宇奈月温泉もとっても良い場所でした。夏にも行ってみたい!

富山には、ブリ以外にも、他の魚とか、白えびとか、イカとか、お酒とか、ラーメンとか、美味しいものがいっぱいです。

みんなもよかったら、行こうぜ!BuriKaigi!


以下、いろいろ振り返り!

IntelliJ IDEAの18周年キャンペーンにあたった、ありがとう!#IJ18Bday

IntelliJ IDEAの18才の誕生日、おめでとう。長く続くプロダクトってすげぇ!マジで!

18周年の記念ということで、「お気に入りの機能やTipsをハッシュタグをつけてツイートして」っていう懸賞が開催されました。

IntelliJ IDEA Familyには、Rider、WebStormそしてAndroidStudioと日頃からお世話になっているし、このキャンペーンに参加しました。

そしたら当選しました。ありがとうございます、JetBrains。ありがとうございます IntelliJ IDEA。

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