Christmas Package Tracking

Package Contents: Christmas gifts for my entire family

Package Status: In transit

Current Package Location: UPS shipping facility, Lachine, Quebec (a little under 1,000 kilometers from my house)

Scheduled Delivery: December 28

Bah: Humbug

 

Scaling Images in Firefox 3

After making the post about smooth corners in Firefox 3 yesterday, I began to wonder what other smoothnesses (which should be a word) the next version of Firefox might have in store.

As I mentioned yesterday, the Cairo graphics library will power the rendering of web pages in Firefox. Functions such as resizing an image, are now performed by this new library.

In current web browsers, if you have an image that is 100 pixels by 100 pixels, but you tell the browser to resize it to 85×85px (by specifying the height and width in the HTML <img> tag), the results were ugly. The browser would resize the image, but not with any of the smoothness that you would see if you had resized the image in an application like Photoshop or the Gimp.

Now, in Firefox 3.0 Alpha 1, resizing an image like this actually produces a smoothly size image. This isn’t something I would recommend doing, but it is another nice example the improvements coming in the Firefox rendering engine.

Here’s an example of a PNG image version of the Firefox logo. There is only one source image used for all of these variations. This source image is 128 pixels by 128 pixels. The top row shows how Firefox 2 resizes the image, and the bottom row shows how it’s done in Firefox 3.0 Alpha 1.

Firefox image resizing comparison

I had the good fortune of meeting Carl Worth, a lead Cairo developer, a few years ago in Boston. He was a gentlemen and was more enthusiastic about tessellation than anyone I’ve ever met. It’s nice to see his hard work will be helping to improve such a widely adopted application as Firefox.

When a developer of a mapping application was considering a lower-quality view to make his maps render faster, Carl suggested that if Cairo was too slow, then it should be fixed, not worked-around. I understand that they’ve since made good progress on performance.

 

Cairo Corners in Firefox 3

The latest alpha releases of Firefox 3 use a library called “Cairo” for much of the graphics work (note: I don’t understand exactly what that means, but it doesn’t matter).

Thanks to this new graphics infrastructure, boxes with corners rounded by the pre-CSS 3 property border-radius are rendered with beautiful anti-aliasing (currently accessible as the non-standard -moz-border-radius and soon -webkit-border-radius). Stated more simply, rounded boxes are prettier.

Here’s a quick comparison of a box with CSS rounded-corners rendered in Firefox 3.0 Alpha 1 versus Firefox 2.0:

Firefox rounded corner comparison

The difference is subtle, especially with lighter colours like these, but this example represents a significant improvement in the abilities and quality of rendering in Firefox.

Also note that Firefox 3 probably won’t be released until the second half of 2007 (that’s not based on anything official – just a guess).

 

Distributed Punch in the Face System

Suggestion for a distributed open-source system to fight badness:

The system allows you to enter the name/location of a person who needs to be punched in the face, somewhere in the world (a known spammer, for example).

Then, you see if there is anyone near you that needs to be punched in the face. Punch them.

I’m not sure if it will scale.

 

The WebOS doesn’t need Windows

There has been lots of talk about a potential Google operating system lately. A web-based operating system is probably more of a convenient way to describe the way Google and the web in general is obsoleting traditional desktop applications and systems than an expression of any tangible product or project.

That said, people love screenshots. Almost all screenshots I’ve seen of mocked-up ideas of what a WebOS might be look a lot like Windows XP. This is understandable as it’s a quick way to say “look, this looks like like your normal computer, but it’s a WEBSITE!”.

Windows (as in little boxes that hold tools, documents, and applications, not as in “Microsoft Windows?”) don’t actually make a lot of sense in web-based applications.

First, desktop operating systems have mature and dedicated “windows managers” that do all of the hard work of actually having those little boxes all over our screens. Sure, a lot of this behaviour can be replicated with fancy web-twenny techniques, but for the most part, it’s not worth it.

Which brings us to the second and more important reason that the WebOS won’t have windows. It doesn’t need Windows. Interface designers have been waiting for the end of the traditional desktop operating system interface (desktop, folders, icons, windows, menus, etc.) since shortly after it was invented. Web applications like Gmail have shown that you can have effective and efficient interfaces without anything like windows that overlap each other.

The browser canvas already lives in a window, often in a tab inside that window. Filling it with another set of windows with a set of behaviour that is similar to, but not exactly like the behaviour of the base operating system windows is likely to create a variety of usability issues.

Rather than a distinct product that looks like Microsoft Windows but lives on the web, I suspect the move to web-based computing will be (and already is) a gradual shift. Web-based mail is a big change that has already happened without the help of any replication of the desktop/windows/icons/menu interface.

Incidentally, MIT One Laptop Per Child interface has done away with the concept of overlapping windows. Each application or document runs full-screen at all times. This is partly informed by the size of the screen on the device, but it also conveniently eliminates an entire mental model required to interact with multiple windows.

All of that said, there was some talk at the recent Firefox Summit about ways to allow Firefox to bring web applications deeper into the desktop. For example, allow a web-application like Gmail to run it’s own process of Firefox that can display status in the system-tray (or dock), respond to system calls (like “open the default email application”), and stay alive even when your web-browser is closed. The idea is that rather than making desktop applications more web-aware (which seems to be the Microsoft Vista approach), we can make web-applications more desktop aware.

 

Acts of Volition Radio: Session 26

Acts of Volition Radio: Session Twenty Six

In keeping with my complete lack of a publishing schedule, here is the latest session of Acts of Volition Radio. If the commentary is lacking, I assure you that the songs are worth the wait.

A few pairs of great songs. Recorded Wednesday, November 22, 2006 by Steven Garrity. Run time: 45min.

Session Twenty Six Playlist:

  1. Joel Plaskett – A Million Dollars
  2. Joel Plaskett – Nowhere With You
  3. The Thermals – Here’s Your Future
  4. The Thermals – I Might Need You To Kill
  5. Sloan – Another Way I Could Do It
  6. Sloan – Live The Life You’re Dreaming Of
  7. Joshua Radin – Winter
  8. Metric – Police And The Private
  9. Steve Earle – Jerusalem

For more, see the previous Acts of Volition Radio sessions or subscribe to the Acts of Volition Radio RSS feed.

Acts of Volition Radio
Acts of Volition Radio
Acts of Volition Radio: Session 26
Loading
/
 

Windows Vista: Right on the Button(s)

After experimenting briefly with a beta version, I have determined the best new feature of Windows Vista.

I complained back in 2001 about the rough edges on large form buttons in Internet Explorer. After installing Internet Explorer 7 on Windows XP, this was one of the first things I tested. I was dismayed to discover that the problem still persists.

However, on Windows Vista using IE 7, the corners of wide form buttons are not broken. That alone is worth years and millions of dollars worth of development.

Windows XP vs. Vista form buttons screenshot

That said, I still don’t understand what determines how wide the form buttons actually become (seems to be some kind of length_of_button_text × 1.N formula).