Observations on what's around me and projects I'm working on.


Posts tagged with software

At "Claude Code Anonymous"

Earlier in the month I was at the first Brighton Claude Code Anonymous meet-up. Lightning talks and chat, around agentic coding (not limited to Claude). I’m unsure of the etiquette, so I’ll name the things I found interesting rather than the people presenting them. On running models locally, the hardware to look out for...
Read more…

A Micropub server for Pagecord

With the release of the Pagecord API, I can scratch a small itch: publishing from iA Writer to my Pagecord blog. iA Writer isn't for everything, but it's good for focus, has nice attribution tools, and more importantly, it's the editor I've somehow stuck with. I've been curious about its ability to publish to various...
Read more…

Test of posting to Pagecord from iA Writer

This is a test post sent to my Pagecord blog directly from iA Writer. Made possible by the Micropub spec and the Pagecord API. Details to follow another day.
Read more…

Colour hexdump

Alice Pellerin has opened my eyes with the lovely post: your hex editor should color-code bytes. I don't hexdump very often, but I've installed Hexyl for when I next need to:
Read more…

Not committing confidential data to git

The Guardian report on Biobank data being leaked onto GitHub is either no big deal or a massive screw-up, depending on your point of view. Either way, what I do is have a global gitignore file naming folders for confidential information. I put anything sensitive in there. If I want to push to Git, I have to try really,...
Read more…

Keeping long running macOS jobs active

With long-running jobs I want my laptop to stay awake until the job finishes: $ time caffeinate script-name-here When the script finishes, caffeinate with finish, and the laptop will eventually go to sleep. * * * I use #reference for commands and knowledge I keep having to look up!
Read more…

Moving static sites from AWS to Bunny net

I have a handful of static websites which have been living on AWS. They're there because they are too big for GitHub Pages.  But AWS is a slog for this, and I was looking around for alternatives. My criteria: it must be easy.  I was pointed towards bunny.net which is working well. As an increasingly important bonus,...
Read more…

Review code changes, then discard

Sometimes I want to review a PR by looking at the changes in my editor locally. Once I'm happy, I throw away the changes.  The command sequence to do this is: git checkout maingit merge --squash branch-name-here# <do productive and important review work here>git reset --hard HEADAnd if I forget the --squash, it's git...
Read more…

Adding another Github repository to Northflank

I like Northflank PaaS. I restrict what repositories it has access to for building Docker images, and I always forget how to add more repositories. The steps are: Go to the Team page (home page, likely) and select "Integrations". Select "Git" on the left-hand menu, and then "View all" GitHub accounts. Select your GitHub...
Read more…

Configuring Helix for scalafmt

I don't do much Scala anymore, but when I do I make use of Scalafmt so I don't have to care about all that stuff.  In the Helix editor, to be able to run :fmt on a Scala file you need this in your ~/.config/helix/languages.toml file: [[language]]name = "scala"formatter = {   command = "scalafmt",   args = ["--stdout",...
Read more…

Opening m4a (MPEG-4) files in Audacity

I'm working with audio files recorded from an iPhone in m4a format. To open these in Audacity you need FFmpeg installed. This is currently a minor faff on macOS. Step 1: Install the right FFmpeg version I had 8.0 installed, but Audacity (as of version 3.7.5) needs 7. So it's:  brew install ffmpeg@7Step 2: Locate the...
Read more…

Safari password autofill sometimes sets the wrong password

I found a case where Safari, the macOS web browser, will sometime append a username to a password field. It's very odd. This is with Apple Password, on an old-ish web site using two step login: fill in the username, press next, fill in the password. Using autofill, the site would respond with "incorrect password", but...
Read more…

zmv: move files based on a pattern

The default shell on macOS became zsh a while back, but I'm still learning the basics. I didn't know that zmv exists:autoload -U zmv zmv -nv 'ah Study (<->) 1.0 sec.wav' '$1.wav'This would dry-run (-n) a rename of files that match the pattern on the left. E.g., a file like "ah Study 0083 1.0 sec.wav" becomes...
Read more…

Running Pagecord locally

I'm very happy blogging via Pika. It’s a lovely system.  If at some point I want to try something new, or if they change direction or my interests change, I don’t mind exporting and importing elsewhere. I’ve done it quite a few times now: from Blogger, Posterous, WordPress, Hugo, Pika (I might have missed a couple and...
Read more…

TypeScript user type guards / type predicates (x is Y)

I failed to understand user-defined type guard recently and wrote something like: // Don't do this:const dogs = animals.filter( (c: Cat | Dog): c is Dog => true )Nope, that’s not what that a type predicate is for. The above expression does nothing. I had Dave explain it to me. It’s an escape hatch for you to hack the...
Read more…