Skip to content

Instantly share code, notes, and snippets.

View boutell's full-sized avatar

Tom Boutell boutell

View GitHub Profile
@boutell
boutell / gist:11055808
Last active August 29, 2015 14:00
Verify server is at least mongodb 2.6
self.db.command({ 'serverStatus': 1 }, function(err, result) {
if (err) {
return callback(err);
}
var versions = result.version.split(/\./);
if ((versions[0] < 2) || ((versions[0] == 2) && (versions[1] < 6))) {
return callback(new Error('\n\nMONGODB TOO OLD: your server must be at least MongoDB 2.6.0.\nYou currently have: ' + result.version));
}
return callback(null);
});
@boutell
boutell / gist:3be15e4b5c72597db273
Created June 6, 2014 15:47
nginx redirect example
server {
listen 80;
server_name oldname;
location / {
rewrite ^(.*)$ http://newname$1;
}
}
@boutell
boutell / gist:bf6bf1ae22dae2d77cc1
Created June 6, 2014 17:36
npm guru meditation with 200 OK result code
npm ERR! <?xml version="1.0" encoding="utf-8"?>
npm ERR! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
npm ERR! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
npm ERR! <html>
npm ERR! <head>
npm ERR! <title>200 OK</title>
npm ERR! </head>
npm ERR! <body>
npm ERR! <h1>Error 200 OK</h1>
npm ERR! <p>OK</p>
0 info it worked if it ends with ok
1 verbose cli [ 'node', '/Users/boutell/npm/bin/npm', 'publish' ]
2 info using npm@2.0.0-beta.0
3 info using node@v0.10.28
4 verbose node symlink /usr/local/bin/node
5 verbose publish [ '.' ]
6 verbose cache add [ '.', null ]
7 verbose cache add spec="." args=[".",null]
8 verbose cache add local package /Users/boutell/src/apostrophe-snippets
9 silly lockFile 3a52ce78- .
for(var i = begin; i <= end; i++) {
pushOne(i);
}
function pushOne(i) {
q.push({name: 'Artist: ' + i}, function (err) {
console.log('wla' + i)
whop.lookupArtist(i)
});
}
@boutell
boutell / gist:e63e2f7cc7d418b2dc19
Created September 8, 2014 16:11
Area with lots of controls needing icons
{{ aposArea(page, 'content2', {
controls: [
'Bold',
'Italic',
'Underline',
'Strike',
'Subscript',
'Superscript',
'RemoveFormat',
'NumberedList',
@boutell
boutell / network-generator.js
Created November 8, 2014 16:36
Network generators in javascript
/* jshint node:true */
var generators = {};
function range(first, last) {
var c = {
first: first,
last: last,
now: first,
step: function(c) {
@boutell
boutell / gist:e2acfca73490f1328242
Created December 7, 2014 17:00
nginx reverse proxy for node app in which nginx serves static files directly. Also multiprocess-ready with round robin load balancing.
upstream upstream-EXAMPLE {
server localhost:3000;
# To use additional cores, edit your data/port file
# to read 3000 3001 3002 3003, and list the rest
# of them here too (commented out in this example).
# Your site will listen on one port per process
# automatically. Requires latest deployment files
# as found in sandbox
#server localhost:3001;
#server localhost:3002;
cd /opt/stagecoach/apps/fandm/current
node app fandm:refresh-directory --parallel=4
@boutell
boutell / gist:0f29e90a7199e40a1df0
Created March 1, 2015 23:46
middleware to unify req.body, req.query, req.params as req.params
app.use(function(req, res, next) {
var params = {};
_.merge(params, req.body || {}, req.query || {}, req.params || {});
req.params = params;
return next();
});