Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
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
230
The Future of Web UI Development
shamansir
0
140
iElm-Tech-JB.pdf
shamansir
0
120
"iElm"
shamansir
0
87
Elm Revolution
shamansir
0
110
Про Гит
shamansir
2
130
Elm: 2D and 3D Graphics
shamansir
1
540
RPD — Reactive Patch Development, Extended Cut
shamansir
0
220
Animatron Player API in Details v3
shamansir
0
460
Other Decks in Programming
See All in Programming
tparseでgo testの出力を見やすくする
utgwkk
1
190
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
160
AtCoder Conference 2025「LLM時代のAHC」
imjk
1
320
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
380
ゲームの物理 剛体編
fadis
0
330
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
9
1.1k
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
700
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.8k
AIコーディングエージェント(NotebookLM)
kondai24
0
170
開発に寄りそう自動テストの実現
goyoki
1
780
Why Kotlin? 電子カルテを Kotlin で開発する理由 / Why Kotlin? at Henry
agatan
2
7k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Cult of Friendly URLs
andyhume
79
6.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Producing Creativity
orderedlist
PRO
348
40k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
KATA
mclloyd
PRO
32
15k
GitHub's CSS Performance
jonrohan
1032
470k
Writing Fast Ruby
sferik
630
62k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Practical Orchestrator
shlominoach
190
11k
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