Today Anand and I were talking about how people manage files on their (computer) desktop, and we were wondering — how many people actually use some sort of spatial organization? By “spatial organization”, I mean that the physical location of the icons on the desktop carries some sort of meaning for the user. Since he created BumpTop, there’s no doubt that Anand wants to treat his desktop like a physical workspace, putting similar documents close to each other, even creating piles. On the opposite side of the spectrum, here’s what my desktop looks like:

One reason I don’t use spatial organization on my desktop is that I don’t like to see the clutter there all the time. Another reason is that Windows doesn’t give you the features to encourage this kind of approach. Maybe if I had BumpTop, my approach would be different.
There are pros and cons to using a real-world metaphor. It’s great to leverage a person’s existing skills, and metaphors can be a great way to help people learn and understand new concepts. As the Spanish philosopher José Ortega y Gasset said: “the metaphor is perhaps one of man’s most fruitful potentialities. Its efficacy verges on magic.” On the other hand, metaphors can be limiting: they discourage understanding the true nature of a new object or concept, and they prevent us from seeing better ways of doing things. In The Anti-Mac Interface, the authors mention an early tractor design that was steered using reins: “the tractor was steered by pulling on the appropriate rein, both reins were loosened to go forward and pulled back to stop, and pulling back harder on the reins caused the tractor to back up.”
I wanted to put the question out to everyone: do you use spatial organization on your computer? Why or why not?
In the last couple months, I’ve been writing a lot of Python code, and damn, I’m getting addicted. I’ve always enjoyed Python, but there were a few minor syntax issues that bugged me (NOT the indentation though). But lately, I’ve gotten over my stylistic qualms, and realized that the language is just so much fun to code in.
One of the things I really appreciate about Python is that it’s a “pay as you go” language in many ways. As a newbie, you don’t have to worry about learning advanced concepts like anonymous functions, generators, or list comprehensions. You don’t really even need to understand object-oriented programming to be productive in Python. Compare that to C# and Java, where you need to understand OO and generics before you have a fighting chance.
Many of the standard libraries take the same approach — they have a really low barrier to entry, but you can dig deeper if you need to. For example, writing unit tests is as simple as creating a subclass of unittest.TestCase, adding a test method, and calling unittest.main(). A grand total of three lines of overhead to turn a chunk of code into a test suite (four if you count the import statement).
I called this “pay as you go”, but I guess it’s really just “make easy things easy, and hard things possible”. I think both of these are excellent design goals for almost any piece of software. Usually, I just want to get something done. I don’t want to spend hours or days wrapping my brain around “The <such-and-such> Way of Doing Things”. Especially with programming languages and APIs, I want working code as quickly as possible. I may have to tweak it later; that’s fine. Just don’t be the annoying record store clerk who insists on “educating me”, when all I want is a Lionel Richie single.
I was cruising around over on the Mozilla Labs site, and found a cool proposal about how to make it easier to keep track of tabs in Firefox. Chromatabs associates a specific colour with each site, and then colours all the tabs from that site in the same colour, which lets you use your innate ability to recognize colour (for most of us, anyways) to easily distinguish between the tabs.
This reminded me of an idea I had a long time ago — let’s call it cubist thumbnails. In Picasso’s Violin and Grapes, he represents a violin using its characteristic forms, but without painting the entire object itself. We see the curves and immediately recognize it as a violin even though it’s only fragments of a violin.

In the same way, my idea is to capture the essence of a web page in a small thumbnail. Instead of a snapshot of the page itself, a cubist thumbnail would be an abstract icon containing the characteristic colours and forms of a web page. For example:

Compare these to screenshots of the same pages:

I think it’s much easier to identify the sites using the first set of icons.
For text, it would be possible to do a similar thing by identifying the most common words phrases used on the text, with a focus on ones that are particular to that document, kind of like Amazon’s Statistically Improbable Phrases. Slashdot might be “nerds news matters microsoft linux cmdrtaco”.