Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RPD: Reactive Patch Development
Search
Ulric Wilfred
November 28, 2016
Programming
0
300
RPD: Reactive Patch Development
Presented at JSKongress 2016
Ulric Wilfred
November 28, 2016
Tweet
Share
More Decks by Ulric Wilfred
See All by Ulric Wilfred
Generative Animation with Elm
shamansir
0
210
The Future of Web UI Development
shamansir
0
120
iElm-Tech-JB.pdf
shamansir
0
93
"iElm"
shamansir
0
75
Elm Revolution
shamansir
0
95
Про Гит
shamansir
2
110
Elm: 2D and 3D Graphics
shamansir
1
520
RPD — Reactive Patch Development, Extended Cut
shamansir
0
190
Animatron Player API in Details v3
shamansir
0
440
Other Decks in Programming
See All in Programming
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
DevOpsDaysTokyo2025社内副業で他部門へ_越境_して見えた価値再定義最大1か月のリードタイムを10分に短縮したDevOps実践.pdf
susumutomita
0
110
Носок на сок
bo0om
0
950
監視 やばい
syossan27
12
10k
PHPバージョンアップから始めるOSSコントリビュート / how2oss-contribute
dmnlk
1
1.1k
Cursorを活用したAIプログラミングについて 入門
rect
0
140
KANNA Android の技術的課題と取り組み
watabee
0
170
Browser and UI #2 HTML/ARIA
ken7253
2
160
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
160
Ruby's Line Breaks
yui_knk
4
2.5k
The Missing Link in Angular’s Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
130
generative-ai-use-cases(GenU)の推しポイント ~2025年4月版~
hideg
1
360
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
KATA
mclloyd
29
14k
Site-Speed That Sticks
csswizardry
6
520
Thoughts on Productivity
jonyablonski
69
4.6k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.4k
Practical Orchestrator
shlominoach
187
11k
A Tale of Four Properties
chriscoyier
158
23k
Become a Pro
speakerdeck
PRO
28
5.3k
Transcript
Anton ‘shamansir’ Kotenko JetBrains GmbH (Ulric Wilfred)
RPD Framework Flow Programming for Everyone for Everyone http://shamansir.github.io/rpd
None
None
Examples: http://shamansir.github.io/rpd/examples
Styles:
* SVG and HTML rendering * Very Simple API *
Lightweight * Built using Functional Programming principles * Easy to create Toolkits * Easy to implement Rendering and define Styles * Easy to connect to other libs (Sound, Animation etc.) * Supports any async stuff w/Reactive Streams
var patch = Rpd.addPatch(‘Title’);
var node = patch.addNode(‘jb/voronoi’);
var inlet = node.inlets[‘source’];
var inlet = node.addInlet(‘core/any’, ‘source’);
inlet.receive(loadImage(‘myImage.jpg’));
outlet.connect(someInlet);
outlet.send(Kefir.later(1000, ‘foo’));
Rpd.nodetype(‘my/sum’, { inlets: { a: { type: ‘core/number’ }, b:
{ type: ‘core/number’ } }, outlet: { sum: { type: ‘core/number’ } }, process: function(inlets) { return { sum: inlets.a + inlets.b } } });
Rpd.nodetype(‘my/sum’, { inlets: { a: { type: ‘core/number’ }, b:
{ type: ‘core/number’ } }, outlet: { sum: { type: ‘core/number’ } }, process: function(inlets) { return { sum: Kefir.later( 1000, inlets.a + inlets.b ); } } });
Rpd.noderender(‘my/sum’, ‘svg’, { first: function(bodyElm) { … }, always: function(bodyElm,
inlets, outlets) { bodyElm.innerText = inlets.a + inlets.b + outlets.sum; } });
Rpd.nodetype(‘my/sum’, function() { return { inlets: { … }, outlet:
{ … }, process: function(…) { … } } });
Rpd.noderenderer(‘my/sum’, ‘svg’, function() { return { first: function(…) { …
}, always: function(…) { … } }; });
RPD Framework Flow Programming for Everyone for Everyone http://shamansir.github.io/rpd