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.
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.
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.