I have been involved with several open source projects, both writing my
own libraries and tools, and sometimes developing or porting resources
to unsupported operating systems. I have separated these projects into
Python is the development language I choose to employ for many of my own
projects. I have created various libraries and utilities to aid project
development and provide a comfortable working environment. I also contribute
to other projects which use the Python language, such as
A package containing a simple application for sharing directories with
RISC OS machines running Acorn Access peer-to-peer file sharing software.
A module for matching command line arguments to a syntax definition.
Classes for reading and writing Drawfiles with example scripts.
Filing systems for use with the
A package of modules and tools for reading and interpreting Computer
Concepts Impression documents with the aim of converting their
contents into a more accessible form.
A package providing facilities for the creation of
LDraw scene descriptions.
A couple of programs to duplicate some of the functionality of
lpr and lpq.
Python classes for reading Portable Document Format (PDF) files and
interpreting their contents.
A package implementing aspects of the Object Exchange (OBEX) protocol.
- PyPI Browser
A graphical user interface (GUI) tool for browsing the contents of
the Python Package Index
Classes for reading and writing Spritefiles with tools for conversion
and interoperability with other image formats.
- Sketch Plugins and Tools
Import filters for the Sketch
drawing package and tools for automating document conversion. Filters
available include those for Drawfiles, Spritefiles and Impression
A Python package for reading Icon Technology TechWriter documents with
simple conversion tools that enable their contents to be exported to
An import hook for the Python interpreter which enables Python source
embedded in XHTML documents to be imported in the same manner as for
pure Python modules. Additionally, it is also able to fetch documents
from remote locations if URLs are used instead of local paths in the
sys.path list of module locations.
Qt and KDE
My preferred desktop environment on Linux is
KDE, based on the
GUI framework. In the recent past, I was responsible for developing
various user interface ideas into components which were not quite in line
with the standard look and feel of KDE but which were quite interesting
and pleasant to use. I've recently become more interested in developing
for KDE using Python using the
PyKDE and PyQt modules
for Python. I'm mainly interested in applying these modules to KDE's
infrastructure rather than using them to write standalone applications.
Some applications and tools for KDE, mostly written with Python and PyKDE.
Some applications and tools for Qt and PyQt developers.
One of my main areas of interest is the emulation of the
Acorn Electron using the
I have written various tools to convert between various file formats
used by ElectrEm and emulators of
other Acorn 8 bit machines.
I've also written a map creator for the Electron version of the Micro
Power classic, Moon Raider.
A Python module and tool for reading ADFS floppy disc images, for use
alongside emulators of Acorn 8 bit microcomputers. This replaces the tool
included in the T2Tools
- Modify the default Moon Raider map.
- These Python scripts convert between file formats used to store
information natively on the Acorn 8 bit machines and those used by
- This tool allows you to manipulate the data stored in Unified Emulator
Format files at the level of individual files or even at the "chunk"
My former employer no longer hosts my modifications to the KDE 3.0x
series of releases – the above link goes to the
These changes enable each virtual desktop to be
many times wider than the size of the screen.
Navigation of the extended desktop environment is
performed using a tool called the World In Miniature (WIM). Note that
the patches found on that site don't work reliably against all KDE
3.0x releases and may only have worked well with CVS versions of KDE
at around the time of their release.
RISC OS Projects
Two of the more useful projects that resided in my old university account
are now hosted on Drobe Launchpad.
One is a port of Mesa to old-fashioned RISC OS systems; the other is a
Python GUI library for RISC OS.