tech
Give Your AI Agent Eyes: Using CI + Data to Make AI More Accurate and Successful
<p>I keep coming back to the same argument with people about AI coding agents: the model isn't the interesting variable anymore, the <em>data and the engineering practices around it</em> are. An agent staring at nothing but source code is doing the same thing a tired engineer does at 2am with no dashboards up and no […]
Leaning k8s the Cooper way via Claude and Ansible …
Building Kubernetes the Hard Way — Then Automating It All with Ansible How I went from zero k8s knowledge to a fully IPv6-only, BGP-routed, HA Kubernetes cluster in 7 weeks — and what I learned along the way. Please note 99.69% of this blog post was generated by claude code with minimal editing by Cooper. […]
nftables telemetry in 2026
<p>I've been running nftables for years. But I've never sat down to get good telemetry for it. For firewalls to get good telemetry coverage I feel you need:</p> <ul> <li><strong>Rule Statistics</strong> <ul> <li>See what rules are getting hit</li> <li>Overly hot rules</li> <li>Rules no longer getting hit (cleanup)</li> </ul> </li> <li><strong>Logs + Analysis</strong> <ul> <li>Summarized traffic […]
systemd … targeting Requires=, Wants, Before= and happily ever After= again …
systemd progressed the Linux PID 1 situation adding many feature and capabilities. But, as always, with features and capabilities, comes complexity. One thing I and many co-workers have found difficult is getting startup order right, especially with custom targets. First lets define some systemd concepts: unit: a configuration file that describes a service, a socket, […]
Book REVIEW: Linux Service Management Made Easy with systemd: Advanced techniques to effectively manage, control, and monitor Linux systems and services 1st Edition
<p><a href="https://www.amazon.com/gp/product/B09D3VHLD2/" title="Amazon Link">Amazon Link</a></p> <ul> <li>Disclaimer: I get no royalites or anything here – Just had coworkers ask me about it</li> </ul> <p>So since I'm no systems guru and am now working on a Linux Distribution effectively at work I thought I'd read this book. Especially since it relies so heavily on <a href="https://systemd.io/" […]
Stop IPv4 Point-To-Point Addressing your Networks
<p>IPv4 addressing on links is no longer required to route IPv4. What you say?? Yes, you can stop IPv4 addressing your point to point links with <em>Legacy IP</em> and route your IPv4 addressed packets via IPv6 next hops!</p> <ul> <li>With this we can save Public IPv4 addressing!</li> <li>We now only need a Public IPv4 loopback […]
NAT64: Using `jool` on Ubuntu 20.04
I found that jool has very good tutorials, but all the commands to get going are hidden in these large tutorials. Here are the steps I took to get it working on Ubuntu 20.04 on both a Raspberry Pi + Protectli Vault. Please pre-read and refer to to Jool’s Documentation for more information. I have […]
Ansible + Handy PyPI CLI Tools
I often use a lot of PyPI CLI tools. Here is an example of how to get them easily installed and kept up to date via Ansible on Ubuntu >= 18.04. Install base pip via apt then run pip: – name: Get Python3 pip package: name: python3-pip state: latest – name: Add some handy Python […]
IPv6 + Flow labels
Recently a teammate and I have come across a frame forwarding issue with ECMP on a hardware ASIC in a device I work on where the use of Flow labels are used in the ECMP hash. This was interesting as we found iperf was not setting the Flow label at all, unless you specify the -L […]
BitBucket + hg + branch merges
Ever have to update/merge a PR on BitBucket with Mercurial? I couldn’t find documentation anywhere, so doing so here: hg up BOOKMARK_NAME hg merge [–preview] -r REV If EDITOR is not set: export EDITOR=vim hg resolve –all hg commit -m “Merge with default” hg push –allow-anon