https://nodejs.org/
http://nodeschool.io/
But not really.
I won't be offended if you start on a NodeSchool workshop.
1. Install Node
2. `npm install -g javascripting`
3. `javascripting`
If that's too basic, try `npm install -g learnyounode'
Have your computer call your friends computer. Every BBS was an island.
Essentially same as today: email, chat, downloads, and games.
Lynx (text based http)
Gopher (before http)
And email...
IE 1 (Mosaic Rebranded)
Mosaic
Internet Explorer
Netscape
Firefox
Microsoft licensed Netscape, then gave away IE for free by bundling with Windows.
Netscape created the Mozilla Foundation, and Firefox to promote web standards.
Different Browsers had different scripting languages. Netscape (now Mozilla) proposed JavaScript as ECMAScript Standard in 1997
1996
2009
Web Applications were incredibly hard.
Each browser was different: Scripting, DOMs, CSS
Write for one browser, then port to others.
Firefox won because of standards and the Firebug debugger
IE
FF
Chrome
"Web Scale" works by scaling horizontally.
Don't use a 100x bigger server, make 100x more small servers.
https://nodejs.org/
Non-blocking IO. Uses callbacks, promises, streams, etc.
var data = fs.readFileSync(filename); // Rip Van Winkle
console.log(data); // 20 years later. TLDR; moonshine bad.
// A callback
fs.readFile('/etc/hosts', 'utf8', function (err,data) {
if (err) return console.log(err);
console.log(data);
});
// Promises
fs.readFileAsync('/etc/hosts') // Creates a promise For file I/O
.then(function(serverList){
// Maka parallel HTTP requests, return array of promises.
return Promise.each(function(server) { return request(server); }
})
.then(function(allThosePages){
// All HTTP promises have resolved, now promise to write to file
return fs.writeFileAsync('pages.json', JSON.stringify(allThosePages);
})
.catch(function(error){
// Somethings wrong!
});
What?! Why is this awesome!
Building big things from little things
http://nodeschool.io/