Sunday, May 08, 2005

Standards, Anyone?

Okay, maybe I am a little bit anal retentive, but I get so irritated sometimes, when simple things go awry. When simple problems cascade and create gigantic messes that suddenly mean that whatever work you were trying to accomplish fails to, well, work. It seems that these days, that is a too-common gripe. Maybe it is just Chris Walters's attitude rubbing off on me, but I seem to be less and less tolerant of this sort of thing.

So here is today's specific example: Stage Research, Inc., creator of the fantasitc theatrical program SFX, has created a new program for sound people called Show Builder which is supposed to be a great help in creating show paperwork, managing equipment inventory, etc. Basically, it is Lightwright for sound guys. Sounds great, right? It did to me too, so I went to the Stage Research website to download a shiny new demo of the program (for me to poop on.)

First problem I ran into: Check out this page. On the surface, it is a visually interesting, well designed page giving a basic description of the program. However, click on the Download a FREE Demo! link and what happens? Whoopsy. Broken link. A look at the source shows that the link actualy references the following URL:

http://localhost/Website_StageResearch/support/downloads.aspx

Okay, we can see the problem now. The web designer was in a hurry, and didn't replace their absolute links before posting the page to the web. It is a no-problem fix. Simply replace http://localhost/Website_StageResearch/ with the actual address of the website, and you get this link, that actually takes you to the download page.

So, that by itself is okay. Problems happen, no big deal. So, I download and install the demo version of the software (which, by the way, requires the installation of the Microsoft Access runtime environment, thanks for telling me!) I fire up the software and it immediately crashes. I get an error message that basically says it can't locate a file required for the timing of the demo. I look at the path, and sure enough, it references a file on my C: drive.

Now, most people who have a PC, have their primary hard drive designated as C:. However, I do not. My primary hard drive is D:. Now, basic computer programming 101. One of the few things that Drs. Schwartz and Thatamanil agreed on at Millsaps CS department is that you never, never, never use absolute references in programs, when you can use relative references. For example, in the above website problem, you would never hard-code a link from the root of your file system (localhost/Website_StageResearch/) when you could just use a relative reference from your current location. For example, moving from stageresearch.com/products/sounddesign.aspx to stageresearch.com/support/downloads.aspx simply requires a link that says ../support/downloads.aspx. The link simply goes back up a directory, then down to the proper file. This happens regardless of the internal directory structure above the two directoies, and depends only on the fact that the support and product directories are siblings and that the two files are actually present.

This is the same problem that keeps the program from running on my machine. There is an interenal reference in the inital file loaded by the program that refers to a file by an absolute address: in this case, it is C:\Program Files\ShowBuilder Sound Design\ShowBuilder Sound Design.mde. Again, this problem could have been fixed using simple, basic programming practices. Create an environment variable like %ShowBuilder_programroot% that refers to the directory where the program is installed. Or, simpy use the basic, standard Windows environment variables that are built-in and point to specific important directories, like the system root, or the program files directory, etc. These environment variables exist for a reason: So that people with unconventional system setups, like me, can still use the programs, even though the directory structure is slightly different. For example, if you used a %program_root% environment variable, defined at setup, that refered to the directory into which the program was installed, then it doesn't matter where the user installs the program, the interal references will still work, because they won't care what the overall directory structure looks like; only that %program_root% points to the right place!

..... sigh

[edit] And another thing, why doesn't anyone design web pages that are viewable on dialup anymore. Forget your flash portals, fancy animated menus, DHTML, and heavy graphics, or at least give the option to skip over all of that fluff to those of us who are hanging out in the dungeons of dialup.

Finally, for an example of a really crappily designed website, check out this one. It is a lot like a Cameron Diaz movie, it is nice to look at, but you'll be digging for a while in order to find any usable content. A challenge for you super-searchers out there. Find out, using only the website above, where the art studio is on campus. You must provide building and room number for full credit.

0 Comments:

Post a Comment

<< Home