Groupware rant
Why is [[http://en.wikipedia.org/wiki/Groupware|groupware]] so hard to do, especially for a small-scale environment (less than 10 users, lets say). Let me explain.
I typically use my laptop at home and my lab machine at work. Naturally, I like to keep my working environment similar on both my machines. In the same spirit, I would like to be able to access my contact list, my todo’s, my notes, my calendars etc from wherever I am. Now the straight forward way of doing is this the way I do it currently — just shove all shared data under a directory, and then synchronize that directory across machines (I use [[http://www.cis.upenn.edu/~bcpierce/unison/|unison]] currently, but if James cracks it, I might eventually move to something like [[http://tsyncd.sourceforge.net/|Tsync]])
Anyways, this works pretty well actually. But there are a number of small little gripes:
* this method works best if you only work from one machine at a time. At times I forget to shut down my calendar at one place and later when I open my calendar at another place, the subsequent synchronization may get messy (since there might have been pending updates on both ends)
* Infact, for things like events, todos, contact updates — I want them to happen in **real time**. If I have my addressbook open on both machines and I change the contact on one machine, the addressbook on the other machine should automatically update itself
* similar issues with notes, browser bookmarks
Clearly, some kind of server based solution seems necessary (since I’m looking at small user bases, umm that is a //single// user, centralized servers are ok. Enterprises already have distributed systems). Now part of the problem is that parts of the problem are being solved by different people: we have IMAP for email, del.icio.us for bookmarks, tadalist for TODO lists and so on.
However, I want everything in //one// place. Further, I want full control over it — so I need to be able to download and run it as a server on any machine. In 5 years perhaps I’ll be ready for “all my data on the web somewhere”, but not yet. So I went ahead and tried a lot of different groupware solutions out there. My main resource was the [[http://kontact.kde.org|Kontact]] [[http://kontact.org/groupwareservers.php|support groupware servers]] page. I’ll briefly mention the two I tried:
* [[http://www.opengroupware.org/|OpenGroupware.org]] — this one looked promising but turned out to be overly complicated to install and manage, even for me. The Kontact connector was not working at the time I tried. I don’t know the current status, but it was just //so// hard to even get started with.
* [[http://www.egroupware.org/|eGroupware]] — this was one that actually worked for me. I could synchronize my addressbook, notes and calendars with ease. However, one **big** problem: it uses XML-RPC for communication, and not something designed with groupware in mind (such as [[http://www.groupdav.org/|GroupDAV]]). So basically what happens is that everytime I make a change, a //HUGE// XML file is fetched from the server, updated locally and then sent back remotely. I found it to be extremely time consuming, and waste of resources. There were other minor quirks — since the data model used by Kontact (vCards and ICS etc) is different from the datamodel in eGroupware (some database schemas), a lot of information is lost/can not be maintained. For instance, all of KAddressbook’s nice integration with Kopete will break down because I can’t store photographs or IM screen names in eGroupware.
There are a couple of more interesting options out there: one is the [[http://www.hula-project.org/Hula_Project|Hula Project]] and the other is the [[http://citadel.org/|Citadel]] project. Hoola is interesting because its a mature product, backed by Novell, and a very nice web frontend. Citadel is interesting because it stores data natively in vCard and ICS formats, thus avoiding the data model mismatch problem faced by other groupware suites. However, Hoola uses its own IMAP server and doesn’t support [[http://groupdav.org|GroupDAV]] yet. Citadel has the concept of “rooms” and is really meant for community use.
So, basically I’m back to using Unison to keep my files in sync. In some ways I think its actually a good solution, since it works for all kinds of files. But still, I don’t like having to quit all my applications before I leave for school just so that the applications can start in a clean state when I get back. If the files get updated when the apps are running, apart from email, everything else (calendar, todo, contacts) behaves in a weird manner.
have you tried KOLAB ?
Downloaded it. But never really installed it. Too many dependencies, too much pain. It packages its own imap server and what not. Too cumbersome.