What are we trying to observe? Raw object data.
// Objects
var obj = { id: 2 };
obj.id = 3; // obj == { id: 3 }
 
// Arrays
var arr = ['foo', 'bar'];
arr.splice(1, 1, 'baz'); // arr == ['foo', 'baz'];
| app.all('*', function (req, res, next) { | |
| res.header("Access-Control-Allow-Origin", req.headers.origin); | |
| res.header("Access-Control-Allow-Credentials", true); | |
| res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); | |
| res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type, Authorization, Content-Length"); | |
| if (req.method == 'OPTIONS') { | |
| return res.send(200); | |
| } | 
What are we trying to observe? Raw object data.
// Objects
var obj = { id: 2 };
obj.id = 3; // obj == { id: 3 }
 
// Arrays
var arr = ['foo', 'bar'];
arr.splice(1, 1, 'baz'); // arr == ['foo', 'baz'];
| (function (root) { | |
| var type = function (o) { | |
| // handle null in old IE | |
| if (o === null) { | |
| return 'null'; | |
| } | |
| // handle DOM elements | 
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
| <title>Single-Column Responsive Email Template</title> | |
| <style> | |
| @media only screen and (min-device-width: 541px) { | |
| .content { | 
| gifify() { | |
| if [[ -n "$1" ]]; then | |
| if [[ $2 == '--good' ]]; then | |
| ffmpeg -i $1 -r 10 -vcodec png out-static-%05d.png | |
| time convert -verbose +dither -layers Optimize -resize 600x600\> out-static*.png GIF:- | gifsicle --colors 128 --delay=5 --loop --optimize=3 --multifile - > $1.gif | |
| rm out-static*.png | |
| else | |
| ffmpeg -i $1 -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > $1.gif | |
| fi | |
| else | 
| wget http://nodejs.org/dist/v0.10.5/node-v0.10.5-linux-arm-pi.tar.gz | |
| cd /usr/local | |
| sudo tar xzvf ~/node-v0.10.5-linux-arm-pi.tar.gz --strip=1 | |
| vi ~/.bash_aliases | |
| export PATH=$PATH:/usr/local/bin/node | |
| bash | |
| node -v | 
| var questions = [ | |
| { id:'fname', text:'First Name', answerType:'str' }, | |
| { id:'lname', text:'Last Name', answerType:'str' }, | |
| { id:'age', text:'Age', answerType:'int' }, | |
| { id:'weight', text:'Weight', answerType:'float' } | |
| ] | |
| function ask(question, callback) { | |
| var stdin = process.stdin, stdout = process.stdout; | 
Work in progress, I'll write this up properly when I'm done.
Almost all credit goes to @maxogden for putting me on to this and pointing me in the right direction for each of these items.
Prerequisites:
| var EventEmitter = require('events').EventEmitter; | |
| var e = Object.create(EventEmitter.prototype); | |
| e.on('echo', console.log); | |
| e.emit('echo', 'foo'); | 
| // includes bindings for fetching/fetched | |
| var PaginatedCollection = Backbone.Collection.extend({ | |
| initialize: function() { | |
| _.bindAll(this, 'parse', 'url', 'pageInfo', 'nextPage', 'previousPage'); | |
| typeof(options) != 'undefined' || (options = {}); | |
| this.page = 1; | |
| typeof(this.perPage) != 'undefined' || (this.perPage = 10); | |
| }, | |
| fetch: function(options) { |