Ghosts of the Past: A Tale of Updating an Old Website

Recently, I’ve had the opportunity (or punishment, depending upon how you look at it) to perform a few updates on a project I did for a client more than fifteen years ago. This longtime client has also become a friend through the years, and I truly enjoy working with him.

The update consisted mainly of including the company's new logo and branding guidelines, so it was just going to be a few cosmetic changes. I wasn’t particularly interested in revisiting this project after such a long time however as I said, the client is friend and I regularly do other web and design work for him.

I thought to myself, “Well, just a quick bit of work. I’ll be in and out, real quick like.” I continued to reassure myself, “Besides, the code I wrote back then can’t be that bad can it?”

The first thing I did was fire up Chrome to have a look … not pleasant.

Sometimes, I see websites made with tables

Note: Due to the graphic nature of the imagery, and what little pride I wish to retain, screenshots will not be provided.

The site was created before the turn of the millennium so we were targeting the winner of the browser wars, Internet Explorer (version 5 or 6 - I don’t remember). Looking at it in a modern standards-based browser like Firefox or Chrome, things were breaking all over the place. To top it all off, the design was a fixed 760px wide, to make sure it fit correctly in the 800px wide monitor resolutions of the day. It now looked even more pitiful in my 27 inch monitor with it’s tiny 10px text, mocking me.

I reassured myself once more, “I don’t have time to fix everything, but I could just slip into the CSS and take care of the more obvious problems.” I then proceeded to hook up an old Iomega Zip drive I had buried in the closet under a few ancient SCSI cables, to see if I had a copy of the original files (remember, this site was a child of the 90’s).

When I opened the first HTML file I felt something between shame and amazement. Once I snapped out of it, the inevitable question arose in my mind, “what the heck was I thinking?” Script blocks everywhere, with no apparent rhyme or reason, inline Javascript “onClick” and “onHover” handlers galore, not a comment block in sight, and of course … tables to layout the whole mess.

Then it hit me, “wait a minute! this wasn’t my fault ... this was Dreamweaver’s fault.” That was my IDE back then, and this spaghetti mess was all it’s fault. “It’s not my fault!” I reassured myself yet again. It’s easy to look back and scoff knowing what we know today about separation of content, presentation, and behaviour. This was an artefact from the Pre-Zeldman era, a relic from the browser wars, limping along, trying to survive in the modern web.

So after the initial shock, I returned to my commitment of making the necessary changes to at least let this poor fellow walk upright. But like driving by a car wreck on the highway when the firemen are using the Jaws of Life to pry the poor victim from the wreckage … I didn’t want to look any further, but inevitably, I did …

I remembered that this specific project was also my first incursion into creating “dynamic” sites using PHP. I didn’t have the faintest clue how to do it properly back then, so I had turned to a series of Dreamweaver plugins called “IMPAkt” from a company called Interakt. The company no longer exists (I think they were bought up by Macromedia or something), so support was out of the question, and updating or fixing that code would be a dark hallway to follow.

The idea behind these plugins was to generate all the PHP code necessary to “easily” output the data in a Microsoft Access database file (yes, Access - I warned you this wouldn’t be pretty). It was painful to look at all the unnecessary generated code just to run simple SQL CRUD operations. But once again, I pushed on, trying not to torture my ego any more than necessary.

Reviving the Cadaver

I was just going to change the overall colours to match the company’s new branding and lucky me, I did have enough foresight back then to place most of the CSS in an external file. I was also in luck as the new company logo had basically the same dimensions as the old one, so it was just a matter of swapping it in. With these two things out of the way I began to feel a bit cocky, “This isn’t too bad, I can still get this done within the timespan I planned for.” Then I had a look at the page footer and sidebar, both full of inline CSS style attributes and font tags. You see, the footer sidebar were part of a Dreamweaver template I created, so to change this on all the pages I had two options:

  1. Make the changes manually on each page
  2. Install a copy of Dreamweaver and try to make the change with the old templates and hope it would still work correctly.

Neither of these options were ideal. Would I buy and install a piece of software I wouldn’t use anymore? Or spend the time wearing out my CMD+C and CMD+V keys, and my sanity?

In the end I came up with a third option (just like Kirk, I don’t do the “no-win-scenario”). I already use VMWare on my Mac with old versions of Windows to test sites out in IE, so I managed to get a bargain license for an old version of Dreamweaver for the PC on eBay, and installed it in a virtual Windows XP box. This way I will be prepared for any other ghosts that decide to come visit me from the past again.

I plugged through with the changes, and when I was done tinkering and testing, I released the beast back into the wild. I told myself, “don’t look back ... or it will follow you home like a stray cat”. But the little voice in my head began to chip away at my thoughts, “Are you really happy with what you did there? Do you want anyone to relate this monster to your work?” The truth is no, but that’s the way things are sometimes. You just have to push your pride aside and keep moving forward.

Dawn is almost upon us

Like most things in life, it’s always good to have a look back and see if you learned anything from the mess you got yourself into. Through my contemplation of the whole episode, I had to ask myself the following questions:

  1. Do we depend too much on products, and other trendy processes, in dictating our workflows? Is there anyway we can minimise the damage when we abandon them, leaving a slew of digital orphans in our wake?
  2. To what end are we willing to lose time (and money) for our ego or pride in our craft?
  3. Should we set an “expiration date” on the things we create for clients? Something to at least orient the non web-savvy ones? How long could that be?

So there you have it. Just an experience I wanted to share with you, dear reader. I understand that we all have to start our journey somewhere, and it’s very likely that those first steps into web development we make aren’t going to be the most professional of creations in our portfolio.

If you have been in web development for awhile like I have, you very likely took those first steps by yourself, alone in front of a glowing CRT monitor. There weren’t any great “schools of technology” to tell you where you were going wrong. No Andy Clarke’s to save us from ourselves. But things change rapidly, and you can bet we will be after the next new shiny toy to help us work better, and faster … only to have it disappear like the ghosts at dawn.