Skip to content

Instantly share code, notes, and snippets.

Array.prototype.forSome = function(callback, thisValue) {
if (typeof thisValue !== 'object') {
thisValue = null;
}
try {
for (var i = 0; i < this.length; i++) {
if (this.hasOwnProperty(i)) {
var returnValue = callback.call(thisValue, this[i], i, this);
if (typeof returnValue !== 'undefined') {
return returnValue;
function unescapeJSString(string) {
var named = {b: "\b", f: "\f", n: "\n", r: "\r", t: "\t", v: "\v"};
return string.replace(/\\(?:([bfnrtv])|u([0-9a-fA-F]{4})|x([0-9a-fA-F]{2})|([0-3][0-7]{0,2}|[0-7]{1,2})|([^]))/g, function(seq, name, hex4, hex2, oct, char) {
var hex;
if (name) { // e.g. \n
return named[name];
} else if (char) { // e.g. \"
return char;
} else if (hex = hex4 || hex2) { // e.g. \u0022 or \x22
return String.fromCharCode(parseInt(hex, 16));
@very
very / gist:3992939
Created November 1, 2012 10:24
Map definition with chaining
var Map = (function Map(method) {
if (typeof method === "function") {
Map.prototype[method.name] = method;
return Map;
}
if (!(this instanceof Map)) {
return new Map();
}
this.data = {};
})(function has(key) {
@very
very / gist:4005163
Created November 3, 2012 00:08
splitAt
function splitAt(string, index1, index2, etc) {
var parts = Array.prototype.slice.call(arguments);
parts[0] = 0;
for (var i = 0, l = parts.length; i < l; i++) {
parts[i] = string.substring(parts[i], parts[i + 1]);
}
return parts;
}
@very
very / gist:4005248
Created November 3, 2012 00:33
splitAt 2
function splitAt(string /* indexes... */) {
var i = 0, len = arguments.length, index = 0, parts = [];
while (i < len) {
parts[i] = string.substring(index, index = arguments[++i]);
}
return parts;
}
find . -iname "*.htm" -exec bash -c "iconv -f WINDOWS-1252 -t UTF-8 \"{}\" | html2text -utf8 -nometa -style pretty > \"`basename \"{}\" .htm`\".txt" \;
function createRandomGIF(width, height, colors) {
return {
width: width,
height: height,
resolution: 7,
colorTable: {
sorted: false,
colors: random(colors, 0x000000, 0xFFFFFF)
},
background: 0,
@very
very / gist:5632268
Last active December 17, 2015 15:29
function
sum
(
)
{
for
(
var
i
=
var behaviours = {
select: {
onstart: function(p) {
var viewer = this.workspace.viewer;
this.from = {
x: p.x - (p.x % viewer.gridSize),
y: p.y - (p.y % viewer.gridSize)
};
viewer.unselect();
},
@very
very / gist:6119816
Last active December 20, 2015 10:59
var behaviours = {
select: {
onstart: function(p) {
this.from = alignPos(this, p);
this.workspace.viewer.unselect();
},
onresume: function(p) {
if (this.from) {
this.mousemoved = true;
updateSelection(this, p);