Skip to content

Instantly share code, notes, and snippets.

View xjamundx's full-sized avatar

Jamund Ferguson xjamundx

View GitHub Profile
@xjamundx
xjamundx / models.js
Created November 2, 2011 02:20
Sample Mongoose Model File For Use With MongoHQ
var db = require('./config/db')
var mongoose = require('mongoose')
var Schema = mongoose.Schema
var Review = new Schema({
article : String
, count : Number
, date : { type: Date, default: Date.now }
, images : [String]
, industry : String
@xjamundx
xjamundx / db.js
Created November 2, 2011 02:21
Sample Mongoose Config File For Use With MongoHQ
module.exports = {
user: "username",
pass: "password",
name: "yourdatabase",
host: "Flame.mongohq.com",
port: 27094
}
@xjamundx
xjamundx / sample-route.js
Created November 2, 2011 02:26
Sample Route Using Mongoose
var models = require('./models')
var mongoose = require('mongoose')
var Review = mongoose.model('Review')
var express = require('express')
var app = express.createServer()
// ... other requires
// ... config stuff
// simple route to get a paginated page by number
@xjamundx
xjamundx / jquery.meterPolyfill.js
Created November 8, 2011 00:20
jquery meter polyfill
// create polyfill
jQuery.fn.fakeMeter = function() {
// don't waste time if you don't need to
if (jQuery.fn.fakeMeter.supportsMeter) return $(this)
return $(this).each(function() {
var $meter = $(this)
@xjamundx
xjamundx / meterPolyfill.css
Created November 8, 2011 00:21
jquery meter polyfill css
/******************
* Meter PolyFill
******************/
meter {
display: inline-block;
color: transparent;
height: 16px;
width: 100px;
overflow: hidden;
background: #ededed; /* Old browsers */
@xjamundx
xjamundx / connect-db-logger.js
Created December 15, 2011 18:02
Use connect-logger to log to a database
// use like this
// var logger = require('connect-db-logger')
// app.use(logger.db("AppName"))
// RequestLog is super simple, but I don't provide it here
var express = require('express')
var logger = express.logger
var RequestLog = require('reports/model/RequestLog')
express.logger.token('route', function(req, res){
return req.route.path;
@xjamundx
xjamundx / uploadapp.js
Created January 18, 2012 04:45
file uploads with express and node.js
// middleware
app.use(express.bodyParser({ keepExtensions: true, uploadDir: __dirname + "/public/uploads" }))
// later
app.get('/photos', uploadFile, addPhoto)
// file is automatically saved to /public/uploads, let's just set
function uploadFile(req, res, next) {
if (req.files) {
req.body.url = "http://myawesomesite.com/" + req.files.file.path.split("/").slice(-2).join("/")
@xjamundx
xjamundx / logger.js
Created January 19, 2012 23:24
expres js db logging on top of connect-logger
// use it as a middleware like this
app.use(logger.db('appName')) // by default logs to a db and console.log
app.use(logger.db('appName', false)) // don't log to console.log
// logger.js
var express = require('express')
var logger = express.logger
var RequestLog = require('reports/model/RequestLog')
express.logger.token('route', function(req, res) {
var route = req.route || {}
@xjamundx
xjamundx / mongo-map-reduce-speed-test.js
Created January 19, 2012 23:48
mongo map reduce vs query speed test
// map reduce way is slow for querying a count, but fast for creating a new table (~20s)
map = function() {
if (this.alerts && this.alerts.length > 0 && this.apns) {
emit(new ObjectId(), {alerts: this.alerts, uuid: this.uuid, hiddenChannels: this.hiddenChannels, provider: this.provider})
}
}
reduce = function(){}
options = {out:{replace:"alertingUsers"}}
db.users.mapReduce(map, reduce, options)
db.alertingUsers.count() // 34554
@xjamundx
xjamundx / SassColorPalette.js
Created February 28, 2012 23:22
Sass Color Palette Generator
var $colors = $("#colors");
var url = "/css/sass/_colors.scss";
$.get(url, function(data) {
var lines = data.split("\n");
var line = "";
var parts = [];
for (var i = 0; i < lines.length; i++) {
line = lines[i].trim();
if (!line.match(/^\$/)) continue;