Software

I really love working on software. This page contains a list of the things that I’ve written over the years, some open source and some not, as well as some of the things I’ve contributed to. One day, when I’m grown-up, I’d really like to return to Writing Really Nice Software.

First the list, not 100% complete, of software I made:

  • envedit is a user-friendly Windows Environment Editor, for modifying those pesky environment variables. BSD open source.
  • cv_platform is a C++ framework I designed at Stone Three in 2000 that enabled simultaneous capture and real-time video processing from a number of cameras (at that time on Linux). It has been used in a number of projects and products. Proprietary.
  • DeVIDE is the open-source and cross-platform Delft Visualisation and Image processing Development Environment. I’ve been working on this in some form or another since about 2001, and it actually gets used by quite a number of people I don’t even know. The latest release was in February of 2012. BSD open source.
  • vtkdevide, vtktudoss and itktudoss – low-level C++ algorithmics used mostly by DeVIDE, including volume renderers, data loaders, 3D UI widgets and image processing codes. BSD open source.
  • FrothMaster – Whilst working at Crusader Systems in ’99, now CSense, I designed the full software stack  (design of an embedded Linux distribution to fit in 4MB of flash, also image processing modules) and part of the hardware for this IP65 embedded industrial image processing box. We won a SABS Design Institute award for this. Proprietary.
  • hdstandby is some low-level Windows code that I slapped together to set the hardware standby timeout on ATA hard drives. On some setups, this built-in timeout still causes spindowns even if the Windows power settings have been configured otherwise. This little utility MIGHT help in this regard. It might blow up your computer. Go here to chat about this utility. Marty Vona has written a patch that will also disable APM on the drive, just like hdparm -B 255. Open source.
  • ical to vcal converter is a webapp with which people convert their google calendar exports to palm desktop compatible files. Used by a surprising number of people judging by the comments (and hits) on the blog post. Open source.
  • im2avi is an application for making AVI films/movies from series of images, written in C++ and FLTK. Not supported anymore.
  • KMX – somewhere in 2004 very late at night and on weekends, I architected and implemented the first version of KMX, Treparel’s flagship client-server system for the analysis and visualization of high-dimensional data. Many person years of development have gone into it since and now it is a thing of beauty that you too can own! Proprietary.
  • Linux kernel watchdog drivers – In 1999 and 2000 I coded kernel 2.2.x drivers for three different hardware watchdogs for the embebded platforms I was designing for Crusader Systems (now CSense), and they let me put these online. Open source.
  • nvPY is my ugly but cross-platform Notational Velocity-inspired simplenote-syncing note-taking tool. If you’re a nerd with a note-taking fetish, you’ll love this. BSD open source.
  • NyARToolkit Multiple Marker Tracking – I added multiple marker tracking support to the NyARToolkit augmented reality marker tracking software library. Open source.
  • pam_pwdfile is a Pluggable Authentication Module that you can use to authenticate users for any service with flat text username:password files. Open source.
  • The Paper CD Cover generator is a webapp with which you can generate nifty PDFs that can be printed on an A4 and then printed to form a CD cover.
  • TimeRank is a next-generation personalized time-management system. I am the main architect, and designed this Django-backbone.js-jQuery-jQuery-UI web-app together with company co-founder Gerwin de Haan. Proprietary.
  • vtkFlRenderWindowInteractor is a C++ class for combining FLTK and VTK. This was integrated with ITK quite some years ago. Open source.

Then the list of software that I’ve contributed to:

  • doc++ – Donkey years ago (I estimate around ’98 or ’99) I fixed global  overloaded function parsing in this C++ document generation tool.
  • ITK – I worked mostly on the Python wrapping layer of Insight segmentation and Registration Toolkit, introducing  exceptions, observers and the ITK-VTK connection. The wrapping layer has since been completely revamped in WrapITK by Gaetan Lehman and Zachary Pincus.
  • JED – I used to be the Debian Developer (around 2000) responsible for this emacs-like text editor and also contributed a number of patches, for example implementing font anti-aliasing on XFree86, improving bibtex support, and whatnot.
  • Linux kernel – low-level fixes I made to the 2.4.4 kernel for the VT82C686A south bridge in 2001, as well as for the ov7620 camera sensor chip in ’99, are in the kernel source.
  • VTK – When I was still working on my Ph.D., I had plenty of time to commit regularly to the Visualization ToolKit source repository. I worked on aspects of the Python wrapping, and a number of small changes here and there. For example, that Finalize() call in all vtk*RenderWindow  classes is MINE. :)
  • XFree86 – Somewhere in 2003, I designed and implemented low-level S3 suspend/resume support for the ATI Radeon in XFree86, the dominant open source X Window System at the time. My code was integrated with mainline XFree86.

BTW, I make available (sometimes slightly modified) Python-enabled Windows builds of VTK and ITK:

… but you should rather just get the DeVIDE Runtime Environment, it’s much better and more up to date.