Bye 2013! Happy 2014!

When a new year comes, it’s time to reflect (not regret) and set up new goals.

With this in mind, I have to say that last year was the best year ever… so far! I have attended FISL 14 in Porto Alegre, GUADEC in Czech Republic and gave a lot of talks. Speaking of that, I forgot to blog about the talk I gave at Latinoware which was an introduction to GNOME Application Development with Javascript (Gjs). And after that, I was invited to give a short introduction to Free Software and share my experiences as a student developing FOSS (mentioning my Google Summer of Code participation in 2012 and my involvement with the GNOME community) at my university. Everything was a blast!

For 2014, I want to intensify my GNOME contributions, read 50 booksgraduate o/*, and (after that) find a first job. ;)

#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!

#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,

#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!

#GSoC: Community Bonding period

This period between the accepted students announcement and the hands-on part of GSoC is called the ‘Community Bonding period’. It’s when students meet their mentors/community, and read documentation. I have met the awesome Cosimo Cecchi, who’s guiding me in the project. I also have contacted the Tracker community.

My first impressions were great. Everything about Tracker (and GNOME libraries in general) is pretty well documented.

In addition to that, I had my blog added to Planet GNOME. I’m glad to be in this planet after so many years reading it daily.

From now on, the Coding period has started. So it’s time to jump straight into coding. Unfortunately it’s not summer in Brazil, so I have classes to attend and exams to take, all this occurring simultaneously with the Google Summer of Code. Fortunately, I have scheduled my classes accordingly so that I have some extra free time to work on GSoC.

In this first half of the coding period you’ll see my work on Tracker. And in the second half, you’ll see my work directly on Documents. I’d love hear your feedback, comments, suggestions, ideas… anything, really.

Hello Planet GNOME!

Yay! I am on Planet GNOME!!

Hi everyone! I’m a 20 years old Brazilian student at UFPel studying Computer Science. For the first time I’ve been accepted into the Google Summer of Code program.

This summer, I will be working with my mentor Cosimo Cecchi on Documents in order to make it able to manage and view files on plugged in removable devices. To accomplish that, I’m also going to work on Tracker.

I will keep you updated about my progress. Stay tuned. Same bat-hour, same bat-blog. :)

#GSoC: Warm Winter!

It is winter in the Southern Hemisphere, but it is going to be warm because my GSoC proposal was accepted.

I am going to work on Documents in order to make it able to manage and view files on plugged in removable devices. This is a feature proposed by Cosimo Cecchi, who is my mentor in the program.

In this blog I am going to log my progress weekly. Keep tuned for updates here!