Joe's Diner Logo

My Resume

You can view my official resume with all its pretty formatting, or read on for a little more detailed and practical description of what I know.

Software

I also have been know to write a bit of software now and then. Unfortunately, since I code full time, that does not leave me a lot of time and motivation for free lance projects. Some of my old, half-finished demo projects are in my programs section. My most mature piece of software is the framework for this website, described below.

Website Management

Using FrontPage to make a website would be too easy, so I took my own road. Although there are many [External Link]  different [External Link]   CMSs [External Link] , none quite met all my needs. I liked the flexibility which dynamic pages provide, but did now want their overhead on a site which rarely changes. To achieve a slightly better solution, I store just the base content for each page and render them into static HTML pages with the correct headers and footers. So in essence a source directory from the website is 'compiled' into the final web pages suitable for a web server.

At its heart is an Ant [External Link] script controlling everything. The main task is to take the text for every page, which is stored in a quasi-HTML file, and transform it into valid XHTML 1.1 and CSS using XSLT. This method allows for a uniform look and feel to be applied to the whole website, while still allowing for dynamic sections. For example, the path to the current webpage (displayed just underneath the logo at the top) is generated from a data file, independent of the physical directory layout. This data file is also used to generate links within the website that automatically update if a page moves, create the sitemap, and provide per page custom dictionaries for spell checking.

Another useful feature is image manipulation. When developing a webpage, every image is stored in its original form. Since these are often too large for practical use on a website, they are automatically scaled to something a little more web friendly for the live website. Thumbnails are created if necessary and the <img> tag is filled in with the correct height and width.

The Ant script also handles spelling checking (via Aspell [External Link] ), XHTML validity checking, validating links, generating a sitemap [External Link] index, and deployment to a remote web server. I am even paranoid enough to store the whole thing in a Subversion repository so I can have history and saneness of configuration management.

Although definitely not perfect, this system provides some of the benefits of server generated pages, but none of the usual overhead. For sites which do not change very often, it seems like a good fit. I will eventually put a snapshot of the management scripts up for other people's reference, but I have no plans of polishing them into any kind of release.

The free service SiteUptime [External Link] also monitors this website to alert me if there is a problem with it.