Skip to content

Instantly share code, notes, and snippets.

View thraxil's full-sized avatar

Anders Pearson thraxil

View GitHub Profile
// Sandbox approvals that you will need (at least):
// staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.lang.Object[]
// staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods getAt java.lang.Iterable int
// java.lang.Object[]
// staticMethod org.codehaus.groovy.runtime.DefaultGroovyMethods plus java.util.List java.lang.Object
// check for required parameters. assign them to the env for
// convenience and make sure that an exception is raised if any
// are missing as a side-effect
#!/usr/bin/env python3
import os.path
import os
from datetime import datetime, timedelta
from pathlib import Path
BASE = "/etc/letsencrypt/"

I'm originally from Maine (for non-Americans, that is the very Northeastern tip of the US. Basically Canada. Americans will naturally associate it with Lobsters, Potatoes, and Stephen King). My parents were serious hippies who got into the "homesteading" movement and built a log cabin in the middle of the woods. So my early childhood was spent with no electricity or running water miles from the nearest neighbors. We eventually rejoined civilization and I mostly grew up in the small town of Dexter, but finished high school even further north at the Maine School of Science and Mathematics. I went to Bates College (a small liberal arts school still in Maine) majoring in

Keybase proof

I hereby claim:

  • I am thraxil on github.
  • I am thraxil ( on keybase.
  • I have a public key ASDrIp2mKRBpb-cdXfc2ndFlG_wewh1wKr-f5yLI59aNuwo

To claim this, I am signing this object:

thraxil / yearly.go
Created January 2, 2018 16:37
yearly music link script
package main
import (
void ofApp::draw(){
const int size = 20;
const int qs[7] = {0, 1, -1, 0, 1, -1, 0};
const int rs[7] = {-1, -1, 0, 0, 0, 1, 1};
for (int i = 0; i < 7; i++) {
int q = qs[i];
browser -> mediathread [label = "GET /explore/redirect?..."];
browser <-- mediathread [label = "302 Location: http://wardenclyffe/mediathread/?..."];
browser -> wardenclyffe [label = "GET /mediathread/?nonce=..uni=.."];
wardenclyffe => wardenclyffe [label = "check credentials"];
wardenclyffe -> postgresql [label = "get/create user/session"];
wardenclyffe <-- postgresql [label = "user/session"];
browser <-- wardenclyffe [label = "upload form"];
browser -> wardenclyffe [label = "POST /mediathread w/ video file"] {
#!/usr/bin/env python
import json
import os
import subprocess
import tempfile
import yaml
VAULT_BIN = "/usr/local/bin/vault"
VAULT_PATH = "secret/salt/pillar_data"

The CTL Surveillance State

(for servers and applications)

Metrics and Monitoring at CTL

Once upon a time, we had a couple Dell servers living in the Mezzanine. All of our applications just ran on them.

We had a wiki page to keep track of which applications were running on which server, etc. the "Master Server Grid":