I work on various projects in my free time. Most can be found on my web site, https://www.6809.org.uk/.
SAMx4; drop-in replacement for the MC6883/SN74LS783 Synchronous Address Multiplexer used in the Dragon 64. Realised using an XC95144XL CPLD, implementation in VHDL. PCB design in KiCad.
Dragon 64 Motherboard; full recreation of the main board of the Dragon 64. Involved schematic capture and PCB layout using KiCad. Combination of hand- and auto-routing. Hand soldered. First attempt worked with a single bodge wire.
XRoar is a free Dragon 32/64 emulator written in C. It preserves access to the archive of software for the platform, and assists in the development of new projects. Has involved:
evilwm is a small, stable window manager for X11. A major recent(-ish) bit of work involved adding support for all the Extended Window Manger Hints relevant to its behaviour. More recently still: better multi-monitor support, control customisation.
asm6809 is a portable cross-assembler targetting the Motorola 6809 and Hitachi 6309 CPUs. Developed using lex & yacc, uses Abstract Syntax Trees to support expressions of arbitrary complexity using many C-like operators, macro expansion, and conditional assembly.
I make constant use of development tools like git, cppcheck & valgrind.
BBC Research & Development, Kingswood Warren and London
Senior member of a small team managing the core Unix services and network for the research department of the BBC. A fairly broad role which has involved:
A support role doesn't often break down into neatly defined projects that often, but due to the small team size, there's still a bunch of stuff I can claim to have achieved personally:
sec=sys, but then extended the single-sign-on benefits to web services, email, etc.
Making use of the BBC's in-house training, I have attended a series of Broadcast Engineering courses covering a broad range of topics across the entire broadcast chain.
National Library of Wales, Aberystwyth
Mainly a programming role, taking a project from initial requirements acquisition through to a final delivered public-facing bilingual web site (Wales on the Web, or Cymru ar y We). I worked closely with staff from multiple areas of the library, each with their own interest in the project and advised on the best way to take it forward at each stage. The result was a site that worked to everyone's expectations able to be securely administered by non-programmer staff. The system was based on Linux, Apache and Perl, and also included a custom search engine.
I was responsible for several servers in the department and worked with our ISP where necessary. I also wrote software used in the Visitor Experience public information displays (C & SDL; these days you'd do it with OpenGL, but such acceleration wasn't cheaply available then) and adapted code received from the AIM25 project (London Archives) to be bilingual, creating the Archives Network Wales web site.
During this period, I collaborated with my ex-colleagues still in the BBC to stream a talk by Richard Stallman live using the Ogg Vorbis streaming infrastructure. It's entirely possible this was his first live streamed talk, due to his aversion to proprietary codecs, though I can't be sure of that.
I also adapted the BBC's Betsie web accessibility tool to work on a Windows platform.
BBC Internet Services, Kingswood Warren
Part of a team directly responsible for all of the BBC's Internet services: public facing services and staff access. It involved frequent periods of being on call to attend to and fix public-facing service problems. Responsibilities included servers hosting public facing web site, content distribution network, audio and video encoding and streaming, on-air digital text service, proxies and gateways providing BBC staff with internet service access.
I initiated and developed the BBC Ogg Vorbis live streaming project. We were already offering RealAudio streams, so I did the work to tie Vorbis streaming into the existing infrastructure. Amongst other things, this involved adding a Solaris audio driver to IceS 2 and debugging threaded code in Icecast2. I subsequently added stream splitting code to Icecast2 so that a hierarchy of servers out to the edge could be configured.
BBC Online Operations, London and Kingswood Warren
This role involved responsibility for ensuring BBC Online output was up to the standards of the BBC, including making sure it is available to the largest audience possible. This meant support of the public facing content servers and ensuring content was readable by all (accessibility and cross-platform operation).
During this time, I wrote WebTodo, a web-based job tracking system. Featuring flat file backend with DB files for indexing, it was written to a spec agreed between a range of users. Jobs could be submitted using a generic request form system that other BBC teams could (securely) maintain themselves. Written in 1999, carried forward and used by Siemens—and then Atos—when BBC Technology got sold off, where it continued to be used for some time due to the flexible submission system.
Network programming (Windows clients connecting to Linux servers) for a football manager game and data file reverse engineering. Linux systems administration on the side. Skills: C, Linux, Windows.
GEC Marconi, Cwmbrân
Database programming for Air Traffic Control simulator project. Developed code generation routines and automatic data testing tools using C, Pro*C, Ada, Pro*Ada, sed, and awk.
BBC Academy, 5 days
Cisco-centric course mostly reinforcing knowledge acquired on the job.
Joyent, 3 days
Using Illumos/Solaris tools such as mdb, zdb & DTrace to explore the underlying operation and on-disk format of ZFS.
BBC Academy, 6 weeks
A series that previously formed the Broadcast Engineering Fundamentals course. Included:
Aberystwyth University College of Wales