Let’s make Akregator hot again!

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)

Akregator (news feed reader of the Kontact suite) was introduced along with KDE 3.4 in 2005 and aficionados of the KDE platform are still using it. However, many other users switched to more convenient web platforms such us Bloglines earlier on, or Google Reader (GReader) lately. Look at these statistics on the GReader devs blog. Ok, it’s not clear what the y-axis in those graphs represents, but still… Unfortunately, Akregator has also been struggling with attracting new users. See this survey from howtogeek.com and you will have a picture of what many geeks choose as they favorite news feed reader. Alas, it’s hard to find a single comment where the Big-G aggregator is not mentioned 🙁 What makes so many readers to favor the Google aggregator?

Well, as usual in the case of Google products, it works fairly well and it has got almost all the features that most users want. In my opinion, there is more, though. The most important feature of GReader is that it’s out there on the web and, no matter where you are, you just need a browser and a Google account to access it. What is wrong with using Google Reader then? First of all, you also need an internet connection to access it and you know, that’s not really everywhere (Notice that since May 2010, the offline feature of Google Reader is no longer available). Second, in terms of comfort, nothing beats a KDE application, with its perfect integration with your desktop, notification system, ability to use quick search features, and so on. Third, if you care about your privacy, the new Google’s privacy policy is definitely not something that can make you happy.

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! 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 krssand 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.

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. 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.

If you also got excited and want to know more, you can check out my wiki where I take notes about the entire project. 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.