On Mon, 12 Mar 2012 12:49:32 +0530 "Sriram ET." <karra.etc@...> wrote:
SE> On Sun, Mar 11, 2012 at 10:11 PM, Brett Presnell <presnell@...:
SE> Just FYI, back in October 2011 Ted Zlatanov <tzz@...> wrote on
>> this list:
>> > I put together some code that uses CouchDB to store Gnus group
>> > subscriptions and marks in gnus-sync.el. It works well; so well in
>> > fact that I'm considering doing the same for BBDB records. Imagine
>> > having your BBDB entirely stored on a central server instead of a
>> > local file. Yes, kind of like LDAP, but not so hard to use and much
>> > more accessible.
>> > In order to do this I will have to generalize and improve the
>> > gnus-sync.el code that talks to CouchDB. But I wanted to first find out
>> > if this interests anyone (and please feel free to tell me my idea
>> > sucks), or if there's existing functionality that I would be
>> > duplicating. I'm not aware of such.
>> There was some further discussion about this and Ted seemed very willing
>> to work further on it, but I'm not sure that it went anywhere. I'm
>> pretty sure that he did say that it was easy to set up a CouchDB server
>> and that it shouldn't be difficult to exchange CouchDB records with
>> other formats.
SE> I feel it is the right direction for BBDB to evolve. More generically, a
SE> good direction appears to be to abstract away the actual store and have
SE> multiple backend implementations similar to Gnus, i.e. have a bbdb-file,
SE> bbdb-couch, bbdb-sqlite, perhaps a bbdb-ldap and so on.
SE> Ted, did you do some work that's happens to be just lying around on your
SE> hard disk?
No, I've been working on other tasks. It's really not complicated,
though, and gnus-sync.el already has much of the glue I would need. The
biggest driver for me is whether others are interested in it. If Brett,
Roland, Sriram, and other may use it, that makes it more likely I will
commit time to it. So now that I know that, I'll prioritize.
With CouchDB, I can easily export individual records from JSON back to
the BBDB vector format. I'll do similar work for file and other
backends. I'll make it possible to use LDAP and SQLite but I wouldn't
use them, personally. LDAP requires a very specific infrastructure and
SQLite would have all the complexity of CouchDB with none of the network
The interesting part is serving the BBDB records out in other formats.
At least for CardDAV it will require more than simple XML records,
unfortunately. I can easily present the records in XML, JSON, CSV...
To start, it would save me a lot of time if I had a function to convert
a BBDB record to alist and then import it back, or a description of the
BBDB schema (what each vector offset represents). Is that already
available? I would guess so... I generally don't know the BBDB insides,
though I will by the end of this project :)