Work on this website started in 1995. Although the World-Wide Web had been conceived 5 years earlier, by 1995 it had only made limited impact on the Internet. Having a website was still a really new thing in those days. Times change: there are millions of websites now, not least the half dozen or so related to the Welsh Highland Railway (of which, more here ).

I started with a collection of 'old' photos and a collection of 'new' photos. Those old photos have gone on to become the history gallery . The new collection has grown and grown. I wanted to publish details of the route, a topic I find fascinating. So I asked James Boyd whether I could use excerpts from his excellent books, but he refused (but not until after he'd asked me to type in all the text for his consideration). But Alun Turner was much more accomodating and I am pleased to be able to present the whole of his excellent short book to form the core of my history section .

This website is very much a spare-time activity. I hope you enjoy it nevertheless.

About the Author

photograph of Rick driving Russell

I have been a member of the WHR Ltd (formerly the '64 Co. ) since the late 1980s. Like many others, I was dismayed when the FR intervened and took over the project. However, I was determined that a hobby should be a hobby and I refused to sink into the slanging matches of the mid '90s (as a Christian, I think that returning hurt for hurt is wrong anyway). Rather, I have sought to draw the different organisations together, within my limited influence of course. I have been a member of the Welsh Highland Heritage Group since its formation and a member of the WHR Society for several years.

When I first visited the Railway in Porthmadog, I was made most welcome, even though I'd happened to have missed the very first Civil's Week by just a few days. Instead I was found useful work to do: training as a guard. With no practical background in railways whatsoever, I found this surprisingly appealing: there is indeed a lot to learn. When I later achieved my Guard/Signalman qualification, I realised this had been a most beneficial induction to the Railway: I'd recommend it!

I am now an active volunteer working in the track gang, driving works trains (and occasionally Diesel-hauled passenger trains). I also am co-editor of the quarterly magazine The Journal . Dare I say it, this is a most excellent magazine and worth joining the Railway just to get it!

Professionally, I am an Internet Consultant, focussing on technologies espoused by the World Wide Web Consortium , of whom my former employer is a full member. I am a qualified Java programmer, although that is just one of the many computer languages I know.

Tools I Use

Because of my background in computer programming, I have tried to bring my skills to bear to reduce the effort needed to write and maintain my website. Consequently, there are several classes of webpages included in my website:

Hand-written pages

This website has very very few hand-written pages. However, this is how I started out, and I have used a variety of editors including plain text editors such as TextPad , JEdit , etc. I have tried a range of WYSIWYG editors: MS FrontPage 2000 ( not recommended!), Netscape/ Mozilla Composer (disappointing but improving), and Adobe GoLive (too hard to learn). I have recently had the luxury of trying Dreamweaver MX , but alas the learning curve is substantial so it hasn't been used on this website.

Script-written pages

A good way to save time is to write only the page content, and use a tool to convert the content into webpages. It takes quite a lot of technical skill, though.

  • I have extensively used a carousel generator (originally written in Perl , but later re-written in Java ). This indexes my collections of photographs, including 'next' and 'previous' buttons etc ( example ).
  • I had a sitemap generator that finds all the webpages by recursive inspection. This Perl script includes flexible pattern-matching rules to control what is included and excluded. However, I had to move my site from a Unix development environment to Windows and my script did not survive the transition. I plan to write a replacement, probably in Python.
PHP

PHP is a lightweight alternative to Java Servlets and Java Server Pages. Like Perl, PHP is a scripting language, but it was designed with webpage generation and database integration in mind so is better suited to this particular task. PHP is widely used on this website. It is intended to generate pages dynamically, but I use it statically like SSI also, so I can validate the pages before deploying them. More specially, there is a PHP/MySQL web roster application for operating staff, which is fully dynamic. This also features news editing tools and other tools for working parties etc.

XML plus XSLT

XML is a syntax for arbitrary document languages. It supports webpages but unlike HTML, it has a thorough treatment of document well-formedness (i.e. all those opening and closing angle brackets, and their stuff, all matching nicely in a clearly defined way). XML is revolutionising document interchange in the same way that, say, email has revolutionised memorandums.

XSLT is a special tool for XML that allows documents to be transformed according to a set of rules (XSLT is itself a flavour of XML). This is great: the content of pages can now be completely separated from the styling of those pages as web pages. I used this technology in earnest for a while on my website. It was quite hard to learn but has benefits. Ultimately, I found PHP much more productive, however. There is no XSLT generation left on my website.

Automatic Image Replacement

Much has been written on the 'net about replacing the boring styling of headings with something more fancy ( more info ). The challenge is to create rectangular images that present a more attractive decoration of the headings (especially fancy fonts) instead. Much research has gone into applying these replacement images using pure CSS techniques. However, no-one has found a solution yet that works in all circumstances. So I've adopted a different approach: I insert <img> elements in the XHTML pages instead of using CSS.

I have developed a tool called Jairus (Java Automatic Image Replacement Using Selectors) that automatically generates heading images by parsing the XHTML sources and pattern-matching using CSS selectors. The XHTML is modified and written back. This task is performed offline before the pages are uploaded to the webserver.

Actually Jairus could potentially be modified to apply any of the other image replacement techniques .

Finally, another technology is of vital importance on my website, both for decoration and for providing the main menu.

Cascading Style Sheets (CSS)

CSS is the essential means by which webpages don't bloat with styling markup. So I use CSS extensively. Ban the dreaded FONT tag! In 2003, I switched to CSS with XHTML throughout; see why .

In 2004, I discovered how to replace the Javascript menus with lighter-weight CSS menus. These are definitely superior, but it took until mid 2005 for me to work out how to do it well. Now you see it on pretty well every page.

A useful tool for writing and checking CSS definitions across a whole website is TopStyle Pro , which also includes an editor for HTML/XHTML (but sadly no support for XSLT).

Some other technologies worthy of mention, but not used on my website.

CGI pages

Back in the dim and distant past, the idea of Perl (et al) scripts generating webpages on-the-fly was a nice trick. I tried it but found it didn't do much that my scripted page generation couldn't handle. Handling forms using Perl or PHP is still something I use a little.

Server-side includes (SSI)

Server-side include technology is provided by most webservers: bits of a webpage can be split off into common files. I once used this quite a lot, but it was hard to work with because the tool support was poor and because previewing pages can be tricky. There is a de facto standard called SSI , which I used, but this is not so good for off-line development. I found a better bespoke alternative called includeHTML which I used to use for many pages. This was good, but is now eclipsed by PHP and XSLT .

Java Server Pages (JSP)

Java Server Pages is a Java-based technology that does what CGI pages do, but in a technically much more satisfactory way. I have used this technology extensively, but not for this website.

If you're using JSP, Jakarta Struts and the Spring Framework both provide an architecture for developing effective and maintainable JSPs better. If you're using JSP, check them out! I use them at work, but not for this website.