rssed

a collection of dev rss feeds - blogroll

Add a new feed

+

324 feeds


articles on Jamie Tanna | Software Engineer

Posts

Week Notes 26#43 🔗

A busy work week with: The eMudhra certificate compromise The PHP CVE Was wild keeping on top of the situtation with Chainguard breaking the embargo [...]

Lukewarm recommendations for improving AI agents' interactions with your projects 🔗

Over the last week I've been chatting with some folks who are looking at integrating AI more into their development work. I shared a couple of things [...]

Being more explicit with the limited AI usage in my blog posts' content 🔗

I don't want to read lengthy blog posts that have been spat out by a Large Language Model (LLM), because the author hasn't felt they want to write the [...]

Week Notes 26#42 🔗

A busy week catching up on what I'd missed while at Open Source Summit last week Mostly wrote up the main TODOs I had last week, but still need to ge [...]

Writing to AWS S3 from Fly.io (in Go) 🔗

🤖 This post includes some LLM-derived content 🤖 I'm currently in the process of moving my site's media (under media.jvt.me) from Netlify to [...]

Making an optional, required, status check with GitHub Actions 🔗

Something that I've hit time and time again over the years - but seemingly have never blogument'd - is that when you add a required status check on Gi [...]

Reattaching `tmux` to your Xorg session 🔗

It happens infrequently enough to not investigate too much further, but sometimes I'll end up with my Xorg/X11 session crashing, or something else hap [...]

Adding Pushover notifications to Claude Code 🔗

There are times that you're away from your machine - or you've got so many terminal sessions you've not seen a notification - to say that your agent i [...]

Week Notes 26#41 🔗

A busy but very rewarding week at Open Source Summit (Europe) and the OpenSSF Community Day It was a very social week - I ended up chatting to some f [...]

Logs as UX 🔗

🤖 This post includes some LLM-derived content 🤖 A few years ago, Ryan wrote about how Bridgy, a service I use a lot, exposes log as the end [...]

Minifying JSON with `jq` 🔗

As an improvement to my version with Python or with Ruby, with tools like jq now being widely used, how do we minify a JSON string? Given: { "key": [ [...]

Gotcha: GitHub Custom Properties are public 🔗

I was speaking to someone the other day - while I've been at Open Source Summit (Europe) - about the great Custom Properties that GitHub added in ~202 [...]

Week Notes 26#40 🔗

A chilled journey back home, with a stop-off at Blakeney for a walk with the dogs We bumped into Dougie on the road home which was a nice surprise! F [...]

A DECADE of writing on this blog 🔗

This year I'm fortunate to be celebrating a few 10th anniversaries. One of the big ones is that this blog is officially 10 years old! This post is the [...]

Authoring Markdown externally and getting even 'prettier' output in Slack with `md2slack` 🔗

You know what's a little bit sad to think to yourself? Wow, I'm a little bit jealous of how nice that person's Slack message looks And yet, that somet [...]

Uploading a large OpenTelemetry trace to a local OTLP/HTTP traces receiver 🔗

🤖 This post includes some LLM-derived content 🤖 I've recently been doing some work with improving the performance of Renovate on larger rep [...]

Week Notes 26#39 🔗

A busy week at work: My anniversary, so I took some time to look back at this last year It was too busy to even get a draft together for This Week in [...]

Getting a full-width PR review pane on GitHub temporary private forks 🔗

This is the sort of post that will have more preamble than the resulting code, but bear with me. If you're working on security fixes to a project on G [...]

Looking back at my first year as the Renovate Project Lead 🔗

🤖 This post includes some LLM-derived content 🤖 A year ago on Thursday, I logged on for my first day joining Mend to work on Renovate full- [...]

Week Notes 26#38 🔗

A busy week at work: Most importantly, apk add/apt installs are now extracted in Dockerfiles, which is a much-wanted feature! Made some good progress [...]

Updating `apk add` and `apt install` definitions in Dockerfiles with Renovate 🔗

If you're writing Dockerfiles that install packages using system package managers, such as apk or apt, you might be pinning your versions of packages, [...]

Week Notes 26#37 🔗

A busy week getting the house ready for my family over the weekend Was nice to see everyone, and little nephew D Had a nice time with my parents, wit [...]

Performing per-environment staged rollouts of dependency updates with Renovate 🔗

🤖 This post includes some LLM-derived content 🤖 In a lot of organisations, you'll find a fairly consistent structure in teams' (GitOps) rep [...]

Week Notes 26#36 🔗

A busy 4 day week On Monday, we had a chill bank holiday with a nice lunch at Mowgli It's been a very busy work week Thursday was releasing a few big [...]

Exporting your chats from Claude.ai 🔗

I'm about to switch subscriptions for one of my Claude accounts, and as part of it, will lose access to any chats I had in the Claude.ai web view (and [...]

Week Notes 26#35 🔗

A busy week at work, publishing 10 advisories for Renovate, and working on a number of other bits As GitHub Stacked PRs now support Merge Queues, I'v [...]

Determining if your branch is part of a GitHub Stacked PR 🔗

🤖 This post includes some LLM-derived content 🤖 Since the availability of GitHub's Stacked PRs finally landing for repositories that use a [...]

My new workflow for local code review with `tuicr` 🔗

I spend a fair bit of my life reviewing code. Even if you discount the increase in code review that comes from increased usage of the output from Larg [...]

Updating dependent branches when rebasing, automagically 🔗

I'm regularly rewriting my history, often with the lens of improving my commit messages. On the Renovate project, we use a Merge Queue with Squash Mer [...]

Week Notes 26#34 🔗

A busy week at work, juggling a few fairly complex things that have meant I've been a bit brain busy outside of work Wrote a couple of blog posts, Why [...]

What commit did I branch off from? 🔗

Sometimes, you create a branch off another branch, do some work on it, and want to know what the original branch was pointing at. For instance, if you [...]

I'm on Fallthrough: A Modest Proposal Proposal 🔗

In this week's Fallthrough podcast episode, I joined Kris Brandow and Matthew Sanabria to talk about a few things, but mainly the new Go proposal prop [...]

Announcing some improvements to `renovate-pretty-log-tui` 🔗

As I've blogged about before, I've written a tool for improving the experience of working with Renovate's debug logs, providing a more targeted experi [...]

Why I still hand write my commit messages 🔗

For over a decade, I've been a proponent of writing detailed Git commit messages. I find it a valuable use of my time, and continue to double down on [...]

Week Notes 26#33 🔗

The main thing this week has been GopherCon UK - an expensive week, and unfortunately not as good as previous years - but you can see my writeup for m [...]

GopherCon UK 2026 🔗

For the 3rd year running, I've been at GopherCon UK and am surprised to have survived the heat in London - highs of 36 degrees yesterday - but thankfu [...]

Finding which PRs have been taken out of the Merge Queue due to failed status checks 🔗

🤖 This post includes some LLM-derived content 🤖 In the Renovate project, we use the Merge Queue to merge PRs. If a PR fails its status chec [...]

Week Notes 26#32 🔗

Ditto to last week: still not finished my Canada blog post Was a bit of a busier week with Anna in the office for a good chunk of the week And a pret [...]

Week Notes 26#31 🔗

Ditto to last week: still not finished my Canada blog post Work's been particular busy this week with various bits going on, and an accidental major r [...]

How much AI can a maintainer get away with using without losing their humanity? 🔗

🤖 This post includes some LLM-derived content 🤖 I've been recently thinking about how Open Source maintenance seems to be becoming a little [...]

Merging the default branch into a PR, from the API 🔗

When contributors raise PRs to Renovate, there are times where they'll merge main into their PR while they're waiting for a merge. Because we use a Me [...]

Week Notes 26#30 🔗

A busy week at work Got accepted to the Claude for Open Source program I've been looking, again, at rewriting my Micropub endpoint - it's been a long [...]

Reducing overly nested Vendir paths 🔗

🤖 This post includes some LLM-derived content 🤖 I've recently been using the pattern I described to combine Renovate and Vendir to sync fil [...]

Week Notes 26#29 🔗

A busy week back at work, catching up on what I'd missed, doing some decision making + Product-y thinking A fair bit of stuff to catch up did make it [...]

Week Notes 26#28 🔗

(Full Canada holiday writeup to come) Got ~1 hour sleep on the plane, and ~1 hour in the cab home, so didn't get going to pick up Cookie right away fr [...]

Week Notes 26#27 🔗

(Full Canada holiday writeup to come) Reading: Tiamat's Wrath Leviathan Falls Watched: The Drama (2026) Fantastic Beasts: The Secrets of Dumbledore (2 [...]

Week Notes 26#26 🔗

A busy week before our trip to Canada 🎉 (Full Canada holiday writeup to come) It was very toasty this week As a way to reduce the overall heat, I e [...]

Week Notes 26#25 🔗

Enjoyed the last of the Selkirk Bannock A busy week catching up, dealing with a bit of fallout while I was OOO, picking up a few high-priority bits an [...]

Determining adoption of AI through Git commits 🔗

🤖 This post includes some LLM-derived content 🤖 Let's say that you're trying to determine what percentage of your work is using AI - for in [...]

Week Notes 26#24 🔗

A lovely week in Scotland at No. 2 Braefoot Cottage, which I very much recommend! Was lovely to get more chilled time with my parents, catching up and [...]

Week Notes 26#23 🔗

A busy week ahead of a holiday away in Scotland Thinking about pausing my Changelog++ subscription, as right now there's not really much happening Cha [...]

Week Notes 26#22 🔗

A nice relaxed Bank Holiday Monday We spent the day mostly trying to hide from the heat - highs of ~32 made it rather toasty Glad I did the decking o [...]

Is there space for 'craft' in the world of AI? 🔗

My friend Alan wrote yesterday in a thread on Bluesky: In my end-of-year review I was described as a 'craft engineer' more than once. I don't disagree [...]

Week Notes 26#21 🔗

It's heating up this week, and tomorrow is going to be ~33! Spent some time digging into how Renovate's caches work, to write up some more in-depth do [...]

Week Notes 26#20 🔗

Got my job title changed at work, covering the role I do have and the work I'm doing (but no update to /salary/) which is cool! It's also a lot easier [...]

I'm on Fallthrough: He Who Controls the Source 🔗

This week I joined Kris Brandow on the Fallthrough podcast, talking about a mix of things. It was another fun episode, and I'm looking forward to list [...]

Caveats around using Libyears 🔗

Over the last few years, I've spent time working on projects like dependency-management-data with the intent that I could provide visibility into orga [...]

I hate the recent open-source rise 🔗

In the last month I've found I've been hyper aware of noticing folks writing open-source everywhere I look, which feels like there's something slightl [...]

Week Notes 26#19 🔗

A very short workweek, with Bank Holiday Monday, the GitHub Maintainers Summit and Matt's funeral on Thursday Had a chilled Bank Holiday Monday Was ni [...]

Gotcha: Yarn may need an empty `NPM_TOKEN` set to run 🔗

Earlier today I was working with a Yarn codebase for the first time on one of my machines, and I hit an awkward error I'd not seen before: % yarn inst [...]

Week Notes 26#18 🔗

A fairly busy week at work, and a mix of getting stuff done across the Open Source world In Renovate: Finished off the ability to make it so Renovate [...]

Configuring Renovate to only suggest updates that match your `go` directive 🔗

In the Go ecosystem, there are two key parts of the go.mod to note (aside from the dependencies themselves) which are the go and toolchain directives. [...]

Week Notes 26#17 🔗

A pretty intense environment this week, so not too much else done outside of work Another episode of Fallthrough - this time a bit more random in what [...]

I'm on Fallthrough: No Country for Old Maintainers 🔗

This week I joined Kris Brandow on the Fallthrough podcast, somehow talking about even more topics than last week. This was a fun episode, and one of [...]

A deep dive into the wild world of GitHub Actions' tagging formats 🔗

Last week, I was tagged in a LinkedIn post, where one of the Python Core developers was noting that Astral's setup-uv GitHub Action was not being upda [...]

Week Notes 26#16 🔗

A busy week at work Was pretty chuffed with myself when I saw a nudge about astral-sh/setup-uv not being updated by Renovate (since the move to Immuta [...]

I'm on Fallthrough: Supply Chain Reaction 🔗

This week I joined Kris Brandow and Ian Lopshire on the Fallthrough podcast to talk about a tonne of topics, including AI, Claude Mythos, why frontend [...]

Setting up Neovim with the Debug Adapter Protocol for Javascript/Typescript 🔗

As I've been working more with Typescript - especially with Renovate - I've been feeling the need to finally invest in getting a debugger set up. Alth [...]

Week Notes 26#15 🔗

A 3 day week, with Easter Monday and a recharge day at work A busy week at work, continuing on protecting our users from malicious packages Including [...]

How to build a `git diff` driver 🔗

Something I've been meaning to write about since November 2024 is how to create an external command for diffing between files with git diff. I found t [...]

Using `oasdiff` for rich Git diffs of OpenAPI spec changes 🔗

I work with quite a few OpenAPI specs, and have found it useful to be able to keep an eye on what's changed over time. Although I'm familiar with the [...]

Week Notes 26#14 🔗

Week Notes are later than usual because we were binging Last One Laughing UK, and enjoyed going to bed late with it being a bank holiday A fairly busy [...]

Week Notes 26#13 🔗

A fairly busy week back at work, catching up on what I'd missed, some follow-ups to last week's Trivy supply chain attack, and pushing forward with a [...]

Week Notes 26#12 🔗

A nice, mostly restorative, week off for my birthday: Definitely feel a lot more reset, having worked on various bits of life admin, and not doing any [...]

Pointing lazy.nvim to a Pull Request 🔗

As I did an update earlier on my Neovim plugins, I noticed a breaking change from codecompanion.nvim hadn't yet been addressed upstream with mcphub.nv [...]

Week Notes 26#11 🔗

A busy week trying to close out my ongoing TODOs ahead of being off next week Sorting through ~50 of my raised-but-not-yet-merged PRs on Renovate Cle [...]

Week Notes 26#10 🔗

A busy week at work After daycare on Tuesday, Cookie was too tired to close her eyes 🥰 (which we're very much a fan of) She was very cutely leaning [...]

My workflow for testing Renovate config changes (2026 edition) 🔗

Over the years, I've been a heavy user of Renovate, and I think it's fair to argue I can describe myself as a "power user". As someone who enjoys the [...]

Does my site's analytics change how I write? 🔗

In the Overcommitted community Discord, we've had some discussion recently about using analytics on our sites. In response to a question about how I u [...]

Week Notes 26#09 🔗

A busy week but less so than last week, thankfully After starting to look into how to sync files with Renovate, I spent a bit of time with Vendir, and [...]

Automagically updating `oapi-codegen` JSON Schema version bumps with Renovate 🔗

A number of releases ago, I introduced a JSON Schema for oapi-codegen's configuration file format, to aid with editor-driven autocomplete. It's best i [...]

How I'm using Local Large Language Models 🔗

Prompted by Joe and Marcus after my last post about AI, I thought I'd share how I'm currently using locally-hosted Large Language Models (LLMs), as I' [...]

Automating the syncing of files between repos with Renovate and Vendir 🔗

For a few years, I've been trying to get a perfect workflow for keeping vendored files in sync between repos. Especially with oapi-codegen, where it's [...]

How and why I attribute LLM-derived code 🔗

As I've written about before, I'm a self-described "cautious skeptic" of AI and Large Language Models, and I'm trying to do more with AI where makes s [...]

Week Notes 26#08 🔗

A particularly busy and overwhelming week - juggling what seemed like two dozen things in and out of work Enjoyed my leftover Miss Korea from Sunday n [...]

Breaking free from GitHub Discussions' limitations 🔗

As I recently wrote about, we use GitHub Discussions for triaging user requests in the Renovate project. This process works really well for the mainta [...]

GitHub Actions' `required` properties aren't always required 🔗

Earlier today on Renovate we noticed that our documentation site had not been deploying for a couple of days. The root cause was down to a quirk of Gi [...]

Lessons learned from `oapi-codegen`'s time in the GitHub Secure Open Source Fund 🔗

As noted in GitHub's post, oapi-codegen was one of the projects taking part in the third GitHub Secure Open Source Fund session. I'd like to take a mo [...]

Week Notes 26#07 🔗

A pretty brain exhausting week with a lot of things going on Nice to have Marcin back, but it's been a lot of extra stuff to keep an eye on A nice mea [...]

Week Notes 26#06 🔗

With Anna off these couple of weeks, we had Tuesday off together, and although we didn't get to the spa, we had a nice lunch out at Maki & Ramen, and [...]

Week Notes 26#05 🔗

It's been a busy week at work with Renovate 43 coming out, with a number of breaking changes As ever with the major release, there's a lot of work ge [...]

Using Ledger, plain text accounting and a touch of AI to fill in my UK tax return 🔗

A few weeks ago, I was reading Siddhant Goel's post about 10 years using plain text accounting, and I found it a really interesting read, but decided [...]

Week Notes 26#04 🔗

A busy week at work, with a number of in-flight features and fixes, especially ahead of a Dev Platform release Been a fun week on Kingshot, burning th [...]

What I've learned building an agent for Renovate config (as a cautious skeptic of AI) 🔗

This article was originally published on the Mend's HackerNoon blog. It's fairly likely that you've heard the term "AI Agent" or "Agentic" used in the [...]

The first 100 days as a Renovate maintainer: the shocking inside view of a popular Open Source project 🔗

Roughly 100 days ago, I joined Mend to work on the Renovate project as a maintainer and community manager. In a vague homage to the style of politics' [...]

Week Notes 26#03 🔗

The Renovate "maintainer dashboard" has been super useful (running locally) to giving me a view of what user-submitted Discussions need a review It's [...]

Authoring Markdown externally and pasting the 'pretty' output into Slack (on Mac) 🔗

🤖 This post includes some LLM-derived content 🤖 Update 2026-09-30: this is now even easier with md2slack. Related to my post from last year [...]

Getting access to rich-text data from the clipboard (on Mac) 🔗

🤖 This post includes some LLM-derived content 🤖 Related to my post from last year around doing this on Linux, I've been trying to do the sa [...]

Creating a TUI for keeping an eye on GitHub Rate Limits 🔗

In the last week, I've been doing some work to sync Renovate's Discussions to a local SQLite database, so I can provide a better query layer for maint [...]

2025's podcasts in review 🔗

(Aside: I'm considering moving this into a microsite powered by Evidence, like I do with my Music In Review, where I could graph some of this data mor [...]