Address Books: Incentive, Finally, But Still No Sync

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

When I graduated from high school way back in the foggy mists of time, a family friend gifted me with a rather nice leather address book / planner. For a few of the months following graduation and my arrival at Williams, I dutifully maintained the planner, keeping it abreast of room changes, school changes, personal phone lines and the like. The result, of course, was a bewildering array of scratched out numbers and addresses. To the younger readers in the audience, incomprehensible as it may seem to you, I arrived at college before cell phones, email (you’d be less happy with email if you had to use Pine), and IM (unless you count ntalk) were popular and/or available. Yes, there was a time without all of the above.

Eventually, of course, I gave up. The incentive for maintaining my de facto directory was always low, given the relatively modest circle of contacts I maintained at the time, but I was also aware of the inescapable truth that the contact information was largely superfluous. If I needed to contact someone, I could always get the information somehow, and the overhead associated with maintaining current contact information was further burdened by the likelihood that the information would have changed before I had a chance to use it.

Towards the end of my tenure, with email becoming more mainstream and the internet taking its first wobbly steps towards becoming the phenomenon that it is today (I still remember carryin a slip of paper with the 26 character URI for ESPN’s “SportsZone” written on it), I was again presented with the opportunity to collect and fix all of my contact information, this time in digital form. For a period time, then, my Yahoo Mail address book was what we in the industry might call the data source of record for email addresses, phone numbers, and so on.

Those efforts also, inevitably, failed. Email addresses were always changing, the web forms were unwieldy and non-responsive, and, again, the incentive was lacking. Apart from a few abortive attempts to standardize work contact information on Outlook address books in the ensuing years, I haven’t really tried to maintain in any organized fashion my personal rolodex. The problem, as always, has been one of incentive.

The few potential solutions to this problem that I’ve seen have struck me as either unimpressive or downright offensive (Plaxo’s checkered history comes to mind). Rather than attack the problem in systematic fashion, then, I’ve long since resigned myself to looking up what I needed to know via my email provider’s search mechanism: inefficient it may be, but it works, and most importantly requires zero effort on my part. The effort required to keep my contacts list up-to-date simply doesn’t outweigh the incremental cost of the individual lookups I do each day. Particularly give that the tools of choice here have improved incrementally over the years; my current mail clients Gmail and Zimbra, as an example, will autocomplete not just addresses in your contacts database, but anyone that’s emailed. What’s the payoff for the ongoing chore of keeping my contacts list current, then?

All of this may be poised to change, however, with the introduction of GrandCentral. While I’ll write more about the service later (meant to the other day but the Murdock hiring got in the way), I found it interesting that I was sufficiently motivated to import my address book from Gmail this past weekend and manually update the listings with the latest and greatest numbers that I have. This wasn’t like me, as an unrepentant address book skeptic. Considering the motivation more closely, the incentive became obvious: if I took the time to input the contact information that I had for family and friends, I could reap significant benefits. They’d be presented with different messages, for one, but more importantly I can route their calls differently. Are you on the friends list? Great, you can ring through on weekends, the middle of the night or whenever. Work? Sorry, you’re going to voicemail if it’s not work hours. And you don’t get to hear Elvis Perkins or M. Ward or Pearl Jam or whatever else I choose to play while you’re waiting to be connected because that wouldn’t be “professional.” Not in one of the above groups? Well, you may not even be able to ring through during the workday at all. This, in short, is what I call incentive: finally, after better than a decade of address books that failed to compel my attention and devotion, I may have found something worth maintaining.

Tim O’Reilly, in fact, chose to highlight just this aspect of GrandCentral in his piece “The Web 2.0 Address Book May Have Arrived.” Note the significance: GrandCentral is a hugely transformative telephony service, but the title focuses on the address book. Interesting, I think.

Not least because he’s not the only one looking for an address book solution. Ian, whom you may remember from Monday’s events, has been looking for an API for his default address book, Gmail. He says in part:

When are we going to get an API for our Gmail contacts?

Like scads of other people, I use Gmail as my primary mail “client” these days, and that means I want things like email autocomplete to work, which means Gmail has to know about my contacts (or at least their email addresses).

After discussing precisely this problem at the Denver Tech Meetup the other night, Jabber’s Joe Hildebrand informed me that the solution was right in front of us: an XMPP roster request. While I wasn’t able to immediately get the bit of Python code he sent me subsequently working (it just hangs on me, Joe), knowing him and his skill level I’ve got no doubt that he’s correct.

But that’s only half the battle; the last mile is, in my personal opinion, going to be a bitch. As James has noted previously, the real difficulty – as anyone familiar with PDA address or calendar synchronization products can attest – lies in trying to keep multiple datasources in sync with each other. Let’s assume for the sake of argument that I’m based on Gmail or Google Apps as my primary email/calendaring client. The good news is, as Joe noted, that there is an API for my contacts via the magic of XMPP. The bad news is that I still have to do the hard work of porting that information over to GrandCentral – not to mention the recently launched 37Signals Highrise product which I’m looking at. And how am I to keep them in sync, if I update a record in one area?

Can’t think of an easy solution, personally. The inherent difficulty of the problem is one of the reasons I tend to be bullish on projects like Funambol: synchronization has tended, in the past, to be a disease afflicting only the power user. But as telephony services and social networks and email systems increasingly drive into the mainstream, I think it’s a problem that a volume audience is likely to have in some form. I’m sure there will be a sizable population of folks that were about as interested in maintaining their contact info as I have been traditionally, but I think the incentives will eventually win out.

A long while back Alex and Adam Tow (former Newton developer) and I were discussing the traditional Apple approach of splitting the individual contact, calendar, etc stores up into individual repositories, each accessible by a variety of applications. Seems to me that Web 2.0 is going to be forced – like it or not – to adopt a similar approach.

Put another way, Tim could very well be right that GrandCentral will be the de facto Web 2.0 address book – it’s certainly got the incentive portion of the equation squared away. But that’s not going to help me when I’m in Gmail, or Exchange, or Highrise, or Notes, or Salesforce, or Scalix, or Zimbra. Assuming that Tim’s right that the Web 2.0 Address Book has arrived, then, I’m just hopeful that the Web 2.0 Address Book Synchronization Service won’t be too far behind.


  1. I’m curious to see where it will go. For all I need it for right now, I do fine with Apple’s Address Book and my Treo. But yes, there are times when it would be great to have something in the Web that would have some interop.

    That said … I kinda liked Pine.

  2. Hm. To troubleshoot:

    1) make sure you call it like this: “python getRoster.py user pass”. That version takes just a username, not a user@host JID, and has the server hardwired. You get what you pay for. 🙂

    1a)Actually, I just called it wrong by passing in user@host, and it hung in an infloop because I wasn’t checking an error code. I bet that’s the issue.

    2) Take out the “, debug=[]” on line 28. This should print copious debug info. Here’s the patch:

    c = xmpp.client.Client(SERVER) #, debug=[])

    Let me know the last thing that gets printed.

    3) Gmail sometimes takes a few seconds to connect, due to TLS handshake.

  3. Geof: ditto, particularly as i move to create an increasing number of SaaS based apps.

    Joe: a big duh on my part – i’d been using the full user@host, rather than just user. my bad – works just fine now, outputting the full Gmail roster. very cool.

    have you made this available anywhere? simple though it may be, i can see it being useful for folks. GrandCentral, for example, could skip the “export to CSV” step and grab directly from Gmail.

  4. Cool, I’m glad it worked. Let me clean it up a bunch, and I’ll post it somewhere. Any feature requests other than docs, error checking, different output formats?

  5. I’ve updated the roster getter. It now does TSV or CSV, prints to files, checks errors, and the like. Get it from http://livefreeordont.com/getRoster.tgz

  6. Greasemonkey works for me to sync Plaxo and Gmail address books. It’s not available “everywhere” but if you have a Firefox browser, it does the trick. As far as a Gmail Address Book API, you’ve got to be clever to find it. I touch upon it on my blog and provide links to the packet data and the application it was learned from.


    The true API has not been developed, but I have been decompiling the code and it’s all there. Groups, and contacts, delete, add and update.

  7. […] there were people attempting to achieve the holy grail of Contact Synchronization here, here and here with Gmail but they all ultimately cannot get around the missing synchronization feature and could […]

Leave a Reply

Your email address will not be published. Required fields are marked *