How to unpublish/redact/undo/retract a Go release (3 mins read).

How to retract a release version of a Go version, without risking folks automagically upgrade to that version.
How to unpublish/redact/undo/retract a Go release (3 mins read).

How to retract a release version of a Go version, without risking folks automagically upgrade to that version.
Week Notes 24#02 (5 mins read).
What happened in the week of 2024-01-08?
How do you represent a JSON field in Go that could be absent, null or have a value? (5 mins read).

Why it's surprisingly hard to work out a field has been sent or whether it's explicitly null, when using Go's encoding/json.
Week Notes 24#01 (2 mins read).
What happened in the week of 2024-01-01?
Why is set -eu not working? (2 mins read).
Why you may be finding set -u in a shell script not exiting when set -e is also present.
2023's Music In Review (1 mins read).
What music was I listening to in 2023?
2023's Site In Review (2 mins read).

How did my site perform in 2023?
Week Notes 23#52 (2 mins read).
What happened in the week of 2023-12-25?
Week Notes 23#51 (2 mins read).
What happened in the week of 2023-12-18?
Week Notes 23#50 (3 mins read).
What happened in the week of 2023-12-11?
Week Notes 23#49 (3 mins read).
What happened in the week of 2023-12-04?
You can now interact with dependency-management-data using GraphQL (2 mins read).

Announcing the release of the GraphQL API for dependency-management-data.
Week Notes 23#48 (4 mins read).
What happened in the week of 2023-11-27?
Week Notes 23#47 (2 mins read).
What happened in the week of 2023-11-20?
You can now use Open Policy Agent with dependency-management-data (2 mins read).

How to use Open Policy Agent to perform much more effective flagging of package compliance with dependency-management-data.
Week Notes 23#46 (4 mins read).
What happened in the week of 2023-11-13?
Week Notes 23#45 (5 mins read).
What happened in the week of 2023-11-06?
Introducing snyk-export-sbom to export SPDX and CycloneDX SBOM from Snyk (2 mins read).

Creating a new command-line tool for more easily retrieving Software Bill of Materials (SBOMs) from Snyk, as well as adding licensing information to SBOMs.
Week Notes 23#44 (3 mins read).
What happened in the week of 2023-10-30?
Using dependency-management-data with npm's SPDX and CycloneDX SBOM export functionality (1 mins read).

How to get started with npm's SBOM export functionality with dependency-management-data.
Introducing renovate-to-sbom to convert Renovate data to Software Bill of Materials (SBOMs) (1 mins read).

Creating a new command-line tool for converting Renovate data exports to Software Bill of Materials (SBOMs).
dependency-management-data now supports OSS Review Toolkit (ORT) (1 mins read).

How to use data from OSS Review Toolkit (ORT) with dependency-management-data.
Week Notes 23#43 (3 mins read).
What happened in the week of 2023-10-23?
Getting Go modules to work with nested GitLab groups (3 mins read).

How to get Go modules to work with nested groups in GitLab for public or private repos.
Performing a v2 release of a Go module (1 mins read).

How to prepare your Go module for its first breaking change release.
Building resilient, runnable command-line demos with Asciinema and demo (3 mins read).
How to use the demo library alongside Asciinema to make it easier to build and maintain demos for your command-line tools.
Importing a subdirectory from one repo into another (1 mins read).

How to import a subdirectory of a given Git repository into another one, using git subtree.
How we reduced oapi-codegen's dependency overhead by ~84% (6 mins read).

An example of how to reduce the size of a Go module's dependencies by taking advanage of Go module pruning.
Week Notes 23#42 (5 mins read).
What happened in the week of 2023-10-16?
Plea to Software Composition Analysis (SCA) providers and Software Bill of Materials (SBOMs) producers: give us more data! (2 mins read).
Why I think dependency scanning tooling should be providing as much data as possible about scanned projects, to allow other tooling to make better inferences about the data.
Week Notes 23#41 (5 mins read).
What happened in the week of 2023-10-09?
Which version of Go was used to compile this binary? (2 mins read).

How to use a few means to work out what version of Go a given binary was compiled with.
Utilising Renovate's local platform to make renovate-graph more efficient (2 mins read).

How using the local platform with renovate-graph can increase the performance of dependency extraction.
Gotcha: Using vCluster on Elastic Kubernetes Service requires a Container Storage Interface driver (2 mins read).

How to avoid PersistentVolumeClaims getting stuck in a Pending state with vCluster and EKS when you've not set up the cluster with a Container Storage Interface driver for Elastic Block Store.
Listing environment variables used to trigger a Buildkite pipeline (1 mins read).
How to use Buildkite's GraphQL API to list the environment variables provided to trigger a pipeline.
Publishing My On-Call Compensation History (1 mins read).
Publishing a page detailing the on-call compensation I've received over the years.
Week Notes 23#40 (5 mins read).
What happened in the week of 2023-10-02?
Why should you blog? (12 mins read).
A writeup of my talk at DDD East Midlands around why you should start blogging.
Solving /usr/lib/Xorg.wrap: Only console users are allowed to run the X server errors with tmux over SSH (1 mins read).
How to avoid Xorg errors when connecting to a Linux machine over SSH that tries to spawn startx.
This talk should also be a blog post (3 mins read).

How you can improve your public speaking by also writing blog posts for your talks.
How blogging has affected me, as a neurodiverse person (5 mins read).
How I've used blogging to help with my ADHD.
Week Notes 23#39 (3 mins read).
What happened in the week of 2023-09-25?
Introducing tweetus-deletus π¦πͺπ - a tool to automate deleting your tweets, through the browser (3 mins read).
Announcing the release of tweetus-deletus, a tool to delete all your tweets, driven through the browser with Playwright.
Reusing a browser session with Playwright (1 mins read).
How to re-use your existing browser sessions with Playwright.
Using dependency-management-data with GitLab's Pipeline-specific CycloneDX SBOM exports (1 mins read).

How to take advantage of SBOM export functionality in GitLab 16.4 with dependency-management-data.
Week Notes 23#38 (3 mins read).
What happened in the week of 2023-09-18?
Gotchas with pointing Go modules to a fork, when building an installable module (3 mins read).

A gotcha around how to pin a Go module to a fork, if you're building a module that should be go installable.
Week Notes 23#37 (4 mins read).
What happened in the week of 2023-09-11?
Building dynamic jobs with BuildKite (2 mins read).
How to dynamically generate job configuration for BuildKite, while running inside a pipeline.
Setting up a matrix for GitHub Actions with Go's go.mod and specific versions (2 mins read).

How to use a Go setup matrix in GitHub Actions that can target the go.mod version and arbitrary other version(s).