Three months ago I started playing Go again, both online and at Winchester Go Club. Most Wednesday evenings I enjoy sipping a Guiness 0.0% at The Black Boy pub and getting completely absorbed in games against stronger players. Some of my recent games are as follows: Nigel (10 kyu) gave me a 3 stone handicap. I won. Wayne (6 kyu) gave me a 7 stone handicap. I won. Marcus (12 kyu) gave me a 2 stone…
As I mentioned in the previous post, I’ve given up coding, at least for now. The main purposes of writing code during my retirement was to keep my brain sharp and for enjoyment (yeah, I know!). So what changed? GenAI GenAI tools, such as Claude Code, are fascinating in what they are capable of, but ultimately uninteresting to me. The point of writing code these days isn’t merely in delivering…
I was getting more into the swing of using Claude Code, before I gave it up. Advantages One of the main advantages of Claude is that it enables me to step outside my own areas of expertise. For example, it was able to diagnose, and propose a fix to, an intermittent bug in Windows code in ipc-channel. It even wrote a good description of the bug, including how to reproduce the behaviour. I asked it…
It’s finally time to move on from implementing ipc-channel-mux to using it in Servo . But how? Completing ipc-channel-mux Since my last post, I’ve been using Claude code extensively to help me complete ipc-channel-mux : Added non-blocking receive: SubReceiver::try_recv and try_recv_timeout methods. Revised PROTOCOL.md to avoid describing internals. Added a Migration Guide on migrating from…
My son has been using Claude Code at work and telling me how well it seems to perform. Eventually my inquisitiveness got the better of me and I took Claude for a spin. I was surprised how well it did, but also discovered some limitations and how to use it better. Deadlock analysis and fix I was working on a deadlock of a particular test, so I asked Claude why the deadlock happened. After quite a…
The IPC channel multiplexing crate, ipc-channel-mux, now includes a “router”. The router provides a means of automatically forwarding messages from subreceivers to Crossbeam receivers so that users can enjoy Crossbeam receiver features, such as selection (explained below). The absence of a router blocked the adoption of the crate by Servo, so it was an important feature to support. Routing…
“As a dog returns to its vomit, so fools repeat their folly.” – Proverbs 26v11 After developing ipc-channel-mux on Codeberg, I wanted to enable CI. Why develop on codeberg? I prefer Codeberg to GitHub because of the likelihood that code on GitHub will be used to train AI code assistants, to which I object on environmental, licensing, and technical grounds. I also like the fact Codeberg is a…
As we near the end of 2025, I thought I’d take a few moments to reflect on what I’ve been up to, at least from the perspective of this blog. Servo development I shipped two pre-releases of the ipc-channel-mux crate, which implements multiplexing over IPC channels for the Servo browser engine. The goal is to fix a long-standing bug in Servo which sometimes causes it to crash on Linux when it runs…
I’ve just been doing some prefactoring and I ran into an interesting situation with some dead code. What’s prefactoring? Prefactoring is refactoring in preparation for a piece of development work. There are several situations in which prefactoring is useful. Improving understanding Sometimes code you are about to work on is unclear or difficult to understand. If you can see significant…
Although more implementation is needed before IPC channel multiplexing is ready to be applied to Servo, I have been mulling over two questions: How should the multiplexing code be packaged? When is multiplexing likely to benefit Servo? Packaging As described in an earlier post there are a number of advantages to packaging the multiplexing code as a separate repository and crate. However, since…