From: Sam Trenholme 
To: list@maradns.org
Subject: Web page updated
Mime-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Disposition: inline

In preparation for working on the next release of MaraDNS, I have updated 
MaraDNS' web page.  It took me all night last night to update the web 
design to look better on modern computers while still being a perfectly
usable site on older computers.

The first thing I did is replace the background with an image.  Yes, back
in mid late 1990s, when displays were 8-bit and Netscape just added the
background tag, doing background images resulted in some really ugly 
web pages.  However, these days, where even 16-bit displays are older, and
true color is the norm, a background image can work quite nicely.

Not many people are using 8-bit displays.  Indeed, Fedora Core 3 is 
nay-to-unusable in X when using an 8-bit display.  The Fedora developers
feel that 8-bit displays are uncommon enough that they don't even try to
accommodate them.

A lot of web designers still design web pages that are optimized for 8-bit
displays.  One reason for this is because it is impossible to look at web
server logs to see just how uncommon 8-bit displays are; another reason is 
because old habits are hard to let go of.

Naturally, I'm being tasteful about the background image.  The background
image will only load on modern browsers with CSS support; last time I had
a computer that couldn't have a display depth greater than 8bpp, said
computer didn't have enough computing horsepower to run a Gecko-based 
or other modern browser either.  Additionally, the background image is
only visible outside the boxes that contain the content.  

While the background image arguably makes the site slightly less
attractive on an 8-bit display, it makes the site a good deal more
attractive on a 16-bit display.  I tested at a number of display depths
to ensure that the site is still perfectly usable on an 8-bit display;
of course.

The site would be more attractive if it were possible to put boxes around
the text on the top of the web page.  Unfortunately, because of various 
CSS rendering bugs on mainstream browsers (can you say IE5 box model?),
placing such a box at the top of the page that lines up with the other boxes
was not possible to do in a cross-platform manner.

The ideal solution would be for CSS to conditionally load the background 
image only if the bit depth of the web surfer's display had at least 
15bpp.  I can't find a way to have CSS do this, however.

Now, there is a vocal minority who feel that one should not perform
cross-browser testing.  Instead, according to these people, one should
just design a web page to the standards.  It's the browser's problem if
the web page doesn't look correct.  

Even though Firefox is gaining momentum, due to spyware and other security 
concerns, at least 80% of the people out there are still using IE6.0 (Opera
fans like to point out that this figure may be exaggerated because many
Opera users spoof their user agent.  My only reply will be that I did test
the website in both Opera 7 and Opera 8 beta [1]).  I can't effectively render
to the standards because too many people still use broken browsers.

Another problem with the standards is that they are designed to do absolute
positioning, instead of relative positioning.  Specifying the locations of
boxes and other elements with coordinates is problematic, since such a web
design assumes that everyone is using the exact same fonts, at the exact 
same font sizes, to look at a web page.  Not only are the font sizes in 
Linux and Windows somewhat different, but a number of people with 
less-than-perfect vision will increase the font size, which will destroy
the look of a web page that specifies positions with absolute coordinates.

I don't know of a way, using DIVs and CSS, to say "this box goes in the top 
right hand corner, with a little space between it and the border of the
browser" and then "this next box is to be placed 10 pixels to the right of
the box we just rendered".  It may be possible, but I haven't figured it
out.

Additionally, I feel the page looks a little more attractive in legacy
browsers when using tables for layout instead of just having it be a flat
file with the DIV tag used for layout.

Web page design is 5% web design and 95% testing.  I found several bugs in
all of this work: Firefox incorrectly does a print preview when the font
is Arial (but, thankfully, prints correctly); Opera, in 8-bit mode, loses
it colors when other color-hungry applications open up, and needs
to be minimized and restored to look normal again.

Anyway, enough web page design.  My next goal is to release MaraDNS 1.1.23.

- Sam

[1] I found a bug in Opera 8 beta's "small screen" rendering which I 
    should report to Opera.

