Pertinent Detail

HP Spectre x360 battery replacement
The battery on my HP Spectre x360 (model 13-4009na from 2015) died and needed replacing. This article shows the symptoms.
Brute force video stabilisation with elastix
Experiments in using elastix to stabilise a short piece of video to form a looped animation.
Of Vitalism and System Engineering
Avoiding the vitalism pitfall when engineering complex systems.
25% CPU Load is a Bug
If, on a multi-processor system, you see a process consume exactly one CPU for an extended period of time, then it’s buggy. Detecting such rogue processes could make it less likely end-users get frustrated with their systems.
Sony Vaio VPCCA2S0E keyboard and fan disassembly
I recently had to disassemble my Sony Vaio VPCCA2S0E to clean the fan. After completely forgetting which screws to undo I thought this time I’d document it properly. Since cleaning the fan means removing the keyboard, these instructions might also be useful for anyone trying to replace the keyboard.
HP Spectre x360 charging problems
Occasionally, my otherwise reliable HP Spectre x360 (model 13-4009na from 2015) doesn’t charge its battery. I’ve worked out a simple way to fix this.
Call of Cthulhu investigator inspiration
I’ve found my new favourite B movie/Call of Cthulhu investigator inspiration lurking in the pages of Astounding Stories from the 1930s.
Demystifying “Ispell and its process have different character maps”
The ispell.el package for Emacs can issue the error message “Ispell and its process have different character maps”. It’s not clear from the message what this means. I explain what Emacs is thinking and, to give an example of how it can happen, I tell a war story of how I tripped over this.
How to filter calendar entries in Outlook Today
The Outlook Today display in Microsoft Outlook can be a convenient way of showing upcoming appointments in your calendar. But what if you don’t want to show all meetings. Outlook has no built in filtering but getting your hands dirty with a bit of Javascript can sort it all out.
ARM Instruction Formats/Timings
This is an introduction to opcode formats and timings for the ARM processor. It was written in conjunction with Robin Watts. It’s a little out of date now as it only deals with the ARM 2, 3 and 6 so doesn’t cover Thumb instructions but it’s not a bad place to start.
Sorting algorithms
This was a set of articles about sorting algorithms originally posted on comp.sys.acorn.programmer in September 1996 by Gareth McCaughan. I’ve made it available as it was too good to lose.
Integer square root and integer reciprocal square root routines for ARM processors.
These are two sets of articles which were posted on comp.sys.arm about how to calculate square root and reciprocal square root on ARM processors. These questions come up so frequently I thought I’d better put the answers somewhere safe.
Character sheets for Call of Cthulhu.
Printable character sheets for the Call of Cthulhu role-playing game.

About me

Much of this site was previously hosted at
Comments, about this page or any of the other pages I’m responsible for should be directed to me by e-mail at