gsoc

GSoC 09: Aditional documentation for my work

I made some documentation for my work that I had not yet advertised, so here are the links:

Getting Things Gnome 12 weeks after SoC

SoC is ending and 12 weeks after I’m very happy with the experience. The first weeks were difficult, I had university assignments and exams to do and it wasn’t easy finding the equilibrium between SoC and the university stuff, some of those weeks were exhaustive. Still it was a great experience, I would do it again! My mentor, Lionel Dricot aka ploum, was always available and helpful during the hole 12 weeks. The GNOME and Getting Things Gnome communities were also very important and contributed in a very positive way to my SoC experience.

My SoC project and the goal was to add Geolocalized tasks (using geoclue and libchamplain) in Getting Things Gnome witch I achieved.

Getting Things Gnome is a task manager and if you don’t know it yet you can read all about it here and see some of the many reasons for why you should use it or try it at least. One of the concepts of the application is the “Work View”. The “Work View” concept will only show tasks that you can do “right now”, it doesn’t display tasks that depend on other tasks, tasks that cannot start before a given date or with tags you have marked as non workable. The main idea of my project is to add a here to the right now, extending the work view concept to “right here and right now”. The extension of the concept is now available if you enable the geolocalized-tasks plugin that packed allong with GTG (only in the current development version that you can get here).
To try it you will need:

  • libchamplain installed with python support
  • Geoclue installed with the main providers
  • my newly created python-geoclue module

I’ll provide the detailed instructions to test it in a few days. I’m currently in contact with Keith Preston so that the python-geoclue module can be integrated in the Geoclue project, so I’ll have some news on that (were you can get it, how to install it, how you can use it, etc) very soon.

During SoC I also added plugin support to GTG and plugins with new features are emerging. It is very satisfactory to see my work being useful. Some of the plugins that already exist are:

  • Geolocalized-tasks plugin (my plugin)
  • Hamster Time Tracker Integration by Kevin Mehall
  • Remember the milk sync plugin by Luca Invernizzi

So if you have any request for a new feature, don’t hesitate to add it to the whish list or just digg in because it’s now easier to add features to GTG.

Geolocalized tasks in Getting Things Gnome!

For the past two/three days I’ve been fighting with video in linux to make a screencast. I found out that recordmydesktop didn’t work in any of my computers (it was always so slow!). I finally got it to work in a old laptop, a compaq evo n1020v and was able to record the plugin working.
After that I had another challenge, to edit the four small videos into the final video and finally to be able to use the html5 video tag I had to add the ogg mime types to apache’s config.
Well.. the result was this video (still a little sluggish, the next one will be better):

For those that don’t have a html5 compatible browser, here is the youtube link or the direct link to the ogg video.

There are still some glitches in the plugin but in a general way it works ok. More features are coming soon!

Google Summer of Code: Week 8

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:

geoplugin_1
geoplugin_2
geoplugin_3

geoplugin_4
geoplugin_5

A quick explanation (each point corresponds to a image):

  1. The button Set/View location is added to the task editor window;
  2. 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;
  3. 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;
  4. 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;
  5. 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

Google Summer of Code: Week 7

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.

GTG
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

Google Summer of Code: Week 3

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:

Plugin_GUI
Plugin_working

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.