Hello KDE fellas!
After a very busy university term, I have finally got myself to write this post about the status of reading RSS/Atom feeds on KDE. Consider this post as if it was written in September 2011, things have been pretty much frozen since then.
The aim of it is:
- updating the KDE community on what is new with news feeds reading in KDE;
- “refactoring” ideas in my mind after a semester of slacking off;
- encouraging people to help making the “feeds reading experience” on KDE cool again! (YES, I AM asking you to join this project)
This leads us to the encouragement that titles this post: let’s make Akregator sexy again and let’s switch back to it! An idea for doing this came up in the last summer, when I was looking for a Season Of KDE project. I was chatting with Jakob Sack (jakobsack) and Robin Appelman (icewind) on the #owncloud channel and they mentioned that a feed reader was one of the most important among the applications missing in ownCloud. If you don’t know what ownCloud is, you should absolutely check it out (http://www.owncloud.org)! Jakob’s and Robin’s idea was not just to create an online feed reader, but something way cooler: bringing Akregator to the cloud. Immediately after this idea came up, I checked it with Frank Osterfeld, the Akregator maintainer (Frank from now on). Since the very first conversation with him, it became clear that there was a fundamental preliminary step to take before bringing Akregator to the cloud. This was a fully working port of Akregator to Akonadi.
Started few years ago, the creation of the Akonadi framework gave fresh nourishment to the development of applications that manage personal information on KDE, i.e., KDEPIM applications. Many components of Kontact, the personal information manager of KDE, greatly benefited of the port to Akonadi with new interest and new features coming to the platform. Unfortunately, one of the components that was left out from this trend was Akregator. The basic reason for this was that Akregator has always had basically only one committed maintainer, Frank (kudos to him!), and not many other developers involved. A partially working port of Akregator to Akonadi eventually happened in 2008-2009, when Frank was joined by Dmitry Ivanov, a GSoC student at that time. You can read more about the amazing job that Dmitry and Frank did in that period in Frank’s post dated July 2009 and Dmitry’s post dated November 2011.
What happened since then? Not much. No earth-shattering changes happened to the code and the port to Akonadi never made it to the master branch of KDE. Again, the reasons are: basically no developers involved and the code that had become very complex, mainly because of two architectural choices. First choice was the decision to use tagging instead of a simple folders tree structure. Second, the choice to write a common resource for all the RSS services and just a sub-instance of it for each individual service (Newsgator, GReader, local). Dmitry’s resource is called krss and it’s in kdepim, branch work/akonadi-ports.
The news is that during SoK 2011, under Frank’s mentorship, I wrote a new Akonadi RSS local resource. It imports information about the feeds from an OPML file, loads the items and store them in Akonadi. You can flag the items as read/unread/important, and organize them in folders. We used many pieces of Dmitry’s code, including the serializer and all the classes that model the basic objects such as feeds or items. We rewrote the basic methods that define the resource from scratch. The code became simpler, although some features are missing in the new resource. It’s also less general, since you can’t extend it easily to any application other then the OPML storage. It works, though, and you can see it in action in the following (mandatory) screenshot :).
You can find the source code in the following repository:
If you want to suggest features, report bugs, or just comment about the resource, feel free to buzz me (zimba12) on Freenode (I am very often in #owncloud and #akregator).
Other encouraging news: Frank wrote a new migrator for the old data (it’s in kde:clones/kdepim-runtime/osterfeld/akregator-migrator) and he fixed some bugs on the Akonadi port of Akregator (it’s in kdepim, branch work/akonadi-ports) while testing it against the new resource.
Finally I believe there can be new excitement around Akregator!
If you also got excited and want to know more, you can check out my wiki where I take notes about the entire project at the following link: http://algorithmsforthekitchen.com/wiki/doku.php?id=sok I use it as scratch paper so the information won’t be much coherent. In case it doesn’t make sense, feel free to ask me questions on chat.
Once again, this IS a call for joining the project and don’t forget the KDE Philosophy: When making a suggestion, change “we should..” to “I will..”.
In the part 2 of this post (stay tuned on planet-kde for it!), I will be talking more about the ownCloud feed reader application on which I am working right now and how this will be integrated to Akregator+Akonadi in the future.