GRAYnomad Nature Photography :: Untitled



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.