Test feeds wanted
Akregator’s new parser backend, libsyndication, is coming along nicely and more and more feeds of the test suite are parsed as expected.
However, to make the parser even better, more real-world test feeds are needed, feeds that I would never think of, feeds that use exotic encodings, (mis-)use the standards in creative ways, or contain additional information that is not covered by Akregator yet: your feeds.
If you have any feed in your feed list that isn’t rendered correctly, or that has some feature supported in other feed readers but not in Akregator, add it here. Exceptions are the well-known missing features, like categories, enclosures and advanced support for author information - these are already supported by libsyndication.
Some good criteria for a feed that would be useful for us:
- the feed has problems with character encoding (special characters or your non-latin script are not displayed correctly), linebreaks and whitespace.
- the feed isn’t rendered correctly in Akregator but Feed Validator doesn’t report errors.
- the feed isn’t rendered correctly in Akregator, Feed Validator reports errors, but the problem exists for a lot of feeds (e.g. because some widely used generator messes it up).
- The feed uses some RSS or Atom extension that you find important enough to be supported in coming Akregator versions.
You can add your test feeds to the Wiki page (preferred), add it here as comment, or send it by mail to the mailing list (no subscription needed).
Qt4/KDE4 build instructions
I promised in my last entry to blog about how to build akregator from trunk.
Well, Thorsten Staerk and Allen Winter already did the work, so I just point you to the KDE3to4 wiki page.
kdebase is optional, you can just skip it (as it doesn’t always build) and go for kdepim directly. See previous blog entry how to build and install akregator.
You might also read README.qt-copy in qt-copy/ to learn how to speed up Qt4 compilation (i.e., don’t build examples and such).
How to re-enable tagging
As mentioned in the last entry, tagging functionality wasn’t finished in time and the UI isn’t yet in a state I want it to be released. So I disabled the vertical “Tags” tab and the “set tags” action by default, adding a hidden config option. If you are using Akregator from SVN, you might have used tagging already and don’t want to lose your tags. You can re-enable the tagging UI elements by editing $KDEHOME/share/config/akregatorrc. Add the following:
[Advanced]
Show Tagging GUI=true
When you start Akregator for the next time, “My Tags” tab and the tagging menu should reappear.
Akregator in freeze for KDE-PIM 3.5
Akregator is in feature and string freeze for KDE-PIM 3.5 now. Unfortunately I haven’t had any time for Akregator development lately and nobody else stepped in, so many features I created buzz about aren’t in there: Tagging functionality (in particular the UI) wasn’t finished in time, so I had to disable it. Same goes for enclosure support: No podcasts in 3.5.
I hope there will be a KDE-PIM 3.6, so can we bring some of the features to our users before KDE4.
So what can you expect for Akregator in 3.5? Vastly improved startup times when you have many feeds, and better performance in general (e.g. selecting “All Feeds” is safe now) . There is an optional text-to-speech toolbar you can use to let the computer speak selected articles. Apart from that, there are several little features and improvements I won’t list in detail now
(gotta update the changelog though).
From october on I will have more time for KDE and Akregator again, so stay tuned
Podcast support in amaroK
amaroK got podcast support! I am still trying to build it from SVN, but it seems I am coming near.
Update: I managed to install it. Now I have a hard time to get the engines running without crashes.
Update 2:It works!
Beagle backend for Akregator
If you are a beagle user, you might find this interesting: Debajyoti Bera is working on an Akregator backend for beagle, so you can search your feeds like any other data source. It works together with all released Akregator versions, but can’t be used with SVN trunk right now, as we changed the backend to metakit. Hopefully there is a way to use metakit from C#…
Atom 1.0
Atom 1.0 is near. I haven’t looked at it yet, so I don’t know the changes compared to Atom 0.3 and how much work it will be to support it. I myself won’t have the time to implement it for 3.5. So I guess it has to wait until 3.5.x if noone else volunteers. And yeah, our parser in general and the Atom part of it in particular needs lots of love and major refactoring…
News from the development labs
After months without releases or news from Akregator, you could have come to the conclusion that nothing is going on in Akregator development. This is far from true, so here is an update on the exciting things going on:
In the last weeks, several new contributors joined us. Eike Hein implemented the delayed mark as read feature, Heinrich Wendel fixed a lot tons of bugs, and our bug tracker manager Eckhart Wörner submitted his first patch (and probably more to come). This is great, as it gives new momentum to Akregator development, after it was slowed down a bit due to lack of developers and their spare time.
A major feature for Akregator 1.5 (released as part of KDE-PIM 3.5) I implemented is “tag folders”, which means you can create tags like “Interesting”, “Funny”, “Programming”, “Basketball”, whatever, and assign them to articles (very similar to tags in Digikam). At the moment, tagging can be done only manually, but automatic tagging by KMail-like filters is planned (Like “if article contains ‘KDE’, assign ‘KDE’ tag”). Here you can see how it looks right now (click the image for the full screenshot):

Related to tagging, Dennis Nienhüser is experimenting with text classification tools like bayes filters and the like, to filter articles for the stuff the user finds interesting. Another use for classification would be to suggest tags for articles based on similarity to the already tagged articles. We plan to plug in several classification libs via DCOP and look how they work for our purposes. Who knows, maybe we even get something working for KDE-PIM 3.5.
Last but not least, RSS 2.0 enclosures are now supported by the backend, so you can expect at least very basic support for podcasts soon. Showing them attachment-like will be easy, but I am not sure if we get more sophisticated support implemented until feature freeze (August, 1st). If you want to help here, dear reader, you are of course invited to join us
Converting KNewsTicker feeds to OPML
Kevin Deldycke wrote a python script you can use to export your KNewsTicker to OPML. Just run the script and import the created file to Akregator via File->Import Feeds. The script depends on pyxml. Thanks Kevin!
Metakit archive progress
The new and configurable archive makes progress - a few days ago I merged it to CVS HEAD. Now we use metakit and load article content only when needed, not everything on startup as it was before.
The old and dumb archive simply stored articles as RSS and parsed and loaded everything into memory on startup. You probably say “Oh my!”, and you’re right. Well, checkout CVS HEAD and feel the speed. Berkus has measured the startup times for his ~31000 articles archive, and the improvement is quite impressive: From 45 seconds down to 2.6 seconds. Also, memory usage should be reduced significantly (I don’t have exact figures here though).
The new plugin-based architecture also makes it easy to support other archive backends, for instance it should be rather easy to support DB servers like Postgres, or synchronize feeds with an archive repository on the web. The latter would be a good way to share your feed archive between Akregator installations, it would be even possible to code an Akregator web frontend to access your feeds from any machine (volunteers are welcome
).
So if you’re annoyed by startup times, be a brave man or woman and give CVS HEAD a try
Handbook poetry
I just started to fill the handbook with some content (documenting the configuration dialog).
I encourage all of you to do the same. Go and discover the (doc) writer in yourself
lockergnome lovin
always good to see some akregator lovin from the good folks at lockergnome.
thanks matt.
Handbook
As the KDE 3.4 branch is created and we can’t do much about it anymore except fixing show stoppers, it’s time to think about the next steps. I created a wiki page where I listed what to do next. Feel free to modify and comment.
The archive redesign is one thing, another important task is writing a Akregator handbook. As we mention the handbook in our about page, it’s embarrassing not to have one.
I brainstormed and created a first draft (only structure, no content yet) in the wiki. If we want it included in 3.4.1, we should hurry. Choose a chapter and start to write
Storage progress
As I looked through the code, I decided not to touch anything but article archive for now. There’s a lot of interdependancies there, and actually neither feeds.opml nor sites.xml are a bottleneck, it’s the archive that is. I’m porting article archive to use Akregator::Backend::Storage now, then for KDE 4 we will slowly port feeds and intervalmanager to work through Storage too, so the main library will be storage-agnostic and well suited for general libakregator, that will be then fancier to use in other apps like knewsticker.
So far the storage api is as simple as open/get article archive/update article(s)/commit/close.
One another nasty thing that gets me is slow article list building for feed groups - click All Feeds and wait two minutes while Akr crawls through all archives building full list, there should be some limit on how many articles from each subfeed to use.
There She Lives
Berkus just commited the first files into the make_it_fly branch of akregator.
CVS commit by karchebny:
* Added our private copy of MetaKit (nice to meet you Sqlite guys!)
* Added startup measuring to feedlist.cpp (now on my feedlist akregator
takes as much as 28.673s to start up, half a minute that is; i want this number
down to not over 1.5s, thank you)
I must say, this is a worthy goal, and has been bugging me for a while as well.
standalone tarballs (beta10)
So we finally got a blog. As development is discussed mostly on IRC instead on the mailing lists, there was really a need for a way to inform interested users (devels as well
what’s going on. And you can read it conveniently in Akregator, you don’t even have to get off your ass. Isn’t that great?
As you may know, beta9 is out - unfortunately only as part of KDE(-PIM) 3.4 Beta2. To please (and get feedback from) users who are not willing to install KDE beta releases, we should provide a standalone tarball for KDE 3.3 soon.
Since the code is now spread over different directories and even modules, it’s more work now to release a standalone tarball (ripping libkdepim, adjusting Makefile.am’s, including translations etc.). If nobody else volunteers, I will do that on wednesday and we hopefully get the baby released until the weekend.
Btw, the title is not a typo. I suggest we call the baby 1.0 Beta10, as some bugs were fixed since “Keinstein” was tagged.
Going for a MetaKit
Okay, after enough fiddling we decided to keep as much as possible info in feeds.opml for interchangeability between user’s KDE installations (just copy feeds.opml over to new machine and have all your feeds set up) and to store archive data in a MetaKit binary storage. With MetaKit’s lazy loading and flexible data structure it should be a breeze. Now I’m wrapping rather “funnily” written library into libkmetakit, and probably we’ll push it hard enough to reach kdelibs/kdesupport at some point (so that other KDE apps can use it freely).
I dream of pushing sqlite to the single place in kdesupport too, but *sigh* it requires lots of interaction between developers…
Markdown format for writing posts described [here](http://puku.conted.ox.ac.uk/help.php?file=markdown.html)
Archive Redesign
We had a nice chat on redesigning the article archive system of akregator as it is currently slow for things such as startup.
Result of the Chat: We’re going to change from a XML-based system (we basically currently store the article archive as RSS feeds) to a binary format. If that still isn’t performance effective, we’re going to use an embeddable database such as MetaKit or SQLite.
We put some more thoughts up on the wiki: here
just a little whine and whoa!
Okay, so I whined to Frank today that my startup time is killingly slow. The net effect of this was:
* we got skype chat with all devels
* installed wiki on site
* installed this blog on site
* got first draft for improving archive storage backend (you may find it in wiki, its linked from the HomePage)
Pretty neat for a little whine…