Domain names actually end with a period and why that might subtly break your system

DNS is the protocol that converts domain names like “technowizardry.net” into the IP address of the server that will respond like “144.217.181.222”. In DNS, domain names actually are supposed to end with a period. For example, the URL of this website is not “www.technowizardry.net”, but it’s actually “www.technowizardry.net.” Notice the period at the end. Where does this come from? If you look at a DNS packet in a packet capture, you’ll see that each query looks something like this:

Accurate, Local Home Energy Monitoring: Part 2 - Network Config

This article is part of the Home Energy Monitoring series.

This post continues from the previous post in the series where I walked through the decision process on what energy monitor system to use and how to install Brultech GEM Monitor. I ended with the hardware physically installed and all Current Transformers (CTs) connected. In this post, I continue from that point and walk through the network and software configuration defining each circuit size. Network Configuration First, connect the device to the network (I’m using Ethernet) and ensure it’s turned on.

Kubernetes: A hybrid Calico and Layer 2 Bridge+DHCP network using Multus

This article is part of the Home Lab series.

Previously in my Home Lab series, I described how my home lab Kubernetes clusters runs with a DHCP CNI–all pods get an IP address on the same layer 2 network as the rest of my home and an IP from DHCP. This enabled me to run certain software that needed this like Home Assistant which wanted to be able to do mDNS and send broadcast packets to discover device. However, not all pods actually needed to be on the same layer 2 network and lead to a few situations where I ran out of IP addresses on the DHCP server and couldn’t connect any new devices until reservations expired:

How to gain access to a RKE2 cluster without Rancher when the CNI doesn't work

In my previous post where I outlined challenges that I’ve encountered with Rancher. As part of the feedback to that I ended up having to rebuild one of my clusters. I took that time to try out RKE2 and K3s for my home lab. In this home lab, I use a custom CNI based on the official Bridge and DHCP IPAM CNIs (Read more) to enable my smart home software (HomeAssistant) to communicate with other devices on the same Layer 2 domain.

Defensive Coding: Stop using your storage models everywhere

How to make your system robust against your worst nightmare–your future self In this post, I talk about some strategies that I’ve learned to simplify class structures in Java services that load and persist data into data stores like DynamoDB or RDS at the same time making the codebase safer. As always, my opinions are my own. At Amazon, I ended up joining two teams that were suffering under the technical debt.