announcing whoisi

I’d like to announce the general availability of a project that I’ve been working on in my spare time for the last few months: whoisi.com.

As a disclaimer please note that this project is not related to the work that I do at Mozilla nor is it endorsed by my employer in any way. It’s a completely independent project.

If I had to describe it in one sentence I would describe it as a site that lets you easily keep track of what your friends are doing on the Internet via RSS feeds – but with some twists.

First and foremost the site is organized around people. Everyone has an entry that gives an overview of what they are doing on the internet – weblog posts, flickr photos, etc. But that entry is created entirely like a wiki. Anyone can edit anything. If you notice that your friend’s entry is missing a twitter account or a flickr account you can add them. No asking them to sign up for yet another fracking account somewhere. It’s entirely up to the follower to manage their friend’s entries.

This flips the usual model of the social networking site on its head. It’s up to followers to keep track of their friends and the accounts they happen to have. I tend to say that most social networking sites these days are organized around accounts instead of people, and tend to have all of the pain that requiring accounts creates – you have to convince your friends to participate and set up accounts, remember another password and then they have to come to the site often. It’s a system that creates winners and losers because there’s only so much attention available in the world. Whoisi tries to avoid that whole problem by using a different model. In this sense, whoisi is very different. And is really an experiment. I have no idea if people will like this model or not or how they will react to it.

A screenshot from the everyone page.

I currently use the site to keep track of 309 people, which adds up to 728 feeds in total. That includes flickr accounts, twitter accounts and web feeds. Imagine what that would look like in a feed reader. Totally insane, right? But not with this site. I can keep up with what’s going on without it being a completely overwhelming experience. And not one of those people was required to create an account for me to keep up with what they are doing.

So let’s take a quick walk through the site and its main features.

Wiki-like editing

Nat Friedman’s entry in edit mode.

I think that one of the most powerful features of the site is the fact that anyone can edit anything. Anyone can add another site under a name, anyone can remove a site that someone else has added that’s wrong and anyone can add aliases and group information to any entry.

I got sick of discovering friends on various sites by accident and having to add them. The knowledge of where people have accounts is stuck in too many people’s heads and this is just a tool to move that information into the world. For those of us who lead pretty public lives and interact with a lot of other people who do the same and post a lot of different places, this can be very handy. In this sense it’s a single source for your and your friend’s online personal profile and no need to have that person create an account.

The flip side of this is that the site is open to defacement or people adding entries that you might not have expected. Wikipedia has the same problem. On the defacement front, I’m collecting history data so that I can provide history for a particular person and it should make it easy to undo damage created by would-be vandals. I just haven’t added the History link to a person yet.

On the privacy front things are a little bit more tricky. I’ve had some pretty strong reactions to this site by people who were very surprised to find their information collected in one place. I don’t actually think that whoisi is any worse or better than Google in this sense, except that it does make some things a little more convenient. Search that’s centered around people and their activities is one thing that whoisi enables. I’m not entirely sure how to balance that against privacy concerns. But I’m open to ideas on this front and how to manage privacy better. Right now it largely punts on the issue and assumes that public information is public information.

It’s important to realize that one of my design goals with whoisi was to deal entirely with public data. There’s no way to add password-protected feeds or hidden feeds. They have to be as public as any search would reveal. It’s just gathered around people instead of activities. A different noun than what Google searches on.

One click to follow

Searching for Thomas Hawk

One of my design goals was to let people using the site to stay as anonymous as possible. To this end, there’s no requirement that you make an account before you start following people.

If you search for someone and you want to follow them just click on the little “Follow Person” next to their name. That’s it. The information is referenced with a cookie and no other sign-up is required. No need to sign up for an account you need to delete later. If you want to remove your association with the site, just remove cookies for whoisi.com from your browser.

If you need a link to log in later to the site from another computer, there’s a link on the right hand navigation that will provide the links needed to do so. I suggest that you mail them to yourself. (People already have email accounts – why should I require that they sign up for another one?)

No account required

As per the previous entry about following people, there’s no account required. Much like wikipedia, it’s possible to edit any entry. To this end, it’s driven using CAPTCHAs and that’s it.

Also like Wikipedia, I collect and log information about changes and the originator, including source IP information and will expose that information in history logs. It’s just a feature that I haven’t added yet. But the data is being collected.

To allow people to take the role of curators, I will probably allow people and editors to self-identify if they choose in the future. But that’s down the road. For now it’s about the barrier to entry and being a public resource. And not requiring accounts feels like a big part of that.

Time-based following

I have a strong distaste for classic RSS readers. They are cluttered and have odd workflow, largely based around the original 3-pane design of mail readers. People aren’t Inboxes. People that don’t post very often take up as much room in the interface as those who do post often. That combined with the mail-like read/unread status often drives people like me to RSS bankruptcy. That’s why the following interface on whoisi is time-based. Originally seen as part of Mugshot and now more recently with FriendFeed, time based interfaces are all the rage. And for good reason – they work well.

As I said earlier I follow more than 300 people on the site and I usually look at it a few times a day. I can scan through what’s going on very quickly, ignore stuff that doesn’t look interesting and then move on. The amount of time that I have to spend scanning through what other people are doing on the web (a big part of my day job, as a matter of fact) is vastly reduced. I’m much more effective with whoisi than without.

Aliases and groups

One of the things that annoys me about just about every social networking site that’s out there is that there’s always a gold rush to get nicknames and urls. Whoisi takes a different approach. It lets you define multiple names for someone.

These can be other versions of the same name like “Chris Blizzard” vs. “Christopher Blizzard” above but it can also be short nicknames used on various networks. Above I have “mozilla:blizzard” defined. This is because I use the nickname “blizzard” on Mozilla’s IRC server. The fact that it’s just a pair of text strings separated by a colon means it’s really flexible and extensible to just about any group you want.

Whoisi’s search is also aware of this when you search using the search box. For example, if I search for “blizzard” on the site, the search knows to look on the right hand side of the colon to pick out a username or nickname. You can also search for “mozilla:blizzard” or any other network:nickname combination that you want. A very useful feature that I haven’t seen other places and something I’ve always wanted.

This also leads to an interesting side effect. We now have ad-hoc groups. Want to find everyone who is associated with Mozilla? Search for “mozilla:” without anything on the right hand side of the colon. Or “gnome:“. You will get everyone who has a mozilla: as part of their alias. This is a pretty underdeveloped part of the site and something that has a lot of potential.

You also might notice that I have an entry above that just says “@fisl2008″. This is me just playing with events. One thing I’ve always wanted is the ability to say “I’m going to be at this event and I would love to see others who are doing the same.” In this sense it’s like saying “I was @ FISL 2008.”

I would love to have a system that lets me see who is going to show up at FISL 2008 (like my example above) or GUADEC 2008 (I just added an @guadec2008 alias to my name, actually.) From there it would be great if I had a way to keep track and see what was going on – where people are meeting, what they are thinking, and I had a way to expose that to conference organizers or participants. Once again, it’s all ad-hoc and self-organizing and a very early thought. But it’s neat if you can do this with very simple systems. Another thing to look into down the road.

Everything is a tiny url

Lots of people use tiny urls to share information on twitter and other networks. It’s convenient to have a small URL to paste. So if you’re viewing something through the follow interface everything has a tinyurl you can reference. For text links it’s the little link that says something like “26 minutes ago” and for images it’s the link for the image itself. (I couldn’t find a clean way to do tiny urls for images that didn’t involve an ugly link for every image so every image is a tiny url.)

One of the big complaints that people have about tiny urls is that they don’t convey much information. And too many innocent people are being Rick Rolled. There’s an API that lets you look up a tiny url and get information of the target. (Here’s a sample script that calls the API.) I imagine that people could write extensions that could look up the target if you saw a whoisi tiny link on a page. All tiny links start with http://whoisi.com/l/HEXID – very easy to identify.

Small, fast page loads

Minus the JS that the site uses, which should be cached after the first load, pages on the site are very small. The home page is 1.5k. The follow page is 10k. Pages for individual people range from 6-8k in size. I wanted small fast page loads which is one of the reasons why the site is so incredibly simple and text-based.

It also means that at least for viewing that the site works very well for mobile phones. (Editing right now is pretty AJAX-heavy and I don’t have cgi-based fallbacks in place yet so editing from anything other than an iPhone is dicey at best.) I’m hoping to have more interfaces for mobile in place, including an iPhone interface at some point. I use it from my T-Mobile sidekick all the time and people have told me that it works very well on their iPhones.

Another reason that the site looks the way that it does is that I’m a huge fan of simplicity and good use of negative space. The data should stand on its own and boxing and colors should not detract from what the real focus of the site is – what people are doing.

Open API

I’m a pretty big believer in Open Data. To that end one of my rules for this site is going to be that if there’s information that anyone explicitly adds to the site, they should be able to extract it and use it for any purpose they want. So one of the APIs that I have in place lets you extract the entire person and site database. (Here’s a sample script that does just that.) After all, I have no idea how long this experiment will last, and neither do you.

The APIs aren’t documented yet, but how they work should be very easy to decipher from the test scripts and the JSON-encoded output. Also, if you pass in something wrong the server will return an inelegant 500 code as opposed to useful error text. I’m not lazy – just busy.

As another example, here’s another script that will extract information for a single person based on their ID. And another one that will map urls you run across to entries in the database. (Note that the last script doesn’t work in every case yet because of feed services like feedburner that generate redirects so the final url that you might see in your browser isn’t the one that actually exists in my database. I plan to fix this by following those redirects at some point to make this a more useful service.)

But that’s just a taste of what I would like to do with the API. I think that taking this open approach will make the service more useful to people over the long run and might let people do things I’ve never even dreamed of. I believe that the best way to help people and learn about what people really want out of a site like this is to let go. The web survives on the oxygen of open data. It’s a fundamental component of the web’s success and deeply affected my thinking in building this site.

Supported sites

The number of sites that are supported by whoisi right now is actually pathetically small. I support flickr, picasa, twitter, linkedin and then any generic rss or atom feed. Those sites represent the vast majority of what my friends use. I plan on expanding that to include things like amazon (for wishlists), pownce and a bunch of other stuff like digg and reddit if those make sense. I would also like to know what other people would like to see on the site. Something that would enhance their experience instead of making it too noisy. That’s going to be a delicate balance.

Note that I’ve actually seen people add del.icio.us and last.fm links. They are just RSS feeds. And they work pretty well. They show up on the everyone page from time to time. Feel free to add them if you want. When it comes time to add support for them I’ll convert them to something that looks decent.

RSS Feeds

I haven’t added them. And I’m not sure what form they should take yet. Should you be able to get an RSS feed for everyone you’re following? How about for a specific person’s complete feed? Here’s the problem. If you want an RSS feed for a specific person, why not get it from them directly? I’m not adding much value by acting as a middle man in this respect. In fact, it could be argued that I’m removing value since those people might lose statistical information that they are gathering.

I’m pretty happy being the place that keeps track of where you can find people but tracking them using RSS might still be best done with RSS from that site. If someone wants a completely different interface rather than an RSS reader like I do, I think this site does well. But why dis-intermediate people from their audience?

Of course, this is only half my brain speaking on my topic. The other half says I should just add feeds for everything and be done with it. Because it’s really useful for people. So I might just ignore everything I just wrote and set up RSS feeds for people to use. I’m like that. Let me know what you think on the topic. I’m all ears.

Note that I will be adding feeds for “recent changes” to the site. Not necessarily for content, but for new sites and people that have been added. I’m sure that people will find that interesting and that’s specific to the site itself. Really useful.

So what’s next?

Really, that depends on what people do with the site. There’s a bunch of stuff I know needs to be done. History links for individual people. A “recently added” link on the nav bar that shows you recent people that have joined and recent sites that have been added. The Follow page really needs to have sites that are added to people you’re following as part of the flow. And also some tools to make it easier to discover who is on the site that you might be interested. i.e. import my twitter contacts or something like that.

A lot of people would argue that those things should have been done before the site launched. But I’m a real believer in release early, release often. So I thought I should put my cheese out there in the wind and see how people react.

Thanks, and I hope that you find the site as useful as I do.

  1. Ed’s avatar

    I am pretty sure the problem is with my cookies setting, though I tried to allow all cookies from whoisi.com twice now.

  2. rob’s avatar

    This is nice. I’ll be adding all the obscure blogs I follow to it today and then I’ll try and use it for a couple of weeks to see if it can replace my RSS reader.

    Anything we can do to help add support for other sites? I have spare coding time right now, it might be fun.

  3. davin’s avatar

    This is pretty neat man.

  4. Jared’s avatar

    I Have to tell you, This is the single most brilliant innovation in web 2.0 I have seen yet! I feel like you read my mind!

    Leave it to a Mozilla developer –

    Thank You!!!!

  5. nicerobot’s avatar

    First, nice. Love the simplicity.

    Re: RSS

    A history/changelog feed. Would also like an OPML upload and download feature. The obvious combined feed.

    Re: Login Later

    “It’s strongly suggested that you copy this link into a piece of email you send to yourself. Don’t share it with anyone else.”

    Why? You’ve effectively created an account for the user (presumably a session that will be destroyed after some period of inactivity?) Give the “accounts” names and you’ve created public groups. Just be sure to track who (IP) adds and removes followers just like you track the history of changes to a person.

    Additionally, instead of hiding the following information in a session id, or in addition to, provide a url with all of ids of who you’re following right in the url. All browsers will support a huge number of followers (MSIE is limited but then those users only get the session id version). Convert ids to based 62, i.e. “1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ” and you’ve reduced the length of the url dramatically. Then use something like tinyurl to get a small version of the huge one. No accounts. And giving the tinyurl to anyone doesn’t affect you personal followers.

    Now, back to feeds, provide this same feature to all feeds. That is, the ability to simply list all the ids for which I want to track their history and they are all combined into a single feed.

    Re: blocking sites

    I understand where Quinn is coming from but I disagree. It’s already possible for anyone to combine Quinn’s public and personal information (if it’s on the web, unprotected, it’s public) into a single site, say on wikipedia. In fact, it may already be available without his knowledge. Point being, the best anyone can do is be diligent with respect to monitoring their net presence and affecting it as best they can.

    Re: abuse

    Tin Foil Hat, see my comment about a changelog feed, it’s part of the solution to abuse. But also, if a person has followers, the followers will not allow vandalism to remain for long. If a person doesn’t have any followers, it doesn’t matter much if they’re vandalized.

    That said, the site definitely will need to way to restore/undo changes, block ip, and even block all changes if vandalism is rampant for a user.

    Re: icons

    Why aren’t all icons displayed? I know for a fact that all the feeds I added have favicon.ico but several don’t appear. e.g. plurk.com, last.fm, del.icio.us, …

  6. Dave Martin’s avatar

    Bravos, Christopher. Very cool.

  7. Chris Sparks’s avatar

    Hi Christopher,

    Looks like a great tool. On IP addresses I haven’t got any profanity for you, but just a thought. There might be problems if you use them to do too much especially using them to identify or block “users”. Last time I used Wikipedia from a PC on my university campus, the Talk page for the “ip” user had three bock warnings for vandalism, and I wouldn’t be surprised if it’s not bee blocked now. (Even most home broadband connections i’ve had before my current one weren’t on a static/individual IP.)

    Of course, I could still edit wikipedia from campus by logging in, but you’re specifically looking to set up logins, it sounds. I don’t have a helpful solution, unfortunately.

  8. Richard D. Worth’s avatar

    Looking forward to some sort of groups feature. In the meantime, one nit:

    I would recommend moving down the captcha link on the “Add another Site” and “Add an Alias” forms. It should be last (like in the “Add person” form) instead of first. Again, awesome awesome site.

  9. Zellyn’s avatar

    How about hooking in Google’s social graph API to auto-suggest related sites? It would speed up entering a new person, at least.

  10. dubek’s avatar

    Looks really nice!

    I’d love to hear some details about the building blocks of the site (choices of technologies/languages/frameworks etc.), if and when you have some time. Thanks!

  11. Marcus’s avatar

    Reminds me of profile page in claimid, but reversed. While claimid allows you to claim which websites are yours, whoisi allows other people to claim which websites/feeds are yours, or seem to be yours.

    Awesome stuff.

    And huge kudos for the extensive use of reCaptchas!

  12. Micah’s avatar

    > Quin, your comments are well-received and I understand where you are
    > coming from. I have a couple of thoughts on that and I’m exploring how
    > to enable that kind of thing. Would it be enough so that you could make
    > sure that a site couldn’t be added to whoisi? Do you have any ideas on
    > how I could make that easier for you?

    What about a robots.txt style convention? At least this would cover proactive bloggers who control their own domain/web server doc root and could add a declaration in a file which (at least ‘law abiding’) aggregation services would honour. There’s a lot a details to think through on this topic, then again no one said life on the interwebs would be easy.

  13. blizzard’s avatar

    Certainly not easy. I was actually thinking of a link with a hash in it so that people could claim sites and that could drive claiming people. It’s not a perfect idea by far, but it’s a good start.

  14. Jeff Schiller’s avatar

    Great great great idea. Let’s hope it scales properly to be useful.

    By the way, it doesn’t like the div’s in my atom feed title elementshttp://blog.codedread.com/feed/atom/ (see http://whoisi.com/p/1701)

  15. Tin Foil Hat’s avatar

    You know, the design of whoisi will force people to check back constantly to maintain their identity. You never know when someone else might slander you.

    Bad for anyone with enemies, great for your future ad impressions!

    In some jurisdictions, you may even find yourself open to lawsuits – in Canada, for instance, site owners are responsible for all content posted about someone else. “I’m just hosting it” isn’t a workable defense.

  16. Michael J Pratt’s avatar

    I really love the concept. Honestly, the implementation confuses me. Without explanation you imply we should add our friends in the field provided to see what they’re doing. So..do I enter their real name or their account name at each service (Say Twitter) I tried it on many of the very prolific Twitterers I am engaged with and nothing came up (@pprlisa [Lisa Dilg] for example) That seems counter to the assertion that you don’t have to get your friends to sign up or have an account. Yes you do. They have to have an account and you need to know it. So, unlike FF where my friends enter all their stuff and I just add them to my stream, I have to go hunting everyone down (and that’s not even working – or I’m a serious noob here!) Since we’re aggregating here, why don’t you let me bring in all my Twitter followees, etc? All this said, I suffer the same problem you describe and I applaud an elegant concept to solve the issue. Once it gets there.

  17. Sam’s avatar

    hmm…. doesn’t really work. I never got one legitimate result some results I got a totally different name than I entered. I tried about 5 different names 4 of which I know have at least 50 social/other accounts under their name, and all had a http://www.theirname.org website, maybe you should scan for those too, and like look for the name in the meta data tags?

  18. blizzard’s avatar

    @Sam: The site doesn’t do any crawling at all. I’m not scanning other sites for info. It’s a repository of human collected knowledge at this point. We’ll probably add some other tools over time that might do that kind of thing, or make it easier, but I like a network of human beings instead of robots. :)

  19. Stephen Paul Weber’s avatar

    Awesome! Some feedback:

    1) Obviously I would love to see the source, not sure how you feel about FLOSS stuff
    2) Would love to see an OpenID login option, for if I’m using multiple computers often.
    3) Huge fan of http://whoisi.com/api/getPersonForURL
    4) Would love to see a “follow” link. Something like:

    http://whoisi.com/follow?url=http://singpolyma.net

    That uses getPersonForURL and asks to follow them if found, otherwise allows user to add new person for URL.

  20. Simon Plenderleith’s avatar

    Fantastic job. I was thinking about building something similar to this last year, but never quite got around to it! I love the emphasis on openness. Excited to see how this develops.

  21. nicerobot’s avatar

    I gotta say, as much as I despise every site wanting to maintain my profile, typing a captcha to accomplish everything on this site is far more frustrating than having to create yet another account.

    I’d far prefer creating an account and doing the captcha once during that process. firefox remembers my username and password automatically so, once registered, I never actually “log in” again. A captcha is like having to manually log in every time I do anything. Additionally, and maybe more importantly, I use passwordmaker.org’s firefox plugin for entering my password on every site that requires one.

    Do I want whoisi to track who i am by asking me 20 questions? Absolutely not. But it would be nice if I could associate a name and password to that automatic account you already create and when logged in, I can avoid all the captchas.

    Optionally, OpenID is (should be) the future of identity (single sign on, web of trust, anyway …). Even associating an OpenID must should still require a captcha but you avoid the necessity of implementing authentication (which far too many sites obviously don’t do well. if I can’t use any characters I want for my password, someone doesn’t understand password strength).

  22. Ken Kennedy’s avatar

    Hm, Chris…I try to add myself, and my urls are showing up associated with someone else. (kenzoid.com associated with Chacha102). I go to that userid, I don’t see my urls to edit and remove them. Eh?

  23. Aza Raskin’s avatar

    Superb thinking. I think this is a concept we can pull into Labs. Well done!

  24. blizzard’s avatar

    I think that duplicate entry problem should be fixed.

  25. Ken Kennedy’s avatar

    Dupes problem appears solved…thanks, Chris!

  26. kortina’s avatar

    This was going to be my first feature request:
    http://www.0xdeadbeef.com/~blizzard/whoisi/api_examples/whoisi_url_lookup.py

    Looks like you’ve already got reverse lookup taken care of–awesome! Great work Chris, looking forward to following this.

  27. blizzard’s avatar

    Sure thing! There’s a lot of work to do to make that reverse lookup thing work better (see in my post) but it’s a good start.

  28. Stephen Paul Weber’s avatar

    Is there a “write” API? Like, to add people/URLs?

  29. David Fretz’s avatar

    Any chance you will support Gallery2 http://gallery.menalto.com/ as a photo feed?

  30. ivo’s avatar

    great work. very inspiring article. do you think this type of anyone-can-edit will end up being a mecca of link-builders?

  31. Richard D. Worth’s avatar

    Would be great to have an icon for ohloh journals. Also, I noticed there seem to be some escaping issues. See http://whoisi.com/p/1467 Thanks again for such an awesome service.

  32. blizzard’s avatar

    I would love to support gallery2. Not sure how to detect it or pick the photos out of the feeds yet.

    As for escaping, I’m over-agressive with escaping right now to avoid XSS attacks. Some titles contain markup and some don’t. But most don’t. Also some people escape < and > on twitter and some don’t. The internet is one big god damn mess. :)

  33. David Levy’s avatar

    Great job Christopher !
    I love the idea and the API :).

    Is there a way to get the content of this page http://whoisi.com/everyone available through the API ?
    As FriendFeed do with its ‘public’ page.

    Thanks !

  34. blizzard’s avatar

    Not yet, but I’m working on it!

· 1 · 2 · 3 ·