SlideShare a Scribd company logo
1 of 25
Download to read offline
continuatioN
Linking
2016.04.16 NL-NAGOYA 2016 KOUJI MATSUI (@KEKYO2)
自己紹介
けきょ (@kekyo2, www.kekyo.net)
ロードバイク乗り
Microsoft MVP for Visual Studio and Development Technology
認定スクラムマスター・スクラムプロダクトオーナー
Center CLRオーガナイザー
最近
というか、かなり昔から「継続」に興味がありまして。
◦ ブログに連載を始めました
※ 注: 学問的厳密性は無いです
アジェンダ
CPS (継続渡しスタイル / Continuation Passing Style)
.NET Task / async-await / F# Async workflow
Continuation Linking
キーワード: Continuation Passing Style
「継続渡しスタイル」
◦ 継続渡しスタイル (CPS: Continuation-passing style) とは、プログラムの制御を
継続を用いて陽に表すプログラミングスタイルのことである。
(Wikipedia)
何だ、
名 古 屋 的 ヤ ヴァ イ や つ か。
… 陽に表す、とは
Continuation Passing Style
処理の完了時に、次に実行すべき
処理を渡させる
継続させる処理を関数(ラムダ式)
でネストさせて渡していく
一般的な逐次処理
Continuation Passing Style
「継続渡し (Continuation Passing)」
継続させる処理 ≒ コールバック
Continuation Passing Style
コールバックで処理を継続させるといえば、
JavaScriptのコールバックハンドラーとかメジャーですね。
「継続渡し (Continuation Passing)」
難しくない!!
「CPS」という名前を付けただけだ!
Continuation Passing Style
CPSについてわかりましたか?
これが何?という疑問は「沼」なので、ここではスルーします。
◦ 各自、ググって下さい。
「継続渡し」というものが感覚的に分かればよいです。
アジェンダ
CPS (継続渡しスタイル / Continuation Passing Style)
.NET Task / async-await / F# Async workflow
Continuation Linking
キーワード: .NET Task
.NET 4.0から導入された、「タスク」を透過的に扱うクラス。
更に、.NET 4.5とC# 5.0のasync-awaitを使って、非同期処理をタ
スクとして扱えるようにした。
CPSと何の関係が?
.NET Task (.NET 4.0 / C# 4.0)
まずは、.NET 4.0 TaskのCPS (ContinueWithを使う)
関数に直接継続を渡していないが、
Task.ContinueWithに継続を渡している ≒ CPS
注: 手を抜いてasync使ってます
.NET Task (.NET 4.5/C# 5.0)
そして、.NET 4.5/C# 5.0 でのasync-awaitによる非同期処理
これが「継続」だと
分かりますか?
async-awaitでもTaskを使う
.NET Task comparison
つまり、async-awaitによるTaskの継続も、
「構文糖」と見なせば一種のCPSです。
…たぶん
これが .NET 4.0 (C# 4.0 Task only) こうなる .NET 4.5 (C# 5.0 async-await)
キーワード: F# Async workflow
F# 2.0から導入された「非同期ワークフロー」。
非同期処理をシームレスにF#構文に統合(.NET 2.0以降)
CPSと何の関係が?
F# Async workflow
ほとんどasync-awaitと一緒
これが「継続」だと分かりますか?
返されるのは Async<int>
※ let! (Let-Bang) は、Async<T>を非同期処理として待機して、結果のTを束縛します。
C#でのawaitに相当。
※ F# Async workflowのCPSは長いので省略。
Async.FromContinuations<T>関数を使います。
非同期継続のまとめ
.NET Task : ContinueWith
.NET Task : async-await
F# Async workflow : let!
それぞれの非同期処理の継続手段が、暗に「CPS」であることが
わかりましたか?
アジェンダ
CPS (継続渡しスタイル / Continuation Passing Style)
.NET Task / async-await / F# Async workflow
Continuation Linking
「継続」を「接続」する
.NET TaskとF# Asyncをシームレスに接続して、相互運用可能に
できたらいいね。
◦ 大枠において対比出来る、Task<T> ⇔ Async<T> という関係から妄想
つまり:
◦ F# AsyncをC#側でawait出来たらいいよね?
◦ .NET TaskをF# Async workflowでlet!出来たらいいよね?
◦ HttpClient.GetStreamAsync()とか、普通にuse!できるようになるよ。
.NET Task / C#側のシナリオ
Async<T>クラスに対して拡張メソッドを定義して「AsTaskメ
ソッド」を生やし、 Async<T> →Task<T>に変換可能にする。
◦ Async.StartWithContinuations<T>関数を使って、TaskCompletionSource<T>
を操作(SetResult・SetException・SetCanceled)し、Task<T>クラスを返
す。
Async<T>クラスに対して拡張メソッドを定義して「GetAwaiter
メソッド」を生やす。
◦ C# でAsync<T>に対して直接awaitが可能になる。
※ F#のAsync<T>クラスは、正確にはFSharpAsync<‘T>クラスです。
.NET Task / C#側のシナリオ
Async<int>を直接awaitで待機
(GetAwaiterが呼ばれる)
F# Async workflow側のシナリオ
Asyncクラスに対して拡張関数を定義して「AsAsync関数」を生
やし、Task<T>→Async<T>に変換可能にする。
◦ Async.FromContinuations<T>関数を使って、Task.ContinueWithメソッドの
コールバックからAsync<T>の継続を操作する。
AsyncBuilder<T>クラスに対して拡張関数を定義して「Source関
数」を生やす。
◦ Source関数がTask<T>を受け取りAsync<T>に変換することで、F# Async
workflow内で直接let! が可能になる。
※ let!の他にdo!・return!・use!もありますが、Source関数を定義することでこれらすべ
てに対応できます。
F# Async workflow側のシナリオ
Task<int>を直接let!で待機
(Sourceが呼ばれる)
こまごまとしたシナリオ
System.VoidとFSharp.Unitの、型安全な変換の考慮
◦ Async<unit>をawaitすると、戻り値を受け取れないようにする。
◦ Task(非ジェネリック)は、do!しかできないようにする。
CancellationTokenのサポート
◦ F#側はAsync workflowのコンテキスト中で共通に割り当てられるTokenが存在
するが、Task側にはそのような概念はない。
◦ AsTask/AsAsyncで変換する際に、明示的に渡せるようにする。
Async.RunSynchronous関数を使わない
◦ 使ったらハードブロックしてしまう。Task.Waitメソッドを呼び出すことに該
当。FromContinuations<T>やStartWithContinuations<T>を使う。
AsyncCompletionSource<T>を作る
◦ FromContinuations<T>はコールバック関数を基礎としているので扱いにくい。
TaskCompletionSource<T>に相当する、F# Asyncの委譲クラスが必要。
ご清聴ありがとうございました!
これで実装してます→ GitHub: FusionTasks
◦ https://github.com/kekyo/FSharp.Control.FusionTasks
◦ https://www.nuget.org/packages/FSharp.Control.FusionTasks.FS40/
スライドはブログに上げます
◦ http://www.kekyo.net/
※ Thx: JavaScript プログラミング解説
http://so-zou.jp/web-app/tech/programming/javascript/event/handler/

More Related Content

What's hot

Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成Kouji Matsui
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけようKouji Matsui
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!Jun-ichi Sakamoto
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 ClojureYoshitaka Kawashima
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホンKouji Matsui
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばKouji Matsui
 
TypeScriptはいいぞ
TypeScriptはいいぞTypeScriptはいいぞ
TypeScriptはいいぞJun Suzuki
 
TypeScript 入門してみる
TypeScript 入門してみるTypeScript 入門してみる
TypeScript 入門してみるKen Fukuyama
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由Yusuke Naka
 
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuriで、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS MatsuriYoshitaka Kawashima
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?Toshio Ehara
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門大樹 小倉
 
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ拓弥 遠藤
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたSatoshi Takami
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!Naoto Ishizawa
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみたYasushi Kato
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjugsk44_
 

What's hot (19)

Nespのコード生成
Nespのコード生成Nespのコード生成
Nespのコード生成
 
Win32 APIをてなずけよう
Win32 APIをてなずけようWin32 APIをてなずけよう
Win32 APIをてなずけよう
 
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
 
TypeScript超入門
TypeScript超入門TypeScript超入門
TypeScript超入門
 
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
 
真Intermediate languageのキホン
真Intermediate languageのキホン真Intermediate languageのキホン
真Intermediate languageのキホン
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
メタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらばメタプログラミングでExcel仕様書よさらば
メタプログラミングでExcel仕様書よさらば
 
TypeScriptはいいぞ
TypeScriptはいいぞTypeScriptはいいぞ
TypeScriptはいいぞ
 
TypeScript 入門してみる
TypeScript 入門してみるTypeScript 入門してみる
TypeScript 入門してみる
 
TypeScriptをオススメする理由
TypeScriptをオススメする理由TypeScriptをオススメする理由
TypeScriptをオススメする理由
 
で、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuriで、次は何がくるの? - 第2回 TIS Matsuri
で、次は何がくるの? - 第2回 TIS Matsuri
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
JavaScript MVC入門
JavaScript MVC入門JavaScript MVC入門
JavaScript MVC入門
 
ぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽぼくのNode.jsのだいいっぽ
ぼくのNode.jsのだいいっぽ
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
 
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
 
3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた3日時間をもらったのでTypeScriptを触ってみた
3日時間をもらったのでTypeScriptを触ってみた
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 

Viewers also liked

これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしようKouji Matsui
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践Yoshifumi Kawai
 
Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編Akira Hatsune
 
ミニ四足 ~歩くミニ四駆~
ミニ四足 ~歩くミニ四駆~ミニ四足 ~歩くミニ四駆~
ミニ四足 ~歩くミニ四駆~Bizan Nishimura
 
ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門Hiroya Nagao
 
Rlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメントRlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメントRecruit Lifestyle Co., Ltd.
 
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術Unity Technologies Japan K.K.
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法Yoshifumi Kawai
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityYoshifumi Kawai
 

Viewers also liked (11)

これからの「async/await」の話をしよう
これからの「async/await」の話をしようこれからの「async/await」の話をしよう
これからの「async/await」の話をしよう
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編
 
ミニ四足 ~歩くミニ四駆~
ミニ四足 ~歩くミニ四駆~ミニ四足 ~歩くミニ四駆~
ミニ四足 ~歩くミニ四駆~
 
ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門
 
Setとして活動しはじめた話
Setとして活動しはじめた話Setとして活動しはじめた話
Setとして活動しはじめた話
 
Rlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメントRlsにおけるプロダクト プロジェクトマネジメント
Rlsにおけるプロダクト プロジェクトマネジメント
 
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
 
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
 
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for UnityRuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
 

Similar to continuatioN Linking

Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Staffnet_Inc
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれからShinichi Takahashi
 
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016MasuqaT
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。Akihiro Kuwano
 
分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計yamahige
 
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃおAngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃおToshio Ehara
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasstkyon mm
 
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装貴志 上坂
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practiceMasakazu Muraoka
 
Application insights で行ってみよう
Application insights で行ってみようApplication insights で行ってみよう
Application insights で行ってみようKazushi Kamegawa
 
20140712 knockoutjs-hands-on-in-osaka
20140712 knockoutjs-hands-on-in-osaka20140712 knockoutjs-hands-on-in-osaka
20140712 knockoutjs-hands-on-in-osakaSeiji Noro
 
Cdci for asaserviceera
Cdci for asaserviceeraCdci for asaserviceera
Cdci for asaserviceeraTakao Tetsuro
 
テンプレート・エンジンVelocity
テンプレート・エンジンVelocityテンプレート・エンジンVelocity
テンプレート・エンジンVelocity隆行 神戸
 
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1MasuqaT
 
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』R3 institute
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編Seiko Kuchida
 
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited20160724_cv_sfm_revisited
20160724_cv_sfm_revisitedKyohei Unno
 

Similar to continuatioN Linking (20)

ECCV 2016 速報
ECCV 2016 速報ECCV 2016 速報
ECCV 2016 速報
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923
 
Web開発の 今までとこれから
Web開発の 今までとこれからWeb開発の 今までとこれから
Web開発の 今までとこれから
 
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016
C# 6 is not dead - Introducing Kotlin release 1.0 @20160220 Nagoya ComCamp 2016
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計分析・モニタリングのために作文活動を測定するシステムの設計
分析・モニタリングのために作文活動を測定するシステムの設計
 
AngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃおAngularJSのDirectiveで俺俺タグつくっちゃお
AngularJSのDirectiveで俺俺タグつくっちゃお
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
2016-11-11 UMTP モデリングフォーラム2016 DDD実践のコツとazureによるモデル実装
 
Async flow controll basic and practice
Async flow controll basic and practiceAsync flow controll basic and practice
Async flow controll basic and practice
 
Application insights で行ってみよう
Application insights で行ってみようApplication insights で行ってみよう
Application insights で行ってみよう
 
20140712 knockoutjs-hands-on-in-osaka
20140712 knockoutjs-hands-on-in-osaka20140712 knockoutjs-hands-on-in-osaka
20140712 knockoutjs-hands-on-in-osaka
 
Cdci for asaserviceera
Cdci for asaserviceeraCdci for asaserviceera
Cdci for asaserviceera
 
テンプレート・エンジンVelocity
テンプレート・エンジンVelocityテンプレート・エンジンVelocity
テンプレート・エンジンVelocity
 
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
C#のコード解析ってなんだ@20160825 CenterCLR.学生 #1
 
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
kintone devCamp 2016 Spring 『アプリ開発なんて怖くない!gusukuでお手軽kintoneアプリ管理+α♪』
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
日本のCMSの今。特徴とプロジェクトから考える、次のCMS選び:本編
 
ICCV 2017 速報
ICCV 2017 速報 ICCV 2017 速報
ICCV 2017 速報
 
20160724_cv_sfm_revisited
20160724_cv_sfm_revisited20160724_cv_sfm_revisited
20160724_cv_sfm_revisited
 

More from Kouji Matsui

Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018Kouji Matsui
 
Matrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overviewMatrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overviewKouji Matsui
 
What's Functional?
What's Functional?What's Functional?
What's Functional?Kouji Matsui
 
Pitfall for WioLTE
Pitfall for WioLTEPitfall for WioLTE
Pitfall for WioLTEKouji Matsui
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculatorKouji Matsui
 
Write common, run anywhere
Write common, run anywhereWrite common, run anywhere
Write common, run anywhereKouji Matsui
 
Locality of Reference
Locality of ReferenceLocality of Reference
Locality of ReferenceKouji Matsui
 
You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.Kouji Matsui
 
How to meets Async and Task
How to meets Async and TaskHow to meets Async and Task
How to meets Async and TaskKouji Matsui
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITKouji Matsui
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basicsKouji Matsui
 
不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話Kouji Matsui
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions IIIKouji Matsui
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南Kouji Matsui
 
Final LINQ Extensions II
Final LINQ Extensions IIFinal LINQ Extensions II
Final LINQ Extensions IIKouji Matsui
 
Hello! intermediate language
Hello! intermediate languageHello! intermediate language
Hello! intermediate languageKouji Matsui
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ ExtensionsKouji Matsui
 
ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級Kouji Matsui
 
抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へ抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へKouji Matsui
 

More from Kouji Matsui (20)

Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018Making archive IL2C #6-55 dotnet600 2018
Making archive IL2C #6-55 dotnet600 2018
 
Matrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overviewMatrix signal controller and BrainPad overview
Matrix signal controller and BrainPad overview
 
Fun with BrainPad
Fun with BrainPadFun with BrainPad
Fun with BrainPad
 
What's Functional?
What's Functional?What's Functional?
What's Functional?
 
Pitfall for WioLTE
Pitfall for WioLTEPitfall for WioLTE
Pitfall for WioLTE
 
How to make the calculator
How to make the calculatorHow to make the calculator
How to make the calculator
 
Write common, run anywhere
Write common, run anywhereWrite common, run anywhere
Write common, run anywhere
 
Locality of Reference
Locality of ReferenceLocality of Reference
Locality of Reference
 
You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.You will be assimilated. Resistance is futile.
You will be assimilated. Resistance is futile.
 
How to meets Async and Task
How to meets Async and TaskHow to meets Async and Task
How to meets Async and Task
 
Beachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JITBeachhead implements new opcode on CLR JIT
Beachhead implements new opcode on CLR JIT
 
Async DeepDive basics
Async DeepDive basicsAsync DeepDive basics
Async DeepDive basics
 
不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話不健康なIt戦士を健康的にするアレの話
不健康なIt戦士を健康的にするアレの話
 
Final LINQ extensions III
Final LINQ extensions IIIFinal LINQ extensions III
Final LINQ extensions III
 
SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南SourceTreeで始めよう! Gitへの乗り換え指南
SourceTreeで始めよう! Gitへの乗り換え指南
 
Final LINQ Extensions II
Final LINQ Extensions IIFinal LINQ Extensions II
Final LINQ Extensions II
 
Hello! intermediate language
Hello! intermediate languageHello! intermediate language
Hello! intermediate language
 
Final LINQ Extensions
Final LINQ ExtensionsFinal LINQ Extensions
Final LINQ Extensions
 
ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級ポイントをおさえて移行しよう!Git乗り換え超初級
ポイントをおさえて移行しよう!Git乗り換え超初級
 
抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へ抽象太郎ものがたり そして伝説へ
抽象太郎ものがたり そして伝説へ
 

continuatioN Linking