blog.oddbit.com
Applying custom configuration to Nginx Gateway Fabric
Processing deeply nested JSON with jq streams
Managing containers with Pytest fixtures
NAT between identical networks using VRF
Simple error handling in C
A review of the Garmin Fenix 6(x)
Packet, packet, who's got the packet?
Setting up an IPv6 VLAN
Using KeyOxide
Delete GitHub workflow runs using the gh cli
Kubernetes, connection timeouts, and the importance of labels
Directing different ports to different containers with Traefik
Udev rules for CH340 serial devices
A pair of userscripts for cleaning up Stack Exchange sites
Kubernetes External Secrets
Connecting OpenShift to an External Ceph Cluster
Creating a VXLAN overlay network with Open vSwitch
Getting started with KSOPS
Tools for writing about Git
File reorganization
Editing a commit message without git rebase
Object storage with OpenShift Container Storage
Remediating poor PyPi performance with DevPi
symtool: a tool for interacting with your SYM-1
To sleep or not to sleep?
Animating a map of Covid in the Northeast US
A note about running gpgv
Installing metallb on OpenShift with Kustomize
Vortex Core Keyboard Review
Building multi-architecture images with GitHub Actions
OpenShift and CNV: MAC address management in CNV 2.4
OpenShift and CNV: Exposing virtualized services
OpenShift and CNV: Installer network requirements
You can't get an N95 mask: Now what?
Grove Beginner Kit for Arduino (part 2): First look
Grove Beginner Kit for Arduino (part 1)
Some thoughts on Mechanical Keyboards
I see you have the machine that goes ping...
A passwordless serial console for your Raspberry Pi
Configuring Open vSwitch with nmcli
How long is a cold spell in Boston?
Snarl: A tool for literate blogging
OVN and DHCP: A minimal example
TM-V71A and Linux, part 1: Programming mode
Avoid rebase hell: squashing without rebasing
Git Etiquette: Commit messages and pull requests
Running Keystone with Docker Compose
A DIY CPAP Battery Box
Unpacking a Python regular expression
New comment system
New static site generator
Adding support for privilege escalation to Ansible's docker connection driver
Writing Ansible filter plugins
Docker build learns about secrets and ssh agent forwarding
In which I PEBKAC so you don't have to
ATOMIC_BLOCK magic in avr-libc
AVR micro-optimization: Avr-gcc and --short-enums
AVR micro-optimization: Losing malloc
Debugging attiny85 code, part 1: simavr and gdb
Debugging attiny85 code, part 2: Automating GDB with scripts
Debugging attiny85 code, part 3: Tracing with simavr
PiPower: A Raspberry Pi UPS
Integrating Bitwarden with Ansible
Systemd unit for managing USB gadgets
Configuring a static address for wlan0 on Raspbian Stretch
Using a TM1637 LED module with CircuitPython
Multiple 1-Wire Buses on the Raspberry Pi
Using Docker macvlan networks
Listening for connections on all ports/any port
Grouping aggregation queries in Gnocchi 4.0.x
Listing iptables rules with line numbers
Pelican and theme update
Fun with devicemapper snapshots
Safely restarting an OpenStack server with Ansible
Some notes on PWM on the Raspberry Pi
Ansible for Infrastructure Testing
Better bulk filtering for Gmail
OpenStack, Containers, and Logging
FAA Cannot Require Drone Registration
Making sure your Gerrit changes aren't broken
Exploring YAQL Expressions
Connecting another vm to your tripleo-quickstart deployment
A collection of git tips
Deploying an HA OpenStack development environment with tripleo-quickstart
Gruf gets superpowers
Gruf, a Gerrit command line utility
A systemd-nspawn connection driver for Ansible
Folding long lines in Ansible inventory files
Systemd-nspawn for fun and...well, mostly for fun
Installing pyspatialite on Fedora
Ansible 2.0: New OpenStack modules
Automatic git cache
Stupid Ansible Tricks: Running a role from the command line
Bootstrapping Ansible on Fedora 23
Ansible 2.0: The Docker connection driver
Running NTP in a Container
Migrating Cinder volumes between OpenStack environments using shared NFS storage
Provider external networks (in an appropriate amount of detail)
In which we are amazed it doesn't all fall apart
Mapping local users to Kerberos principals with SSSD
OpenStack Networking without DHCP
Heat-kubernetes Demo with Autoscaling
Teach git about GIT_SSL_CIPHER_LIST
Suggestions for the Docker MAINTAINER directive
Using tools badly: time shifting git commits with Workinghours
Booting cloud images with libvirt
Diagnosing problems with an OpenStack deployment
Converting hexadecimal ip addresses to dotted quads with Bash
Visualizing Pacemaker resource constraints
Stupid Pacemaker XML tricks
Unpacking Docker images with Undocker
Installing nova-docker with devstack
External networking for Kubernetes services
Installing nova-docker on Fedora 21/RDO Juno
Creating minimal Docker images from dynamically linked ELF binaries
Filtering libvirt XML in Nova
Docker vs. PrivateTmp
Running nova-libvirt and nova-docker on the same host
Building a minimal web server for testing Kubernetes
Accessing the serial console of your Nova servers
Cloud-init and the case of the changing hostname
Starting systemd services without blocking
Fedora Atomic, OpenStack, and Kubernetes (oh my)
Creating a Windows image for OpenStack
Building Docker images with Puppet
Docker networking with dedicated network containers
Integrating custom code with Nova using hooks
Stupid command line tricks: Quickly share screen captures
Heat Hangout
Visualizing Heat stacks
Docker plugin bugs
Annotated documentation for DockerInc::Docker::Container
Docker plugin for OpenStack Heat
Using wait conditions with Heat
nova-docker and environment variables
lvcache: a tool for managing LVM caches
Four ways to connect a docker container to a local network
gpio-watch: Run scripts in response to GPIO signals
Tracking down a kernel bug with git bisect
Booting an instance with multiple fixed addresses
Multiple external networks with a single L3 agent
Video: Configuring OpenStack's external bridge on a single-interface system
Open vSwitch and persistent MAC addresses
Solved: Open vSwitch and persistent MAC addresses
Sharing a terminal session with termshare
Fedora and OVS Bridge Interfaces
Firewalld, NetworkManager, and OpenStack
Flat networks with ML2 and OpenVSwitch
Extending Puppet
Multinode OpenStack with Packstack
Show OVS external-ids
Stupid OpenStack Tricks
Direct access to Nova metadata
RDO Bug Triage
Visualizing Neutron Networking with GraphViz
An introduction to OpenStack Heat
A Python interface to signalfd() using FFI
Long polling with Javascript and Python
Sockets on OpenShift
A unified CLI for OpenStack
Automatic maintenance of tag feeds
Enabled blog comments
json-tools: cli for generating and filtering json
Quantum in Too Much Detail
Moving to GitHub
A random collection of OpenStack Tools
Why does the Neutron documentation recommend three interfaces?
Automatic hostname entries for libvirt domains
Interrupts on the PiFace
Generating a memberOf attribute for posixGroups
Split concatenated certificates with awk
Did Arch Linux eat your KVM?
I2C on the Raspberry Pi
Interrupt driven GPIO with Python
Controlling a servo with your Arduino
A quote about XMLRPC
A systemd unit for ucarp
Running dhcpcd under LXC
Cleaning up LXC cgroups
How do I LXC console?
Systemd and the case of the missing network
A second look at Arch Linux
Parsing Libvirt XML with xmllint
Getting the IP address of a libvirt domain
A first look at Arch Linux
Service discovery in the cloud using Avahi
Using Oracle JDK under CentOS
Document classification with POPFile
Converting HTML to Markdown
Relocating from Blogger
Posting to Scriptogr.am using the API
Private /tmp directories in Fedora
Automatic configuration of Windows instances in OpenStack, part 1
Generating random passwords in PowerShell
Waiting for networking using PowerShell
Growing a filesystem on a virtual disk
Parsing XML with Awk
Markdown in your Email
Chasing OpenStack idle connection timeouts
Git fetch, tags, remotes, and more
Capturing Envoy Data
Enphase Envoy XML Data Format
Rate limiting made simple
Puppet, scope, and inheritance
Fixing RPM with evil magic
Installing CrashPlan under FreeBSD 8
Signing data with ssh-agent
Converting OpenSSH public keys
Python ctypes module
Importing vCard contacts into an LG 420G
Patch to gPXE dhcp command
Kerberos authenticated queries to Active Directory
Pushing a Git repository to Subversion
LDAP redundancy through proxy servers
Apache virtual host statistics
Merging directories with OpenLDAP's Meta backend
Filtering Blogger feeds
Funny usage message
MBTA realtime XML feed
Blocking VNC with iptables
NFS and the 16-group limit
Cleaning up Subversion with Git
Linux UPnP Gateway
Retrieving Blogger posts by post id
Fring: How not to handle registration