Workspace: Spreadsheet Grid Design
Improving spreadsheet grid design by thinking of the grid as an item inside of a container, instead of a
container with items.
Programming Language Accessibility Test
When trying out a programming language, it should be easy to find the features, try it out, install it, write a
program, and do several common things. I made a test for programming languages - similar to The Joel Test - that
Sep 7, 2019
Review of Spreadsheet User Interfaces
You can find these images with a quick image search, but I wanted examples of each on one place so I can see the
general UI patterns. What are the common elements that a user would see when using them? What do they have in
common beyond the grid?
Aug 19, 2019
Metrics First When Writing Go Services
Classifying failure cases up front in metrics will help you quickly write clean code. This isn't Test Driven
Development so much as it is Failure Driven Development.
May 20, 2018
Acoustic Fingerprinting Television
Let's jump to the good stuff: How hard is it to create a program that can acoustic fingerprint a television
show? Can we identify the playback position of a video based on audio tracks? For this blog post I'll use The
Drew Carey Show, because it's the only show of which I have multiple seasons.
Feb 6, 2018
Build Your Own Redux for React
I wrote this with the idea that it's easier in the long run to use the patterns that Redux represents, rather
than using the packages that implement it. I now realize that I was pretty wrong on this one, but what sort of
person would I be if I removed this post and pretended that it never happened? Here's to writing more blog
posts that could be just as wrong!
April 17, 2018
Cloud Architecture with Packer, Terraform, Nomad, and Consul
When thinking about cloud providers, containers, and cloud architecture it's easy to want to find a silver
bullet. But if you step back from the problem, you can use a set of OSS tools, services, and frameworks to
make your services more manageable, and make changing and comparing providers easier.
Jan 1, 2018
1.0.1 Release of js-spreadsheet
Added 121 formulas, and fixed a few bugs, made Cells easier to handle, added support for scientific notation,
clarified license, cleaned up parser a bit, added support for comma separated lists and much more.
Dec 3, 2017
mostly written by hand or converted from other OSS, which made this a lot of fun to write, but probably filled
with all sorts of errors.
May 26, 2017
A Guesser's Guide to Google Spreadsheets
Stumbling through types, formulas, and errors in Google Sheets. I wrote this long before I had a firm grasp of
spreadsheets, and their inner-workings, so this might best be described as my interior monologue when trying
to figure out how and why spreadsheets sometimes do weird and interesting things.
May 4, 2017
Introduction to GRPC and Protocol Buffers in Go
Protocol Buffers + gRPC in Go.
Nov 26, 2017
From IDE to binary: Developing in Golang in InteliJ
Getting the plug-in right, and living in the IDE. This was written before Goland came out, but here for
Nov 5, 2017
Cluster membership with the SWIM protocol and the memberlist library
Toy example of cluster membership with SWIM. Written in Golang.
Oct 24, 2017
Captain's Log - a timestamped note-taking app
An electron app that uses a command-line like log to keep track of what you're doing and working on, saving it
to a YAML file. I used this for a while at work to track some trial-and-error performance tuning of Java apps.
Not being able to go back and change your text frees you from the desire to make each sentence perfect.
Sep 26, 2015
Procedural Terrain Generation
Using procedural algorithms to generate terrain maps.
Nov 30, 2016
Hexcraft: A Minecraft-like hexagonal tile editor
Hexagonal tiles that you can edit like a voxel-explorer game.
Mar 6, 2014
Live special effects for theatre performance with the Kinect
Shakespeare's Hamlet opens with a scene of two sentries discovering the Ghost of King Hamlet. More often than
not, the part of the ghost is played by an actor in white makeup walking on stage to deliver his lines. I
approached this project with the idea that through live motion capture and replay, theatre visual effects can
serve to strengthen a performance, and breath new life to dead characters, even if they are just ghosts.
Dec 6, 2013