BeeBen's Web Programming PagesBee

Please note that these pages date from 2003 and are near prehistoric in internet terms. It was good stuff when it was written, but old hat now.

These pages not maintained and I no longer deal with queries about them. They remain here for historical interest.

Website technology

The principal raison d'être for this website is so that I can play around with web programming technology. Which goes some way towards excusing its weedy content. These pages summarise some of the goings-on behind the scenes. None of this is highly sophisticated—I'm only a hobbyist dabbler—but some of the tips and tricks might be of interest.

All of the techniques discussed here are actually in use on my webpages here or other pages I have built. All the examples are real examples. That's why I hope they will be useful to you. These pages are not intended to be a comprehensive source of information on the techniques discussed: there are much better sources of that, some of which I try to link to in the Links section.



I have been an almost daily user of the World Wide Web since about 1993, and an Internet user before that. As I write that is a timespan of over a decade: short by human standards, but several generations for the Web. Over that time I have seen dozens of browsers come and go, revision after revision of the HTML specifications, and any number of new webpage technologies and proprietary browser extensions.

The prejudices which pervade these pages arise from this long exposure to the Web, and the frequently frustrating and challenging experience surfing has now become. So, my first obsession is with web standards. My second is a corollary of the first, a drive for accessibility.

I talk about this a little more on the XHTML and CSS2 pages and the Javascript pages. XHTML is a version of HTML heavily influenced by XML, which is where the future of the standards-based web seems to lie, so I've put some notes on working with XML on the XML page.


Dynamic content

HTML and CSS are fine for delivering static content to peoples' web-browsers. It's much more fun, however, to generate web pages dynamically.


Some of my pages are dynamically generated for trivial reasons: the date stamp in the title of the "who am I?" page changes with each access; the title of my homepage changes according to whether you access it as or


Some of my pages are dynamically generated for easy maintenance. The What's New list appears on the homepage as well as having a more comprehensive page of its own. Rather that maintain the list separately on each page I create a single list which is read by the scripts that generate each page. My sermon pages are dynamically generated to make adding a new sermon as straightforward as possible. The page you are reading is dynamically generated so that I can include the title, index, navigation, footer etc. on each of pages without duplicating all the code. In fact, the page-index is automatically generated for even easier maintenance (see the server-side XSLT section for details).


Some of my pages are dynamically generated because they do interesting things not possible with static HTML. The M'Cheyne Bible Calendar is the most sophisticated script on the site, with output that changes daily. The HTTP header viewer processes a form and returns the result. And although it would be possible to implement the GIF-server statically it would require over 100 million individual files, occupying some ten gigabytes of disk space. A single 2835 byte Perl script seems a sensible alternative 8^).


For more about generating dynamic content have a look at the Perl and PHP or MySQL pages for starters.


Valid XHTML 1.0!
Valid CSS2!

Copyright © 2003 Ben Edgington.