
James Ashton
Position
I am the IT Manager in the
ANU
CECS
IT Group.
Contact Information
Email
James.Ashton@anu.edu.au
Snail Mail
James Ashton
IT Group
College of Engineering and Computer Science
RSISE Building 115
Australian National University
Canberra, ACT 0200
Australia
Telephone
International: +61 2 6125 8675
Australia: (02) 6125 8675
ANU: 58675
Facsimile
International: +61 2 6125 8645
Australia: (02) 6125 8645
ANU: 58645
Other Activities
X-Face
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-Face: .
The leading X- is to avoid
interfering with the mail header namespace as suggested by
RFC822.
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.
The compface
library contains routines for converting to and from the X-Face format.
Several
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.
-
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
be required.
-
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
greyscale displays.
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?
Nevertheless I have some ideas about eventually creating a colour
X-Face format.
Diplomacy
Once an avid Diplomacy
player, I've created my own version of the
conference map.
My version is in the shape of a septagon (seven-sided polygon) instead
of the standard rectangle.

Rayshade
I've used
rayshade to assist in designing a house.
This has led me to create several programmes which build on rayshade's
capabilities.
rpp
I quickly reached the limit of the C preprocessor when writing
input files.
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
called rpp.
It's just a suite of subroutines which mirror the rayshade primitives.
As each routine is called it produces rayshade code on the standard
output.
Now I just write a C programme which produces rayshade output and
I get the full generality of C, not just cpp.
Sun Position
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
(called sun.c)
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
Apple's QuickTime
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
patch
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.
Of course planar is the default.
/* planar */
/* cylindrical */
/* spherical */
fov 100
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
 |
 |
 |
| Planar Geometry |
Cylindrical Geometry |
Spherical Geometry |
Combining my house design work with the QTVR extensions to rayshade
allowed me to create this
Virtual Reality House.
LaTeX indxcite package
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 harvard and index
packages for LaTeX 2e.
The package can be obtained from my
local ftp site
or from CTAN.
Netrek
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.
Web Development
http://birchmans.com.au