SlideShare a Scribd company logo
1 of 22
RX
R e   t h i n k i n g t h e   w a y   w e
              d o s t u f f
RX


  Rx is a library for composing asynchronous and event-based
  programs using observable collections.


Rx has a strong theoretical basis by using the duality between the
classic Iterator and Observer design patterns to simplify controlling
                            asynchrony
Genesis



JSON
Genesis



JSON
Genesis 2


AMQP (and it’s brokers
RabbitMQ etc)
Genesis 2



AMQP
genesis III



ZMQ
What we want?



We want something Generic
Problem
CUGLY



CUGLY = FUGLY but for Callbacks
LINQ


Microsoft

Functional Programming (posta)
LINQ III
LINQ II

var
query
=
yourData




.GroupBy(x
=>
x.Name,













(k,
g)
=>
g.Aggregate((a,
x)

=>
(x.Priority
>
a.Priority)
?
x
:
a));
select es fmap (list map)

SelectMany (mapcat) listmap
DEMO
Implementation
In other words, x >>= k is a computation
which runs x, and then uses the result(s)
of x to decide what computation to run
second, using the output of the second
computation as the result of the entire
computation.
[ EVENT(KEY) -> (KEY ->
EVENT(MOUSE) ] -> EVENT(MOUSE)
In the process we've discovered what Rx really is: a fancy way of writing event handlers,
specifically event handlers that fire events that trigger other event handlers that fire events, and so on in big
chain that looks like a query
Async everywhere

NEXT STEPS:

RUBY LIBRARY

JS LIBRARY (for dealing with UI)

More Related Content

What's hot

Garbage collection
Garbage collectionGarbage collection
Garbage collectionMudit Gupta
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage CollectionArtur Mkrtchyan
 
RxJS - The Reactive Extensions for JavaScript
RxJS - The Reactive Extensions for JavaScriptRxJS - The Reactive Extensions for JavaScript
RxJS - The Reactive Extensions for JavaScriptViliam Elischer
 
In class, we discussed min-heaps. In a min-heap the element of the heap with ...
In class, we discussed min-heaps. In a min-heap the element of the heap with ...In class, we discussed min-heaps. In a min-heap the element of the heap with ...
In class, we discussed min-heaps. In a min-heap the element of the heap with ...licservernoida
 
Parallel Computing in JS
Parallel Computing in JSParallel Computing in JS
Parallel Computing in JSAhmed Gaber
 
Raster Processing with Scipy.ndimage (Dev Meet Up II)
Raster Processing with Scipy.ndimage (Dev Meet Up II)Raster Processing with Scipy.ndimage (Dev Meet Up II)
Raster Processing with Scipy.ndimage (Dev Meet Up II)JHasthorpe
 
Rethinking garbage collection
Rethinking garbage collectionRethinking garbage collection
Rethinking garbage collectionBazlur Rokon
 
Streaming data to s3 using akka streams
Streaming data to s3 using akka streamsStreaming data to s3 using akka streams
Streaming data to s3 using akka streamsMikhail Girkin
 
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...Marlon Dumas
 
Gaucheで本を作る
Gaucheで本を作るGaucheで本を作る
Gaucheで本を作るguest7a66b8
 
.Net Garbage Collector 101
.Net Garbage Collector 101.Net Garbage Collector 101
.Net Garbage Collector 101Woody Pewitt
 
From Java to Kotlin - The first month in practice v2
From Java to Kotlin - The first month in practice v2From Java to Kotlin - The first month in practice v2
From Java to Kotlin - The first month in practice v2StefanTomm
 
Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Till Blume
 
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptRxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptViliam Elischer
 
Data exploration using elastic stack for beginners
Data exploration using elastic stack for beginnersData exploration using elastic stack for beginners
Data exploration using elastic stack for beginnersDaliya Spasova
 

What's hot (20)

Garbage collection
Garbage collectionGarbage collection
Garbage collection
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage Collection
 
RxJS - The Reactive Extensions for JavaScript
RxJS - The Reactive Extensions for JavaScriptRxJS - The Reactive Extensions for JavaScript
RxJS - The Reactive Extensions for JavaScript
 
In class, we discussed min-heaps. In a min-heap the element of the heap with ...
In class, we discussed min-heaps. In a min-heap the element of the heap with ...In class, we discussed min-heaps. In a min-heap the element of the heap with ...
In class, we discussed min-heaps. In a min-heap the element of the heap with ...
 
Garbage Collection In Micorosoft
Garbage Collection In  MicorosoftGarbage Collection In  Micorosoft
Garbage Collection In Micorosoft
 
Parallel Computing in JS
Parallel Computing in JSParallel Computing in JS
Parallel Computing in JS
 
Raster Processing with Scipy.ndimage (Dev Meet Up II)
Raster Processing with Scipy.ndimage (Dev Meet Up II)Raster Processing with Scipy.ndimage (Dev Meet Up II)
Raster Processing with Scipy.ndimage (Dev Meet Up II)
 
Rethinking garbage collection
Rethinking garbage collectionRethinking garbage collection
Rethinking garbage collection
 
Streaming data to s3 using akka streams
Streaming data to s3 using akka streamsStreaming data to s3 using akka streams
Streaming data to s3 using akka streams
 
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...
Discovering Unbounded Synchronization Conditions in Artifact-Centric Process ...
 
S2
S2S2
S2
 
Gaucheで本を作る
Gaucheで本を作るGaucheで本を作る
Gaucheで本を作る
 
.Net Garbage Collector 101
.Net Garbage Collector 101.Net Garbage Collector 101
.Net Garbage Collector 101
 
From Java to Kotlin - The first month in practice v2
From Java to Kotlin - The first month in practice v2From Java to Kotlin - The first month in practice v2
From Java to Kotlin - The first month in practice v2
 
Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...Incremental and parallel computation of structural graph summaries for evolvi...
Incremental and parallel computation of structural graph summaries for evolvi...
 
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptRxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScript
 
Qtp excel compare
Qtp excel compareQtp excel compare
Qtp excel compare
 
Graphite
GraphiteGraphite
Graphite
 
201707 SER332 Lecture 16
201707 SER332 Lecture 16   201707 SER332 Lecture 16
201707 SER332 Lecture 16
 
Data exploration using elastic stack for beginners
Data exploration using elastic stack for beginnersData exploration using elastic stack for beginners
Data exploration using elastic stack for beginners
 

Viewers also liked

Home/Garden Still Life
Home/Garden Still LifeHome/Garden Still Life
Home/Garden Still Lifecoreylesh
 
Cats: Provider of Happiness and Joy
Cats: Provider of Happiness and JoyCats: Provider of Happiness and Joy
Cats: Provider of Happiness and JoySatsugai Se-o
 
Glass Still Life
Glass Still LifeGlass Still Life
Glass Still Lifecoreylesh
 
Copyright & Web 2.0 for Teachers
Copyright & Web 2.0 for TeachersCopyright & Web 2.0 for Teachers
Copyright & Web 2.0 for TeachersC W
 
화장실, 신인의 마음을 회복하는 공간
화장실, 신인의 마음을 회복하는 공간화장실, 신인의 마음을 회복하는 공간
화장실, 신인의 마음을 회복하는 공간Yoon Hyuk Choi
 
Satsugaicat Teach You how to start twitter
Satsugaicat Teach You how to start twitterSatsugaicat Teach You how to start twitter
Satsugaicat Teach You how to start twitterSatsugai Se-o
 

Viewers also liked (8)

Home/Garden Still Life
Home/Garden Still LifeHome/Garden Still Life
Home/Garden Still Life
 
Cats: Provider of Happiness and Joy
Cats: Provider of Happiness and JoyCats: Provider of Happiness and Joy
Cats: Provider of Happiness and Joy
 
Glass Still Life
Glass Still LifeGlass Still Life
Glass Still Life
 
Copyright & Web 2.0 for Teachers
Copyright & Web 2.0 for TeachersCopyright & Web 2.0 for Teachers
Copyright & Web 2.0 for Teachers
 
Researchsummary
ResearchsummaryResearchsummary
Researchsummary
 
Travel
TravelTravel
Travel
 
화장실, 신인의 마음을 회복하는 공간
화장실, 신인의 마음을 회복하는 공간화장실, 신인의 마음을 회복하는 공간
화장실, 신인의 마음을 회복하는 공간
 
Satsugaicat Teach You how to start twitter
Satsugaicat Teach You how to start twitterSatsugaicat Teach You how to start twitter
Satsugaicat Teach You how to start twitter
 

Similar to Upload keynote to can view it.

Introduction to RxJS
Introduction to RxJSIntroduction to RxJS
Introduction to RxJSBrainhub
 
Luis Atencio on RxJS
Luis Atencio on RxJSLuis Atencio on RxJS
Luis Atencio on RxJSLuis Atencio
 
Reactive programming and RxJS
Reactive programming and RxJSReactive programming and RxJS
Reactive programming and RxJSRavi Mone
 
Real Time Big Data Management
Real Time Big Data ManagementReal Time Big Data Management
Real Time Big Data ManagementAlbert Bifet
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in DepthTrayan Iliev
 
Introduction to RxJS
Introduction to RxJSIntroduction to RxJS
Introduction to RxJSAbul Hasan
 
2014.06.24.what is ubix
2014.06.24.what is ubix2014.06.24.what is ubix
2014.06.24.what is ubixJim Cooley
 
Reactive Functional Programming with Java 8 on Android N
Reactive Functional Programming with Java 8 on Android NReactive Functional Programming with Java 8 on Android N
Reactive Functional Programming with Java 8 on Android NShipeng Xu
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingIndicThreads
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingsaykopatt
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)Sylvain Hallé
 
Data analysis in R
Data analysis in RData analysis in R
Data analysis in RAndrew Lowe
 
Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Trayan Iliev
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simplerAlexander Mostovenko
 
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...GeeksLab Odessa
 

Similar to Upload keynote to can view it. (20)

Introduction to RxJS
Introduction to RxJSIntroduction to RxJS
Introduction to RxJS
 
Luis Atencio on RxJS
Luis Atencio on RxJSLuis Atencio on RxJS
Luis Atencio on RxJS
 
Reactive programming and RxJS
Reactive programming and RxJSReactive programming and RxJS
Reactive programming and RxJS
 
Real Time Big Data Management
Real Time Big Data ManagementReal Time Big Data Management
Real Time Big Data Management
 
Intro to Rx Java
Intro to Rx JavaIntro to Rx Java
Intro to Rx Java
 
NGRX Apps in Depth
NGRX Apps in DepthNGRX Apps in Depth
NGRX Apps in Depth
 
Introduction to RxJS
Introduction to RxJSIntroduction to RxJS
Introduction to RxJS
 
RxJs
RxJsRxJs
RxJs
 
2014.06.24.what is ubix
2014.06.24.what is ubix2014.06.24.what is ubix
2014.06.24.what is ubix
 
2017 nov reflow sbtb
2017 nov reflow sbtb2017 nov reflow sbtb
2017 nov reflow sbtb
 
Reactive Functional Programming with Java 8 on Android N
Reactive Functional Programming with Java 8 on Android NReactive Functional Programming with Java 8 on Android N
Reactive Functional Programming with Java 8 on Android N
 
How to Think in RxJava Before Reacting
How to Think in RxJava Before ReactingHow to Think in RxJava Before Reacting
How to Think in RxJava Before Reacting
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
A "Do-It-Yourself" Specification Language with BeepBeep 3 (Talk @ Dagstuhl 2017)
 
Data analysis in R
Data analysis in RData analysis in R
Data analysis in R
 
Taste of RxJS
Taste of RxJSTaste of RxJS
Taste of RxJS
 
R and C++
R and C++R and C++
R and C++
 
Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018Spring 5 Webflux - Advances in Java 2018
Spring 5 Webflux - Advances in Java 2018
 
rx.js make async programming simpler
rx.js make async programming simplerrx.js make async programming simpler
rx.js make async programming simpler
 
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...
WebCamp:Front-end Developers Day. Александр Мостовенко "Rx.js - делаем асинхр...
 

Upload keynote to can view it.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n