Getting Things GNOME! — GSoC review (#0)


Hello again, dear Planet!

This one has been a busy week in both GTG mail­ing list(s) and my lit­tle branch. I have one thing I would like your opin­ion on, which is clearly marked, so you can skip some parts.

You may not know that in the last month GTG lied on the sur­geon table to undergo a huge refac­tor­ing, mostly by Lionel Dri­cot. That made GTG faster and asyn­chro­nous in task load­ing. Just for a mea­sure of the improve­ments, we’ve low­ered the time taken to load 1000 tasks from 40 to less than 30 sec­onds, and we haven’t even started pro­fil­ing yet. The feels way faster than before, and we have low­ered our startup time. We have also gained a strong divi­sion between our core and our UI, which makes it pos­si­ble to write new UIs for GTG (that what Karlo Jez is doing for his GSoc, writ­ing a GTG web ser­vice). KDE UI, anyone?

Last Wednes­day has been declared “Get­ting Bugs Done” day, so we worked in fix­ing all the regres­sions intro­duced in the trunk after the refac­tor­ing. We have now a trunk that can be used nor­mally (if you don’t mind the occa­sional glitch). A few minor bugs are still unre­solved, but the only “big” bug remain­ing is the break­age of the plu­gin API.

Any­way, my branch, which is about hav­ing the sup­port for mul­ti­ple back­ends (Remem­ber the milk, CouchDb (ubun­tuone), lauch­pad, zeit­geist, twit­ter...), has seen a com­plete refac­tor­ing of back­ends load­ing and stor­ing, with the addi­tion of a back­end Fac­tory. We can sup­port mul­ti­ple instances of the same back­end, so right now you can save/load your tasks on mul­ti­ple files at the same time. You can “attach” to each back­end some tags, and the back­end will sync only those (say, you want on your work com­puter only the tasks marked @work).

I’ve also worked on lay­ing out a well doc­u­mented base class that each new back­end should derive, in order to make the cre­ation of new back­ends easier.

The more eye-catching part is that we are cur­rently dis­cussing a mockup for the UI to add and edit back­end. The cur­rent design is this one (Empa­thy inspired). I’d like to hear your opin­ions on that, whether you like it or not.

  • Juan Gar­cia

    Do you mean that all the tasks get loaded into mem­ory?
    Do you have any plans to not need to have all the tasks loaded into mem­ory?
    Do you have any plans to use effi­cient stor­age like SQL (sqlite) instead of a XML file?

  • Juan Gar­cia

    Do you mean that all the tasks get loaded into mem­ory?
    Do you have any plans to not need to have all the tasks loaded into mem­ory?
    Do you have any plans to use effi­cient stor­age like SQL (sqlite) instead of a XML file?

Getting Things GNOME! — GSoC review (#0)


Hello again, dear Planet!

This one has been a busy week in both GTG mail­ing list(s) and my lit­tle branch. I have one thing I would like your opin­ion on, which is clearly marked, so you can skip some parts.

You may not know that in the last month GTG lied on the sur­geon table to undergo a huge refac­tor­ing, mostly by Lionel Dri­cot. That made GTG faster and asyn­chro­nous in task load­ing. Just for a mea­sure of the improve­ments, we’ve low­ered the time taken to load 1000 tasks from 40 to less than 30 sec­onds, and we haven’t even started pro­fil­ing yet. The feels way faster than before, and we have low­ered our startup time. We have also gained a strong divi­sion between our core and our UI, which makes it pos­si­ble to write new UIs for GTG (that what Karlo Jez is doing for his GSoc, writ­ing a GTG web ser­vice). KDE UI, anyone?

Last Wednes­day has been declared “Get­ting Bugs Done” day, so we worked in fix­ing all the regres­sions intro­duced in the trunk after the refac­tor­ing. We have now a trunk that can be used nor­mally (if you don’t mind the occa­sional glitch). A few minor bugs are still unre­solved, but the only “big” bug remain­ing is the break­age of the plu­gin API.

Any­way, my branch, which is about hav­ing the sup­port for mul­ti­ple back­ends (Remem­ber the milk, CouchDb (ubun­tuone), lauch­pad, zeit­geist, twit­ter...), has seen a com­plete refac­tor­ing of back­ends load­ing and stor­ing, with the addi­tion of a back­end Fac­tory. We can sup­port mul­ti­ple instances of the same back­end, so right now you can save/load your tasks on mul­ti­ple files at the same time. You can “attach” to each back­end some tags, and the back­end will sync only those (say, you want on your work com­puter only the tasks marked @work).

I’ve also worked on lay­ing out a well doc­u­mented base class that each new back­end should derive, in order to make the cre­ation of new back­ends easier.

The more eye-catching part is that we are cur­rently dis­cussing a mockup for the UI to add and edit back­end. The cur­rent design is this one (Empa­thy inspired). I’d like to hear your opin­ions on that, whether you like it or not.