Reading List

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

ArchiveBox is Super Cool

Have you ever used archive.org’s Internet Wayback Machine? It’s a free tool that’s been archiving the web since 1996. So, if you want to see what Google looked like in 1999, they’ve got it.

Internet Archive capture of Google from April 22, 1999

ArchiveBox is like your own, personal Internet Wayback Machine. It’s free and open-source, and you can use it to archive most websites.

How to Republish or Adapt this Content

All original writing and images on this blog are released under the Creative Commons Attribution 4.0 International License.

That means you can republish the content or adapt it as long as you honor the license.

What you’re allowed to do

  • Republish the content in any medium or format, even for commercial purposes.
  • Adapt the content by changing the wording, translating it to other languages, or expanding on what I wrote.

What you’re required to do

If you republish, adapt, or translate content from this website, you’re required to:

TinyPilot: Month 42

New here?

Hi, I’m Michael. I’m a software developer and the founder of TinyPilot, an independent computer hardware company. I started the company in 2020, and it now earns $80-100k/month in revenue and employs six other people.

Every month, I publish a retrospective like this one to share how things are going with my business and my professional life overall.

Highlights

  • I think about how I can do a better job delegating product decisions and documentation.
  • I compare my experience learning Nix to learning Zig.

Goal grades

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

Use a Nix Flake without Adding it to Git

When I work in my own repositories these days, I always add a Nix flake to the repo so that I can spin up a working development environment on any system with a single command.

What do I do when I’m working in someone else’s repo and they don’t want to adopt Nix flakes?

Normally, I’d just add the file to my copy of the repo and gitignore it locally so I don’t commit my personally-specific files with the rest of my changes.

Using Zig to Unit Test a C Application

Zig is a new, independently developed low-level programming language. It’s a modern reimagining of C that attempts to retain C’s performance while embracing improvements from the last 30 years of tooling and language design.

Zig makes calling into C code easier than any other language I’ve used. Zig also treats unit testing as a first-class feature, which the C language certainly does not.

These two properties of Zig create an interesting opportunity: Zig allows you to add unit tests to existing C code. You can do this without rewriting any of your C code or build logic.