University of Calgary Interactions Lab

January 29, 2007 under hci

Last week, I had the opportunity to visit the Interactions Lab at the University of Calgary. The ilab conducts research in the fields of human-computer interaction, computer-supported co-operative work (CSCW), and information visualization. On Wednesday they held a demo day, where they showed off their projects and facilities to other researchers at U of C, people from industry, and prospective students like me.

Phidgets are probably the most famous thing to come of the ilab (well, I’d heard of them before, anyways). Phidgets — short for “physical widgets” — are easy-to-program USB devices for interacting with the “real world”: e.g. servos, sliders, motion sensors, temperature sensors, and buttons. Saul Greenberg demoed some of the work that is being done with “shared phidgets” — phidgets that are networked.

There were several jaw-droppping demos on the interactive displays. One of them was Uta Hinrich’s Interface Currents, which is a technique to make it easier to access workspace items on a large, interactive display. The main workspace is in the center of the display, while various objects travel in a “current” around the outside of the screen. A very cool idea and a beautiful demo.

Interface Currents

Edward Tse showed his work in multi-user and multi-modal interactions. If you’re not sure what that means, picture this: Ed pulled up Google Earth on the DiamondTouch interactive table. He could speak commands into a microphone (”fly to Calgary”), and manipulate the map using natural touch commands. For example, zooming was done using the same pinch gesture used in the iPhone. Ed also showed similar applications in World of Warcraft and the Sims. He’s got lots more information (including videos) on his website.

World of Warcraft

Also on one of the big screens, Michael Nunes demoed Video Traces, which is “a visualization system that allows detailed exploration of a large video stream”. It was a really neat system that allowed to look at video from a surveillance camera, and quickly identify and drill down to areas of interest, like when someone entered a room.

The interactive displays seem to be very central to a lot of the work being done at the ilab, but there were many other interesting demos. Rob Diaz-Marino’s project uses motion-detection to create ambient sounds in the environment. For example, movement in one area of a room could cause the sound of waves crashing on the beach, while another area might be linked to the sound of seagulls.

One of the funnest projects I saw belonged to Jim Young. Jim is a PhD student working with Dr. Ehud Sharlin on human-robot interaction, and he’s exploring the use of cartoon expressions to communicate the state of robots. I thought this was a really interesting approach. It reminded me of Malcolm Gladwell’s Blink, which I read recently, where he discussed how humans are adapted to make very sophisticated judgements based on facial expressions. I really like the idea of exploring new interfaces that take advantage of our natural cognitive abilities. I think that this is something were really going to need, as we have more and more devices clamoring for our attention.

All in all, I had a great visit to the ilab. I left very impressed and inspired. Thanks to Saul Greenberg and Sheelagh Carpendale for bringing me there for the demo day, to Ed for helping show me around and telling me lots about the program and the school, and to everyone else at the ilab for being friendly and helpful!


Silos and Architecture Astronauts

January 22, 2007 under design, programming, information management

Silos

Joel Spolsky’s latest post is about what went wrong with the Chandler project. I’ve been eagerly awaiting Chandler since I first heard about the project, but I began to lose interest when, after several years of development, they didn’t even have a useful prototype. After reading an account of the project in the book Dreaming in Code, Joel concludes that the problem was that “the vision was too grand and the details were a little short.”

The only concrete design ideas, as far as I could tell from Rosenberg’s book, were “peer-to-peer,” “no silos,” and “natural language date interpretation.” This may be the a limitation of the book, but the initial design sure seemed to be extremely vague.

This idea of “no silos” is one that really hits home for me. It’s something that’s bugged me for years about information management software. We have all these bits of information — emails, text files, Word documents, bookmarks, etc. — and we have all these specialized applications for managing them. I’m not arguing against specialized applications, but it’s frustrating when there are completely different conventions for each type of data. I can use tags to organize emails and bookmarks, but not regular files. If I want to send a photo to someone, I attach it to an email, but if I want to send an email, then I don’t “attach”, I “forward”. It’s not hard to imagine how confusing this might be for some people.

That’s what I think of when I hear “no silos”. And given what I know about the Chandler project, I think that’s what they mean too. Joel came to a totally different conclusion, a strawman which he easily knocks down:

As soon as you start asking questions about “No Silos,” you realize it’s not going to work. Do you put your email on the calendar? Where? On the day when it arrived? So now I have 200 Viagra ads on Friday obscuring the one really important shareholder meeting?

I seriously doubt that anyone ever proposed putting every email that you receive into your calendar. Anyways, Joel uses this example to pull out his favourite whipping boy, the “architecture astronaut”:

I think the idea of “No Silos” is most appealing to architecture astronauts, the people who look at subclasses and see abstract base classes, and who love to move functionality from the subclass into the base class for no good reason other than architectural aesthetics.

Personally, I agree that you shouldn’t waste time designing for things that you may never need. I believe in writing the simplest thing that could possibly work and then making iterative upgrades. But I don’t think Joel is being fair here, since he obviously doesn’t understand what the real idea was behind “no silos”. Instead of actually critiquing the idea, he pulls out his “architecture astronaut” trump card, just like how any discussion of the war in Iraq can get you labeled “unpatriotic” in the US.

I think there is such a thing as being an “architecture astronaut”, and it’s something I’m often guilty of, but there’s obviously a fine balance between trying to write beautiful code and trying to write working code. If you focus too much on just getting code to work, it will be unmaintainable. On the other hand, you could spend forever refactoring your code, and it would never be perfect. The trick (as with everything in life) is to find the right balance.

I just wish Joel wouldn’t vilify that sort of high-level thinking so much. I think it’s important to always try to think big-picture. If we use the construction analogy, Joel would be advocating thinking only about the houses and not about the communities. He’d be building sprawling suburbs instead of livable cities.

(Photo by Jan Tik on Flickr)


Enso: Back to the future

January 16, 2007 under design, usability, hci

Humanized is a company in Chicago founded by Aza Raskin, the son of the late Jef Raskin. Jef is famous for being one of the original designers of the Apple Macintosh, and more recently, for his excellent book The Humane Interface. I got the book for Christmas a couple of years ago, and read it cover-to-cover before the end of the holidays. It’s a really insightful and practical — not to mention enjoyable — treatise on the design of interactive systems.

The guys at Humanized seem to be picking up where Jef left off. They just released a sneak preview of their new product, named Enso:

Enso is a our new idea in computing that brings true universality to interfaces. It makes Windows, and everything in it, more humane. It breaks down the walls of applications.

Based on the trailer, Enso looks like Quicksilver for Windows. It’s a secondary command interface that can be used to launch applications, control windows, and perform various operations on the selected text, such as spell checking. Enso “continues and extends the vision of Jef Raskin”. The interface is definitely inspired by many of the ideas in The Humane Interface. Enso seems to be a way to bring the core concepts of Raskin’s “Humane Environment” to Windows applications.

One of the most interesting aspects is that it is (effectively) a command-line interface. I’m assuming you bring up Enso using a hotkey (like Ctrl-space) — then, you begin typing commands. As you type, you begin an incremental search through the set of commands, and other commands that are a close match are displayed below.

Jef Raskin believed that this kind of command-based interface is a more humane way to deal with computers. It’s a pretty contentious viewpoint — I’m not sure how many people are willing to go “back to the future” and ditch their WIMP interface for a command-line. Since Enso is still in private beta, it’s too early to judge how well it works, but I’m anxiously awaiting the public release.

In the meantime, if you’re interested in Raskin’s ideas, you can check out Archy (formerly known as “THE” — The Human Interface). Unlike Enso, Archy is a stand-alone application. Today, it’s pretty much just a text editor, but in the future, it will be “capable of doing everything that now requires applications and files scattered about your desktop.”


iPhone is the acid test for convergence

January 9, 2007 under design, usability, hci

iPhone

I’ve had enough time now to wipe the drool off my keyboard and formulate some intelligent thoughts on the iPhone.

The iPhone is remarkable in a few different ways. Obviously the physical interface is big departure from the traditional cell phone interface. I’m not sure exactly how I feel about the touch screen, but if anyone can make it work, Apple can.

To me though, the more interesting aspect is that it looks to be a make-or-break test for the theory of convergence. Yes, we’ve had camera phones and mobile web browsers for years, but they tend to be more gimmicky than useful. I think this is going to be the acid test: can we create a good multi-purpose mobile interface? And more importantly, will people buy a swiss army computing device?

The argument over convergence is an old one. Way back in 1986, Donald Norman argued against general-purpose user interfaces. In Less Is More, Bill Buxton argues that “divergence … should be the dominant model”. Most other usability experts seem to agree that from a usability standpoint, special-purpose devices are the way to go.

But mobile devices are a whole different ball game. Unless you’re willing to go the fashion-questionable route of belt clips and cargo pants, there are only so many devices a man can carry. Donald Norman suggests that we should carry multiple devices (presumably stashed in a murse, aka a European handbag) which communicate via bluetooth, and with a universal controller, “a Bluetooth device with simple buttons and a screen that connected to and controlled all the separate devices”.

In the end, it doesn’t matter what the experts think — the consumers are going to answer the convergence question. And I think the iPhone is going to be the precedent setter. Leisa Reichelt thinks it’s an automatic deal-clincher. I’m only a bit more skeptical. Touch screens have some well-established usability problems, notably the lack of tactile feedback. Even with the iPod, Apple backpedaled a bit with the four buttons, which were only touch-sensitive on the 3G models.

But I’m still betting on the iPhone being a winner. Get your popcorn — this is gonna be interesting.


Technorati Tags: , , , , ,

On static and dynamic typing, and corn tortillas

January 8, 2007 under usability, programming

Chalupa

The argument over static vs. dynamic typing in programming languages is one of those great geek debates that will never be resolved. Like Emacs vs. vi, Picard vs. Kirk, or chalupa vs. taco, it’s become a religious issue, with each side holding firm in their One True Belief.

Ok, I’m exaggerating a bit, but I think it’s fair to say that many people make an either/or choice with type systems. On the side of static typing, there are the formalists who dream of a day where programs can be proven to be correct; and on the dynamic side, there are the pragmatic hackers who want their language to be Agile. These two camps are fundamentally at odds, because there is very little grey area between their goals.

On the other hand, there are definitely some concrete benefits to be had from both approaches. For the graduate psychology class that I took at Carleton this fall, I decided to attempt an analysis of 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?”

I looked at several different aspects of type systems, and analyzed them in terms of the Cognitive Dimensions of Notations framework. One of the issues I addressed was mentioned in the post Why I Miss Static Typing.

If you’re interested, you can read the full paper. To give you a better idea of the general flavour, here is the abstract:

This paper uses the Cognitive Dimensions of Notations framework to analyze the usability aspects of static and dynamic type systems in programming languages. It presents seven problems, in the form of patterns, that are often encountered during programming. Solutions are presented for both static and dynamic type systems, and analyzed in terms of cognitive dimensions.


24 Hours in NYC, Part 2: MoMA Design Collection

January 4, 2007 under design

Chopper

Well, no visit to Manhattan would be complete (for me, at least) without a visit to MoMA.

I find I can spend no more than about 90 minutes in a museum before I start to lose concentration, so I can never cover everything I’d like to see. Luckily, this was my fourth time at MoMA, so I didn’t feel the need to go see the Picasso/Mondrian/Miró/etc. that I have seen before. Instead, I spent the entire time in the Architecture and Design section. I was like a kid in a candy store the whole time. It seems a bit funny, but what can I say, I like design.

Gehry chair

The first thing you see when you walk into the Architecture and Design section is the huge helicopter. Well, I guess it’s not huge for a helicopter, but it’s not every day that you see a helicopter hanging from the ceiling in an art museum.

The first thing I was really excited to see was Frank Gehry’s cardboard chair. I love the idea of furniture made out of cardboard, and I didn’t even know Gehry had done this until I watched Sketches of Frank Gehry recently.

Of course, there was tons of amazing furniture there. They had the modernist classics — Eames, Saarinen, etc. — but also a few great pieces that I’d never seen before. One of them was Richard Shultz’s petal table:

Petal Table

Most people are used to admiring furniture as works of art, but when was the last time you saw someone admiring a piece of machinery? But MoMA has such classics as “the self-aligning ball bearing”:

Ball Bearing

It’s great. Really. If you’re a design geek, I highly recommend checking out the MoMA design collection. I’ve got a few more pictures on Flickr, or check out the MoMA online collection.