Skip to content

Instantly share code, notes, and snippets.

View robbieferrero's full-sized avatar

Robbie Ferrero robbieferrero

View GitHub Profile
@robbieferrero
robbieferrero / gist:cd240c48f00b609e4c1c
Last active August 29, 2015 14:02
better console.log
['log', 'warn'].forEach(function(method) {
var old = console[method];
console[method] = function() {
var stack = (new Error()).stack.split(/\n/);
// Chrome includes a single "Error" line, FF doesn't.
if (stack[0].indexOf('Error') === 0) {
stack = stack.slice(1);
}
var args = [].slice.apply(arguments).concat([stack[1].trim()]);
return old.apply(console, args);

Keybase proof

I hereby claim:

  • I am robbieferrero on github.
  • I am robbieferrero (https://keybase.io/robbieferrero) on keybase.
  • I have a public key whose fingerprint is 26B9 05CB 2200 63ED E084 EBDA D557 D0C3 C2AA 4A27

To claim this, I am signing this object:

@robbieferrero
robbieferrero / gist:ddb338178fb489b83bf7
Created July 9, 2014 05:34
sublime text console.log
{ "keys": ["super+alt+l"],
"command": "insert_snippet",
"args": {
"contents": "console.log(${1:}$SELECTION);${0}"
}, "context":
[
{ "key": "selector", "operator": "equal", "operand": "source.js", "match_all": true }
]
},
@robbieferrero
robbieferrero / gist:3b3373b00eb5f4a09e7e
Created December 19, 2014 19:13
javascript is fun
[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]](([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+
@robbieferrero
robbieferrero / dabblet.css
Created March 6, 2012 20:06
image replacement technique
p {
background: url(http://www.google.com/images/errors/robot.png) no-repeat 0 0;
height: 400px;
width: 300px;
font: 0/0 a;
color: transparent;
text-shadow: none
}
@robbieferrero
robbieferrero / dice.js
Created September 30, 2012 20:32
Dice notation roller
var dice = function(d) {
var a = d.split('d'),
result = 0,
num = (typeof (a[0]-0) === 'number') ? a[0] : 1,
op = (a[1].match(/[\-\+]/)),
max = (op === null) ? a[1] : a[1].split(op[0])[0],
mod = (op !== null) ? op[0] + ' ' + a[1].split(op[0])[1] : '';
for (var i = num; i >= 0; i--) {
result += (Math.floor(Math.random() * (max)) + 1)
}
@robbieferrero
robbieferrero / gist:5776511
Last active December 18, 2015 11:29
angular widont filter
filter('widont', function() {
return function(text) {
return text.replace(/([^\s])\s+([^\s]+)\s*$/, "$1 $2")
}
});
@robbieferrero
robbieferrero / gist:5892231
Created June 29, 2013 18:55
record deletion test
it('should notify Record Deleted on deletion', function() {
spyOn(UserNotification, 'notifyShort');
spyOn(Utility, 'prompt').andReturn(resolveDummyPromiseAsync());
var task = new Task({
id: '1',
activitydate: moment().add('months', 1).format("YYYY-MM-DD")
});
var test = ListHelper.editFormFor(task, 'Test Deletion');
var form = $('#modal-edit-form');
form.find('.delete-object').trigger('vclick');
@robbieferrero
robbieferrero / slowtractor.js
Last active March 18, 2017 19:22
make protractor slow
var origFn = browser.driver.controlFlow().execute;
browser.driver.controlFlow().execute = function() {
var args = arguments;
// queue 100ms wait
origFn.call(browser.driver.controlFlow(), function() {
return protractor.promise.delayed(100);
});
@robbieferrero
robbieferrero / deepFlatten.js
Last active December 4, 2017 19:18
Deep Flatten
/**
* A utility function to flatten an array, nested to any depth.
* @param {Array} initialArray
*
*/
function deepFlatten(initialArray) {
return initialArray.reduce((acc, v) => {
return acc.concat(Array.isArray(v) ? deepFlatten(v) : v);
}, []);
}