Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
A practical introduction 15.06.2012 - Big Tech Day 5, Munich Felix Geisendörfer
Slide 2
Slide 2 text
Felix Geisendörfer
Slide 3
Slide 3 text
transloadit.com
Slide 4
Slide 4 text
core contributor
Slide 5
Slide 5 text
npm modules
Slide 6
Slide 6 text
node-formidable
Slide 7
Slide 7 text
node-mysql
Slide 8
Slide 8 text
~50 modules total
Slide 9
Slide 9 text
(@)felixge(.de)
Slide 10
Slide 10 text
Audience
Slide 11
Slide 11 text
Software Developers?
Slide 12
Slide 12 text
JavaScript Developers?
Slide 13
Slide 13 text
Heard about node.js?
Slide 14
Slide 14 text
Using node.js?
Slide 15
Slide 15 text
What is node.js?
Slide 16
Slide 16 text
JavaScript on the Server
Slide 17
Slide 17 text
Hello World
Slide 18
Slide 18 text
1 var http = require('http'); 2 3 http.createServer(function(req, res) { 4 res.end('Hello World'); 5 }).listen(8080); hello world http server in node.js
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
No content
Slide 21
Slide 21 text
Features • TCP / UDP • HTTP / HTTPS • File System • Buffers (byte arrays) • DNS • Child Processes • Http / Https • Crypto • ZLIB • Readline / TTY / REPL
Slide 22
Slide 22 text
< 5 min to install Windows, Mac, Linux
Slide 23
Slide 23 text
History
Slide 24
Slide 24 text
1995 LiveWire released
Slide 25
Slide 25 text
1997 Rhino started
Slide 26
Slide 26 text
...
Slide 27
Slide 27 text
Ryan Dahl starts the node project (first commit) Feb 16, 2009
Slide 28
Slide 28 text
I discovered node.js (v0.0.6) ~June, 2009
Slide 29
Slide 29 text
Isaac Schlueter starts the npm package manager Sep 29, 2009
Slide 30
Slide 30 text
Ryan’s talk at JSConf.EU gets people excited about node Nov 7, 2009
Slide 31
Slide 31 text
...
Slide 32
Slide 32 text
2012
Slide 33
Slide 33 text
No content
Slide 34
Slide 34 text
What is special?
Slide 35
Slide 35 text
Non-blocking I/O
Slide 36
Slide 36 text
var image = fs.readFileSync('some.jpeg'); console.log('hello'); vs fs.readFile('some.jpeg', function(err, image) { }); console.log('hello');
Slide 37
Slide 37 text
Easy concurrency
Slide 38
Slide 38 text
Low memory usage
Slide 39
Slide 39 text
Good performance
Slide 40
Slide 40 text
More on performance
Slide 41
Slide 41 text
Google V8
Slide 42
Slide 42 text
No content
Slide 43
Slide 43 text
JS -> Assembly
Slide 44
Slide 44 text
Crankshaft JIT
Slide 45
Slide 45 text
Fast
Slide 46
Slide 46 text
Now in Munich
Slide 47
Slide 47 text
Simple Benchmark
Slide 48
Slide 48 text
1 kb http responses ~6000 requests / second* * per CPU core
Slide 49
Slide 49 text
Why JavaScript?
Slide 50
Slide 50 text
// Today (15.06.2012) > (new Date).getMonth() 5
Slide 51
Slide 51 text
> 0.3 + 0.3 + 0.3 0.8999999999999999
Slide 52
Slide 52 text
No content
Slide 53
Slide 53 text
Everywhere
Slide 54
Slide 54 text
War on JavaScript
Slide 55
Slide 55 text
No I/O in Standard Lib
Slide 56
Slide 56 text
Use Cases
Slide 57
Slide 57 text
WebSockets
Slide 58
Slide 58 text
Streaming
Slide 59
Slide 59 text
Code Sharing
Slide 60
Slide 60 text
etc.
Slide 61
Slide 61 text
node package manager
Slide 62
Slide 62 text
10.000+ packages
Slide 63
Slide 63 text
local installs
Slide 64
Slide 64 text
No content
Slide 65
Slide 65 text
Join the Community • Mailing list (nodejs, nodejs-dev) • IRC (#node.js) - 700+ User online
Slide 66
Slide 66 text
Thank you!
Slide 67
Slide 67 text
Questions? ” http://felixge.de/
[email protected]
@felixge
Slide 68
Slide 68 text
Bonus: Live Coding