Number of Images on this Page = 1

Use Of These Pages

The catalog is restricted to photographs where either I own thecopyright, or permission has been given to include photographshere. Permission is given to copy any these images for personalor research use, but not for republishing, commercial gain or profitwithout written permission from me or the original copyrightowner. I would appreciate hearing how you findthese images useful.

Welcome to John Hurst's Railway Photograph Catalogue!

G'day. This site started out as a way of cataloging my numerousrailway pictures, which I first starting building up as a set ofroot window backgrounds. That was back in 1992, before theweb. But once I became aware of the web (in 1994), I realised thata web page would not only allow me to peruse my catalog easily,but might also prove useful to others.

This site first went on-line in the week starting 3 Jul 1994,and I claim it as one of the first railway web pages! (Pleasewrite to me if you know of any earlier pages.) Proof of thislies in the school's server log pages, originally at ,under "10 items accessed most ... /image_lib/trains 96". Howabout that for industrial archaeology? The csse serverhas now been taken down, and is no longer accessible. But Ihave kept a copy of the relevant page, see School Server Usage Jul1994. Look for the line that says "/image_lib/trains 96",which was my first trains web page.

Anyway, I hope you enjoy these pages. Many people have writtento me to say they have enjoyed them, and you are welcome todrop me anote with your comments.

  • Image : dir= page=index 96835 bytes, 800x600 pixels
  • Date : 21 Apr 2000, catalogued 14 May 2000
  • Photographer : Barbara Hurst
  • Medium : colour print
  • Description : Hello. This is me. I'm not sure why I'm includingthis picture of me, but my wife likes it. Taken on the broad gaugesteam train returning from Wodonga, Easter 2000.

Current NEWS ...

New Domain Name

(20190210) The websites are now totally defunct and decomissioned.Use Note that currently this is now the only website tomaintain my full list of trains (other sites may beoccasionally available, but are not guaranteed to contain mycomplete set of railway photographs.

Catalogue Overview

This page describes the extensive collection of railway imagesmaintained by me.For my other reciprocal railway links, see my Railway Links Page . If youhave a railway page, and you'd like to swap links with me, justdrop me an emailnote, and I'll add you in!

The numbering scheme used for the images themselves is relativelystraightforward, and provides the basis for referencing all imagesand their descriptions. Where there is only one locomotive in thescene, its class/road number is used as the title. Multipleimages of the same loco are reflected in a "-1", "-2", etc.,suffix.

Where there is more than one locomotive in the scene, and thelocomotives are coupled together, the road numbers are appended inthe form "leading+trailing+.." as appropriate, again with a "-1"suffix to distinguish multiple images. If the locomotives are onseparate tracks, the notation "loco=loco-1" is used. Multipleparallel running, with multiple coupled locos is handled by"loco+loco=loco-1" and so on.

Occasionally, where many locomotives appear in a scene, only themain ones may be identified (such as at roundhouses, etc.).

Where the railway scene does not specifically contain locos, itis labelled on a more ad-hoc basis, using the content aseponomously as possible.

Please mail ajh at ajhurst dot orgif you enjoyed this archive, or if you have any comments orcomplaints!

Whether you are visiting for the first time, or revisiting, youwill probably find the RecentlyAdded Images page useful to see how things are progressingwith these pages. I add things as I get time, and this pagegives you a quick overview of what has changed of late.

I currently also have a rather large backlog of photos to put up,and while I am always most pleased to hear from newcorrespondents, I would ask you to note that if you send my photosfor inclusion in these pages, there may be some delay in placingthem online.

Catalogue Details

How the Catalogue is Built

In an ongoing project like this, managing the large amount ofinformation that is continually changing can rapidly becomeintractable. Hence I recognized quite early on that some sort ofmanagement system was imperative. Here are the various approachesthat have been used:

  1. Building all pages in HTML, and editing the raw HTML. Aconsistent look and feel was established by cutting andpasting templates. Needless to say, this approach was quicklysuperceded!
  2. Defining each page as a literate program, using macroprocessing facilities within the literate programming tools toensure a consistent look and feel.
  3. Defining each page as a literate program, butgenerating m4 files for handling the macro expansion.This complicated the generation process, but provided morepowerful macro tools.
  4. Moving the literate programming process from a TeXbased system (nutweb) to an XML based system (XLP/AXE).
  5. Building the pages in XML, using a purpose-builtmarkup, and then statically transforming these XML files(at the time of upload to the web server) into static HTMLfiles. This system has worked well for severalyears.
  6. The current system is a bit more elaborate, but hasthe advantage of dynamic rendering, and simpler filemaintenance. It is described below.

The Current System

Each image has its own description XML file. The main pagesare defined as XML documents called index.xml that"include" the description files. Such files are thentranslated directly to the corresponding HTML page using anXSLT script. The shunting yards, or navigation barsat the head of each page are generated by a series of separatexml scripts, such as Central.xml.

Requests for files from the server can either be to the baseXML file, or the derived HTML file. In both cases, a.htaccess file gives the server additional information on howto render the file.

For an XML file, there is a handler index.pythat is invoked, and it is passed a parameter stringindicating the XSLT stylesheet to be used for transforming thedocument into HTML, which is then delivered to the client.Dynamic data (such as file modification times) are deliveredto the XSLT script at this point.

For an HTML file, if the file exists, it is retrieved andreturned. This is a transition phenomenon only, where theHTML file is left over from the previous (static) method ofrendering (see above section). Where the HTML file has beenreplaced by the XML file however, an Error 404 is generated(since the HTML file does not exist), and this is captured bythe handler. The corresponding XML file is retrieved, thestylesheet name recovered from the nearest upward .htaccessfile, and the process of the previous paragraph completed. Allwithout any obvious action observed by the user.

Given any image reference (e.g., Gerogery-1) and itsdirectory (e.g., misc), all the information required topresent this image can be constructed from them, relative to theuser home directory on the server, viz.:

Full Image
Thumbnail Image

Indexing the Catalogue

A taxonomy of railway subjects is not straightforward. I havetaken the approach of cataloguing by attribute of ownership,although the epoch is not necessarily consistent. Thus forexample, PuffingBilly has a separate section, although most of the stockwas originally built by the Victorian Railways. Visits byrolling stock to other systems further confuse this,especially where multiple items of different ownership areinvolved. Hopefully no one will be too confused by theapproach taken. Of course, the author will happily entertainany debateupon the subject!

Dynamic Ranking of Images

There is a dynamic ranking process that uses access to thefull images as a voting mechanism. This does not use the web logfiles, but only records those images accessed by clicking on thethumbnails. See the VoxPops page for more information, or clink here .


There is a new directory called "themes" containing themedphotographs. These are photographs already in the album, butlinked by a common theme. See Night Photographs for anexample.

This page is copyright, and maintained byJohn Hurst.
183 accesses since
19 Jul 2020
My PhotoMy PhotoTrain Photo

Local servers:LocalhostNewportBurnleyEvertonKerangOuyenSpencerTerang(accessible only on local network.)
Public Web Servers:HurstServerHomeServer1HomeServer2InternodeServer(not all may be active.)
Dynamically generated at20210122:2346from an XML file modified on20191212:1230.

--> -->
Python 3.6.9: /home/ajh/binln/python3
Fri Jan 22 23:46:32 2021

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /home/ajh/public_html/cgi-bin/ in <module>()
    646     print("<a href=''>John Hurst</a>")
    647   else:
=>  648     logfiled.write("%s: %s: NO ERRORS IN %s\n" % (tsstring,clientIP,requestedFile))
    649   logfiled.close()
logfiled = <_io.TextIOWrapper name='/home/ajh/local/' mode='a' encoding='ANSI_X3.4-1968'>, logfiled.write = <built-in method write of _io.TextIOWrapper object>, tsstring = '20210122:2346', clientIP undefined, requestedFile = '/home/ajh/www/trains/index.xml'

NameError: name 'clientIP' is not defined
      args = ("name 'clientIP' is not defined",)
      with_traceback = <built-in method with_traceback of NameError object>