Pulling Cables

The homelab has started to sprawl out of the tidy little closet it started in, and I began wondering if I could relocate parts of it to a less visible part of the house. The trouble is, that the ethernet connections all converged at this one tiny closet, and the drywall was all buttoned-up and I had no intention of drilling holes to run new cables. The angle was somewhat tricky, where I could fish a cable up the wall, but could not get to it from across the ceiling.
Read more >

Rotating Domains

This last year has certainly been busy, both professionally, and personally. I’ve not much made the time to reflect, but I expect to change that. As the new year began, I was thinking of the future and wondering about the digital footprint that I’ve left behind. With a meager couple decades of internet connectivity, I give thanks for the alley behind my parents old house where I could ride my bicycle, and the drainage ditch nearby that I was able to explore when I was young.
Read more >

Kubernetes for a New Year, or the Next Ten

After reading one book, taking a class, and a couple false starts, Kubernetes was very much in front of me as something I needed to learn. As a long time home-lab herder, often a great way for me to learn is to get hands-on. So I decided to build a new lab and start migrating some services to it. With just a little bit of research and talking to some knowledgeable folks, I landed on using K3s on a three node cluster on fan-less hardware backed with a PostgreSQL database somewhere off-cluster.
Read more >

Database Schema Generation with Protobuf

As I look to reduce the number of touch points that are required to make a change to my personal system, I’m always thinking about how to reduce complexity and leverage existing tooling. In this way, we can continue to leverage an existing foundation to build out further abstractions. One such lever I have worked on over the last year was using my gRPC protobuf definitions to generate LDAP schema files that could be loaded into the server to match the objects that I’d be working with in Go.
Read more >

Operational Overhead

On the path to improving the reliability of a given system, the oscillation between two modes of work is often necessary. The first mode here is that which is directly affecting the change on a system, and the second describes that which is improving the method by which change is made on a given system. These are references for a mental model that could be applied to a system as simple as a lever, or as complicated as an automobile manufacturing plant.
Read more >

Graphing with Environment Sensors

A few years ago, I started dabbling with the ESP chips that have become so popular. For me, the ease of WiFi, and the Arduino compatibility meant that I was able to get up and running much faster. Not having a background in electrical engineering, the simple things like having a good base with the PCB, a couple sensors built-in and easy expansion makes all the difference. Before the ESP chips, I’d tried several other wireless communication chips that were each challenging in their own way.
Read more >

Gratitude and Forgiveness

I give thanks to all those in my life who have forgiven me for my humanity, for my inability to act in the most dignified and uprightly manner at all times. I give thanks for the opportunity to remember my blunders, and improve my behavior and the manner in which I seek to conduct myself, without loosing the relationships that that have grown with others, the forgiveness from whom I work to either repay, or pay forward.
Read more >

Action Required

I’m a planner, and whether I want to be or not, my mind just starts to push out and extrapolate on the present to derive the future. Lately I’ve been finding that its quite difficult to plan in multiple areas of my life at the same time. Each tendril of a plan tends to have its own agenda, calling on my attention to meet its own conclusions, but attention is an increasingly limited resource.
Read more >

New Terminal

For years I had it in my head that urxvt was the best terminal emulator one could find. I ignored all those little areas of Unix management where I’d have to set my TERM variable to something like xterm-256color before some remote shell would recognize my terminal correctly, or where F keys had to be configured before they would be passed to the running application. Those little moments when I’d load a new color scheme for mutt, or vim, and I could tell that I wasn’t quite getting the same experience that everyone else who installed the plug-in had.
Read more >

Junos Configuration Management

Its been a year since my last post, and I’m thinking its time to make another. Lately I’ve been trying to work through some network management solutions to try and define the problem more clearly. This is an interesting problem primary because I’m unable to rely on my previous tool sets to get this done. Namely, Puppet running on the host. There are a couple interesting Python tools for this purpose that I’d given a spin, but the more I was working in them, the more I was wishing I was writing in Go.
Read more >