2019/01/26(土)に、宇奈月国際会館セレネ・延対寺荘で開催された「BuriKaigi2019」に参加し、「C# ドキドキライブコーディング」で登壇しました。
Burikaigiでのドキドキライブコーディングは、3回目!
ドキドキライブコーディング自体は、4回目!!
私のBurikaigi(とその前身イベント)への参加は、5回目!!!!
毎年毎年、この時期に富山に行くのが本当に楽しみです!
- BuriKaigi2017 in Toyama で ドキドキライブコーディングした! #ToyamaBuri
- 仙台IT文化祭で「ドキドキ ライブコーディング(出張編)」してきた!
- BuriKaigi2018に行ってきた! #BuriKaigi
BuriKaigiは、毎年1月末に富山で開催される.NET & Javaのテクノロジに関する勉強会です。 富山や北陸の方だけでなく、東京や関西などからも多くの人が参加します。
「C# ドキドキライブコーディング」は、
そして、私が、
という、BuriKaigiの.NETトラックの恒例ネタ企画です。
今年の事前作成のお題は、
というものでした。
さて、「ネタ企画」と紹介しましたが、全力で真面目にやる「ネタ企画」です。
「アルゴリズムで戦う」のではなく、「C#を駆使して、相手の裏をかいて倒す」という戦いです。ネタ企画です。
ここら辺の詳しい話は、私の資料の前半を見てみてください。
今回の作戦名は、
「〜全てが0になる、全てがAになる〜」
です。
作戦はシンプルで、
- 引数に渡ってきた「byteの配列」の全ての要素を0に書き換え
- デコード結果もエンコード結果も常に一定
- 爆速!!!!
「〜全てが0になる、全てがAになる〜」
という作戦名はデコード結果が全て0
、エンコード結果が全てA
(と末尾に==
)になることからつけました。
勝負の結果は、優勝です!
今回は失格にならなかった(?)です!嬉しい!初優勝!!!
ただ、内容的には完敗です。
実はまともな方法も用意していたのですが、Bit演算して、new string(char[])
すること以上、何も浮かばなかった。
for展開するとか・・・・
正直、「試合に勝って、勝負に負けた」って感じです。
あ、ちなみに例年通り、「ライブコーディング」はダメダメでした。
ドキドキライブコーディングを観ていただいたみなさん、楽しんでいただけたでしょうか?
今年はしっかりと自分の役割を全うできたと思うのですが、いかがだったでしょうか?
今年の会場の、宇奈月温泉もとっても良い場所でした。夏にも行ってみたい!
富山には、ブリ以外にも、他の魚とか、白えびとか、イカとか、お酒とか、ラーメンとか、美味しいものがいっぱいです。
みんなもよかったら、行こうぜ!BuriKaigi!
以下、いろいろ振り返り!
実はAsSpan().Clear()
— むろほし (@RyotaMurohoshi) 2019年1月26日
より、forで回して0クリア早かったけど、使っちゃった
そっちの方が面白かった#BuriKaigi
.NET Standard(規格)でちょいちょいLINQのメソッドが追加されています
— むろほし (@RyotaMurohoshi) 2019年1月26日
いくつかは.NET Framework(ある実装)ではまだ実装していないけれど、.NET Core(また別の実装)ではもう使えるメソッドなんかもあります(そのうち.NET Frameworkも入ると思います)https://t.co/TWGd0ddBiP#Burikaigi
わーい!
— むろほし (@RyotaMurohoshi) 2019年1月26日
これは試合に勝って、勝負にも勝ったんですかね?(・ω ・`)
foreach使うなじゃなくて、for使うなとか、想像できないっす。
— むろほし (@RyotaMurohoshi) 2019年1月26日
つら。
マイクロソフトさん、寺田さん、ありがとうございます〜https://t.co/0MVV3lTafg#Burikaigi pic.twitter.com/T7PMMnnTKu
— むろほし (@RyotaMurohoshi) 2019年1月26日
ブリ会議 ドキドキライブコーディング
— むろほし (@RyotaMurohoshi) 2019年1月27日
一人反省、開演!!
イエィーイ、ドンドン!
ぱふぱふ!!
振り返りポイント1
— むろほし (@RyotaMurohoshi) 2019年1月27日
事実0
試合に勝った
事実1
勝負に負けた
振り返りポイント2
— むろほし (@RyotaMurohoshi) 2019年1月27日
『雑』
『テクニックを使ってない』
『あれはエンコードしたと言えるだろうか』
というコメントを改善
振り返りポイント3
— むろほし (@RyotaMurohoshi) 2019年1月27日
自分の役割果たした!
振り返りポイント4
— むろほし (@RyotaMurohoshi) 2019年1月27日
鰤しゃぶめっちゃうまかった
あと、露天風呂よかった pic.twitter.com/CvNabqhiEg
振り返りポイント5
— むろほし (@RyotaMurohoshi) 2019年1月27日
Base64エンコード・デコードのBit演算あたり、当たり前にスルーしたけど実は説明必要だったかもしれない
でもどうなんだろう?懇親会的とか話してると、ブリ会議って長い時代この業界で戦ってる人多そうだから、そこら辺スルーしてもいいのか?
振り返りポイント6
— むろほし (@RyotaMurohoshi) 2019年1月27日
Console.ReadLine
振り返りポイント7
— むろほし (@RyotaMurohoshi) 2019年1月27日
Java側もみたいぞ問題
Java側にも見てもらいたいぞ問題
いやでも、2並列トラックってすごいよね。いや、すげえや。
振り返りポイント8
— むろほし (@RyotaMurohoshi) 2019年1月27日
Google DriveやGoogle Presentation、便利だけど上越新幹線や北陸新幹線、そして会場のネットワーク環境によっては、アクセスできない問題
振り返りポイント8補足
— むろほし (@RyotaMurohoshi) 2019年1月27日
上越新幹線や北陸新幹線は、トンネル潜る & 山間部通るので、電波が入らないとこある
振り返りポイント9
— むろほし (@RyotaMurohoshi) 2019年1月27日
「『LINQ遅いから使わない』って言ってるけど、普通は使ってくださいね。よっぽどネットワークIOとかファイルIOとかのが遅いですからね。まず普通にLINQ使って、それからボトルネック探してね」
って言いそびれた。
振り返りポイント10
— むろほし (@RyotaMurohoshi) 2019年1月27日
境界値チェック
for展開
とか
わかるかい!
振り返りポイント11
— むろほし (@RyotaMurohoshi) 2019年1月27日
富山
美味しいものたくさんだ!
富山ブラックー pic.twitter.com/t9zZvnkmSg
— むろほし (@RyotaMurohoshi) 2019年1月27日
天気はいいけど、寒いー
— むろほし (@RyotaMurohoshi) 2019年1月27日
春とか秋なら、足湯入りたい。 pic.twitter.com/p82GlU8iud