Slide 1

Slide 1 text

Anton ‘shamansir’ Kotenko JetBrains GmbH (Ulric Wilfred)

Slide 2

Slide 2 text

RPD Framework Flow Programming for Everyone for Everyone http://shamansir.github.io/rpd

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Examples: http://shamansir.github.io/rpd/examples

Slide 6

Slide 6 text

Styles:

Slide 7

Slide 7 text

* 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

Slide 8

Slide 8 text

var patch = Rpd.addPatch(‘Title’);

Slide 9

Slide 9 text

var node = patch.addNode(‘jb/voronoi’);

Slide 10

Slide 10 text

var inlet = node.inlets[‘source’];

Slide 11

Slide 11 text

var inlet = node.addInlet(‘core/any’, ‘source’);

Slide 12

Slide 12 text

inlet.receive(loadImage(‘myImage.jpg’));

Slide 13

Slide 13 text

outlet.connect(someInlet);

Slide 14

Slide 14 text

outlet.send(Kefir.later(1000, ‘foo’));

Slide 15

Slide 15 text

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 } } });

Slide 16

Slide 16 text

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 ); } } });

Slide 17

Slide 17 text

Rpd.noderender(‘my/sum’, ‘svg’, { first: function(bodyElm) { … }, always: function(bodyElm, inlets, outlets) { bodyElm.innerText = inlets.a + inlets.b + outlets.sum; } });

Slide 18

Slide 18 text

Rpd.nodetype(‘my/sum’, function() { return { inlets: { … }, outlet: { … }, process: function(…) { … } } });

Slide 19

Slide 19 text

Rpd.noderenderer(‘my/sum’, ‘svg’, function() { return { first: function(…) { … }, always: function(…) { … } }; });

Slide 20

Slide 20 text

RPD Framework Flow Programming for Everyone for Everyone http://shamansir.github.io/rpd