Posts in category "Tech"

Ghosted by Ghostty

1 min read

I just grabbed and opened up the MacBook Air and met this:

Ghosted!

First time I've ever seen this and I've been using Ghostty for quite a while now.

To be fair, the MacBook did update to 26.4.1 overnight and has tried to get back to the state it was in before the restart, so I imagine that's the cause. But I've never seen this before.

I'm all good now; I -q the app and started it again and there's no sign of a problem.

Goodness knows how I get to see that log...

Discovering powRSS

1 min read

This was a nice find yesterday: I think I came across it when someone I follow on Mastodon boosted a post from the account related to the site; it's a site called powRSS. The concept is pretty simple: collect links to all sorts of small blogs on all sorts of topics, and then provide a honking great discovery feed/pool. You can read more about the idea on their about page.

For sure, this sort of thing isn't exactly novel: those of us of a certain age will fondly remember the fun of webrings and other similar initiatives, not to mention feed aggregation sites where you could discover trending blogs or see what your friends were reading, and all that. But, to some degree, that fell out of favour and/or the limelight when social media got really popular.

So with this in mind it's good to see people still providing such sites. I've added this blog to it and I'll be diving in there now and again to see if there's anything new I should be following.

It'll be fun to populate OldNews with more things to read.

Hello MacBook Air (again)

2 min read

As I mentioned yesterday I decided it was time to update my portable/sofa hacking setup and treat myself to a nice new MacBook Air. It's here (well, I picked it up yesterday evening after dinner).

MacBook Air M5

So far I'm very pleased with the choice. It's light but feels sturdy. The screen is very pleasing to read. The keyboard is really nice to type on (albeit I do prefer the old MacBook Pro, but on the other hand this is a bit more quiet, which matters if you're sharing a living room with someone else). It's fast. So fast! It's also so quiet! So very quiet! And cool too. The Intel-based MacBook Pro would get very warm as I worked; this just stays cold.

The really great part though is the battery life. Depending on what I was doing, with the Intel Pro, I'd get a couple of hours off the cable. On the other hand, last night, I spent a few hours setting things up on the Air and I barely noticed the battery drop at all. This, more than anything, is what I wanted.

Well, okay, I wanted the speed, the quiet, the lack of heat, and the long battery life.

Oh, and the rather lovely "Midnight" colour. It's not black, but it's close enough.

The setup itself went pretty well, although for some odd reason I ran into problems when setting up Emacs. These days I always use Emacs Plus via Homebrew and have never had issues. Weirdly though, this time, if I did the installation method that builds locally all sorts of things went wrong. I don't know if I missed a step or something but I did what I normally do when dropping Emacs on a Mac. So I started again with the pre-built approach and that worked better.

Even then though, I ran into problems with my setup downloading everything. Things mostly worked but I kept seeing all sorts of issues relating to git-gutter and git-gutter-fringe not being able to load (despite the fact they'd downloaded fine, from what I could see).

In the end I gave up trying to get it to all work from scratch and hand-removed and then hand-installed via package-list-packages instead. Not the most scientific of approaches, and one I'm sure I'll regret at some point in the future, but at least I got to a point where I could get other stuff done on the machine.

All of which is to say: if you're reading this blog post I got my Emacs and git environment to the point I can write things and push them out to the world. At which point that's the really important stuff up and going and I can call this "set up".

Once I'm happy that's working, I think it's time to revisit my Emacs setup. While I don't think it needs another complete restart, I think it might be time to at least look through what I have loading in and perhaps remove some things I don't use any more (for example, I always carry around vterm from the days when I was testing every possible terminal I could get my hands on -- that's less important to me these days.)

MacBook Air M5

2 min read

It's just over a month shy of being 10 years since I bought my first MacBook. As I mentioned at the time: I'd bought my first Mac about 10 months earlier than that, had got used to it, had grown to like the OS, and had need of a small and light hacking machine to use while doing a lot of train travel (and I really did do a lot of train travel after that).

Fast forward a touch over 3 years and, by accident of a windfall due to work things, I ended up treating myself to a MacBook Pro. This was one of the last Intel models. It worked well and served as my main hack-at-home machine for quite a long time. I used it to code and edit videos and a bunch of other things. It sat there, on my desk, plugged into a couple of screens, and never really served as a portable machine.

Fast forward around 4 years and, having been using a MacBook Pro M1 for a while through where I worked then, I had a desire to get a M-chip Mac for personal use and settled on an M2 Pro Mac Mini. That thing was, and remains, a beast of a machine. It's set up here in my office right now and I'm sure will last me for some time to come.

The thing is, in the last 6 months, my home life has changed. I moved. I now share a place again. It's nice to sofa hack and hang out and all that "share a space with other people" stuff. To that end I've been using the Intel MacBook Pro again but I'm noticing that it's getting old now. It's not that it isn't coping with what I need it for -- far from it -- but having the fans kick in lots, and just the heat, and also the fact that the OS is stuck in the past because it's now a "legacy" machine... I sensed it was time for an upgrade.

A new MacBook Pro was an option, of course, but that feels like overkill for some sofa hacking. If I want to do any heavy video editing or any heavy coding the M2 Pro Mini is still the machine for the job. The new Neo looked really good too, but the entry-level storage seemed a bit stingy these days and once you bump up to the next level, while still stuck with the same memory, well the price starts to get dangerously close to...

The MacBook Air M5

So, yeah, as of today, I've kind of come full circle; a decade on from that MacBook Air purchase I have a new sofa hacking machine coming in the shape of the new M5 MacBook Air1.

So this weekend will involve me digging out my "new macOS environment" checklist and working through it, getting a hacking environment up and going again. One thing I do want to do is follow that list but also write out a fresh copy, because this time around I want to see if I can get a good Python environment up and going minus the use of pyenv. Not that pyenv is a problem, at all, but I feel like I should be able to achieve everything I need using just uv.


  1. I'm not a hardware nerd, so don't dive deep into this stuff. Despite what I said about the M2 Pro Mini still being there for heavy coding and video editing, it wouldn't surprise me to find out the Air is more than capable too. 

Astral and OpenAI

1 min read

It's a couple of days now since the news hit that OpenAI are in the process of purchasing Astral. When I first saw this my initial reaction was pretty much "woah", followed by getting on with what I was doing.

Until, that is, I opened up the socials. On Mastodon, Reddit, BSky, Threads, etc... anywhere I followed any Python-based content, I was seeing very firm opinions posted. Plenty of folk either talking like it was the end of their tooling as they know it, or proudly boasting that they'd avoided uv and ruff (and lately ty too I guess -- not that I've really tried that yet myself) because they'd predicted this evil outcome from the start and they were untainted by this but look at all you idiots who fell for this long play!

Okay, I exaggerate slightly, but there were some pretty strong opinions kicking around, especially in the (often fairly smug) "I stayed pure and never used uv" camp.

Personally, I don't get it. The last I looked the tools I use that Astral are behind are FOSS. Also, the last I looked, plenty of FOSS tooling is written by folk who are either paid to do so (I had my moment), given some time in the day job to work on those tools, or just plain have a day job and also work on those tools. If, as plenty are speculating, the Astral purchase is an acqui-hire, the likely result is going to be one of those three scenarios.

If it isn't one of those scenarios, if work on uv and friends just ceases, well, at best some smart folk can fork the tools that are useful and keep them going (this is a major benefit of FOSS after all) and, at worst, well... we can fork them and agent the shit out of them. Right?

macOS desktop widget switching

1 min read

When desktop widgets first turned up in macOS I was pretty quick to embrace them. On my personal Mac Mini I use a pair of screens, the right one mostly given over to Emacs, and there was generally room to space there. These days that screen generally looks something like this:

The usual layout of my right screen

Recently I've got into streaming while I do some coding and it's the right-hand screen that I work on and capture using OBS. When I was setting this up I realised that the widgets being there could be a problem; not because they could distract or anything, more that they could, at times, contain sensitive information (there's my reminder list and my calendar there after all).

What I needed was a quick method of hiding all the widgets, and showing them again later, without it being a lot of faff.

With a little bit of digging around on the net I finally came up with a pair of fish abbreviations that do just the job!

abbr -g widoff "defaults write com.apple.WindowManager StandardHideWidgets -int 1"
abbr -g widon "defaults write com.apple.WindowManager StandardHideWidgets -int 0"

Now, when I'm going to stream, part of my "getting stuff ready to go live" checklist is to run widoff in the terminal; once I'm finished I can then just run widon again to have them come back.

Fast, clean, handy.

I've also got a pair for when I'm using Stage Manager:

abbr -g smwidoff "defaults write com.apple.WindowManager StageManagerHideWidgets -int 1"
abbr -g smwidon "defaults write com.apple.WindowManager StageManagerHideWidgets -int 0"

Although, really, I can't remember the last time I used Stage Manager. I dabbled with it for a wee while, found it vaguely handy in a couple of situations, but it doesn't seem to have stuck as part of my workflow or work environment.

Steam Deck

4 min read

Back in 2021, I think it was, when Value first announced the Steam Deck, I was all "hell yes sign me up!"; like... really, I signed up there and then to go on the waiting list. The idea of a wee device that would let me play a ton of games in my Steam library seemed like a great idea. The price seemed right too.

So, I signed up, and waited, and waited, and life moved on.

When I finally (I think it was the best part of 18 months later?) got the email saying my Deck was up for grabs and did I want to complete the purchase I... said nah. By this point I was so heavily into VR gaming that mucking with stuff on a Deck didn't seem to make much sense to me any more.

I moved on.

Then a few weeks back they announced the OLED version and I took a second look. There was now over a year of reviews to read, hacks to notice, fun to follow; now I could get an idea if a Deck was any good and if it was for me. So after a bit of review-reading and review-watching, Thursday last week, I slapped down an order; and by Tuesday the Deck turned up.

New Deck getting going

The overturning of my original decision to not buy came down to a couple of things. The first was: I recognised that there were a lot of games in my library, sometimes things I'd bought (often in a sale), sometimes things I'd got as part of a Humble Bundle, that just never got played. This, I noticed, was sort of down to an unfortunate relationship I'd developed with gaming.

See... VR has won me over. I love gaming in VR. Also, I love recording my gaming sessions and throwing them on YouTube. This means that, to some extent, in my head, there's effort to getting going with playing a game: I've got to power up the Windows PC; I've got to let it update stuff; I've got to let Steam update stuff; I've got to power up the VR headset; I've got to get it to connect to the PC (which generally works fine but on occasion needs a complete restart of everything); I need to decide what I'm playing next and what to record; I've got to get the recording software going; I've got to...

You get the idea.

Also, of course, I've got to be in the right state to be okay with having a computer strapped to my face (sometimes you don't feel 100% and being lost in a virtual world isn't the best thing to be doing).

This can feel like too much effort. It also means that gaming tends to be left for when I've got a few hours to dedicate to it.1

But I also love playing games.

My thinking then was a Deck would be a great way of "forcing" myself to play the more casual stuff. There's no easy (that I know of) way to record or stream from the Deck; it's also easy to have it on the sofa and turn it on in a moment. This felt like the ideal device to have to hand, that was dedicated to gaming, and which would encourage me to take smaller gaming sessions when the time arises.

Like... sometimes I'll put something on to cook, come into the living room, pick up the tablet and scroll through the Internet. While I try not to doom-scroll too much, I can see that it would be more healthy to pick up the Deck and play DooM!

So far, two days in, I'm convinced this was an excellent idea and I'm totally won over.

My Steam Deck and Stream Deck

I'm still getting a feel for what does and doesn't work best on the Deck, from a "my taste in games" point of view, but things that allow for dipping in and having a quick blast are winners.

Hong Kong Massacre has finally got a play, despite me owning it ever since I saw John Wick 4.

Hong Kong Massacre

DooM II got installed and is working well -- I may have to slowly play my way through the whole thing. I've also installed Abyss Odyssey and so far am finding it quite charming and fun (it's an example of a game that isn't really my kind of thing; but I got it in a Humble Bundle, I think, and it's been sat there with 0 hours for way too long).

I've also failed to resist one of the more questionable titles from my younger days...

Come get some

The real surprise for me though has been a game I bought on a whim a couple of weeks back, which was going cheap, looked fun, seemed nice and casual and which I installed on the PC and totally ignored (because, again, turning on the PC to have a quick game seems like a lot of faff): Brotato.

Brotato

This game is frantic, way over the top, kinda confusing in parts (for me) but accessible enough that I can actually have a ton of fun with it; and what's really important is that I can pick up the Deck, turn it on, play a game of this for 10 minutes and then go on to do the thing I needed to do next. It's the perfect game to play while waiting for the next step in dinner to cook.

So, yeah, The Steam Deck... I'm won over; I'm so won over. And I haven't even properly explored the fact that it has a full GNU/Linux desktop inside it that I can use as a desktop machine...


  1. Some of this is also true with gaming on the PS5; while it's easier to turn on and get going, and while I don't have a VR setup for it, I do have it in my head that it's more for "epic gaming" than quick casual stuff; see Death Stranding or Cyberpunk 2077 for example. 

When it doesn't just work

3 min read

My journey into the Apple ecosystem has been gradual but all-consuming. I've gone from, around a 8 years ago, being unconvinced about how good the whole Apple world is, to pretty much having all the hardware they make available, in some form, that I have an actual use for1.

One of the devices I was late to, but won over by, after moving away from Android to iPhone, was the Apple Watch. These days I have two: the original SE, and also a Series 8. Generally I've marvelled at just how seamless the experience is. I swap watches: the connection to my phone "just works" and it figures all that out. Stuff syncs. Stuff stays in sync.

I lean heavily on the watch. The Series 8 is my daily driver, and the SE acts as my nighttime tracking device while the 8 charges and I sleep.

I record walks. I record runs. I record lots of heart rate data. I pay for things, pretty much everything, with it. I... take it for granted really.

My main watch face

Yesterday though, something odd started to happen. I noticed that some things didn't seem to be syncing from my watch to the phone. Health-related things weren't turning up. A recorded workout didn't show. The control of all things audio seemed to decouple and the watch kept taking over use of my AirPods from the phone in an annoying way I'd never experienced before. Things like that.

I tried a reboot of the watch. Stuff turned up.

It happened again. I tried a reboot of the phone. Stuff turned up.

It happened again.

I then rebooted watch and phone, stuff seemed fine, and I didn't think much more about it.

Then this morning I swapped from the SE back to the Series 8 as I sat down for breakfast, my usual routine, and the syncing was failing again.

This, for me, this is when Apple stuff gets really frustrating. There's no easy or obvious way to diagnose what's going on. Like: I could not sync some health data from the watch to the phone, but I could use "Find My" to ping the watch (presumably a difference in communication route, BT vs Wi-Fi perhaps). There's no obvious error dialog. There's no obvious log to look at. There's no "your BT is borked" alert or something.

Searching online the advice seemed to be the nuclear option: unpair the watch, reset it, start again. So I've done that this morning and it's been quite the pain. Getting it set up again was straightforward enough, but having to go through the whole thing of dismissing all the "here's some tips on how to use this watch you've had for a year and used every day" cards was annoying, also having to set up my payment cards again was annoying. Also, and this is on me for not backing them up recently, trying to recreate my watch faces from memory and remembering which ones they were based on was also annoying.

Apple are actually so good at a lot of this seamless shit; but damn do I wish they'd also be good at making a tool that lets you easily and smoothly diagnose some issues. I would imagine sync issues between watch and phone are common enough that a wee tool where you run through diagnostics, and where there's a Q&A to help narrow down the issue, would be a great experience.

Anyway... it seems to be up and running again, so hopefully that's that issue solved. I tried a couple of things that would need to sync from the watch to the phone and they showed up instantly; actually faster than I've been used to for quite a while.

Fingers crossed...


  1. During a conversation about this at work the other week, I think I figured out that the only Apple product category in which I don't own an example of the hardware is displays2. :-/ 

  2. When the VisionPro comes out I'll be able to say there's two. 

Constant Siri voice loss

1 min read

This seems to have started with iOS 17, and I can't narrow down the how and the when of it happening, but over the last week or so I've found that every couple of days Siri seems to lose their voice. By this I mean the high quality voice that's used when they speak seems to disappear. I notice this when I ask my phone or headphones a question or to do something, and I get a really low-quality voice that speaks back to me.

The voice itself seems to be a version of the voice I normally use, but like it's using an on-device much-cut-down version. If I go into the settings to check what voice is selected, it's the one I normally use, but it wants to download it again.

Downloading the voice all over again

Sure enough, once the download is complete all is good again. I've not kept track of when it happens -- and I think I should from now on -- but it feels like it happens every couple of days; I almost always notice it first thing in the morning, the first time I ask the phone or the headphones something.

I hope it is some sort of iOS 17 weirdness and is gone when 17.1 turns up.

LinkedIn is useless

1 min read

I have a LinkedIn profile more by accident than on purpose. For most of that site's early days I just ignored it, even needing to go to the trouble of aggressively marking emails from it as spam as it seemed to want to turn itself into some sort of online networking cult, encouraging folk to send invites to their contacts, or worse. But after job-seeking in late 2017 the recruiter who found me the position I took up asked if I might join up and endorse him or some such nonsense and, at the time, I thought what the hell.

Since then though I've mostly found it useless, and at times straight up horrific. Don't even get me started on how a previous employer's push to make everyone use their profiles as more company branding created a perfect pool for people to go phishing in, while at the same time IT were on a phishing-awareness push; a perfect illustration of how some people lose their minds when it comes to that site.

The last year though, while working in a more FOSSy world, I've started to dip my toe back in when it comes to linking to what we're building with Textual. As such, I drop into the app once or twice a week and look to see what other folk might be talking about too.

During a recent dip in I saw this:

A suggestion from LinkedIn

Huh! Okay! That... that's actually kind of sensible! While I'm nowhere near looking for anything else to do, showing off the public projects you care about seems like a good idea. GitHub repos can be a good CV, I believe.

So I click through...

The project add form

And that's where it all falls apart. Pretty typical for LinkedIn I'd say. Name, description, obsession with skills, obsession with building up a social graph. But...

No link to the repo.

No.

Link.

To.

The.

Repo. O_o

o_O

I can't even.