About this Page
You are here because you are curious about the nuts and bolts of what makes my website work. Good for you.
My old website at Cornell, which was an unholy mixture of hand-hacked HTML and FrontPage autogenerated gibberish, Sucked greatly. This has since been corrected. You too should strive to Not Suck.
Design that Sucks
Much of the web, like everything else, sucks. There are various reasons for suckage. Some things we can do very little about, such as "this site contains no useful content," a chronic problem with me. However, there are other forms of suckage that anyone can do something about, and there's no reason not to do them.
- Best viewed in some browser. One common form of suckage is designing the page against a specific browser. This has the nasty side effect of making your site suck with any other browser. It's also fundamentally rude - you're telling everyone who isn't using your browser to shove off. Internet Explorer is especially bad in this regard.
- Making noise. I hate pages with embedded sound. I hate them with a passion. There are few things on the web nastier than pages that feel compelled to blast sound from your speakers the instant you visit them. I have never seen a website where the use of unrequested embedded sound added anything positive to the experience.
- Color blindness. Neon yellow text on a white background? Dark purple on a black background? Unreadable color combinations suck because it renders your page illegible, although it might have the beneficial side effect of hiding your content that sucks.
- Four-point font. Not everyone has perfect eyesight or enjoys reading tiny text. In fact, I'm writing this on a laptop with an extremely high resolution (but smallish) screen, which means I have all my fonts set to larger than default so I can read them. I also require glasses to see anything more than two inches from my face. Your website will suck for the visually-impaired if you depend on text being a certain (usually too small) size. I could go on about how handicap accessibility is a good thing, but unfortunately nobody seems to care.
- Flash-only. Some people think that putting their entire site in one giant Flash thingy makes them cool. Such sites don't allow me to use the Back button and other perfectly fine browser navigation tools. Such sites therefore Suck.
- Blinking, spinning nonsense. Far too many websites, especially personal pages, are full of blinking text and spinning animations. Have you any idea how visually distracting it is? It takes the focus of your eyes away from the content, in addition to being aesthetically unappealing. And let's not forget the infamous <blink> tag, one of the worst things Netscape foisted on the world back when Netscape actually mattered. Internet Explorer does not recognize the <blink> tag, and this is considered a feature.
Some say that personal web sites should be exempted from meeting any sort of minimal design standards because they reflect the personality of the creator. Nonetheless, many such pages Suck. I'd rather think that they suck due to ignorance, and not because the person behind the page has a callous disregard for other people.
Eric S. Raymond has a lengthier (and even less diplomatic) list of things that suck in web pages.
People who consider themselves web designers (I don't) would do well to make sure their page doesn't suck and is designed for accessibility. There is a pretty good book available online about designing accessible sites.
How I try not to Suck
- Best viewed in ANY browser. Come on, the W3C HTML 4.0 spec has been around since 1996. The W3C CSS1/CSS2 spec has been around since 1998. This isn't bleeding-edge technology. These standards exist so that web designers don't have to worry about pages looking fine in one browser and sucking in another. Unfortunately no current browser fully implements the standards, although Mozilla comes close. This website is designed as valid HTML 4.01 Strict and valid CSS with graceful degradation, so you can use any browser you want.
- Silence is golden. There is no embedded sound. There is no sound at all, unless you ask for it.
- Color-coordinated. While this site does not and will never look "sexy," you can read it. That makes it suck less than many hipper, more high-tech sites.
- Any font size you want. I'm kind of proud of the fact that I never specify an absolute font size anywhere. You see, CSS has unit measures that let you define everything in terms of the current font size, so it is never necessary to specify an absolute font size (which chronically winds up being too small). Use whatever font size you want. I like my big fonts.
- No spinning globes! One gets tired of seeing websites featuring animated spinning globes for no good reason. I don't have any.
Best Viewed in Any Browser
This page is best viewed in any standards-compliant browser. The whole point of the web standards is to avoid the Bad Old Days when websites looked right only in a specific browser. If we adhere to the public industry standards, things will look reasonable in any browser (even non-traditional browsers, like text readers for the blind). This is a Good Thing, and anyone who thinks otherwise is clearly monopolistic, misanthropic, or just plain uncaring of other people.
Standards-compliance isn't rocket science. The W3C CSS1 Specification dates back to 1996. The W3C HTML 4.01 Specification has been around since 1999. The CSS Level 2 Specification has been around since 1998. This is ancient stuff, but amazingly enough, some popular browsers still don't support it fully. The only reasons I can think of for professional designers not to use these (and newer) standards involve incompetence, laziness, a callous disregard for users, or all of the above.
If you can read this, you're probably running some flavor of Netscape 4. Please, for the love of God, try to upgrade to a newer browser. Almost any recent browser will be more standards-compliant than Netscape 4. Try Netscape 7, or Internet Explorer 6, or Mozilla 1.x.
The entire website validates as W3C HTML 4.01 Strict and W3C CSS1.
Here's a good page on why we need to move to standards-compliant browsers.
Browser Compatibility
I make an effort to test this site against every browser than I have easy access to, mostly because I am curious about how badly archaic software sucks. The quality of the visual presentation is directly related to the degree of compliance with published W3C specifications. Browsers will less or no compatibility will still be able to access all content, but with lower levels of visual appeal. It really doesn't matter all that much, as most of the content is text, and it still looks passable on a text console or cell phone or pretty much anything that understands HTML. It just won't be as pretty.
Basically, Mozilla (and derivatives), Netscape, Konqueror (and probably Safari), and probably Opera are fairly standards-compliant. Internet Explorer is somewhat worse, Netscape 4.x is horrible, and if you are using Lynx you'll get some reasonable textual representation.
Browsers that are compliant enough with W3C Recommendations to enable full functionality include:
- Mozilla 1.5 [Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031015]
- Galeon 1.3.9 [Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031015 Galeon/1.3.9]
- Mozilla 1.1 [Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020826]
- Mozilla 1.0 [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0.0) Gecko/20020530]
- Galeon 1.25 [Mozilla/5.0 Galeon/1.2.5 (X11; Linux i686; U;) Gecko/0
- Konqueror 3.1 [Mozilla/5.0 (compatible; Konqueror/3.1; Linux)]
- Konqueror 3.0.3 [Mozilla/5.0 (compatible; Konqueror/3; Linux)]
- Internet Explorer 5.2.1 Mac OS X [Mozilla/4.0 (compatible; MSIE 5.21; Mac_PowerPC)]
- Netscape 7.0 [Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020823 Netscape/7.0]
- Netscape 6.2.1 [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4) Gecko/20011128 Netscape6/6.2.1]
The following browsers are sufficiently compliant to have no serious visual glitches, although some elements may appear slightly different from more compliant browsers.
- Internet Explorer 6 Windows 2000 [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461)]
- Internet Explorer 6 Windows XP .NET [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)]
- Internet Explorer 5.5 Windows [Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)]
- Internet Explorer 5.0 Windows [Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
The following browsers are not standards compliant. It won't be pretty, but you can still read it reasonably.
- Netscape Navigator 4.79 [Mozilla/4.79 [en] (X11; U; Linux 2.4.16 i686)]
- Netscape Navigator 4.78 [Mozilla/4.78 [en] (Windows NT 5.0; U)]
- Netscape Navigator 4.76 [Mozilla/4.76 [en] (Windows NT 5.0; U)]
- Netscape Navigator 4.08 [Mozilla/4.08 [en] (WinNT; U; Nav)]
The following browsers will render little to no formatting. Users with these browsers will see mostly text.
- Lynx 2.8.3rel1 [Lynx/2.8.3rel.1 libwww-FM/2.14]
- Lynx 2.8.5dev3 [Lynx/2.8.5dev.3 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c]
- Links 2.1pre2 [Links (2.1pre2; Linux 2.4.18-6mdk i686; 80x24)]
- Emacs-W3 4.0 [Emacs-W3/4.0pre.46 URL/4.0pre.46 (i686-pc-linux; X11)]
- Amaya 5.3 [amaya/5.3 libwww/5.3.1]
- Netscape 1.22 [Mozilla/1.22 (Windows; I; 32bit)]
- Netscape Navigator Gold 3.02 [Mozilla/3.02Gold (WinNT; I)]
- NCSA Mosaic 2.1.1 [NCSA Mosaic/2.1.1 (Windows x86)] (if server does not set charset in MIME-type)
Backwards-compatibility hacking
Netscape 4.x does not recognize media="all" in
a <link rel="stylesheet" type="text/css"
src=...> declaration. This behavior can be exploited to
only load certain stylesheets if the browser is not Netscape 4.
Internet Explorer on Windows, up through at least version 6.0, is not
fully CSS2 compliant. In particular, it does not understand CSS child
selectors. This can be exploited to activate rules that Internet
Explorer will not see. To do this, place the declaration in a
separate statement and use a child selector on the body. For example,
if I wanted to hide a rule on the foo class, I would
declare body>foo { ... } in my stylesheet. Internet
Explorer will not see this rule, but more standards-compliant browsers
will, overriding existing attributes on foo.
The Making Of...
After sufficient pain with Microsoft FrontPage borking up all the code, I went looking for something better. Sadly, everything I tried Sucked, so as the old saying goes, if you want a job done right, do it yourself. Everything was redone by hand the right way using Emacs, the One True Text Editor.
No Microsoft products were used in the creation of this website.