Skip to content

Instantly share code, notes, and snippets.


Hamish Hossack hamishhossack

View GitHub Profile
hamishhossack / 0_reuse_code.js
Last active Aug 29, 2015
Here are some things you can do with Gists in GistBox.
View 0_reuse_code.js
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
hamishhossack /
Last active Aug 29, 2015 — forked from jookyboi/
CSS libraries and guides to bring some order to the chaos.


  • 960 Grid System - An effort to streamline web development workflow by providing commonly used dimensions, based on a width of 960 pixels. There are two variants: 12 and 16 columns, which can be used separately or in tandem.
  • Compass - Open source CSS Authoring Framework.
  • Bootstrap - Sleek, intuitive, and powerful mobile first front-end framework for faster and easier web development.
  • Font Awesome - The iconic font designed for Bootstrap.
  • Zurb Foundation - Framework for writing responsive web sites.
  • SASS - CSS extension language which allows variables, mixins and rules nesting.
  • Skeleton - Boilerplate for responsive, mobile-friendly development.


hamishhossack / TwigTemplateManager.js
Created Jul 27, 2015
Override Marionette With Twig Templates (use cache templates)
View TwigTemplateManager.js
var loadExistingTwigTemplate = function (templateId) {
return Twig.twig({
ref: templateId
Marionette.TemplateCache.prototype.compileTemplate = function (template) {
switch (template.type) {
case 'twig/template':
// first, see if the template is already loaded
hamishhossack / CropManager.js
Created Jul 27, 2015
Image Cropping Manager (needs optimising)
View CropManager.js
var Crop = {
elements: {
editor: null,
container: null,
slider: null,
img: null,
overlay: null,
preview: null
View isURL.js
var isURL = function isUrl(s) {
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/'Is URL ? ', regexp.test(s));
return regexp.test(s);
hamishhossack / GoogleAS.js
Created Jul 27, 2015
Backbone Integration for googleAdSense
View GoogleAS.js
window.adsbygoogle = window.adsbygoogle || [];
var async = ( typeof c != "undefined" && !_.isUndefined(c.script) ) ? c.sript : $.getScript;
var GoogleAS = new Backbone.Model({
id: 'GoogleAS',
client: 'pub-9565436045946419',
currentCount: 0,
maxSlots: 3,
hamishhossack / StorageManager.js
Created Jul 27, 2015
Local Storage Manager (timestamped, extra functionality, session & local storage) Deps: [underscore]
View StorageManager.js
var CacheManager = window.CacheManager = function (storage) {
var name = '';
if (typeof storage !== "string") {
throw new TypeError('The name of storage needs to be a character string.');
name = _.capitalize(storage) + 'Storage';
hamishhossack / SimpleHTTPServer
Created Aug 3, 2015
Simple web server on MAC
View SimpleHTTPServer
python -m SimpleHTTPServer 8000
hamishhossack / gist:96f8b6f766934d85c2d4
Created Oct 20, 2015 — forked from eparreno/gist:1845561
Install libmagic on Mac OS X via homebrew
View gist:96f8b6f766934d85c2d4
$ brew install libmagic
$ brew link libmagic (if the link is already created is going to fail, don't worry about that)
$ env ARCHFLAGS="-arch x86_64" gem install ruby-filemagic -- --with-magic-include=/usr/local/include --with-magic-lib=/usr/local/lib/
hamishhossack / watermark.js
Created May 3, 2016
Batch watermark images with GM
View watermark.js
var Q = require('q');
var async = require('async');
var fs = require('fs');
var gm = require('gm');
var join = require('path').join;
var readdir = Q.denodeify(fs.readdir);
var dir = join(__dirname, 'images');
var dest = join(__dirname, 'dest');
var logo = join(__dirname, 'resources/tlf-logo-medium.png');