This week I worked with libchamplain and added it to the GTG! geolocalized-tasks plugin that I’m making. I have a working version as planned. It’s now possible to add a location to a task or view a task (that has a defined location) on the map. It will have some more features in a few days. Some images of libchamplain + geoclue + GTG! in action:
A quick explanation (each point corresponds to a image):
- The button Set/View location is added to the task editor window;
- Viewing the task’s location on the map. This task (as you can see on the first image) has three tags, two of them with location and on of the tags that has a location doesn’t have a color set so that gray is the default color;
- A task with a tag named “CGE” with the color attribute defined to pink and with the location defined. Because the task has already a location defined, it only shows the location;
- A task that doesn’t have tags (so no location). Using geoclue (pygeoclue) the markers position is set to the current location. It’s also possible to move the marker around to the desired position. There is a gtk.entry to define the tag’s name;
- This task has tags but no location is defined. Again, using geoclue the markers position is set to the current location. Now it’s possible to create a new tag to associate with the location or to associate the location to a existing tag;
Some new features will be available in the next days along with a screencast.
Learning libchamplain was a challenge, I had some problems and spent allot of time figuring out how to solve them but the libchamplain team was wonderful and help me thru the problems, many thanks to Victor and Pierre-Luc!
So this week I:
- added libchamplain to geolocalized-tasks plugin in GTG!
- learned how clutter/libchamplain works
- tested and experimented with the python bindings (view, layers and markers mostly)
- coded an example (demo in python) of how to change a marker’s position on the map. The demo is available here: http://paulocabido.com/soc/libchamplain/move_marker.py
- fixed several bugs in the plugin-engine
All the code (plugin + plugin-engine) is available at my plugin-engine branch: https://code.launchpad.net/~pcabido/gtg/plugin-engine
I’m glad to be working with the GTG! community, it’s growing real fast! This week, Getting Things Gnome! 0.1.2 was released.

More screenshots here.
For the curious ones a review of GTG! made by Ryan Paul is available here. There are still lots of new features coming up! Anyone that wants to join us, feel free to do it at IRC (gimp net at #gtg).
I just received an e-mail from Google notifying me that I have successfully passed the Midterm Evaluations. I already knew that I was going to pass but the confirmation is always good.
In week 7 I mainly worked on the python-geoclue module. A list of the module’s features are available here.
I also made a test file to test the module’s features and added the setup to install the module.
Suggestions to improve the module are welcome! I already got the suggestion to add gobject-introspection support, so keep those suggestions coming!
The code is available at https://code.launchpad.net/~pcabido/+junk/pygeoclue.
I updated the wiki page that I left behind on the past weeks and created a page (http://live.gnome.org/gtg/soc/whatihavelearned) that is kind of a general report of what I done until now. The idea is to share what I have learned and it is intended to be allot more technical than it is now. It is also a good starting point for all the documentation that I’ll have to do.
Now I’m starting to work with libchamplain. I plan to have a working plugin with geoclue+libchamplin by the end of this week.
All of this part of my work is available here: https://code.launchpad.net/~pcabido/gtg/plugin-engine
On week three I accomplished an important part of the project, that was to have by the end of the week a “working prototype” of the plug-in engine. Its not complete but the difficult part and the part where I was (very) confused is done.
Plug-ins are loading and working. Briefly, the system is divided into three parts:
- The Plugin Manager that handles the GUI for the plug-ins
- The Plugin Engine that handles the load, initialization, activation, etc for the plug-ins
- A third part that is the plug-in API (the methods that are allowed for a plug-in to use)
And for the screen shot lovers here are some images of what is done:


The first screen shot is obvious, it’s the Plug-in Manager GUI and the second screen shot is the features that the plug-ins are implementing. The plug-ins are copys of each other, the each add a menu to the Plug-in menu on the menu bar and by clicking that menu you can see the action on the gnome-terminal and the last two buttons on the ToolBar are also put there by the plug-ins (you can also see the output on the gnome-terminal that resulted by a click on a button). New screen shots or maybe a video next week!
For week 4 I have the intention to finish the plug-in engine, it will be a work in progress but I want to finish all the main parts, and start the geoclue-python module that I will later use with a plug-in in GTG!.
Besides this I will continue my university marathon, here in Portugal the professors seam to wait for each other and set the tasks we have to do all at the same time. I still have 3 exams and 4 assignments to submit during June.

Here’s what I have done after the first official summer of code week…
First of all I created a wiki page that concentrates all of the projects info and where you can follow my progress on the project (this page is a work in progress).
An important part of my project is Geoclue and integrating it on GTG!. I have dedicated some time to understand how Geoclue works and I made some examples of how Geoclue can be used with Python/D-Bus.
This led to the idea of creating a python-geoclue lib/module to facilitate the Geoclue integration on python projects.
The examples are available here.
I’m thinking on creating a git branch to upload all my soc work.
We (me and Lionel) decided that this integration is best made as a GTG! plug-in because there may be some users that don’t want to use such features and also GTG! will benefit from a plug-in system. So I’ll be implementing a plug-in system on GTG! and most of this weeks time was spent on research for the best way to implement a plug-in system, talking or trying to talk to developers who have implemented such systems.
For the next week/weeks the TODO list is:
- Implement the plug-in system on GTG!
- Build the python-geoclue lib/module
- Finish the mockup
I also have to mention Bertrand Rousseau, the other GTG! developer, who as always been available and helping.
Like other students my final exams and assignments discussions for the university have started and until mid June I’ll be dividing my time with soc and the university.
Also, during the past week I received the debt card and already have the 505 dollars there. I’m now thinking on the best way to get them into my account (to Portugal in euros). If anyone has a good idea, please let me know.
I uploaded today the third example of how to use geoclue thru python/d-bus. All the examples are available here.
I created a wiki page within the gtg’s wiki to help me organize my google summer of code project. If you want to follow my work on the project you can check out my project’s wiki page @ live.gnome.org. Feel free to make any suggestion.

Last monday I received the news that I was accepted in Google Summer of Code 2009. I will be working for the GNOME project on GTG.
The project is “Add Geolocalized tasks (geoclue, libchamplain) in Getting Things Gnome” and my mentor is Lionel Dricot.
Last year I developed a project for Sapo Summerbits that is similar to SoC. Now I have been given the opportunity to work with the best.
I’m also looking forwards to being a part of the GNOME community.
About these first days after knowing that I have been accepted I can tell you guys, the sensation is wonderful! I will keep you posted with the experience.
Lastly, the e-mail that made my day:
Dear Paulo,
Congratulations! Your proposal “Add Geolocalized tasks (geoclue, libchamplain) in Getting Things Gnome” as submitted to “GNOME” has been accepted for Google Summer of Code 2009. Over the next few days, we will add you to the private Google Summer of Code Student Discussion List. Over the next few weeks, we will send instructions to this list regarding turn in proof of enrollment, tax forms, etc.
Now that you’ve been accepted, please take the opportunity to speak with your mentors about plans for the Community Bonding Period: what documentation should you be reading, what version control system will you need to set up, etc., before start of coding begins on May 23rd.
Welcome to Google Summer of Code 2009! We look forward to having you with us.
With best regards,
The Google Summer of Code Program Administration Team
|