x64 General Purpose Registers

I can never remember the names and ordering of the general purpose registers in the x64 (AKA x86-64) architecture, so I made a diagram that shows the 16 general-purpose 64-bit registers in the x64 architecture, as well as the various legacy names for half-registers/quarter-registers and so on.

Read the rest of this entry

Letter to Scott Mann, MP

A letter sent to my MP, Scott Mann, on the event of the Supreme Court judgment ruling that the government must seek an Act of Parliament before triggering Article 50.

Dear Scott Mann,

As you will undoubtedly know, the Supreme Court have this morning ruled that the government must seek an Act of Parliament before triggering Article 50 and the process to leave the European Union.

This is a critical juncture in our nation’s history. For the past 45 years we have been members of an international Community and Union created to guarantee the free movement of goods, capital, services and people within its borders, and thereby to secure a lasting peace in Europe after two horrific world wars.

Read the rest of this entry

Thoughts on testing and simplicity


Something that Sean said when were talking about code review in New Jersey has come into my head a few times recently, so this is my recapitulation and expansion of that point.

Whenever we change code, we take a risk that those changes don’t work the way expected, or worse, break stuff.

Read the rest of this entry

Forwarding additional ports from a live SSH session

While reading the SSH man page1, I came across the following rather neat little trick.

You may know that if you type <CR>~. (that’s “enter”, “tilde”, “dot”, in order) you can terminate a hung SSH session. But it gets better than that: if you type <CR>~# you can see a list of all the current session’s forwarded ports. Yet more useful: type <CR>~C (capital “C”), and you’ll be dropped into a shell where you can add additional port forwards on the fly:

Read the rest of this entry

git push -f considered harmful

Force pushing in git is a subject that attracts all kinds of religious battles. This post is not about the merits of force pushing.

This post is about how to use git push -f if and when you do use it.

Never call git push -f without additional arguments.

Read the rest of this entry

Things done. Including very little academe.

It’s easy to notice when you’re procrastinating. When yours truly scores 3434 on a typeface recognition game when he’s supposed to be either working or writing letters, he realises that there are more constructive things to be doing. Doing something about it, on the other hand, often proves to be rather harder.

Read the rest of this entry