How about a Conversion mode?

The Windows calculator has Standard and Scientific modes… 

Suddenly conspicuous today in its absence was a Conversion mode.  (Heck, I’ve got a little app on my phone which does this.)  Cmon Vista, it just makes sense! 

Especially while we dumb Americans keep resisting metric.  Liquid volume is where it’s hairiest, figuring out:

  • 3 teaspoons to 1 tablespoon
  • 2 tablespoons to 1 fl. oz
  • 4 fl. oz to 1 gill
  • 2 gills to 1 cup
  • 2 cups to 1 pt
  • 2 pts to 1 qt
  • 4 qts to 1 gal

…We should really just drop most of those units.  (What’s the point of ×2 units, anyway??)  It should be much simpler, like:

  • 16 tablespoons to 1 cup
  • 16 cups to 1 gal

If elected, I promise to simplify liquid volumes immediately.

This is Broken

That’s not only the name of a great website on the subject, but also my reaction to this bank website‘s web browser choices:

I let em know how silly this is:

Your choices of web browsers are VERY outdated, by about 10 years!

The main CURRENT web browsers are:
* Internet Explorer
* Mozilla Firefox
* Opera
* Apple Safari
* Konqueror

Take a look at for current browser stats sometime.

Just a heads-up from a web developer. Hope it helps you get it together.

They also offer Unix as a choice of Computer Type, but not Linux.  Even worse: it’s a screen for requesting technical support.  (I sure hope their techs know Mosaic well!!)

Along those lines, I just noticed that this month is the 4th anniversary of IE6.  Happy Birthday, IE!

CSS includes + HTTP headers = big mess

Anne van Kesteren just posted about the Opera 9 Preview.  More notable to me is the testcase for Linking to style sheets with HTTP headers.

Here’s the code:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "">
<html lang="en">
  <title>CSS: Linking to style sheets with HTTP headers</title>
  <meta name="Author" content="Krijn Hoetmer ~">
  <h1>Linking to style sheets with <abbr title="HyperText Transfer Protocol">HTTP</abbr> headers</h1>

  <p>This line should (or could) be red.</p>
  <pre><code>Link: &lt;index.css&gt;; REL=&quot;stylesheet&quot;; MEDIA=&quot;screen&quot;</code></pre>


The testcase already works (P element in red) in the current Firefox 1.07 (but not IE, natch).  Style code is utterly missing from the document — there are no style attributes, and no <style> or <link> elements.

That’s because they’re not in the document.  It’s in the headers of the HTTP response which delivered the document.  I had to find the style insertion with the Fiddler tool (a great IE addin), and this is what I found in the HTTP headers:

Link: <index.css>; REL="stylesheet"; MEDIA="screen"

I must’ve missed the memo where this became a standard (since multiple browsers now support it).  I miss how it’s a good idea too…

Yes, there’s a gee whiz factor to it.  I could even think of possible uses for HTTP style includes (like configuring includes at the website level via the web server, something which IIS already can do with normal include files). 

But it just seems like a bad idea.

Granted, the line between protocol and document was crossed long ago with HTTP-EQUIV META tags.  This, however, crosses it in the opposite direction, by putting not meta-data, not layout or behavior data, but style data into a transport protocol!

Now I’m no code purist — I feel most like a “SAVD” on Molly’s scale  (What’s bizarre is that I’d consider Anne much closer to a purist, a “SASS” to Molly.) 

We have CSS to get the font tags out of HTML.  Why not cram it into something even more poorly suited like HTTP?!

VERY bad idea.

IE is to blame for Konqueror’s woes

Jon Watson, Linux-fan and almost my neighbor in Kentucky, writes an interesting complaint about the state of web browsing on Linux.

What grabbed my eye was that he blames it on Microsoft:

“Microsoft introduced a whole bunch of ‘IE only’ html tags a couple of years ago. I say predictable because Microsoft is absolutely famous for not following set standards. Take a look at their proposal for their XML ’standard’ or their javascript document model or their…hell…anything you can think of. Open standards are not a friend to Microsoft – they want you locked in to their technology with no way out.”

“…the point of this is to state that these non-standard IE only tags became the norm because of the popularity of IE. Now that arrogance has been extended even further and Google has bought into it. A non-standard Java(-script) call is at the heart of GMail. Now other browsers have to make the choice between being standards compliant, or being MS compliant. A hard decision. To pick the former is responsible, but to pick the latter will deter end users from using the browser.”

About the specific XML/XSL and DOM examples, those simply weren’t yet standardized when they were implemented in IE. The W3C is notorious for being slow to adopt new standards. So rather than “follow the standard”, Microsoft tries to “set the standard”. In practice, this means Microsoft often implements their new ideas at the same time they propose them as standards. As a developer, I think that’s how technological progress is made. Formal committees suck at innovation.

Among IE‘s particular contributions are the XMLHTTPRequest object (which GMail uses), wysiwyg editing in the browser, and IFRAMEs. All 3 features are now either officially standardized or just de facto standards supported by most browsers. This mass adoption isn’t “lock in”, it’s open, and it’s good for both developers and users.

(As an aside, I have no idea how choosing “MS Compliance” could “deter end users from using a browser”. …That makes no sense to me. If a website doesn’t work in a certain web browser, isn’t that the biggest deterrent from using that web browser? Isn’t that in fact the very problem Jon and other Linux folks have with Konqueror??)

What matters to me as a web developer is that I have the best tools available for the job. Otherwise, we’d still be coding “lowest common denominator” — meaning circa 1999. Remember Netscape 4? I do, with chills.

There are also many great IE technologies which have not become standards, nor made it to other browsers: CSS Visual Filters, CSS Expressions, and DHTML Behaviors. As a developer, I wish they would!

By the way, it’s not just Microsoft who takes the “build it and they will come” approach. For instance, Apple’s Safari (Konqueror’s sister browser, which sprung from the same codebase) has been pushing the envelope lately with its (currently non-standard) canvas extensions. Developers and other browsers are taking note, simply because it’s a Good idea. So this may too become standard some day.

No, I don’t credit IE for all the web browser tech progress in the last 5 years. If anything, Mozilla/Gecko/Firefox has appropriated Microsoft’s “embrace and extend” strategy, and done it better. Firefox has embraced both standards and also IE‘s best ideas, and extended with their own extensions (google on CSS “-moz-“ sometime). Following that strategy has made Firefox top dog in the developer world right now They’re the ones setting the standard, and IE7 is now the one playing catch up.

If some browsers choose not to catch up, it seems to me like that’s their own fault.

Dev Tip: Rounded Corner Generator

Got a question today from my friend George about the best way to make rounded corners.  I listed some choices, with pros/cons of each:

I ended up recommending static images as the best combination of performance and compatibility, at the expense of developer time.  Then it occurred to me: surely I’m not the only lazy one — someone must’ve already made a web-based wizard to quickly create sets of corner images for download and installation.  Could it be??

Google says Voila!  Jalenack’s Complete Rounded Corners Creator

I say Sweet!  I tell ya, kids these days got it easy!

Coding/Debugging Music?

This is totally bizarre, but for well over a year now, I’ve found myself with a certain song in my head when I’m really troubleshooting code.  I only get that song in my head when I’m working hard, and I always realize it after the fact.

Even more intriguing is Which song:   “Axel F” by Howard Faltermeyer

Yes, as in Eddie-Murphy-the-wisecracking-80s-cop movie.

No, I’m no big fan of his (Howard’s or Eddie’s), nor of that song (except as it defined part of the 80s, me being a music buff thereof).  So could there some quality to that song which is uniquely similar to the coding process as they both involve to the brain?  In other words, do they tickle the same gray stuff?

Dunno, but I’d love to know if this happens to anyone else.



Hm, looks familiar…

Cool trick here — Collylogic: Scroll Fade

Notable quote:

Using IE or some antiquated crap? You see a big nasty block where the PNG is. If I cared about you, I’d hide the fade class from you by giving you your own stylesheet.

What really grabbed my attention is that when I did this same special effect several years ago for just IE, I didn’t need a PNG (so no separate download slowing it down & further loading the server).  I just used IE‘s CSS Visual Filters, which I wish other browsers would support.

It could be fairly trivial to combine the two techniques for a cross-browser method.  Or heck, just fix IE‘s PNG rendering with another CSS Visual Filter.

Fun Experiment: Site Gallery

So I’ve had this chain of dev ideas.  Hopefully I’ll get back to showing off the ancestor here eventually, but this one’s fun & ready enough to share now. 

Basically, I like Windows XP Explorer’s “slideshow” view for images.  It’s a great interface.  By various (non-intentional) routes, I ended up making a web-based equivalent to that interface — except not for images, it’s for entire websites.

It’s probably better demonstrated than explained. Take a look here (in IE!):,,,,

Yes, it’s IE-only.  Fortunately this is not production code, just an experiment.  If the other browsers had an equivalent to CSS Visual Filters (in this case the zoom filter, used to create the live thumbnails), I’d’ve been there in a heartbeat (heartthrob?), but alas, no such luck…

The fun part is the querystring: just put your own site URLs at the end (separated by commas) and you’ve got your own gallery, fully bookmarkable. 

The magic is all done in browser javascript, so my server is quite unaware of what sites are being loaded (go ahead & view source).  If there’s interest, I’ll zip it up for easy download.

I’m sure there are limitations to the total number of sites it could handle.  The first is probably how much your machine’s RAM (since it loads each site in its own IFRAME).  The next would be IE’s querystring length (1024 characters?).  Regardless, my original intent was only to keep easy tabs on a few internal “dashboard” sites, and while it technically is some sort of aggregator, I certainly would not use it to read 1000 blogs!

Toy around with it.  I’d love to hear what you think.

Disarm IE: My Dev Wishlist for Other Browsers

Dean got me thinking about this
IE has many interesting development features which are well, a bit non-standard.  Well okay, they’re utterly made up with nary a W3C spec in sight.  Among them:

  • DHTML Behaviors
  • Databinding & Data Source Objects
  • CSS Visual Filters
  • CSS Expressions
  • Conditional Comments
  • The “defer” attribute

Here’s what caught my attention about these tools: sure they’re not standards-based, but they’re frickin’ great!

I’ve often said Microsoft overuses the word “innovate,” especially in regards to their own products.  However, compared to other browsers, these technologies genuinely seem innovative, and are the reason I (and many others) have written so many IE-only web apps.  Microsoft didn’t wait on someone else (e.g. the W3C), they just said “devs could use this”, and wrote it.

(My IE-only days are not a confession I’m proud of these days, but it’s true, and those developer-persuasion props are well-deserved.)

Other non-standard features have since been adopted by other browsers, creating de facto standards.  A notable example is Microsoft’s XMLHTTPRequest object which is now so popular thanks to the AJAX fad). 

Fan clubs aside, I love this phenomenon — a great tool is now widely available.  Since I can now count on it, I have more reason to write cross-browser apps. 

So hear this Apple, Konqueror, Mozilla and Opera: please forget your egos, and swipe more dev technology ideas from Microsoft.  Really.

Do it for the children?