SlideShare a Scribd company logo
1 of 159
Download to read offline
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

More Related Content

What's hot

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
c3stor
 
(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
SOOBUM LEE
 
12X1 T01 01 log laws
12X1 T01 01 log laws12X1 T01 01 log laws
12X1 T01 01 log laws
Nigel Simmons
 

What's hot (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 to RxJava In Baby Steps

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
Demetrio Ccesa Rayme
 
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
zukun
 
関数潮流(Function Tendency)
関数潮流(Function Tendency)関数潮流(Function Tendency)
関数潮流(Function Tendency)
riue
 
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
Demetrio 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.pdf
archanaemporium
 

Similar to 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
 

More from Annyce Davis

More from 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
 

Recently uploaded

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 

Recently uploaded (20)

COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Crafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM IntegrationCrafting the Perfect Measurement Sheet with PLM Integration
Crafting the Perfect Measurement Sheet with PLM Integration
 
IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024IT Software Development Resume, Vaibhav jha 2024
IT Software Development Resume, Vaibhav jha 2024
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 

RxJava In Baby Steps