Reading List

The most recent articles from a list of feeds I subscribe to.

Fixing Memory Exhaustion Bugs in My Golang Web App

Earlier this year, I created an open-source app called PicoShare. It’s a simple Golang web app for sharing files. I use it to send files that are too large to be email attachments, but I don’t want the recipient to deal with Dropbox or Google Drive.

Animated demo of uploading a video file to PicoShare and streaming it in another browser window

A few months ago, I started seeing my PicoShare server die every few days. When I checked the logs, I saw an out of memory error:

TinyPilot: Month 25

Highlights

  • My blog post about redesigning the TinyPilot website became my second most popular article of all time
  • I’m exploring ways to preserve more knowledge on my blog
  • I’ve lowered TinyPilot’s prices in an effort to reduce inventory

Goal grades

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Finalize plans for managing TinyPilot licenses

  • Result: Made no progress
  • Grade: F

Migrating to the next-gen update system took longer than I expected, so I ended up not making progress on this.

Back Up Encrypted ZFS Data without Unlocking It

I recently built my first home TrueNAS server. I use it to store the bulk of my personal and work data, so I’ve been learning how to make the most of TrueNAS and its filesystem, ZFS.

Today, I want to tell you about backing up encrypted data.

I Regret My $46k Website Redesign

Two years ago, I created a website for my business. By combining my terrible design skills with a decent-looking template, I created a site that looked okay. I told myself that if the business took off, I’d hire a real designer to make it look professional.

Screenshot of old landing page

TinyPilot website, before design changes

A year later, the business was generating $45k/month in revenue, but my website still looked like a college student’s hobby project. It was time for that professional redesign I’d promised myself.

TinyPilot: Month 24

Highlights

  • TinyPilot reached an all-time high of $74k in revenue.
  • I’m trying to figure out the best approach to software licensing.
  • I’m still searching for a web framework I can love.

Goal grades

At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:

Create a self-contained tarball for installing TinyPilot

  • Result: We now have a working tarball package
  • Grade: A

TinyPilot’s install process has been growing more complex over time. It pulls in code from multiple repositories and third-party dependencies, and it’s becoming increasingly difficult to keep track of those relationships.