This weekend the A-Team (Akonadi, not Amarok) gathered in KDAB's office in the heart of Berlin to push the Akonadi PIM storage database to the next level.
On Friday afternoon, after everybody arrived, the meeting started with a series of presentations to get everybody on the same page with respect to progress in various parts of Akonadi.
top (left to right): Tom Albers, Stephen Kelly, Frank Osterfeld, Bernhard Herzog, Ingo Klöcker, Bertjan Broeksema, Till Adam, Thomas McGuire, Kevin Krammer, Volker Krause
bottom: Andras Mantia, Keving Ottens, Sebastian Kügler, Kevin Krammer, Dmitry Ivanov
After the kickoff, Sebastian Kügler demonstrated Lion Mail, which is a Plasma applet displaying emails. Lion Mail is an experimental approach to leveraging the capabilities of the Akonadi PIM data store in the primary workspace interface of the KDE 4 desktop. It displays collections of emails and individual emails on the desktop, dashboard and panel. After this weekend, it's possible to edit aspects of emails (such as flags) directly from the desktop shell, directly load multiple collections in an applet, a number of bugs have been fixed in the handling of multiple collections. The team also worked on making it possilbe to drop and then display remote content on Plasma. This way, it'll be possible to deal with emails and groups of emails as first class objects on the plasma desktop in a natural drag and drop way, and will also pave the way to smooth drag & drop interaction between full email clients based on Akonadi and the plasma shells.
After the presentation of real world uses of Akonadi, the discussion on how to tackle sorting, searching and filtering in Akonadi started and generated the first ideas how to elevate Akonadi to the next level of a powerful and contemporary personal data cache. The design of features such as virtual folders and searching is another area of development and research currently. The SPARQL query language seems to be the most promising tool for this dirty job.
After the discussion Tobias started with the initial preparations to implement that, building on top of the Nepomuk framework as laid out in the past years. Semantic concepts on top of a powerful provider for personal data look like a sensible way to make it possible for users to deal with an increasing amount of data and increasing complexity of its nature.
Stephen Kelly has been working on an abstract representation of Akonadi Items (emails, contacts, microblogs, ...) and collections of those to make it possible for application developers to display even complex data structures in easily in end-user applications. Stephen's Akonadi models provide many different types of data, using the model-view-controller pattern to create an abstraction that makes it possible to display complex heterogeneous data structures just using or creating a custom view on top of the models. During the sprint Stephen also polished his presentation for the upcoming Linux Foundation Collaboration Summit, tapping into the experience of his peers in a wholly different area.
Luckily, on Friday night, the Akonadi hackers were left untouched by the customs officers who decided to check the work permits of the personnel in the restaurant the group was dining. Apparently, hacking on Akonadi doesn't need a work permit, as opposed to gate-keeping the bathrooms. After dinner, the group headed back to the KDAB Berlin HQ to continue hacking until late in the night.
On Saturday, the early bird meeting was all about IMAP. Kévin Ottens and Andras Mantia are the brave individuals taking on this humongous task of creating an asynchronous and fast IMAP library as a replacement for the existing Akonadi IMAP resource. The guys silently hacked away for the rest of the sprint and later on Saturday were able to present the first results in the form of listing folders, including encoding funkiness of the IMAP server used for testing the code.
Tom Mailody Man Albers' microblogging Akonadi resource found its way into the KDE PIM module and the core of Akonadi. The microblogging resource retrieves and caches the chit-chat from Identi.ca and Twitter and offers it in the unified Akonadi way to applications. Fetching the data happens in the background, applications get notifications when new items are posted. Shortly after, support for this kind of data hit the (experimental) Plasma Akonadi data engine, making this kind of information easily accessible from (scripted) Plasmoids. Tom also blogged twice from the sprint. These microblogging features are lined up for KDE 4.3 this Summer.
But behold, IMAP is not the only way to get your email into The One and Only PIM Storage! Bertjan took on the mbox format support for Akonadi, keeping in mind the inevitable use case of DVD images sent by email to your local mbox file. At the same time the guys are getting ready for the next generation of users, commonly feared as "Those Who Sent Blueray Images Per Email (To Your Mobile Device)".
Thomas McGuire (the Chuck Norris of email clients) started working on support for POP3. So for the sprint the Race of the Sprint was all about who gets the initial folder listing done first? The results lead us to a coverage for most commonly used ways to suck email into your computer.
Bernhard Herzog, of the long-time KDE and Kolab pillar Intevation showed interesting demos monitoring automatic software packaging using the Debian format for deployment client software on end-user machines. The software provides monitoring of automatic builds of the KDE 3 and KDE 4 Enterprise branches of KDE PIM. Additionally it covers the cryptographic plumbing that make the (email) world a safer place.
Till and Volker, a.k.a. the Adam and Eve^WKrause of Akonadi acted as the flesh-and-bone interface to The Delphi of Akonadi, patiently answering all kinds of more and less esoteric questions about How it Works and dealing smoothly with their virtual princess.
Ingo Kandalf of KMail Klöcker worked on various issues in the KDE 4 version of the best email client in the world. Among his glorious tasks the proper updating of the date in KMail's listview at midnight. Ingo's work results in an improved representation of the space-time continuum of your mailbox.
Frank Osterfeld and Dmitry Ivanov have been busy bees Feeding the Princess (with RSS) or in buzzword-bingo terms leveraging desktop-wide availability and sharing of XML feeds to raise the level of web-integration and interoperability for home, pro-sumer and enterprise use cases. Dmitry was mostly fixing bugs and writing tests for the Akonadi RSS library and discussed with Frank the work items left to be done for an Akonadi-based Akregator. The feed guys also took a look at the Akregator wishlist at on bugs.kde.org to make sure the design can accomodate all those fancy features people requested. Frank profiled the rss-akonadi library. There is a tool that helps migrating the list of feeds and the RSS articles from Akregator to Akonadi, but it was awfully slow. Frank identified the bottlenecks and fixed at least some of them.
During the sprint, various Berlin-based KDE hackers dropped by and challenged the PIM crowd in either coding or Foosball. Their presence added to an inspiring and open atmosphere.
As we speak (read: write, not 'as you read' -- for clarity's sake), the Dutch Trinity is on their way back from the Capital of Currywurst to the Land of Unreliable and Cursed Upon Railway Systems, looking back at a weekend full of code, receiving and spreading knowledge and face-to-face interaction with their peers. Unfortunately also at not so glorious Foosball matches.
So when will all this land in KDE?, the attentive reader might ask herself. Current plans of porting Kontact to using Akonadi as data store are to have contacts and calendaring in 4.3 in July, and email and feed management in 4.4 next January. Those are surely ambitious plans, but a strong team and some corporate muscle promise a good chance of achieving this task.
The Akonadi team would like to thank both KDAB and the KDE e.V. for hosting and supporting this meeting financially, and thus for generously making this event possible. It has been a tremendously successful meeting in terms of raw code output, transfer of knowledge, community-building and generating new ideas for PIM and the Free Desktop.