code, politics, and life


When I was younger, all of my programming projects were just for fun. I wrote a number guessing game when I was really young, I wrote a program that graphed selected 3d functions without any third-party graphing libraries, and I played around very briefly with fractal generating algorithms.

As I got older and a wide range of devices became affordable my projects got more practical. I wrote code to generate elevation profiles of some of the hikes I went on before GPS devices included those profiles by default.

Now, almost all of my programs have real-world users. Most of my owrk focuses on education and science. My main professional interest is in addressing structural inefficiencies in education without falling into all the common pitfalls of for-profit ed tech. Here’s a brief listing of some of the projects I’ve been involved in.

Python Cheat Sheets

I have benefitted greatly from well-made cheat sheets when working on numerous projects over the years. Shortly after the first edition of Python Crash Course came out, I realized I could probably make a useful set of Python cheat sheets for readers of the book. I wrote up a series of sheets focusing on specific aspects of Python such as lists, dictionaries, functions, and classes. I also wrote up sheets focusing on libraries like Pygame, Matplotlib, and Django.

Since they first came out in 2016, the cheat sheets have been downloaded over a million times. You can see all the cheat sheets here, and download them indivudally or as a set.

Visual Transcripts

Most high school transcripts are walls of text and numbers that are difficult to read if you’re not overly familiar with them. They’re particularly difficult to read if you haven’t earned credit consistently, and need to understand what areas you need to focus on in order to graduate. I wrote a program that scraped a text version of our district’s transcripts and generated a visual transcript that could be understood in seconds. This is a project I’d like to return to and make more widely available.

Landslide Warning System

On August 18, 2015 Sitka was hit with one of the heaviest periods of intense rain that we’ve seen in many years. There were multiple, almost simultaneous landslides throughout the region on that day. One of these slides happened right along our road system, and three people were killed.

A team of scientists from multiple disciplines was assembled to help evaluate the ongoing risk of significant slides, and to do the initial work of setting up an early warning system for slides. A number of people in the local outdoor community had noticed an apparent correlation between the readings of a nearby river gauge and landslide activity. Basically, we have really small watersheds here. So a river’s activity - how quickly it rises and falls in response to heavy rain - may be a proxy for the soil saturation measurements that are typically used to determine the immminent risk of landslide activity. I’ve written code to help determine whether this correlation is close enough to base a warning system on, or if it’s just coincidental. I’ve also developed a prototype of an app that would give a visual indication of the current risk level.

Bycatch Reduction for Longline Fisheries

In longline fishing, people drop a long line on the bottom of the ocean, with anchors on each end. The line can be several kilonmeters long. Baited hooks are placed at regular intervals, with the goal of catching species such as halibut and black cod. I wrote code that processed raw dtat from catch events and restructured the data so it could be ingested by mapping software. The goal of the project was to help fishing captains know where to fish in order to reduce bycatch. Bycatch, if you are unfamiliar, is species and individual fish that can not be retained in a given fishery.

Sperm Whale Avoidance

When longline fishing boats haul their lines to the surface, the sounds their boat engines and hauling motors make have a distinctive pattern. Sperm whales have learned to recognize this pattern. If you haul a longline up in an area where sperm whales are present, they will hang out near the boat and pick each fish off the line just before it reaches the surface. This is devastating to fishing captains, and situations that put whales in conflict with humans are not good for whales or humans.

Researchers have developed a towed sonar array that detects sperm whale clicks and alerts fishing captains to areas where sperm whales are present. The goal is to help fishing captains identify areas where they can fish without running into conflict with sperm whales. I wrote code that listens for messages from the satellite devices on the boats that are towing the sonar arrays, and makes the data available in real time to researchers who are working on the mapping and alerting end of the project.

If you have questions or comments about any of these projects, please feel free to get in touch.