Going to GUADEC 2013!

Hooray!

Thanks to the GNOME Foundation, I will be attending this years’ GUADEC. Once again I’m having the terrifc opportunity of meeting my fellow GNOMErs in-real-life, meet new ones, and help this community be as awesome as it already is.

I’ve never been to East Europe, so any tips from people who’ve been to Czech Republic would be welcome!

I’m also a volunteer, so you can count me in to help in anyway I can.

See you all in August 1st at Brno, Czech Republic!

 

gnome_foundation_sponsor

Bye FISL 14! See you all next year!

Last week I attended the 14th edition of the Free Software International Forum (FISL) in Porto Alegre, Brazil. It was a great opportunity to see in real life people I see daily on IRC/mail-lists/social networks.

I live in Pelotas, which is located 270 km far from my state’s capital, Porto Alegre, so I couldn’t miss this rare chance of meeting my fellow gnomers. We had a community meeting where we’ve discussed GNOME activities in Brazil and some directions GNOME has taken over the past few releases. We have also heard a lot of feedback from GNOME users at the community meeting (some related to design decisions, other to distros delivering GNOME software, and etc). It was pretty exciting!

Besides the GNOME related activities, I’ve attended some really nice presentations and discussions on free software and specific technologies. I’d highlight these in particular:

See you in FISL 15!

#GSoC Final Report

Hey,

I can believe it’s over. This Summer passed way too fast! It was a great opportunity of learning more about free software development, programming, and GNOME.

To describe and evaluate my Google Summer of Code, I have chosen an interview-style post. I think this is the most efficient way of describing my internship experience.

What do you consider the best aspect of participating in GSoC?

The satisfaction of feeling part of something bigger than yourself. To work side-by-side with people really engaged in software development.

What do you consider the most challenging part of your internship?

Definitely it was conciliating the program with my university duties, since it’s not summer in the Southern Hemisphere. Although getting familiar with large projects, such as Tracker, was hard as well.

How was your mentor?

Cosimo is a great person and has been a great mentor. He has been patient in leading me to the right direction, pointing me what to do, and teaching me what was needed.

What would you do different if you could do it again?

It’s easy to point mistakes but they are part of the learning process. You got to learn from your mistakes to not repeat them.

I could have started my work in Documents UI sooner to have more time to polish/enhance/improve it. Also, I could have asked [more] for help and completed the Tracker task in lesser time.

Which tips would you give to future students?

  • Ask for help/tips/advice. I’ve lost a lot of time in tasks that my mentor could answer in seconds. :)
  • Attend GUADEC!
  • Show your code!

What one thing did the GNOME community do that you consider very helpful for your project and would suggest they continue to do?

Incentivate interns to attend GUADEC. It is an environment of creativity and innovation which certainly will inspire students to get involved even more with the community.


Removable-devices support in Documents

The original proposal was: “To make GNOME Documents able to manage and view files on plugged in removable devices. Including extending Tracker to provide the APIs we need to implement the feature.

What has been achieved?

Tracker:

The ‘IndexFileForProcess‘ API method has been created. It lets client-applications call Tracker to index files/directories/mount-points transparently on an application basis (you can read more about it in my last report). This mechanism works nicely for what we want in Documents.

Documents:

Documents is able to recognize a plugged-in removable device, create a ‘virtual’ collection containing all the documents inside the device.

What was left behind?

  • Users should be able to Import files from removable devices to the local disk.
  • An already imported document shouldn’t be imported again.

Software is never done! So I’m committing myself to getting these things [gnome] done. :)

What’s next?

In addition to finish what’s left in my task, I want to apply for a GNOME Foundation membership, and keep contributing to GNOME.

Acknowledgements

I want to thank the GNOME community for helping students get involved with free software development, Google for giving me the opportunity of work with GNOME, Cosimo Cecchi for guiding me in my project, and you for reading this long report. :)

Cheers!
Felipe.

#GSoC Report V

Hey, this is not my GSoC final report. :)

I didn’t expect to be still talking about my work on Tracker at this time, but Martyn Russel has made some nice suggestions of modifications to my code on his review of my patch. The ‘IndexMount’ DBus method has been exchanged for an ‘IndexFileForProcess’ DBus method. It’s a more generic mechanism which allows Tracker to index files on a client-application basis.

It works almost equally to the old ‘IndexMount’. Receives a request-to-index a file/directory/mount-point and watches the bus name of the calling application. It stops the indexing process when no bus names are associated to the file.

I am not that late, I am also working in Documents. Currently Documents loads plugged-in removable devices, uses the Tracker mechanism I’ve described in the previous paragraph to index them, and creates a Device Collection into the overview containing documents inside the device.

I am preparing a preview for my GSoC Final Report (that I will post tomorrow).

See you! ;)

#GSoC Report IV

Hey! I’ve finished the work that was necessary on Tracker to make it better able to serve Documents and other applications. I just need to get my patch reviewed and perform the necessary alterations.

By the way, It actually took me more time to get DBus working on JHbuild than tying the DBus method to the tracker-miner-fs‘ method which I wrote before. I bypassed it by following this old Murray’s blog post.

So, how useful is it?

To begin with, a typical scenario would be an application sitting on Tracker (such as Documents), which wants to tell the file-system-miner to index a given mount (by indexing, I mean crawling the mount point for files AND adding the device as datasource on the Store).

Besides, the most obvious scenario we want to avoid is when an application, which calls off directly a miner method, crashes. It would cause the indexing operation to fail.

In doing so, we have chosen a different approach using DBus. Now you can send a message to the /org/freedesktop/Tracker1/Miner/Files/Index object, with a mount-point-uri as parameter, and it will tell the tracker-miner-fs daemon to index the Mount accordingly. It also avoids unnecessary crawling of Mounts when more than one application wants their content.

Front-end side: using this mechanism in Documents…

From now on, Documents lists on plugged-in removable devices as collections on the overview. By clicking on a Device Collection, you get it indexed.

What’s next?

A couple of things that I consider essential are:

  • Let users Import documents from a device (maybe exporting?)
  • Do not index already imported documents

That’s all folks!

GUADEC 2012

I’ve had such a wonderful time at this year’s GUADEC. It was a great opportunity of making new friends, meeting awesome rockstars/ninjas, and visiting a beautiful [and delightful] city. I’ve fallen in love with A Coruña. It’s definitely a place I’d love to live on.

One of the things that I cannot forget is to thank the GNOME Foundation for sponsoring my trip. The accommodation was wonderful. We’ve had great discussions about all kind of things on the Rialta’s cafeteria.

Besides, we’ve had a Documents meeting to discuss bugs and enhancements. It was very productive. So expect brand new features on your favorite documents management app. :)

Thank you all!

 

#GSoC: midterm evaluations

They say time goes faster when you are having fun. This first-half of GSoC has passed in a blink of eye, really! Despite having a hard time conciliating GSoC with my university duties, this period is definitely something I would love to experience again.

During this first-half of the program my mentor (Cosimo Cecchi) has been so patient in helping me toward achieving my goals and has been always available to answer my doubts. Grazzie Dude!! :)

So, let’s face the second-half of the Summer! o/
Cheers,

I’m attending GUADEC!

I almost forgot to announce that I’m attending GUADEC in A Coruña, Spain. I’m sure it will be a great opportunity to go deeper into GNOME development, meet new people, make new friends and put faces on names I see on mail-lists/IRC.

Thanks to the GNOME foundation for sponsoring me!

See you there! o/

#GSoC Report III

Hey, it’s been almost two weeks since my last report, but I’m still here working. I am [finally] free of my university exams, i. e., GSoC is my new full-time occupation. :)

In my last report, I described a method that I was working on which adds a mount point easily to the tracker store. It’s now finished!

So I’m now working on tying this method up to the DBus name of the calling application. I’m getting familiar with DBus and this code will be available ASAP on my tracker repository on GitHub.

Cheers,

#GSoC Report II

Hello everyone!

I’m a little late on my report, but [finally] it’s here now. It’s been hard to conciliate college and GSoC but I’m making good progress on my task.

As I told you before, my first task is to make Tracker capable of indexing files on removable devices on an application basis (on demand). It means making the Tracker API easily capable of receiving calls from applications to index a given device.

Currently, Tracker uses a GSettings key to flag whether or not removable devices and optical discs should be indexed. In these first 3 weeks I’ve worked on a mechanism to escape the strict duality dictated by these GSettings keys.

I’m working on building a method for tracker-miner-fs which receives a GMount object as a parameter, adds this GMount to the Tracker Store, and call the indexer to perform its job.

The next step is to tie these mechanisms up to the DBus name of the calling application in order to finally make it work on an application basis (on demand).

You can hit me anytime on IRC. Let me know if you have doubts/questions/suggestions.

bye!