I’ve been fascinated by computers from a very early age – first using an Acorn Electron well over 20 years ago, learning to program that (and later its more powerful siblings, the BBC Micro and BBC Master) in BASIC before progressing to ARM assembler on the Archimedes family of computers.
At the age of 13, I started at Glenalmond College and began moving to the Intel x86 family of systems, soon becoming responsible for supporting the student computing facilities, initially a server-less (Windows for Workgroups, peer-to-peer) 10Base2 network which existed purely to share two dot matrix printers, later converting this to use a Windows NT 3.51 server, adding ISDN Internet access (still charged per-minute at that time, as well as limited to a single 64 kbps channel) then upgrading to Windows 95 clients and Windows NT 4 Server. With almost no budget for software purchasing, this entailed writing my own user account creation tools to generate student accounts from the student database.
Toward the end of my time at Glenalmond, I found myself a holiday job with Dundee University’s IT department, preparing to deploy Windows NT 4 workstations (a major transition from diskless, network-booting Windows 3.1 clients), upgrading the central web server from CERN to Apache on Solaris and recovering all the data from both a failed departmental NetWare 3.12 server and a damaged floppy disc — which contained the sole copy of the owner’s PhD thesis. This has turned into a recurring theme in my life: while technology has moved from 1.44Mb floppy disks to multi-gigabyte Flash memory sticks and hundred gigabyte hard drives, I still find myself recovering data for students and colleagues from time to time.
After a week-long C programming course at St John’s College, Oxford University, fate and a lack of originality led me to a three year degree in Computer Science at St John’s College, Cambridge University, where I could once again put my ARM assembler experience to good use, this time in conjunction with Verilog for developing simple embedded systems, as well as continuing to develop my Unix system administration skills, learn Java and undertake two large software development projects: an RSA based encrypted e-mail system for web browsers (taking the form of a Java applet) as part of a group of seven people supervised by the world-renowned security expert Ross Anderson, and writing and benchmarking a high-performance (event-driven) web server in Java and C using JNI to interface the two. With unfortunate timing, Sun released the NIO mechanism, allowing this to be done in pure Java with much less effort, shortly after I graduated.
Meanwhile, I was also part of the Campaign for Unmetered Telecommunications, fighting to get flat-rate Internet access (and later broadband) for reasonable prices in the UK, despite fierce opposition from Oftel (the regulator at the time), British Telecom (the former government monopoly telephone company, which made considerable profits from these per-minute charges) and most ISPs (which received a share of these profits). After several years, Oftel capitulated and ordered the introduction of the ‘FRIACO’ wholesale system, allowing ISPs to purchase flat-rate 0800 (freephone) capacity from BT, eliminating per-minute charges from the equation.
I now find myself back at Dundee University, developing more software in Java and SQL-backed websites in PHP as well as helping administer several hundred assorted client workstations and a handful of Linux print, backup, mail, web and database servers, plus one Windows and one Solaris. After several hard drive failures – with much critical user data stored locally, since the central file server was very short of space and slow to access over our 10Base2 network – I was able to get funding to set up a system performing nightly backups of all the Windows client systems, using rsync and BackupPC. A few thousand pounds and some hard work gave us several terabytes of RAID 6 storage for the purpose — a vast amount of storage at the time, yet full within two years and now awaiting funding for further expansion.