僕はここだ!

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

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。

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

DefinitelyTypedにちっこいプルリクを送ってみた

最近ウェブフロントをやり始めました、「むろほし」です。

TypeScriptの型定義ファイルの管理リポジトリDefinitelyTypedにちっこいPRを送ってみました。マージされました。

github.com

対象のライブラリはこちら、「js-yaml」。このjs-yaml最近アップデートがあって「noArrayIndent」というプロパティが追加されました。

で、最近追加されたこのプロパティの型定義が更新されていなかったので、「DefinitelyTyped/DefinitelyTyped」にプルリクエストを送ってみました。

README.mdの「How can I contribute?」を読んで、PRのテンプレートに書いてあることをやったか確認して、終わりでした。

boolean型のプロパティを一個追加するだけなので作業は楽でした。

他のPRを見るとわりとマージなり拒否されるまで時間がかかるかと思っていたのですが、寝る前にPR送って朝起きたら速攻マージされていました。

多分、

ってのが理由かなって思います。

今後ある程度の期間、TypeScriptにお世話になるので「どう言う手順でDefinitelyTypedにPR送るんだろう」っていうのを知れることができました。よかった!

手順もわかったし、そこそこ規模が大きい型定義ファイルがないやつとかあったら、またプルリクしていきたい。

金の弾丸と汚部屋の掃除

ズボラで掃除が苦手な30才独身男性プログラマが、お掃除本舗にハウスクリーニングをお願いした、というお話。

いやーめっちゃ綺麗になった。頼んでよかったー。


手狭な1ルームのアパートに4年住んでいる。

最近、掃除を頑張り始めたのだけど、それでも掃除をサボっていた箇所がある。

  • コンロ周り
  • トイレ
  • お風呂

の水回り。

たまには掃除するんだけど、ズボラな自分が掃除をしたところでそこまで綺麗にならない。 そして4年も住めば汚れもたまる。 特にひどかったのが、コンロ周り。ていうか一番サボっていたのがここ。きったねぇ。まじきったねぇ。


特にコンロ周りはサボりすぎて、掃除する気にならない。 道具もなけりゃ、テクニックもない。 ちょっとやったところで絶対に綺麗にならそう。 すんごい時間かかりそう。 何より大変そうだからやりたくない! だから汚くなるという無限ループ。


そこで出した結論が

「金の弾丸を使おう。プロに頼もう」


お掃除本舗

お手伝いパック : 15000円。

3時間定額でお掃除のプロがお手伝い

www.osoujihonpo.com


  • コンロ周り
  • トイレ
  • お風呂

の3箇所をお願いして、めっちゃ綺麗にしてもらった。

限られた時間だから、入居時と同様ピカピカというわけには流石に行かないけれど、満足している。

ていうか相談して、「完璧でなくていいので時間内で、効率よく3箇所を綺麗にしてください。めちゃめちゃ時間かかりそうな汚れとかは、パスしてください」って感じでお願いした。

満足。

あと、汚れが手強かったので、追加料金をお支払いして延長30分お願いした。(最初に「汚れが手強かったら延長をしましょう」って相談済み)


正直、安いお値段じゃなかったけれど、やってよかったと思っている。

実は、近くのアパートや同僚の住まいと比べてかなり家賃が安いところに住んでいるし、4年も住んでいるし、ってことで引っ越しも考えた。

けれどランニングコストが上がることがいやだったので、引っ越しはせずクリーニングをすることにした。

(家賃が安い分、推しごとに使いたい)


あと時間。

このレベルに掃除するには、確実に貴重な休日が丸々1日、いやなんなら2日は潰れたと思う。

ていうかここまでできないと思う。

貴重な貴重な休日を、2日間もしんどいこと・苦手なことに使いたくない。


(水回り以外の)掃除を頑張り始めてわかったのだけれど、「そこそこ綺麗な状態」から「とても綺麗な状態」に掃除するのは、「とても汚い状態」から「そこそこ綺麗な状態」に掃除するのと比べると、かなりコストが小さく感じる。

これはソフトウェア開発と一緒なのかもしれない。

今回、綺麗にしてもらったからある程度小さなコストで綺麗な状態をキープできたら、いいな。

できるかな・・・・

できるといいな。


安い値段ではないけれど、とりあえず、掃除が苦手な人は一回綺麗にするために「金の弾丸を使おう。プロに頼もう」っていうこともおすすめ。