This page lists pieces of software that I've written and happened to make available for one reason or another.
The published software that I wrote at BLDL can generally be found from GitHub.
A mixed-code generation tool written in Racket.
A toy programming language for playing with experimental language implementation techniques and infrastructure. Makes heavy use of Racket as the foundation of that infrastructure.
A Qt-based contact data export application for Symbian and MeeGo Harmattan.
A native S60 application for exporting/deleting SMS messages.
An Emacs major mode for editing Symbian-style C++ code. Very basic.
An Emacs extension for formatting source code comments. The comments may be either plain text, or text containing RDoc (Ruby Documentation System) style markup. Various comment styles are supported.
A Ruby-based application to assist in putting together comic book orders. Tailor made for a subscription service called Jacey Services.
A Java 1.0 applet/application for viewing PIC files (the Psion bitmap image file format). My first experience of writing Java code, I think, and it shows. (It is doubtful this any longer works with current browser Java runtime plugins.)
A Java applet/application that displays basic 3D images using AWT. (It is doubtful this any longer works with current browser Java runtime plugins.)
A pure-Ruby implementation of the PBKDF2 key-derivation function, for deriving symmetric encryption keys from passwords. Based on the PKCS #5 v2.0 standard. Depends on the OpenSSL Ruby bindings for HMAC-SHA-1.
Software Written at HIIT
Some of the software that I wrote (or ported) at HIIT was likewise made available as open source. Most of the original software distributions that were hosted on various HIIT websites are gone by now, but a lot of that material can now be found from GitHub. The still available software includes:
- Koog, a mixed-code generation tool for Racket version 5 (see above for a more current version); and
- ContextLogger2, an S60-native smartphone data collection application;
and a number of Python for S60 extensions, including:
- pyexpat, a Symbian port of pyexpat, with a statically linked Expat (joint work with Kenneth Oksanen);
- pyaosocket, aka aosocketnativenew, a socket library that served as plumbing for PDIS, a larger piece of software written in Python (mostly by Ken Rimey);
- Miso, a general-purpose utility library;
- Miso Alarm, a library for registering alarms with the Symbian alarm server;
- pyinbox, a tweaked version of the PyS60 inbox module for accessing received OBEX Bluetooth messages;
- pynewfile, a library for capturing images via the Camera application;
- pyswinst, a library for programmatic, non-interactive application installation; and
- ctypes, an experimental port of the ctypes Python extension for Python for S60.
Other pages on this website concerning software (or code snippets) written by me include:
- Accessing OBEX Pushed Messages with Python for S60
- Another PIM Data Exporter
- Another PyS60 Extension with a take_photo Function
- ContextLogger2 Technical Report Published
- Dictionary-Enabled Racket Support for Emacs
- Fetching Web Pages into NotDeft
- Look, S60 Software Installation with No Hands
- Mixing Hand-Written, Generating, and Generated Code with Koog
- Nokia's Products Are Error (Message) Free
- On Racket Support in Emacs Org-Mode
- Org-Mode iCalendar Export with Explicit Time Zones
- Org-Mode iCalendar Import with Conversion to Floating Times
- Presenting with Emacs
- Rascal Mode for Emacs Released
- SMS Exporter
- SMS Exporter v1.09 Released
- SMS Exporter v1.10 Released
- Transient Directories in NotDeft
- pyaosocket aka aosocketnativenew Released Standalone