Summertime sadness

Another summer is about to end and with it comes the autumn* with its typical leaf loss. There’s beauty to the leaves falling and turning yellow/orange, but there’s also an association with melancholia. The possibilities and opportunities of the summer are perceived to be gone, and the chill of the winter is on the horizon.

The weather changes set in at the same time our Google Summer of Code season comes to an end this year. For a couple of years, I have planned to write this blog post to our GSoC alumni, and considering the exceptional quality of our projects this year, I feel that another GSoC can’t go without me finally taking a shot at writing this.

Outreachy and GSoC have been critical to various free and open source communities such as ours. By empowering contributors to spend a few months working fulltime in our projects we are not only benefiting from the features that interns are implementing but also having a chance to recruit talent that will continue pushing our project forward as generations pass.

“Volunteer time isn’t fungible” is a catchphrase but there’s lots of truth to it. Many people cannot afford to contribute to FOSS in their free time. Inequality is on the rise everywhere and job security is a privilege. We cannot expect that interns are going to continue delivering with the same bandwidth if they need to provide for themselves, their families, and/or work towards financial stability. Looking at ways to fund contributors is not a new discussion. Our friends at Tidelift and GitHub have been trying to tackle the problem from various fronts. Either making it easier for people to donate to volunteers and/or helping volunteers get fulltime jobs, the truth is that we are still far from sustainability.

So, if you are a mentor, please take some time to reflect on the reasons why your intern won’t continue participating in the project after the internship period ends and see what you can do to help them continue.

Some companies allow their employees to work in FOSS technologies and our alumni have a proven record of their contributions that can definitely help them land entry-level jobs. Therefore referring interns to job opportunities within your company might be a great way to help. Some companies prioritize candidates referred by fellow employees, so your referral can be of great help.

If you are an intern, discuss with us and with your mentor about your next steps. Reflect on your personal goals and on whether you want to build a career in FOSS. My personal advice is to be persistent. Lots of doors will close, but possibly the right one will open. You have a great advantage of having GSoC/Outreachy on your resume and a proven record of your contributions out in the open. Expand your portfolio by contributing bits that are important to you, and eventually recognition may come.

All in all, a career in FOSS isn’t guaranteed, and as branches grow in different ways, remember that the trunk still holds them together. Your roots are in GNOME and we are very proud to see our alumni thrive in the world, even far away from us.

*at least if you live outside the tropics, but that’s a topic I want to address on another blog post: the obstacles to a career in FOSS if you are coming from the global south.

GUADEC 2020: Intern lightning talks

This year’s GUADEC was a blast. I miss seeing everybody in person but, at the same time, the online event enabled the participation of many that otherwise wouldn’t be able to attend the conference. I hope we can continue having an online conference alongside our in-person ones, for more people to participate.

During the Intern lightning talks, we had the chance to follow up with the progress of 12 of our 14 GSoC interns and hear from 5 past interns about their experiences after finishing their internships with GNOME.

The past-interns lightning talks session is something I want us to repeat next year. It was a great opportunity for our current interns to inspire themselves with the journey of others that have managed to stay involved with the project. This is extremely important to us because the ultimate goal of having internships is to provide an opportunity for developers to get involved with GNOME long term, becoming the next generation of hackers that will continue pushing our community forward.

Managing a session with 17 different presenters was made easy thanks to Big Blue Button. The recordings are available below.

GUADEC 2020: Intern lightning talks

Hi, I hope you are all enjoying GUADEC! I am just passing by to let you know that on Monday 27th, 18:00 UTC, we will have our traditional Intern lightning talks where you will get to see our Outreachy and Google Summer of Code  interns present their projects.

This year we will also have a few past interns sharing their stories about their experiences as interns and how GNOME has helped their professional careers.

https://events.gnome.org/event/14 (Track 1)

Stay tuned!

Let’s welcome our 2020 GSoC interns!

It is Google Summer of Code season again and this year the GNOME project is lucky to have 14 new interns working on various projects ranging from improvements in our app ecosystem to core components and infrastructure.

The first period, from May 4 to June 1, is the Community Bonding period. Interns are expected to flock into our communication channels, ask questions, and get to know our project’s culture. Please, join me in welcoming our students and making sure they feel at home in our community.

This year we will be using Discourse as our main communication channel regarding the program, therefore if you are a mentor or intern, please make sure to check https://discourse.gnome.org/c/community/outreach for announcements. Feel free to create new topics if you have any questions. The GNOME GSoC admins will be monitoring the Outreach category and answering any doubts you might have.

Here is the list of interns and their respective projects https://summerofcode.withgoogle.com/organizations/5428225724907520/#projects

Tips for students

First of all, congratulations! This is just the beginning of your GNOME journey. Our project is almost 23 years old and likely older than some of you, but our community gets constantly renewed with new contributors passionate about software freedom. I encourage you to take some time to watch the recordings of Jonathan Blandford’s “The History of GNOME” talk in GUADEC 2017 so you can grasp how we have grown and evolved since 1997.

The first thing you want to do after celebrating your project’s acceptance is to contact your mentor (if they haven’t contacted you first).

Second, introduce yourself on our “Say Hello” topic! Don’t forget to mention that you are in GSoC 2020, the project you will be working on, and who’s your mentor.

Third, set up a blog where you will be logging your progress and talking directly to the broader community. In case you need help with that, ask your mentors or the GSoC admins. Intern blogs get added to Planet GNOME, which is a feed aggregator of posts written by dozens of GNOME Foundation members.

Many of us read Planet GNOME daily! Besides, some of our active contributors have participated as interns in past editions of GSoC. You can dig for their blogposts and get a better sense of how these progress reports are written.

It is totally normal for you to have questions and doubts about the program, to help with that, we will be hosting a Q&A on May 12 at 17:00 UTC in our RocketChat channel. All of you will receive an invitation by email this week too. If you can’t make it, feel free to join the channel at any time and ask questions there as well.

If during your internship you have a problem with your mentor (lack of communication, or misunderstandings, or deep disagreements, or
anything else), don’t hesitate to report that to the GNOME GSoC administrators.

Last but not least, have fun!

 

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,