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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ulric Wilfred
November 28, 2016
Programming
320
0
Share
RPD: Reactive Patch Development
Presented at JSKongress 2016
Ulric Wilfred
November 28, 2016
More Decks by Ulric Wilfred
See All by Ulric Wilfred
Generative Animation with Elm
shamansir
0
240
The Future of Web UI Development
shamansir
0
160
iElm-Tech-JB.pdf
shamansir
0
130
"iElm"
shamansir
0
96
Elm Revolution
shamansir
0
110
Про Гит
shamansir
2
150
Elm: 2D and 3D Graphics
shamansir
1
560
RPD — Reactive Patch Development, Extended Cut
shamansir
0
230
Animatron Player API in Details v3
shamansir
0
470
Other Decks in Programming
See All in Programming
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
110
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
360
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
190
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
140
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
5
1.6k
実用!Hono RPC2026
yodaka
2
310
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
130
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
150
Lightning-Fast Method Calls with Ruby 4.1 ZJIT / RubyKaigi 2026
k0kubun
3
2.7k
AIを導入する前にやるべきこと
negima
2
340
2026-04-15 Spring IO - I Can See Clearly Now
jonatan_ivanov
1
190
認証統合から始めるフロントエンドの機能単位開発 — マイクロサービス思想の適用
koukimiura
0
100
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
420
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
340
The Invisible Side of Design
smashingmag
302
52k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Faster Mobile Websites
deanohume
310
31k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
910
Designing for Timeless Needs
cassininazir
0
220
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.8k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
140
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
Crafting Experiences
bethany
1
140
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