My summer 2021 reading list

I set a goal this summer to read a little each day and work through my reading list on Goodreads. I managed to make it through nine books! If you’re looking for some interesting books to read, this post highlights several of the ones I enjoyed. Tom Clancy I saw all the big Tom Clancy movies as a kid, such as The Hunt for Red October, Clear and Present Danger, and Patriot Games....

2021-09-06 · 8 min · Major Hayden

Deploy Fedora CoreOS in Hetzner cloud

Hetzner has always been a reliable and cost-effective hosting company for me for several years. I’ve run icanhazip.com on their dedicated servers and I run several small applications in their cloud. When I run containers, I love using Fedora CoreOS for its easy updates and very small server footprint. Almost everything you need for hosting containers is provided right out of the box, but you can add extra packages via rpm-ostree layers and reboot to use them....

2021-08-20 · 5 min · Major Hayden

Set network interface speed with systemd-networkd

Sometimes automation is your best friend and sometimes it isn’t. Typically, when two devices are connected via ethernet cables, they negotiate the best speed they can manage across a network link. They also try to agree on whether they can run full or half duplex across the network link. Most of the time, this works beautifully. It can break down with strange networking configs, damaged adapters, or finicky cables....

2021-08-20 · 3 min · Major Hayden

Wildcard LetsEncrypt certificates with Traefik and Cloudflare

Wildcard certificates make it easy to secure lots of subdomains under a single domain. For example, you can secure web.example.com and mail.example.com with a single certificate for *.example.com. Fortunately, LetsEncrypt allows you to get wildcard certificates via a DNS ownership check (often called a DNS-01 challenge). Fortunately, Traefik can request a certificate from LetsEncrypt automatically and complete the challenge for you. It can publish DNS records to multiple providers, but my favorite is Cloudflare....

2021-08-16 · 4 min · Major Hayden

Build Fedora AWS images in GitHub Actions with Image Builder

GitHub Actions provides infrastructure for all kinds of amazing automation. Anyone can test software, build packages, deploy applications, or even publish a blog (like this one!) with a few snippets of YAML. I often use it to bundle my software in a container after testing it. 🤖 One day, as I was working through another Packer configuration, I wondered if there was a way to build cloud images directly in GitHub Actions without building an instance in the cloud, making tons of changes, and snapshotting that image....

2021-08-06 · 7 min · Major Hayden

DHCPv6 prefix delegation with systemd-networkd

My home internet comes from Spectrum (formerly Time Warner Cable) and they offer IPv6 addresses for cable modem subscribers. One of the handy features they provide is DHCPv6 prefix delegation. If you’re not familiar with that topic, here’s a primer on how you get IPv6 addresses: SLAAC: Your machine selects an IPv6 address based on router advertisements DHCPv6: Your machine makes a DHCPv6 request (a lot like DHCP requests) and gets an address back to use DHCPv6 with prefix delegation: Your machine makes a special DHCPv6 request where you provide a hint about the size of the IPv6 network prefix you want....

2021-07-28 · 4 min · Major Hayden

Enable dark mode in Firefox without changing themes

Most modern web browsers, such as Firefox, take cues from the desktop environment or from themes applied to the browser to determine whether a user wants light or dark mode from websites. This is often done through the prefers-color-scheme CSS media feature: .day { background: #eee; color: black; } .night { background: #333; color: white; } @media (prefers-color-scheme: dark) { .day.dark-scheme { background: #333; color: white; } .night.dark-scheme { background: black; color: #ddd; } } @media (prefers-color-scheme: light) { ....

2021-07-19 · 2 min · Major Hayden

Enable touchpad tap to click in i3

One of the first things I look for on a fresh installation of a laptop is how to enable tap-to-click automatically. Most window managers and desktop environments make this easy with a control panel that has toggles or drop-down menus. However, this requires a little more effort in i3. Fortunately, there are two routes to get it enabled: in xorg’s configuration or via your i3 configuration. Via the i3 configuration The advantage of this method is that it’s easy to configure and test out quickly....

2021-07-18 · 4 min · Major Hayden

Tray icons in i3

The i3 window manager delivers a lot of what I like: simplicity, speed, and configurability. Some things, like tray icons, magically appear in other window managers. These items require a bit more configuration within i3 to get them set up well. In this post, I’ll explain how I handle tray icons in i3. Basic configuration The tray icon configuration is within the bar configuration for i3. You control it via tray_output....

2021-07-12 · 2 min · Major Hayden

Persuasion engineering

Mentorship stands out as one of my favorite parts of working in technology and I’ve been fortunate to be on both sides of mentoring relationships over the years. One common aspect of career growth is the ability to come up with a solution and then persuade other people to get on board with it. Not every change is a winner, but if you feel strongly that your solution will improve your product, transform your customer experience, or just make everyone’s lives a little easier, how do you convince other people to join you?...

2021-07-11 · 12 min · Major Hayden