Tapioca Project

Tuesday, December 12, 2006

Tapioca API document (finally)

Until now all the serious documentation we had on Tapioca API was that classs diagram.

Now I have managed to do a proper API document (HTML and PDF versions) for it, which will serve as reference for all Tapioca implementations (C/Glib, Qt, C#). It's DocBook generated from AsciiDoc, which allowed me to escape the burden of writing DocBook directly.

At first I was inclined (in fact, almost decided) to write in DocBook, but every single colleague I asked for advice told me horrible and painful stories about writing DocBook documents. One of them highly recommended AsciiDoc and I decided to give it a try. I'm really liking it so far, its tangoish default stylesheet is being very helpful.

Monday, October 16, 2006

From the other world

This might be a bit off topic, but I have been wanting to blog about one of the other projects that I am working on: Syncropated!

Basically Syncropated! is an application for easily synchronizing your media contents with mass storage devices such as the Nokia 770 and MP3 players.

Currently it will find your static playlists from Amarok and Rhythmbox and let you sync these with the mass storage device connected. It then automatically generated pls and m3u playlists on the device which are used by most cheap MP3 players. It also handles replacing playlists gracefully, by making sure that no songs are deleted that might be referred to from another playlist. It also syncs photo albums from Picasa and F-spot support is also planned.

It is my first real Python project, and I am slowly getting my hang of it. Python is nice, though there are some things that I dislike. Anyway, I should probably do a few more Python projects to form my opinion on the language.

Anyway, it you would like to check out Syncropated!, it can be found in Ubuntu universe (edgy) under the name syncropated. Go try it out today!

Porting Landell to Tapioca

As some of you probably have heard, the Tapioca project "merged" with the Telepathy project, in the sense that Tapioca now consists of convenience libraries for working with Telepathy and some extra connection managers and some tools like the Telepathy-Inspector.

Some of you might ask why convenience libraries are needed and why not just use Telepathy directly. Well, actually it is out experience that when using Telepathy we have ended up developing internal convenience libraries in our products and not of the quality that we had hoped for.

To remove this duplication of work and help the KDE Decibel project as well as port the instant messenger Landell to Telepathy, we sad down some time and started designing a nice, usable API for using Telepathy. It is still work in progress, but so far it has been a success.

It really makes sense. Telepathy is designed to provide the features needed to make a instant messenge and VoIP client, while keeping the API small so that it is easier implementing connection managers (like for protocols such as MSN, Jabber, GTalk...). It is also based on DBus which is a cross-platform Inter-process Communication Protocol, which means the API uses raw data structures such as hashes, arrays. This is not really optimal and is thus no longer a problem if you choose to use Tapioca.

Over the last month Renato and I have been porting Landell to use the new Tapioca library. Since we are using C# for the Landell product we were faced with the problem that there was no well-working .NET library for using DBus (which we needed to implement Tapioca# and Telepathy# which it is based on), but luckily Alp Toker took on the task of completing his fully managed DBus (an implementation of DBus only using managed C# code) to the state where it was usable for out needs. Many thanks goes to Alp!

There are still things to be done to Landell, but both me and Renato are currently busy with some other projects. It is coming along just fine though, and I would also like to thank the Tango community for supplying lovely new icons to the project.