onLine weblog archive

Saturday, August 05, 2000

Mike Cornall: There is Nothing Wrong With Mozilla. In response to Monty Manley's What went wrong with Mozilla?
I will now begin a collection of incorrect descriptions of cookies found in news stories from major sources. The first item in my collection comes from Reuters in an article entitled AOL to Remove Feature in Versions of SmartDownload:
Some companies use "cookies," which help collect data from a hard drive...
As promised, I've tweaked the current look using the techniques detailed below. It's now centered and liquid, though I remain ambivalent about the benefits of liquid design.

For those interested, all design iterations are still available for your viewing pleasure:
  1. Original
  2. Atrocious blue and gray
  3. Photo navigation #1 (using absolutely positioned Divs)
  4. Photo navigation #2 (with liquid effects)
Eventually I'll make it so you can choose which design you would like to use permanently.
From The Programmable Web: Web Services Provides Building Blocks for the Microsoft .NET Framework
Web Services are building blocks for constructing distributed Web-based applications in a platform, object model, and multilanguage manner. Web Services are based on open Internet standards, such as HTTP and XML, and form the basis of Microsoft's vision of the programmable Web.

Friday, August 04, 2000

Here is the promised story of my most recent DHTML revelation: it starts here, at a article. Actually, I guess it starts at Nublog, from where Joe Clark linked to said article. But it was the nice cross-browser DHTML at, not Joe's excellent commentary, that thrilled me that day. Now let's look at glassdog, where some more cross-browser DHTML keeps the navigation bar on screen even as you scroll down the page. Do you notice the similarity between those two pages? I'll tell you what I noticed: they both use absolutely positioned Divs to do nifty (and useful!) DHTML interface enhancements that are tied to the exact location of page elements, WHILE THE PAGE ITSELF IS LAID OUT WITH RELATIVELY POSITIONED ELEMENTS. Excuse my yelling, but that is a pretty cool thing.

In the past, in order to achieve pixel perfect DHTML, I have had to use absolutely positioned Divs for the whole page layout, which, as you may have heard me complain about before, causes numerous problems, mainly in NS4. Take a look at the source code of this page to get an idea of the kludges I have had to resort to get styles to cascade into nested Divs. And notice the commented out javascript that used to center this page, but which I had to remove because of weirdness in IE5 for the Mac. Using absolute positioning is just way too problematic.

Now, some of you are saying "I've seen that before," and others are saying "duh! old news." But mind you, I am not talking about things like the DHTML tool tip help pop-ups in use at Visual IRC, or even the persistent little ad that sometimes chases you down the screen at Those things are not tied to the exact location of page elements; the pop-ups are tied to your cursor location, and the MSNBC ad is tied to the upper right of the browser window. But the photo blow-ups at are tied to the x,y coordinates of the thumbnails. A ha! That is exactly what I want to do with the site navigation and the featured photo on this page, and now I know how to do it without resorting to absolutely positioned layouts. I tracked down the source of this wonderful bit of javascript to a Jamie Jaworski Superscripter article at Blow Up Your Images. Here's the code:

function showBlowup(divID, imageID) {
  if(document.layers) {
    // Navigator 4 model
    var divObject = document.layers[divID];
    var imageObject = document.images[imageID];
    divObject.pageX = imageObject.x;
    divObject.pageY = imageObject.y;
    divObject.visibility = "visible";
  } else if(document.all) {
    // Internet Explorer model
    var divStyle = document.all.item(divID).style;
    var imageObject = document.images[imageID];
    divStyle.posLeft =...
    (window.event.clientX - window.event.offsetX);
    divStyle.posTop =...
    (window.event.clientY - window.event.offsetY + ...
    if (navigator.appVersion.indexOf("Mac") >= 0) { 
      // work around Mac IE bug
      divStyle.posTop -= document.body.scrollTop;
    divStyle.visibility = "visible";
As you can see, the trick is in getting the page coordinates of the image you want to align your Div with. It's easy in NS, a little crazier in IE. It should be just as easy in IE, since the IE image object does have offsetLeft and offsetTop properties which are supposed to correlate to the NS image object x and y properties. But IE's properties are very flaky, and if you nest the image in a table they return ridiculously wrong values. So in IE you have to do some trickery using the built in event object to get the coordinates.

But once you've done it, you can move absolutely postioned elements to the exact coordinates of relatively positioned page elements. Soon, will take advantage of this little trick and things will be so much nicer, for you and for me!

I should probably make clear that all this only applies to the wicked world where we have to care about the 4.0 browsers. Such silliness will not be necessary in the promised land.

BTW, I tracked down the Superscripter article by looking at the code at, where the same photo blow up trick is used and credit is properly given to (But wait you say, I thought he rolled his own...) Oh, and I haven'y yet ripped apart the glassdog code to see how a simlar effect is achieved there. He uses some code from
As you may have noticed, I've done a bit of redesigning. Along the right side of the page you will see a featured photograph, rotated daily. That photograph also hides the site navigation which can be accessed by simply moving your cursor over the photo. At the bottom of the site navigation you will see a link to "today's featured photograph" which will take you to the photography section of the site and allow you to view a larger version of the image. Soon I will finish my DHTML photograph viewer (that I don't yet know quite what to call) and will post various sets of photos I've taken to the photography section. In the meantime, please let me know what you think of the new design!

Thursday, August 03, 2000

I know I promised to tell you about my DHTML revelation today, but there is not time. Meeting all morning, emailing all afternoon, gig this evening. Tomorrow I promise.

Wednesday, August 02, 2000

This afternoon I experienced a DHTML epiphany. More tomorrow.
Signal vs. Noise has some great links and some great commentary, but I'm starting to think maybe THEY suffer from a bad signal to noise ratio. It seems to me they need a little focus. I think the same could probably be said of me, but them I'm not 4 very smart guys with varied interests and opinions. I'm just one guy with the same old interests and opinions.

P.S. They still need permanent links.
There are many things that make me embarrassed to be a Braves fan (John Rocker, rednecks in Atlanta, The World Series) but this article makes me proud: Braves are the model for how to keep retooling a team. Thanks Aaron.
An article on the release of Netscape Communicator 4.74 is follow by a hilarious non-sequitur comment posted by some anonymous soul:
That JPEG comment "security hole" has got to be the biggest load of lard ever perpetuated on the American people by the Christian Right. The so-called "buffer overflow" only occurs in adult images, and only in consenual peer-to-peer transactions. It's called S&M people, and it's no stranger than what you do under the covers at night with the angora socks your sweet Aunt Betty gave you last Christmas.
The Evolt mailing list is taking the incident quite seriously and the grown-ups are considering removing the comment altogether. If it wasn't such brilliant nonsense I would have sympathy for those that want to delete it; as it is I laugh out loud each time I read it. Reminds me of EngineBeak's strange posts over at MetaFilter.
As an ASP developer, Microsoft's ASP+ and C# have me pretty excited. Here's an article from with all sorts of interesting information: Deep Inside C#: An Interview with Microsoft Chief Architect Anders Hejlsberg.
We want to build a platform where your preference for one language over another doesn't negate the whole value proposition. We want to create a platform where there can be innovation. Who's helping COBOL programmers today? Who's taking them to the Web? Only on the .NET platform can you embed Fujitsu COBOL in an ASP page. I mean it's truly revolutionary.
One of the wonderful things the .NET framework has done for scripting languages is to make them compiled. Look at ASP+. Now, you're actually running real compiled code in your pages; it's not late-bound, dispatch look-ups where you don't see a runtime error until the user hits the page. ASP+ developers can use the full power of Visual Basic .NET instead of VBScript. And for the first time, they have the ability to use Perl, Python, and other popular languages if they so choose.
I might point out that we're taking a true open standards approach with ECMA. When and if ECMA actually arrives at a standard for C# and a common language infrastructure, the result will be available under ECMA's copyright and licensing policies, which are truly open. Any customer, and any person, will be able to license the ECMA C# standard, subset it, superset it, and they won't have to pay royalties. They'll be able take it and go implement it on any platform or any device.
But Derek pointed out to me this little bit of ridiculousness:
This notion that Java is 100% pure and gives you 100% portability just isn't true. There's a great interview with James Gosling on IBM's developer works site in which he directly addresses this issue. He said, yeah, the whole right-once-run-anywhere, 100%-pure-thing was a really goofy idea, and was more of a marketing thing. He says, in effect, "We didn't think we'd ever be able to deliver all that, and basically we haven't." Here's the inventor of the language saying that neither purity nor portability exists.
He's taking that completely out of context. Here it is from the interview he is referring to with a bit more context:
The perfect goal of "write once, run anywhere, anything runs on anything" is just goofy. You're never going to run some piece of weather modeling software on a toaster [laughs]. And you wouldn't want to. So there are some scale and capability limits. But within that, you can do an awful lot to make sure that if somebody wants to read a file, it looks the same everywhere reading a file makes sense.
Read the whole interview for even more context; they're talking about the problems of using Java on cell phones.

Anyway, the whole article on C# is a perfect example of why I have a love hate relationship with MS. I love using their technology; I love ASP, and SQL7, and MSXML, and Internet Explorer, and I even like Win2k a whole lot. But I hate lies, and I hate evil marketing, and I don't understand why Hejlsberg would want to ruin a great article on the promise of the .NET program with a dishonest slam on Java. Actually, I guess I do understand why, and that's why I hate it.
Gift idea:'s new CafePress mousepad.

One thing about Newsblogger, the new venture between the blogger people and moreover: I'll bet they didn't have any arguments over the color scheme.
I don't know where I've been, or how I've missed this, but here's an article that tells of the legal defense for DeCSS which amazingly argues that a ban of the piece of software would be a violation of the First Amendment:
Touretzky [a witness for the defense, a computer science professor at Carnegie Mellon University] informed the court that computer code is the means by which programmers communicate to one another with precision so banning DeCSS will inevitably have a chilling effect on his ability to express himself. Touretzky explained how source and object code really convey the same idea - only expressed differently, and cautioned the court against differentiating between different forms of speech (including computer code) for purposes of First Amendment protection.
This page explores the argument in more detail, and shows a t-shirt from that has the DeCSS source code printed on it to prove the point. As if the prosecution wanted to help make the case for the defense, they added copyleft to the lawsuit.

Tuesday, August 01, 2000

From AskTog: How user testing saves money.
From the WSP's Standards List: Frank Hecker responds to the Suck article.
The Napster debate:

Point: Copywrong by Lance Arthur

Counter-point: Rock 'n' Roll Heaven by Robert Wright

More points: Thoughts on Napster at


As for me, I'm hoping that Napster and all its peer-to-peer file sharing clones will utterly break the strangle hold the big labels have on recorded music.
Trade Central at gives you a good run-down of all the trades made before yesterday's deadline. (I'm talking baseball here, if you didn't know.) Jayson Stark and Michael Knisley further review all the action.
Due to some forms weirdness with IE5 on the Mac that V. reported, I have had to pull the new design flush left instead of centering it. I am working on a fix.

IE5 Mac users may also have to slightly resize your window after the page loads to get a scroll bar. Seems IE5 doesn't like to give you a scroll bar if all the page content is in an absolutely positioned Div. [KLUDGE: a transparent one pixel gif stretched to a height of 110%. It fixes the problem, but it makes me feel all icky, like David Siegel.]

Monday, July 31, 2000 is extremely cool, especially if you like reminiscing about the days of web yore. Read through the timeline for some great links. My first browser was Netscape 1.1, and I remember this page quite well from when the 2.0 beta was launched.
The CSS Anarchist's Cookbook: how to use user stylesheets to mess with the display of your favorite sites!
Once again, an oversimplification of complex design issues, but a thoughtful analysis nevertheless: Attack of the flying menus.
If you are using Linux, it's probably because you haven't read this excellent article on the benefits of Microsoft computing, you stupid long-hair.
Postal Service to offer e-mail:
...the plan, if it comes off, would put into the hands of the U.S. government an electronic asset long regarded as the Holy Grail of digital marketing: a centralized database correlating consumers, street addresses and e-mail addresses. It could be the most efficient tool ever created for delivering spam....
This is perhaps the most frightening thing I have ever heard of. And even dumber than that movie The Postman.
From Microsoft releases Windows 2000 bug fixes. Otherwise known as a service pack. Wonder why MS doesn't call them "bug fixes."
Cool. Here's an email from Cam's new cms-list containing several good links to info on WSYWIG browser-based editing.
Greg Knauss runs back-up for the WaSP in this week's Suck:
It's time to abandon Mozilla, to let it go in peace. The parts that work -- nearly everybody agrees that the Gecko layout engine is wonderful; the project management tools are nice -- should be harvested for use by the living, and the rest tied up in a biohazard bag and burned. It's a little sad, yes, but it's also the only reasonable option left.

The rotting smell has gotten too strong to ignore.
From osOpinion: Avoiding Bad Software Design.
I keep a handwritten journal for each project I embark on. It helps me to keep track of my daily frustrations, successes, and failures. Reading back over nearly a decade's worth of these notebooks, I've distilled the following guidelines on how to avoid writing bad software...

Sunday, July 30, 2000

What's wrong with Perl.
[WARNING! Offensive content.] Go to Electrical World and check out the "Product Line" drop down menu. Go ahead and select it, then click then "Click to Search" button.
A good article on web browsers for Linux.
archives: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212

offLine journal archive

where everything else is discussed

There are no offline archives for this period. Choose from the archives below:

archives: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49