Uncle Deadly Image

Hi there. Welcome to blog.oddbit.com! I post articles here on a variety of technical topics. Mostly I’m posting for myself (writing things up helps me remember them in the future), but I always hope the content I put here is helpful to someone else. If you find something here useful and want to say thanks, feel free to buy me a coffee!

A review of the Garmin Fenix 6(x)

A review of the Garmin Fenix 6(x)
I’ve been using a Garmin Fenix 6x for a couple of weeks and thought it might be interesting to put together a short review. Is it really a smartwatch? I think it’s a misnomer to call the Fenix a “smartwatch”. I would call it a highly capable fitness tracker. That’s not a knock on the product; I really like it so far, but pretty much everything it does is centered around either fitness tracking or navigation.
read more →

Packet, packet, who’s got the packet?

Packet, packet, who's got the packet?
In this question, August Vrubel has some C code that sets up a tun interface and then injects a packet, but the packet seemed to disappear into the ether. In this post, I’d like to take a slightly extended look at my answer because I think it’s a great opportunity for learning a bit more about performing network diagnostics. The original code looked like this: c original sendpacket.c #include <arpa/inet.h> #include <fcntl.
read more →

Setting up an IPv6 VLAN

Setting up an IPv6 VLAN
My internet service provider (FIOS) doesn’t yet (sad face) offer IPv6 capable service, so I’ve set up an IPv6 tunnel using the Hurricane Electric tunnel broker. I want to provide IPv6 connectivity to multiple systems in my house, but not to all systems in my house 1. In order to meet those requirements, I’m going to set up the tunnel on the router, and then expose connectivity over an IPv6-only VLAN.
read more →

Using KeyOxide

Using KeyOxide
In today’s post, we look at KeyOxide, a service that allows you to cryptographically assert ownership of online resources using your GPG key. Some aspects of the service are less than obvious; in response to some questions I saw on Mastodon I though I would put together a short guide to making use of the service. We’re going to look at the following high-level tasks: Create a GPG key Publish the GPG key
read more →

Delete GitHub workflow runs using the gh cli

Hello, future me. This is for you next time you want to do this. When setting up the CI for a project I will sometimes end up with a tremendous clutter of workflow runs. Sometimes they have embarrassing mistakes. Who wants to show that to people? I was trying to figure out how to bulk delete workflow runs from the CLI, and I came up with something that works: gh run list –json databaseId -q '.
read more →