January 21, 2010

Collaboration with New Super Mario

I've been playing Mario for a long, long time (i.e., decades). I've been playing it on Wii with my daughters (now 5 and 10) for a year, and until last month, it was always an exercise in patience. Only one person played at a time, and you we spent more time watching than actually playing. Actually, this is how video game playing has been for 30 years.

So, while collaborative game playing is not new, and I don't even think there is anything in particular here that is new, I was stunned by just how good Nintendo put it all together with New Super Mario. It isn't just that we are all playing at the same time, but that the designers have put together so many modes of game play in a seamless way that is equally attractive to a 5 year old and a 45 year old. It supports exploration, goals, collecting points, collaboration, and competition equally. But the killer thing is that it supports these 5 modes at the same time in the same interface. There aren't 5 different ways to launch the game. There is one, and you just choose how to play. In fact, at any given moment, we are often playing several modes simultaneously, or dynamically switching between modes, or one person is doing one thing and the others are doing another.

Aside from the sheer number of hours we have played (and continue to play), I judge its success based on our volume. The three of us end a game-playing session exhausted, excited, and a bit hoarse - because we have been yelling so much.

There are too many details to go into just why this all works so well, but here are a few examples from the 5 modes:
  • Exploration: Wander around, poke at things and see what happens.
  • Goal-driven: Complete as many worlds as possible.
  • Collecting points: Get as many points, big gold coins, or powers saved up as possible.
  • Collaboration: Bounce on each others head to bounce higher, do a super ground pound (a synchronous maneuver), or wait for someone to finish before moving forward.
  • Competition: Push each other off the edge, grab a power rather than share it.
They also nailed the screen sharing issue. The essential problem in collaborative games is that everyone looks at the same screen. The traditional solution is a split screen - where one player sees where they are in the world on one side of the screen and the other players sees something else. This isn't really collaboration - this is competitive, simultaneous separate play.

New Super Mario, on the other hand, places everyone (up to 4 characters) in a single world. You all move and bounce around in the same space. If the characters wander apart from each other, the world automatically zooms out so everyone is still visible - up to a point. There is a maximum zoom out level after which the lead player (right-most player since this is a left-right side scrolling game) implicitly owns the visible area. The last player (left-most character) gets dragged along. If they get dragged into a hole or something else bad, they die.

Actually, they don't die - when someone does something that would normally result in dying, they go in a bubble (i.e. "ahhhh - daddy, I'm in a bubble"). After a few seconds the character floats around the screen in a bubble and they can be revived by one of the other characters bumping into them - up to 5 lives, after which you really die and you have to wait for everyone to die (or bubble), at which point that world starts over. Again, a combination of approaches that brilliantly encourages collaboration without requiring it.

There is a lot of verbal communication going on to support all of these modes - which is part of the reason it is so fun. I'm looking forward to finishing dinner tonight just so we can go play. I haven't heard enjoyed a game this much since Asteroids in 1980 - when we played one at a time, but the social element was in going to a gaming parlor.


January 18, 2010

My PIM (Part II)

I recently posted my approach to managing notes and various bits of my personal information (i.e., Personal Information Management). I had some requests to go a bit deeper, so here's a bit more.

Email The biggest trick about managing personal information is to spend more time on frequent tasks, and less time on infrequent tasks (actually, this is a design guideline for all UI). So, what do I do a lot with email? I read incoming stuff and answer it. What do I do infrequently? I search for old email. Simple, but true analysis. So, rule #1: don't spend time filing email. Yes, it must be findable somehow, but it doesn't have to be easy to find. It has to be fast to get rid of so you can go on to the next thing. GMail figured this out with fast searching and making archiving everything the default. But I find that most Outlook users don't do this - they often still laboriously file individual emails into specific folders just in case they want to find it later. What a waste of time! Outlook has fast searching too. So, here's the trick:

Turn off auto-archiving, and then just press the delete key. I store everything in the Deleted Items folders. Then, once a year, I dump it all into a .pst (archive) file. That's it. Sure, towards the end of the year, my Deleted Items folder might have 20,000 messages in it, but who cares. I can search in a second or three, and that's good enough. I've been doing this for 10 years, and have 10 .pst files. But guess what, I almost never open up any but the previous year. And when I do, they are around and easy to open and search (as long as I continue to use Outlook, but that's another story).

Ok, dumping email into a folder is simple, but that isn't good enough for files - which I actually do manually organize with some attention. Effective hierarchy structures are difficult because research has shown that people don't remember them perfectly. The issue is that the context for storage is often different than the context for retrieval. Thus, there is pretty much guaranteed no perfect solution, but you've got to do something. So, pick something semantically meaningful - and make sure it isn't too big, or you lose stuff. This latter point is key, so let's start there.

At each level of my file hierarchy, I only keep relatively active stuff. Then, when a folder starts getting old, I create a sub folder called "zzz Old Stuff" (so it gets sorted at the bottom), and just move things I haven't used recently in there. This way, I never have to throw things out (just in case...), everything stays in it's semantically coherent place, and I only have active things visible at any given time. This, by the way, was my practical solution to an idea I worked on some years ago with Bongshin Lee (called Favorite Folders) - but that never went any where as a practical UI.

I don't think the actual folder structure I use is likely to be that helpful to others. It is highly idiosyncratic based on my own evaluation of frequency and importance. That being said, here are a few key elements.
  • Ben - personal stuff, distinguished from work
  • one directory per major project or collaborator. For some big ones, this becomes the root of a multi-level hierarchy
  • Dissertations
  • Papers (brings together final copies of everything I published)
  • Other's Papers (becoming less important with digital libraries, but where I store important papers from other people)
  • Proposals (separate from the actual work because proposal writing is a different ask, and I regularly need to refer to other proposals when working here)
  • Talks (slides, etc. for talks. Again, different than the actual work on a project for the same reason as Proposals)
  • Conferences (related to service, organizing, etc.)
  • Reviews (where I store reviews of other's papers, etc., so I have an easy place to go back when a revision comes in, etc.)
Managing pictures used to be a nightmare, but as with the lessons above, there are two key things I've learned. They must be fast to store because otherwise I won't do it. Storage must be in a future-proof manner as operating systems and photo management tools just don't stand the test of time. But folder names, hierarchies, and JPEGs do. So here's my simple solution.

Create one folder per year, and inside each of those, create one folder per month labeled so they get alphabetically sorted (i.e., "01 - January", "02 - February", etc.) Then drop all pictures by the month they were taken into the right folder (which you can easily do in bulk every month or three). If there is an event with a larger number of pictures that feels like it is worth organizing, then create a subfolder for that event, and give it a meaningful name.

Finally, whatever software I am using to look at the photos, I never, ever, ever, use that software's proprietary mechanism to store metadata in the photos. Else, it is pretty much guaranteed to not stand the test of time. Instead, I just put everything in the filename of the photo. So, for the past few years, I've been using Picasa. Rather than storing comments or using tags, I just rename the file (one key). Then, any future search system (including Picasa's) work's great. This doubles as a mechanism for letting me access my photos across all of my computers (synced by Live Sync) without loss of information.

This is why I will never, ever use Apple's iPhoto. It is lock-in of the worst kind. It sucks all of your photos in, ignores the originals, and puts all info in a proprietary database that cant' be shared across folders. Completely worthless to me, no matter how nice the interface is.

Meeting Notes, etc.:
This is the toughest category. I've gone through many iterations from my own NoteLens and other flat systems (such as the Notational Velocity I am now using). But I've found that flat organizational systems just don't scale up for me. And I'm not willing to use my regular file system as it is just too much overhead to find the right place, launch the right app, etc. There are many other tools that people use, but for the past year, I have just been using Microsoft OneNote. I hate it's proprietary file format, but the files do sync across computers fine so I can edit on any of my computers. And the UI can't be beat. It offers a beautiful combination of simple text along with figures, notes, imported docs, and fast global search. Plus, it has a nice two-level hierarchy baked into the UI (see below). I'd be much happier if the data was text-backed and there were other UIs (especially on the Mac!) available to access it, but it works well for me know.


January 13, 2010

My Personal Information Management

Update 1/18/10: This is the first part of a two part post.

Organizing one's personal information can be amazingly complicated, especially if you want fast and light weight access to commonly used information, and you access information across devices and operating systems. It is even trickier if you want to future-proof yourself so you can access all of your information in the future as well. I have tried many solutions including Outlook Notes, OneNote, my own NoteLens, and EverNote. However, I think I have a solution that works for me (based on this solution by dougist) - at least for my basic unstructured stuff. And the solution is both simple (relying on the most basic of storage systems - a folder of text files) and complex (relying on multiple syncing services and end-user UIs). Note that even though I still use Windows a fair amount, I run it in a VM on a mac, so this software is all Mac, but of course since the data is all text files, everything is also accessible on the PC side. Here it goes:
  • Everything is stored as individual text files in a single folder. Sure, I lose fancy formatting and images, but I get guaranteed future-proofness, I don't waste time formatting, and it turns out that I don't really need images. And tagging is supported if I wanted to add a bit of structure.
  • I use Microsoft's free peer-to-peer Live Sync cross-computer cross-operating system syncing solution. I've tried the others (SugarSync is unreliable, and DropBox requires all the synced files to be under one directory - ugh!). Live Sync is fast and reliable. I love it. (Although I got mad at Microsoft when they didn't update it for Snow Leopard for 2 months).
  • I use my buddy Jesse Grosjean's free SimpleText program to sync the text files to a free Google-based web service that he runs. Note that this has one flaw which is that it sends stuff up to the web whenever there is a change, but only pulls stuff down when you sync manually - so one option I am considering is to use it on one computer, and then use my existing Live Sync solution to sync those files across all my desktops (while I wait for Jesse to add auto sync down from the cloud.
  • I use Jesse's WriteRoom for iPhone app ($5) to sync those files to my iPhone and access them there.
  • I use Jesse's WriteRoom for Mac app ($25) for full screen, distraction-free text editing.
  • I use the open source Notational Velocity program on Mac (which is remarkably similar to my earlier NoteLens app)
  • I was able to export my notes out of EverNote as HTML, and then used the freely available HTMLAsText (for Windows) to convert to text. (I wanted to like EverNote - it has a great feature list, but in practice, it didn't work for me. The UI was too heavyweight, layout changed between operating systems which was a nightmare, the UI was quite different between operating systems which was annoying, and I didn't like the Windows UI which had a weird scrollbar, and made a vertical list of all the notes rather than a notebox that just displayed a single note).
Update 1/15/2010: Some other bits - I use xmarks to sync my bookmarks and passwords across computers (and VMs). This coupled with Firefox's master password to protect passwords is crucial - it means I no longer have to manually save passwords. Coupled with Firefox's fantastic URL bar with one-click bookmarking, my webpage re-finding is dramatically better (direct comparison to Safari and Chrome upcoming - but firefox definitely wins).

I also use Microsoft OneNote for my meeting notes (with the data synced across computers with Live Sync). This makes me uncomfortable because it is Windows only and the data is totally locked in to OneNote. But the UI for note-taking that combines very flexible formatting of notes along with images, embedded files (like PDFs) and ink (when I occasionally use a tablet) make it unmatched - so far.

Notational Velocity UI
(Note: screen capture and annotation with Skitch)


Making Information Visualization work

Information Visualization is all about helping users develop insight. It isn't enough to show beautiful and amazing pictures - even interactive ones. The key, as with all interfaces, is to think about specifically what tasks a user will be able to perform with the tool. Yet, all too many visualizations fail on this most important and fundamental test.

Stephen Few (of Perceptual Edge) wrote a beautiful 10 page report on this issue - critically analyzing a visually simple visualization by Ben Fry of healthcare spending (see pie chart above). The key is that it doesn't actually enable you to learn anything. He then goes on to create an interface that actually does enable you to discover all sorts of things. The new interface is not simple. Well, each component is simple, but there are lots of components and it may take a minute to figure them out. But no more than that, and then you discover that it is conceptually simple, and you can actually use it.

Here are the take-home lessons from the article - but go and read it - it is well worth it.
  1. 2-D position and the lengths of simple objects such as bars encode quantitative values in ways that are easy to perceive; angles and areas do not, and therefore should be used only when you can’t use better means.
  2. We cannot build a picture in our heads of a pattern that is formed by multiple values (such as the average cost of healthcare for patients of each age from 1 to 79 years old) by looking at one value at a time.
  3. Lines do a good job of showing the pattern formed by a set of values across a continuous range such as patients’ ages, and do so in a way that allows us to compare patterns when multiple data sets are represented at once (such as one line per disease).
  4. Multiple graphs shown together are often a better solution than a single graph, especially when several variables are involved.
  5. Several simultaneous views of the same data set, each showing the data from a different perspective, make it possible to see relationships that can’t be seen from one perspective only or from viewing different perspectives independently.
  6. The ability to easily fi lter out data that doesn’t concern


January 6, 2010

Microsoft Live Sync vs. SugarSync (Live Sync wins)

I've been a long term advocate of file syncing software. It keeps all of my personal files in sync across my 3 computers (2 desktops and a laptop), even going across operating systems (windows and mac). But over the last few months, I have been doing a shootout between Microsoft Live Sync (free) and SugarSync (pay).

I had used, loved and evangelized Live Sync for years - since before it was a Microsoft product (they acquired "FolderShare" from ByteTaxi in 2006, I think). But when Snow Leopard came out for Mac, Sync just didn't work. There was very little response from Microsoft and no ETA for a fix. After waiting a few weeks and growing increasingly desperate, I looked at several other solutions.

One popular one is DropBox, but it has a design showstopper for me. Everything that gets synced has to be in a special folder that gets synced. That isn't the way I work. I want to keep my current file system and choose which subfolders get synced to what, so DropBox was out.

The other major competitor is SugarSync. It lets me control what and where I sync and it has a nice UI. There is one major annoyance which is that it isn't peer-to-peer (like Live Sync). It syncs to the cloud, so all your files sit on their servers. This adds backup and safety, and lets you sync between computers that aren't on at the same time. But you lose privacy, and you eat up their cloud-based disk space - and you have to pay for that. I pay $5/month for 30 GB. Not too bad, but annoying since I am forced to pay for a feature that I don't even want. But I had no choice, so for the last few months, I've been living with SugarSync.

However, that experiment was a failure. I *wanted* to like it, especially since the user experience was quite nice. However, the service was just unreliable. At least a half dozen times over a period of a few months, the synchronization would stop. It would get blocked on some file and I had to go through their technical support to fix it. I'd have to delete some cached files, or they would jiggle something on their server, and in a day or two, we would get it working again. But it kept happening. Sometimes it was a result of me making a configuration change (i.e., reinstalling an operating system), and sometimes it just happened. In addition, when it got into this bad state, it would sometimes replicate files and I would find several versions of a file one machine - ugh.

Fortunately, Microsoft came through and after two months, they posted a solid version of Live Sync for Snow Leopard, and I switched back. It is working beautifully. It is free. It is fast (since it doesn't go through the cloud). And I don't have to give my files to someone else's cloud.

Go Microsoft. In this battle, you are the clear winner.