Node.js - A practical introduction (v2)

Felix Geisendörfer
Felix GeisendörferChief Quality Enforcer at Debuggable Limited
A practical introduction



Felix Geisendörfer                Munich Node.js User Group 01.12.2011 (v2)
@felixge

Twitter / GitHub / IRC


    Felix Geisendörfer
     (Berlin, Germany)
Node.js in Munich?
Used node before?
Node in production?
History
Feb 16, 2009




Ryan Dahl starts the node project (first commit)
~June, 2009




Discovered node.js (v0.0.6)
transloadit.com
Node.js  - A practical introduction (v2)
Core Contributor

                    &

              Module Author



node-mysql                      node-formidable



                                  + 30 other modules
Sep 29, 2009




Isaac Schlueter starts the npm package manager
                  (first commit)
Nov 7, 2009




Ryan’s talk at JSConf.EU gets people excited about node
Today
#1
Most watched repository on GitHub
...
0.6.3 was released 6 days ago (Nov 25)
Companies using node
• LinkedIn (Mobile Web App)
• Ebay (Data retrieval gateway)
• GitHub (for Downloads)
• Palm/HP (in WebOS)
• Yahoo! Mail
• Dow Jones & Company (for WJS social site)
• Rackspace (Cloudkick monitoring)
• Voxxer (Push to Talk mobile app)
Node.js  - A practical introduction (v2)
Installing
$ git clone 
git://github.com/joyent/node.git
$ cd node
$ git checkout v0.6.0
$ ./configure
$ sudo make install
     (windows users: download node.exe)
Hello World

hello.js
console.log('Hello World');
Hello World

hello.js
console.log('Hello World');



$
Hello World

hello.js
console.log('Hello World');



$ node
Hello World

hello.js
console.log('Hello World');



$ node hello.js
Hello World

hello.js
console.log('Hello World');



$ node hello.js
Hello World
Hello World (REPL)
Hello World (REPL)


 $
Hello World (REPL)


 $ node
Hello World (REPL)


 $ node
 >
Hello World (REPL)


 $ node
 > console.log('Hello World')
Hello World (REPL)


 $ node
 > console.log('Hello World')
 Hello World
Http Server
http_server.js
var http = require('http');
var server = http.createServer(function(req, res) {
  res.end('Hi, how are you?');
});

server.listen(8080);
Http Server
http_server.js
var http = require('http');
var server = http.createServer(function(req, res) {
  res.end('Hi, how are you?');
});

server.listen(8080);


$ node http_server.js
Http Server
http_server.js
var http = require('http');
var server = http.createServer(function(req, res) {
  res.end('Hi, how are you?');
});

server.listen(8080);


$ node http_server.js    $ curl localhost:8080
                         Hi, how are you?
“Come on, server side JS
 has been around since
        1996”
What is so special
 about node?
Speed
Speed

• Node can do ~6000 http requests / sec per
  CPU core (hello world, 1kb response,)


• It is no problem to handle thousands of
  concurrent connections which are
  moderately active
V8 JavaScript Engine
V8 JavaScript Engine

• Developed by Google in Aarhus, Denmark
  for Google Chrome


• Translates JavaScript in Assembly Code

• Crankshaft JIT (enabled in 0.6.0 by default)
V8 JavaScript Engine

• You can expect to be within ~10x of C
  performance usually


• Certain code can run within 2-3x of C

• Getting faster all the time
Non-Blocking I/O
Blocking I/O
read_file_sync.js

var fs = require('fs');
var one = fs.readFileSync('one.txt', 'utf-8');
console.log('Read file one');
var two = fs.readFileSync('two.txt', 'utf-8');
console.log('Read file two');
Blocking I/O
read_file_sync.js

var fs = require('fs');
var one = fs.readFileSync('one.txt', 'utf-8');
console.log('Read file one');
var two = fs.readFileSync('two.txt', 'utf-8');
console.log('Read file two');


             $ node read_file_sync.js
Blocking I/O
read_file_sync.js

var fs = require('fs');
var one = fs.readFileSync('one.txt', 'utf-8');
console.log('Read file one');
var two = fs.readFileSync('two.txt', 'utf-8');
console.log('Read file two');


             $ node read_file_sync.js
             Read file one
Blocking I/O
read_file_sync.js

var fs = require('fs');
var one = fs.readFileSync('one.txt', 'utf-8');
console.log('Read file one');
var two = fs.readFileSync('two.txt', 'utf-8');
console.log('Read file two');


             $ node read_file_sync.js
             Read file one
             Read file two
Non-Blocking I/O
read_file_async.js
var fs = require('fs');
fs.readFile('one.txt', 'utf-8', function(err, data) {
  console.log('Read file one');
});
fs.readFile('two.txt', 'utf-8', function(err, data) {
  console.log('Read file two');
});
Non-Blocking I/O
read_file_async.js
var fs = require('fs');
fs.readFile('one.txt', 'utf-8', function(err, data) {
  console.log('Read file one');
});
fs.readFile('two.txt', 'utf-8', function(err, data) {
  console.log('Read file two');
});

            $ node read_file_async.js
Non-Blocking I/O
read_file_async.js
var fs = require('fs');
fs.readFile('one.txt', 'utf-8', function(err, data) {
  console.log('Read file one');
});
fs.readFile('two.txt', 'utf-8', function(err, data) {
  console.log('Read file two');
});

            $ node read_file_async.js
            Read file two
Non-Blocking I/O
read_file_async.js
var fs = require('fs');
fs.readFile('one.txt', 'utf-8', function(err, data) {
  console.log('Read file one');
});
fs.readFile('two.txt', 'utf-8', function(err, data) {
  console.log('Read file two');
});

            $ node read_file_async.js
            Read file two
            Read file one
Node.js  - A practical introduction (v2)
Blocking I/O

Read one.txt (20ms)

                                Read two.txt (10ms)

              Total duration (30ms)
Non-Blocking I/O

Read one.txt (20ms)

Read two.txt (10ms)

      Total duration (20ms)
Non-Blocking I/O
• Close to ideal for high concurrency / high
  throughput, single execution stack


• Forces you to write more efficient code by
  parallelizing your I/O


• Feels pretty much like AJAX in the browser
WebSockets
  (Push)
WebSockets

•   Persistent connection between browser/server


•   Very hard / awkward to do on traditional stacks


•   Hard to scale on traditional stacks
Socket.IO (community module)
       •   WebSocket

       •   Adobe® Flash® Socket

       •   AJAX long polling

       •   AJAX multipart streaming

       •   Forever Iframe

       •   JSONP Polling

Chooses most capable transport at runtime!
Streams
“Streams are to time as arrays are to space.”
                    -- Jed Schmidt @ JSConf.eu 2010
Streams in node.js

•   Readable


•   Writable


•   Both
Streams
var http = require('http');
var server = http.createServer(function(req, res) {
  req.on('data', console.log);
});
server.listen(8080);
Streams
var http = require('http');
var server = http.createServer(function(req, res) {
  req.on('data', console.log);
});
server.listen(8080);

$ node stream.js &
$ curl -F file=@stream.js localhost:8080
------------------------------41e92562223e
Content-Disposition: form-data; name="file"; filename
Content-Type: application/octet-stream

var http = require('http');
var server = http.createServer(function(req, res) {
Streams
var http = require('http');
var spawn = require('child_process').spawn;

http.createServer(function(req, res) {
  var params = req.url.split('/');
  var args = [params[1], '-resize', params[2], '-'];
  var convert = spawn('convert', args);

  convert.stdout.pipe(res);
}).listen(8080);
On Github


felixge/node-convert-example
NPM package manager
NPM
• Puts dependencies in the right place, then
  gets out of your way


• No modification of a global load path
  (require.paths is gone in 0.6.x)


• 5369+ Modules in npm, > 10 new
  modules / day
So what is node good
        for?
Use cases

• WebSockets/Push applications

• Proxying data streams

• Backend for single page apps
Use cases

• Spawning other programs (processes) to do
  work / IPC


• Parallelizing I/O
So what is node not
     good for?
Anti-Use cases
• Hard Realtime Systems

• Number crunching / huge in-memory
  datasets


• (CRUD apps)
Join the Community

• Mailing list (nodejs, nodejs-dev)

• IRC (#node.js) - 700+ User online
Thank you!
Questions?




   @felixge
Thank you!
Bonus Slide
What’s next?

• Domains

• Improved Stream API
1 of 77

Recommended

Nodejs - A quick tour (v5) by
Nodejs - A quick tour (v5)Nodejs - A quick tour (v5)
Nodejs - A quick tour (v5)Felix Geisendörfer
2.8K views58 slides
Node.js - As a networking tool by
Node.js - As a networking toolNode.js - As a networking tool
Node.js - As a networking toolFelix Geisendörfer
12.9K views47 slides
Nodejs a-practical-introduction-oredev by
Nodejs a-practical-introduction-oredevNodejs a-practical-introduction-oredev
Nodejs a-practical-introduction-oredevFelix Geisendörfer
2.9K views59 slides
Nodejs - A-quick-tour-v3 by
Nodejs - A-quick-tour-v3Nodejs - A-quick-tour-v3
Nodejs - A-quick-tour-v3Felix Geisendörfer
3.1K views36 slides
Node.js - A Quick Tour II by
Node.js - A Quick Tour IINode.js - A Quick Tour II
Node.js - A Quick Tour IIFelix Geisendörfer
4.8K views47 slides
Nodejs - A quick tour (v6) by
Nodejs - A quick tour (v6)Nodejs - A quick tour (v6)
Nodejs - A quick tour (v6)Felix Geisendörfer
3.9K views68 slides

More Related Content

What's hot

Node.js in production by
Node.js in productionNode.js in production
Node.js in productionFelix Geisendörfer
8.4K views36 slides
Dirty - How simple is your database? by
Dirty - How simple is your database?Dirty - How simple is your database?
Dirty - How simple is your database?Felix Geisendörfer
10.3K views32 slides
Node.js - A Quick Tour by
Node.js - A Quick TourNode.js - A Quick Tour
Node.js - A Quick TourFelix Geisendörfer
9.3K views37 slides
node.js: Javascript's in your backend by
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backendDavid Padbury
12.6K views109 slides
Nginx-lua by
Nginx-luaNginx-lua
Nginx-luaДэв Тим Афс
2K views21 slides
A language for the Internet: Why JavaScript and Node.js is right for Internet... by
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...Tom Croucher
9.4K views76 slides

What's hot(20)

node.js: Javascript's in your backend by David Padbury
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backend
David Padbury12.6K views
A language for the Internet: Why JavaScript and Node.js is right for Internet... by Tom Croucher
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
Tom Croucher9.4K views
Nodejs Explained with Examples by Gabriele Lana
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
Gabriele Lana112.3K views
introduction to node.js by orkaplan
introduction to node.jsintroduction to node.js
introduction to node.js
orkaplan3.7K views
Introduction to Nodejs by Gabriele Lana
Introduction to NodejsIntroduction to Nodejs
Introduction to Nodejs
Gabriele Lana17.6K views
Writing robust Node.js applications by Tom Croucher
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher15.6K views
NodeJS by .toster
NodeJSNodeJS
NodeJS
.toster1.9K views
A million connections and beyond - Node.js at scale by Tom Croucher
A million connections and beyond - Node.js at scaleA million connections and beyond - Node.js at scale
A million connections and beyond - Node.js at scale
Tom Croucher32.7K views
Node.js and How JavaScript is Changing Server Programming by Tom Croucher
Node.js and How JavaScript is Changing Server Programming  Node.js and How JavaScript is Changing Server Programming
Node.js and How JavaScript is Changing Server Programming
Tom Croucher10.4K views
Building servers with Node.js by ConFoo
Building servers with Node.jsBuilding servers with Node.js
Building servers with Node.js
ConFoo12.2K views
Lua tech talk by Locaweb
Lua tech talkLua tech talk
Lua tech talk
Locaweb2.3K views
Non-blocking I/O, Event loops and node.js by Marcus Frödin
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
Marcus Frödin22.8K views

Viewers also liked

Anatomy of a Modern Node.js Application Architecture by
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture AppDynamics
40K views1 slide
Building an alarm clock with node.js by
Building an alarm clock with node.jsBuilding an alarm clock with node.js
Building an alarm clock with node.jsFelix Geisendörfer
10.8K views47 slides
It jobs road show by
It jobs road showIt jobs road show
It jobs road showApaichon Punopas
656 views12 slides
Change RelationalDB to GraphDB with OrientDB by
Change RelationalDB to GraphDB with OrientDBChange RelationalDB to GraphDB with OrientDB
Change RelationalDB to GraphDB with OrientDBApaichon Punopas
1.8K views48 slides
Firebase slide by
Firebase slideFirebase slide
Firebase slideApaichon Punopas
1.1K views28 slides
Forensic Tools for In-Depth Performance Investigations by
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance InvestigationsNicholas Jansma
4.1K views132 slides

Viewers also liked(10)

Anatomy of a Modern Node.js Application Architecture by AppDynamics
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
AppDynamics40K views
Change RelationalDB to GraphDB with OrientDB by Apaichon Punopas
Change RelationalDB to GraphDB with OrientDBChange RelationalDB to GraphDB with OrientDB
Change RelationalDB to GraphDB with OrientDB
Apaichon Punopas1.8K views
Forensic Tools for In-Depth Performance Investigations by Nicholas Jansma
Forensic Tools for In-Depth Performance InvestigationsForensic Tools for In-Depth Performance Investigations
Forensic Tools for In-Depth Performance Investigations
Nicholas Jansma4.1K views
Introduction to Node.js by Vikash Singh
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Vikash Singh71.2K views
Node Foundation Membership Overview 20160907 by NodejsFoundation
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
NodejsFoundation1.1M views
The Enterprise Case for Node.js by NodejsFoundation
The Enterprise Case for Node.jsThe Enterprise Case for Node.js
The Enterprise Case for Node.js
NodejsFoundation49.5K views

Similar to Node.js - A practical introduction (v2)

Introduction to NodeJS with LOLCats by
Introduction to NodeJS with LOLCatsIntroduction to NodeJS with LOLCats
Introduction to NodeJS with LOLCatsDerek Anderson
1.2K views31 slides
Node.js: The What, The How and The When by
Node.js: The What, The How and The WhenNode.js: The What, The How and The When
Node.js: The What, The How and The WhenFITC
4.6K views40 slides
Building and Scaling Node.js Applications by
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js ApplicationsOhad Kravchick
1.7K views20 slides
Nodejs and WebSockets by
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSocketsGonzalo Ayuso
13.5K views35 slides
soft-shake.ch - Hands on Node.js by
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
2.3K views35 slides
nodejs_at_a_glance.ppt by
nodejs_at_a_glance.pptnodejs_at_a_glance.ppt
nodejs_at_a_glance.pptWalaSidhom1
7 views66 slides

Similar to Node.js - A practical introduction (v2)(20)

Introduction to NodeJS with LOLCats by Derek Anderson
Introduction to NodeJS with LOLCatsIntroduction to NodeJS with LOLCats
Introduction to NodeJS with LOLCats
Derek Anderson1.2K views
Node.js: The What, The How and The When by FITC
Node.js: The What, The How and The WhenNode.js: The What, The How and The When
Node.js: The What, The How and The When
FITC4.6K views
Building and Scaling Node.js Applications by Ohad Kravchick
Building and Scaling Node.js ApplicationsBuilding and Scaling Node.js Applications
Building and Scaling Node.js Applications
Ohad Kravchick1.7K views
Nodejs and WebSockets by Gonzalo Ayuso
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
Gonzalo Ayuso13.5K views
soft-shake.ch - Hands on Node.js by soft-shake.ch
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
soft-shake.ch2.3K views
nodejs_at_a_glance.ppt by WalaSidhom1
nodejs_at_a_glance.pptnodejs_at_a_glance.ppt
nodejs_at_a_glance.ppt
WalaSidhom17 views
Practical Use of MongoDB for Node.js by async_io
Practical Use of MongoDB for Node.jsPractical Use of MongoDB for Node.js
Practical Use of MongoDB for Node.js
async_io19.9K views
Node.js - The New, New Hotness by Daniel Shaw
Node.js - The New, New HotnessNode.js - The New, New Hotness
Node.js - The New, New Hotness
Daniel Shaw984 views
Introducing Node.js in an Oracle technology environment (including hands-on) by Lucas Jellema
Introducing Node.js in an Oracle technology environment (including hands-on)Introducing Node.js in an Oracle technology environment (including hands-on)
Introducing Node.js in an Oracle technology environment (including hands-on)
Lucas Jellema2.4K views
Event-driven IO server-side JavaScript environment based on V8 Engine by Ricardo Silva
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
Ricardo Silva4.1K views
Original slides from Ryan Dahl's NodeJs intro talk by Aarti Parikh
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
Aarti Parikh2.1K views
Node.js 101 with Rami Sayar by FITC
Node.js 101 with Rami SayarNode.js 101 with Rami Sayar
Node.js 101 with Rami Sayar
FITC6.1K views
Node.js Workshop - Sela SDP 2015 by Nir Noy
Node.js Workshop  - Sela SDP 2015Node.js Workshop  - Sela SDP 2015
Node.js Workshop - Sela SDP 2015
Nir Noy937 views
Node.js - async for the rest of us. by Mike Brevoort
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.
Mike Brevoort6.9K views
Introduction to Node.js by Richard Lee
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
Richard Lee2K views
Introduction to Node.js: What, why and how? by Christian Joudrey
Introduction to Node.js: What, why and how?Introduction to Node.js: What, why and how?
Introduction to Node.js: What, why and how?
Christian Joudrey1.6K views
New kid on the block node.js by Joel Divekar
New kid on the block node.jsNew kid on the block node.js
New kid on the block node.js
Joel Divekar2.4K views
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti... by Codemotion
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Meetup RomaJS - introduzione interattiva a Node.js - Luca Lanziani - Codemoti...
Codemotion465 views
Hidden pearls for High-Performance-Persistence by Sven Ruppert
Hidden pearls for High-Performance-PersistenceHidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-Persistence
Sven Ruppert876 views

Recently uploaded

KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineShapeBlue
154 views19 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
142 views32 slides
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...ShapeBlue
69 views29 slides
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
60 views21 slides
DRBD Deep Dive - Philipp Reisner - LINBIT by
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBITShapeBlue
110 views21 slides
The Power of Heat Decarbonisation Plans in the Built Environment by
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built EnvironmentIES VE
67 views20 slides

Recently uploaded(20)

KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue154 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson142 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue69 views
DRBD Deep Dive - Philipp Reisner - LINBIT by ShapeBlue
DRBD Deep Dive - Philipp Reisner - LINBITDRBD Deep Dive - Philipp Reisner - LINBIT
DRBD Deep Dive - Philipp Reisner - LINBIT
ShapeBlue110 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue172 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue121 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue113 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue63 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue138 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue218 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue68 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue93 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty54 views

Node.js - A practical introduction (v2)

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. #24 on the mailing list\n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. Mention difference between node / other platforms where you’re implicitly embedded inside a webserver\n
  31. Mention difference between node / other platforms where you’re implicitly embedded inside a webserver\n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. If that is not fast enough for what you’re doing, use C\n
  39. \n
  40. \n
  41. \n
  42. \n
  43. Now you may say:\n- This is terrible\n- I have to write 7 lines instead of 5\n- And it’s in the wrong order\n\n
  44. Now you may say:\n- This is terrible\n- I have to write 7 lines instead of 5\n- And it’s in the wrong order\n\n
  45. Now you may say:\n- This is terrible\n- I have to write 7 lines instead of 5\n- And it’s in the wrong order\n\n
  46. \n
  47. \n
  48. \n
  49. A keen observer may note that the same is achievable with threads\n* But how many of you think threading is easier than making an AJAX call\n* Threads require significant more resources than the non-blocking I/O node is doing\n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. 10 lines of code\n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n