Mozilla Prism and the future of application development

October 26, 2007 under usability, hci

Mozilla Prism reflects the web onto your desktop

The tube-o-sphere is aflutter today with the news of Mozilla Prism. Prism is a rebranding of WebRunner, which I mentioned a few weeks ago. It’s basically a platform that allows you to take web applications like GMail and give them their own separate window and icon on the desktop. Alex Faaborg has a great post explaining why this is a desirable from a user experience point of view:

Personal computing is currently in an awkward phase of transition. Half of the applications we interact with are client side desktop applications, and half are online Web applications. This means that half of the applications, regardless of what they are, are currently trapped inside of a Web browser, like some kind of Shakespearean play within a play. Because of this, Web applications are unable to take advantage of many of the user experience benefits afforded to client side applications.

By being trapped inside the browser, Web applications are unable to fully integrate with a user’s computing environment, and when accessing Web applications, users are constantly forced to think about what underlying technology the application is based on.

This brings up the old question of where application development is heading. In 20 years, will all our applications be web apps? Or will our desktop applications all be web-ified? Will your desktop go to the web, or will the web come to your desktop?

EyeOS is an example of your desktop going to the web. This is the vision of reducing Windows to a poorly-debugged device drivers, as Marc Andreesen famously said Netscape would do.

Prism is on the other side of the coin: it’s the web coming to your desktop. We’re still talking about standard, run-of-the-mill web applications, but Prism let you move them out of your main browser window. They still won’t support drag-and-drop like the native OS, or allow access to the local file system. But if this model takes hold, it might be possible to support these kinds of things in the future. Using microformats and a tool like Operator, you could imagine being able to click on an attachment in GMail and open it directly in your favourite word processor. And Firefox 3 already has offline application features, supposedly.

From my point of view, this is the way to go. It’s an incremental approach that doesn’t require us to throw out our old work habits. EyeOS, on the other hand, is more of a boil-the-ocean thing. And in the end, if people want to use their favourite web apps from within a web desktop, you’ll still need something like Prism, nested inside the web desktop like a russian doll.


Technorati Tags: , , , ,

There are no little boxes: Everything is deeply intertwingled

October 23, 2007 under information management

The post yesterday on Information R/evolution reminded me of a concept that I ran across not too long ago. Ted Nelson, who coined the word hypertext (among other things), introduced the concept of intertwingularity in his 1974 book “Computer Lib/Machine Dreams”:

EVERYTHING IS DEEPLY INTERTWINGLED. In an important sense there are no “subjects” at all; there is only all knowledge, since the cross-connections among the myriad topics of this world simply cannot be divided up neatly.

Hierarchical and sequential structures, especially popular since Gutenberg, are usually forced and artificial. Intertwingularity is not generally acknowledged — people keep pretending they can make things hierarchical, categorizable and sequential when they can’t.

In the comments on my post yesterday, Chris said:

I know we’re not stuck in categories anymore.

But, tags have never struck me as the ‘answer’. I know they’re doing good things. I know they allow interesting ways to view information. But, I’m not sure that tagging information is making it easier for me to get my hands on.

Maybe I just don’t grok it. Maybe because I can’t see the light, I don’t really put enough effort into tagging my own information properly.

Chris is right: tags aren’t “the answer.” Tags are just another way of dividing the world up into neat little boxes. But I think the main point of the video, and the thesis of Everything is Miscellaneous is that there are no little boxes. Everything is deeply intertwingled.


On a side note: Ted Nelson is one interesting character. He strikes me as being a bit like Richard Stallman: a visionary, and someone who deserves respect for sticking to his ideals, but a bit of a nutbar. There’s an interesting article in the Wired archives about Nelson and his yet-to-be-realized Xanadu hypertext system.

I also noted from the Wikipedia article that Nelson coined the term teledildonics. I laughed out loud when I read the next sentence: “The main thrust of his work…”


Information Revolution

October 22, 2007 under information management

Anand pointed me to another cool video from Michael Wesch, an Assistant Professor of Cultural Anthropology at the Kansas State University. It’s a short video called Information R/evolution that explores the consequences of the shift from paper-based information to digital information, with nods to Clay Shirky’s Ontology is Overrated and David Weinberger’s Everything is Miscellaneous. The style of the video is incredibly cool. Check it out:

If you didn’t see his last video — Web 2.0 … The Machine is Us/ing Us, which made the rounds in February — it’s definitely worth checking out as well.


Greatest Misses: Popular posts from the last year

October 15, 2007 under meta

In celebration of the one year anniversary of me offering my opinions up for public consumption, here are some of the more popular posts from this blog in the last year.

Some popular posts from the last couple months that many of you have probably already seen:

And some older posts which sparked some interesting discussions:

If you’re looking for some longer reading, check out the article I wrote for Boxes + Arrows earlier this year, called Doing Today’s Job with Yesterday’s Tools. Here’s the summary:

Where is the software that can help us cope with the massive amounts of information that we deal with on a daily basis? Patrick Dubroy points out the usability problems with current personal information management techniques, and makes some suggestions about how to improve the situation.

And now back to your regularly scheduled programming.


Technorati Tags: ,

Happy birthday to me

October 12, 2007 under meta

Birthday cupcake

I almost forgot, today is the one-year anniversary of this blog! A year ago today, I started the ball rolling with a post on the Cognitive Dimensions of Notations framework. Back then, I had just left my job, and was thinking about returning to the academic world to study human-computer interaction. And a year later, here I am — working on my master’s in the DGP lab at the University of Toronto.

I started this blog for a couple reasons: first, as a way to sort out some of my thoughts on the human side of software; but most importantly, to interact with other people who are interested in this stuff. So far I’ve gotten lots of feedback on my articles, but I usually seem to hear from the same five or ten people. According to Feedburner, there are almost 60 people who subscribe to my RSS feed, so I’d like to hear from some of my other readers! Leave me a comment and let me know a little bit about yourself. What do you do, what are you interested in, what’s your favourite beer? (Mine is St. Ambroise Oatmeal Stout.)

In the next few weeks, I’ll be launching a new design for site. Before I do that, I’d like to hear your opinion on things. What do you like about the blog? What don’t you like? Would you like to see more or less of certain kinds of topics? Let me know! You can leave your comments here, or email them to me at pat@[this domain].

So, thanks everybody for a good year. For the newer readers, check back on Monday — I’ll be posting a retrospective of some of the most popular articles from the past year.

(Photo by ieatstars on Flickr)


Technorati Tags: , ,

Software needs editors

October 10, 2007 under software, design

In a great post at Signal vs. Noise, Jason Fried answers the question, “Is it really the number of features that matter?”

What matters is the editing. Software needs an editor like a writer needs an editor or a museum needs a curator. Someone with a critical eye and the ability to say “No, that doesn’t belong” or “There’s a better way to say this.” Physical constraints create natural limits for books and museums. Books have pages and museums have wall space. Software, on the other hand, is virtual, boundless. Anything is possible. When anything is possible someone inevitably tries to make something do everything. And the more something does the harder it becomes to understand, grasp, and use. So the key is deciding what makes it and what doesn’t.

What Jason’s talking about here is really the core of design. It’s about making tradeoffs, and finding balance:

So remember: Good software is about balancing value and screen real estate and understanding and outcome. If it takes 20 good features to get there, then great. If it only takes eight, even better. It’s not the number that counts, it’s the balance.

Joshua Porter thinks it’s important that the designer be someone different than the creator:

You need someone pushing back as much as you need someone pushing forward. You need, not necessarily a critical eye, but a concerned eye that isn’t colored with the effort of creation. A creator is almost never equipped to be objective about their creation. (nor should they be)

The analogy to writing — that software needs an editor — is a good one. But there’s a key different with software: it’s about solving a specific problem. When choosing which features to include, you need to always keep in mind the problem that you’re trying to solve. As Charles Eames, one of the most famous designers of the 20th century, said: “Recognizing the need is the primary condition for design.”


Technorati Tags: , ,

Ontario election: Safari users out of luck

October 10, 2007 under usability

Today is election day in Ontario, Canada. This year is more interesting than usual, because we are also having a referendum on electoral reform. I won’t wade into the politics; head over to Pie Palace if that’s what you’re looking for.

I decided to do my civic duty early this morning, and as usual, I’m not on the voters list. So I cruised on over to the Elections Ontario site to find out where my local polling station is. On the front page, under a big, butt-ugly banner saying “Find out where you vote”, I see the following notice:

Note: If you are using a Mac computer, please use the Firefox browser to view the Elections Ontario site.

I was using a Mac, but I did happen to be using Firefox this time (I usually flip flop between using Firefox and Safari). I fired up Safari just to check, and sure enough, it doesn’t display properly — the navigation menu was nowhere to be found.

So, even though the site has voting information in 36 different languages, including Tamil, Armenian, and Hungarian, they couldn’t be bothered to make the web site accessible to a standards-compliant web browser. Weak.


Two outta three ain’t bad

October 9, 2007 under programming

Leah Culver, the lead developer of Pownce, posted the slide deck from her talk at FOWA 2007: Pownce - Lessons learned. I learned a few interesting things about Pownce:

  1. It’s build on Django.

  2. They use Amazon S3.

  3. Their desktop client is built using AIR.

By a freaky coincidence, these points happen to correspond to some links I wanted to share with y’all.

The Django Book

The Django Book, is a free, online Django reference. The book is still in beta (yes, they apparently do that for books now), and they’ve got a cool UI for commenting on specific paragraphs, and viewing those comments. Here’s what Chapter 1 looks like:

The Django Book - Comment UI

To view comments for a section, or to add a new comment, you click on the corresponding yellow dialog bubble on the left. For sections that don’t have any comments yet, a subtle, translucent bubble appears when you mouse over the margin.

Amazon S3 Service Level Agreement

Amazon S3 now has a service level agreement, guaranteeing 99.9% uptime. Lots of people have been raving about the Amazon Web Services arsenal, especially S3 (storage) and the Amazon Elastic Compute Cloud (aka EC2). It should be even more attractive to developers now that they have a guarantee.

AIR

Okay, this one’s a bit of a stretch.

Adobe AIR (Adobe Integrated Runtime) is a runtime environment for desktop applications based on Flash, HTML, and Ajax. It’s direct competitor to Mozilla’s WebRunner. If you’re interested in WebRunner and you live in Toronto, you might want to check out the Free Software and Open-Source Symposium at Seneca College later this month. Mark Finkle of the Mozilla Corporation will be doing a workshop on desktop-enabling web apps.


Technorati Tags: , , , , , ,

Jono DiCarlo’s Top 3 Humane Open-source Applications

October 6, 2007 under design, usability, hci

In his article Ten Ways to Make More Humane Open Source Software, Jono DiCarlo picks his top 3 humane open-source applications. (Side note: When the Humanized guys say “humane”, they are talking about usability. They’ve got a blog post explaining why humane is a better word than usable). The first one on the list I expected, but the others came as a bit of a surprise:

1. Firefox

This one was a no-brainer. It’s one of the most successful open-source applications ever, due in no small part to its excellent user interface. What impressed me the most when I first used Firefox was the simplicity of its preferences dialog.

2. Emacs

I admit, I used to be an Emacs user. Powerful, sure. But good usability? Then again, just because something is difficult to learn doesn’t mean it’s not highly usable. In the article, Jono makes a good argument for calling Emacs humane.

3. Python

I agree with Jono whole-heartedly on this one. The more time I spend writing Python code, the more I love it. I’m a firm believer in the Zen of Python:

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.

I was suprised to see Python included in this list though, because I’m not used to people talking about programming languages in terms of their usability. But I agree with Jono:

Programming languages are interfaces just as GUIs and command-lines are. Programming language are a way of giving instructions to a computer, just like a GUI or a command-line. Programming language design is user-interface design.

In the HCI class I took at Carleton last year, I actually wrote a paper that analyzed the pros and cons of static and dynamic typing from a usability perspective. Instead of the formalism vs. agility argument, I tackled it from a different point of view, asking “How can type systems make programming easier?”

The importance of the benevolent dictator

Jono’s post recommends a list of DOs and DON’Ts for producing humane open-source software. Number one on his list? Get a benevolent dicator:

  1. Get a Benevolent Dictator
    Someone who has a vision for the UI. Someone who can and will say “no” to features that don’t fit the vision.

Mundane usability problems

October 4, 2007 under usability

If you’ve ever attended a conference or lecture, you’ve probably seen the presenter struggle with the projector. “Anybody have a VGA cable?” “Did you press Fn-F7?” “What resolution is your screen set to?” Somehow it seems especially funny when the audience is HCI researchers. We all chuckle and shake our heads, but no one ever does anything about it.

It’s a good sign you’ve got a real, serious usability problem on your hands when even the experts struggle with it.

Kingston MiniFun USB flash drive

Another mundane usability problem happens with USB flash drives. Yesterday I bought myself a 2GB Kingston MiniFun. Although it sounds like something you might find in your girlfriend’s underwear drawer, it’s actually a really cool little USB drive. It’s so tiny. I also love the Lego-inspired cap.

These little drives are great, but it really kills me that you have to go through the “Safely Remove Hardware” dance on Windows:

Safely Remove Hardware dialog

This really makes no sense to me. I’ve got exactly one USB storage device plugged into my system — why do I have to go through this complicated two-step dialog? Apple got it right on this one, where at least you only have to click a single button to unmount the drive. But still, forcing the user to unmount the drive before removing it — or risk corrupting their data — is just asking for trouble. And probably everyone who’s ever used a USB drive has run into this problem before.

I believe Macs used to have a soft-eject button for floppy disks that would ensure the data was finished being written before ejecting it. This is the right approach — make it impossible to do things wrong. Although it’s not clear to me how you might implement that for USB drives.

Unfortunately, no one seems to be interested in fixing these kinds of mundane usability problems. The issues become so ubiquitous that we just accept that it’s just the way things are. Maybe we need some kind of bounty to fix these problems, something like the Millennium Prize for math or the X Prizes. Anyone want to pony up a few million for this?


Technorati Tags: , , ,
Next Page »