CyberTracker 3 (2003-2006)
|

Figure: Desktop: the Sequence Designer.

Figure: Desktop: the report and query system.

Figure: Mobile: a simple screen with radio list.

Figure: Mobile: a screen with scrollable high-resolution map. |
Role
Architect, developer and technical support.
Overview
CyberTracker is the most recent version of the popular data capture software product
used widely within Environmental Conservation, Wildlife Biology and Disaster Relief.
It is freely available for download from here. CyberTracker distinguishes itself
from other data capture products in
4 main ways:
- No knowledge of programming or databases is required
- The mobile application is very easy to use and can be customized for use by illiterate
and low-literate people
- Analysis, reporting, visualization and export are included
- CyberTracker is free
The system is a 2-tier application: desktop and mobile. The desktop application
runs on Microsoft Windows platforms and the mobile component runs on PalmOS (3.0
and later) and Windows Mobile devices (PocketPC 2002 and later). The desktop application
exists to customize the mobile application and to analyze any data that it collects.
CyberTracker also contains several features useful for digital field guides,
for example the playback of MP3 sounds, the display of images and the use of taxonomic
keys.
CyberTracker was commissioned by ECOFAC and is used widely throughout the environmental
conservation community.
Technical Overview
The desktop application is written in Borland Delphi and consists of roughly 120,000
lines of code. Undo/Redo supports virtually every operation, so users can try out
the software without fear. The underlying database is a Microsoft
Access MDB file. Projects can be exported in a compressed format. GIS support is
via a 3rd party component.
The mobile application is written in C++ with layers for Metrowerks Codewarrior
(for PalmOS) and Embedded Visual C++ (for Windows Mobile). The same code is cross-compiled
for use in the desktop application and the mobile application. Since it is specifically
designed for CyberTracker, it is extremely fast.
The mobile source code is designed to be freely available (under MPL) because the
client itself is highly customizable.
Check out my CyberTracker page for more information.
|
Microsoft (1998-2003)
|
|
Role
Developer and Development lead.
Overview
During my 5+ years at Microsoft, I worked entirely within the Windows division.
I began on the DirectDraw team in 1998 and moved to Application Compatibility in
2000.
For a resumé that includes details about my work during this time, send mail to Justin.
|
Compu-VIEW (1997)
|

Figure: Fitting frames to a client.

Figure: After modification

Figure: Lens configuration
|
Role
Development manager.
Overview
Compu-VIEW is a program designed primarily for opticians and optometrists,
but is suitable for anybody dealing in the dispensing of optical prescriptions,
the selling of spectacle frames or cosmetic contact lenses. It was commissioned
in early 1997 by an optician. It contains a database of high-resolution frames which can be fitted
perfectly to a captured persons face (via scaling/rotation). The application also
supports colored lenses and cosmetic contact lenses.
The advantage of this system is that stores don't need to keep stock of every possible
frame that their suppliers produce, but their customers are still provided with
a full selection.
Technical Overview
The entire application is written in Delphi 2.0 for Windows 95. However, several core
components were written in x86 assembler for performance reasons.
Since frames are often very thin, it was important to capture them with an alpha
channel which required a uniquely constructed apparatus.
|
|
Game Tracker v1+2 (1993-2002)
|

Figure: desktop application - complex reports can be generated from the captured
data.

Figure: Field ranger with Apple Newton MessagePad

Figure: User interface on the field computer
|
Role
Developer.
Overview
Originally entitled ‘Field Computers for Animal Trackers’, this project was commissioned
by Professor Edwin Blake (of the University of Cape Town) and Louis Liebenberg. The original concept was to produce
a field computer interface that could be used by illiterate animal trackers. The
field computer is linked to a GPS which gives position information. Data gathered
is then transferred to a base computer for permanent storage, analysis and visualisation.
After prototype development, it became clear that a need exists for a generic field
computer system that could be integrated with commercial GIS applications. The desktop
system is written as a Windows 95 program which configures a field user interface
according to what information needs to be recorded. The project required versatility
in terms of technical capability and systems integration. In addition, the success
of the project has been given much publicity in both press releases and television
broadcasts.
Technical Overview
The base system was coded in Borland Delphi 2.0. The field computer is an Apple Newton MessagePad. The GPS integrates via standard serial NMEA messages. The base system manages an open ended
database capable of capturing virtually any kind of data. The mobile interface is
extensible.
|
|
CEVC (1993-1998)
|

Figure: Editing a new style.

Figure: Final touch-up and save

Figure: Sample output as printed by a photo printer
|
Role
Developer.
Overview
CEVC was commissioned in early 1993 by Tom Ketel, owner of a successful hairdressing
salon. The idea is to capture a clients face and change both the background and
hairstyle to reflect a new look. Unlike other similar applications, this system is
designed to be used by a hairdresser in conjunction with a client. The process involves
the following:
- Capture a client with a video camera using a frame-grabber.
- Replace the existing background with a custom design.
- Select a new style from a library and fit it using any of the available tools. In addition, styles can be altered to appear in the preferred colour.
- Touch-up the final image using photo-editing brushes.
The hardware is mounted in a specifically designed cabinet, with a camera fixed
on a motorised platform behind a two-way mirror. The unit forms a completely automated
system for all kinds of salon consultation. The programming required detailed knowledge
of frame-grabbing, digital image processing, color theory and much of Windows internal
workings. Development took place over a period of 18 months and the system was reputed
to be the most advanced of its kind.
Technical Overview
The user interface is written in Visual Basic 4.0 for Windows 3.11. The core is
coded as a Windows Dynamic Link Library (DLL) with assembler forming
the basis of most routines. The efficiency of the 32 bit assembler
used, allowed real-time usage on a 486DX2-66, despite the high resolution processing
involved.
|
|
3D Graphics Demos (1993)
|
|
Figure: 4 different demos showing serveral 3D visual effects.
|
Role
Co-developer.
Overview
The graphics demonstrations were originally experimental techniques designed to push the
limits of direct hardware programming. However, having released several into the public
domain, additional effects were commissioned by:
- 1992 Cape Computer Fair
- Vision Software
- Mustek Electronics
Most sequences are embedded with a scanned company logo, but in the case of Vision Software,
screens and animations were extracted from existing software.
Technical Overview
The demonstrations are written largely in mode X, a hybrid graphics mode which allows paging
and access to all of the VGA memory. Virtually all the effects are coded entirely in assembly
language with a small high-level interface. In addition, Sprite CAD (next page) was used
for many of the sequences. A single effect often took several days to perfect.
|
|
3D Vector Graphics (1993)
|

Figure: Front view of upper campus

Figure: Another view of university avenue.
|
Role
Co-developer.
Overview
Requested by the Department of Computer Science at UCT, the actual project title
is ‘A virtual walk along University avenue’. However, the viewer is also allowed
to fly and can be positioned anywhere in the scene. The controls are similar to
an aircraft simulator. A recorder is also available to store a fly-through for later
playback.
Technical Overview
The software was written in C, with assembly language sorting, back-face culling
and polygon-fills. The viewer is programmable from a scripting language which allows
the user to define custom objects and new scenes. The system is resolution independent,
but real-time is only available in 320x400 or below.
|
|
Sprite CAD (1990-1992)
|

Figure: The text-based part of the interface.

Figure: The high-resolution sprite editor.
|
Role
Developer.
Overview
Sprite CAD is a suite of programming tools designed for the manipulation of sprites.
The suite consists of 4 major components:
- Sprite management system and editor
- Colour palette editor for palette manipulation
- TSRs for capturing sprites and screens
- Animation library for game writing
During the period of its development, there was a serious shortage of game development
tools, specifically for VGA and Super VGA. The entire kit was distributed
as freeware on local bulletin boards. An 85 page user manual
was included.
Technical Overview
The majority of the code is written in Turbo Pascal 5.5, while the remainder is
coded in assembly language. The TSR applications are written exclusively in assembler
and can capture sprites from almost any program. The high-resolution editor (left)
directly supports seven major VGA compatible chipsets and many more indirectly.
The animation library consists of high-speed animation routines for overlaying and
animating sprites. The performance was comparable to any commercial package available
at the time. The overall size is roughly 30,000 lines of source code, including
assembly.
|