Skip to content

Instantly share code, notes, and snippets.

@BriSeven
BriSeven / ngram.js
Last active November 21, 2017 00:18
Ngram utils
define("trigrams", ["underscore"], function(U) {
var trigramIndex = {};
var ngramcount = {
sort () {
var keys = U.keys(this.table),
g = this.table,
sorted;
keys = U.filter(keys, function (o) {
return typeof g[o] !== 'string';
});
@BriSeven
BriSeven / glob.js
Created May 15, 2012 08:05
Convert a unix style globbing pattern to a regular expression
//based on fnmatch.py
String.prototype.escape = function () {
"use strict";
var escapable = /[.\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
meta = { // table of character substitutions
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
@BriSeven
BriSeven / twixel.js
Created November 22, 2012 22:20
The pixtweet source code
(function () {
var base64URLAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
var baseRevMap = {};
var IDCounter = 0;
var pixelratio=1; //let's deal with the retina display bugs.
function ID (){
return IDCounter++;
}
base64URLAlphabet.split("").forEach(function (o, i) {
@BriSeven
BriSeven / hairlip.js
Last active December 19, 2015 22:29
Hairlip: A very very tiny mustache-like thing.
// Hairlip is
// a very tiny version of mustache that only does variable replacement
// and nothing else.
String.prototype.hairlip = function (o) {
"use strict";
return this.replace(/\{\{([a-zA-Z0-9_\-]*)\}\}/g, function (a, b) {
/*jslint unparam:true*/
return {
string: true,
number: true
@BriSeven
BriSeven / mustachec
Last active December 28, 2015 20:19
mustachc for doing mustache templating from makefiles and the bash command line. Requires mustache.php and php itself.
#!/usr/bin/env php
<?php
// Command line utility to compile MUSTACHE to STDOUT
// I bastardised this based on lessc by:
// Leaf Corcoran <leafot@gmail.com>, 2012
// which is licensed by MIT/GPL according to his website.
// Additionally, this requires mustache.php to be in the same directory
// Mustache.php can be "compiled" to be in a single file
// following these instructions https://twitter.com/bobthecow/status/319159329578180609
// (quoted below)
// integer part of x
function ipart(x) {
return Math.floor(x);
}
function round(x) {
return Math.round(x);
}
// fractional part of x
@BriSeven
BriSeven / RLE.js
Last active May 5, 2016 22:30
Run Length Encoding and Decoding for JS number arrays, with Delta Encoding and Delta Decoding.
function RLEencode(array) {
// output an array of values
// consisting of alternating "rips" and "runs"
// a rip begins with a negative count followed by a
// cooresponding number of non-repeating values
//
// a run begins with a positive count, followed by
// the value to be repeated by the count.
var newArray=[];
define("rgbdiff", [], function () {
function rgbdiff(a, b) {
// Convert RGB to XYZ
function rgbToXyz(tuple) {
var _r = (tuple[0] / 255);
var _g = (tuple[1] / 255);
var _b = (tuple[2] / 255);
if (_r > 0.04045) {
_r = Math.pow(((_r + 0.055) / 1.055), 2.4);
@BriSeven
BriSeven / Gruntfile.js
Created April 29, 2016 10:06
reusable Gruntfile that loads external JSON.
module.exports = function (grunt) {
function to_entries (object,prefix){
// convert object to array of key/value objects, emulating jq.
// for working around mustache limitation
// for heirarchical objects, flatten
// into key.subkey/value form, until a string, number or boolean is encountered
// this is super convenient for rendering json to shtml variables
var a=[];
hypercard stacks
electronic whole earth catalog
manhole
Time Table of History
myst
Cosmic Osmo and the Worlds Beyond the Mackerel
Spelunx
The Computer Lab's Beyond Cyberpunk (http://www.streettech.com/bcp/BCPgraf/4zones.html)