Sunday, 5th June 2005
Treading dangerous waters
Today i set about at my task of web site developer of Friends of India (FOI). The official website for the friends of india is hosted at www.csuohio.edu/friendsofIndia/. Friends Of India ( FOI ), is an official Indian student organization which is registered under Cleveland State University. The main activities of FOI is to assist Indian students at CSU and to promote cultural events at CSU for the Indian community.
The earlier web developer graduated last semester and i volunteered to take responsibility for maintaining the site. Main reason being that my roommate, Venkata Subba Rao was president of the organisation. At that point i didnt know what i was getting my self into. To avoid a possible clash, i will not refer to the previous developer by name and will avoid names as far as possible.
When i first visited the FOI site, when i got to cleveland, i was indeed impressed by the site. A major portion of the site looked very good, the flash animation for the site was also superb. The old web pages still existed, and there were a couple of broken links but all in all the website looked impressive, a far cry from some of the other websites for Indian Student Organisations across US. Considering the state of the website, i assumed my task would be simple. Update the content with fresh material, correct broken links etc. Little did i know what was in store for me.
Here are a couple of screenshots of the main page and the prospective students (coming to csu) pages.
They look impressive dont they. Well i agree and probably that was one of the reasons i choose to take on this task. But i was soon to realise what happens when a non computer science background person attempts to do a computer science guy's job.
I have always said "Designing a website is only half the story, maintaining it is the other thankless half". It is here that developers with non computer science background show their flaws. Their work (although good) makes it a nightmare for future developers. They just simple lack the vision to understand how programs and projects evolve over time and the need to maintain design principles. In this day of CASE tools and WYSIWYG editors, they are easily carried away by generating tons after tons of junk code. All of which come crashing down on the developer next to you.
Although i am a huge fan of DreamWeaver and other WYSIWYG editors and i still do use it, they are still imperfect and generate a lot of junky code which makes maintainence a nightmare. From experience gained from trying to maintain my previous version of the site, i have learnt that the best way to write HTML code is to hand code the tags, use style sheets and avoid code generating tools such as Dreamweaver for this task. Well then what is the use of Dreamweaver then, if you are going to hand code stuff. Well the answer is syntax higlighting, debugging facility etc. But the crucial feature for me is the templating mechanism wherein any changes i make to the template are propogated to the pages which are build using this template. So what i do i hand code the template (putting it tags etc). This method i believe is the best way that a developer keeps the next dev-guy in mind and makes his job easier.
It is clear that by looking at the code, the above design principle wasnt adhered to by the previous developer and a code generator/ WYSIWYG editor (most likely Dreamweaver) was used. This code turned out to be a nightmare to go through. I wasted a whole week attempting to clean up his code. Which brings us to the main issue i wish to address.
Probably the one compelling reason, anybody would take up the task of maintaining a student organisation website is so that he has an extra line to put under "web development" on his resume. The former developer and me share the same idea. But what seperates me from him, can be best understood when one does a search for anything related to the friends of india in a search engine. We all know that search engines look at meta tags when they report search results.
But when you look at these tags (Name substituted in interest of avoiding conflict)
< meta name="description" content="Friends of India, Web Developer: Mr Web Developer, Cleveland State University" > < meta name="keywords" content="Friends of India, Web Developer: Mr Web Developer, Cleveland State University" > < meta name="author" content=" Mr Web Developer" > < link rev="made" content=" MrWebDeveloper@gmail.com" > < meta name="publisher" content=" Mr Web Developer" > < meta name="copyright" content=" Mr Web Developer" > < meta name="page-topic" content=" Friends of India/Indian Student Organization" >You begin to realise that Mr Web Developer intended to make a statement and also his present felt.
Before i started on the site, i spoke to the previous FOI president, who instructed me to merely update content of the site, fix broken links etc. He also emphasised that the prev developer wanted his name to remain on the site and not be taken off. WTF !!!!
I'm no expert on Intellectual property, and although i do respect it. In the software industry, we often find ourselves on the wrong side of respecting intellectual property. It is more suprising to me that the prev developer was so keen on keeping his name on the site, since apart from the eye-candy of the initial pages, the content of the site is not even remotely genuine and was all copy-paste from the previous developer (who ever that was) whose work in 2000-2001 is still the bread and butter of the site while the new additions proved to be mere eye-candy.
Now here i am faced with the dilemna of having to either try and put up with all the crappy code/design while still leave the prev guys name on it or do a complete overhaul of the entire site (a big waste of my time). Quite understandably i had to pick the latter option.
Here is another reason for my decision. The site although pretty and full of eye-candy is a nightmare. I dont know if you have heard of div mania. But this is worse. Everything on the page is a div tag with postion:absolute and co-ordinates given in terms of pixels. Not that absolute positioning of div elements is terrible, but it is definetly not ideal. But the thing that really blows things out are that each of the div tags had a overflow:hidden style asociated to them. What this mean is that any text which doesnt fit into the element is not visible to user and cant be scrolled to.
For me attempting to adding any content to the tag was impossible because of this styling. Changing the style to scroll, causing ugly looking scrollbars to appear. With such a predicament, updating the site was a virtual no-no. The expression i can best use to describe the site design (full of div tags with no overflow) is like sticking Post-It notes all over the screen and then expecting someone to make changes within the constraints of these post-it pads.
Another bad design of the main page is that it failes the golden rule of "avoid using tables for layout". The "avoid using tables for layout" blurb can be found in Introduction to tables in the HTML 4.01 Specification:
Tables should not be used purely as a means to layout document content as this may present problems when rendering to non-visual media. Additionally, when used with graphics, these tables may force users to scroll horizontally to view a table designed on a system with a larger display. To minimize these problems, authors should use style sheets to control layout rather than tables.
Putting into perspective all these factors, the best option available to me is to completely redo the site. Considering that i dont want to waste too much time on this and i'd rather being doing other fun stuff during the winter, i will be coming up with the new site design. I have cleaned up all the content of the pages, added new reveland stuff. I'm not only in need of a good looking cascading style sheet. (Gook looks and style are definetly not my forte). Besides the fact that student organisation websites aren't available for development during the summer break gives me time to finish up. This decision not to allow student organisation websites during summer break is a little strange and inconvenient since in our case most students from India start during the Fall semester and would be keen to obtain information through the site. I hope my efforts would help them out.
Wish me luck on my task of web developer though (i need it) !!!!
Posted by Nikhil on Sunday, 5th June 2005 in TechnoBabble | Life in General | Nonsense