Getting started with LDAP can be quite daunting. In the space of a weekend, I took myself on a bit of a crash course to learn about LDAP so that I could work on a project that needed LDAP to access an address book. Here are some of the things I learned along the way:
Over the weekend, I attended microformatsDevCamp here in San Francisco. It was a chance for a bunch of people who are interested in microformats to get together and hack on some projects that used microformats to Do Cool Things. I ended up being the instigator of one of the projects we worked on, because I had a concrete “system” in mind that would leverage microformats to meet a real need.
The project was to create a web service that would scrape URLs and pull out any content marked up in hCard content (e.g. my contact page) and would then load that content into an LDAP directory. The reason for this is that most Address Book/Contact applications can plug into an LDAP directory to populate their details, so this would provide a direct pipe between client-side contact storage and web-based, decentralized information. The web service would periodically check the URLs it knew about for updates and update LDAP appropriately. If people update their hCard-based information, the LDAP directory would automatically pick up that change and update itself. I’ve talked about this idea before.
Building (or even tinkering with) this system required that we learned about LDAP, and as it turned out, none of us knew much more than the very basic concepts involved with LDAP, so we had a lot of learning to do. I’m putting together a list of LDAP basics that I’ll publish once they’re straightened out a bit. In the meantime, a specifically big thank you to Tantek for organizing ufDevCamp, to Stephen Weber for working with me on the LDAP/code side of things (and showing me how to get started on github.com, and to Mark Ng for setting up an OpenLDAP server for us to play with, and for helping figure out some of the configuration options etc required to get it all working.
I was talking to Blake the other day about Plaxo, and about how the need it tried to fill (keeping everyone’s contact details up to date) was a valid one, but that it really didn’t live up to that goal. That got me thinking about how a big hole in the distribution of contact details was that you couldn’t “subscribe” to a vCard (contact details) in the same way that you can to an iCal (event/calendar details). Let’s fix that.
I’m imagining an online service (perhaps even just a WordPress plugin?) where you can set up URLs that point to either vCards that are online, or web pages that contain hCards. The system would then periodically (daily?) parse those URLs and load the details into a local cache/database.
The contents of the local cache would be exposed via an LDAP directory, allowing you to connect products such as the Apple Address Book to that directory. Those details would automatically be up-to-date, based on the last time their source URLs were parsed.
This would effectively eliminiate part of the need for services like Plaxo, and would give each person control over their contact information. Ideally the requests could be authenticated so that people sharing their contact details could control their distribution. With DiSo on the way, this would be hot.