SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
#JCConfTaiwan 2017
Reactive Programming
with Reactor
Swanky Hsiao (史旺基)
http://swanky.github.io/
#JCConfTaiwan 2017
Reactive

Programming
Nonblocking

Asynchronous
#JCConfTaiwan 2017
Reactor Flux
#JCConfTaiwan 2017
Reactor Mono
#JCConfTaiwan 2017
Operators + Functional Programming
filter
flatMap
publishOn
just fromArray fromIterable
empty
error
never
map
collect
subscribeOn
zipWith
#JCConfTaiwan 2017
Blocking Synchronous Call
class	MyService	{



				boolean	doSomething(){

								//	…	sync	&	blocking	

				}



}
#JCConfTaiwan 2017
Reactive Call
class	MyService	{



				boolean	doSomething(){

								//	…	sync	&	blocking

				}



				boolean	reactiveDoSomething(){

								Mono.fromCallable(()	->	doSomething())

												.subscribeOn(Schedulers.elastic())

												.subscribe();

				}



}
#JCConfTaiwan 2017
史旺基 (蕭宇程)
《制服.女孩 × 史旺基》系列列與
《⾼高校制服戀物論》攝影作者

朱學恒「阿宅反抗軍」及

「制服地圖」特約攝影師

國立臺灣師範⼤大學資訊⼯工程博⼠士

JWorld@TW認證版主

⽬目前任職於資策會
#JCConfTaiwan 2017
Reactive?
#JCConfTaiwan 2017
#JCConfTaiwan 2017
Reactive Systems
Reactive Programming
Functional Reactive

Programming (FRP)
#JCConfTaiwan 2017
FRP
ICFP 1997
Ref: http://conal.net/papers/icfp97/
#JCConfTaiwan 2017
Reactive Manifesto
Ref: https://www.reactivemanifesto.org/
#JCConfTaiwan 2017
Responsive
React to its users
#JCConfTaiwan 2017
Resilient
React to failure and stay available
#JCConfTaiwan 2017
Elastic
React to variable load conditions
#JCConfTaiwan 2017
Message-driven
React to inputs
#JCConfTaiwan 2017
Reactive Programming
Combination of
•Functional
Programming
•Event Based
Programming
•Loose Coupling
•Error Resilience
#JCConfTaiwan 2017
Blocking APIs
Ref: https://www.lightbend.com/reactive-programming-versus-reactive-systems
#JCConfTaiwan 2017
call model makeup
dress up
photo shooting
Ref: https://www.lightbend.com/reactive-programming-versus-reactive-systems
#JCConfTaiwan 2017
Messaging
Ref: https://www.lightbend.com/reactive-programming-versus-reactive-systems
#JCConfTaiwan 2017
call model
makeup
dress up
photo shooting
Ref: https://www.lightbend.com/reactive-programming-versus-reactive-systems
#JCConfTaiwan 2017Ref: https://projectreactor.io/learn
#JCConfTaiwan 2017Ref: https://projectreactor.io/learn
#JCConfTaiwan 2017Ref: https://projectreactor.io/learn
#JCConfTaiwan 2017
Reactive API Implementation
Callback-based
Future/Promise
Reactive Stream
#JCConfTaiwan 2017
Callback Hell
#JCConfTaiwan 2017
Ref. Callback
• Event Handling and Callback
Methods with Java in Android

https://youtu.be/8cufpQlHUOE
#JCConfTaiwan 2017
Future/Promise
#JCConfTaiwan 2017
Ref. Future
• [JCConf 2015] 使⽤用 Java 的
Future/Promise API 來來撰寫非同
步程式 by kojilin

https://youtu.be/_EqitUOUpes
• Reactive Programming Patterns
with Java 8 Futures

https://youtu.be/tiJEL3oiHIY
#JCConfTaiwan 2017
Reactive Stream
[JDK	9]

java.util.concurrent.Flow
http://www.reactive-streams.org/
#JCConfTaiwan 2017
Stream
List<Model>	myModels	=	models.stream()	
				.filter(m	->	m.getAge()	<	22)	
				.filter(m	->	m.getHeight()	>	168)	
				.filter(m	->	m.getWeight()	<	50)	
				.map(Model::makeup)	
				.filter(Model::isTheSamePerson)	
				.distinct()	
				.sorted()	
				.collect(Collectors.toList());
#JCConfTaiwan 2017https://zeroturnaround.com/rebellabs/java-8-streams-cheat-sheet/
#JCConfTaiwan 2017
Ref. Stream
• Get a Taste of Lambdas and Get
Addicted to Streams

https://youtu.be/1OpAgZvYXLQ
#JCConfTaiwan 2017
Project Reactor Start - 2012
Reactor 1.x - 2013
Reactor 2.0 - 2015 April
Reactor 2.5 - 2016 Feb
Reactor 3.0 - 2016 Aug
Reactor 3.1 - 2017
https://projectreactor.io/
#JCConfTaiwan 2017
#JCConfTaiwan 2017
#JCConfTaiwan 2017
#JCConfTaiwan 2017
#JCConfTaiwan 2017
Reactor Core Features
• Flux, an asynchronous sequence of 0-n items
• Mono, an asynchronous 0-1 result
• Simple ways to create a Flux/Mono and to
subscribe to it
• Programmatically creating a sequence
• Schedulers
• Handling Errors
• Processor
#JCConfTaiwan 2017
Flux / Mono
#JCConfTaiwan 2017
Flux Mono
#JCConfTaiwan 2017
Operators
• Creating
• Transforming
• Filtering
• Combining
• Error Handling
• Utility
• Conditional
and Boolean
• Mathematical
and Aggregate
• Converting
• Connectable
• Backpressure
#JCConfTaiwan 2017
#JCConfTaiwan 2017
Creating Flux/Mono: just
Flux<String>	seq	=

				Flux.just("foo",	"bar",	"foobar");
Mono<String>	data	=	Mono.just("foo");
#JCConfTaiwan 2017
Creating Flux: fromXxx
List<String>	iterable	=	Arrays.asList("foo",	"bar",	"foobar");	
Flux<String>	seq	=	Flux.fromIterable(iterable);
#JCConfTaiwan 2017
Creating Mono: fromXxx
#JCConfTaiwan 2017
Creating Flux: range
Flux<Integer>	ints	=	Flux.range(1,	3);
#JCConfTaiwan 2017
Publisher Subscriber
pull
push
#JCConfTaiwan 2017
Publisher Subscriber
subscribe(:Subscriber)
Subscription
onSubscribe(:Subscription)
request(n)/cancel()
onNext(:Data)
onError()/onComplete()
#JCConfTaiwan 2017
Publisher SubscriberProcessor Processor
#JCConfTaiwan 2017
Request to Start streaming data:
subscribe
#JCConfTaiwan 2017
Flux<String>	flux	=	Flux.just("foo",	"chain");	
flux	=	flux.map(secret	->	secret.replaceAll(".",	"*"));
flux.subscribe(next	->	System.out.println("Received:	"	+	next));
Lazy Evaluation
…
#JCConfTaiwan 2017
Scheduler Threading
• Schedulers.immediate()

current thread
• Schedulers.single()

single, reusable thread
• Schedulers.elastic()

elastic thread pool
• Schedulers.parallel()

fixed pool of workers(CPU cores)
•Schedulers.fromExecutorService(ExecutorService)
#JCConfTaiwan 2017
Scheduler Threading (ex: Flux)
Ref: https://stackoverflow.com/a/41941592
Flux.just("a",	"b",	"c")	
				.doOnNext(v	->	System.out.println("before	publishOn:	"	+	Thread.currentThread().getName()))	
				.publishOn(Schedulers.elastic())	
				.doOnNext(v	->	System.out.println("after	publishOn:	"	+	Thread.currentThread().getName()))	
				.subscribeOn(Schedulers.parallel())	
				.subscribe(v	->	System.out.println("received	"	+	v	+	"	on	"	+	Thread.currentThread().getName()));
before	publishOn:	parallel-1	
before	publishOn:	parallel-1	
before	publishOn:	parallel-1	
after	publishOn:	elastic-2	
received	a	on	elastic-2	
after	publishOn:	elastic-2	
received	b	on	elastic-2	
after	publishOn:	elastic-2	
received	c	on	elastic-2
Output:
#JCConfTaiwan 2017
Reactor Core
Reactor Test
Reactor Netty
Reactor Adapter
Reactor Kafka
Reactor Extra
#JCConfTaiwan 2017
#JCConfTaiwan 2017
Reactor
Reactive

Programming
#JCConfTaiwan 2017
Ref. Reactive Programming with Reactor
• Project Reactor

https://projectreactor.io/
• Reactive Programming versus Reactive Systems

https://www.lightbend.com/reactive-programming-versus-reactive-systems
• Reactive Programming with Reactor 3

https://tech.io/playgrounds/929/reactive-programming-with-reactor-3/Intro
• What Are Reactive Streams in Java?

https://dzone.com/articles/what-are-reactive-streams-in-java
• 5 Things to Know About Reactive Programming

https://dzone.com/articles/5-things-to-know-about-reactive-programming
• Java 9 Flow API – Reactive Streams

http://javasampleapproach.com/java/java-9/java-9-flow-api-reactive-streams
#JCConfTaiwan 2017
Thank You!

Más contenido relacionado

La actualidad más candente

Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015Andrea Gallidabino
 
.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance TipsSasha Goldshtein
 
Drupal course - batch API
Drupal course - batch APIDrupal course - batch API
Drupal course - batch APIDániel Kalmár
 
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.UA Mobile
 
Sprint 36 review
Sprint 36 reviewSprint 36 review
Sprint 36 reviewManageIQ
 

La actualidad más candente (10)

Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015Web Liquid Streams Mashup Challenge ICWE 2015
Web Liquid Streams Mashup Challenge ICWE 2015
 
.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips.NET Garbage Collection Performance Tips
.NET Garbage Collection Performance Tips
 
Drupal course - batch API
Drupal course - batch APIDrupal course - batch API
Drupal course - batch API
 
非同期javascriptの過去と未来
非同期javascriptの過去と未来非同期javascriptの過去と未来
非同期javascriptの過去と未来
 
Jetpack joyride!
Jetpack joyride!Jetpack joyride!
Jetpack joyride!
 
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.
The Flexible Layout Kit (how we got rid of web views). UA Mobile 2016.
 
Sprint 36 review
Sprint 36 reviewSprint 36 review
Sprint 36 review
 
jsDay 2016 recap
jsDay 2016 recapjsDay 2016 recap
jsDay 2016 recap
 
The Other WatchKit
The Other WatchKitThe Other WatchKit
The Other WatchKit
 
GvaScript Library
GvaScript LibraryGvaScript Library
GvaScript Library
 

Similar a [JCConf 2017] Reactive Programming with Reactor

Integrating Applications: the Reactive Way
Integrating Applications: the Reactive WayIntegrating Applications: the Reactive Way
Integrating Applications: the Reactive WayNicola Ferraro
 
Fullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year laterFullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year laterMek Srunyu Stittri
 
ESNext, service workers, and the future of the web
ESNext, service workers, and the future of the webESNext, service workers, and the future of the web
ESNext, service workers, and the future of the webJemuel Young
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornMaxime Najim
 
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Luciano Murruni
 
Why scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisRuslan Shevchenko
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side SwiftJens Ravens
 
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOP
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOPHOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOP
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOPMykola Novik
 
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architectureDevoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architectureBen Wilcock
 
NodeJS Serverless backends for your frontends
NodeJS Serverless backends for your frontendsNodeJS Serverless backends for your frontends
NodeJS Serverless backends for your frontendsCarlos Santana
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoGWTcon
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Zach Lendon
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementZach Lendon
 
Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"Alexander Pashynskiy
 
Dmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesDmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesLogeekNightUkraine
 

Similar a [JCConf 2017] Reactive Programming with Reactor (20)

Integrating Applications: the Reactive Way
Integrating Applications: the Reactive WayIntegrating Applications: the Reactive Way
Integrating Applications: the Reactive Way
 
Fullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year laterFullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year later
 
RxSwift to Combine
RxSwift to CombineRxSwift to Combine
RxSwift to Combine
 
RxSwift to Combine
RxSwift to CombineRxSwift to Combine
RxSwift to Combine
 
ESNext, service workers, and the future of the web
ESNext, service workers, and the future of the webESNext, service workers, and the future of the web
ESNext, service workers, and the future of the web
 
Isomorphic JavaScript with Nashorn
Isomorphic JavaScript with NashornIsomorphic JavaScript with Nashorn
Isomorphic JavaScript with Nashorn
 
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
 
Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016Angular2 & Native Script GDG DevFest 2016
Angular2 & Native Script GDG DevFest 2016
 
NeXTPLAN
NeXTPLANNeXTPLAN
NeXTPLAN
 
Why scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with thisWhy scala is not my ideal language and what I can do with this
Why scala is not my ideal language and what I can do with this
 
Server Side Swift
Server Side SwiftServer Side Swift
Server Side Swift
 
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOP
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOPHOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOP
HOW TO DEAL WITH BLOCKING CODE WITHIN ASYNCIO EVENT LOOP
 
slides-students-C03.pdf
slides-students-C03.pdfslides-students-C03.pdf
slides-students-C03.pdf
 
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architectureDevoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
 
NodeJS Serverless backends for your frontends
NodeJS Serverless backends for your frontendsNodeJS Serverless backends for your frontends
NodeJS Serverless backends for your frontends
 
Best Practices - By Lofi Dewanto
Best Practices - By Lofi DewantoBest Practices - By Lofi Dewanto
Best Practices - By Lofi Dewanto
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
 
Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"Java day2016 "Reinventing design patterns with java 8"
Java day2016 "Reinventing design patterns with java 8"
 
Dmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script TechnologiesDmytro Kochergin Angular 2 and New Java Script Technologies
Dmytro Kochergin Angular 2 and New Java Script Technologies
 

Último

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 

Último (20)

CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 

[JCConf 2017] Reactive Programming with Reactor