Skip to content

Dispatches

Task: A Practical Guide to Cross-Platform Build Automation

Task

make is still one of the most useful tools in a developer's toolbox, but a lot of modern repositories need something more portable, more readable, and easier to share between local development and CI. Task is a fast, cross-platform task runner that keeps the good part of a Makefile, one command for common project workflows, while replacing the rough edges with a YAML-based Taskfile.yml, built-in dependency orchestration, variables, templating, caching, and first-class behavior on Windows, macOS, and Linux.

Field Dispatch: The First ESX Host Drifts from Custom Certificates After VMware Cloud Foundation 9 Instance Bring-Up

Effected Versions

  • VMware Cloud Foundation 9.0.x.x

If you're using securitySpec to deploy VMware Cloud Foundation 9.x with external CA-signed ESX certificates, the bring-up can look successful while still leaving you with one surprise:

Post Deployment Configuration Drift

The first ESX host will be deployed with a VMCA-signed certificate instead of the external CA-signed certificate provided.

I ran into this while testing external CA-signed certificates through both the API and Ansible. The JSON payload was accepted, the instance bring-up completed, the ESX hosts retained their external CA-signed certificates except for first ESX host, the one used during the bootstrap for the vCenter appliance.

Tip: Using the GitHub CLI to Copy Labels Between Repositories

Tip

If you manage multiple GitHub repositories and want consistent labels, drift happens quickly.

Use GitHub CLI to run gh label clone and copy a source repository's labels into a destination repository.

If gh is not installed yet, install it first:

brew install gh
sudo apt update && sudo apt install -y gh
# RHEL
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf install -y gh

# Fedora
sudo dnf install -y gh
winget install GitHub.cli

Then authenticate:

gh auth login
gh auth status

That second command is worth running. It confirms that your session is active before you try to modify repository settings.

Clone Labels into the Current Repository

If you are already in the destination repository directory, the command is simple:

gh label clone OWNER/SOURCE-REPO

Example:

gh label clone tenthirtyam/example

That copies every label from tenthirtyam/example into the current repository.

Target a Different Destination Repository

If you are not inside the destination repository, use --repo:

gh label clone OWNER/SOURCE-REPO --repo OWNER/DESTINATION-REPO

Example:

gh label clone tenthirtyam/source-example --repo tenthirtyam/destination-example

What Randy Pausch's The Last Lecture Still Teaches Us Still

Some books comfort you. Others hold up a mirror.

The Last Lecture by Randy Pausch does a little of both.

Pausch was a computer science professor at Carnegie Mellon University. In 2006, he was diagnosed with pancreatic cancer. By September 18, 2007, after learning the cancer had returned and that he had only months left to live, he gave his now-famous lecture, "Really Achieving Your Childhood Dreams."

The talk became a book, but the real reason it endures is simpler than its title suggests:

It's not about dying. It's about how to live while you're still here.

That distinction matters. A lot of writing about mortality becomes soft around the edges. Pausch did something better. He stayed funny, practical, and honest about disappointment, work, family, and the ways adults drift from what once made them feel alive.

Today, him words feel especially clarifying because modern life is crowded with noise. We optimize calendars, answer messages at red lights, and confuse urgency with importance. We get very efficient at moving and very unclear about where we are going.

Pausch's voice cuts through that. He keeps asking a hard, useful question:

What would you do differently if you stopped pretending you had unlimited time?

Ubuntu 26.04: How to Upgrade from 24.04 LTS

Ubuntu 26.04 LTS Resolute Raccoon

Ubuntu 26.04 LTS, Resolute Raccoon, was officially released on April 23, 2026.

If you're like me and want to upgrade now, here's a clean step-by-step process to do it on both Ubuntu Desktop and Ubuntu Server.

Before the Upgrade

Before you begin the upgrade, review the following checklist.

  1. Back up anything you care about.
  2. If the system is a VM, take a snapshot.
  3. Make sure the current 24.04 LTS install is fully patched.
  4. Make sure you have enough free disk space.
  5. Be prepared to answer interactive prompts during the upgrade.

On Ubuntu Server, I would also review any third-party repositories or PPAs before you start. They are a common source of upgrade friction, and Ubuntu may disable them during the release upgrade anyway.

Update the current system first:

sudo apt update
sudo apt dist-upgrade -o APT::Get::Always-Include-Phased-Updates=true
sudo reboot

EditorConfig Deep Dive: Syntax, Properties, and Best Practices

EditorConfig logo

Every shared repository eventually rediscovers the same avoidable argument: tabs or spaces, LF or CRLF, trim trailing whitespace or leave it alone, final newline or not. None of these questions are hard. They are just repetitive, noisy, and surprisingly good at wasting review time.

EditorConfig exists to move those decisions out of personal editor settings and into the repository itself. It is a simple, cross-editor standard for defining basic text file formatting rules so contributors using different editors and IDEs still save files in a consistent way.

This matters more than style bikeshedding. Inconsistent indentation creates ugly diffs. Inconsistent line endings break shell scripts and CI jobs. Trailing whitespace produces review noise that hides the change you actually care about. EditorConfig is not glamorous, but it solves a class of problems that should stay boring.

This guide covers how EditorConfig works, the syntax of .editorconfig files, the standard properties you can rely on, where editor support stands, and how to build a practical starter template for a modern repository.

Validity and Consequence

The porch light flickered in the stagnant heat.

"Well, that didn't feel a bit of good. What was you aimin' for with that?" I said, my skin prickling under the weight of her stare. "What were you aimin' for?"

I felt the hackles rise like a dog backed into a corner of the yard.

"Reckon you could find a different way to say your piece?" I stammered.

She spat into the dust, her eyes as cold and gray as a dry creek bed.

"Your feelin's are valid," she said, her voice a low rattle. "But your feelin's are your own, and I ain't sayin' they're wrong. Tho the way you went and acted on 'em sure is. Just 'cause you’re bleedin' don't give you the right to stain my floors."

The screen door slapped shut behind her.

Linux Kernel Sets Rules for AI-Generated Code

AI coding assistants were always going to force this conversation eventually. Tools like Copilot, ChatGPT, and Claude can draft code quickly, explain unfamiliar sections, and help contributors move through a patch faster than they could on their own. That is useful. It is also exactly the kind of shift that was bound to run into the Linux kernel's standards around trust, review, authorship, and licensing.

The kernel is not a project where code gets merged because it looks plausible. It is a project where contributors are expected to understand what they send, defend it under review, and stand behind it legally and technically. That is what makes the new guidance on AI-generated and tool-generated contributions worth paying attention to.