14 January 2009

Redesign Feedback

There was a lot of feedback to my last post about a rewrite/redesign of Liferea. Practically everyone agrees with the performance problems to be the top priority and most of you believe that a rewrite is the way to go.

Current ideas include further improving the UI code to simpler and conceptually clean GObject implementations (suggested by Arnold Noronha) and redesigning the Liferea core to use a task handling solving the performance issues as implemented by GTask (suggested by Christian Hergert).

Several commentors mentioned a missing general plugin system for easy extensibility. It may be that such a plugin system might motivate the one or the other to hack some quick add-on and might get more advanced users interested in doing things with Liferea.

For everyone who contacted me via blog/chat/mail: Let's wait till coming sunday to gather all feedback and then make some plans. I plan to collect everyones topics of interest so we can make a list and organize appropriately.


Anonymous said...

Sounds good.

Plugins a very important to keep the core small.

Attachments and Comments should be rather plugins than default features (for example).

Christian Hergert said...


I'll have an example core hacked up this weekend for peer-review. I wont be hurt if its never used, but I think it will serve as a good example of what the core could look like.

I have taken into account the rich plugin framework, gobject, gtask, memory consumption, and feed count scalability.

A quick mockup of the idea can be found here.

My plan is to use Bdb for storage initially. I'm certainly open to other ideas, however I have specific reasons for not using sqlite.

* Schema skew as the implementation changes
* Query time (its not *that* bad, but all queries have to be parsed and turned into opcodes, then executed)
* Most distros ship single threaded sqlite

None of those problems exist when i serialize gobjects to json and store them in bdb, so thats my current plan.

The object names are using my prototype name, "Marina". We can regex this all later if we plan on using it.


-- Christian

Anonymous said...


Have you see other feed reader internal mechanism ? If they use sqlite or other lib ?

Example : http://www.vienna-rss.org use Sqlite.

Anonymous said...

Got quiet again. Where is the discussion going on?

Lars said...

@anonymous: Don't fear! Momentum is not lost. We currently have some concept discussion. As I understand Christian Hergert is doing some implementation of an alternative core. Right now I myself do try to finish the issues preventing 1.6.

I promise to blog some more on everything!

Anonymous said...

Is there yet any new repository/branch for Liferea rewrite?

Not much going on on the mailing list, so I am wondering..

Lars said...

@Anonymous: There is no new branch yet. Right now there is a bigger code cleanup going on (mostly driven by Adrian Bunk) and I'm trying to finish the open issues on 1.6. But once this is all done there will be a new branch!

Anonymous said...

seen this? http://audidude.com/blog/?p=79

Lars said...

@Anonymous: Yep, we do. If you look a bit up in the comments you see a post from Christian himself. We are already in contact per email and discussed his ideas.