RSSAmplifier

Blog

Hypertext Dispatches

Hypertext Dispatches by Ryan Johnson

tenthirtyam.orgRSS feed ↗20 posts

Latest posts

Announcing the Packer Plugin for Artifactory

Today marks the v0.1.0 release of the Packer Plugin for Artifactory , my first standalone Packer plugin. This one's been on the list for a while. The plugin adds an artifactory post-processor. After a Packer build produces an OVA or OVF, the post-processor uploads it straight to JFrog Artifactory. Build, export, upload, done. No handoff step, no separate script, no copy-pasting artifact paths into…

Announcing the Packer Plugin for VMware vSphere v2.3.0

Packer Plugin for VMware vSphere v2.3.0 was released on 03 August 2026! This release expands how vsphere-clone starts a build. Inventory templates still work. So do content library items, and local or remote OVF/OVA packages. Remote sources support HTTP, HTTPS, and HTTPS with basic authentication. Pick the source that matches where the image already lives, then customize, provision, and publish as…

Oh, Adeline

An original murder ballad, inspired by the traditional folk songs “Poor Ellen Smith” and “Two Sisters” !!! warning "Trigger Warning" This piece incl...

For It All

!!! lyrics "Lyrics" **For It All** The radiator’s humming The lights are turned down low I’m leaning on the counter Watching head...

How to Structure an Ansible Collection

{ align=right width=150 .skip-lightbox } I recently wrapped up work on an Ansible collection I developed for a customer through my role at Broadcom. With the project complete, I wanted to write down the structure it followed and the reasons behind it. This guide is for developers building their first collection and maintainers checking an existing one against Ansible's recommended practices. Those…

Farmer's Daughter

!!! note "Reflection" Published alongside Field After Field, Song After Song , a reflection on the ...

Field After Field, Song After Song

90s country music takes me back to Saturday mornings in Southwest Georgia, when my dad, my brother, and I would climb into an old two-toned orange and white ...

Development Containers: Consistent Environments for Every Contributor

{ align=right width="200" .skip-lightbox } Some engineering teams hit the same friction eventually: A new developer clones the repository, follows the setup instructions, and spends the next two hours debugging why the toolchain that works on everyone else's machine doesn't work on theirs. The versions are slightly different. A system dependency is missing. The environment variable was never set.…

MCP Servers: A Practical Guide to Context on Demand

Model Context Protocol, or MCP, is how an AI client asks for context instead of waiting for you to shuttle it in. Clients can already expose open files, workspace context, and sometimes terminal output. Remote services, databases, CI runs, output from another shell, you still feed that in by hand. MCP gives the client a shared protocol to discover tools, read resources, and reach those systems…

I'll Be Damned

!!! note "Reflection" Some roads don't take you anywhere new; the ones that drag you back to what you can't forget. For me, that’s the haunted str...

Generating a Python SDK from an OpenAPI Specification

If your API ships an OpenAPI spec, OpenAPI Generator can build the Python client from it. You don't have to hand-write mode...

Making Sense of the Circle of Fifths

If the Circle of Fifths has always looked like one of those theory diagrams everyone swears is important but no one actually explains, you're not alone. The good news is that it's not really a chart about memorizing symbols. It's a map of how keys, chords, and musical motion relate to each other, and once you hear that on guitar, it starts feeling useful fast. For a lot of players, the Circle of…

vmcli: A Practical Guide for the VMware Fusion and Workstation Command Line

The command line is still the fastest way to script power state, disks, snapshots, and guest operations on with VMware Fusion (macOS) and **VMware Workst...

Requests vs. HTTPX: Choosing a Python HTTP Client

requests earned its reputation honestly. For a long time, if you needed to call an API, download a file, or glue two services together in Python, requests was usually the obvious answer. Async web frameworks, high-concurrency services, and I/O-heavy workloads changed what many teams need from an HTTP client. That's where httpx starts to matter. This post compares requests and httpx from the point…

Decoding the Major and Minor Pentatonic Scales

If you've ever felt trapped inside the classic minor pentatonic box, you're not alone. The good news is that the box isn't the problem. The real breakthrough comes when you understand what the notes inside that shape are doing, and that's the moment the fretboard starts making sense. Most intermediate players start in the same place: Minor Pentatonic Position 1 , fingers parked at the 5th fret,…

Hay for the Heifers

!!! note "Reflection" Farm work looks noble from a distance, viewed through the softening lens of years gone by. But it was just sweat, salt, and t...

Nginx: A Practical Deep Dive

Nginx ends up in front of a surprising amount of web traffic. You might not think much about it until you have to troubleshoot a redirect loop, a broken certificate renewal, or an application that only fails once it sits behind a proxy. Static sites, application servers, APIs, internal tools, container platforms, and CDN origins often have Nginx somewhere out front. People keep using it because…

VMware Workstation and Fusion 26H1 Release

VMware Workstation Pro and Fusion Pro 26H1 shipped recently and was a fairly quiet release. The biggest change in Workstation Pro 26H1 is the move to a ful...

How I'm Preparing for GH-600, GitHub's Agentic AI Developer Certification

{ align=right width=175 } When I published Branching Out: GitHub Certification Path , GitHub had five certifications. That list is already out of date, and so is my own exam roadmap. GitHub has now added a sixth exam: GH-600, GitHub Certified: Agentic AI Developer (beta) . As of June 6, 2026, this one is still in beta, and it fills a different role than the existing Copilot certification. The…

Versioning Documentation with ProperDocs and mike

If you're using ProperDocs, versioned publishing should be straightforward. Build the docs for a release, publish them under a stable version label, and leave older versions alone. Until mike v2.2.0, that simple workflow still carried a nagging question: did the rest of the tooling really understand ProperDocs, or was it still assuming MkDocs under the hood? mike publishes each supported release…