1. Features
1.1. see slides:
1.2. see docs:
2. use package.json
2.1. follow common.js
3. usually doing exports in index.js
4. remember to expose the app using
4.1. module.exports.my_app = app;
5. example start web server using express
6. npm will install dependencies in node_modules
6.1. you need to know javascript (at least to read) because of the need to debug & handle failures
6.2. because we did require('<file name')
6.2.1. without relative path
7. about
8. sync threads vs async events
8.1. cons
8.1.1. sync threads
8.1.1.1. context switching
8.1.1.2. memory (stacks)
8.1.1.3. synchronization
8.1.1.4. blocking I/O
9. same language/tools/staff
10. performance & scalability much much better
10.1. eg
10.1.1. Clarck(?)
11. pros
11.1. simplicity
11.2. code migrations
12. Japanese twitter clone, that dumped their JBoss async-io based servers farm & improved scalability with 1 server running 8 node.js processes
13. why coffeescript
13.1. readable great syntax
13.2. solves the error-prone javascript behavior
13.3. community
13.3.1. frameworks solving many needs
13.3.2. large user base
13.3.3. IRC channel
14. getting started
14.1. modules
14.1.1. asdasd
14.1.1.1. single file
14.1.2. complex
15. מצמצמצ.js
15.1. Single-threaded event-driven process with event loop
15.1.1. The claim is that while a 10ms call to DB is waiting, millions of operations can run
15.2. arch
15.2.1. standard library
15.2.2. node bindings
15.2.3. libio, libev, ...
15.2.4. v8
15.3. async events
15.3.1. CPU-intensive blocks the events loop
15.3.1.1. eg, service giving fibonacci answers, when called with large n
15.3.1.2. though, when modelled in EDA, you can solve it
15.3.1.2.1. example, EDA implementation of fibonacci
16. CoffeeScript
16.1. application
16.1.1. update viewer, data for viewer in sockets if viewer.id isnt socket.id