[Skip top navbar]

Andrew Gregory's Web Pages

Rocky outcrop at sunset, Approx 27°56'15"S 119°38'17"E


My Website



HTML-Kit is very much like an IDE for web pages. It's basically an intelligent text editor designed to work with HTML and other web files. It's also got an integrated FTP client that makes site updates much easier (it's drag-and-drop, plus it also automatically transfers graphics as binary and HTML and scripts as text). Numerous plug-ins support spell checking, colour selection, validation, etc. Did I mention it's free?

Other than that, I sometimes still use Notepad and vi.

For graphics I use Paint Shop Pro.

To get files to my ISPs web server, I use WS FTP Pro (their old Windows 95 version).


I use standard XHTML to try to ensure that every web browser will be able to correctly understand my code. To ensure this, I use the W3C HTML Validation Service and the W3C CSS Validation Service. Each of my pages has a validation icon that will automatically check that page just by clicking on it, which makes it very simple for me.


There's no point creating a webpage that some people can't see. To help me keep my pages interoperable such that the maximum possible proportion of my visitors can view them, I follow the guidelines, checklists, and techniques provided by the Web Accessibility Initiative (WAI).

One of the best tools available that can automate this checking (at least partially), is Bobby.


I've tried to make my website as fast as possible. That means no gratuitous graphics, no graphic without its height and width specified, no Flash objects, minimal Java applets (only two - panaoramas and Apple 2 emulator), minimal JavaScript.

Server Scripting

I use Server Side Includes on every page to generate the navigation bars at the top and bottom and create the extended webpage titles based of the titles of the "parent" pages. Other scripts include one to generate the Site Map, one for my photo galleries which includes the ability to read the EXIF data from inside the JPEG, and another that handles my panorama gallery.

The benefit of using so many scripts is that it makes it much easier to maintain the site. The scripts automate a lot of the boring 'cut and paste' that I was doing when I started my site. Scripts make sure that each gallery page is consistent, and any enhancements I make are immediately available for all photos.

A drawback is that they make my site slower, primarily by not allowing my pages to be cached. It means that instead of your ISP keeping a local copy of my pages, your computer is forced to communicate with my ISPs server, undoubtedly taking longer. There is a benefit to that, though. My website statistics are much more accurate since everybody who is visiting my site is actually hitting my site and not their ISPs cache. If your website is cached, your hit counter will read lower than the real number of hits your site is getting.

All of my scripts are written in Perl. The photo galleries and panoramas also make use of the GNU djpeg and cjpeg JPEG decompression and compression tools to generate the thumbnails. That means I don't store any thumbnails on my website, visitors get the benefit of small files sizes for quick downloads, I get the benefit of thumbnails that don't take up any of my limited web storage space, and both visitors and myself get the benefit of the thumbnails always reflecting the actual photo. cjpeg and djpeg are available on virtually all Linux installations, luckily my ISP uses Linux. This sort of thing would be more difficult with MS IIS.


I don't use PHP on my site, although my ISP supports it. The reason is partly historic - they've only recently begun supporting it, and partly portability. More ISPs support Perl than PHP.

However, I have developed a drop-in replacement for my Panoramas webpage, and I will probably upload it when I convince my ISP to include the EXIF support in PHP.


Use of JavaScript is limited to enhancing the usability of my site. It isn't needed to create the basic page this entire site is based on. It's used in the site statistics support, and to obfuscate email addresses so spam spiders will have a hard time harvesting them. I have used Javascript on the odd occasion to automate form calculations or similar. At no time have I used JavaScript to perform functions critical to the creation of my webpages. If you can, turn JavaScript support off on your browser and reload this page - nothing will change.


The menus in the navigation bar don't use Javascript, unless you're using Internet Explorer. Even then, the Javascript isn't specific to the menus: it's a generic script that allow Internet Explorer to understand the CSS :hover selector when applied to any element. If you're using Opera or Mozilla, then you can turn JavaScript off and the menus still work!

In-page Links

Links to destinations on the same page can be confusing. Stuart Langridge's Smooth Scrolling technique helps to reduce that confusion. For my site I've modified his script slightly so it works with id attributes on any element, not just name attributes on anchor tags. I've also tweaked the scrolling algorithm to be more to my liking, and stopped it from breaking the browser Back button. This last fix has introduced some flicker, but I'd rather that than the Back button not working properly.


My Sitemap uses Javascript in the form of my Explorer Tree script. See that page for details.

Useful Links