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
310
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
130
iElm-Tech-JB.pdf
shamansir
0
110
"iElm"
shamansir
0
83
Elm Revolution
shamansir
0
100
Про Гит
shamansir
2
120
Elm: 2D and 3D Graphics
shamansir
1
540
RPD — Reactive Patch Development, Extended Cut
shamansir
0
210
Animatron Player API in Details v3
shamansir
0
450
Other Decks in Programming
See All in Programming
議事録の要点整理を自動化! サーバレス Bot 構築術
penpeen
3
1.6k
Чего вы не знали о строках в Python – Василий Рябов, PythoNN
sobolevn
0
150
ソフトウェア設計の実践的な考え方
masuda220
PRO
2
200
dynamic!
moro
9
5.4k
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
2.8k
AccessorySetupKitで実現するシームレスなペアリング体験 / Seamless pairing with AccessorySetupKit
nekowen
0
210
プログラミングどうやる? ~テスト駆動開発から学ぶ達人の型~
a_okui
0
190
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
340
Advance Your Career with Open Source
ivargrimstad
0
250
タスクの特性や不確実性に応じた最適な作業スタイルの選択(ペアプロ・モブプロ・ソロプロ)と実践 / Optimal Work Style Selection: Pair, Mob, or Solo Programming.
honyanya
2
110
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
120
私はどうやって技術力を上げたのか
yusukebe
43
17k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.7k
Side Projects
sachag
455
43k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
A designer walks into a library…
pauljervisheath
208
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Designing for Performance
lara
610
69k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Designing for humans not robots
tammielis
254
25k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Fireside Chat
paigeccino
40
3.7k
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