Skip to content

Instantly share code, notes, and snippets.

@cwleonard
cwleonard / hooked.js
Last active August 29, 2015 14:10
Used with the hook.io microservice framework to calculate the date of Easter for a given year.
module['exports'] = function easter(hook) {
var year = hook.params.year;
hook.debug("i am going to calculate the date of Easter for " + year);
// using the "Meeus/Jones/Butcher" algorithm
var a = year % 19;
var b = Math.floor(year/100);
var c = year % 100;
var d = Math.floor(b/4);
@cwleonard
cwleonard / ansiconsole.js
Last active December 25, 2015 18:49
Create an emulation of a VT100 terminal on a web page, with ANSI graphics support. Have old ANSI art laying around? Showcase it on the web, dynamically. It doesn't have blink support, yet. You can see it in use here: (http://www.amphibian.com/doors/ansiviewer.jsp) with sample ANSIs from an old BBS I helped run back in the 90's.
var MAX_ROW = 30;
var BLANK = " ";
var BLACK = 0;
var RED = 1;
var GREEN = 2;
var YELLOW = 3;
var BLUE = 4;
var MAGENTA = 5;
var CYAN = 6;
@cwleonard
cwleonard / check-and-set-ip.sh
Created September 19, 2018 10:14
dynamically set a GoDaddy DNS record
#!/bin/bash
domain="example.com"
aname="subdomain"
key="your_key"
secret="your_secret"
myip=`curl -s -X GET http://api.ipify.org?format=json | jq -r .ip`
recip=`curl -s -X GET "https://api.godaddy.com/v1/domains/$domain/records/A/$aname" -H "accept: application/json" -H "Authorization: sso-key $key:$secret" | jq -r .[0].data`
@cwleonard
cwleonard / jspolygon.js
Created August 30, 2014 13:25
Convex Polygon Intersection
/*
* This is the Point constructor. Polygon uses this object, but it is
* just a really simple set of x and y coordinates.
*/
function Point(px, py) {
this.x = px;
this.y = py;
}
/*