SlideShare a Scribd company logo
わんくま同盟 名古屋勉強会 #28
C#で、ライフ ゲームを高速化してみるよ
~ 「C#マルチコア本」発刊記念
2013/8/24
BluewaterSoft biac
1
わんくま同盟 名古屋勉強会 #28
スピーカー紹介
2
わんくま同盟 名古屋勉強会 #28
スピーカー紹介 • 1957: スプートニク以前
に誕生 (宇宙世紀未満)
• 1983: 名古屋大学工学部(修
士)卒
• HONDA R&Dで自動車設計
• 1994~ ソフトウェア業界
• 2012~ BluewaterSoft
biac (山本 康彦)
http://www.bluewatersoft.jp
3
わんくま同盟 名古屋勉強会 #28
スピーカー紹介 • 本を書いたり
biac (山本 康彦)
http://www.bluewatersoft.jp
速攻入門 C# プログラミング
技術評論社、共著
2012/3
Windows 8
業務アプリ開発読本
技術評論社、共著
2013/3
C#によるマルチコアのための非
同期/並列処理プログラミング
技術評論社
2013/7
今日の話は、
この第4部から!
4
わんくま同盟 名古屋勉強会 #28
スピーカー紹介 • 記事を書いたり
biac (山本 康彦)
http://www.bluewatersoft.jp WinRT/Metro TIPS
@IT ~ 連載中
http://www.atmarkit.co.jp/ait/subtop/features/da/ap_winrttips_index.html
C#で始めるテスト駆動開発入門
CodeZine
http://codezine.jp/article/corner/446
特集: 次期 Windows 8.1 &
Visual Studio 2013
Preview 概説
@IT 2013/7
http://www.atmarkit.co.jp/ait/articles/1307/19/news099.html
5
わんくま同盟 名古屋勉強会 #28
スピーカー紹介 • アプリを作ったり
biac (山本 康彦)
http://www.bluewatersoft.jp
6
わんくま同盟 名古屋勉強会 #28
スピーカー紹介 • 講師やったりしてます
biac (山本 康彦)
http://www.bluewatersoft.jp
C# / VB.NET による
Windows 8 アプリ開発入門
2013/10/30~31
名古屋ソフトウェアセンター
http://www.nagoya-sc.co.jp/ap/seminar?m=1&key=10734
7
わんくま同盟 名古屋勉強会 #28
新刊紹介
• 2013/7/20上梓
• 電子書籍版もあります
https://gihyo.jp/dp/ebook/2013/978-4-7741-5907-2
• C#はやってるけど、非同期/並列
処理は「?」という開発者に!
C#によるマルチコアのための
非同期/並列処理プログラミング
http://www.amazon.co.jp/dp/4774158283/?tag=bluewatersoft-22
8
わんくま同盟 名古屋勉強会 #28
新刊紹介
■はじめに
この本は第一に,.NET Framework で,非
同期処理,並列処理を効率良く実現できる
マルチスレッドのプログラムを作りたいと
思っている開発者のために書きました.
.NET Framework での(マルチスレッドで
はないプログラムの)開発経験があること
を前提にしています.
また,すでにマルチスレッドの経験のある
プログラマーにとっては,ハンドブックと
なるように,そして最新の.NET
Framework による効率的なプログラミング
を伝えられるようにと書き進めました.
C#によるマルチコアのための
非同期/並列処理プログラミング
http://www.amazon.co.jp/dp/4774158283/?tag=bluewatersoft-22
9
わんくま同盟 名古屋勉強会 #28
新刊紹介
■目次
Part 1 マルチコアのための非同期処理/並列
処理の原理
Chapter 1 マルチコアを使いこなす
非同期処理/ 並列処理の時代
Chapter 2 試して納得!
マルチコア活用プログラミングの原理とポイント
Part 2 マルチコアを使いこなすための非同
期/並列処理必須知識
Part 3 マルチコアのためのC#/.NETの非同
期/並列処理の方法
Part 4 マルチコア非同期/並列処理実践プロ
グラミング
C#によるマルチコアのための
非同期/並列処理プログラミング
http://www.amazon.co.jp/dp/4774158283/?tag=bluewatersoft-22
10
今日の話は、
ここから!
わんくま同盟 名古屋勉強会 #28
アプリを
高速化する手順
ようやく本題 f(^^;
11
わんくま同盟 名古屋勉強会 #28
一般的には、こんな順序で
非同期化
• 画面とロジックを非同期化
⇒ お互い足を引っ張らないように!
並列化
• ロジックを並列化
⇒ 並列処理にして処理時間を短縮
ロジック
• ロジックを改良してさらに高速化
※先にやっちゃうと、並列化がわけわかめ
12
わんくま同盟 名古屋勉強会 #28
LANGTON'S LOOPS
を高速化してみるよ!
お題
13
わんくま同盟 名古屋勉強会 #28
Langton's loops • セル・オートマトンの
一種
• 無限に自己増殖を
繰り返す
※ 右はラングトンのループの
初期状態。Wikipediaより。
14
わんくま同盟 名古屋勉強会 #28
Langton's loops • ルールに従って、次ス
テップの状態を計算する
• ルールの例
ラングトンのループは、
・セルの状態は0~7
・上下左右の隣のセルと
自身の値で次の状態が決まる
15
わんくま同盟 名古屋勉強会 #28
とりあえず見てみるのが早い!
16
わんくま同盟 名古屋勉強会 #28
ロジック側
public class LangtonsLoops {
//「世界」(intの2次元配列)
int[,] _lives;
public int[,] Lives { get { return _lives; } }
// セルオートマトンの規則
Rule _rule;
public void Update() {
// 隣を見る(観測し終わるまで_livesを変更してはいけない)
for (int r = 1; r < _size - 1; r++)
for (int c = 1; c < _size - 1; c++)
//…
// 次ステップの状態を計算して_livesを書き換える
for (int r = 1; r < _size - 1; r++)
for (int c = 1; c < _size - 1; c++)
//…
}
}
17
これは並列化
するしか!
でもそれは
後のお楽しみ♪
わんくま同盟 名古屋勉強会 #28
画面側
private async Task RunLoops()
{
while (_isRunning)
{
_langtonsLoops.Update(); //ロジックを1ステップ計算させる
UpdateBitmap(_langtonsLoops.Lives); //画面を更新する
await Task.Yield(); // 画面更新の機会を与える(DoEventsの代用)
}
}
18
計算中は
画面がフリーズ
画面更新中は
計算せず
わんくま同盟 名古屋勉強会 #28
速度計測結果(例) サイクル
タイム
性能向上 画面描画
速度
最初の実装 0.08秒 --- 12fps
※ あくまでも特定の条件で計測し
ただけの参考値です
19
わんくま同盟 名古屋勉強会 #28
画面とロジックが
足を引っ張り合わないように
まずは非同期化
20
わんくま同盟 名古屋勉強会 #28
画面をフリーズさせない非同期
private async Task RunLoops()
{
while (_isRunning)
{
// await Task.Runで囲って非同期にする
await Task.Run(()=>
_langtonsLoops.Update(); //ロジックを1ステップ計算させる
);
UpdateBitmap(_langtonsLoops.Lives); //画面を更新する
//await Task.Yield(); // DoEvents(の代用)は不要になった
}
}
21
・やっぱりロジックの後で画面更新
・やっぱり画面更新中は計算せず
わんくま同盟 名古屋勉強会 #28
ロジックを全速力で走らせる非同期(1/2)
public class LangtonsLoops { // ロジック側
// 変更を画面に通知するためのイベント
public event PropertyChangedEventHandler PropertyChanged;
public async Task RunLoopsAsync() {
// フラグが立っている間、非同期で計算し続ける
await Task.Run(() => {
while (_isRunning) {
Update();
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs("Lives"));
}
});
//…
}
// ……以下略……
22
わんくま同盟 名古屋勉強会 #28
ロジックを全速力で走らせる非同期(2/2)
public sealed partial class MainPage : LayoutAwarePage { // 画面側
// ロジックを起動する
private async Task RunLoops() {
//…
await _langtonsLoops.RunLoopsAsync();
}
// ロジックから呼び出されるイベントハンドラー
async void LangtonsLoops_PropertyChanged(object sender, PropertyChangedEventArgs e) {
if (e.PropertyName == "Lives") {
//…UpdateBitmapしてるときは、イベントを無視してここでリターン…
await _thisDispatcher.RunAsync( // UIスレッドで実行する
Windows.UI.Core.CoreDispatcherPriority.Normal,
() => { UpdateBitmap(_langtonsLoops.Lives); //…
});
//…
}
}
// ……以下略……
23
わんくま同盟 名古屋勉強会 #28
あれっ!? 排他は?
• 2 次元配列 Livesを双方からアクセスする
⇒ 排他制御しないとマズイんじゃね?
• よく考えてみる。
ロジック: Livesを読み書き
画面:Livesから読み出すだけ
中途半端に読み出しても、多少画面が乱れ
るだけ(たぶん誰も気付かない)
⇒ 排他制御しなくていいじゃん!
24
わんくま同盟 名古屋勉強会 #28
速度計測結果(例) サイクル
タイム
性能向上 画面描画
速度
最初の実装 0.08秒 --- 12fps
非同期化 0.05秒 1.6倍 16fps
※ あくまでも特定の条件で計測し
ただけの参考値です
25
わんくま同盟 名古屋勉強会 #28
ロジックで
マルチ コアをフルに使う
いよいよ並列化
26
わんくま同盟 名古屋勉強会 #28
ロジックを並列化する
public class LangtonsLoops {
//……省略……
public void Update() {
// 隣を見る(観測し終わるまで_livesを変更してはいけない)
Parallel.For(1, _size - 1, (r) => {
for (int c = 1; c < _size - 1; c++) {
//……隣を観測してメモリに保持……
}
});
// 次ステップの状態を計算して_livesを書き換える
Parallel.For(1, _size - 1, (r) => {
for (int c = 1; c < _size - 1; c++) {
//……隣の観測結果から、次ステップを計算し、_livesに書き込み
}
});
}
27
わんくま同盟 名古屋勉強会 #28
あれっ!? 排他は?
• 2 次元配列 Livesを、複数のスレッドから
アクセスする
⇒ 排他制御しないとマズイんじゃね?
• よく考えてみる。
アクセスする場所は?
r(行)とc(列)で指定された要素。
これはスレッドごとに異なる。
⇒ 排他制御しなくていいじゃん!
28
わんくま同盟 名古屋勉強会 #28
速度計測結果(例) サイクル
タイム
性能向上 画面描画
速度
最初の実装 0.08秒 --- 12fps
非同期化 0.05秒 1.6倍 16fps
並列化 0.03秒 2.7倍 8fps
※ あくまでも特定の条件で計測し
ただけの参考値です
29
わんくま同盟 名古屋勉強会 #28
ロジックを見直して
さらに高速化
最後にチューニング
30
わんくま同盟 名古屋勉強会 #28
ロジック自体を高速化
• 2 つのループを 1 つに
Lives配列を2つ用意して読み出しと書込みを別の配列
に。(1ステップごとに交換)
• 観測用の配列を廃止 (単純な変数に)
• ルールの内部表現をスリム化
ルール参照キーの生成: 乗算と加算 ⇒ ビット演算
その他いろいろ
31
わんくま同盟 名古屋勉強会 #28
速度計測結果(例) サイクル
タイム
性能向上 画面描画
速度
最初の実装 0.08秒 --- 12fps
非同期化 0.05秒 1.6倍 16fps
並列化 0.03秒 2.7倍 8fps
チューン 0.01秒 8倍 10fps
※ あくまでも特定の条件で計測し
ただけの参考値です
32
わんくま同盟 名古屋勉強会 #28
大事な事なので
もういちど
以上、完了
33
わんくま同盟 名古屋勉強会 #28
一般的には、こんな順序で
非同期化
• 画面とロジックを非同期化
⇒ お互い足を引っ張らないように!
並列化
• ロジックを並列化
⇒ 並列処理にして処理時間を短縮
ロジック
• ロジックを改良してさらに高速化
※先にやっちゃうと、並列化がわけわかめ
34
+ 排他制御は、よくよく考えて!
※不要なことも多い。ムダな排他は低速化とバグの元
わんくま同盟 名古屋勉強会 #28
今日のネタ
• 今日のソースコード
gihyo.jpのサポートページに
あります
http://gihyo.jp/book/2013/978-4-
7741-5828-0/support
C#によるマルチコアのための
非同期/並列処理プログラミング
http://www.amazon.co.jp/dp/4774158283/?tag=bluewatersoft-22
35
わんくま同盟 名古屋勉強会 #28
ご清聴ありがとうございました
36

More Related Content

Similar to わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ

Jjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafxJjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafx
torutk
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
asa88
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Yasuaki Matsuda
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
Yasuhiko Yamamoto
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAI
Tomokazu Kizawa
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
Yasuhiko Yamamoto
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北Akiko Kosaka
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北Akiko Kosaka
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
Drecom Co., Ltd.
 
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 HiroshimaLibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 Hiroshima
Masataka Kondo
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
Junya "Jun" Shimoda
 
Bot Framework Composer Fukuazu
Bot Framework Composer FukuazuBot Framework Composer Fukuazu
Bot Framework Composer Fukuazu
ru pic
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」techtalkdwango
 
【Agile Conference tokyo 2010】 Going Agile with Tool
【Agile Conference tokyo 2010】 Going Agile with Tool【Agile Conference tokyo 2010】 Going Agile with Tool
【Agile Conference tokyo 2010】 Going Agile with Tool智治 長沢
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
Koji Shigemura
 
第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT
Akiyoshi Tsuchida
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Naoki Umehara
 
Build 2022 / Uno Platform
Build 2022 / Uno PlatformBuild 2022 / Uno Platform
Build 2022 / Uno Platform
m ishizaki
 
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2 How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2 ichikaway
 

Similar to わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ (20)

Jjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafxJjugccc2017spring m6 javafx
Jjugccc2017spring m6 javafx
 
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
触ってみよう! Robotics Studio -レゴマインドストームRCXを動かしてみる
 
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオンAzure のポータル画面で、AI フレーバな BOT の作成ハンズオン
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
 
Android0422
Android0422Android0422
Android0422
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAI
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
 
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
 
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 HiroshimaLibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 Hiroshima
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
 
Bot Framework Composer Fukuazu
Bot Framework Composer FukuazuBot Framework Composer Fukuazu
Bot Framework Composer Fukuazu
 
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
 
【Agile Conference tokyo 2010】 Going Agile with Tool
【Agile Conference tokyo 2010】 Going Agile with Tool【Agile Conference tokyo 2010】 Going Agile with Tool
【Agile Conference tokyo 2010】 Going Agile with Tool
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 
第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT
 
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
Ricoh UCS for iPad でみる エンタープライズ アジャイル開発
 
Build 2022 / Uno Platform
Build 2022 / Uno PlatformBuild 2022 / Uno Platform
Build 2022 / Uno Platform
 
How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2 How to manage Cakephp @CakePHP_Fukuoka_2
How to manage Cakephp @CakePHP_Fukuoka_2
 

More from Yasuhiko Yamamoto

UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
Yasuhiko Yamamoto
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
Yasuhiko Yamamoto
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
Yasuhiko Yamamoto
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
Yasuhiko Yamamoto
 
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
Yasuhiko Yamamoto
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Yasuhiko Yamamoto
 
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
Yasuhiko Yamamoto
 
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
Yasuhiko Yamamoto
 
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
Yasuhiko Yamamoto
 
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
 
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
Yasuhiko Yamamoto
 
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧めわんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
Yasuhiko Yamamoto
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
Yasuhiko Yamamoto
 
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみたWindows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
Yasuhiko Yamamoto
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
Yasuhiko Yamamoto
 
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
Yasuhiko Yamamoto
 
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Yasuhiko Yamamoto
 
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Yasuhiko Yamamoto
 
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
Yasuhiko Yamamoto
 
TDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファーストTDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファースト
Yasuhiko Yamamoto
 

More from Yasuhiko Yamamoto (20)

UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25わんくま名古屋 #37 (20151114) TDD道場 #25
わんくま名古屋 #37 (20151114) TDD道場 #25
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
 
わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22わんくま名古屋#34(20150214) TDD道場#22
わんくま名古屋#34(20150214) TDD道場#22
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
 
わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生わんくま名古屋#33(20141115) モノ作り半生
わんくま名古屋#33(20141115) モノ作り半生
 
わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21わんくま名古屋#33(20141115) TDD道場#21
わんくま名古屋#33(20141115) TDD道場#21
 
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
開発ツールを買わずに作る♪ ユニバーサルWindowsアプリ!
 
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
 
わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19わんくま名古屋#31(20140524) TDD道場 #19
わんくま名古屋#31(20140524) TDD道場 #19
 
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧めわんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
わんくま名古屋#31(20140524) ユニバーサルWindowsアプリ開発の勧め
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
 
Windows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみたWindows 8.1 Update 1 の噂をまとめてみた
Windows 8.1 Update 1 の噂をまとめてみた
 
タダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnitタダで始めるテストファースト入門 ~ C# Express + NUnit
タダで始めるテストファースト入門 ~ C# Express + NUnit
 
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17わんくま名古屋 #29 (2013/11/23) TDD道場 #17
わんくま名古屋 #29 (2013/11/23) TDD道場 #17
 
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
Windows 8.1 ストア アプリ first look for 8.0 developers! [ss]
 
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋Windowsストアアプリでウイルスを作るには!? cod2013名古屋
Windowsストアアプリでウイルスを作るには!? cod2013名古屋
 
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
プログラマとデザイナで時計を作るVisual studioハッカソン ~ TDDの考え方を開発全体に応用してみよう!
 
TDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファーストTDDの原理 ~ スペック・ファースト
TDDの原理 ~ スペック・ファースト
 

Recently uploaded

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 

Recently uploaded (16)

2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 

わんくま名古屋#28(20130824) c#で、ライフゲームを高速化してみるよ