Skip to content
View gist:850002bdcecefa355504
layout author title
Getting Good at Vim

I have used Vim to write code for about a year, and I can confidently say that Vim does two things for me well. The most obvious thing is that it cuts down on my text editing time. If you consider the amount of time you spend highlighting with the mouse and then returning back to the keyboard to edit text, daily, over the course of a year that time begins to adds up.

View barcamp_overlay.html
<!DOCTYPE html>
<style type="text/css">
html {
background-image: url(;
background-size: cover;
body {
padding: 0;
View gist:5832216
var sys = require('child_process');
function commandExists(cmd) {
var exists = false;
sys.exec(cmd, function(err) {
if(err === null) // of maybe: if(!err instanceof Error)
exists = true;
View gist:4252663
error: Error running command start
error: Nodejitsu Error (500): Internal Server Error
error: There was an error while attempting to deploy the app
error: tar exited with code: 2
error: Error output from Haibu:
error: Error: tar exited with code: 2
error: at ChildProcess.Tar.init (/root/haibu-orchestra/node_modules/haibu/lib/haibu/repositories/tar.js:58:26)
error: at ChildProcess.EventEmitter.emit (events.js:91:17)
View mongoose-single-subdoc.js
// mongoose doesn't like single embedded schemas
// it likes them as arrays of an embedded schema
// so this is a cheater hack to fake a single subdoc
// it creates a field named `_yourField` and a virtual named `yourField`
// and it makes sure the array keeps just one element in it
var models = require('models')
, ChildSchema = models.ChildSchema
, singleSubdoc = require('mongoose-single-subdoc');
View mongoose-unique-ref.js
module.exports = function(schema, options) {
schema.method('addUniqueRef', function(field, item) {
if(this[field].indexOf(item) < 0) this[field].push(item);
schema.method('removeUniqueRef', function(field, item) {
View massAssign.js
var mongoose = require('mongoose');
module.exports = exports = function(schema, options) {
schema.method('massAssign', function(fields) {
for(var i in schema.tree) {
if(schema.tree[i].protect || fields[i] == null) continue;
this[i] = fields[i];
schema.static('massAssign', function(fields) {
View singleSubDoc.js
models.util = {
singleSubDoc: function(schema, virtualName) {
var realName = '_' + virtualName;
.get(function() {
if(this[realName].length) return this[realName][0];
else return null;
.set(function(value) {
this[realName] = [value];
helpers =
test: (templateName) ->
addHelpers = (handlebars) -> handlebars.registerHelper name, fn for name, fn of helpers
# server-side
if module? && module.exports?
module.exports = addHelpers
class My.Model extends Backbone.Model
sync: (method, model, options) ->
if xhr = this["_#{method}Xhr"]
this["_#{method}Xhr"] = Backbone.sync method, model, options
Something went wrong with that request. Please try again.