Reading List

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

Migrating a ZFS pool from RAIDZ1 to RAIDZ2

I recently upgraded my home TrueNAS server and migrated 18 TB of data from a 4-disk RAIDZ1 ZFS pool to a new RAIDZ2 pool.

The neat part is that I did it with only three additional 8 TB disks and never transferred my data to external storage.

Upgrading from RAIDZ1 to RAIDZ2 without moving data to external storage is tricky because:

Educational Products: Month 9

Highlights

  • I look for ways to limit the number of half-complete tasks I’m juggling.
  • I brainstorm ways to talk with more of my early readers.
  • I have trouble accepting a design decision in the Gleam language.

Goal grades

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

Offer a lower-friction way for users to pre-order my book

  • Result: Switched from Kickstarter pre-orders to Stripe payment links.
  • Grade: A

I ran the initial pre-sale through Kickstarter, so I decided to just stick with it for subsequent pre-orders. After a couple of months, I realized Kickstarter requires customers to create an account to buy the book, which adds a lot of friction and discourages people from buying.

goHardDrive Leaked Personal Data for Thousands of Customers

I recently returned a product to goHardDrive, a merchant that specializes in selling used hard drives. During the return process, I discovered that they were accidentally publishing details about thousands of their customers, including their full names, mailing addresses, email addresses, and order details.

The leak

When I requested a return from goHardDrive, they assigned me a return merchandise authorization (RMA) number ending in five numeric digits. I’m not publishing my actual RMA number, but you can imagine that it was a number like this:

My First Impressions of Gleam

I’m looking for a new programming language to learn this year, and Gleam looks like the most fun. It’s an Elixir-like language that supports static typing.

I read the language tour, and it made sense to me, but I need to build something before I can judge a programming language well.

I’m sharing some notes on my first few hours using Gleam in case they’re helpful to others learning Gleam or to the team developing the language.

A Simple Example of Calling an Elixir Library from Gleam

I’ve been experimenting a bit with Gleam and Elixir lately as part of my search for a new programming language.

One of Gleam’s flagship features is that it can call Elixir code and libraries, but I couldn’t find any examples of how to do that. I wrote a simple example of calling an Elixir library from a Gleam project, based on my beginner’s understanding of the Gleam/Elixir/Erlang ecosystem.

Install dependencies

For this example, I’m using