3. Nodejs Introduction NodeJS is built on Google’s V8 Javascript engine Server-side non blocking asynchronous JS Perfect for “blood” of Web 2.0 apps (streams, comet, AJAX, etc) and scale
4. How to Install (VM) (1/5) Download Ubuntu TurnKey from http://www.turnkeylinux.org/core Download the free Vmware player from http://www.vmware.com/download/player/thankyou.html (or use VMWare Workstation) Start the Turnkey Virtual Appliance and follow instruction to set-up root password and update security. Note IP@ to connect to with SSH
5. How to Install (SSH) (2/5) Get your favorite SSH tool (duh, Putty!) http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Set-up your SSH connection as indicated left Approve to the RSA key as shown right
6. How to Install (Misc.) (3/5) Get Filezilla http://filezilla-project.org/ if you want to transfer through SSH with your favorite editor I use NotePad++ http://notepad-plus-plus.org/with an NppFTP extension http://sourceforge.net/projects/nppftp/ (not automated but easier to remember)
7. How to Install (Git) (4/5) Install Compile tools apt-get install gcc apt-get install g++ apt-get install make Install Git (would be a good L&L. Volunteers?) apt-get install git-core Git the node repo: (alternative is to download & install the TAR’ed version from nodejs but what’s the fun ? wget http://nodejs.org/dist/node-v0.4.12.tar.gz) gitclone git://github.com/joyent/node.git Make sure to use the latest stable version (As of 10/3/2011, I recommend 0.4.11. 0.4.12 seems to be the latest though) cd node gitcheckout v0.4.11 Configure/Make ./configure Make Make Install You are all set: cd benchmark/ node v8_bench.js
8. How to Install (NPM) (5/5) Get CURL apt-get install curl Install NPM curl http://npmjs.org/install.sh | sh You are all set npm
9. What is NPM? NPM is a Node Dependency manager (better than APT) Get a package, and all dependent package will automatically be installed
10. Good Node Packages Connect The middleware framework for node: Logging, Cookies, Sessions, Cache, response time … Express Built on Connect. Essentially all the libraries that people are used to when doing server side development (such asp.net) (Routing, content negotiations, configurations, etc) Socket.io “Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It's care-free realtime 100% in JavaScript.” (essentially synthetically do “sockets” in HTTP) Twitternode A complete node twitter client API wrapper supporting full JSON streams.
11.
12. You do many medium size payloads that could benefit from asynchronous processing
13.
14. So what have we learnt so far? Node.JS is using non-blocking, event-based (asynchronous) engine to deliver a much more scalable server Javascript is a really natural fit for event-based programming
15. Events in Node.js Relies on event-loop system Should be familiar for all developers (.net …) who used events & delegates or others who are familiar with concept of callbacks. Javascript is a really natural fit for event-based programming Builds on anonymous functions (lamba*) * Tom will do a L&L on advanced JS (closure, Lambda) concepts shortly
19. References Web faction blog http://blog.webfaction.com/a-little-holiday-present Understanding event loops and writing great code for node.js http://developer.yahoo.com/blogs/ydn/posts/2010/10/understanding-the-event-loops-and-writing-great-code-for-node-js-part-1/ A Not Very Short Introduction To node.js http://blog.jayway.com/2011/05/15/a-not-very-short-introduction-to-node-js/ Comet with node.js and V8 (amix) http://www.slideshare.net/amix3k/comet-with-nodejs-and-v8 Introduction to node.js (JacekBecela) http://www.slideshare.net/jacekbecela/introduction-to-nodejs Node.JS references http://nodejs.org/ Bex Huff http://bexhuff.com/