Skip to content

Instantly share code, notes, and snippets.

@jabney
jabney / font-awesome.json
Created May 22, 2015 03:57
Font Awesome JSON Entity Reference
{"cc": "", "bookmark": "", "venus-mars": "", "arrow-circle-o-down": "", "comment-o": "", "long-arrow-left": "", "arrow-right": "", "delicious": "", "chevron-circle-left": "", "bullhorn": "", "outdent": "", "jpy": "", "drupal": "", "hdd-o": "", "hand-o-left": "", "pinterest": "", "plane": "", "question": "", "child": "", "circle-o": "", "italic": "", "meanpath": "", "subway": "", "google-plus": "", "angle-up": "", "star": "", "star-half-empty": "", "facebook-official": "", "youtube-square": "", "rss": "", "toggle-off": "", "list-ol": "", "dot-circle-o": "", "copyright": "", "user": "", "key": "", "minus-square-o": "", "mobile": "", "table": "", "columns": "", "bolt": "", "fighter-jet": "&
@jabney
jabney / gen_fontawesome.py
Last active August 29, 2015 14:21
Python utility for converting Font Awesome cheatsheet to a JSON file
"""
Generate fontawesome icon set in JSON format from website cheatsheet.
http://fortawesome.github.io/Font-Awesome/cheatsheet/
Usage: python gen_fontawesome.py
Output: font-awesome.json
{icon_name: entity_reference, ...}
Author: James Abney
Date: 2015-05-21
@jabney
jabney / factory-inheritance.js
Last active August 29, 2015 14:22
JavaScript Factory Inheritance
(function() {
'use strict';
// Create a factory function (a function that returns an object).
function aFactory() {
// Create a data store.
var _data = [];
// Add supplied arguments to the data store.
if (arguments.length)
@jabney
jabney / post-transform-coords.js
Last active August 29, 2015 14:23
Javascript function to return post-transform coordinates of an element.
// Return the post-transform coords of an element,
// assuming that proper pre-transform coords are supplied.
function getElementCoords(element, coords) {
var ctm = element.getCTM(),
xn = ctm.e + coords.x*ctm.a,
yn = ctm.f + coords.y*ctm.d;
return { x: xn, y: yn };
};
var circle = document.getElementById('svgCircle'),
import os
import re
import gzip
import base64
import json
from glob import glob
from argparse import ArgumentParser
from KnoDB.crawler.scc import case_parser
from KnoDB.crawler import bcca
@jabney
jabney / binary-search.js
Last active May 6, 2017 02:04
Binary search with comparator
// The default comparator is for any values that can be
// compared with '==', '<', '<=', '>', '>='.
function defaultComparator(candidate, target) {
if (target < candidate) {
return -1
} else if (target > candidate) {
return 1
} else {
return 0
}
@jabney
jabney / keyframeInterpolateBinary.js
Created May 6, 2017 15:42
keyframeInterplation function using binary search
function keyframeInterpolate(keyframes, time, timing, lib) {
const first = 0
const last = keyframes.length - 1
// Clamp time to [0, 1]
time = Math.max(Math.min(time, 1), 0)
if (!Array.isArray(keyframes) || !keyframes.length) {
return lib.zero()
}
@jabney
jabney / micro-subject.js
Last active February 15, 2024 17:03
micro-subject: provide basic subscribe/notify/unsubscribe functionality in a dozen or so lines of code
/**
* Provide basic subscribe/notify/unsubscribe functionality in a
* dozen or so lines of code.
*/
/**
* @template T
* @typedef {(value?: T) => void} ObserverFn
*/
@jabney
jabney / micro-redux.js
Last active February 15, 2024 17:03
micro-redux: a minimal implementation of Redux createStore, with thunkish behavior added in
/**
* Minimal implementation of Redux createStore, with thunkish behavior.
*/
import subject from './micro-subject' // see micro-subject.js gist
/**
* @template T
* @typedef {import('./subject').Subject<T>} Subject
*/
/**
@jabney
jabney / micro-react-redux.js
Last active January 22, 2020 20:27
micro-react-redux: a minimal implementation of react-redux style provider and connect function
/**
* Minimal implementation of react-redux style provider and connect function.
*/
import React, { useState, useEffect, useContext } from 'react'
const StoreContext = React.createContext(null)
/**
* Wraps root component for providing store context, e.g.,
*