Tuesday, August 19, 2008

Funambol Community Showcase #6: Citadel and GroupDAV connectors

August is a great month to catch up on things. I have been behind on Community Showcases and here I am presenting two in one single post ;-) Stefano talked to Mathew McBride and asked him a few question. Let me know if you find the Q&A structure more interesting or less.

Q: Your projects are two Funambol connectors: one for GroupDAV and one for Citadel groupware: what problems are solved by these connectors?

A: The first Funambol project I had was the GroupDAV connector. I initially built it for use with the Citadel groupware package, as it uses a common standard (GroupDAV) it works with other servers such as OpenGroupware and now eGroupware. It bridges these servers and the event, task and address database on SyncML clients.

The next project was the Citadel connector, designed to synchronize email between Citadel and a Funambol client. Funambol already has a email connector, however, in the context of a Citadel environment, my opinion is that its over-engineered. It has a core sync engine designed specifically for Citadel, and leverages the Funambol email connector to perform data formatting etc. I should note that Citadel has had native support for Funambol's push email notification system since January of last year, so this connector doesn't require an intermediary component (inbox-listener) to do polling.

I've rolled these and some auxiliary modules into a special "Groupware sync server" distribution for users of Citadel, eGroupware and OpenGroupware, so administrators can install and use this software quickly and easily.

Q: How did you come up with the idea of creating this software?

A: Years ago I had become an enthusiastic PalmOS PDA user. I had upgraded through several PDA's (second hand Palm III's up to a Treo 600). Then I decided it would be neat if I can have a central mail server at home which could store my PIM data as well - which is where Citadel came in. There wasn't a good way to sync between any sort of PDA and Citadel (or some other open source groupware) at the time. Eventually I became aware of Funambol.

Q: What challenges did you encounter and what achievements are you proud of?

A: Programming is still (mostly) a hobby for me, so my expertise has matured greatly over the course of my connector projects. First was an uphill battle to understand the basics of SyncML, and then the Funambol API's.

Eventually people started to try it out and give feedback, it's quite interesting to find how people use the software. I've had some 'brown paper bag' (as in Linus Trovalds) moments when I get bug reports. Once I had a user send me their PIM databases so I could get all the issues they had resolved in one hit - there was quite a few. When it came to reviewing and rewriting the GroupDAV connector last year, I made a big push for quality control - used all the feedback I got and spent quite a bit of time finding and squashing bugs. It's definitely made it a better experience for users.

Q: How would you summarize your experience developing Funambol?

A: I started out back in 2005 where I had a bit of trouble understanding how Funambol worked, at the same time the community has grown and there's a good knowledge base. My understanding of the Funambol system has improved during time, I've also seen efforts from Funambol to improve developer documentation etc. which has helped.

Q: What are the steps that you would suggest to a newbie interested in developing a Funambol connector? What are the mistakes you made in earlier stages of development that you wouldn't repeat, knowing what you do now?

A: See how other people have attempted to solve similar problems, reading over the source of the included Funambol 'foundation' connector can be daunting for a developer starting off, now we have other connectors, from me and others which all have to use the same interface. You can learn a lot from other people, which is the beauty of open source.

Q: What is the roadmap for future versions of the Funambol connector for Citadel?

A: I believe that the connectors are feature complete - as I see them, future versions are driven by user feedback, there will always be something to improve. I'm definitely excited about new phones which are becoming more ubiquitous (iPhone etc.) and flowing into new environments which brings more users with different requirements. There is still functionality such as notes sync which could still be added as well.

Thanks Mathew for your feedback and contribution to our community!!

If you want to know more, here are the links to the project: