2023

Nov

  1. Applying custom configuration to Nginx Gateway Fabric

Jul

  1. Processing deeply nested JSON with jq streams
  2. Managing containers with Pytest fixtures

Feb

  1. NAT between identical networks using VRF
  2. Simple error handling in C
  3. A review of the Garmin Fenix 6(x)
  4. Packet, packet, who's got the packet?

2022

Nov

  1. Setting up an IPv6 VLAN
  2. Using KeyOxide

Sep

  1. Delete GitHub workflow runs using the gh cli
  2. Kubernetes, connection timeouts, and the importance of labels

Jun

  1. Directing different ports to different containers with Traefik

Feb

  1. Udev rules for CH340 serial devices

2021

Sep

  1. A pair of userscripts for cleaning up Stack Exchange sites
  2. Kubernetes External Secrets

Aug

  1. Connecting OpenShift to an External Ceph Cluster

Apr

  1. Creating a VXLAN overlay network with Open vSwitch

Mar

  1. Getting started with KSOPS

Feb

  1. Tools for writing about Git
  2. File reorganization
  3. Editing a commit message without git rebase
  4. Object storage with OpenShift Container Storage
  5. Remediating poor PyPi performance with DevPi
  6. symtool: a tool for interacting with your SYM-1

2020

Dec

  1. To sleep or not to sleep?
  2. Animating a map of Covid in the Northeast US

Oct

  1. A note about running gpgv

Sep

  1. Installing metallb on OpenShift with Kustomize
  2. Vortex Core Keyboard Review
  3. Building multi-architecture images with GitHub Actions

Aug

  1. OpenShift and CNV: MAC address management in CNV 2.4

Jul

  1. OpenShift and CNV: Exposing virtualized services
  2. OpenShift and CNV: Installer network requirements
  3. You can't get an N95 mask: Now what?

Jun

  1. Grove Beginner Kit for Arduino (part 2): First look

Apr

  1. Grove Beginner Kit for Arduino (part 1)
  2. Some thoughts on Mechanical Keyboards

Mar

  1. I see you have the machine that goes ping...

Feb

  1. A passwordless serial console for your Raspberry Pi
  2. Configuring Open vSwitch with nmcli

Jan

  1. How long is a cold spell in Boston?
  2. Snarl: A tool for literate blogging

2019

Dec

  1. OVN and DHCP: A minimal example

Oct

  1. TM-V71A and Linux, part 1: Programming mode

Jun

  1. Avoid rebase hell: squashing without rebasing
  2. Git Etiquette: Commit messages and pull requests
  3. Running Keystone with Docker Compose

May

  1. A DIY CPAP Battery Box
  2. Unpacking a Python regular expression
  3. New comment system
  4. New static site generator

Apr

  1. Adding support for privilege escalation to Ansible's docker connection driver
  2. Writing Ansible filter plugins

Feb

  1. Docker build learns about secrets and ssh agent forwarding
  2. In which I PEBKAC so you don't have to
  3. ATOMIC_BLOCK magic in avr-libc

Jan

  1. AVR micro-optimization: Avr-gcc and --short-enums
  2. AVR micro-optimization: Losing malloc
  3. Debugging attiny85 code, part 1: simavr and gdb
  4. Debugging attiny85 code, part 2: Automating GDB with scripts
  5. Debugging attiny85 code, part 3: Tracing with simavr
  6. PiPower: A Raspberry Pi UPS

2018

Oct

  1. Integrating Bitwarden with Ansible
  2. Systemd unit for managing USB gadgets

Jun

  1. Configuring a static address for wlan0 on Raspbian Stretch

May

  1. Using a TM1637 LED module with CircuitPython

Mar

  1. Multiple 1-Wire Buses on the Raspberry Pi
  2. Using Docker macvlan networks

Feb

  1. Listening for connections on all ports/any port
  2. Grouping aggregation queries in Gnocchi 4.0.x
  3. Listing iptables rules with line numbers

Jan

  1. Pelican and theme update
  2. Fun with devicemapper snapshots
  3. Safely restarting an OpenStack server with Ansible

2017

Sep

  1. Some notes on PWM on the Raspberry Pi

Aug

  1. Ansible for Infrastructure Testing

Jul

  1. Better bulk filtering for Gmail

Jun

  1. OpenStack, Containers, and Logging

May

  1. FAA Cannot Require Drone Registration

Jan

  1. Making sure your Gerrit changes aren't broken

2016

Aug

  1. Exploring YAQL Expressions

May

  1. Connecting another vm to your tripleo-quickstart deployment

Feb

  1. A collection of git tips
  2. Deploying an HA OpenStack development environment with tripleo-quickstart
  3. Gruf gets superpowers
  4. Gruf, a Gerrit command line utility
  5. A systemd-nspawn connection driver for Ansible
  6. Folding long lines in Ansible inventory files
  7. Systemd-nspawn for fun and...well, mostly for fun

2015

Nov

  1. Installing pyspatialite on Fedora

Oct

  1. Ansible 2.0: New OpenStack modules
  2. Automatic git cache
  3. Stupid Ansible Tricks: Running a role from the command line
  4. Bootstrapping Ansible on Fedora 23
  5. Ansible 2.0: The Docker connection driver
  6. Running NTP in a Container

Sep

  1. Migrating Cinder volumes between OpenStack environments using shared NFS storage

Aug

  1. Provider external networks (in an appropriate amount of detail)

Jul

  1. In which we are amazed it doesn't all fall apart
  2. Mapping local users to Kerberos principals with SSSD

Jun

  1. OpenStack Networking without DHCP
  2. Heat-kubernetes Demo with Autoscaling

May

  1. Teach git about GIT_SSL_CIPHER_LIST

Apr

  1. Suggestions for the Docker MAINTAINER directive
  2. Using tools badly: time shifting git commits with Workinghours

Mar

  1. Booting cloud images with libvirt
  2. Diagnosing problems with an OpenStack deployment
  3. Converting hexadecimal ip addresses to dotted quads with Bash

Feb

  1. Visualizing Pacemaker resource constraints
  2. Stupid Pacemaker XML tricks
  3. Unpacking Docker images with Undocker
  4. Installing nova-docker with devstack
  5. External networking for Kubernetes services
  6. Installing nova-docker on Fedora 21/RDO Juno
  7. Creating minimal Docker images from dynamically linked ELF binaries
  8. Filtering libvirt XML in Nova

Jan

  1. Docker vs. PrivateTmp
  2. Running nova-libvirt and nova-docker on the same host
  3. Building a minimal web server for testing Kubernetes

2014

Dec

  1. Accessing the serial console of your Nova servers
  2. Cloud-init and the case of the changing hostname
  3. Starting systemd services without blocking

Nov

  1. Fedora Atomic, OpenStack, and Kubernetes (oh my)
  2. Creating a Windows image for OpenStack

Oct

  1. Building Docker images with Puppet
  2. Docker networking with dedicated network containers

Sep

  1. Integrating custom code with Nova using hooks
  2. Stupid command line tricks: Quickly share screen captures
  3. Heat Hangout
  4. Visualizing Heat stacks
  5. Docker plugin bugs

Aug

  1. Annotated documentation for DockerInc::Docker::Container
  2. Docker plugin for OpenStack Heat
  3. Using wait conditions with Heat
  4. nova-docker and environment variables
  5. lvcache: a tool for managing LVM caches
  6. Four ways to connect a docker container to a local network

Jul

  1. gpio-watch: Run scripts in response to GPIO signals
  2. Tracking down a kernel bug with git bisect

May

  1. Booting an instance with multiple fixed addresses
  2. Multiple external networks with a single L3 agent
  3. Video: Configuring OpenStack's external bridge on a single-interface system
  4. Open vSwitch and persistent MAC addresses
  5. Solved: Open vSwitch and persistent MAC addresses
  6. Sharing a terminal session with termshare
  7. Fedora and OVS Bridge Interfaces
  8. Firewalld, NetworkManager, and OpenStack
  9. Flat networks with ML2 and OpenVSwitch

Apr

  1. Extending Puppet

Feb

  1. Multinode OpenStack with Packstack

Jan

  1. Show OVS external-ids
  2. Stupid OpenStack Tricks
  3. Direct access to Nova metadata
  4. RDO Bug Triage

2013

Dec

  1. Visualizing Neutron Networking with GraphViz
  2. An introduction to OpenStack Heat

Nov

  1. A Python interface to signalfd() using FFI
  2. Long polling with Javascript and Python
  3. Sockets on OpenShift
  4. A unified CLI for OpenStack
  5. Automatic maintenance of tag feeds
  6. Enabled blog comments
  7. json-tools: cli for generating and filtering json
  8. Quantum in Too Much Detail
  9. Moving to GitHub
  10. A random collection of OpenStack Tools

Oct

  1. Why does the Neutron documentation recommend three interfaces?
  2. Automatic hostname entries for libvirt domains

Aug

  1. Interrupts on the PiFace

Jul

  1. Generating a memberOf attribute for posixGroups
  2. Split concatenated certificates with awk

Apr

  1. Did Arch Linux eat your KVM?

Mar

  1. I2C on the Raspberry Pi
  2. Interrupt driven GPIO with Python
  3. Controlling a servo with your Arduino

Feb

  1. A quote about XMLRPC
  2. A systemd unit for ucarp
  3. Running dhcpcd under LXC

Jan

  1. Cleaning up LXC cgroups
  2. How do I LXC console?
  3. Systemd and the case of the missing network
  4. A second look at Arch Linux

2012

Dec

  1. Parsing Libvirt XML with xmllint
  2. Getting the IP address of a libvirt domain
  3. A first look at Arch Linux

Nov

  1. Service discovery in the cloud using Avahi
  2. Using Oracle JDK under CentOS
  3. Document classification with POPFile
  4. Converting HTML to Markdown
  5. Relocating from Blogger
  6. Posting to Scriptogr.am using the API
  7. Private /tmp directories in Fedora
  8. Automatic configuration of Windows instances in OpenStack, part 1
  9. Generating random passwords in PowerShell
  10. Waiting for networking using PowerShell

Oct

  1. Growing a filesystem on a virtual disk

Sep

  1. Parsing XML with Awk

Aug

  1. Markdown in your Email

Jul

  1. Chasing OpenStack idle connection timeouts
  2. Git fetch, tags, remotes, and more

Feb

  1. Capturing Envoy Data
  2. Enphase Envoy XML Data Format

2011

Dec

  1. Rate limiting made simple

Aug

  1. Puppet, scope, and inheritance

Jul

  1. Fixing RPM with evil magic

May

  1. Installing CrashPlan under FreeBSD 8
  2. Signing data with ssh-agent
  3. Converting OpenSSH public keys

2010

Aug

  1. Python ctypes module
  2. Importing vCard contacts into an LG 420G

Jul

  1. Patch to gPXE dhcp command

Jun

  1. Kerberos authenticated queries to Active Directory

May

  1. Pushing a Git repository to Subversion

Feb

  1. LDAP redundancy through proxy servers
  2. Apache virtual host statistics
  3. Merging directories with OpenLDAP's Meta backend
  4. Filtering Blogger feeds
  5. Funny usage message
  6. MBTA realtime XML feed
  7. Blocking VNC with iptables
  8. NFS and the 16-group limit

Jan

  1. Cleaning up Subversion with Git
  2. Linux UPnP Gateway
  3. Retrieving Blogger posts by post id
  4. Fring: How not to handle registration