I spend some of my spare time working on Linux and other open source software, which is what this site is about. My home town is Letchworth, Hertfordshire.
Contact me: Daniel Drake <email@example.com>
- fprint: Fingerprinting on Linux
After some previous experience with fingerprinting devices, I decided to take on a broader challenge: to get all fingerprint readers (that I can get my hands on) working and useful on Linux. It's also my 3rd year university project, and it's open source! See the homepage for more info.
- libusb: USB device access from userspace
My fprint efforts lead to me adopting the libusb project. I am working on libusb-1.0 which will offer new features allowing for more powerful applications.
- Gentoo Kernel Project
I lead Gentoo's kernel project. Myself and a few others package up the Linux kernel plus our own patchset, and attack bugs reported by our users.
Latest open-source software patches
All 497 patches can be browsed here. These don't include contributions I make to my own software.
- GTK2 port for EasyTAG - Dec 2003 to May 2004
EasyTAG is a handy software package for managing identification tags of common music file formats (MP3, OggVorbis, ...)
The visual interface used to be based on GTK+ 1.2, but I fully ported it to GTK+ 2.4. The author accepted my work, and all recent EasyTAG releases are now based on GTK+ 2.x. Original patches: http://www.reactivated.net/patches/easytag/
- USBAT02 driver for Linux - January 2005
USBAT02 is a USB-ATAPI converter developed by SCM Micro/Shuttle. This converter is used in various USB card readers. There was a device driver available, but only for old kernels. I adopted their project in order to get the code modernised. The driver is included in the kernel from 2.6.12 onwards.
- New defaults for Gentoo 2005.0 - January/February 2005
With lots of help from others, we've managed to get the x86 architecture moved over to Linux 2.6 as the default for our 2005.0 release. We also consolidated some kernel packages in the Portage tree.
- Planet Gentoo - March 2005
I proposed the creation of Planet Gentoo in GLEP 30. Once approved, I set it up on the Gentoo infrastructure and administrated it until things settled down.
- Extended Attribute bindings for Mono - June 2005
I created bindings for Linux's Extended Attributes API, in the Mono.Unix.Syscall class. I then extended these to support FreeBSD's slightly different EA implementation, under the same Mono API, providing some portability for the use of Extended Attributes. Patch here.
- Alauda driver - September 2005
I obtained a SmartMedia/XD card reader which uses a proprietary protocol (not USB mass storage compliant), originally unsupported by Linux. I reverse-engineered the device and wrote a Linux driver. The driver is included in the mainline kernel from Linux 2.6.16 onwards.
- viaideinfo - October 2005
I removed some user-accessible statistics from the Linux via82cxx IDE driver for the purpose of driver simplification. As some users found these statistics useful, I wrote a userspace program to display them in the same form with no dependence on the kernel driver.
- Beagle - 2005-2006
Beagle is an exciting desktop search tool primarily developed by the Novell Linux Desktop group. I performed various bug fixes, optimizations, and added/improved a few features.
- Gentoo UK 2006 Conference - July 2006
I did most of the planning and organisation of the Gentoo UK 2006 annual conference. It took place in London and was a big success.
- Touchcal - November 2006
As I couldn't find any reliable way to calibrate EloGraphics touchscreens, I adopted the touchcal project, moved it to SourceForge, and fixed it up to work with my hardware.
- Digital Persona Fingerprint Reader driver - 2006-2007
Some generous people donated me various different Microsoft/DigitalPersona fingerprint readers, which were previously unusable on Linux. I reverse engineered these devices to the point where you could retrieve images from these scanners. The project was later absorbed into the fprint project.
- straightSSL - July 2007
A Python project I was working on required secure access to remote servers. Existing Python bindings for OpenSSL did not preserve the semantics and behaviour of Python's socket and urllib modules, a requirement for this project. I created these OpenSSL bindings to solve the problem.
- zd1211rw Linux kernel USB wireless (802.11b/g) driver - 2006-2008
Over 100 retailed USB-wireless adapters are based on the ZD1211 chipset. Ulrich Kunitz and I rewrote the vendor's driver. Our driver is called zd1211rw and is included in Linux 2.6.18 and newer.
- One Laptop per Child OS Release 8.2.0 - Summer 2008
I spent the summer as an intern at OLPC in Cambridge, MA, USA. My main task was fixing bugs that were holding back the 8.2 release of the operating system for the XO laptop. I was lucky enough to work all over the stack (firmware, kernel drivers, display server, networking, Sugar UI, activities, etc). I was lucky enough to end the internship with a visit to Ethiopia where I saw the laptop project being implemented.