Michael Drake's Website


Here is a list of projects I'm involved with elsewhere on the web:


NetSurf is an open source web browser, which has been developed from scratch. The project's focus is on resource efficiency and it runs well on slow hardware with tight memory constraints.

My roles within the project include:


LibCYAML is a C library for reading and writing structured YAML documents. It's goal is to make it as trivial as possible for applications to load YAML into custom C data structures.


LibCSS is a C library for parsing Cascading Style Sheets, and for performing selection of computed styles from parsed style sheets. Most of my work has been on its selection engine, adding CSS properties and testing.

RISC OS PicoDrive

PicoDrive is a SEGA Mega Drive emulator for ARM based hardware. I created the web site for the RISC OS port.


ArcEm is a portable open-source emulator for the Acorn Archimedes. I designed the web site.

Other bits and bobs


AlphaGen is a command line utility that I wrote when making the NetSurf web site. It generates a bitmap with an alpha channel from two input images; one on a black background and one on a white background. It's useful when using graphics software that lacks any facility to export images with alpha channels.

AlphaGen is written in C.

Example usage

$ alphagen black.png white.png alpha.png
Inputs Output
black.png white.png alpha.png
Input image on black background Input image on white background Resultant image with alpha channel


AlphaGen is available under the MIT licence. Get the source code via Git.

$ git clone git://git.netsurf-browser.org/alphagen

Alternatively, pre-built binaries are available for the following operating systems: