Death of a hard disk

At home, I store data I care about on a network-attached disk array (a Netgear ReadyNAS Ultra 6). It is populated with 6 hard disks, with of 2 of these providing RAID-based redundancy. Recently, one of the disks in the…

As usual, everyone on the Internet can be grouped into two categories: Those for whom the patent system is a bit of a mystery, a seeming free-for-all where anything can be claimed and it’s lawyers at 50 paces. Those who…

How magnetic core memory works

Looking back at computing history in interesting. Firstly, the concepts and hardware implementations are usually simpler and easier to understand – I bought my first computer in the early 1980s and I pretty much understood the whole thing down to…

An introduction to map projections

Many years ago I worked for a company that wrote Geographic Information Systems (GIS) software. A GIS application lets you work with different kinds of geographic and relational data, doing various kinds of analysis and representation. My job mainly involved…

Reverse engineering embedded software

Embedded devices usually contain the same elements that make up larger, more general purpose systems, such as a processor, ROM, RAM, network controllers etc. Sometimes these are contained within a custom-designed integrated circuit, such as an ASIC. In these situations,…

Background I’ve had a home-made Internet firewall for a long time, but it’s getting old and one day it’s just going to fail, so I decided that it’s time to update it. The old firewall was just a PC running…

Way back in the 1980s when I started my first job, I thought I was pretty good. I’d breezed through the computer science work at uni, helped others with their assignments and done a bit of programming on the side….

Building a simple RF-based sensor network

Background I wanted to build a simple wireless sensor network where I could deploy small environment sensors around the house. The sensors needs to be cheap and low-power (so they could run off a small battery for at least a…

The obvious… Software has bugs. Despite what some developers would like to believe, the vast majority of bugs are created through the conscious (or unconscious) actions of the person writing the code. As programmers, we can continue to write software…