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
290
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
200
The Future of Web UI Development
shamansir
0
110
iElm-Tech-JB.pdf
shamansir
0
89
"iElm"
shamansir
0
69
Elm Revolution
shamansir
0
88
Про Гит
shamansir
2
100
Elm: 2D and 3D Graphics
shamansir
1
510
RPD — Reactive Patch Development, Extended Cut
shamansir
0
170
Animatron Player API in Details v3
shamansir
0
430
Other Decks in Programming
See All in Programming
為你自己學 Python
eddie
0
520
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
360
Package Traits
ikesyo
1
210
AppRouterを用いた大規模サービス開発におけるディレクトリ構成の変遷と問題点
eiganken
1
450
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
170
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.4k
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
170
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
선언형 UI에서의 상태관리
l2hyunwoo
0
270
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
YesSQL, Process and Tooling at Scale
rocio
170
14k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Bash Introduction
62gerente
610
210k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
What's in a price? How to price your products and services
michaelherold
244
12k
How GitHub (no longer) Works
holman
312
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Docker and Python
trallard
43
3.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
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