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
250
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
160
The Future of Web UI Development
shamansir
0
96
iElm-Tech-JB.pdf
shamansir
0
47
"iElm"
shamansir
0
60
Elm Revolution
shamansir
0
79
Про Гит
shamansir
2
87
Elm: 2D and 3D Graphics
shamansir
1
430
RPD — Reactive Patch Development, Extended Cut
shamansir
0
100
Animatron Player API in Details v3
shamansir
0
400
Other Decks in Programming
See All in Programming
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
300
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.1k
Netty Chicago Java User Group 2024-04-17
sullis
0
130
チーム力を高めるスクラム実践法:カンバン公開と課題攻略について - ニフティのスクラムトーク Vol. 2 - NIFTY Tech Talk #18
niftycorp
PRO
1
110
Milestoner
bkuhlmann
1
400
雑に思考を整理する技術と効能
konifar
55
25k
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
420
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
900
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
Featured
See All Featured
Code Review Best Practice
trishagee
54
15k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
76
41k
The Invisible Side of Design
smashingmag
294
49k
4 Signs Your Business is Dying
shpigford
175
21k
RailsConf 2023
tenderlove
2
530
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Raft: Consensus for Rubyists
vanstee
132
6.2k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.2k
Writing Fast Ruby
sferik
620
60k
Designing for Performance
lara
601
67k
Fantastic passwords and where to find them - at NoRuKo
philnash
36
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
258
12k
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