Creating a Neovim plugin for my standup updates (3 mins read).
Documenting some of my thoughts about writing a (Python) Neovim plugin.
Creating a Neovim plugin for my standup updates (3 mins read).
Documenting some of my thoughts about writing a (Python) Neovim plugin.
The joy of an asynchronous, always updating standup (5 mins read).
Describing how my team does standups across a globally distributed team.
Creating a private mirror of the Renovate docs (5 mins read).
How to set up a copy of Renovate's documentation, pinned to an older version, for your organisation.
Lessons learned adding OpenTelemetry to a (Cobra) command-line Go tool (10 mins read).
Some reflections on what I've found good and not so good about instrumenting a command-line tool with OpenTelemetry.
Summarising the skipReason
s for Renovate data exports (2 mins read).
How to work out what skipReason
s you have for your Renovate package data.
How to diff two datetimes (1 mins read).
How to get the number of seconds, minutes, and a human-readable time comparison between two datetimes.
Why has Firefox 133 lost all my tabs? (2 mins read).
Recounting an issue I'm seeing with Firefox 133 where it creates a new profile, and how to resolve it.
Creating a /slashes page (1 mins read).
Creating a collection of all the /slash pages I have across my site.
OggCamp 2024 (14 mins read).
A recap of this weekend's OggCamp 2024 conference.
How I manage my dotfiles (8 mins read).
A deep dive into how managing my dotfiles has (not) evolved over the last 10 years.
Don't do Agile, be agile (13 mins read).
Why you should ditch the framework and just vibe.
Converting a Reveal.js slide deck to PDF (1 mins read).
How to convert a Reveal.js slide deck to a PDF, using Decktape.
Getting symlinks to work with a git clone
on Mac (2 mins read).
How to restore symlinks in a previously cloned repository, where core.symlinks=false
.
Using a separate Go module for your tools.go
(2 mins read).
How to use the tools.go
pattern to source-track your Go tool dependencies, but without polluting your top-level go.mod
.
I'm on API Evangelist Conversation (1 mins read).
Announcing a podcast appearance with Kin Lane about API Versioning.
Utilising Renovate's local
platform to test more easily (4 mins read).
How to use Renovate's local
platform for validating configuration changes more easily.
Don't pretty print your API's JSON response body (3 mins read).
Why pretty-printing JSON responses in your APIs is a waste of resources, and you should stop it.
Nested teams in GitHub don't give you the control you think they do (2 mins read).
Some pain points when using nested teams on GitHub.
Forcing pacman
to perform post-upgrade tasks if it's failed part way through (2 mins read).
How I ended up recovering from my Arch Linux upgrade crashing part way through the post-upgrade hooks.
How to use Dependency Management Data to discover which dependencies are participating in Hacktoberfest (3 mins read).
Detailing how you could use dependency-management-data to gain insight into which dependencies you use are participating in Hacktoberfest.
You're not mature enough to release your first version as v1 (12 mins read).
Why you should never release your first iteration of a project as your v1.0.0, but it should instead by v0.1.0.
GopherCon UK 2024 (22 mins read).
A writeup of the GopherCon UK 2024 conference.
Gotcha: SXHKD doesn't like comments (in bindings) (1 mins read).
Why your SXHKD bindings may be silently ignored
How to get the next window created set to floating in BSPWM (1 mins read).
How to tell BSPWM that the next window created should be floating.
Creating a /typography page (2 mins read).
Creating a page for viewing different types of content and how they display on my site.
I'm on Go Time! (3 mins read).
Announcing my first podcast appearance on Go Time, talking about OpenAPI, oapi-codegen
, versioning, and some fun Unpopular Opinions.
New CSS, Who Dis? (2024 edition) (3 mins read).
Announcing my new site design.
Why isn't Hugo regenerating my SCSS files? (1 mins read).
How to ensure you're using the right Hugo version to build SCSS files.
Why can't I use a comma with gcloud
? (1 mins read).
How to resolve commas being ignored when interacting with gcloud
, and how to escape them.
Using Spotless to auto-format Gradle Verification Metadata (3 mins read).
How to use Spotless to allow manual changes to the Gradle Verification Metadata to be auto-formatted as if Gradle generated it.
Common issues faced with exec
ing an executable on Linux (2 mins read).
Some common issues you may face, with esoteric error messages, and how to fix them.
You can now parse repo-level Renovate configuration with renovate-graph
(2 mins read).
Announcing a new release of renovate-graph
which now parses repo-level Renovate configuration.
Dependency Management Data's Open Policy Agent support is now a whole lot more efficient (2 mins read).
Talking about the latest release of Dependency Management Data and some refactoring that's led to better performance.
Migrating Renovate bots, while keeping existing PRs updated (2 mins read).
How to migrate between two Renovate bot accounts, in the case you want to do a 'big bang rollout'.
Manually triggering a Buildkite pipeline for a fork (1 mins read).
How to trigger a Buildkite pipeline to run on a fork, if you have access to trigger a build.
Dependency Management Data's now on Mastodon! (1 mins read).
Announcing the dependency-management-data Mastodon account for automated release announcements (and more?).
Dynamically querying EndOfLife.date data for internal packages with Open Policy Agent and Dependency Management Data (3 mins read).
How you can retrieve End-of-Life data via EndOfLife.date using Dependency Management Data's Policies functionality.
89 things I know about Git commits (7 mins read).
Some of the things I've learned over a decade of Git usage, and working on writing good commit messages.
Dependency Management Data is now a lot easier to work with when using Software Bill of Materials (3 mins read).
Announcing an improved model for interacting with SBOMs, removing the need to understand the Repo Key up-front.
One THOUSAND blog posts (3 mins read).
Celebrating a massive milestone in my blog, and a short reflection.
Reader survey: Who reads my blog? (2 mins read).
Wondering how my readers read my blog, and why.
Dependency Management Data can now use sql-studio for database browsing (1 mins read).
Announcing the availability of the sql-studio
database browser for dependency-management-data's web application.
Creating a test harness for validating Renovate regex manager rules (4 mins read).
How to set up a test harness to make it eaiser to modify scary looking regexes in your Renovate configuration.
Modifying the response body of an httputil.ReverseProxy
response (2 mins read).
How to modify the response from a httputil.ReverseProxy
before it goes back to the caller.
Performing cross-database queries with SQLite (2 mins read).
How to query multiple database files with SQLite.
Dependency Management Data's web application can now be deployed as a single static binary (2 mins read).
Announcing dependency-management-data's embedded SQL browser interface.
Using Go's database/sql
to query an arbitrary columns of unknown type(s) (3 mins read).
How you can query an unknown number of columns, of unknown types, with Go's SQL package.
My workflow for writing SQL(ite) queries (2024 edition) (4 mins read).
Writing about my recent workflow for writing, executing, and sharing SQL queries with others.
Calculating the GitHub API's sha
representation of a local file (2 mins read).
How to locally calculate the same sha
of a given file, so you can compare it against the GitHub API's representation.
Making it easier to schedule cross-timezones, with the tz
CLI (3 mins read).
Writing a command-line tool with Charm's Go libraries to compare the suitability of meetings across timezones.
You're currently viewing page 1 of 16, of 783 posts.