Skip to content

Instantly share code, notes, and snippets.

View johnhunter's full-sized avatar
🌊
Working on net-zero energy

John Hunter johnhunter

🌊
Working on net-zero energy
View GitHub Profile
@johnhunter
johnhunter / html-template.html
Created March 14, 2012 06:56
Basic html template
<!DOCTYPE html>
<!--[if lte IE 6 ]><html class="ie ie6 non-js"><![endif]-->
<!--[if IE 7 ]><html class="ie ie7 non-js"><![endif]-->
<!--[if IE 8 ]><html class="ie ie8 non-js"><![endif]-->
<!--[if gte IE 9 ]><html class="ie ie9 non-js"><![endif]-->
<!--[if !IE]>-->
<html class="non-js">
<!--<![endif]-->
@johnhunter
johnhunter / String.subs.js
Created April 17, 2012 11:33
Simple string interpolation
// use: String.subs('There is no ${foo} foo', { foo: 'bar' })
String.subs = String.subs || function (str, props) {
return str.replace(/\$\{([^{}]*)}/g, function (a, b) {
var r = props[b];
return typeof r === 'string' || typeof r === 'number' ? r : a;
});
};
@johnhunter
johnhunter / gist:2437138
Created April 21, 2012 13:45
Add a local repo to a remote
Create a git repo and push to remote:
mkdir new_git_repo
cd new_git_repo
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@my.remote.com/new_git_repo.git
git push -u origin master
@johnhunter
johnhunter / observer.js
Created May 15, 2012 21:40
An observable decorator
/**
* Creates or decorates an object with observable behavior.
* @param {[type]} o object to decorate
* @return {[type]} the observable object
*/
function makeObservable (o) {
var undef;
o = o || {};
@johnhunter
johnhunter / Espresso Soda.tmTheme
Created June 16, 2012 19:22
Sublime Espresso Soda theme with added styles for sublime linter.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Espresso Soda</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
@johnhunter
johnhunter / gist:3333533
Created August 12, 2012 18:14
Git configs for a submodule with sparse-checkout filtering
Assuming you have created a submodule 'mysub' in repo 'myrepo'
Set the sparse checkout config property in the submodule
myrepo/.git/modules/mysub/config:
[core]
repositoryformatversion = 0
filemode = true
bare = false
@johnhunter
johnhunter / parameterized-template.html
Created September 16, 2012 16:01
Example Knockout parameterized template
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ko: parameterized template</title>
<style type="text/css">
li.inline {
display: inline-block;
@johnhunter
johnhunter / composed-binding.js
Created September 16, 2012 16:04
Example Knockout composite binding
/*
an example of how we can reuse common sets of bindings
by wrapping them in a single custom binding
*/
ko.bindingHandlers.myCompositeBinding = {
init: function(element, valueAccessor, allBindingsAccessor, vm){
ko.applyBindingsToNode(element, {
text: vm.text,
hidden: vm.isHidden,
@johnhunter
johnhunter / function.inherit.js
Created September 16, 2012 16:06
Nice implementation of Crockford's beget / object.create
/**
* Nice implementation of Crockford's beget / object.create
* @param {Function} base - the base constructor
* @return undefined
* example: Dog.inherit(Animal);
*/
Function.prototype.inherit = function (base) {
function Inheriter() { }
Inheriter.prototype = base.prototype;
this.prototype = new Inheriter();
@johnhunter
johnhunter / promise-example.js
Created October 16, 2012 21:06
using jquery promise
// using a promise
$.when(doStuff('eat'), doStuff('sleep')).then(function(a, b){
console.log(a + ' and ' + b +' are done');
});
// define the function that returns a promise
function doStuff (subject) {
var defer = new $.Deferred();