Today I setup my first data Locker, from the lockerproject.org:

A Locker is a container for personal data, which gives the owner the ability to control how it’s protected and shared. It retrieves and consolidates data from multiple sources, to create a single collection of the things you see and do online: the photos you take, the places you visit, the links you share, contact details for the people you communicate with, and much more. It also provides flexible APIs for developers to build rich applications with access to all of this information.

A Locker handles the non-trivial tasks of pulling, normalizing, de-duping, and merging personal data across multiple sources. It also makes it easy to query that cleaned-up data with a neat API.

The guys at Singly (who recently raised $7 million) have open-sourced their underlying software platform, called the Locker Project. The founder, Jeremie Miller (creator of Jabber), gave a great talk about the philosophical motivations behind the Locker Project at the Web 2.0 Summit last year. Coming up in June, they’ll be hosting a hackathon, which I’ll be attending.

The Locker Project and Singly are exciting new initiatives to build pieces of what is becoming known as the Personal Cloud—a set of technologies and services that could transform markets by giving everyday people more leverage. I’m working on a blog post about my recent research into the Personal Cloud and VRM that will be posted at datacosmos.com.

Ok, then, let’s get into the nitty-gritty.

Setting Up My Personal Locker

Installation was pretty painless.

  1. First I forked Locker to my GitHub account and cloned it down to my workspace. GitHub help explains how to do this well.
  2. I needed to install some prerequisites (XCode and the command line tools under Preferences -> Downloads)
  3. Then I followed the quick start.
  4. The make scripts installed most of the dependencies I needed (mongodb, node, npm), but it couldn’t setup ImageMagick. So I found this walkthrough, which worked beautifully.
  5. Then I setup various API keys with all my service providers.
  6. Finally, I ran ./locker, launched http://localhost:8042 and away we went. Easy.

Installing my HelloWorld app

Since the Locker Project is maintained by Singly, their documentation about how to write new apps assumes you have an account with Singly, which I don’t. So it took me a minute to figure out how to install new apps on my local Locker instance. No9 in the #lockerproject IRC channel helped to point me in the right direction.

All I had to do was create my new app directory under /App.  Then I created another directory under /Me that housed my me.json config file. I basically just copied these directories/files from other default app installations and modified various values to suit my HelloWorld app.

I restarted the Locker by killing the mongodb and node processes and re-running > ./locker

Then my app appeared in the default dashboard.

Next Steps

Now, I’m off to build what I’m calling PeepCircle. I’ve wanted a simple way to manage the people I’m meeting at geek networking events. Since everyone has twitter, facebook, and linkedin accounts, having this aggregated/de-duped data will be handy.