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 »