Skip to content

Instantly share code, notes, and snippets.

@subimage
subimage / backbone.prototype.js
Created Jun 8, 2012
Backbone.js 0.9.1 that works with PROTOTYPE.js
View backbone.prototype.js
// Backbone.js 0.9.1
// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Backbone may be freely distributed under the MIT license.
// For all details and documentation:
// http://backbonejs.org
//
// HACKED TO BE PROTOTYPE.JS COMPATIBLE BY [SUBIMAGE AT GMAIL DOT COM]
// REQUIRES PROTOTYPE >= 1.7.1
// !!! TODO needs tests!
@subimage
subimage / array_chunk.js
Created Apr 19, 2012
Javascript array chunk
View array_chunk.js
// Splits an array into equal sized chunks
Array.prototype.chunk = function(pieces) {
pieces = pieces || 2;
var len = this.length;
var mid = (len/pieces);
var chunks = [];
var start = 0;
for(var i=0;i<pieces;i++) {
var last = start+mid;
if (!len%pieces >= i) {
@subimage
subimage / jquery-2.1.1.min.js
Last active Aug 20, 2018
Refined version of @nbriz's "Leave Facebook" collection
View jquery-2.1.1.min.js
/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,
@subimage
subimage / mysql-backup.sh
Last active May 9, 2017
UNIX bash shell script to store 30 days worth of MySQL backups on Amazon s3.
View mysql-backup.sh
#!/bin/bash
# Backs up MySQL databases with zero downtime using Percona Xtrabackup.
# Stores 30 days worth on Amazon s3.
# These {{ double bracket }} things are Ansible/Jinja (ansible-vault) variables.
# Fill them in for your own usage.
MYSQLROOT=root
MYSQLPASS="{{ mysql_root_pass }}"
S3BUCKET={{ mysql_backup_bucket }}
@subimage
subimage / thread_counter.rb
Last active Jul 31, 2016
A threaded counter implementation in Ruby
View thread_counter.rb
#!/usr/bin/env ruby
require 'singleton'
require 'thread'
# Test to see if I remember how to use threads in Ruby properly
class ThreadCounter
include Singleton
NUM_THREADS = 4
@subimage
subimage / check_image_hotlink_status.rb
Last active Jun 17, 2016
Check if an image can be hotlinked, or should be downloaded/not used.
View check_image_hotlink_status.rb
@subimage
subimage / backbone-prototype.js
Last active Dec 22, 2015
A Prototype.js => 1.7.1 compatible backbone.js 0.9.1 Used in production for Cashboard (http://cashboardapp.com)
View backbone-prototype.js
// Backbone.js 0.9.1
// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
// Backbone may be freely distributed under the MIT license.
// For all details and documentation:
// http://backbonejs.org
//
// HACKED TO BE PROTOTYPE.JS COMPATIBLE BY [SUBIMAGE AT GMAIL DOT COM]
// REQUIRES PROTOTYPE >= 1.7.1
@subimage
subimage / backbone-cashboard_extensions.js
Created Sep 12, 2013
Extensions used in production for Cashboard (http://cashboardapp.com) that allow for serialized request queue, amongst other nice things. For use with backbone-prototype.js (https://gist.github.com/subimage/6532044) Used in production for Cashboard (http://cashboardapp.com)
View backbone-cashboard_extensions.js
// Overrides Backbone.js features for our specific use in Cashboard.
(function(){
// How many times do we try to re-contact the server
// if we're offline or the server is before erroring out?
var BACKBONE_RETRY_ATTEMPTS=99;
// Max timeout should be 10 seconds.
var MAX_TIMEOUT=10000;
// Helper function to get a value from a Backbone object as a property
// or as a function.
@subimage
subimage / .autotest.rb
Created Feb 8, 2013
Autotest mapping file
View .autotest.rb
Autotest.add_hook :initialize do |at|
# Ignore these files
%w{
.hg .git .svn stories tmtags Rakefile Capfile README .html
spec/spec.opts spec/rcov.opts vendor/gems autotest svn-commit .DS_Store
}.each {|exception|at.add_exception(exception)}
# Map concerned_with files properly.
# app/models/[model]/[concern].rb should map to
# test/unit/[model]/[concern]_test.rb
@subimage
subimage / pdf_helper.rb
Created Feb 7, 2013
Rails module that uses prince.rb to generate PDF files
View pdf_helper.rb
# We use this chunk of controller code all over to generate PDF files.
#
# To stay DRY we placed it here instead of repeating it all over the place.
#
module PdfHelper
require 'prince'
private
# Makes a pdf, returns it as data...
def make_pdf(template_path, pdf_name, landscape=false)