As I add projects to the blog I'll tag them with code so they'll show up here, until then, here's some of the projects I'm working on.

Masters Project:

My blog entry with some background, and just the presentation. The topic is
community detection/graph theory/big data. It uses R, python, mysql, bash, perl, and d3/javascript.

Sankey Diagram

A doodle I did to learn Sankey diagrams using some data I pulled from my daughter's high-school soccer team.


A sketch I did using d3 to help someone decide if they should
buy some commercial software software.

Neko Atsume

An admittedly silly javascript app (looks better on mobile than desktop) that really only makes sense if you play "Neko Atsume: Kitty Collector."


A visualization of a team's bracket performance.
This started as in excel and then I automated by creating a screen-scraper in python with Beautiful Soup. It pulled in all the game stats for the season
from my daughter's soccer league site to show how her team (SDFA) was doing during the season. It also has a cool feature that during mid-season you can see best case scenarios - which teams still have a shot first, second, ... Nth place. It was trivial to extend it to the entire Presidio League (and Coast League too).

Alexa skill

This one is an npm/express/node service proxied by nginx. Even though this is pretty silly by itself, it is used as a backend to an Amazon Alexa skill. My daughter recently got an Alexa and I wanted to create a skill for it. Bonus, they give stuff away when you create a new skill, so even though my app is pretty minimal (could be even more minimal if I hadn't self hosted). I ended up with a hoodie and a skill.

alexa hoodie

Remember when I said I changed the storage on this blog to use S3? As I
dragged and dropped this hoodie image, an object was created and the link embedded into the page. The image you see is from an S3 object link. Go ahead and inspect it, I'll wait! How cool is that!?


A sketch that is a little more subtle. I combined data from two different sources to create the graphs using javascript, not static images (the middle image is a static svg that I created in R and then edited by hand to make it look like better).


I'm building a PiRouter with parental controls (time-limits, bandwidth-limits, blacklisting sites, vpn, traffic history, ...) but I've not yet pushed it up to github. It uses mysql on the backend, javascript/node on the frontend, and python/bash for all the middleware. I don't have much documentation on it yet. I've been using it as my only router for about six months now and since I made the filesystem read only it's been rock solid. Right now I'm creating the web interface using express/pug and will move the database upstream into AWS or Google (done). The calendar function is already using Google calendar.

Peace Sign:

The image above is from a very important project I am continuously working on: teaching my daughter. She wanted to write a program and was crazy for peace signs and neon colors, so we created an app. Our iteration process was:

  • draw by hand
  • getting the computer to draw like she wanted
  • draw at a random location (translate)
  • create and use a color palette
  • "wobble" it a bit (rotate)
  • added a texture
  • fade the old ones away (Gaussian blur)

I'll try to find the Processing code and put it on github. It's mesmerizing and makes a decent desktop image.


This site is itself a project. I'm self hosting in ec2 with one micro instance which hosts and The older content is html/cgi and the new content is are express apps. I switched to nginx mid-2016 because I got tired of managing Apache. This blog is an npm module itself (modified as noted above to use object storage). A shout-out to Let's Encrypt for the free certs!


My github page.