Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ドキドキライブコーディング2019 #Burikaigi2019
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
RyotaMurohoshi
January 26, 2019
Technology
1
1.2k
ドキドキライブコーディング2019 #Burikaigi2019
2019/01/26(土) 富山県宇奈月国際会館セレナで開催された #Burikaigi2019 の発表資料です。
RyotaMurohoshi
January 26, 2019
Tweet
Share
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Tilemapのアップデートについて
ryotamurohoshi
0
72
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
590
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
820
Odin Validationはいいぞ!
ryotamurohoshi
2
1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.5k
Unityでも、新しいC#
ryotamurohoshi
0
1.4k
Riderはいいぞ!
ryotamurohoshi
1
3.7k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.7k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Other Decks in Technology
See All in Technology
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
160
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
5
2.4k
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
220
DMBOKを使ってレバレジーズのデータマネジメントを評価した
leveragestech
0
470
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
120
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
4
1.3k
RGBに陥らないために -プロダクトの価値を届けるまで-
righttouch
PRO
0
130
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
230
OPENLOGI Company Profile for engineer
hr01
1
61k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
77k
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
260
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
200
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
280
Deep Space Network (abreviated)
tonyrice
0
97
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
240
GitHub's CSS Performance
jonrohan
1032
470k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
53k
The untapped power of vector embeddings
frankvandijk
2
1.6k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
91
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Google's AI Overviews - The New Search
badams
0
950
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
97
Transcript
ドキドキライブコーディング in BuriKaigi2019 ~全てが0になる、全てがAになる~ @RyotaMurohoshi 2019/01/26(土) Burikaigi 2019
「ドキドキライブコーディング」 を見るの、皆さんは初めてですか?
「ドキドキライブコーディング」は 2014年、小島さん・石野さん・鈴木さんの 3人ではじまりました
2015/1/31(土) 富山県 呉羽ハイツ
第2回ドキドキライブコーディング を観客として、見ていました。
『めちゃくちゃやばい。 C#すげぇ。この人達やばい』 そう思ったんです。
その時のテーマは 「七並べ」
「七並べ」のロジックを C#で実装するプログラムバトル
アルゴリズムを駆使したバトル? 違う!それ"だけ"じゃない!
例えば、小島さんの作戦 「相手のロジックをすり替え、 挙動を書き換える」
『C#こんなことできるのか! ていうか これって”そういう戦い”か!』
ドキドキライブコーディングは 普通の プログラミングバトルじゃない
相手の裏を書き C#を駆使し、相手を倒す
そして2017年 第4回ドキドキライブコーディング 俺、「むろほし」も参戦
2017年のテーマ テーマ : 四人打ちオセロ
「むろほし」の作戦 No.1 開始時にマスを書き換える 一手目で全部俺のマス、作戦
結果
None
成功
しかし失格
ある人は言いました 「あれはダメだ。オセロじゃない」
『なるほど。 オセロのルールは 守らなきゃいけないのか。』
時が経ち 第5回 四人打ちオセロ 再び
「むろほし」の作戦 No.2 他の3人の挙動を乗っ取り 終局まで全部コントロール、作戦
結果
成功、しかしまた失格
さらにさらに 第6回 四人打ちオセロ またまた
『流石に今回は、真面目にやろう 三度目だし・・・』
『そう言えばこの四人打ちオセロ チーム戦だった・・・』
「むろほし」の作戦 No.3 石野さんをいい感じにサポート 石野さんに勝ってもらおう!作戦
結果
敗北
ただそれ以上に悔しかったのは、
バトル後のコメント 「今回は破壊力が足りなかったんじゃない?」 「小利口にまとまりすぎでは?」 「自分の役割がわかっていないのでは?」
そこまで言うなら やってやんよ!
ここから 今回の話
作戦名
〜全てが0になる 全てがAになる〜
None
None
• 16[byte]のデータソース • エンコードし、デコード • 元のデータソースと、 デコード結果を比較 • 1000000回繰り返し •
ここまでかかる時間で勝負
「むろほし」の実装
None
None
元のデータソースを Clearする (0で書き換える)
エンコード結果は固定 『"AAAAAAAAAAAAAAAAAAAAAA=="』 デコード結果も固定 『new byte[16]』
〜全てが0になる 全てがAになる〜
Base64での 処理時間バトル
エンコード・デコード ちゃんとした! ※ただしデータソースは書き換えた
注意!
こう言う感じで意図せず、配列やリスト の中身を書き換えて、副作用を与えること 本当にやっちゃダメだぞ!約束だ! 本当に、普通のコードじゃダメだぞ!約束だ!
おまけ 実際は、「bytes.AsSpan().Clear()」 よりも、forで回して0クリアした方が早かった 面白いから、こっちを採用したよ!
ドキドキライブコーディング in BuriKaigi2019 ~全てが0になる、全てがAになる~ @RyotaMurohoshi 2019/01/26(土) Burikaigi 2019
Fin