I was tired of using ports 3000 and 8080 for local web services, so I found a silly alternative—using dialpad spelling to convert service names into port numbers! (e.g. "node" → 6633) https://github.com/smockle/phonespell

Try it out! npx @smockle/phonespell TEST

WWDC Wish List

WWDC, Apple’s annual developer conference, starts this week. The keynote is today at 10 AM PT. In no particular order, here are a few announcements I’d like to see: Software Bicycle directions in Apple Maps Swipe-to-type in the iOS keyboard API to unlock 1Password vault with…

Optimizing Web Fonts

I audited this site with Google Lighthouse. The utility flagged web font load times (specifically the “Flash of Invisible Text” or “FOIT”). There are many ways to improve web font performance. Zach Leatherman’s “A Comprehensive Guide to Font Loading Strategies” is an excellent…

Technical Stack II

I wrote about the technology used to publish and host this blog in “Technical Stack”. In the last week, I’ve moved from building with Jekyll and deploying to GitHub Pages to building with Gatsby and deploying to AWS S3. Advantages Because I no longer use Jekyll, I don’t need to…

Comparing Z-Wave Switches

I purchased three popular Z-Wave switches—the GE 14294, the Leviton DW6HD and the HomeSeer HS-WD100+. All three support Z-Wave Plus, are rated for a 600W (incandescent) max load, can dim LEDs, and require a neutral wire for installation. Each switch has a unique sound and feel…

Migrating from Travis CI to Docker Hub Automated Builds

Historically, I’ve used Travis CI to build and push new versions of my Docker images. In “Keeping systems up-to-date”, I describe a feature missing from Travis CI that prompted me to try Docker Hub Automated Builds: If you maintain Docker images, you’ll want to rebuild them when…

Keeping systems up-to-date

When I set up a new home server, unattended-upgrades is one of the first packages I install. The service watches for package updates and installs them automatically. It makes keeping up with security patches and bug fixes easy, but only for system packages. If you run services…

Replacing the diffuser on a Philips Hue bulb

Author’s Note: This is not a philosophy-related post. The self-imposed pressure to write something unique and insightful kept me from writing at all. I want to write, so I’m temporarily suspending my philosophy project and writing about my other projects. I received a shipment of…

Philosophy Reading List

I’m studying ideas and behaviors that have persisted throughout history. For the next two years, I’m perusing classic works of philosophy. To decide where to start, I collated reading lists from four university philosophy departments: Boston College Catholic University of America…

Technical Stack

NB: “Technical Stack II” is a newer post on this topic. The post below is outdated. At a friend’s request, here is an overview of this blog’s technical stack. This blog is hosted on GitHub Pages. Jekyll transforms Markdown files into a static website. An AWS CloudFront…