A few years back, Chris Roberts started his foray into the world of computer programming and, as every newbie should, Chris found a mentor to help get him going. Chris' mentor was generous enough to show him a brand-new project that he had just completed for one of his clients: an ASP-based website to display and maintain listings and reviews of restaurants in a local metropolitan area.

Though Chris was new to programming, he wasn't new to common sense and some of the things his mentor did just didn't make sense. But Chris didn’t question it and just figured that's just how things are programmed. A month or so later, after the client entered in a few hundred reviews from their magazine archives, they client requested that the layout of the reviews be changed. They were all minor changes, such as the header font needed to be bigger and left aligned.

Chris didn't quite understand why his mentor was groaning and complaining about the change. After all, Chris had done enough HTML to know that such a change should just involve changing the CSS file. Surely, all that would need to be done is to redefine the “H2” tag used on the article pages.

Evidently not.

The database contained all of the formatting. And I mean *all* of the formatting. The headings pulled directly database looked like this ...

  <h2 style="font-family: Arial, Helvectica;font-size:14px;
>Chotchkie's: A Review</h2>

... so, Chris started to understand why this was such a pain. Each heading would need to be updated in the database.

And actually, the word database is a bit too strong. Chris' mentor didn’t quite use those, instead preferring a giant text file with lots of records separated by --------------. Or at least that was the case for some of the record files. The passwords text file (named, appropriately passwords.txt and placed, appropriately, in the root of the site, accessible by all) was formatted like this:

John Roberts:aab11

Thankfully, Chris realized that it was time for a new mentor.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!