*tap* *tap* *tap* Check check check...

Hello folks. So Raven invited me to jump in here and, not being one to keep my opinions to myself, I agreed. I won't rehash everything in my bio since you can read that if you want to. I've been online since 1989 and I got started out with telnet, rlogin, ftp, wais, archie, veronica, gopher, and the like. I had my first exposure to HTML in 1991, and I've been playing with it ever since. I've been a webmaster for a few companies, currently Cyphermint, Inc., and I worked as a developer for a web development consulting company for a while during the bubble. So most of my entries here will probably relate to web development and web technologies, but I might go off on TiVo, or the pending Blu-ray vs. HD-DVD format war, or some random bit of tech, from time to time.

I was involved for a while in the standards development process within the W3C, and I worked directly on the HTML, CSS, and WAI recommendations. I've been doing web development across several generations of technology. When I started out it was with a CERN text browser, the name of which I've long since forgotten. Later came lynx, another text browser - which I still used from time to time until recently, when I switched to elinks for when I need a text browser. When NCSA Mosaic appeared it was a radical departure. A graphical browser? That was when I really thought things might be interesting and that non-ubergeeks might actually use the web. Later came Netscape, to ride the wave of explosive growth that hit in 1994-1995. Netscape ruled the web - many sites only worked in Netscape, 'Best Viewed In Netscape' labels sprouted like weeds, and proprietary extensions like blink, layer, and frame were the law of the land. Then came the great browser war between IE and Netscape. And while IE, frankly, sucked, it was free and came with Windows. IE became the majority browser - many sites only worked in IE, 'Best Viewed In IE' labels sprouted like weeds, and proprietary extensions like marquee, ActiveX, and iframe were the law of the land. Deja vu.

Netscape was bought out by AOL and the browser code base was open sourced to The Mozilla Organization who proceeded to abandon it like the unmaintainable heap it was and started from scratch on Gecko, eventually giving us Mozilla Suite, and later Phoenix, I mean Firebird, no, I mean Firefox. Yeah, Firefox, the browser that is now steadily eating into IE's market share. Apple also introduced Safari, which caused Microsoft to abandon IE on the Mac completely. And Opera is still out there, filling their niche with a solid product. By the way, if you missed out on all of these interesting times, then you might want to check out the evolt.org browser archive. Download something like NCSA Mosaic 1.0 for an interesting experience.

Now we also have 'non-traditional' devices. I mean, WebTV/MSNTV has been around for a long time, but it has never been more than a tiny niche player. But a growing number of people are accessing the web from their cellphones and PDAs, which have their own browsers and display constraints. (And, trust me, PocketIE is not just like IE on your PC.) I've been accessing the web remotely on my PDAs for a while, currently on my PalmOne Treo 650 with Blazer or AvantGo, before that on a Sony Clie with NetFront. And this is a growing market. Web browsers are showing up built into set top boxes and televisions, and there are products like Nokia's new web pad. While, in the past, it was mainly software diversity on one platform (the PC), now there is HW diversity as well.

So what's the point of this abbreviated trip down memory lane and overview of technological evolution? That there is one thing that can help keep you, as a webmaster, from going crazy trying to support all of these changes and niches - standards. Across all of these generations basic support for the web standards has varied, but overall it has been fairly solid. If you developed your site using the standards it would work on any standards compliant platform, which is nearly all of them. Even on special devices like a phone with a small screen, sites will resize and reformat much more nicely when they're standards compliant.

Everyone who embraced Netscape and created Netscape-only sites got burned when IE took over the market. And then, not having learned their lesson the first time, it seems like most of those people switched over to IE-only sites. And now they have to deal with Safari, Firefox, and the flock of new non-IE devices. I see people complaining about this kind of thing all too often, and the problem could be avoided simply by using the standards nearly every browser adheres to. Honestly, the web is pretty stable these days. If you worked though the fight over how to do tables in HTML (complete with multiple, incompatible implementations), JavaScript vs VBScript for client-side scripting, JavaScript Style Sheets vs Cascading Style Sheets, the aborted HTML3 effort (did you notice HTML went from version 2 to 3.2?), and all that excitement, then you know what I mean. And if you didn't, then you can just ignore that bit.

I think it is important to know HTML, CSS, etc, if you're going to be designing and making your own sites. WYSIWYG is a misnomer for the web, it isn't really true. The tools now are OK - but when things don't work as expected people who don't know how things work can't figure out why. But if you know the fundamentals you can do some clever things and do things that aren't in the point and click wizards. I find that the code I see generated by tools like FrontPage and Dreamweaver tends to be bloated and overly complex, and sometimes it has cross-browser problems. I know some of that is in how the tool is configured, but if people don't know how to configure the tool, it really doesn't matter. People who can only use authoring tools are limited to what the tools allow them to do. People who know how to tweak HTML, CSS, etc, at the base level can do just about anything. And, when absolutely necessary, knowing the rules helps you know when, and how, to bend or break them without causing too many problems.

There are a few basic concepts that I feel make life easier when taken to heart. Use HTML to setup the structure of a page. A paragraph is a paragraph, a heading is a heading, tabular data goes into a table, etc. Don't use tables for layout - tables are for tabular data, not laying out a page. Layout is what style sheets are for. If you need to layout blocks of a page, use CSS positioning.

Think of HTML as the foundation and frame of a house. The structure - it creates the rooms, the bearing walls, and keeps everything in its proper place. CSS is the plaster, paint, and furnishings. With CSS you can set font attributes - size, color, face, etc. You can control the colors of everything. You can set backgrounds. You can position things on the page where you want them. HTML is the structure, CSS is the presentation.

If you do this well, you can make radical changes to the look of a site without touching a line of HTML. I've had to work on a redesign of an existing website as part of a new branding push. I redid the entire site by editing two style sheets and changing the background image. The colors changed, the position of things changed, even the overall width of the layout changed. And I controlled it all with the style sheets. Two files tweaked and the entire site looks different. And it works, and looks the same, in IE, Firefox, Opera, Safari, and others.

You can even change the images on a page - put in empty DIV elements, then in the style sheet set the size and position of the DIV, and give it a background image. You can have two completely different looks using an identical HTML file. So you can easily do 'branded' versions of a site by using a different style sheet. It makes maintenance of a site so much easier. And it also makes the page markup much, much cleaner.

For example, take a look at the Cyphermint and PayCash sites, even the dynamic menus at the top of the Cyphermint site are XHTML+CSS. I didn't do any scripting, no images, no Flash. The sites are 100% compliant with the XHTML1 and CSS3 standards. (Well, except for a couple of dynamic pages from before I took over that I didn't work on, and I'm working on getting those corrected.) I validate every page I work on and I already have some ideas to improve the menu markup in my next revision.

I tell people to learn FRAME and IFRAME - and then you know why not to use them. I hate frames, it is a decent idea implemented terribly. Being able to dynamically load content from different URLs into one page is nice, but Netscape didn't do a great job on frames, and MS just extended it when they added iframes. I really tried to do something to fix it - when OBJECT was introduced I was on the W3C working group and I tried pushing to allow the object to be any object, including other HTML. It would obsolete frames and iframes, you could use objects and setup the page's layout with CSS. I lost that one.

Don't get me wrong, there will always be compromises. Sometimes I have to do things in my markup that I'd rather not do, either to make a design work to meet a corporate mandate, or to accommodate a bug in a browser. And by browser, 99.44% of the time I mean IE. IE6's standards support is lacking, to be polite. But I'm planning to make my next entry about a tool that takes IE by the neck and beats it until it obeys most of the standards, making life so much easier. Anyway, web design ends up being a religious argument over the 'right' and 'wrong' ways to do things, so I'll just say there are many ways to reach the same goal.

Another good reason to adhere to the standards is DHTML. DHTML, Dynamic HTML, is basically HTML+CSS+JavaScript, and it is quite powerful. But it is like building an addition on that metaphorical house. If the house is sturdy and stable, it can work quite well - and developing and debugging the dynamic components will cost you much less sleep. If the house is already a little shaky, trying to hang dynamic features on it can bring it down into a pile of rubble. And you'll spend hours, or days, trying to figure out why something works in one browser, but not another, or even on one page and not another, in the same browser.

A lot of webmasters shun the standards, saying they don't have time to learn them. But if you don't have the time to do the job right the first time, when will you have time to do it over? Knowing the standards and working with them will save a lot of time in the long run. You will spend a lot less time fighting with the layout of a page to make it work on different platforms. When you need to update a site, being able to edit a file or two instead of every page is an incredible time saver. And you will think of new, creative things you can do, once you have comfort with the standards. I started out the same way most people did - I looked at pages other users had done and copied ideas. But that only takes you so far. I started reading the standards to broaden my skill set, and it allowed me to be a lot more productive. Especially since I don't have to keep rewriting pages to follow the latest trend in browser adoption.

I'm sure I'll harp on this again in future entries, as I'm sure you can tell, I like to beat the standards drum, but the next few entries will cover some of the tools and resources that can improve you live as a webmaster. I hope you'll be back. If you have any questions, comments, insults, or anything really, please leave a comment. (I wonder how long it'll take for that to get spammed now that I've published the address.) Thanks for reason.