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
310
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
220
The Future of Web UI Development
shamansir
0
130
iElm-Tech-JB.pdf
shamansir
0
100
"iElm"
shamansir
0
79
Elm Revolution
shamansir
0
100
Про Гит
shamansir
2
120
Elm: 2D and 3D Graphics
shamansir
1
530
RPD — Reactive Patch Development, Extended Cut
shamansir
0
210
Animatron Player API in Details v3
shamansir
0
450
Other Decks in Programming
See All in Programming
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
230
Webinar: AI-Powered Development: Transformiere deinen Workflow mit Coding Tools und MCP Servern
danielsogl
0
130
変化を楽しむエンジニアリング ~ いままでとこれから ~
murajun1978
0
730
decksh - a little language for decks
ajstarks
4
21k
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
370
生成AI、実際どう? - ニーリーの場合
nealle
0
110
Introduction to Git & GitHub
latte72
0
110
State of CSS 2025
benjaminkott
1
110
新世界の理解
koriym
0
140
Google I/O recap web編 大分Web祭り2025
kponda
0
2.9k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
370
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
850
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Navigating Team Friction
lara
188
15k
Speed Design
sergeychernyshev
32
1.1k
Balancing Empowerment & Direction
lara
2
570
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Raft: Consensus for Rubyists
vanstee
140
7.1k
For a Future-Friendly Web
brad_frost
179
9.9k
Become a Pro
speakerdeck
PRO
29
5.5k
Scaling GitHub
holman
462
140k
KATA
mclloyd
32
14k
4 Signs Your Business is Dying
shpigford
184
22k
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