3d printing toys – for the win!

Fisher Price used to make a toy door that had activities and sounds just right for toddlers. Part of the fun for our grandkids was posting letters, but only four generic envelopes are provided.

So, I designed a 3D model of the envelope and created a personal letter for everyone. Every sibling, parent, cousin, aunt, and uncle got their own envelope in their own colour.  The kids loved it, and very quickly associated the names with the different colours.

Thingiverse 1653920 - Customizable toy envelope
Thingiverse 1653920 – Customizable toy envelope


The laws of 3D printing, and Pokemon

When one has a 3D printer, and one has children and grandchildren of a certain age, there are certain fundamental laws that must be obeyed.

You will be asked to print Pokemon.

I faithfully followed the directive, finding a suitable Pikachu model on Thingiverse and printing it in a brand new flexible filament purchased for this very task. But it turned out the tail was not up to the heavy duty required for toddler usage.

So I remixed the design and added a small strengthening part to help prevent the tail from detaching.

This is, by far, the most popular upload I have made to Thingiverse, and is also by far the simplest.

Thingiverse 376601 Low-Poly Pikachu
Thingiverse 376601 Low-Poly Pikachu



Original Pikachu






Thingiverse 1648522 - Strengthened Pikachu
Thingiverse 1648522 – Strengthened Pikachu


My amazingly complex contribution!


hfs-tool is a command line program that I wrote back in 1994 for reading HFS format (Apple) disks on Unix and MS-DOS systems.

Much like my nenscript program, I lost contact with the code after several years as email addresses changed. Eventually the program became surpassed by native implementations of the HFS filesystem on various platforms.

The code is still provided as part of the FreeBSD 9.2. See this URL for further information

Opal and PTLib


Opal is a back-ronym for Open Phone Abstraction Library. This project provides a comprehensive implementation of the SIP and H.323 protocols used for Voice-Over-IP. It has formed the basis of many commercial products and is used by the Ekiga project – part of the GNOME desktop.

This work has been coordinated by myself and Robert Jongbloed, along with contributions from dozens of developers all over the globe. This project originally started off as the OpenH323 project in 1993 with support for H323 only. In 2007, SIP support was officially included and the project was renamed Opal.

The project repository is hosted at SourceForge.

Linux kernel drivers

I’ve been associated with two different Linux kernel drivers over the years.

The driver for the 3Com 3c505 ethernet card was started by me in 1996, and was completed by Andrew Tridgell (fellow Australian of Samba fame). This code last appeared in kernel version 2.4.37.

I was also part of the team that worked on the IxJ driver for the QuickNet telephony card in 1999. That code also disappeared after kernel version 2.4.37.



Nenscript is a clone of the proprietary enscript program from Adobe Systems. For those who have never used enscript, it is a pretty printer and paginator that accepts raw text and outputs PostScript complete with headers, footers, and other useful ornaments.

nenscript was written by me over a period of several months in 1992 whilst I was working at Computer Sciences of Australia as a contractor. The development team I was with was making heavy use of enscript, but that product did not make the jump from the old Sun 3 to new Sun 4 boxes that were being phased in.

After writing it, I saw that several people had a similar problem. So I convinced my manager that this would be a Good Thing to release this as open source.

nenscript – blast from the past

One of the first Open Source projects I ever created is called nenscript. After it was released into the wild in late 1992, the email address I used for the README file disappeared, and I forgot all about it.

Thus, I was very surprised to find that it still lives on!

This appears to be the canonical page for the code, there is a Gnu-Win32 package, and it is still available as part of the BSD FreshPorts  repo. There is also a GitHub repo

I think I will let them know I am still around

Blog restarted

After a long absence, I’ve decided to restart my blog.

Mostly, it will have interesting posts or references to projects I am working on. From time to time, it may contain some non-technical content.

Let’s see where it goes.