June 2001

06/29/2001 Friday

Is golf a natural affect of aging? Do you wake up one morning and think to yourself: I want to bang a little white ball around a giant sterile garden for a couple hours? Does it accompany the desire to buy a huge, unaffordable vehicle, create little copies of yourself, and have a lawn to mow? It scares me. I don't want to like golfing.
16:10 permalink

Where you define your positioned elements in your code is important if you want to avoid NS4.x bugs. Placed in a form, the closing tag for the element will terminate the form. All form elements that appear after the element in the code will disappear. Initial values for <textarea> and the labels for <option>s will be displayed inline as normal text. A positioned element placed in a table (at any level of nesting) will work ok until you want to perform rollovers in the element - the document.images[] collection will be empty in NS4.x. IE4.5 on the Mac will display any positioned element defined within a table with a lower z-index than the rest of the document ignoring any explicitly set z-index for the element. The element submarines under the content that comes after it.
15:05 permalink

IBM developerWorks: Seven tricks that Web users don't know. Websites are designed for experienced users because they are designed by experienced users. Developers know and use several interaction and navigation techniques that inexperienced users don't know. The article contains some good usability suggestions that lessen the reliance on power-user-type skills. I love usability articles with practical examples and suggestions. (via WebWord)
09:40 permalink

06/26/2001 Tuesday

Tim Morgan has created a sub-1K DOM-compliant DHTML API. Dynamic layer creation and everything. Neat.
13:00 permalink

A fix for the Netscape Charset "burp" was built into NS4.5 but it still shows up (usually in framed pages). The upshot of the problem is that having any tag before a Content-type <meta> tag (and this includes the <!DOCTYPE>) will cause NS to reload the document. The reload behaves like the reload after a resize event in that external styles tend to be dropped and DHTML is screwed up. One fix is to use a real HTTP header to set the Content-type if you need it and remove the <meta> tag from all pages. This problem would be less of a concern if some authoring environments didn't automatically insert it into new documents (like Dreamweaver does).
10:15 permalink

Pop-under ads (like those from X10) won't go away soon. The reason why is that you generally don't notice what site they are being spawned by so you don't know who to blame. So the websites responsible avoid the stigma of being associated with the ads and still receive the ad revenue. And the advertisers continue to get the clicks and sales they need to continue advertising.
09:10 permalink

I was away. Did I miss anything?
08:50 permalink

06/21/2001 Thursday

If you are using an image map to perform rollovers but you don't want to make the areas linked, you still need to add an href attribute to the <area> tags. You can set the href to "#" and add an onclick="return false;" to prevent the link from being followed. NS needs the href in order to recognize any onmouseover or onmouseout event handlers. IE doesn't.
13:40 permalink

WebWord has collected some information on back-button disabling. I think that the majority of sites that disable the back button do it unintentionally. The example site that WebWord points to - http://www.couloir.org - has a a canned Dreamweaver script to check the browser version on the first page (index.html) which forward you on to the first content page (main.html). The same problem is caused by lots of flash detection scripts. The script sets the location property (a shortcut for the location.href property) which loads the new page instead of location.replace() which does the same thing but also removes the current document from the history list. The practical upshot of this is that if the location approach is being used and you hit "back" from main.html, you get taken to index.html and the script re-executes and kicks you forward to main.html again. If location.replace() is used, the back button takes you to the page you were at before index.html. I'm surprised canned scripts don't use location.replace() - the problem would be less ubiquitous then. There's no real good reason to disable the back button. The situation of trying to prevent forms from being resubmitted can be solved more effectively by preventing the browser from caching a form submission page instead of relying on javascript to block the back button. As for getting around other people's disabling of the back button, I have a bookmarklet on my links bar that uses javascript to go back 2 pages - saves 0.3 seconds over the back button drop-down listing. You can find it at the bookmarklet site.
10:30 permalink

Having a target attribute set in a link with a javascript: url can really mess things up. The script is executed in the context of the targeted window. The same problem occurs if you have a <base> tag with a target attribute and it's more difficult to debug. I was wondering if this could provide a security hole allowing cross-site scripting but it appears that the code will only execute if the window doesn't exist, if the window exists and is empty, or if the window contains a document from the same domain. Some methods (such as window.moveTo()) that aren't considered risky will be executed but this follows standard behaviour. IE (on the PC at least) is interesting in that you don't get a script error. Instead you get a "Cannot find server" error.
09:30 permalink

06/20/2001 Wednesday

Between IE4 and IE5, the definition of the x and y properties of an event object seem to have changed. In IE4, they specified the coordinates of the event with respect to the document body. In IE5, the reference point had become the client window. If a page hasn't been scrolled, both measurements are the same. If the top of the document is not at the top of the client window, event.y and / or event.x are different in the two browsers.
16:35 permalink

I can understand people new to HTML not indenting their code to show the logical structure - it's something you learn pretty quick as a Good Thing To Do - but why would anyone, newbie or not, remove all the indentation from some code? I got some code back from a client's web department and everything was jammed up against the left margin. All my beautifully logical structuring was gone. I guess it proves that the economy isn't in such a bad shape that morons can't find employment.
12:15 permalink

Signatures on the barn wallAbandonned farm houseOn a bench on the east side of the Okanagan River, just north of Lake Osoyoos, there's an abandoned farm house and barn. Both have been empty for most of the past century - the family who last lived there probably left during the depression. Travellers have used the barn as shelter for years. On one of the walls in the barn, visitors have left their signatures. Some date back to the 30's.
10:00 permalink

Someone on a mailing list I am on asked about retrieving the coordinates of an image on a page. There isn't a perfect solution to this. In NS4.x, you can place an <a name=""></a> at the top left corner of the image (you may have to mess around with the <img> tag's align attribute to get the anchor to sit in the right spot). Then you can check the anchor's x and y properties (document.anchors['bob'].x, for the x property of an anchor named 'bob'). NS4.00 and NS4.01 will crash when you try to access x and y for anchors. For IE4.x+ on a PC, you can use the offsetTop and offsetLeft properties of the image but this will give you the offset distance with respect to the image's parent. For instance, if the image is in a table, this will return the offset of the image from the table cell. The parent object can be retrieved through the offsetParent property. You can use the following code to retrieve the true offset with respect to the document body (substitute 'bob' for the id of the object you are interested in):

var trueOffsetLeft = 0;
var trueOffsetTop = 0;
var parentObject = document.all['bob'];
while (parentObject != null){
   trueOffsetLeft += parentObject.offsetLeft;
   trueOffsetTop += parentObject.offsetTop;
   parentObject = parentObject.offsetParent;

As far as I know, there is no way to do this on IE4.x+ Mac. NS6.x and Mozilla also support the offset properties but the offset is measured with respect to the body not the parent. The quirk here, though, is that the body margin isn't taken into account.
08:45 permalink

06/19/2001 Tuesday

Sang has a brand new webcam.
13:15 permalink

The hip-ness of any given eating locale is inversely proportional to the distance from the patio to the dumpster (within which, the remains of Asparagus-Crusted Ahi Tuna with Asparagus Vinaigrette mix with Spicy Lamb with Mango Chutney and fester in the mid-day sun). This is the only way I can explain the existance of Yaletown.
13:10 permalink

Good point - if you can't communicate to your clients what you think is important, how do you think you will be able to help your clients communicate to their clients what they think is important?
09:05 permalink

Communication Research Institute: Experiences in co-designing. Politics takes up 50% of the project timeline! You can minimize the affect of politics in a project by transferring the power to a specific group (like the end users through usability testing) and developing solid processes for approval and change requests. (via GoodExperience)
09:00 permalink

Architecture diagrams on home pages here and here.
08:40 permalink

06/15/2001 Friday

Lost Something? attempts to personalize litter which is an interesting concept but few of the items have engaging stories. The best is a child's drawing. The bird is saying "I never had enough of when I was an egg". Update: "I never had enough love when I was an egg". Correction courtesy of John Brooks.
11:55 permalink

Found Magazine is great. Just stuff found on the street. Little glimpses into other people's lives.
11:10 permalink

06/14/2001 Thursday

When you move the mouse from one element on a website to another, two events occur: a mouseout on the first element and a mouseover on the second element. If the second element is a positioned layer, NS4.x Mac seems to lose the mouseout event from the first element. If you have an onmouseout event handler set for the first element, you should probably call the same code from an onmouseover event handler for the second element. Or separate positioned layers away from elements with onmouseout event handlers.
10:00 permalink

Internet.com: Three Site Types Dominate Surfing Habits. The site types in question are: search engines, portals, and community sites. Neither search engines or portals are content sites but they are gateways to content sites. You would visit them if you are looking for content but don't know where to go. Community sites are content sites. So, if you consider the end destination, the three site types that dominate surfing habits are content sites, content sites, and content sites.
09:15 permalink

One of the most mysterious of female activities is the Search For The Perfect One-Use-Only Outfit. It can take days, or even weeks, to perform. The aim is to find and purchase clothing, shoes and accompanying accessories for a specific event. Paradoxically, at the events that usually require this activity, no-one will notice the resulting outfit (even if the search was successful and the Perfect Outfit was obtained). This is because attention at these events are usually directed away from the wearer of the Perfect Outfit to the wearer of the Bridal Dress. The only way you can attract attention with your appearance at such events is to show up hopelessely under-dressed. After the event, the Perfect Outfit will be stored in the closet for the rest of forever. It will not be used for further events because new Perfect Outfits will be required for those events.
09:00 permalink

06/13/2001 Wednesday

RetroBrowsers has some old browsers available for download (PC only, though). I don't think it can compete with the sheer number of old browsers available at the Evolt Browser Archive. Netscape 2.02 through 4.05 can be found at the Netscape Products Archive. 4.0x and 4.x releases are also available at Netscape.
09:40 permalink

06/11/2001 Monday

The site search I use is a service from Atomz. It does a decent job: allows me to create collections, shows search term context in results lists like Google and, unlike many other similar services, allows me to dictate the appearance of the search results page. This last point means my search results page looks like it belongs to my site. Which it should - logically, it is part of my site. Recently, I read that Atomz was burning through money like nobody's business. They have just launched a web-based CMS. Not sure what the point of this posting was supposed to be but there you go.
10:50 permalink

In IE5 Mac, nested tables don't inherit from the <td> they are contained in. This makes sense from a standards point of view but it does result in some odd non-inheritance. For instance, a table in a <td> with the align attribute set to right will appear on the left of the cell (or whatever was set in the enclosing table's align attribute). Other browsers will make the table follow the alignment set in the cell.
09:55 permalink

The accents and banjo music make this movie of the lunar rover from Apollo 15. You can take a good ol' boy out of the South but you can't take the South out of a good ol' boy. (via Memepool)
09:45 permalink

06/08/2001 Friday

Foosball, pinball and pool tables are passe. I wanna work where they have a plastic playground. (via Memepool)
08:55 permalink

06/07/2001 Thursday

MSNBC has relaunched News Menu using DHTML. They are supporting IE5+ and NS6+. But it doesn't work on the Mac. Wonder why not. Actually, no I don't.
14:05 permalink

Wall Street Journal: New Windows XP Feature Can Re-Edit Others' Sites. Windows XP on a PC can scan any website for specific words and phrases and link them to Microsoft sites - a feature called Internet Explorer Smart Tags. You are no longer in control of your own content or editorial policy. (via Camworld)
09:15 permalink

06/06/2001 Wednesday

WebWord has some links to internet history and examples of early web pages (an example). Know what those early web pages look like? Mobile-friendly sites. The past is here again.
09:40 permalink

You've probably already heard stuff similar to jwz's recent thoughts on Netscape and AOL/Time-Warner. I like how he works hyperlinks into the flow of conversation. This is how it should be done. I will try to write more like this. (via Camworld)
08:40 permalink

06/05/2001 Tuesday

"Draggable" beats "dragable" 7,480 to 2,590 (results courtesy of Google).
17:15 permalink

Tim Morgan has created some cool extensions for the 1k DHTML API. Stuff like dropdown menus, popup tooltips, and sliding animations.
12:30 permalink

I need one of these for my desk.
10:00 permalink

WebReview: Then, Now, Next: Five Perspectives on the Web Development Industry. The perspectives say more about the participants than the industry. I just want to know what David Siegel is doing in there. He's soooo third-generation-web.
09:55 permalink

Economist.com: Off with their beards. Will the original "free-wheeling, 1960s-inspired hippie philosophy" behind the internet have to disappear if anyone is to make money off the internet? I, for one, am glad that I've been able to louse up the pipe-dreams of rabid capitalists.
09:45 permalink

06/04/2001 Monday

Dot-com failure stories are soooo late-2000. Here's another one. Pull-quote of the day: "I'm road kill on the information highway." (via Metafilter).
13:00 permalink

Taz ran into a problem with the 1k DHTML API on Friday. I spent some time trying to work out what was wrong and I think I've got it figured out. In a framed page viewed in NS4.x, if the first <script> tag imports an external script, the browser will stop execution of the script at the first reference to any property of the document object outside of a function definition. Referring to document directly is ok. All functions are defined and can be called later. If the first <script> in the frame doesn't have a src attribute (even if it is empty), the external script will be executed without any problems. And there's no problems if the document is viewed outside of the frameset. Anyways, this will cause problems with the 1k DHTML API because the definition of one of the variables refers to document.layers. If you are using the 1k DHTML API in a framed environment, make sure the <script> tag that refers to it isn't the first on the page. Add an empty <script> section if you need to.
10:30 permalink

In order to customize Amazon's recommendations list, Pastelhorn used some Javascript. The process, which works in IE5+, NS6, and Mozilla, involves embedding the Amazon code in a hidden div and then re-parsing it into a visible div giving it the new appearance along the way. Because it is pretty generic, this system could be used for re-skinning any content as long as that content has a predictable code structure. (via Kottke)
10:00 permalink

Tomalak's Realm closing too?!?.
09:40 permalink

06/01/2001 Friday

The use of frames in popups was a bad idea.
10:25 permalink

Codelifter is an application that will show you the code of any document at an http:// address including .css or .js files. Umm... I can already do that. Without downloading an app. Without paying $24. Open your browser. Type view-source: followed by the url in the location box. You can even make a view-source bookmarklet. The only problem with it is that it won't work in IE Mac.
09:45 permalink

BBC News: The font of all personality. The font you use in your email messages indicates your personality? I use Courier New. Partly because I used old skool email clients like Pine. Partly because I hate silly, unreadable fonts in emails that people think are cute. But mostly because it is practical. I can draw simple ascii diagrams because the monospaced font won't screw the layout up. What does the article say Courier New says about my personality?

Courier is seen as the choice of "sensible shoes" type of people or "anoraks"...

Anoraks? (via xblog)
09:35 permalink

WebWord: The WebWord Content Management System. This is pretty much how I work too. It does mean a lot of cut and paste and I'd like to have a system that is more efficient. However, I'm too lazy, too busy and it isn't taking up too much of my time yet. As the article mentions, the lack of technology moves the management onto the human publisher. The publisher needs to know the site and how it works. This is fine for personal sites where the publisher will always be the same person. In corporate sites, where you can't rely on the same person being there forever, there's a considerable amount of knowledge that needs to change hands if the publisher changes. You probably would want to keep the knowledge documented and, because the site would continually evolve, the knowledge involved would continually evolve. And everyone knows that documentation isn't updated as it should be.
09:20 permalink