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
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
160
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
Copilot CLI の継戦能力を高める コンテキスト管理
nozomutu
1
1.1k
net-httpのHTTP/2対応について
naruse
0
390
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
200
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
120
Claspは野良GASの夢をみるか
takter00
0
140
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
400
JavaDoc 再入門
nagise
0
220
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4.7k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
11
3.1k
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
220
Swiftのレキシカルスコープ管理
kntkymt
0
210
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Context Engineering - Making Every Token Count
addyosmani
9
930
A Tale of Four Properties
chriscoyier
163
24k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
230
How to train your dragon (web standard)
notwaldorf
97
6.6k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
330
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
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