Author Archives: andyp

About andyp

I'm a software developer holding a Master in Electronic Engineering and a Ph.D in Signal Processing. I'm as at home administering a virtualised Linux web server, as I am writing a software UART to talk to a temperature sensor.

Bitcoin Explained (IV)

This is part IV in my “Bitcoin Explained” series. At the end of part III we saw that the Bitcoin network’s primary function is to act as a peer to peer timestamping system. That the blocks could, in principle, verify any data its operators wished. The catch of course is that those operators need an… Read More »

Bitcoin Explained (III)

This is part III in my “Bitcoin Explained” series. The problem we left at the end of part II was that while we had a way of constructing a coherent chain of blocks, and of having them verifiably claim an arbitrary level of difficulty of creation; we had no way of deciding how difficult a… Read More »

Bitcoin Explained (II)

This is part II in my “Bitcoin Explained” series. The problem we left at the end of part I was that the construction of a valid chain of payload-storing blocks is trivial (for a computer) to create. For a financial system we want it to not be trivial, we want it to be incredibly hard… Read More »

Bitcoin Explained (I)

Bitcoin’s core technology is a very clever, and yet surprisingly simple, idea. It’s got distinct parallels with the git version control system; and the concept would work for a great deal more situations than just a virtual currency. There are plenty of ill-informed articles by mainstream (and some tech) writers who haven’t really understood how… Read More »

Volatile Delays

You want to write a simple delay loop on your embedded microcontroller. Let’s say you’re waiting for the crystal oscillator to stabilise before you use it. static void delay( int loops ) { while(loops–) ; } You’re then very surprised to find that this takes a total time of 0ms when you call it. You… Read More »

Debounce

It’s been a while since I’ve had to use this knowledge, but I happened upon this request on Hackaday. It’s from a few years ago, and so I won’t be submitting to them; but am inspired enough to write an article about debouncing. So first, what is “debouncing”? More importantly, what is “bouncing” in such… Read More »

Japanese Long Multiplication

This YouTube video makes it pretty clear how to do it; but I thought I’d run one without the graphical aids… 593 x 472 The trick is to arrange the nine necessary sub-multiplications in a standardised pattern. You can think of this as a square matrix rotated through 45 degrees… c 5|a b c b… Read More »

Keeping /etc/ In git

On a UNIX system, the /etc/ directory is what makes it what it is. Assuming you use just open source software, and forgetting about your user data (which should be in /home/), if you have /etc/ backed up for your server you can recreate it without much difficulty. It should definitely be included in your… Read More »

Bashing at the Keyboard (part I)

The command line. The feared enemy of anyone who started using a computer after 1995 (ish). It’s got a bad reputation, and for day to day computer tasks it’s certainly not necessary. However, if you are a programmer or a systems administrator then you’ll benefit enormously from knowing how to get things done on a… Read More »