Meta Programming with Streams and Pipes

2,230 views
2,153 views

Published on

My slides from the Great British Node Conference 2013 at Shoreditch Village Hall in London.

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,230
On SlideShare
0
From Embeds
0
Number of Embeds
92
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Meta Programming with Streams and Pipes

  1. 1.   Essentially, programs that can be created by themselves.   We’re twisting the term a little for streams   We will be defining streaming constructs using streaming constructs   By streams I mean beams which are just streams and pipes for compute as opposed to IO
  2. 2. Any info? Please contact #nodeland police at @cianomaidin on twitter…
  3. 3.   Readable Streams   IO / throughput oriented   Events – data, end, error, close   Methods – pause, resume, end, destroy   Writeable Streams   IO / throughput oriented   Events - drain, pause, resume, error, close   Methods – write, end, destroy
  4. 4.   IO Oriented   Finite, not infinite   Asynchronous   Lazy   Assumes in transit data, not in memory forms   Great for IO. Not efficient for compute
  5. 5.   Sources   Where data pours in   Sinks   Where results pop out   Operators         Filters – Drop or pass on data based on a UDF Transforms – Mutate data based on a UDF Branch with Filters Combine with Sinks
  6. 6.   Compute Oriented   Infinite, not finite   Synchronous   Eager   Assumes in memory form, not encoded or wire data   Convenient for compute. Not good for IO
  7. 7.   Eager: a.pipe(operation).pipe(z).pipe(a);   Implies: RangeError: Maximum call stack size exceeded
  8. 8.   npm install beam       Compute oriented streams Branch, Combine, Filter, Transform data Extend with goto and modules.   npm install eep           Beam will be integrated into eep soon Eep provides aggregate windows Slide, Tumble, Monotonic, Periodic Stats Library Ordering now supported   npm install nodesapiens   Robosapiens V1 for node.js   Code on github   https://github.com/darach

×