XUL: How I learned to love non-native GUIs

I hate skins and I love native GUI widgets. Microsoft and Apple had a relatively strong set of user interface controls that people are familiar with. Yet loads of developers seem keen on reinventing these devices from scatch. Media players seem to be particularly bad at this. Microsoft’s own Windows Media Player and Apple’s own QuickTime Player both seem to throw out the entire GUI toolkit and start from scratch, building totally confusing (and totally x-Treme) interfaces.

A good user interface should get out of the way. Particularly an interface for an application that delivers content (show us the content, and get out of the way). If you want totally x-treme, you don’t upgrade your media player skin – you download Limp Biskit videos.

When the Mozilla project moved to create their own cross-platform GUI toolkit, many people who were concerned with the user experience cried foul (including myself in this January 2001 rant about skins, and this August 2002 update). The idea struck me as the result of developer-centric thinking and complete disregard to the end-user. A cross-platform GUI would make things much easier for the developers, and a bit easier for the minority of users who work on multiple operating systems, but it isn’t much good for Joe-Windows-User.

Here we are, three years later, and I think they may have been onto something. First, let me be clear that you should always use the available operating system native GUI widgets when you can. Chances are the alternatives you will develop will suck.

Mitch Kapor’s Open Source Application Foundation has chose to stick with native GUIs on their Chandler application. This is a smart decision. Most skinned application suck. Trillian would be a great instant messaging program if it weren’t for the over-skinning (that said, I do use Trillian as I find it to be the best of the worst).

Put the UI in my hands

Enter XUL (pronounced “zool”). XUL is the XML User-interface Language developed by the Mozilla project. It allows developers to define the user-interface of their application using a combination of “off-the-shelf” standards (primarily CSS and JavaScript). The end result is a relatively accessible architecture for interface design.

XUL does to the user-interface what View Source did to web development. Though I have the advantage of a web-development background (familiarity with the key technologies, like CSS), I can do things to a XUL-based app that I could not do on other applications. For example, I found some of the icons on the toolbar of the Mozilla Firebird browser to be poorly designed – so I replaced them (this was as easy as saving new PNG files and dropping them into a .JAR file). The search box was too narrow – so I made it wider (this was absurdly easy).

These may seem like insignificant examples, but it opens up a level of control over the application that is not possible with other design methods.

It’s about quality and consistency

Another key development that has softened my stance of Mozilla’s break from the OS native interface is quality and consistency. Microsoft has been squandering their lead. The quality and consistency of the Windows GUI has been deteriorating rather than improving. Microsoft has also devalued their native Windows interface by allowing it’s own applications, including their media player and the massively important Office suite, to shirk the standards.

XUL, meanwhile, has gotten much better. The software is constantly improving (and incorporating native OS widgets where appropriate – which is a nice touch). Performance is no longer an issue on newer hardware. Where XUL-based apps might have taken a performance hit compared to native Windows apps, the difference is insignificant on recent hardware.

The Mozilla Firebird browser project shows that XUL can be used to develop a quality interface.

Will the operating systems rise again?

I should note that Apple’s OS X may be an anomaly in that the quality has actually been improved over previous versions of the OS. Regardless of your opinion on the style of the OS, it is clearly well rendered. Microsoft is planning on following in Apple’s footsteps by having DirectX handle the desktop GUI in the same way Apple is using OpenGL. There is a chance here that Apple and Microsoft may leap ahead of other interface systems. However, I think it’s more likely that developers of XUL will tap into these improvements than be left behind.

Platform Freedom and Platform Friction

In 1997, Netscape’s Marc Andresen claimed that:

“[b]rowsers will reduce Windows to an unimportant collection of slightly buggy device drivers”

If anything, it is XUL that has the power to do this. I originally thought that the ability to develop applications that run on multiple operating systems with relative ease wasn’t much good, since the overwhelming majority of computer users are running only Microsoft Windows. However, after my recent stint on a Mac for a week and having switched from IE to Mozilla Firebird as my primary web browser, I’m starting to see something more significant going on.

A friend of mine pointed out that for the average novice Windows user to switch to an alternative operating system, they would also be forced to deal with an entire new set of applications. However, if Mozilla Firebird becomes your primary web browser and OpenOffice.org becomes your primary office suite, the platform friction is greatly reduced, as these applications are available on other operating systems. Web-based services and applications are another layer that can work well on any OS. Once you’ve got Johnny windows user into his Hotmail account, he doesn’t care if he’s running Windows 98, OS X, KDE, or Gnome.

But I still hate skins

I do still hate skins. I dream of a simple media player that uses native GUI controls. I hate that every new version of Microsoft Office includes redesigned menus and toolbars. However, in the accessibility of XUL, I see a small example of how the wall between developers and users can be torn down.

More info on XUL:

 

Online Petitions Don’t Work

Today, Jeffrey Zeldman made a fine post about the lacking support for the PNG file format in Internet Explorer for Windows. He explains it very well (and links to a great demo page – but it won’t work in IE/Win) and links to a petition to encourage Microsoft to fix the situation.

Online petitions don’t work. No one cares. I know – I started a petition last year (embarrassed). Of course, it can’t hurt to sign the petition. I did. But so did “Bill Gates”.

This is an important need of the web development community being expressed by a prominent member of the community. Microsoft needs to respond. However, I expect that they will not. Each little issue like this erodes a little more from Microsoft’s (massive) foundation and will lead people towards alternatives (like the fine Mozilla Firebird browser).

It is good for Zeldman to bring attention to the issue, and a simple “we’re working on it” response from Microsoft would make a big difference in how the company is perceived. However, I expect it would take a call from a “real” reporter to get a quote from them. Let’s hope they surprise me.

 

Mozilla Firebird v0.6: I have a new default web browser

I use a lot of web browsers. I have six different browsers installed on my primary computer, and maybe ten more on other testing machines.

Of all of these, there is one primary browser. When I click on a link in an email or instant message, my primary browser will open it.

Years ago, Netscape 4 was my primary browser. Then, along came Internet Explorer 4, which was dramatically better than Netscape 4. In early 1998, IE4 became my primary web browser. Since then, it has been all IE – including version 5, 5.5, and up until today, 6.

There are other great browsers. Mozilla has had a great browser since before version 1.0. I used it regularly (the standards compliant rendering engine was great for testing web development work). It wasn’t enough to get to switch over entirely, though.

Then along came Phoenix. The browser started as a lean off-shoot of the Mozilla project. It became a great browser very fast. I started using it more and more with the version 0.5 beta release a few months ago. I really got hooked on the joys of using open-source software when a feature request I made was answered by a developer with a patch that same day. Still, Phoenix was in the relatively early beta stages and had some key features missing, incomplete, or broken.

Phoenix has been renamed Mozilla Firebird. The Mozilla project has announced that they will be making Mozilla Firebird the primary Mozilla browser (which means Netscape 8 could be based on Firebird, if that even matters anymore). Today, with the release of beta 0.6, Phoenix-come-Firebird is stable enough that I have made it my primary web browser, and I will secretly install in on my parents computer.

screenshot of Mozilla Firebird default browser setting

I have a few recommendations for anyone trying out this browser. The core browser is kept as clean and simple as possible (about a 6MB download) and additional functionality is handled through a nice extensions system (as opposed to just pilling everyones favourite feature into the core).

 

WiFiCharlottetown.org

WiFiCharlottetown.org is the site for a humble group working to encourage free and open wireless internet access in Charlottetown (please excuse the Comic Sans font on our city’s website).

WiFiCharlottetown.org Logo

We have some hardware on order to try out and if it works well, we’ll be getting started with hot-spots around town. We’re hoping that people will help us out by sharing their own WiFi.

 

New Music Discovery: Ground

Photo of GroundFirst heard while driving home from work on CBC Radio Two, directed by the host to CBC’s NewMusicCanada.com for more info, and then to their own (fine looking) website: a fine group from Calgary, Ground.

What a glorious expenditure of tax dollars (I’m genuinely unsure whether I’m being sarcastic or not).

Download their new single, All The Most (2.6Mb MP3).

 

8 Minutes Remaining. No, wait! Make that 52 mintutes

Can anyone shed any light on why the time estimates in file copying dialog boxes in Microsoft Windows are so ridiculously inaccurate? Is this a difficult problem to solve? I know BeOS handled it remarkably well. What about other operating systems? Mac OS (classic or X), the linux GUIs, etc?

 

Web Standards and the Meaning of Life: You have to believe it to see it

Tonight, I feel as though I’ve stumbled across a personally significant discovery: For many things in life, you have to believe it to see it. Bear with me as I leap from profound meaning-of-life examples to mundane gadget examples.

A little over a year ago, I posted an open question to the web development community here on this website: Why should I redesign my site with Cascading Style Sheets? At the time, I was struggling to convert my brain from old-school HTML-quirks-expert mode to new-school XHTML/CSS standards mode. I wondered, given the number and complexity of browser incompatibilities, if it was worth the trouble.

The volume of the response was impressive, but no-one convinced me. Some strong arguments were presented, but none really told me what I didn’t already know. I was directed to Owen Briggs’ now well-known Design Rant. I understood his arguments, but it wasn’t enough.

As I stated at the time, I made the decision to learn more about XHTML, CSS, and web standards in general, mostly out of the feeling that it was inevitable (I also have a well-documented irrational and interminable need to upgrade). Here, a year later, I’m swimming in XHTML. I’m still often confused and frustrated CSS, but I’m pushing the adoption of web standards in all of my web work.

What changed? Not much. Netscape 4 is less of an issue than it once was (fewer and fewer people are using it and I’m now content to have sites look different, as long as their accessible in the old browser). However, when I read Owen Briggs’ Design Rant today, it rings true, whereas it was hollow and distant to me last year.

The most significant change in that time is that I have jumped in with both feet and learned. While I still feel like I only know 10% of what I should about CSS and XHTML, I know an order of magnitude more than I did last year. In learning these technologies, I have come to understand their benefits.

The most significant immediate benefit, for me, is the way in which the structure of XHTML forces you to produce cleaner and more logical code. However, I don’t expect this benefit to convince a naysayer. That’s the whole point. I couldn’t be convinced – I had to try and learn before I could understand.

This realization, that I need to explore and experience in order to understand, dawned on me as I read C.S. Lewis’ classic Mere Christianity. In discussing how the theological differences between the various denominations are relatively insignificant to the core of the religion, Lewis states that “A man can eat his dinner without understanding exactly how food nourished him.” Lewis goes on to argue that you need not necessarily understand in order to believe. Understanding is beneficial, of course, but not necessary.

I believe this idea can be generalized, however inelegantly (if I haven’t already done so by stretching it from web standards to religion), to something like: you have to try it to get it. You can not wait for understanding to justify experience. Rather, the experience will produce its own justification.

Leo Tolstoy’s A Confession is a powerful account of how Tolstoy found, after painfully and diligently searching for the meaning of life through much of his adulthood that the meaning of life wasn’t something he could learn from a book (read the excerpt with Tolstoy’s account of his dream of a bed over a chasm to hear this in his own words).

I’ve also seen this principle (yeah, it’s a principle now) in practice in other situations. A few simple examples:

  • When a co-worker showed me his wireless network connection in his laptop last year, I thought it was cool, but didn’t see the great need (I was at my desk with my computer all day where a wired Ethernet connection is available anyhow). However, when I first tried WiFi for myself I immediately understood that it would change the way I use my computer.
  • Having only driven cars with an automatic transmission, I could never understand the appeal of a manual transmission. Friends pointed out the better feel for the car, the improved fuel economy, and most of all that it was “fun”. As with the other examples, I could understand their points, but only in that I knew what they were saying. Until an offer of a free vintage Volvo station-wagon forced me to learn to drive a stick-shift, I didn’t really understand what they meant.
  • After occasionally using Apple computers over the years, last month I spent a week working on a Mac in hopes of figuring out what the attraction was. I think I got it.
  • Dean Kamen (the Segway guy, among other things) said in a presentation at the WinHEC conference that innovation is like love: “Everybody wants it – everybody feels good when they have it – but nobody knows what it is.

I’m not sure where this leads me. Perhaps the only true education comes from experience. A friend told me once that no Atheist could read the entire Bible and be unchanged. I believe that is probably true – though it may not be the contents of the book, but the act of reading it that would prove to be the true agent of change.

 

The Ffoeg Illustrations: Day 5

The last in a series of Illustrations by Geoff Gibson:

Robot Dance Crew - an illustration by Geoff Gibson
Robot Dance Crew
by Geoff Gibson

« Day 4
 

The Ffoeg Illustrations: Day 4

The fourth in a series of Illustrations by Geoff Gibson:

swoop - an illustration by Geoff Gibson
swoop
by Geoff Gibson

« Day 3 Day 5 »
 

What Microsoft is getting right in Athens

Microsoft’ Athens PC prototypeMicrosoft and Hewlett-Packard are developing a concept computer code-named Athens to demonstrate technologies to be included in future products (serveral high-res photos are available). There isn’t much in this prototype that’s actually new and it’s more of a marketing tool than a technology demo. However, having putting a lot of simple and smart features together, they are on to something.

  • Screen real-estate
    The demo model includes a $2000+ 20″ LCD (photo). The presented awknowledges that this is unrealistically expensive for the average business or home user, but cites a report that predicts that the same size screen will run about $400 in 2004 (presumably the end of 2004). Jakob Nielsen has been telling us this for years: large screens are not just for designers. There is a significant productivity gain from moving a typical user from a 15″ to a 17″ or 19″ display.
  • Presence
    A Microsoft researcher commented that a urinal can know when you walk away, but your PC can’t. I’ve written before about how user-presence should be done at the system (rather than application) level. This demo includes some nice moves on that front. Say I’m showing a small group a video or presentation on my PC. On hardware button (Do Not Disturb), and all of my communication systems are notified to leave me alone (incoming phone calls are diverted to voice mail, though callerID is available, and instant messaging status is set to “away”).
  • PC as docking station
    I’m now a full time laptop user, though I do plug in a mouse when at my desk. The Athens prototype is a docking station for a laptop as well as a PC.
  • Unified Inbox
    With telephony (the most hilarious word ever) technology built into the system, voicemail and caller ID can be easily incorporated into the universal inbox along with email and instant messaging.
  • Smart sleep
    Many systems do this well already, but the Athens PC ads a few nice touches, including fast wake-up and light indicators on the top of the screen that alert you of email, voicemail or alerts, even when the system is asleep (photo).
  • Hardware controls
    Many try and most fail to add useful hardware buttons to PCs and laptops. My ThinkPad has useful volume controls that let me easily mute or adjust my volume regardless of what application I’m using. If the phone rings while I’m playing I can always quickly kill the sound (though the Athens PC does this for you). The Athens PC includes hardware controls for presence (Do Not Disturb, etc.) and hardware indicators for email, voicemail, and reminders (as lights on the top of the screen). Microsoft’s enormous size could help them establish a simple convention that hardware manufacturers could support. After all, these people did add a new key to our keyboards.

For more details on the Athens PC, Microsoft has a Word Document with all of the details (695Kb). They are really hitting on some key points, demanding “Appliance-Like Availability” and quiet operation. Microsoft is in a strong position to dictate these types of moves to hardware manufacturers they have proven themselves in a similar program. In 2000, I wrote about Microsoft’s similar announcement of the TabletPC. Two years later, you could buy one. They did the same with their Media Center PC.

News.com has video of the Athens introduction (link only works in Internet Explorer thanks to News.com’s craptacular pop-up window video display).

Spare me the line about how your computer did some of these things back in 1995. I’m not claiming that these are innovative. Rather, it’s the combination of a lot of smart features (regardless of how innovative) that make this an attractive PC.