Stacking Blocks

by havoc

Two months ago we launched a limited user trial of our Mugshot
prototype, and have learned a lot since then, both about the user
experience and about how to keep the server from falling over. Thanks
to everyone who’s been helping out, we’ve had good comments, advice,
and patches.

On the user experience front we’ve decided to pull together a
number of new features we’ve tried over the last couple months into a new design we’re code-naming the
. This pulls some of the flavor of where I’m at into the
primary Mugshot UI, letting you easily keep track of everything that’s
happening online in your network of friends and interests.

I’m implementing a web-based prototype of the eventual Linux/Windows
client interface right now. You can see the javascript
code here

and server side code here (sorry websvn is so slow).

The goal is to put up an ugly, but usable, web-based prototype
probably sometime next week for people to try. Once we get the basic
interactions about right (and hopefully verify that this direction
makes sense), we’ll do a more web-friendly design and replace
the main Mugshot page with that. We’ll also code the Windows and Linux
desktop versions.

In parallel, we’re investigating server scalability and will be
redoing things as required to spread the load over two servers
(right now we still have only one). The big step is from one to two of
course, from two to four is in principle much simpler. Ideally this
will come together about when we have the new UI.

(Another shorter-term task, Owen is finishing up the improved Firefox support.)

If it all pans out we should have both a better user experience and the
ability to scale up as we add more users – woot.

One effect of the new direction is that Mugshot could
offer a very interesting API, both via web services and over D-Bus/COM to
desktop applications. This API could let you get people’s profile
information including pointers to their stuff on Flickr, YouTube,
blog; list of friends; email addresses; etc. (getting some of this
would require you to be logged in as a friend of the person).
It could also allow apps to get live notifications when things
happen, such as new Flickr photo sets, new links shared, new friends
appearing, new comments on your blog, new songs played, or whatever it is.

We have to focus on our two current goals of implementing the
“stacker” and server scalability basics. This keeps us from fleshing out the API
too much right away, but if there are specific API calls you’d like to
have or experiment with in an app, please let us know.
The other night I added a really lame API
docs page
using introspection (sometime next week you can probably see it on the live site, right
now it’s only in Subversion).

(This post was originally found at

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.