I’m not doing a lot of large-scale AI coding at the moment, but I’m still tinkering on side projects when i can. I had fun revisiting an old problem this week, which turned into a nice illustration of how much has changed in the last 2 years. Note see also my standard AI Disclaimer Two old hacks Over the last couple of years I’ve written a couple of posts about scratching my own itches around MPD,…
I was chatting to a friend about my folding bike and I had the urge to write about it - because this falls in the category of “Things I wish I’d had decades ago”. And maybe I can encourage some others to try these wonderful devices. Note: I’m 3 months into a new job so blogging has taken a back seat to drinking from a firehose of new domain knowledge, new people, new tech. I’m still playing with…
I’ve completely stopped using Twitter (now called X) and I wanted to post something explaining why. I stopped posting or reading the feeds quite a while ago, but despite most people I know agreeing it’s a terrible place, friends persist in sharing X posts and I get lured in to reading them. But no more. If you send me a Twitter/X link, I’ll either ignore it or politely ask you to share the content…
I haven’t posted in 3 months! That’s partly because I put a lot of work into the extended version of my Agentic AI security post on martinfowler.com - and partly as since posting that I have changed jobs. After 2 years at Liberis I’ve decided to move on - on Monday I start a new position as a Principal Engineer at John Lewis Partnership! I’m quite excited about the new position - John Lewis…
Note see also my standard AI Disclaimer Update: This post was updated to use the latest Mermaid version, and a few other tweaks. 1 Introduction My last few posts have been rather theoretical, this is back to a “here is how I solved a problem” post. A while ago I blogged about better ways to make Mermaid diagrams but that was in the “before times” when I would do these things by hand, like a…
This is a short post (two in one day!) to talk about a new tool I’ve written to help with Claude Code permissions. Note see also my standard AI Disclaimer The problem with permissions In my previous post I mentioned a frustrating issue with Claude Code - it kept asking me to approve the same commands over and over again. The documentation says you can use wildcards in permissions but in practice,…
An expanded version of this post has been published at https://martinfowler.com/articles/agentic-ai-security.html - with more mitigations and updated content - I’d suggest reading that article instead, I’m leaving this one up for posterity. Also I’ve given up on Discus for comments - if you want to discuss this post, please reply to My post on Mastodon or My post on Bluesky (I’m doing both as one…
I’ve had the song “Stuck in the Middle with You” in my head for a few weeks. (R.I.P. Michael Madsen!) 1 But not because of Reservoir Dogs - but because of the public discussion about AI coding tools. (Yes, I know… feel free to walk away if you are sick of the whole thing). I feel like there’s this strange culture war, or something like it, playing out - with wild statements on both extremes - and…
I thought it’d be worth posting an example of a bigger task I did the other day - just to show what can be done, without crazy vibe-coding, on a non-greenfields app, using ASP.Net Core not some simplistic front-end tooling. This was originally part of a longer post but I thought it was worth splitting - this example is used in my post Clowns to the left of me … The task - Sending a message when…
I was demonstrating Claude Code to a colleague the other day - I was working on an ASP.Net Core C# service, using Claude within the JetBrains Rider IDE. And my colleague said “it uses a lot of bash commands like find - why doesn’t it hook into the IDE to understand the structure?” I was a bit surprised by this - I quite like the way it uses small simple commands. Musing about it afterwards, I…