Pulp Figures
    An e-commerce site for a small lead figure manufacturer.  Designed entirely in PHP, backed by a MySQL database this site has all the bells and whistles.  Features include a custom coded shopping cart, secure credit card transactions (128 SSL, TripleDES and MD5 encryption), mailing list manager, dynamically generated on the fly PDFs, control panel to allow the client to modify site and database catalog himself. Everything designed entirely on my own - from concept to completion.

Great Escape Games

    Another e-commerce site.  Database driven catalogue and shopping cart.  A script was written to integrate existing (and future for that matter) static HTML files into the dynamically created pages.

Comfy Chair Games

    Yes, another e-commerce site.  Custom coded e-commerce site, like all the rest.  One notable feature is the downloads section.  Users can select any and all cards they wish to download, then a PDF of their selections is created on-the-fly and streamed to their browser.

Hasslefree Miniatures

    At the risk of sounding repetitive, another e-commerce site.  Bigger than the others, it features a search facility, in addition to all the many other features all my other e-commrce sites offer.  The control panel also allows the site owner to create sub-categories and to sell limited edition models (and naturally keep track of that inventory).  Again, all custom bespoke programming by myself, so the owners get exactly what they wish to have.

Moonfleet Miniatures

    Yes, yes...yet another example of a bespoke e-commerce site.  Although I admit in this case I did not create the art and graphics, but as ever - the coding and database was all by yours truly.

Warmaster's Challenge

    Something without a shopping cart for a change!  A simple static HTML site for Canada's largest 40K Games Workshop tournament.  I think the site required more image manipulation than coding!

BCT Kitchener

    A simple, clean ASP design for a wholesale printing company.  JavaScript is used but sparingly.  Navigation is easy and design is consistent throughout.  ASP was used to easily manage the ad banners displayed on the pages.

Council Fires

    A convention site for historical hobbyists.  Due to the number of photos required for this site, a large number of pages would essentially be identical, except for the image itself. I decided to use PHP in order to dynamically generate these pages, to cut down on development time, and to easily accommodate later additions and updates.

Being A Short Discourse on Miniature Wargaming

    A personal hobby page, that has steadily grown over the years.  Due to the size of the site, PHP - specifically the ability to share common files - has again been employed to allow for fast and easy future changes.


    Specific Programming & CGI examples


    JavaScript has a number of versions of the language itself, and even worse - it has some infuriating implementation differences between the major browsers.  Still, JavaScript can be used effectively for client-side scripting, if you are aware of the cross browser issues.

      A simple Slideshow displaying a variety of the rubberstamp products.  Even if the browser doesn't support the script for whatever reason, the page coding degrades nicely. An image will still be loaded, albeit a static one.  A much better solution than an animated .gif, since behind the scenes another JavaScript routine is working to cache the remaining images during the loading of the page.  The slideshow is therefore essentially streamed, which displays photos much faster than a large animated .gif.

      Navigation throughout this next site is accomplished by the use of tabs on a navigation bar that is consistently placed across the top of each page.  Rollovers on the navigation tabs are used to enable the viewer to quickly determine an active link.  Behind the scenes, another JavaScript routine is used to preload the "rollover" tabs, to allow for instant image changes.

      In an interesting blend of languages, PHP was used to create a webpage containing dynamically generated Javascript, which was then used to print truncated descriptions of some thumbnailed pictures.  Why go to so much trouble?  The Javascript routine uses an array of strings called from a common .js file, which means that the array is then cached in memory.  When a user clicks on the thumbnail, a PHP script is called to display both the picture and the Javascript routine that displays the text.  Since the array is already memory resident in the user's computer, this means one less connection to make, thus speeding up download time.  Believe it or not, it also makes adding new pictures and descriptions very easy.


    A relatively recent development, this new open source language is immensely powerful, robust and fast.  In concept it is akin to Microsoft's Active Server Pages, and includes the ability to integrate relational databases, such as MySQL, as well as an increasing number of powerful modules for other tasks.

      The photo galley at the Council Fires Convention website uses PHP.  Since PHP is a server scripting language, of course the HTML is coded on the fly for each request.

      The shopping cart for this e-commerce site for Pulp Figures was coded in PHP...naturally as was the rest of the site.  Since the site is intended for e-commerce, SSL encryption was neccessary for sending the credit card information.  The catalog is handled using a MySQL backend.

      PHP is just such a fast and easy language to work in, that I used it to code the guestbook for another designer's site. He designed the frontend of the site and I simply added the dynamic aspects of the backend.


    The granddaddy of open source languages, perl has evolved to become the most popular language of choice for CGI scripts.  Despite the relative opacity of perl's regular expressions and other syntactic quirks, its fast development time makes perl a very useful tool indeed.

      A designer approached me about writing a spider to crawl across a rather large website to extract data and place it into a database. Perl is a mature language, so there were some very powerful modules available to facilitate such a project.


    Like PHP, Microsoft's Active Server Pages uses a scripting language to generate code on the fly, and to also handle various CGI events.

      Some changes were decided upon for the existing BCT website, notably the inclusion of banners on most pages.  Admittedly, the banner code could be added manually to each and every page file, but that's so inelegant, especially if changes will be made to the number and type of banners.

      The webhost was running MS Windows2000, so I rewrote the pages into ASP.  Using the Microsoft AdRotator component made adding banners to the site simplicity itself.  All of the banners' specifications are located within a common text file, so future additions or changes will be easy and fast.  Since I was recoding the pages to ASP, some common functions (like the date, the banner code and the common header bar) were also reworked into a Server Side Include, again to facilitate future updates.


    Created by Sun Microsystems, Java has the great advantage of being platform independent.  No matter the system, a Java program should run across a number of different operating systems.

      Although Java is capable of much, much more than just applets, here are some examples I created for a Java programming course at the University of Waterloo.  The page is a bit barebones, since it was only intended to showcase assignments for that class.  I'd like to point out that I usually went beyond the actual parameters of the assignment, to learn a bit more on my own.


    A cousin of Postscript, the Portable Document File or PDF, is rapidly becoming a web standard for displaying documents across a variety of different platforms.

      Not all customers like to read computer screens, so the e-commerce site Pulp Figures allows customers to download a PDF of the catalog that they can view or print out using the ubiquitous Adobe Acrobat Viewer. The interesting thing about this particular PDF is that it is dynamically generated directly from the Pulp Figures database. As a result, the file is always completely up-to-date, and since a script on the web server automatically generates the file no time is wasted in maintaining and creating new PDFs manually.


    Developed by Macromedia, Flash has become a nearly universal (at last count: 497 million internet users) plugin for browsers. With vector graphics and the increasingly powerful ActionScript, some amazing displays can be deployed using Flash.

      My strength is admittedly coding and I do not claim to be an artist. Still, Flash can be used for some eye catching splash pages. I created this splash for an e-commerce site that had not yet gone live. The movie was designed with slow modems in mind; the large graphics in the beginning are naturally tiny vector expressions, so load extremely quickly. However they provide something for the viewer to look at while the comparatively large jpeg pictures are loaded in the final frames.


    Return to the Main Page