Meant to link to this at the time, but I meant to write my own blog post (see yesterday) before that, but it’s taken me until now to do either; AI certainly isn’t freeing up any spare time in my life.
Meant to link to this at the time, but I meant to write my own blog post (see yesterday) before that, but it’s taken me until now to do either; AI certainly isn’t freeing up any spare time in my life.
NetBSD themselves have a no AI policy (fair; at some point lawyers are going to make a mint), but I just wanted to have a play about and since I run NetBSD, perhaps for too long, I just assumed I was out of luck with most AI tooling (most things do just target macOS, Windows and Linux). But it turns out things are mostly ok thanks to all the CLI tooling being node/npm:
(Don’t use global installs)
I started with Gemini - I thought I’d jump in the deep end and ask it to do something useful and something fairly complex so I asked it to build me a Chrome Cast receiver in python - I’d love to be able to cast from my Pixel to my NetBSD laptop. It “worked” in that it built something that looked sensible and did run although didn’t actually work when it came to being a Chrome Cast receiver. So then I thought I’d step back a bit and ask it to migrate simplenote.py (long neglected by me) from Travis to Github Actions; Because this is the kind of thing I’ve been meaning to do for a few years and just haven’t found the time for; I.e. this seems like the kind of “chore” task we should be using AI for instead of all the terrible things we are using AI for.
For both I gave a prompt like this (apart from the branch name being different):
Create a branch of this repository called gemini-github-actions and migrate the Travis CI setup to Github Actions
And then also gave both permissions for whatever it asked for for the session.
Both gave me additional instructions. Gemini:
To verify the migration, you should push this branch and ensure the GitHub Actions runner can successfully execute the tests and build the package. If you want to proceed with a commit, please let me know.
Qwen:
Next steps:
- Add PyPI credentials to GitHub repository secrets (PYPI_USERNAME and PYPI_PASSWORD)
- The deploy job triggers on release publication (modern approach vs. Travis’s tag-based deployment)
Personally I find it dumb that neither of them committed automatically (why would I be telling you to create a branch?) so I told both:
Please commit your changes including the summary of the changes you’ve just provided in the commit message.
Qwen had just created the .github/workflows/ci.yml file whereas Gemini also removed the .travis.yml and updated the README badges (nice); However, I LOVE that Qwen co-authored the commit by default.
I told Qwen:
Please also delete the .travis.yml and update the README badges to suit Github Actions
to get it in the same state.
(Interesting aside… I had to update my PAT to allow creation and updates of workflows before I could push)
Here’s the final results (final at the time of publishing is one commit on the gemini branch and two on the qwen one):
There are some subtle differences. Gemini includes many more python versions, Qwen just two, matching exactly what I had for Travis.
Of these two, only the Gemini branch automatically triggered a Github Actions run because it sensibly included its own branch - it failed though on every single job. Don’t actually know why. Github just tells me all the jobs exceeded the maximum execution times whilst waiting for runners.
In an effort to actually publish this post this year I am going to leave the AI efforts there for now - I might continue with both branches and get Gemini and Qwen to make further tweaks or I might continue by hand, but that could take me days, or weeks. Or months. So this will do for now. There’s no conclusions to this post, just observations - literally just me documenting my playing about.
This post has taken me months to write. I’m just too busy. I’ve been wanting to play with AI CLI tooling because up until just the last day or so I’ve not been allowed to use any such tooling at work (believe it or not). At least my tinkering on NetBSD did give me a little bit of a headstart and familiarisation.
* - Worked until this change since that it now gives env: unknown option -- S on NetBSD. Reverting that makes it work again. For me that was these files:
/home/me/node_modules/.bin/gemini/home/me/node_modules/@google/gemini-cli/dist/index.d.tsThe whole reason I got a “new” watch (I’ve yet to write a post about this) was so I could try to do runs over two hours again - forgetting that my knees and not watch battery might be the limiting factor. Technically I did it today, the longest I’ve done in five years, although I struggled on the way back. Knees felt ok at the time, but I knew it’d by what they were like afterwards that could be the problem. I am walking a bit like I’m crippled. Hopefully I wake up and everything will be fine.
Undecided if I’m going to try for even further again.
Beautiful.
Spectra Festival was kind of a washout this year so we only caught the tailend of it and couldn’t be bothered with queuing much. I kind of like this one through the fence of the Kirk though. Belatedly uploaded it, even more belately blogging it - also realised I’d uploaded last year’s and never sorted through them or set them to public. Oh dear.
Note: Since NetBSD 11 is in Release Candidate stage thought I should finally update my server from 9.4 to 10.1.
I am really enjoying Cantilever. I really lucked out and I think the first new album when I signed up was Shaking Hand’s debut, available a full two weeks earlier on Cantilever than its normal release - the Up the Ante(lope) track is fantastic. Since then the only other 2026 release (it is only the start of February though) has been Dry Cleaning’s Secret Love. The rest has been quite a mix of dates (and genres - excellent). A lot from 2025 and some as early as 2003. Interestingly, although only two have been “new new” nearly all the rest have been “new” to me because they just passed by me in recent years. So technically Cantilever is working for me as a new music fix. It’s exciting seeing what new album is going to be added and at the same time getting as many listens in to an album you like before it leaves.
In addition to Cantilever, as just mentioned, in an effort to keep a “new new” music fix I’ve also been listening to Rapal and BBC Introducing in Scotland via BBC Sounds. I was going to try to keep up with 6music’s New Music Fix as well, but I can’t commit to listening to that volume of output since it’s on every day (a weekly show, fair enough) and quite often we are eating tea when it’s on on the radio anyway so I listen to it that way. I have been wondering, since I’m still paying for Spotify (family plan), whether it’s just daft that I’ve not used Spotify at all in January, but then again I’ve paid my TV License for years and never listened to Rapal nor BBC Introducing in Scotland (more fool me).
However, there’s still stuff on my radar that I want to listen to. These releases so far this year:
The first three of these are available on Bandcamp so I can avoid Spotify that way, but is streaming for free on Bandcamp actually any better than listening on Spotify? Not really is it? If I buy them, then sure. But that’s if. I don’t really feel comfortable any more “owning” electronic media as I don’t trust companies won’t just pull the files or in my ability to store all the files long-term. I think I’d prefer to purchase physical media, but the number of CDs and tapes that I lost during our last house move makes me upset to go down that route again. I’d love to get into vinyl again, maybe just starting with my albums of year for the last few years, but it’s unfortunately not very practical at the moment. Still thinking about what to do here - I don’t have a good solution yet.
I am keeping a list of everything I’ve listened to on Cantilever, but I’ll probably publish this at the end of the year.
Since I stopped using Duolingo how have things gone?
For Italian I started reading I Giorni Dell’Abbandono - it has taken me a whole month to read one chapter. To be fair I’ve been quite busy, but it is legitimately slow going. I’m probably at toddler level Italian and should be reading kids’ books as opposed to a proper novel. I tend to read it sentence by sentence with the English version open at the same time but only looking at that as a last resort after the first resort of using Google Translate - there are lots of words and/or forms of words I don’t know! It is interesting (I suppose obviously) how much is not a literal translation and some short parts of sentences don’t even exist in the Italian version, but I guess sound better that way in English. E.g this in the English version:
I roused myself only when I heard the sound of a car parking in the little square of our building.
vs this in the Italian:
Mi riscossi solo quando sentii il rumore di un’auto che parcheggiava.
No mention of “in the little square of our building”, but it would sound odd without that in English.
For Scottish Gaelic I’ve started listening to the SpeakGaelic podcast on BBC Sounds. I should have started years ago, at the same time I did Duolingo, but who has time for these things? It’s interesting just listening and not seeing the words at all - fortunately/amazingly all that time on Duolingo has rubbed off a bit as for some words I can hear them and then see the word in my head and know how it’s spelt (sounding nothing like it’s spelt). I’m trying to do a minimum of one episode a week as I think I can fit that in. That means there is enough to keep me going for well over a year.
For a bit more fun (and linked to changing up how I’m listening to music this year) I’m also listening to Rapal on Radio Nan Gàidheal. I don’t understand it, but I keep hearing the same phrases, so hopefully eventually I’ll figure it out. It’s a new music show and argueably more exciting and interesting than BBC Introducing in Scotland (which I’m also listening to, but that’s a different post).
Just keeping things ticking over in January. Did all my week’s running in one go again. For some reason has taken me over three years to go and run this great bit of trail. I picked probably the worst time of year to do it.
Also, that’s now just over six years for this watch, although it did die right as I got home.
Note: Watched The History of Sound: Brooding, building and beautiful. Some very aesthetically pleasing framing of shots.
Note: Hamnet: Sad, yes, but mostly full of love. So much love.
Starting the year as I mean not to go on.
Younger M got me a year of Super Duolingo for Christmas 2024 and that meant I finally managed to complete Scottish Gaelic mid last year. Since then I’ve been spending a fair bit of time learning Norwegian (just because of Hjem til Jul), but there is literally no point in this - I’m not going to Norway any time soon. Since I’ve completed Italian and Scottish Gaelic, which is all I really wanted to do, I’ve decided to take a break from Duolingo and explore other ways of learning: I might try to read an Italian Novel and might try to listening to Scottish Gaelic audio; I’m certainly not getting any better at either by doing the Daily Refresh sections on Duolingo.
I was going to let yesterday be my final day of Duolingo, but then I realised if I did today that is just over a six and a quarter year streak (as opposed to just under) so I thought I might as well do one last lesson.
All in all, in addition to completing Italian and Scottish Gaelic, I completed up to the end of Section 2 Unit 24 of Norwegian, Section 2 of French, and Section 2 Unit 7 of Polish.
Note: Managed to pip 20k elevation for the year running. Close to my elevation/distance ratio of 2001.
Making it five years in a row. This year’s list is the most excessive of all: Over nine hours of music. And I’ve probably forgotten to add some tracks I’ve called out in my quarterly album round-ups. There has been a ridiculous amount of good music again this year.
I have absolutely loved doing this, although my self-imposed (soft) rule of “only listening to music that has been released this year” is perhaps a tad restrictive. As has been trying to keep up with The Line of Best Fit’s New Music Discovery playlist every week (found some great artists though!). So next year I’m going to try something different. Spotify is just a bit shitty. Unfortunately I can’t get rid of it because of paying for a family plan, but for my personal use next year I’m going to give Cantilever a whirl instead. And as mentioned in that post, I’m hoping it fulfils my new music fix, but “more slowly”. I know I’m going to miss some great artists and songs as a result, but that is always the case anyway.
The downside of this though is just how great Spotify Connect and the Rust ecosystem support is. It’s just soooo ace to be able to run spotifyd on my laptop and control what’s playing from my phone or use ncspot for a full terminal experience. Maybe I can figure out an alternative that works with Cantilever?
These are the ten most recent posts (not counting any note drivel), for older posts see the Archive.