SlideShare una empresa de Scribd logo
1 de 159
Descargar para leer sin conexión
a learning curve
a steep learning curve
you
a steep learning curve
superstar
a steep learning curve
you
you
superstar
a steep learning curve
you
superstar
a steep learning curve
me
RxJava in baby steps
@brwngrldev
asynchronous data streams
GPS Updates
Time
GPS Updates
Time
-36.34543, 3.23445
-36.34543, 3.23445

-36.24543, 3.23425

GPS Updates
Time
-36.34543, 3.23445

-36.24543, 3.23425

-35.34543, 3.13445
GPS Updates
Time
Time
server response
i want
toys!!!
Time
server response
Time
server response
toys
Time
i want
toys!!!
server response
Time
server response
Which of the following is an
asynchronous data stream?
A: click events
B: database access
C: server response
D: all of the above
A: click events
B: database access
C: server response
D: all of the above
Which of the following is an
asynchronous data stream?
scientific Research
scientific Research
Data Transformation
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
Data Transformation
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
;-) ;-) ;-) ;-) ;-)
;-) ;-) ;-) ;-) ;-) ;-)
;-) ;-) ;-) ;-) ;-) ;-) ;-)
chaining
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.filter { it.length < 24 }
.subscribe { println(it) }
chaining
;-) ;-) ;-) ;-) ;-)
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.filter { it.length < 24 }
.subscribe { println(it) }
RxJava is. . . ?
A: the silver bullet
B: simply magic
C: pure voodoo
D: a library
RxJava is. . . ?
A: the silver bullet
B: simply magic
C: pure voodoo
D: a library
listOf(5, 6, 7)
.map { it * 5 }
.filter { it > 25 }
kotlin collections
listOf(5, 6, 7)
.map { it * 5 }
.filter { it > 25 }
kotlin collections
5 6 7
listOf(5, 6, 7)
.map { it * 5 }
.filter { it > 25 }
kotlin collections
5 6 7
map
25 30 35
listOf(5, 6, 7)
.map { it * 5 }
.filter { it > 25 }
kotlin collections
5 6 7
map
25 30 35
filter
30 35
listOf(5, 6, 7)
.asSequence()
.map { it * 5 }
.filter { it > 25 }
.toList()
kotlin sequences
kotlin sequences
listOf(5, 6, 7)
.asSequence()
.map { it * 5 }
.filter { it > 25 }
.toList()
5 6 7
5 6 7
map
filter
kotlin sequences
25
listOf(5, 6, 7)
.asSequence()
.map { it * 5 }
.filter { it > 25 }
.toList()
5 6 7
map
filter
kotlin sequences
25 30
30
listOf(5, 6, 7)
.asSequence()
.map { it * 5 }
.filter { it > 25 }
.toList()
5 6 7
map
filter
kotlin sequences
25 30 35
30 35
listOf(5, 6, 7)
.asSequence()
.map { it * 5 }
.filter { it > 25 }
.toList()
asynchronous data streams
RxJava
numbers
.map { it * 5 }
.filter { it > 25 }
.subscribe()
RxJava
numbers
.map { it * 5 }
.filter { it > 25 }
.subscribe()
5
25
map
filter
RxJava
numbers
.map { it * 5 }
.filter { it > 25 }
.subscribe()
5 6
map
filter
25 30
30
RxJava
numbers
.map { it * 5 }
.filter { it > 25 }
.subscribe()
5 6
map
filter
25 30
30 35
7
35
35
flexible
threading
schedulers
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
Observable.just(5, 6, 7)
.subscribeOn(Schedulers.io())
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
The Basics
observable
The Basics
observableobserver
The Basics
operators observableobserver
observable
hot observable
Time
hot observable
Time
i want
hugs!!!
hot observable
Time
hugs
hot observable
Time
hugs hugs
hot observable
Time
hugs hugs hugs
Cold observable
Time
Cold observable
Time
Cold observable
Time
Cold observable
Time
hugs
Cold observable
Time
hugs hugs
Cold observable
Time
hugs hugs hugs
where?
Observable.create<Int> { subscriber -> }
Observable.create<Int> { subscriber -> }
Observable.just(item1, item2, item3)
Observable.create<Int> { subscriber -> }
Observable.just(item1, item2, item3)
Observable.interval(2, TimeUnit.SECONDS)
Observable.create<Int> { subscriber ->
}
Observable.create<Int> { subscriber ->
Logger.log("create")
Logger.log("complete")
}
Logger.log("done")
Observable.create<Int> { subscriber ->
Logger.log("create")
subscriber.onNext(5)
subscriber.onNext(6)
subscriber.onNext(7)
Logger.log("complete")
}
Logger.log("done")
Observable.create<Int> { subscriber ->
Logger.log("create")
subscriber.onNext(5)
subscriber.onNext(6)
subscriber.onNext(7)
subscriber.onComplete()
Logger.log("complete")
}
Logger.log("done")
A: emit items
B: be cold
C: be hot
D: all of the above
Observables can. . .
A: emit items
B: be cold
C: be hot
D: all of the above
Observables can. . .
observer
interface Observer<T> {
fun onError(e: Throwable)
fun onComplete()
fun onNext(t: T)
fun onSubscribe(d: Disposable)
}
interface Observer<T> {
fun onError(e: Throwable)
fun onComplete()
fun onNext(t: T)
fun onSubscribe(d: Disposable)
}
interface Observer<T> {
fun onError(e: Throwable)
fun onComplete()
fun onNext(t: T)
fun onSubscribe(d: Disposable)
}
interface Observer<T> {
fun onError(e: Throwable)
fun onComplete()
fun onNext(t: T)
fun onSubscribe(d: Disposable)
}
interface Observer<T> {
fun onError(e: Throwable)
fun onComplete()
fun onNext(t: T)
fun onSubscribe(d: Disposable)
}
observer’s lifecycle
onSubscribe
observer’s lifecycle
onNext Normal
flow
onSubscribe
observer’s lifecycle
onComplete
Normal
flow
onSubscribe
onNext
observer’s lifecycle
onComplete onError
Normal
flow
onSubscribe
onNext
val observer = object : Observer<Int> {
override fun onError(e: Throwable) {
Logger.log(e)
}
override fun onComplete() {
Logger.log("on complete")
}
override fun onNext(t: Int) {
Logger.log("next: $t")
}
override fun onSubscribe(d: Disposable) {
Logger.log("on subscribe")
}
}
interface Consumer<T> {
fun accept(t: T)
}
val consumer = object : Consumer<Int> {
override fun accept(t: Int) {
Logger.log("next: $t")
}
}
val consumer = Consumer<Int> { t -> Logger.log("next: $t") }
obs.subscribe(consumer)
consumer
obs.subscribe(Consumer<Int> { t -> Logger.log("next: $t") })
consumer
obs.subscribe({ t -> Logger.log("next: $t") })
consumer
obs.subscribe{ t -> Logger.log("next: $t") }
consumer
obs.subscribe{ Logger.log("next: $it") }
consumer
A: have a lifecycle
B: always complete
C: Never Error
D: all of the above
Observers. . .
Observers. . .
A: have a lifecycle
B: always complete
C: Never Error
D: all of the above
operator
Time
Operator: map()
Time
Operator: map()
:-):-(
Time
Operator: map()
:-)
:-)
:-(
:-(
Time
Operator: map()
:-)
:-) :-)
:-(
:-(
:-(
Time
Operator: map()
:-)
:-) :-) :-)
:-(
:-(:-(:-(
Operator: map()
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
Operator: map()
;-) ;-) ;-) ;-) ;-)
;-) ;-) ;-) ;-) ;-) ;-)
;-) ;-) ;-) ;-) ;-) ;-) ;-)
Observable.just(5, 6, 7)
.map { ";-) ".repeat(it) }
.subscribe { println(it) }
Operator: map()
Observable.just(5, 6, 7)
.map(object: Function<Int, String> {
override fun apply(t: Int): String {
return ";-) ".repeat(t)
}
})
.subscribe { println(it) }
Operator: map()
Observable.just(5, 6, 7)
.map(object: Function<Int, String> {
override fun apply(t: Int): String {
return ";-) ".repeat(t)
}
})
.subscribe { println(it) }
Operator: map()
Observable.just(5, 6, 7)
.map(object: Function<Int, String> {
override fun apply(t: Int): String {
return ";-) ".repeat(t)
}
})
.subscribe { println(it) }
Operator: map()
Observable.just(5, 6, 7)
.map(object: Function<Int, String> {
override fun apply(t: Int): String {
return ";-) ".repeat(t)
}
})
.subscribe { println(it) }
.map(object: Function<Int, String> {
override fun apply(t: Int): String {
return ";-) ".repeat(t)
}
})
.map { ";-) ".repeat(it) }
what’s the output?
Observable.just(1, 2, 3)
.map { it * 2 }
.subscribe { println(it) }
A: 1, 2, 3
B: a, b, c
C: 2, 4, 6
D: 6, 2, 4
Observable.just(1, 2, 3)
.map { it * 2 }
.subscribe { println(it) }
what’s the output?
Observable.just(1, 2, 3)
.map { it * 2 }
.subscribe { println(it) }
A: 1, 2, 3
B: a, b, c
C: 2, 4, 6
D: 6, 2, 4
what’s the output?
what’s the output?
Observable.just(1, 2, 3)
.map { it * 2 }
.filter { it < 6 }
.subscribe { println(it) }
A: 2, 3, 1
B: 2, 4
C: 1, 2, 3
D: 6, 4
what’s the output?
Observable.just(1, 2, 3)
.map { it * 2 }
.filter { it < 6 }
.subscribe { println(it) }
what’s the output?
Observable.just(1, 2, 3)
.map { it * 2 }
.filter { it < 6 }
.subscribe { println(it) }
A: 2, 3, 1
B: 2, 4
C: 1, 2, 3
D: 6, 4
Operator: flatmap()
via reactivex.io
Operator: flatmap()
via reactivex.io
item
Operator: flatmap()
via reactivex.io
item observable
Operator: flatmap()
Observable.just( , )
.flatMap( { Observable.just( ) } )
.subscribe { println(it) }
:-( :-(
time
flatmap
time
flatmap
:-(
time
flatmap
:-(
time
flatmap
:-(
time
flatmap
:-( :-(
time
flatmap
:-( :-(
time
flatmap
:-( :-(
time
flatmap
:-( :-(
Long Running
asynchronous
Operator: flatmap()
val users // Observable<User>
Operator: flatmap()
val users // Observable<User>
val posts: Observable<Post>
Operator: flatmap()
val users // Observable<User>
val posts: Observable<Post>
posts = users.flatMap { getUsersPosts(it.id) }
Operator: flatmap()
val users // Observable<User>
val posts: Observable<Post>
posts = users.flatMap { getUsersPosts(it.id) }
posts.subscribe { println(it) }
via reactivex.io
Flowable Maybe
backpressure
Disposable
Single
completable
should you use
rxjava?
like functional programing?
Process items asynchronously?
compose data?
handle errors gracefully?
should you use
rxjava?
should you use
rxjava?
like functional programing?
Process items asynchronously?
compose data?
handle errors gracefully?
it
depends
The Basics
operators observableobserver
you
www.adavis.info
@brwngrldev
• Reactive Programming on Android with RxJava (http://amzn.to/2yOAkxn)

• Reactive Programming with RxJava (http://amzn.to/2zQtqb5)

• RxJava Playlist (https://goo.gl/9fw1Zv)

• Learning RxJava for Android Devs (https://goo.gl/VWxFLK)

• RxJava Video Course (https://caster.io/courses/rxjava)
resources
slide design:
@lauraemilyillustration
font: Elliot 6, fontSquirrel.com

Más contenido relacionado

La actualidad más candente

The Groovy Puzzlers – The Complete 01 and 02 Seasons
The Groovy Puzzlers – The Complete 01 and 02 SeasonsThe Groovy Puzzlers – The Complete 01 and 02 Seasons
The Groovy Puzzlers – The Complete 01 and 02 SeasonsBaruch Sadogursky
 
Cinemàtica directa e inversa de manipulador
Cinemàtica directa e inversa de manipuladorCinemàtica directa e inversa de manipulador
Cinemàtica directa e inversa de manipuladorc3stor
 
CppConcurrencyInAction - Chapter07
CppConcurrencyInAction - Chapter07CppConcurrencyInAction - Chapter07
CppConcurrencyInAction - Chapter07DooSeon Choi
 
Java practice programs for beginners
Java practice programs for beginnersJava practice programs for beginners
Java practice programs for beginnersishan0019
 
FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300YOKARO-MON
 
algorithm design file
algorithm design filealgorithm design file
algorithm design filesuraj kumar
 
À la découverte des Observables - HumanTalks Paris 2017
À la découverte des Observables - HumanTalks Paris 2017À la découverte des Observables - HumanTalks Paris 2017
À la découverte des Observables - HumanTalks Paris 2017Nicolas Carlo
 
(Appendix_Codes) Game Programming Portfolio - Soobum Lee
(Appendix_Codes) Game Programming Portfolio - Soobum Lee(Appendix_Codes) Game Programming Portfolio - Soobum Lee
(Appendix_Codes) Game Programming Portfolio - Soobum LeeSOOBUM LEE
 
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solution
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solutionKaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solution
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solutionKen'ichi Matsui
 
12X1 T01 01 log laws
12X1 T01 01 log laws12X1 T01 01 log laws
12X1 T01 01 log lawsNigel Simmons
 
Dagger & rxjava & retrofit
Dagger & rxjava & retrofitDagger & rxjava & retrofit
Dagger & rxjava & retrofitTed Liang
 
Grand centraldispatch
Grand centraldispatchGrand centraldispatch
Grand centraldispatchYuumi Yoshida
 
Chart parsing with features
Chart parsing with featuresChart parsing with features
Chart parsing with featuresSRah Sanei
 
Introduction to Polyhedral Compilation
Introduction to Polyhedral CompilationIntroduction to Polyhedral Compilation
Introduction to Polyhedral CompilationAkihiro Hayashi
 

La actualidad más candente (20)

The Groovy Puzzlers – The Complete 01 and 02 Seasons
The Groovy Puzzlers – The Complete 01 and 02 SeasonsThe Groovy Puzzlers – The Complete 01 and 02 Seasons
The Groovy Puzzlers – The Complete 01 and 02 Seasons
 
Cinemàtica directa e inversa de manipulador
Cinemàtica directa e inversa de manipuladorCinemàtica directa e inversa de manipulador
Cinemàtica directa e inversa de manipulador
 
CppConcurrencyInAction - Chapter07
CppConcurrencyInAction - Chapter07CppConcurrencyInAction - Chapter07
CppConcurrencyInAction - Chapter07
 
Java practice programs for beginners
Java practice programs for beginnersJava practice programs for beginners
Java practice programs for beginners
 
Rkf
RkfRkf
Rkf
 
Scala @ TomTom
Scala @ TomTomScala @ TomTom
Scala @ TomTom
 
FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300FEAL - CSAW CTF 2014 Quals Crypto300
FEAL - CSAW CTF 2014 Quals Crypto300
 
algorithm design file
algorithm design filealgorithm design file
algorithm design file
 
Solr sparse faceting
Solr sparse facetingSolr sparse faceting
Solr sparse faceting
 
À la découverte des Observables - HumanTalks Paris 2017
À la découverte des Observables - HumanTalks Paris 2017À la découverte des Observables - HumanTalks Paris 2017
À la découverte des Observables - HumanTalks Paris 2017
 
Revisão OCPJP7 - Class Design (parte 03)
Revisão OCPJP7 - Class Design (parte 03)Revisão OCPJP7 - Class Design (parte 03)
Revisão OCPJP7 - Class Design (parte 03)
 
(Appendix_Codes) Game Programming Portfolio - Soobum Lee
(Appendix_Codes) Game Programming Portfolio - Soobum Lee(Appendix_Codes) Game Programming Portfolio - Soobum Lee
(Appendix_Codes) Game Programming Portfolio - Soobum Lee
 
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solution
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solutionKaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solution
Kaggle Google Quest Q&A Labeling 反省会 LT資料 47th place solution
 
12X1 T01 01 log laws
12X1 T01 01 log laws12X1 T01 01 log laws
12X1 T01 01 log laws
 
Dagger & rxjava & retrofit
Dagger & rxjava & retrofitDagger & rxjava & retrofit
Dagger & rxjava & retrofit
 
Grand centraldispatch
Grand centraldispatchGrand centraldispatch
Grand centraldispatch
 
Chart parsing with features
Chart parsing with featuresChart parsing with features
Chart parsing with features
 
Ass2 1 (2)
Ass2 1 (2)Ass2 1 (2)
Ass2 1 (2)
 
Introduction to Polyhedral Compilation
Introduction to Polyhedral CompilationIntroduction to Polyhedral Compilation
Introduction to Polyhedral Compilation
 
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
1st and 2nd Semester M Tech: Computer Science and Engineering (Dec-2015; Jan-...
 

Similar a RxJava In Baby Steps

Running Free with the Monads
Running Free with the MonadsRunning Free with the Monads
Running Free with the Monadskenbot
 
"Kotlin и rx в android" Дмитрий Воронин (Avito)
"Kotlin и rx в android" Дмитрий Воронин  (Avito)"Kotlin и rx в android" Дмитрий Воронин  (Avito)
"Kotlin и rx в android" Дмитрий Воронин (Avito)AvitoTech
 
Teoria y problemas de funciones cuadraticas fc324 ccesa007
Teoria y problemas de funciones cuadraticas  fc324  ccesa007Teoria y problemas de funciones cuadraticas  fc324  ccesa007
Teoria y problemas de funciones cuadraticas fc324 ccesa007Demetrio Ccesa Rayme
 
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...Spark Summit
 
Counting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort AlgorithmsCounting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort AlgorithmsSarvesh Rawat
 
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1zukun
 
The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210Mahmoud Samir Fayed
 
Datastage real time scenario
Datastage real time scenarioDatastage real time scenario
Datastage real time scenarioNaresh Bala
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)riue
 
The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184Mahmoud Samir Fayed
 
Teoria y problemas de funciones cuadraticas fc324 ccesa007
Teoria y problemas de funciones cuadraticas  fc324  ccesa007Teoria y problemas de funciones cuadraticas  fc324  ccesa007
Teoria y problemas de funciones cuadraticas fc324 ccesa007Demetrio Ccesa Rayme
 
I dont know what is wrong with this roulette program I cant seem.pdf
I dont know what is wrong with this roulette program I cant seem.pdfI dont know what is wrong with this roulette program I cant seem.pdf
I dont know what is wrong with this roulette program I cant seem.pdfarchanaemporium
 
Online Approximate OLAP in SparkSQL
Online Approximate OLAP in SparkSQLOnline Approximate OLAP in SparkSQL
Online Approximate OLAP in SparkSQLDataWorks Summit
 
Preparation Data Structures 07 stacks
Preparation Data Structures 07 stacksPreparation Data Structures 07 stacks
Preparation Data Structures 07 stacksAndres Mendez-Vazquez
 
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...akaptur
 
Frege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMFrege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMDierk König
 

Similar a RxJava In Baby Steps (20)

Running Free with the Monads
Running Free with the MonadsRunning Free with the Monads
Running Free with the Monads
 
"Kotlin и rx в android" Дмитрий Воронин (Avito)
"Kotlin и rx в android" Дмитрий Воронин  (Avito)"Kotlin и rx в android" Дмитрий Воронин  (Avito)
"Kotlin и rx в android" Дмитрий Воронин (Avito)
 
Teoria y problemas de funciones cuadraticas fc324 ccesa007
Teoria y problemas de funciones cuadraticas  fc324  ccesa007Teoria y problemas de funciones cuadraticas  fc324  ccesa007
Teoria y problemas de funciones cuadraticas fc324 ccesa007
 
Java operators
Java operatorsJava operators
Java operators
 
Operators
OperatorsOperators
Operators
 
03
0303
03
 
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...
BlinkDB and G-OLA: Supporting Continuous Answers with Error Bars in SparkSQL-...
 
Counting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort AlgorithmsCounting Sort and Radix Sort Algorithms
Counting Sort and Radix Sort Algorithms
 
Graph Algebra
Graph AlgebraGraph Algebra
Graph Algebra
 
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1
ECCV2008: MAP Estimation Algorithms in Computer Vision - Part 1
 
The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210
 
Datastage real time scenario
Datastage real time scenarioDatastage real time scenario
Datastage real time scenario
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
 
The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184
 
Teoria y problemas de funciones cuadraticas fc324 ccesa007
Teoria y problemas de funciones cuadraticas  fc324  ccesa007Teoria y problemas de funciones cuadraticas  fc324  ccesa007
Teoria y problemas de funciones cuadraticas fc324 ccesa007
 
I dont know what is wrong with this roulette program I cant seem.pdf
I dont know what is wrong with this roulette program I cant seem.pdfI dont know what is wrong with this roulette program I cant seem.pdf
I dont know what is wrong with this roulette program I cant seem.pdf
 
Online Approximate OLAP in SparkSQL
Online Approximate OLAP in SparkSQLOnline Approximate OLAP in SparkSQL
Online Approximate OLAP in SparkSQL
 
Preparation Data Structures 07 stacks
Preparation Data Structures 07 stacksPreparation Data Structures 07 stacks
Preparation Data Structures 07 stacks
 
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...
Allison Kaptur: Bytes in the Machine: Inside the CPython interpreter, PyGotha...
 
Frege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVMFrege - consequently functional programming for the JVM
Frege - consequently functional programming for the JVM
 

Más de Annyce Davis

Getting a Grip on GraphQL
Getting a Grip on GraphQLGetting a Grip on GraphQL
Getting a Grip on GraphQLAnnyce Davis
 
No internet? No Problem!
No internet? No Problem!No internet? No Problem!
No internet? No Problem!Annyce Davis
 
First Do No Harm - 360|AnDev
First Do No Harm - 360|AnDevFirst Do No Harm - 360|AnDev
First Do No Harm - 360|AnDevAnnyce Davis
 
First Do No Harm - Droidcon Boston
First Do No Harm - Droidcon BostonFirst Do No Harm - Droidcon Boston
First Do No Harm - Droidcon BostonAnnyce Davis
 
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - OredevCreating Gradle Plugins - Oredev
Creating Gradle Plugins - OredevAnnyce Davis
 
Developing Apps for Emerging Markets
Developing Apps for Emerging MarketsDeveloping Apps for Emerging Markets
Developing Apps for Emerging MarketsAnnyce Davis
 
Develop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfDevelop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfAnnyce Davis
 
Creating Gradle Plugins - GR8Conf US
Creating Gradle Plugins - GR8Conf USCreating Gradle Plugins - GR8Conf US
Creating Gradle Plugins - GR8Conf USAnnyce Davis
 
From Grails to Android: A Simple Journey
From Grails to Android: A Simple JourneyFrom Grails to Android: A Simple Journey
From Grails to Android: A Simple JourneyAnnyce Davis
 
Google I/O 2016 Recap
Google I/O 2016 RecapGoogle I/O 2016 Recap
Google I/O 2016 RecapAnnyce Davis
 
Screen Robots: UI Tests in Espresso
Screen Robots: UI Tests in EspressoScreen Robots: UI Tests in Espresso
Screen Robots: UI Tests in EspressoAnnyce Davis
 
Creating Gradle Plugins
Creating Gradle PluginsCreating Gradle Plugins
Creating Gradle PluginsAnnyce Davis
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code AnalysisAnnyce Davis
 
Develop Maintainable Apps
Develop Maintainable AppsDevelop Maintainable Apps
Develop Maintainable AppsAnnyce Davis
 
Android Testing, Why So Hard?!
Android Testing, Why So Hard?!Android Testing, Why So Hard?!
Android Testing, Why So Hard?!Annyce Davis
 
Measuring Audience Engagement through Analytics
Measuring Audience Engagement through AnalyticsMeasuring Audience Engagement through Analytics
Measuring Audience Engagement through AnalyticsAnnyce Davis
 
DC Media Innovations Kick-Off Meetup
DC Media Innovations Kick-Off MeetupDC Media Innovations Kick-Off Meetup
DC Media Innovations Kick-Off MeetupAnnyce Davis
 

Más de Annyce Davis (18)

Getting a Grip on GraphQL
Getting a Grip on GraphQLGetting a Grip on GraphQL
Getting a Grip on GraphQL
 
No internet? No Problem!
No internet? No Problem!No internet? No Problem!
No internet? No Problem!
 
First Do No Harm - 360|AnDev
First Do No Harm - 360|AnDevFirst Do No Harm - 360|AnDev
First Do No Harm - 360|AnDev
 
First Do No Harm - Droidcon Boston
First Do No Harm - Droidcon BostonFirst Do No Harm - Droidcon Boston
First Do No Harm - Droidcon Boston
 
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - OredevCreating Gradle Plugins - Oredev
Creating Gradle Plugins - Oredev
 
Developing Apps for Emerging Markets
Developing Apps for Emerging MarketsDeveloping Apps for Emerging Markets
Developing Apps for Emerging Markets
 
Develop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConfDevelop Maintainable Apps - edUiConf
Develop Maintainable Apps - edUiConf
 
Creating Gradle Plugins - GR8Conf US
Creating Gradle Plugins - GR8Conf USCreating Gradle Plugins - GR8Conf US
Creating Gradle Plugins - GR8Conf US
 
From Grails to Android: A Simple Journey
From Grails to Android: A Simple JourneyFrom Grails to Android: A Simple Journey
From Grails to Android: A Simple Journey
 
Google I/O 2016 Recap
Google I/O 2016 RecapGoogle I/O 2016 Recap
Google I/O 2016 Recap
 
Say It With Video
Say It With VideoSay It With Video
Say It With Video
 
Screen Robots: UI Tests in Espresso
Screen Robots: UI Tests in EspressoScreen Robots: UI Tests in Espresso
Screen Robots: UI Tests in Espresso
 
Creating Gradle Plugins
Creating Gradle PluginsCreating Gradle Plugins
Creating Gradle Plugins
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
Develop Maintainable Apps
Develop Maintainable AppsDevelop Maintainable Apps
Develop Maintainable Apps
 
Android Testing, Why So Hard?!
Android Testing, Why So Hard?!Android Testing, Why So Hard?!
Android Testing, Why So Hard?!
 
Measuring Audience Engagement through Analytics
Measuring Audience Engagement through AnalyticsMeasuring Audience Engagement through Analytics
Measuring Audience Engagement through Analytics
 
DC Media Innovations Kick-Off Meetup
DC Media Innovations Kick-Off MeetupDC Media Innovations Kick-Off Meetup
DC Media Innovations Kick-Off Meetup
 

Último

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Copilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotCopilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotEdgard Alejos
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainAbdul Ahad
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 

Último (20)

OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Copilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform CopilotCopilot para Microsoft 365 y Power Platform Copilot
Copilot para Microsoft 365 y Power Platform Copilot
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Data modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software DomainData modeling 101 - Basics - Software Domain
Data modeling 101 - Basics - Software Domain
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 

RxJava In Baby Steps