I spent most of the 90s employed as a software engineer
and the 80s as an embedded engineer doing both software and hardware.
Most PC-based applications I've written have been
in VB6 and I've been resisting the call to change to VB.NET, mostly
because a few years ago I wrote half an application in VB.NET 2003 and
I was not very impressed, it seemed at the time that VB.NET was not
a mature product, I found it difficult to use and I confess to struggling
with the language.
That was then, and this is now.
I recently decided to try VB.NET again, this time
using 2008 and I am now a full convert. It's still way too bloated for
the applications I will write but I prefer to think of it as VB6 with
lots more features. Also it's now a real object oriented language, unlike
the OO kludge that VB6 was.
This page gives an overview of some past projects
I've written, either as a personal project, a contract, or as an employee
of various IT companies.
Picman (personal project)
Picman has been my image management application for
about ten years. It's written in VB6 on top of an Access database.

Click for full-size (168k) screen
grab.
Picman works well but is looking a little dated these
days, I'm still using it but am currently writing a new version in VB.NET
so the VB6 application's days are numbered.
Siteman (personal project)
Siteman is my web site synchronisation program. It
compares an local image of the online site and builds a list of FTP
commands to be executed when I next gain access to the internet.
So why not just use any of the web authoring packages
or RSYNCH over SSL?
Mostly because they all do file compares over the
internet and—at least when I first started connecting with a mobile
phone— I didn't have the bandwidth or the time for that.It's less
important these days with high-speed connection even on a mobile phone,
but this system works so I still use it. Certainly it's more convenient
to have my upload ready to go so I don't have to stand around with my
laptop balanced on the motorbike seat while some software interrogates
all 15,000 files on my site.
WIth Siteman I simply connect, blat the files up to
my ISP, then go home.

Click for full-size (85k) screen
grab.

Click for full-size (160k) screen
grab.

Click for full-size (116k) screen
grab.
Since moving to Vista the FTP part of this program
broke so Siteman nor produces a TXT file that is parsed by another program
(written in PHP) which does the actual FTP uploading.
Graduate student admin package (Contract)
This was written for the Australian Catholic University's
Office of Research. It performed functions such as the extraction of
DEET (Dept of Employment, Education and Training) statistics.
Written in Paradox Application Language (PAL) on a
Paradox database.
Student practical placement (Contract)
Written in C for the Australian Catholic University
this package used a fuzzy-logic weighting algorithm to determine what
schools the students should be placed in for the annual practical part
of their course.
There were many parameters to be considered, for example
- Student's preference, some people simply wanted
to teach at a specific school.
- Student's course requirements, not all schools
taught all subjects.
- Student's address and that of potential schools
to try and allocate a scholl that wasn't too far to travel from home.
- The fact that students cannot go to a school they
have already done a practical at.
All these and other requirements were input, allocated
an importance weight, then tabulated and student-school scores calculated.
The result was ready in a few seconds and saved what
was previously days of work by several staff on the office floor shuffling
5x3" cards around.
Library acquisitions and finance (Contract)
Once again this package was written for the Australian
Catholic University in PAL on a Paradox database.
The package kept track of all book acquisitions made
by the university library and produced financial reports at the end
of the financial year.
SSA quality control testing system
The SSA-NAME product is a name-matching engine used
all over the world by those with huge databases, for example the police,
tax departments and immigration departments.
As part of the quality control procedure we needed
to apply thousands of test scenarios against the latest release and
compare the output with known good data.
This system used a combination of text input files,
SED, AWK and GREP scripts to read input data, run it through the product,
compare the results, and produce reports that highlighted any discrepancies.
All this was controlled by a VB6-based GU.
SSA algorithm front end
The abovementioned SSA-NAME had to be tuned to a given
"population" of names, for example the names likely to be
found on US Immigration database will be largely different from those
on the database at the Japanese tax office.
This tuning had to be done by those with the local
population knowledge and when I joined the company this was performed
by tweaking tables and C source files.
To make this easier I was tasked with writing a VB6-based
front end that allowed the user to define population parameters at a
high level, the application then translated this information into the
appropriate source code and tables.
PRIME autopsy analyser
This application extracted a memory dump from a crashed
communications board on a PRIME mainframe computer and analysed the
contents for hints as to the cause of the crash.
The dump was obtained from a 2904 bit-slice processor
via an on-board Z8000 then uploaded. The analysis application was written
in C on a PRIME mainframe.