Sunday, 11 March 2012

Last two weeks of the intern

In the last two weeks. I implemented search function on GTG GNOME Shell Extensions. At the top of the taskBox panel, I added a search entry, when typing, the result changes to match the searching phrase.

The internship has come to an end. During these 3 months, I learned a lot of things, from python, GTK library, to javascript, gnome shell extensions. My participation in the program gave me lots insight of the latest technologies and help me understand how open source software works. Working with GNOME is really an exciting experience. Thanks all! 

Friday, 24 February 2012

new on GNOME Shell extension gtg

During these two weeks, I continue my work on GNOME Shell Extensions for GTG. Last week, I add a filter that can only shows today's task. So by default when the extensions loaded, it will display the top K tasks.

But when click button "today", it only shows those tasks that are already started but haven't yet ended.

The main problems I encountered are the date calculation and how to hook a event so that when click different button, the shown tasks are different.

Then the next thins I did is to enable the Open GTG button at the bottom of the tasksbox. This took longer time than I though. At first I totally have no idea how to implement it. Then I searched with Google but can not find what I needed. Then I looked at some gnome shell document and still nothing found. But lucky when I have a look at the gnome shell code, just the same as gnome shell "Open calendar" function, using misc.util.spawn() function, finally I make it work.

During the next two weeks what I plan to do is autostart gtg headless when the extension start and add a search button.

Thursday, 9 February 2012

GNOME Shell extensions for GTG

Due to some reason, after discussion with my mentor, I decided my next mission to be written the GNOME Shell Extensions for GTG.
In order to develop the GNOME Shell Extensions, I read some materials from the following websites:

These information is very helpful and follow the tutorial I did my first simple GNOME Shell Extensions which adds a button in the panel and display hello world message.

But there are still lots problem occurs. My first question is how the extensions be loaded. It seems that the extensions will not be loaded itself when GNOME Shell start. We need to add the extension uid:
$gsettings set enabled-extensions "[]"
$gsettings get enable-extensions

But when I did some changes to the extension file, I log out the gnome and then log in so that the new files can be loaded. Then I found a way that can make GNOME Shell reload extensions without log out, which is press Alt + F2, and type r.

The next problem is debug. I did not know how to debug it. After lots Google searching, I finally know that all the log information was displayed through global.log() function, and the way to see it is press Alt + F2 and type lg. And the global.breakpoint() can force a gdb breakpoint from _javascript_.

The hardest problem is that I found there are few materials about GNOME Shell Extensions. So when some problem occurs it took longer time to solve. But lucky I download the GNOME Shell code, I am sure I can learn a lots of stuff from there.

Friday, 27 January 2012

previous two weeks work on GTG

In these two weeks I continue my works on Google task syncing. In order to make it consistent with other backends, I break the authentication into three stage, add the pin request when authenticating. So in the first stage it will open the browser to ask for the allowance of syncing. Then the browser gives a code. After type the code in GTG and checking, finally the authentication succeed and the program start syncing.

Another thing I did is fix the task content cannot shown in google tasks problem. All the task content shows like <content></content>.
After that I did more tests on it and finally push my final version on launchpad.

Then after discussion with my mentor Luca, I got my next mission, which is write unity lens for GTG. This is really a bit challenge for me, because I didn't what unity lens is at the first time. After  a few days learning, now I have some basic ideas in my mind and found it very interesting. So in the next weeks I plan to start working on it.

Tuesday, 10 January 2012

Something new

In the recent two weeks, the works I did is:
1. When enable the syncing with google task, the browser can not open the URL which collect the user Google account information and allow the authentication. After the changes I did, it opens the browser automatically.

2. After allow the syncing, If I do not force to close the program, it sync the task continuously so that the same task appears many times in GTG. I fixed this problem.

3. In about 5 mins After syncing with google task, the program crashed. Then I figure out that there is a dead loop and fix it.

Now there is no big problem on the Google task syncing, so in the next few days I plan to do more test on it, normalized the code and make it ready to be released.