NodePhilly 2012 Notes

I attended NodePhilly last night where I learned how to become a Mad Scientist. Joking aside, it was a great conference. Below are some of my notes. In the following weeks these videos should be available.

Lecture 1

Christian Sanz

low level introduction to event loop and what makes nodejs…

mentions a high level view of Streams

and nothing else.

Lecture 2

Peter Laudati

windows walk through of how to use node and publish to windows azure

Lecture 3

Lloyd Hilaiel - Mozilla


Sample app * deployed on an 8 core ec2 * mix of cheap + expensive hardware

Shows some demos of sync/async code using a dtrace model to output cpu processor bandwidth. Illustrates the power of multi-core. example showed nodejs having an issue of utilizing more than 4 cores.

Then showed the ‘cluster’ module running the same application server to utilize all the cores. plus the lag/throughput was significant. Still has some saturation issues.

Lastly, ‘Compute Cluster’ has the best performance with the most significant saturation. Talks about the usage of this module that if you specific a ‘wait time’ for how long a connection can hang (4 secs). This allows for an ‘error’ to be returned for a timed out connection.

He has all these test code segments on his github account.

Nodejitsu time

Paolo Fragomeni

Approaching a Real Time Web

What is realtime

“precision of duration with logical correctness”


loss of precision represents complete system failure. ex: u hit turn signal to late and cop pulls you over. fail!

Soft Realtime

loss of precision degrades the quality of the system but its not a complete failure. example of background echoes over skype, service still works, but at a degradation of service.

How real is realtime?


permanent code intersects where interesting data points are produced

talks about the importance of being able to debug a real-time system.
— plugs their winston module logger as a great tool to gather data. problems is this causes overhead on the production system.

dynamic tracing

critical to avoid piling in instrumentation code. DTrace instruments the system holistically

Darwin/linux commands for dscript (dynamic script) ls -la /usr/bin/*.d

Bindings to dtrace via github/bcantrell


out of time

Power of 10

Charlie Robbins

10 (10^1)*n -> power of nodejitsu people

100s (10^2) * n -> days of nodejs exists or number of ruby request

1000s (10^3) * n -> of requests per second in nodejs

10,000s (10^4) * n -> # of servers nodejs installed on

100,000s (10 ^5)*n -> # of deployments on nodejitsu

1,000,000s (10^6)*n -> # of messages logged with winston everyday —> rackspace, single 1gig memory can do millions

10,000,000s (10^7)*n -> node-http-proxy, number of requests proxy

skipping to billions (10^9)*n -> billions of node-http-proxy, requests proxy by m$

demo’d node-http-proxy stuff from nodejitsu


Christian Wendt -> Comcast Labs

Works on the communication products and services

Communications are all async

Pervasive Computing

anything in your world can be connected to the internet and communicated with. Pictures of products and information dashboards (corning). The data sources are changing as well, from our car motors, to cable boxes, to alarm clocks.

Personal Device Cloud

a great deal of device management device security will be an issue of contention as devices output digital information. Example, your baby monitor or someone being able to digitally unlock your front door.

Communication Routing

some examples


  • starts as HTTP and upgrades connection to websocket
  • elimnates overhead of HTTP for maintaining the persistant TCP connection

Realtime Communications

Peer Communications

peer to peer is still the most efficient form of real-time communication webrtc is a w3c standard being created for peer to peer channel protocal in browser. Uses udp for connections targeted as a time critical and network adaptive as packets can be dropped. great for audio/video streaming, time critical gaming, command/control.

webrtc != rtcweb w3c ietf

browser || non-browser

webrtc connections/interfaces

javascript interfaces media stream (web cam) peer connection (creating peer connections) data channel (streaming general data)

talks about NAT/Firewall problem with peer-to-peer


supported as an option in Chrome already will reduce complexity of setting up UDP peer communications

Mad Science Variety Side-show (realtime)

James Halilday (substack)

Mad science is not about about standards, in fact dismantle them

service registry — should register your services

first time seeing substack speak, think he is high



don’t write big apps! write small apps that talk to each other over the network.


Mikael Roger’s uses fleet for deploy


Daniel Shaw

Emoji had this problem at centrl with crazy characters coming in. These are strings hard to extract and re-adjust.

As of node >= 0.7.7

we can do the fun little emjoi icons coming in.

extend multi-byte characters

Posted on Tumblr - Tue April 24th 2012, 12:06 PM

blog comments powered by Disqus