The latest blog posts about various topics. You can also browse by category.

An Experiment with My FM Radio Transmitter

A while ago I talked about how I had trouble playing music in my car because it doesn’t have an aux port. As I mentioned in that post, I decided to use an FM audio transmitter, but one of the problems with this is that the signal could potentially be picked up in nearby cars. I had some evidence that this was possible, but I figured I should actually test this out.

Visualizing the Space of IP Addresses

I’ve been learning about IPv6, and I built a visualization tool to compare its IP addresses with IPv4. The difference between the two is striking.

Dear Recruiters, If You Send Me a Job Outside My Local Area…

…please acknowledge that it will require relocating!

The Trouble with Made-Up Example Sites and Domains

When people talk about building a website, it’s common to use an example name rather than the name of an actual website. And when people ask questions about their websites, they often use a placeholder instead of the real name. This all makes sense, but when it isn’t done right, it can lead to problems. To see why, let’s start with the story of a Web host and its employees.

Thinking About Phone Trees, and an Annoying Call I Had to Make

I came across an article from Nielsen Norman Group titled “The UX of Phone-Tree Systems.” It talks about how to improve the usability of phone trees, those automated systems that give you a list of options and a number to press for each one. It just so happened that I had to use one of these recently, and this article highlighted what found so annoying about that call.

Building Web Applications the Old-Fashioned Way

Web development on the frontend has come a long way from writing scripts and putting them directly into a Web page. Build tools and frameworks make it much easier to build entire applications that run in the browser, far beyond anything thought possible when JavaScript was first created.

Even so, it’s still possible to do it the old-fashioned way, and it turns out we don’t actually have to give up everything that modern Web development has brought us.

Lessons Learned from a Blog Post Error

Last month I wrote a blog post about how to set up Let’s Encrypt for a Docker-based Web application. However, it contained a major error which I only discovered later on. I corrected it in the original post, but as I thought about it some more, I realized that there were some lessons to be learned, both about the specific technologies and software in general.

How to Set Up Let's Encrypt HTTPS Certificates in Docker

Encryption via HTTPS is something that virtually every website should support, and Let’s Encrypt lets you set this up (mostly) automatically, and for free.

I recently migrated a personal server to use Docker, and this is how I set up HTTPS certificates on it.

Anatomy of a Job Scam

I almost got caught up in a job scam recently. The funny thing is, this isn’t the first time, and it was pretty similar to what happened to me years ago.

I’ll go through the whole story, and along the way I’ll point out the things that seemed suspicious. Hopefully this will help people avoid this type of scam.

Birthday Fundraiser for Disaster Response

Donate to GlobalGiving’s Hope in Crisis Fund. This fund assists communities affected by crisis, no matter where they are in the world or whether they make the news. Any amount is appreciated.