Mental Break

As the world gets more insane, I sometimes need a mental break. For example, President Bush covering U2’s Sunday Bloody Sunday.

Am I bad for liking this version more than the original?

Boldly Going Where We've Gone Before

I empathize with Smalltalkers and Lispers who are in a perpetual state of been-there-done-that. Tons of “new” technologies (on-the-fly code reloading, edit-and-continue debugging, refactoring, and anonymous functions, among others) have been available in Smalltalk-80 since its inception (and frequently in Common Lisp’s predecessors and peers since before that).

That said, when I read C# developers lamenting that .NET 3.5 is only a bad imitation of Smalltalk-80, I have a slightly different reaction than they. Yes, I wish I could program in Smalltalk (or its successors, such as Self more often, and yes, I wish Smalltalk had wider adoption, but, at this point in my life, I also recognize that neither Smalltalk nor Common Lisp will ever be a mainstream language. Although I may scream “But we already had this!” from time to time, in my gut, I know that our last best hope is to see existing mainstream languages steal as much as possible from Smalltalk and Common Lisp. To that end, I’m actually excited about C# 3, which I feel adopts more Lisp- and Smalltalk-like features than any other mainstream language I’ve yet seen. Is it perfect? Is it really on par with Smalltalk or Common Lisp? No. But in the end, I’d much rather have 90% of Smalltalk available everywhere than 100% of Smalltalk available only in a few nooks. This is a step in the right direction.

Browser Stupidity

Yesterday, I went to a website that used MathML to display a few formulae. Because Firefox supports MathML, I figured everything would display just fine. Unfortunately, Firefox notified me that I had to download some free fonts to display the equations. Here’s the dialog it displayed:

Notice from Firefox to install MathML fonts

I don’t mind having to install fonts, but this dialog is so poorly constructed that I ended up laughing:

  1. The link they provide isn’t clickable. I’m in a frakking web browser, and they’re not going to let me click the link that lets me download the fonts? Seriously?
  2. Not only can you not click the link; you can’t even select it (at least on OS X). You have to open another browser and type it in by hand.
  3. Firefox tells me which fonts it needs. If I actually navigate to that page, I can’t download those fonts individually; I can only grab all the fonts at once. I am completely okay with having to download all the fonts at once—I even think it’s the right solution—but then, why bother telling me which individual fonts I’m missing if I have to download them all together anyway?
  4. For that matter, why is Firefox making me download the fonts? Firefox already knows where they can be fetched, and it knows what platform I’m on, and it has a download manager. It could automate the entire process for me quite easily.

The dialog they present should look like this:

An improved Firefox dialog

I’ve made a number of improvements:

  1. Useless information has been removed. Most users have no idea what MathML is, and even technically proficient ones don’t care exactly which fonts Firefox needs to render it. All users care about is whether the next page they view is legible. The new design clearly explains the problem and the consequences for not fixing it, without going into pointless details.
  2. The install process has been automated. No more “go here for more information.” Just install or don’t, right now.
  3. For users who actually want more information, a Mac OS X help button has been added that can give them all the nitty-gritty details.

The new dialog is clearer, involves less work from the user, and follows the Mac OS X HIG.

Mac developers in general seem to have a better feel for this kind of thing. That’s actually part of what keeps me wedded to the platform: Macs, for as long as I can remember, seem to attract a higher caliber of user interfaces, even (sometimes especially) in third-party apps. Windows is horribly erratic, and Linux, with its multitude of conflicting interface guidelines, frequently ends up being a Frankenstein of pain.