Skip to content

Instantly share code, notes, and snippets.

@seansullivan
seansullivan / gist:0ff18287f24820235a7f
Created May 19, 2015 01:41
getPrimaryIpFromMongoConnection
def getPrimaryIpFromMongoConnection(mongoConnection):
# mongoConnection = MongoClient(aMongoServerIp, replicaSet=replicaSetName)
replicaSetStatus = mongoConnection.admin.command('replSetGetStatus')
for member in replicaSetStatus[u'members']:
if member[u'stateStr'] == u'PRIMARY':
return member[u'name']
return False
@seansullivan
seansullivan / gist:836613655c3b593ea70e
Created August 28, 2014 18:22
Lightweight Node.js HTTPS Server
var https = require('https');
var http = require('http');
var fs = require('fs');
var express = require('express');
var options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
[user]
name = Sean Sullivan
email = myemail
[color]
diff = auto
status = auto
branch = auto
[alias]
@seansullivan
seansullivan / gist:9924729
Last active August 29, 2015 13:57
Setting the locals for an Express render() as the response body for testing purposes
/*
// Route defined as:
app.get('/test/login', function (req, res) {
res.render('login/login', {something: 'here'});
});
*/
var localsAsResponseEngine = function (pathName, locals, cb) {
delete locals._locals;
delete locals.settings;
@seansullivan
seansullivan / gist:9773730
Created March 25, 2014 23:29
Retrieving documents w/ promises - Q.ninvoke
var Q = require('q');
var documents = {
'a': "Document A",
'b': "Document B",
'c': "Document C"
};
/**
* get a document by key
@seansullivan
seansullivan / gist:9768758
Created March 25, 2014 18:59
Promise from a promise
var Q = require('q');
var getSomethingGood = function () {
var deferred = Q.defer();
Q.fcall(getSomethingElse)
.then(function (result) {
console.log(result);
setTimeout(function () { // get db result
@seansullivan
seansullivan / gist:9417054
Created March 7, 2014 18:29
Multi-line string in JavaScript -- heredoc
var string = (<r><![CDATA[
The text string goes here. Since this is a XML CDATA section,
stuff like <> work fine too, even if definitely invalid XML.
]]></r>).toString();
@seansullivan
seansullivan / gist:9381705
Created March 6, 2014 03:25
Q Promise Chain that deals with sync and async functions.
var q = require('q');
var counter = 0,
current = counter,
syncFunc = function (result) {
current = counter++;
console.log('in sync func '+current);
return 'from func '+current;
},
asyncFunc = function (result, callback) {
@seansullivan
seansullivan / gist:9381057
Created March 6, 2014 02:26
Simple promise chain w/ q using result from previous function
var q = require('q');
var method1 = function (result) {
var deferred = q.defer();
// an async method
setTimeout(function () {
console.log('method1');
deferred.resolve('from method1');
}, 0);
@seansullivan
seansullivan / gist:8172122
Created December 29, 2013 16:38
Load image into canvas
<canvas id="canvas"></canvas>
<script type="text/javascript">
var can = document.getElementById('canvas');
var ctx = can.getContext('2d');
var img = new Image();
img.onload = function(){
can.width = img.width;
can.height = img.height;
ctx.drawImage(img, 0, 0, img.width, img.height);