Skip to content

Instantly share code, notes, and snippets.

View benmccormick's full-sized avatar

Ben McCormick benmccormick

View GitHub Profile
@benmccormick
benmccormick / contestpicker.py
Created July 27, 2014 17:26
Random Method of selecting 2 contestants from a list
import random
# Implementation of Resevoir Algorithm, see
# http://stackoverflow.com/a/3540315/1424361
def random_line(contestants):
line = next(contestants)
line2 = line
# go through each line, check to see if we
# should select it, with decreasing probability
# over time
@benmccormick
benmccormick / .jshintrc
Created October 13, 2014 02:46
My jsHint Configuration
{
"bitwise":true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 4,
"latedef":true,
"newcap": true,
"nonew":true,
"quotmark":"single",
@benmccormick
benmccormick / config.js
Created January 12, 2015 15:09
Configuration file to load a requirejs config both in gulp and the browser
/* jshint ignore:start */
/** This file is a bit of a hack to make the requireJS build paths available
* both in the browser and for gulp. There's some ugliness requires to make
* it loadable/usable in both environments.
**/
var requirePaths = {
paths: {
jquery: 'vendor/jquery/jquery',
jqueryui: 'vendor/jquery/jquery.ui',
@benmccormick
benmccormick / mnobjectradio.shim.js
Created March 8, 2015 17:35
Declarative Radio handling for Marionette.Object
/* This is an experiment to shim support for handling Backbone.Radio
Events, Commands, and Requests onto Mn.Object.
Right now it only supports Object and not other Mn classes due to annoyances
of overriding the constructors of the different classes
It's also written in ES6 and uses my own import names for modules, so
it probably will not work for most people without some alteration as a result
*/
import * as Mn from 'marionette';
import * as Radio from 'radio';
@benmccormick
benmccormick / .vimrc
Created June 3, 2015 04:01
Ben Mccormick's .vimrc June 2015
"Ben McCormick's vimrc
" Plugins
" =============
"Setup Vundle For Package Management
"Vundle begins here, turn off filetype temporarily
filetype off
"Add vundle and any other packages not installed through vundle to our lookup
@benmccormick
benmccormick / palindrome.coffee
Created April 14, 2013 17:40
Submission for Problem C of google code jam Qualification Round 2013 https://code.google.com/codejam/contest/2270488/dashboard#s=p2
fs = require('fs')
writevalue = (i, val)->
output += "Case #"+i+": "+val+"\n"
# is a palindrome (expects a string)
isPalindrome = (num) ->
reversed = (num).split("").reverse().join("")
num is reversed
@benmccormick
benmccormick / Palindrome.java
Created April 14, 2013 22:39
A java equivalent of my coffeescript solution for the Google Code Jam qualification problem
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Palindrome {
public static void main(String[] args) throws Exception
@benmccormick
benmccormick / knockout-revertible.js
Last active December 17, 2015 02:38
Revertible Observable
/* Small Knockout Extension to allow for canceling/confirming
* changes to the view model. Defaults to the changed option. Based on code sample from Ryan Niemeier
* http://www.knockmeout.net/2011/03/guard-your-model-accept-or-cancel-edits.html
*
* Please note: You should not use this unless you are
* explicitly confirming or resetting the values in every scenario before you
* reference them again. An unwanted revert may occur if you make changes without confirming and then cancel at a later point.
*/
//wrapper to an observable that requires accept/cancel
@benmccormick
benmccormick / knockout-protected.js
Last active December 17, 2015 02:38
Protected Observables by Ryan Niemeyer
/* Small Knockout Extension to allow for canceling/confirming
* changes to the view model Originally from:
* http://www.knockmeout.net/2011/03/guard-your-model-accept-or-cancel-edits.html
*/
//wrapper to an observable that requires accept/cancel
ko.protectedObservable = function(initialValue) {
//private variables
var _actualValue = ko.observable(initialValue),
_tempValue = initialValue;
@benmccormick
benmccormick / timsetup.sh
Last active December 17, 2015 18:09
A quick script to get tim setup on mint
#!/bin/bash
# This is a script to set up a Linux Mint environment for Tim's development this summer. It is by no means complete, but is just meant to get started with some of the basics for java development and the courage project.
#set your username here
USER=ben
#update available packages
apt-get update
#installing postgres
apt-get -y install postgresql