Reading List
The most recent articles from a list of feeds I subscribe to.
Increase Your Reply Rate on Cold Emails to Me
The term “cold email” refers to emailing someone who you’ve never spoken to before.
There are lots of guides on writing cold emails. This one is a bit niche, as it’s about cold emailing a particular person: me. But I guarantee you that it’s the best guide you can find on this hyperspecific topic.
I’m publishing my guidelines under the Creative Commons BY-4.0 license, so you’re welcome to reuse or adapt them to guide people in emailing you.
Overcoming Gotchas in Samsung Secure Erase
I have a few Samsung SSDs, and I always have trouble remembering the process of secure erasing them, as Samsung Magician software is terrible.
Here are my notes for overcoming Samsung Magician’s gotchas in the process of secure erasing a Samsung SSD.
You need a Windows or MacOS system with a Samsung SSD attached
This requirement drives me crazy, as Samsung Magician is creating a bootable USB disk, so it shouldn’t care what’s on your current system, but it does. And Samsung Magician only exists for Windows, MacOS, and Android, so if you’re on Linux, you can’t use it.
Educational Products: Month 3
Highlights
- I published the first chapter of my book and was happy with the reception.
- My attempt to hire a book cover designer flopped.
- I may have figured out how to support large files on PicoShare.
Goal grades
At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals:
Finish two chapters of Refactoring English
- Result: Finished one chapter and got 75% through the next.
- Grade: B
The first chapter took longer than I expected, as I kept finding parts that I wanted to rewrite. I did find it helpful to take a break for a week to write a second chapter and come back fresh.
if got, want: A Simple Way to Write Better Go Tests
There’s an excellent Go testing pattern that too few people know. I can teach it to you in 30 seconds.
Instead of writing Go tests like this:
// The common, unrefined way.
username := GetUser()
if username != "dummyUser" {
t.Errorf("unexpected username: got %s, want: %s", username, "dummyUser")
}
Write your tests like this, beginning each assertion with if got, want :=
:
// The underused, elegant way.
if got, want := GetUser(), "dummyUser"; got != want {
t.Errorf("username=%s, want=%s", got, want)
}
The if got, want :=
: pattern works even better in table-driven tests. Here’s an example from my library for parsing social media handles:
The Case for Open Borders by John Washington
If you’re a liberal who’s interested in becoming a radical progressive, this is a good book for you. If you’re anyone else, you’re probably not the target audience.