• ​​Automatic Website Deployment With Docker and Google Cloud Build

    Lately, I have been experimenting with serving static web sites via Docker images with NGINX. For the simple sites I am playing with, this configuration is probably overkill, but it’s not too hard to set up and it does have some advantages:

  • When Slow Algorithms Are Faster

    Below are timing results for two searches. One is a linear search, and one is a binary search, but I’ve hidden which search is which.

  • Trying Out Octolapse

    About a year ago I bought a Prusa i3 MK2S 3D printer. It’s been a lot of fun, and surprisingly useful for quickly creating custom household gadgets. I primarily drive the printer using OctoPrint, and a few days ago I upgraded to version 1.3.8. One of the new improvements is that it supports the Octolapse plugin for making very nice timelapse videos. I was pretty happy with how my first attempt came out, so I thought I’d share here.

  • Fun with Side Channels

    In my undergraduate programming languages class, our professor used an auto grader and let us use it to test our programs before we turned them in. We could upload our assignment to the auto grader, where it would run our program through a number of tests and tell us our many out of the total passed. Importantly, the auto grader did not tell us what the test cases were.

  • How to Convert Recursion to Iteration

    Recursion often yields concise, elegant solutions. Unfortunately, most widely used languages limit how large your program stack can grow. So what do you do if you have a recursive algorithm but need to be able to run it without growing your stack? In this post, we’ll see a generic way to take any recursive algorithm and convert it into an iterative one.

  • Writing a Statement of Purpose

    Someone recently asked me for some advice in writing a Statement of Purpose for a Ph.D. application. I thought I’d follow Matt Might’s advice and reply to public. Here’s some of the advice I gave.

  • Making a Magical Whereabouts Clock

    For Christmas of 2015, I made my then girlfriend (now wife!) a Magical Whereabouts Clock. I figured it’s about time to share it with the world as well. This turned out to be an incredibly fun and challenging project.

  • Migrating to Octopress 3.0

    Over the past several days, I’ve been working to migrate my blog from whatever version of Octopress I was on to Octopress 3.0. The process ended up being more involved and taking longer than I expected, but I think now I have a more powerful and maintainable blogging setup.

  • Should You Go to Grad School? Or, Why I'm Glad I Went to Grad School

    Back when I was deciding what to do about grad school, I found hearing what others did and why to be incredibly helpful. I hope I’ve been able to return the favor to others along the way. Having officially finished grad school not too long ago, I thought I’d take a moment to tell my story in the hopes that it will help others. Most of the people I talked to said something that boiled down to “do what I did.” In this post, I’ll continue the tradition.

  • I'm a doctor now!

    So it’s been a long time coming, but as of Thursday, June 30th,1 I’m officially a doctor! If you want, you can read my final dissertation here. It seems like the cool thing to do is to share the graph of commits over time, so here it is:

    1. I realize this post is pretty late as well. So it goes.