View Appolonius.html
<!DOCTYPE html>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">
View wuline.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
canvas {
border: 1px solid black;
View decompose-matrix.js
function decomposeMatrix(m) {
var t,r,s,k,E,F,G,H,Q,R,sx,sy,a1,a2,theta,phi,sqrt=Math.sqrt,atan2=Math.atan2;
// It works wonderfully! Thanks.
// The input matrix is transposed though,
// so let me spell the solution out.
View canvas-skeleton.html
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
canvas {
border: 1px solid black;
View Notable hypercard stacks
hypercard stacks
electronic whole earth catalog
Time Table of History
Cosmic Osmo and the Worlds Beyond the Mackerel
The Computer Lab's Beyond Cyberpunk (
View Gruntfile.js
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=[];
View rgbdiff.js
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);
View RLE.js
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=[];
View wuline.js
// integer part of x
function ipart(x) {
return Math.floor(x);
function round(x) {
return Math.round(x);
// fractional part of x
View mustachec
#!/usr/bin/env php
// Command line utility to compile MUSTACHE to STDOUT
// I bastardised this based on lessc by:
// Leaf Corcoran <>, 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
// (quoted below)