Archive for June, 2012

Updates on Summer of Code

Because PyGTK and GTK3 don’t work together very well, I have had to make a minor design change in the Task Editor for Getting Things GNOME. In order to get the Task Editor running with the rest of the program, it needs to run on it’s own process, and so, we now have the Editor running with a Dbus wrapper. For those who don’t know what Dbus does, it allows two programs running on different processes to communicate with each other through a connection.

The nice thing about making the switch over to Dbus was that Getting Things GNOME already has a well done Dbus wrapper for other programs to use, so all I had to do was create the wrapper for the Editor. This meant that I could finally load tasks and make sure that that aspect was working properly. The way that Getting Things GNOME handles Dbus is that to get a task it sends over a dictionary of key-values with items such as the task title, text, tags, subtasks, etc. Because of this, the workflow of the Editor has changed in how it gets things and affected the workflow as well.

With the workflow change came a major code change. But with that code change came a lot of good. We now have tasks loading properly within the editor. It properly applies all the necessary highlighting and rich text to subtasks, tags, and the title.

So now that tasks are loading where to next? Next things to take care of is to deal with working on text input and how to deal with it. We need to manually take care of links, such as changing the mouse cursor when we hover over them, and having clicking them open up a webpage or subtask, etc. By then I should have some pictures worth showing on the blog.

Summer of Code is Here!

Well, it has already been an entire month since Google’s Summer of Code program began! For those of you who don’t know what the Summer of Code is, it is a program in which Google pays students to work on open source projects, easing them into the world of open source programming. For more information, you can check out their website at

So for the past month, what have I been doing? Well my project is to rework Getting Things GNOME’s task editor and add some rich text editing features. This became the task of porting our task editor from PyGTK’s framework to the GTK3 python bindings, in order to upgrade us to the newest form of GTK. So, once the port is complete, I will also be adding features such as rich text editing (a.k.a. bold, italics, and underline text), search features, and more. When it came down to figuring out the best way to accomplish this, I decided to try and work in a Model-View-Controller architecture, which will not only bring us the new GTK frontend we need, but also sets up the project for possible future frontends as we need them, and making it easier to do such.

What exactly have I been up to these past four weeks, you might ask. I have been working on bringing the frontend, which is where I feel the bulk of the work will be since the controller will be just passing info between the frontend and the model, and the model is already done. So far, we have an editor that takes in the title of the task, formats it to how the previous editor does, and makes the title of the task the title of the window. It also is able to bold, italicize, and underline selected text. It also has the necessary seralizer and deserializer in the class for when it is ready to start loading and saving tasks.

However, along this path there have a been a few difficulties that have been run into. The major issue is that it seems that PyGTK and GTK3 (and, by larger picture, I think GTK2 and GTK3) do not get along very well together. This has led to the editor crashing when I import certain parts of Getting Things GNOME into the editor because they don’t agree with each other.