Archive for category Getting Thing GNOME!

Getting things GNOME! is participating in GNOME Outreach Program for Women

If you are eli­gi­ble and you are look­ing for a great sum­mer intern­ship, apply!

The pro­gram is here, projects ideas and moti­va­tion to par­tic­i­pate are in my pre­vi­ous post.

Dead­line is April 8 (I know, I’m ter­ri­bly late).

No Comments

Get paid to FLOSS! Apply for the Google Summer of Code with GNOME and GTG!

Hello fel­low students!

If you like to code and you have no plans for this sum­mer, con­sider apply­ing for the Google Sum­mer of Code with GNOME!

I did that last year, and it is a fan­tas­tic expe­ri­ence for lots of rea­sons. Here’s a few:

  • You work from wher­ever you like, when­ever you like (as long as you Get Things GNOME Done, it’s great)
  • You get paid to con­tribute in a FLOSS project! In three months, you have time to make an impor­tant con­tri­bu­tion too!
  • It looks great on you CV, and your works gets great visibility
  • You get Google’s swag
  • You get to go to GUADEC (the Gnome con­fer­ence), with is an awe­some expe­ri­ence itself!
  • You can fully enjoy almost all August
  • You get to blog on planet Gnome, and show your con­tri­bu­tion to the world
  • You become a bet­ter coder!

Now that I got your atten­tion, have a look at the project ideas for GNOME. These are just ideas, you are free (and encour­aged too) to come up with your idea: if the idea is awe­some, you are more likely to get chosen!

Per­son­ally, I am root­ing for you to come by and help us improve Get­ting Things Gnome. New ideas and great peo­ple are very welcome!

Don’t post­pone, the dead­line is April 8, and a great pro­posal can be writ­ten in just a few hours. You don’t have to have pre­vi­ous expe­ri­ence in FLOSS devel­op­ment (although it helps). If you are not cho­sen, con­sider con­tribut­ing any­way: your next year pro­posal will be great!

Ps: if you have ideas for gtg, talk to me on IRC (GIMPNet/#gtg is our chan­nel, I’m also avail­able on freen­ode as invernizzi)





GTG for old fashioned people

This insom­niac night I’ve added a lit­tle nice thing to Get­ting Things GNOME, which is the pos­si­bil­ity to export and print a to-do list in a Pock­et­Mod for­mat. This is noth­ing more than a lit­tle fold­able book­let, so that you can carry around your gro­cery list with­out need­ing any­thing more tech­no­log­i­cal than a pen (you can also use straw­berry juice to mark your tasks, which is way more recy­clable and a lit­tle gory).

This all comes from a bug reported by Jan Girlich, so kudos to him!

Oblig­a­tory screenshot:

By the way, GTG export plu­gin sup­ports tem­plates, so cre­at­ing your own webpage/pdf/t-shirt with your own tasks is easy. I’ll be glad to help any­one inter­ested in that.


Getting things GNOME and Remember the milk: call for testers!

Aloha planet,

as you may know, Get­ting Things GNOME is a todo-manager soft­ware that, among other things, can syn­chro­nize the things-you-really-should-be-doing-instead-of-reading-this-post with var­i­ous sources.

One of its most pop­u­lar fea­tures is the abil­ity to syn­chro­nize with Remem­ber the Milk.

For the next release of GTG, I’ve writ­ten a new ver­sion of that syn­chro­niza­tion, with fea­tures a vari­ety of nice things. Among those:

  • back­ground sync (set up once and for­get about it)
  • sup­port for RTM recur­rent tasks
  • roll­back­ing of par­tial syncs
  • on-the-fly sync from GTG to RTM

Before releas­ing that, how­ever, I’d like to do have it well tested,  to ensure that no harm is done to your pre­cious todo items, so.. I’m look­ing for testers!

If you have the 5 min­utes nec­es­sary and you’re inter­ested in try­ing new stuff even before it hits a PPA, execute

tar czf gtg_backup.tgz .local/share/gtg/  #just in case, backup of your gtg install (if any)
sudo aptitude install bzr
bzr branch lp:~gtg-user/gtg/all_the_backends_merge_requests  gtg_backends
cd gtg_backends
./scripts/ -d #this lauches a debug version of GTG that doesn't touch your own GTG tasks

And go to Edit->Backends to start (your exist­ing GTG tasks won’t be touched, so you’re safe).

You’re more than wel­come to play with the other back­ends as well (and report bugs, as they should be ready for being released as well). Those are, at the moment:

  • twit­ter
  • tomboy
  • gnote (needs devel­op­ment ver­sion of gnote)
  • launch­pad
  • local file

If you find a bug, please report it to (link­ing this post).

If you don’t fine any, leave a com­ment here, so we can know that we’re good (^_^).



Getting Things GNOME!        —        GSoC review (#10)

I’m at GUADEC!

It’s been awe­somely great so far. I’ve finally met the guys I’ve been work­ing with and new peo­ple from all over GNOME. Thanks to them and to the talks I’ve been fol­low­ing we have new ideas for GTG! I’ll tell you about them as they get a lit­tle more pol­ished, but they will involve Telepathy.

As for my GSoC work, the first ver­sion of the Remem­ber the milk back­end is now com­plete. A cou­ple of small bugs still need to be fixed :)

Thanks to the first days GUADEC wifi, I’ve been able to test my back­ends on an unre­li­able link (now the net­work works perfectly).

We’ve also been hav­ing a small GTG hack­fest to fix the nas­ti­est bugs in trunk.

See you next week, and thanks for all the peo­ple orga­niz­ing GUADEC, giv­ing talks or just being here!

No Comments

Automatically convert a new mail in Evolution to a GTG task

A GTG user, Dami­ano Ven­turin, asked me if it was pos­si­ble to con­vert a mail stored in Evo­lu­tion to a GTG task, as it can be done in mutt.

This is a pretty inter­est­ing ques­tion. There are two dif­fer­ent ways:

  • auto­matic con­ver­sion of new mails tagged in some way (e.g. “Note to self: go to surf tomor­row #TODO”)
  • man­ual con­ver­sion of the mail cur­rently being read

Both of them work. I’ll show you how:

Auto­matic con­ver­sion of new mails

  • Down­load this script, place it any­where you like and make sure you give it exe­cut­ing per­mis­sion (that is, chmod +x <script-name>)
  • Open Evo­lu­tion, in the mail tab
  • From the menu, select Edit->Message Filters
  • add a new filter
  • Edit the fil­ter such that it catches only the mails you want to trans­form in tasks
  • Edit the fil­ter such that it exe­cutes the down­loaded script

This screen­shot shows all these steps

Here, when a new mail con­tain­ing the text #task is received, the user is noti­fied via the usual noti­fier bub­bles and a new gtg task is created.

Man­ual con­ver­sion of mails

  • In GTG, enable the Evo­lu­tion plugin
  • In Evo­lu­tion, acti­vate the Mail-to-Task plu­gin (via the menu bar: Edit->Plugins)

Now, each time you want to import a mail in GTG, you should:

  • in Evo­lu­tion, from the global mail view (that is, not from an opened mail), right click and select “Cre­ate a task”
  • in GTG, syn­chro­nize with evolution.

The Evo­lu­tion plu­gin for GTG will soon be trans­formed in a back­end, which will make the syn­chro­niza­tion com­pletely auto­matic (remov­ing the need for the sec­ond step).


Getting Things GNOME!       —       GSoC review (#8)

Hello and wel­come to my GSoC report for my eighth week of work about sup­port­ing mul­ti­ple back­ends in “Get­ting Things Gnome!”.

This week, I’ve fin­ished the first com­plete ver­sion of the couchdb back­end. This one is sup­port­ing all GTG’s fea­tures (sub­tasks, tags, fuzzy dates...), so it can be used as default back­end (instead of the xml one).

Its per­for­mances are fairly good: for small and medium sets of tasks (I’ve been test­ing it with ~500 tasks) it’s a tad slower than the xml one, but I sus­pect that for big tasks sets there are speed advan­tages. Any­way, being GTG 0.3 fully asyn­cro­nous, users shouldn’t even notice it.

I’ve writ­ten a unit-test for it, and started to check how it behaves with repli­cat­ing couchdb data­bases. It works quite well (a few crashes occur from time to time), but I’ll test it a bit more next week.

I haven’t been able to get auto­matic repli­ca­tion of the data­base via Ubuntu One so far. I’m start­ing to think that some­thing is wrong in my installation.

Next week, I’ll keep on test­ing the couchdb back­end and I’ll work on fin­ish­ing the RTM one (which should be the last big one, since the Evo­lu­tion one is very easy, thanks to the nice api).


No Comments

Getting Things GNOME!      —      GSoC review (#7)

This week, I’ve started to work on  two back­ends planned for my GSoC on “Get­ting Things Gnome!”.
One is the Remem­ber The Milk back­end, for which I’ve writ­ten the authen­ti­ca­tion sys­tem and started to sync task titles (I already have the code for the rest in the old plu­gin, but it will need a bit of refac­tor­ing to make it eas­ier to read and com­pat­i­ble to the new back­end sys­tem).
The more inter­est­ing back­end is the one based on couchdb, which should enable to keep two GTG instal­la­tions in sync. This back­end should also work on the Ubuntu, which has a couchdb imple­men­ta­tion which dif­fers a lit­tle bit from the stan­dard (e.g. deleted records are not really deleted, but are “marked” as deleted — FYI, a good tuto­r­ial on Couchdb and Python is the one on Ars by Ryan Paul). Any­way, so far, it’s work­ing nicely, although it’s not yet sup­port­ing all the fea­tures of a  gtg Task.

Next week, I’m plan­ning to expand GTG Dates mod­ule to make seri­al­iz­ing dates eas­ier. I’ll also have to fin­ish and test threads destruc­tion upon clos­ing GTG, to ensure tasks oper­a­tions to be atomic.
ps: it seems that an API for Google Tasks should be announced soon. That would be a great back­end for GTG!


Getting Things GNOME!     —     GSoC review (#6)

This week has been busy for me, since I have (just a few hours ago) dis­cussed my mas­ter the­sis. Any­way, now I’m going to be work­ing full time on GTG, which is nice.

So, this week I have fin­ished the first ver­sion of the Launch­pad back­end (import­ing in a read-only fash­ion launch­pad bugs assigned to some­body in GTG). I’m think­ing if it would be inter­est­ing to have the pos­si­bil­ity of chang­ing some­thing about the bug through its task in GTG, but I haven’t found nice ideas so far. I’ll  look into mak­ing a bugzilla back­end, since many peo­ple requested that.

Sec­ondly, I’ve writ­ten an export back­end to Zeit­geist, so that tasks that have been com­pleted are also vis­i­ble there. This makes it easy to see what it has been done day by day. Another approach would be inform­ing Zeit­geist when a task gets mod­i­fied, cre­ated and so on (like a reg­u­lar doc­u­ment). While this sec­ond approach is more “zeit­geisty” (since it leaves a trace of the activ­ity of the user), I think that for todo items the impor­tant infor­ma­tion to keep trace of is when they get done. I’ll see what users pre­fer when they start using it, or you can leave your opin­ion in the com­ments here.

I’ve also writ­ten a patch to gnome-activity-journal to sup­port TODO items (which are sup­ported in Zeit­geist 0.4 which has just been released, and GAJ is being updated to use that).
That’s what you should get in Sep­tem­ber (~ planned GTG release time):

Next week, I’ve a lot of things to do. A few of them are:

  • I’ll add a “remem­ber the milk” back­end, which will have a series of advan­tages ver­sus my old plu­gin (auto­matic sync­ing is one of them)
  • I’ll review and ask for merg­ing to trunk the code for my UI and the tomboy back­end, so that other devel­op­ers and brave users can start using my code
  • I’ll make order among my threads, since a few libraries that I used have a series of syn­chro­nous calls which can make clos­ing GTG slower than nor­mal. I’ve dis­cussed this with a friend (the cre­ator of Lightspark), and a few inter­est­ing ideas have come out.

No Comments

Getting Things GNOME!    —    GSoC review (#5)

Another GSoC week has gone, and my project with “Get­ting Things Gnome!” has moved forward.

We now have a com­plete tomboy back­end. Tomboy notes match­ing a par­tic­u­lar @tag (you can con­fig­ure mul­ti­ple tags, or get all notes) are imported in GTG. The syn­chro­niza­tion is both ways: if you change  some­thing in Tomboy, GTG will be updated and vice versa (and GTG doesn’t need to be run­ning when the mod­i­fi­ca­tion is done).

That back­end comes with a unit test, which has helped me spot a few bugs. The tomboy dbus inter­face is syn­chro­nous, which cou­pled with the pres­ence of a Global Inter­preter Lock in python, has caused a few weird hangs dur­ing exe­cu­tion, as threads were not really indipen­dent. Any­way, now every­thing seems to work fine :D

Sec­ondly, the new back­end frame­work has landed in GTG Trunk, so my work is start­ing to be tested by a few reck­less testers. Thanks!

Lastly, I’ve been work­ing on a Launch­pad back­end, which imports (read only) the bugs assigned to you on that bug tracker. This one still needs a lit­tle work, as I’ve started work­ing on it yes­ter­day, but it will be ready and tested for next week. The syn­chro­niza­tion engine, which is com­mon for all back­ends (and generic, as the only require­ments it has is that objects it syncs have unique id and a mod­i­fi­ca­tion date), really does most of the work.

As usual, a screen­shot with the Launch­pad back­end at work:

Next week I’ll work a lit­tle less, as I have my “pre-degree” exam. I’ve already done most of the things I’ve put in my pro­posal (I’m miss­ing the RTM and Evo­lu­tion back­ends, which are just a mat­ter of con­vert­ing my old plu­g­ins, and a couchdb back­end –which was optional, but I cer­tantly have the time to do it), so I’m con­fi­dent I will fin­ish in time.

Have a good weekend!