I am the IT Manager in the
College of Engineering and Computer Science
RSISE Building 115
Australian National University
Canberra, ACT 0200
International: +61 2 6125 8675
Australia: (02) 6125 8675
International: +61 2 6125 8645
Australia: (02) 6125 8645
X-Face is a file format used to allow a small image to be included
with mail items.
Typically the image shows the sender's face and
is included in the mail headers labelled
X- is to avoid
interfering with the mail header namespace as suggested by
I devised the format to contain 48x48x1 (i.e. black and white) images
in the minimum possible space.
With care in production, dithered images
of faces are surprisingly recognisable given their small size
(you can judge from the image above).
Usually only three or four header lines are required.
library contains routines for converting to and from the X-Face format.
software packages can be make use of the images, often by displaying
the face of a mail sender when mail arrives.
X-Face was written when colour displays were much less common than
they now are.
I have received requests to devise a colour version but a couple of
factors have slowed me down.
Nevertheless I have some ideas about eventually creating a colour
I'm not sure that colour images could reasonably be contained within mail
headers given that I expect that at least six 80-character lines would
Many displays can show only 256 colours or fewer often using colour maps
to choose these 256 from a larger set.
Unless the displayed faces all use the same small set of colours then
this could be a colour map hog.
There is the issue of retaining support for black and white or
Black and white has the advantage of being a lowest common denominator.
To some extent X-Face has been overtaken by other standards.
It would be easy to create a colour X-Face standard by using the
newer MIME attachment capability combined with a common GIF or
similar graphics file format.
In the world of The Web, is there even a need for X-Face when it's
easy for many to have their own home page?
Once an avid Diplomacy
player, I've created my own version of the
My version is in the shape of a septagon (seven-sided polygon) instead
of the standard rectangle.
rayshade to assist in designing a house.
This has led me to create several programmes which build on rayshade's
I quickly reached the limit of the C preprocessor when writing
I found I needed a fully programmable input language with the
ability to use complex calculations, conditionals, loops, etc.
My solution has been to create a Rayshade PreProcessor library
It's just a suite of subroutines which mirror the rayshade primitives.
As each routine is called it produces rayshade code on the standard
Now I just write a C programme which produces rayshade output and
I get the full generality of C, not just cpp.
A useful aspect of visualising a home design is the ability to see
how the Sun will illuminate it at different times of year. I've
written a basic routine
that generates a rayshade light source simulating
the Sun given latitude, month and time of day. As written it uses rpp
(see above) but it could easily be adapted as required. It does not
take into account the equation of time which means that the Sun can
appear to be several minutes early or late. This is the same equation of
time that causes sun dials to often include correction tables and is unlikely
to be an issue in most rayshade applications.
Cylindrical Camera Geometry
Virtual Reality (QTVR) software allows users to pan and
zoom around a panoramic image in real time.
It requires as input an image with a 360° horizontal field of view
and with cylindrical distortion.
Since rayshade normally models only a planar camera lens
I needed to extend the package to add a cylindrical camera geometry.
I've packaged my extensions into a small
file which can be applied to rayshade 4.0 patchlevel 6.
The documentation is as follows.
By uncommenting one of the first three lines in the following Rayshade
source three different sample images can be generated.
planar is the default.
/* planar */
/* cylindrical */
/* spherical */
screen 128 128
light 2 point 4 2 5
eyep 1.5 1.1 1.1
lookp 0 0 0
box -1 -1 -1 1 1 1
Combining my house design work with the QTVR extensions to rayshade
allowed me to create this
Virtual Reality House.
I've been heavily involved in the typesetting of textbooks.
The books all include a separate author index.
I needed a way to ensure that when a citation was
made using BibTeX that index entries for the cited paper's authors
would be generated automatically.
I've devised the
indxcite package to perform this task.
It builds on the
packages for LaTeX 2e.
The package can be obtained from my
local ftp site
or from CTAN.
If you've played Netrek
you may have seen me playing as Slartibartfast, usually bombing in
my trusty scout .
I don't play Paradise but I find Hockey fun occasionally.
The link between Australia and the rest of the world, although fibre,
is still nearly 300ms long and together with congestion this makes play
painful at times.
One day, hopefully, the Australian Netrek community will reach critical
mass and regular local games will be possible.