A pedant that hangs out in the dark corner-cases of the web.

Friday, December 30, 2005

XP PowerToys Changes

So, the new TweakUI 2.10 finally allows you to install it on a Windows 2003 machine, but it no longer permits unattended installation. So, is Microsoft going to stop providing unattended installers for administrators, or is this the work of a single idiot lawyer?

Also, has anyone gotten the new SyncToy to even start up?

Wednesday, December 14, 2005


[user starts Outlook, then minimizes it and starts working on something else during the protracted loading period]
[Outlook jumps to front]
[user minimizes Outlook, resumes working]
[Outlook jumps to front]
[user curses, minimizes Outlook]
[Outlook jumps to front]
[user gives up working to wait for Outlook to continue loading and stealing focus]
— stage direction from This is where you will go today!, the musical

Saturday, December 10, 2005

Local Machine Lockdown

So, just to be clear, if zone security isn't working out, the best course of action is not to fix it, but to start raising the security level for lower-security zones?

Opening local content, such as HTML documentation or XML files, since XP sp2, results in a confounding, infuriating info bar authorization prompt that does not remember your decision, so opening the same XML file requires the same tedious steps each time.

It's a good thing Microsoft is protecting us from their own default XML stylesheet. Folding XML tags can be pretty dangerous.

Mac/Konqueror Browser Data

While updating the BrowserFiltering page, I generated some Mac (and Konqueror) BrowserCam shots: common object properties and script MIME types, CSS2 system colors and fonts, and a full property listing for window and document objects.

Sunday, November 06, 2005

IE7 Update

I've been able to confirm that the first beta (which is really an alpha, since it does not contain all functionality to be in the final release) of IE7 fixes all support for PNG. Otherwise, this version adds only the strange new user interface.

No support for data: URLs has been openly discussed, although they could be pretty useful.

Also, no mention has been made about IE's irritating habit of downloading content it has no intention of using, such as scripts or stylesheets with an unrecognized MIME type. Try it! Create a page that references an external <script> or <link rel="stylesheet" ...> with type="application/x-ignore-me", then check your server logs (or point the src/href to a script that sets a cookie, and check that). Despite the fact that IE knows it will not use the content, it downloads it anyway!

Tuesday, September 13, 2005

Why errors are important, and code coddling is harmful

Web browsers have historically been lenient with HTML errors, making assumptions about the author's intent. This is bad, for at least three reasons.

First, once errors accumulate, the collection of assumptions tend to result in surprising behavior. Typically, once a tipping point is reached, something unexpected happens to an element that is connected only through an obscure chain of assumptions to the last change. Author productivity and sanity are both dramatically impacted when this happens.

Second, it creates a second, de facto standard. This "quirks mode" is rarely documented very well, and typically is implemented in the way that is easiest for each vendor. This results in an arbitrary, capricious, proprietary specification that must be reverse-engineered and maintained by all vendors. These multiple engines add significant overhead and constant development to browser software in order to match other vendor changes. The result, from the user's perspective, is a bigger, slower program with frequent compatibility problems.

Third, it's presumptuous. Imagine if JavaScript/JScript/ECMAScript or a general-purpose programming language like C/C++/C# were handled this way. Syntax errors would not be reported, and a best guess would be made about the author's intent. Does anyone believe this would be anything other than a complete disaster? (OK, Perl does a little bit of this, but it's part of the language design, so is documented, and tends not to overreach.)

The Internet has become a collection of pages cobbled together out of a mix of invalid markup, presentational HTML, and CSS styles with significant workarounds. As developers, and as developers of authoring tools, we need to start sanding the bottom of the drawers, so to speak. It's time we start taking a little more pride in what we produce, and not just because it makes our jobs so much easier. Of course, we also need to continue leaning pretty heavily on certain vendors.

Open Source: How problems stay solved

Here's the thing about proprietary code: once a problem is solved, only the company that developed the solution can use it. Everyone else must constantly waste effort re-implementing a solution to the same problem.

This is actually good for a while, because it can lead to better and better solutions for an issue. Too often, though, long after the best solution is found, the current intellectual property climate means ownership of that code forces others to use a different, less optimal approach. This slows innovation.

With open source, once the community determines the best possible way to address an issue, that code can be leveraged by anyone.

Monday, August 15, 2005

IDG accepts criticism of Firefox stats article

After posting "NetApplications report on Firefox stats", I sent an email to many of the news sites responsible:

So, I have to ask, do you just reprint press releases?

A single (possibly self-serving) source, questionable methodology (only NetApplications customers were counted), and no margin of error mentioned for a change of 0.64% ?

What does WebSideStory say?
What does Google say?
What does TheCounter.com say? (Two point increase.)
What does *anyone else* say?

A few hours later, I received an email from Sharon Machlis, Online Managing Editor of ComputerWorld:

Thank you for taking the time to write in (even with a criticism). That article was first published by our sister company, the IDG News Service, and I forwarded your message both to the author of the article there, the editor in chief there, and the news editor here who selected the article for posting. I do think you raise some valid points, such as the importance of margin of error and the usefulness of better explaining the pool where those statistics come from (NetApplications customers tend to be small and mid-sized businesses).


Sharon Machlis
Online Managing Editor

And, just over twenty minutes later, from Juan Carlos Pérez:

Hi Brian,

Thanks for writing. You bring up some valid points in your letter/comment to Computerworld. I'll keep your observations in mind next time I write about browser market share.

thanks again,

Juan Carlos Pérez
U.S. assistant news editor
IDG News Service

NetApplications report on Firefox stats

NetApplications has sent out a press release that has been picked up by Computerworld, The Mac Observer, Digg, The Register, and others claiming that Firefox usage has dropped 0.64% in July.

Apparently, all of these news sites trust this company's interpretation of these stats implicitly, since they do not trouble themselves to provide any additional sources to corroborate the story (TheCounter.com reports a 2-point increase). Nor, as one WaSP reporter points out, do they offer the margin of error for this report, or address the suspect methodology (NetApplications.com only counts the sites using their service).

I'd like to know what WebSideStory, Google, and others have seen.

Wednesday, July 20, 2005

What's that smell?

It's the thickly muculent layer of rationalization left by IE apologists: SpreadIE, Chris Beach's Tech Journal.

Honestly, given a level playing field, what features or capabilities would move anyone to choose IE right now?

Tuesday, July 19, 2005

Dvorak's Vapid Take on Creative Commons

JD starts his article by explaining that he can't figure out Creative Commons (apparently he missed the Learn More link). This doesn't stop him from writing two pages about it, making broad pronouncements, though. In fact, he's decided that since he cannot figure it out, it must just be "trendy"--"There is no other answer" he proclaims.

For some reason, he seems to think registration and paperwork are necessary (they aren't). He complains about excesses in the current copyright system, which is what CC was written to address, but completely misses the point. Paradoxically, he whines about CC weakening the copyright system as he bemoans copyright being too extreme. He spouts some piffle about restrictions for commercial use (which is only one option of the license, if the creator decides to include it).

It must be great to be a columnist: you get to write endlessly about things you don't even have to pretend to understand! Plus, you get to use the word "dumb" a lot.

Here's Creative Commons in a nutshell, as condensed in a slashdot post: "Creative Commons is a way of *giving up* some rights. But without giving up *all* rights."

Wednesday, July 06, 2005

Entify Your HTML!

To the embarassingly uninformed third party vendors of web-based applications, I present a quick look at HTML entities. This is Chapter One stuff in even the most basic HTML book, but I still get puzzled, dismissive, and even indignant replies when I request fixes for simple HTML bugs.

Three important characters: < > &

These characters are special to HTML for processing. In the text or attribute values of a page, you must use entities that stand for them: &lt; &gt; &amp;(respectively). In attributes, " should also be replaced with &quot; (actually, you can use &quot; anywhere, but it isn't required outside attribute values).

The Web Is A Big Place

If you forget to entify your special characters, some browsers will sometimes let you get away with it. If you intend to produce code for the widest possible audience (which is the whole point of the Internet, after all), it is best not to assume your indiscretions will always go unnoticed; better to do it right to start with, and you won't have to double check every support call ($$$) to see if unentified HTML is part of the problem.

Unentified HTML Is Insecure HTML

All Cross-Site Scripting (XSS) attacks are caused by unentified HTML, and can be prevented using entities. The liability of such an attack, though potentially considerable, is nothing compared to the loss of client trust.

It's Easy

Every web development language has a single function you can call to entify the contents of string or text variables (numeric and date/time variables do not typically require escaping), e.g. Server.HTMLEncode() in Active Server Pages or htmlentities() in PHP. In cases where the language does not provide such a function, writing one is trivial: four search-and-replace calls (do the ampersand first).

Sunday, June 26, 2005

More photos of Homer

I've put more photos of Homer, my liquid-cooled dual-opteron system, in a Yahoo! photo album:


Sunday, June 05, 2005

Re-Entering Contact Data

Places I have to manually sync some subset my address book data:

  • home phone
  • mobile phone (and wife's)
  • watch
  • car (GPS)
  • web address book (Gmail, Yahoo!, and personal--each for multiple accounts)
  • Thunderbird address books (four separate systems)
  • PDA

There has got to be a more efficient way!

Mozilla/Thunderbird Addressbook Omissions

There are a number of fields missing from the Mozilla Addressbook (bug 85344):

  • birthdate (bug 13595)
  • anniversar(y/ies)
  • mailing address
  • gender
  • more than two email addresses (bug 118665)
  • latitude and longitude for GPS devices
  • other URLs for personal http:, ftp:, im: (RFC3860), pres: (RFC3859), etc.

Printing from the address book also needs work. Columns are not supported, and the entries are randomly ordered--no sorting allowed (bug 120267).

New Reference Page: VBScript vs. JScript

Building on content I'd long been meaning to port from backups of my old Web Developer Resources site (the predecessor to webcoder.info), I present the new and improved VBScript vs. JScript, which compares the strengths and weaknesses of both languages.

RIP: Marshmallow Blasted Froot Loops

Cerealist conceit aside, this was my favorite cereal.

Saturday, May 21, 2005

System Up

The system is up and is faster than anything.

New system ('Homer'), watercooled

Doom3 timedemo demo1? 66.5 FPS

Wednesday, April 20, 2005

New System: Wrong Memory

From the Tyan Thunder K8WE manual:

2.10 Installing the Memory

Before attempting to install any memory, make sure that the memory you have is compatible with the motherboard as well as the processor. The following diagram shows common types of DDR SDRAM modules:

[DDR SDRAM diagram]
[Registered DDR SDRAM diagram]

Here are a few key points to note before installing memory into your Thunder K8WE:

  • Always install memory beginning with CPU1 DIMM-A1.
  • In order to access memory on CPU2, both processors must be installed.
  • Single, pairs, or four modules are supported on each CPU.
  • Configure memory symmetrically on each CPU for best performance.
  • AMD Opteron™ processors support 64bit (non-interleaved) or 128bit (interleaved) memory configurations
  • At least ONE Registered DDR SDRAM module must be installed for the system to turn on and POST (power on self test)
  • 128MB, 256MB, 512MB, 1GB, and 2GB* Registered PC3200/PC2700/PC2100/PC1600 DDR SDRAM memory modules are supported
  • All installed memory will be automatically detected
  • The Thunder K8WE supports up to 16GB* with two CPU's installed.
    * Not validated at the time of print; subject to change.

Did you catch the part about the motherboard only supporting registered RAM? Me neither, but that seems to be the case, since only registered RAM is listed for the K8WE at:

Wednesday, April 13, 2005

IE clientInformation.userProfile

What ever happened to the userProfile object? Even sites that are unrepentantly MS-centric have not used this to obviate the need for lengthy forms collecting vital stats. The XForms working group has not specifically suggested a similar wallet-type input. Even the WHAT-WG has not proposed a vCard input in its splinter-proposal for Web Forms 2.0.

Instead of terribly kludgy workarounds like RFC 3106, why has there been no method to simply pick an address card to fill in name, email, addresses, phone, etc.?

Friday, April 08, 2005

Unicode Update

Unicode version 4.1.0 has been released, adding support for Biblical Hebrew, Editorial Marks for Biblical Text Annotation, Phonetic Extensions, Ancient Greek Editorial Marks, Ancient Greek Musical Notation, five new currency symbols, and more.

Thursday, April 07, 2005

Top Barriers to Firefox in the Enterprise

  1. Expensive committments to web apps that were advertised as "web-based", but were actually "IE-based"
  2. No centralized administration of settings (proxy, home page, search, other locked features)
  3. Unfinished customization tool (CCK)
  4. No automatic authentication (Update: negotiated auth is supported!)
  5. Does not use standard Windows profile location for cache, which bloats roaming profiles
  6. Does not support lousy MSHTML/MSCSS/MSDOM known to lazy programmers unwilling to update their skillset
  7. Does not support ActiveX controls, which can be a crutch, but sometimes terribly useful (like DateTimePicker and MonthView)
  8. Does not support CSS-BE (HTC), necessary to trick IE into advanced functionality built into all modern browsers
MozillaZine discussion...


Now that Microsoft isn't running the whole show, web development is seeing some actual progress! Sure, ajax was invented by MS years ago, but what have they done for us lately?

Wednesday, April 06, 2005

New System Complications

OK, the more astute among you may have noticed that case was going to be a problem.

Not only is the power supply wrong (an issue I had planned to address with an adaptor ), but, as enormous as it is, it's too small for the mainboard. The Tyan Thunder K8WE is a freakishly large 12"×13", requiring the new SSI EEB 3.5 case size, and an EPS power supply, the pair of which could easily cost me $800. Not having that kind of cash, I am now casting about for a reasonably priced, attractive, non-rack-mount case with a useable (preferrably modular) PSU. Here are a few suggested by Tyan:

Here are some other possible candidates (that do not appear to be available in the US yet):

Saturday, April 02, 2005

Wednesday, March 30, 2005

Belated RIPs

A late but fond farewell to:

  • Dockers Mobile Pants
  • Chocolate Nutter Butters
  • Marshmallow-Blasted Fruit Loops

Sunday, March 13, 2005

Win2K3 bug: WinHttpRequest references in WSF files

Due to a bug in the WinHttpRequest object that ships with Windows Server 2003, you must use <reference guid="{662901FC-6951-4854-9EB2-D9A2570F2B2E}" version="5.1"/> instead of <reference object="WinHttp.WinHttpRequest.5.1"/> to reference the typelib in WSF files.

Saturday, February 26, 2005

Fix for XML::DTDParser Perl module

XML::DTDParser 1.7 was not parsing all of my attributes correctly, and I noticed that my 'IDREF's were matching as 'ID', leaving an extra token 'REF', and forcing the regex loop to stop.

The module works fine after changing line 18 to:

my $AttType = '(?:CDATA|ID\b|IDREFS?\b|ENTITY|ENTITIES|NMTOKENS?\b|\(.*?\)|NOTATION ?\(.*?\))';

Wednesday, February 16, 2005

IE7: Clearly a sign of desperation

So, after winning the browser war, and then completely abandoning any real innovation (like finishing the product so it understands web technologies), and becoming a millstone to all web developers, we're supposed to be impressed at a vague announcement that there will be a new IE this summer?

After months of maintaining that MS is not concerned about Firefox in the face of an incredible adoption rate, they suddenly change course and suggest that there will be a new IE for Windows XP, not just for Longhorn. Apparently, those of us who are aware of what they have done to the web, with their perfunctory support of basic web technology, are supposed to forget just how badly they have hurt the Internet ecology, and like a beaten domestic partner, come back for more?

Don't get me wrong, I like Firefox personally, but I favor no browser software as a developer. I want a fairly even market split because, as we have seen, competition is the only reliable driver of innovation. All I ask is some basic functionality; I'll even wait a reasonable amount of time if there is some indication I can expect improvement.

I really do hope we can expect improvement in IE7, but with the hostility some in the MS community have shown those who ask MS to support the specifications it helped write, I very much doubt any real advances.

IE7 To Do List

Thursday, February 10, 2005

Microsoft vs. the individual programmer

An entire generation of programmers has been turned into script kiddies by VisualStudio wizards. Too much detail is hidden from the person writing the code.

For example, try finding any resources on creating a COM control using mingw. Try even finding a book on COM (a technology old enough to have been supplanted by .NET) that isn't merely a tutorial on using VisualStudio. Even O'Reilly & Associates, a company with a celebrated history of documenting open source solutions, is guilty.

Wednesday, January 05, 2005

RIP: Hostess Suzy Q's

Fare thee well, my cream filling delivery device of choice.

Suzy Q, baby I love you.

Suzy Q

RIP: Hula Hut Smoothies

Our local Lappert's Ice Cream shop has discontinued their smoothies, including the wonderful peach flavor.