Activity Ideas

From Mugshot Developer Wiki

Jump to: navigation, search

On this page, we keep ideas that could fit in to Mugshot but nobody is working on yet. You could start one of these, or you're welcome to join an existing activity if you find an exciting one. Some activity ideas specific to particular parts of the code can also be found on the pages for the Server, Linux Client, and Windows Client.

To get one of these ideas rolling, create a page for it and write up what you're working on first, keep your page updated, maybe blog about progress; pretty soon you might find other people want to join in. Or if you know people in real life outside the Internet (crazy, we know), you might get together with them for some brainstorming, research, or pair programming.

We want to keep this page "edited" and fairly clean to read, so if you want to discuss an idea, just start an activity around it - the wiki doesn't bite. You need not plan to implement, if you write up your solid brainstorming or research that's something others can build on. Create an activity with research as the goal. As always, we prefer using some design tools rather than lots of debate and speculation.

If you create an activity around one of these items be sure to link to it from this page.

Also, try to put bugs and really small tweaks in bugzilla and reserve this page for more fun and open ended ideas.

And now the good stuff ...

Contents

Improve Family Photo Sharing

Next step: Definition

We did some minimal observation of friends and family sharing photos (baby pictures, vacation shots, things of that nature), and some initial prototypes. We pretty much crashed and burned, but here's an entry about what we learned and there probably is some cool stuff to do in this area. An idea we had is a magic shared photo screensaver that just peer-to-peer syncs among a group of family or friends. But research and brainstorming would probably reveal many more possibilities.

Export Mugshot via Web Services

Next step: Definition

There are lots of possibilities here, since we haven't done a lot yet.

Simple steps include various RSS feeds, and simply making public/anonymously-browseable information available in machine-readable form. But it would be good to go through the design process, think about who would use the APIs and prototype what some of the clusters of related APIs and the documentation for them might be like.

There are also harder APIs to offer. To build a site like Mugshot, you have to do a lot of boring stuff; account creation, invitations, groups, friend relationships, user profiles, etc. It'd be sweet if people could build sites that simply used the existing Mugshot information. The challenge (as noted on the API page) is that we can't just export the whole people/friends/groups database to the Internet, since there's private information there. But there are approaches to this, e.g. Flickr has one model to look at.

Tune the Site to Personal Tastes

Next step: Definition

Right now everyone sees the same "recent links," "recent songs," etc. in Music Radar and Web Swarm. Donald has done some work with a library called Taste to tune this a little bit, and try to increase the chances people like what they see.

We have a proposed feature called Love and Hate Quips that would let people in one step write a comment about a song or site while giving thumbs-up or thumbs-down; this could feed into the equation for what to show someone.

Don't take for granted we should always show people things they'll like. What about "anti-recommendations"? A way to see "stuff and people I will hate"? A way to see "things I wouldn't normally look at"? Do we need to display "why was I recommended this" sort of like Amazon? How does that fit in to the site?

Generate more ideas, do some research, prototype some of the options, see what you can come up with.

Mac OS X Client

We have a cross-platform library for talking to our XMPP server, and frontends for Linux and Windows. But there's no Mac version. Should the Mac version have the same basic features and interface as the other versions? How should it be different for the Mac platform? What technologies should it be built on?

Mac Client Development Setup has some potentially useful notes on getting started on implementation. You'll also want to read the Client Code Overview when you get to the implementation phase.

Progress is underway on this activity at Mac OS X Client.

Anti-Recommendations

Next step: Definition

It might be fun, in addition to "stuff you might like," to show people "stuff you probably hate" - just at the bottom of the sidebar or something.

Inspired by this blog post (though I disagree with the post, it gave me this idea): http://www.roughtype.com/archives/2006/02/the_new_narciss.php

Could work will with the Love and Hate Quips stuff.

Help / Info Space

Next step: Definition

Would be good to have a place for common questions and answers and Learn More links. Not a developer zone, but a place for people to get answers to 'How do I create a group' kind of thing. This could be another wiki or something simpler.

Group Music Widget

Next step: Definition

Would be nice to have an equivalent of the "music radar" flash embed for groups instead of individual people. This could go on group pages or be embedded on blogs and MySpace just like the current personal music embed.

Invitations Through IM

Sending invites through email is slow and kind of impersonal. Although there are a number of spam bots that trick people into downloading links it's fairly obvious when you're in conversation that your friend on IM is in fact your friend. It would be great to be able to chat over IM and then give someone an invite link to the system directly or have the invite link sent through IM.

Hush Button

Sometimes you want to be productive even when your anti-productivity tools don't want you to. Thus we need to have a 'Hush' or 'Shut the hell up' button. This could be accessible from the client icon or maybe related to share pop-ups, especially the ones with chat messages embedded as often times you're not interested and the chat messages continually appear. So as to keep people from being completely unaware of happenings we can still animate the tray icon as activity happens.

Development of this activity is underway and described at Hush Button.

Anonymous Access

In a previous blog entry we talked about enabling anonymous access to using the site. The ideas were something along the lines of how craigslist handles anonymous users such that we could provide a lightweight method (with out the account or client) for people to interact with the site. This plays into our plans for web only access as well.

Web Only Access

Many people are in the circumstance where they cannot install software on their computer, either a workplace rule or they don't have the proper admin access. To help those people it would be good to investigate the possibility of a web only system. Allowing those people to access shares and swarms via a normal web browser.

CC radio

(from James Morris) - If somone is listening to a song under an appropriate cc license, then when you click on it, it's streamed to you as well.

And, you can watch another persons music. i.e. you hear what they hear if it's a cc song, so you have a kind of mesh of radio stations where people can be djs and have group chats attached to their streams. This could probably be applied to Podcasts as well.

Background Image

What's your desktop background image look like? How about your friends? Wouldn't it be cool to show off your background image on mugshot so other people could see it. Give the URL for where you got it from so they could use it too.

Picture Trees

Next step: Definition

Collaborative drawing based on a user's original picture. Users may upload drawings or make one on their own. Other users can modify the drawings. Then, another user can chose either to modify the original drawing, or a derrivation of it. Perhaps a photo collage feature.

Friend Activity Summary

In the Web Swarm chat, we show some information about what songs people are currently listening to. It might be fun to have more information spread throughout the site about what people you know have been up to lately: links they shared or viewed or chatted about, songs they have listened to, etc. This could be surfaced in different places -- say the "Your Friends" view on your main page, or on their profile page, or when viewing a group that they're in, or in the client software whenever their name comes up.

Deleting/Retracting Content

Right now most of the content in the site is fire-and-forget -- there's no way for users to retract a shared link or remove songs from their play history. It would be useful to offer these capabilities, but it requires some thinking about the impact of other users in the system -- if someone shared a link and then retracts the share, what happens if I try to visit the shared link? What happens if I'm already chatting at the shared link?

Additional Music Providers

Mugshot currently works with the iTunes, Rhapsody, and Yahoo! Music Engine online music services.

There are a variety of additional commercial and non-commercial music services and applications that Mugshot could be extended to work with. Examples are Napster, BBC 6, and last.fm.

A lot of the infrastructure is already there thanks to Yahoo's Audio Search web services which give download URLs for songs at multiple service providers. Trickier is figuring out how to keep track of songs played by a user.

Rhapsody offers per-user Listening History Feeds, which we use to keep track of song play history. There has also been some discussion of scraping play history from the local Rhapsody client cache.

Audioscrobbler offers per-user track play feeds similar to the Rhapsody Listening History Feeds, and could be supported through a simple adaptation of the Rhapsody support code.

Jamendo is a site focused on Creative Commons licensed music. It has web APIs that could be useful in hooking it up to Mugshot. Creative Commons music is a pretty interesting front, since it would allow many user experiences that aren't possible with DRM-protected music from the major online services -- such as "stream this song from user X to user Y in real time right now."

Live Playlists

The Music Radar feature currently tracks songs played in applications like iTunes, Yahoo! Music Engine, and Rhapsody. But right now it's a read-only operation. It might be interesting to automatically create "live" playlists right in the applications themselves, and populate them with songs:

  • Recently listened to by my friends
  • Most played by my friends this month
  • Songs that became popular among the "State University" group in the last 2 weeks

Figuring out how to handle songs the user doesn't already have access to -- ignore them? offer to let them purchase them? -- will require some smart design.

One advantage of creating playlists this way would be that the user can take some of their social context on the road, by syncing the playlist to their iPod or other portable music player.

Upcoming Music Events

It would be interesting to display tailored information about when certain artists are coming to your town. Talk about enabling a live social experience!

Sites like upcoming.org, EVDB, Zvents, last.fm (via audioscrobbler, last three feeds are my events, friends events, and system recommended events) and others have iCalendar and RSS event feeds that might serve as a source of data.

Perhaps when you play a song of an artist that is having a concert near by we can bubble up a link that takes you to the concert information page for that show. You can then forward that link to friends to let them know about the concert and Swarm around the page.

Special Link Handling

We've experimented with special case handling for some types of URLs. For example:

  • Shared Amazon product pages can include the current price of the item and the product photo in the share notification
  • Shared eBay listings can include the current price and photo from eBay.
  • Shared Flickr photo sets can include the photo set thumbnail in the share notification

There's already a generic framework for calling out to public web services for more information about a URL in the server.formatters Java package.

Some ideas:

  • Make the Amazon, eBay, Flickr shares lay out better or pull more salient information
  • Special formatting shares at other popular sites -- IMDB, Wikipedia, Google Maps, Yahoo Maps, Zagat's...
  • Alexa has information about most sites on the Internet, available through public web services APIs, which might be interesting to surface in some way

Group Feeds

Enable people to create a group that's a "companion" to another web site or set of web sites. Perhaps RSS feeds can be added and each feed item automatically becomes a Mugshot share? Chat about stuff as it shows up on a site such as boingboing.net for example.

Update: This has been implemented!

Group Updates

Each group has a persistent chat associated with it, but right now the feature is invisible and unused. (To try it, go to the group's page and click Join Chat. Note that nobody else is in the chat. Here is the problem.) If people could somehow see when a conversation started up in the group chat, or when someone else joined it, then the feature might be useful.

Update: This has been implemented!

Group Gardening

As groups have more stuff associated with them (description, name, shared links, RSS feeds, chat, ...) and groups get larger, there will need to be community mechanisms to keep them "cleaned up" (perhaps on the wiki model - you can see who changed what, and change it back?). Explore this area.

Live in Someone Else's Shoes

It might be neat to be able to "live in someone else's shoes for a day" on Mugshot. For example, if I could sign up to get all of the public notifications sent to one of my friends, or a veteran mugshot user, it might help me get a feel for the system better. It could avoid the "cold start" problem where a new user doesn't know anyone and is not in any groups, hence gets no notifications.

Another take on this is to offer an option like "clone this user's settings" -- e.g. automatically set me as a follower to all of the public groups they're in, maybe add all of their friends as my friends. Would have to figure out whether this is 'by reference' or 'by value', e.g. whether their changes would propogate to me or if it's a one time clone-and-fork. After this functionality is in place, it might make sense to have a few standard prototypical accounts that users could choose between. It's possible that these accounts could be automatically or semiautomatically mined by looking at the current set of users and their subscriptions (for example, if 500 users are all members to the same 20 groups, then create a user prototype those 20 groups).

A third take is to allow others to set up your account for you -- we already have a hint of this in our support for suggesting groups along with new user invitations, and inviting users to join or follow groups. Maybe we could extend this so that you can suggest friends for a user, suggest a bio for a user, etc.

Gettings Mugshot Comments Back to the Bloggers (Trackback)

Mugshot comments currently exist in their own little world (the mugshot client). For regular sorts of web sites, this makes sense, but many of the links swarmed to are actually blog posts that have the trackback facility. By posting mugshot comments to a URL and tracking that URL back to the blog, mugshot comments could "close the loop" and get back to the blogger. This would make web swarming a bit more interesting, and would raise awareness about mugshot in general.

Rethink Mugshot User Home Page As a Social Summary Report

Right now, a user's Mugshot home page has a lot of screen real estate devoted to things that aren't particularly informative. For example, a large chunk of space is taken up by what song the user is currently playing - one would assume that the user already knows that. There are about 9 lines of new information: 3 recent web swarms, 3 recent songs played by friends, and the 3 most played songs on Mugshot today. None of this really provides a reason for going to the web page. Perhaps instead the page could have the most recent swarms from all one's friends (the link and description plus maybe a snippet of the first couple comments). If friends have blog recent blog posts, those should be pulled as well. In this way, the Mugshot homepage can be a quick way of ascertaining what is going on in one's social circle. It also gives people a reason to not have friends - too many friends will lead to a crowded page. Since Mugshot is unique both in its interest in leveraging outside resources and in that it has a desktop client, how the user home page is used should reflect that. It should be a useful tool - a way of figuring out if one needs to get in touch with anyone, and a way of seeing a quick summary of what one's friends have been up to. The desktop client only serves to deal with messages as they arrive - a web page can be used for longer timelines, and it has a lot more screen real estate to leverage. A successful home page will help a user figure out who in fact is going out for drinks that night, or less ambitiously, see what friends have added to their blogs/flickr streams/facebook page.

I wonder how close the stacker interface goes toward achieving this goal. We don't yet have a home page that achieves the level of social awareness described at the end of the previous paragraph, but are we getting there? Also, beware of the trouble that facebook ran into when the first introduced the public information feeds.

Shared calendaring

A key feature for mugshot will be some calendar integration. In the uses of Facebook™ I've seen, calendaring is one of the features that helps to keep the community together. One of the great benefits of mugshot is that it's integrated into the desktop environment. This adds some potential for features that beat other social sites, such as event popups, better integration with Evolution/Outlook, IM integration, and perhaps some other things I can't come up with off the top of my head. There's a question about how much to wrap/integrate with other successful web calendars and how much to implement in the mugshot site itself. I leave that for the research phase.

Friend of a Friend (FOAF)

Implement FOAF following the FOAF Specification


Alert about local users (via Avahi)

When another mugshot user connects to your network, the client should let you know about it. This should be doable with Avahi.

Here's a specific use case I have in mind:

  1. Mike is sitting in a cafe with his laptop connected to mugshot
  2. John walks in and connects up
  3. Mike sees that a local mugshot user has plugged in
  4. Mike can then send a link or a chat to John
  5. John buys Mike a cookie (optional)

Accept OpenID authentication, provide OpenID service

Users who already have an OpenID would be able to log in to Mugshot without typing yet another password. Signed in users could opt to use their Mugshot account to sign into other sites implementing the specifications.

Personal tools