Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
  Essentially, programs that can be created by
themselves.
  We’re twisting the term a little for streams
  We will be ...
Any info? Please contact #nodeland police at @cianomaidin on twitter…
  Readable Streams
  IO / throughput oriented
  Events – data, end, error, close
  Methods – pause, resume, end, destr...
  IO Oriented
  Finite, not infinite
  Asynchronous
  Lazy
  Assumes in transit data, not in memory forms
  Great fo...
  Sources
  Where data pours in

  Sinks
  Where results pop out

  Operators
 
 
 
 

Filters – Drop or pass on ...
  Compute Oriented
  Infinite, not finite
  Synchronous
  Eager
  Assumes in memory form, not encoded or wire data
 ...
  Eager: a.pipe(operation).pipe(z).pipe(a);
  Implies:
RangeError: Maximum call stack size exceeded
  npm install beam
 
 
 

Compute oriented streams
Branch, Combine, Filter, Transform data
Extend with goto and module...
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Meta Programming with Streams and Pipes
Upcoming SlideShare
Loading in …5
×

Meta Programming with Streams and Pipes

2,381 views

Published on

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

Published in: Technology, Business
  • Be the first to comment

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

×