View Appolonius.html
<!DOCTYPE html>
<html>
<head>
<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">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
canvas {
border: 1px solid black;
}
</style>
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;
// http://math.stackexchange.com/questions/861674/decompose-a-2d-arbitrary-transform-into-only-scaling-and-rotation
//
// It works wonderfully! Thanks.
// The input matrix is transposed though,
// so let me spell the solution out.
E=(m[0]+m[3])/2
View canvas-skeleton.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>canvas</title>
<style>
canvas {
border: 1px solid black;
}
</style>
View Notable hypercard stacks
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)
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
<?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)