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
0
320
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
240
The Future of Web UI Development
shamansir
0
150
iElm-Tech-JB.pdf
shamansir
0
120
"iElm"
shamansir
0
95
Elm Revolution
shamansir
0
110
Про Гит
shamansir
2
140
Elm: 2D and 3D Graphics
shamansir
1
550
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
Fundamentals of Software Engineering In the Age of AI
therealdanvega
1
200
AHC061解説
shun_pi
0
330
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
650
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
480
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
250
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
240
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
190
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
220
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
470
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
320
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
180
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
86
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Ethics towards AI in product and experience design
skipperchong
2
210
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Unsuck your backbone
ammeep
672
58k
Paper Plane
katiecoart
PRO
0
47k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Tell your own story through comics
letsgokoyo
1
830
SEO for Brand Visibility & Recognition
aleyda
0
4.3k
Abbi's Birthday
coloredviolet
2
5.1k
Become a Pro
speakerdeck
PRO
31
5.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
950
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