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.

Identifying Operating Systems in GNOME Boxes

One secret sauce of GNOME Boxes is libosinfo. It basically is an umbrella for three components: libosinfo, osinfo-db-tools, and osinfo-db.

libosinfo offers programmatic means to query for information about OSes. osinfo-db-tools is a set of tools that help manipulate and extract information from OS images (such as ISO files). osinfo-db is a database of operating system information describing requirements for virtualized installations as well as virtual drivers and devices that work with each OS in the database.

For a given image file, Boxes will use libosinfo to detect which operating system it contains and assign the appropriate configuration preferences for it.

When an operating system’s data was not present in osinfo-db, we used to treat the image file as an “unknown OS”, which would get set up with the Boxes default configuration preferences. This usually works, but when it fails, it gets really hard for a regular user to use the virtual machine. Think of a wrong virtual video driver causing the guest’s graphic session to hang, or a virtual tablet device getting on the way of gestures being passed to the guest, etc…

For this very reason, we decided to add an extra page in our VM creation assistant that will only get visible for those “unknown” OSes. This page allows you to specify which operating system you intend to install. This way Boxes can use libosinfo to set up your VM with the right configuration preferences for the chosen OS.

screenshot

If you can’t find your OS in the list, try picking a similar one. For instance, if Linux Mint isn’t on the list, you are probably better off telling Boxes it is a Ubuntu or Debian based OS.

Not choosing anything on this page is also fine, in this case, Boxes will go with its defaults.

New operating systems can be added to the osinfo-db by creating merge requests in their GitLab repository.

This (with some more polishing) and other changes will be available in GNOME Boxes 3.38. If you can’t wait, give a go to our *unstable* nightly Flatpak.

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!

 

Announcing “Connections”: a modern remote desktop client for GNOME

Yes! Connections is a brand new app that I put together in the last month. It is a remote desktop client for the VNC and RDP protocols on top of the same backend code that we were already using in GNOME Boxes*: gtk-vnc and gtk-frdp.

The main motivation to write this application is to have a drop-in replacement for Vinagre** that is modern, easier to maintain and follows the HIG. Besides, we want to have a GNOME app to point users to when they ask for more/advanced remote-connection options in Boxes.

The app is at an early development stage where it can be tested and even used for simple remote connection tasks. I started filling issues in GitLab so others can pick up tasks that they might be interested in helping.

It basically has the same code base as GNOME Boxes for the protocol/display specific code, so you will likely get the same experience as with remote connections in Boxes today. Of course, the plan is for later to add more and more remote connection specifics to empower our users without cluttering our interface. That’s the GNOME Way™. :-)

Connections can be downloaded from Flathub by clicking the button below.

Download on Flathub

For now, I would NOT encourage downstream packagers to distribute the application, since lots of it will change until our 3.38 (first stable) release. Flatpak allows for the control we need when starting the development of a brand new application, and this way we can strive for the best experience our users can have by delivering updates directly to them.

Putting GNOME Connections together wouldn’t have been easier without Flatpak, GNOME Builder, GNOME Boxes, Vala, and GTK. Our platform is becoming very accessible for native application development thanks to all these efforts. We all appreciate it! ♥

* These features will live in Boxes for some time to allow for user migration, but they will be likely removed by the time we will be releasing 3.40.

** Vinagre is now in maintenance mode and won’t be getting new features. Eventually, we will sunset it.

DevConf.CZ 2020

Once again, DevConf.CZ, is our meeting-while-freezing winter conference in Brno. For this year I cooked up two talks:

An hour-long talk about Portals during the first day of the conference. The room was almost full and the questions were very relevant. A few attendees met me after the talk seeking help to make their apps start using Portals and with ideas for new Portals.  You can watch the recordings below:

On the last conference day, I had a quick twenty minutes talk about GNOME Boxes in the virtualization track. The audience wasn’t our known faces from the desktop talks, so I got the chance to show Boxes for the first time for a bunch of people. I did a quick presentation with live demos and Q&A. It was a success IMHO. Check the recordings below:

Besides, I participated in the “Diversity and Inclusion” and “Women in Open source” meetups. It was a good opportunity to see what other teams are doing to be more diverse and also to share my personal experiences with mentoring with Outreachy.

Langdon White had a talk on Fedora Silverblue raising important questions about the development workflow in it. I was glad some of their issues were already addressed and fixed, but I recommend to those who didn’t attend this talk to watch the recordings. It is important feedback.

I felt honored to be mentioned in Rebecca Fernandez’s talk about “Growing your career via open source contributions”, where she had slides showing people’s stories, including mine.

I managed to catch up with the developments of the virgil driver on Windows in order to support Direct3D, and discuss other future developments with folks from the SPICE team.

Other than that, I attended many podman/containers talks to better understand their development workflows and how we could accommodate these workflows in Silverblue. I spoke to Red Hatters from other teams that need CodeReadyContainers to test their applications, and how we could improve their workflow in Fedora Workstation.

Lastly, I had a great time with [delicious] food and drinks at the DevConf Party in Fleda, which is 200 meters away from our flat. :-)

Ten Years Contributing to GNOME!

Time flies! Exactly ten years ago today I made my first contribution to GNOME.

I rarely celebrate recurring dates but this is a nice rounded number that serves as the perfect excuse for me to publish this letter of appreciation to our community.

For me, it all started with a hardware vendor trying to cheap their desktop machine’s price by putting Linux on it. Initially, we didn’t have internet at home, so I spent a significant amount of time just exploring the OS and toggling every knob I could find in the UI. The first issues I encountered were missing translations. Googling for that lead me to discover the wonders of Free and Open Source Software. I could contribute that missing translation!

Playing with computers wasn’t always my hobby. I had an offline childhood, despite being a 90’s kid. A career in anything computer-related was unthinkable given our economic reality at the time. My parents are low paid public servants, so I was inclined to find myself a job in the public sector too. I had strong feelings about teaching, just like my mom, but computers… well, they are addictive!

When I was sixteen years old I made my first contributions to the Brazilian Portuguese translation team in GNOME. This was also when I started reading Planet GNOME. Your neckless floating heads were god-like figures to me. I couldn’t understand 90% of the topics discussed due to my limited English and technical skills at the time, but I basically just kept on reading everything. Really. IRC logs, mailing lists, blog aggregators, social media timelines… everything scrolled all the way to the bottom. This is indeed overwhelming, but it has helped me put everything together and ~kind of~ grasp what software development looked like.

Because of my new found passion for computers, and GNOME specifically, I decided to study computer science. Since then I have participated in Google Summer of Code, worked as a contractor with GNOME technologies, and landed my current (and dream) job at Red Hat’s Desktop Team. It’s been five years now since I moved to Brno, and these have been *by far* the happiest years of my life. I have now experienced so many things that were unthinkable back when I started, I have been able to help my family, and start a family of my own here in my new home, Czech Republic.

All of this wouldn’t be possible without those who came before, paving the way for me.

This way, I wanted to make this Ten Year Celebration about you, GNOME community member that might not know how much positive change you might be bringing to other people’s lives.

Thank YOU!

Try the GNOME Nightly VM images with GNOME Boxes

It was a long time overdue but we now have bootable VM images for GNOME again. These VMs are good for testing and documenting new features before they reach distros.

To provide the best experience in terms of performance and host-guest integration, we landed in BoxesDevel (Nightly GNOME Boxes) an option to create GNOME VMs with the correct device drivers and configurations assigned to it. You know…the Boxes way.

Installing GNOME Boxes (Nightly)

1. Set up our nightlies Flatpak repository:

flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo

2. Install Boxes

flatpak install gnome-nightly org.gnome.BoxesDevel

Testing the GNOME VM image

1. Download a recent VM snapshot (linked on the unstable release announcements). It is a qcow2 file.

2. Open the new VM dialog in Boxes and click on the “GNOME Nightly” entry in the Featured Downloads section. It will open a file chooser.

Screenshot

3. After selecting the qcow2 file downloaded in step one, you can continue to Create a VM. Once the creation is over, you will be able to start the VM by clicking in it on the icon view.

Future developments

We haven’t reached a consensus yet on how we are going to distribute/store/host these VM images, that’s why we have the extra-step before, requiring to pick the file in a file chooser.

In the near future, we will host the images and you will be able to download them directly from GNOME Boxes.

Also, the latest image as of today (3.35.91) doesn’t come with spice-vdagent. It should be included in the next builds, allowing for a maximum host-guest integration like dragging and dropping files from host to guest, automatic resolution, etc…

This is just the beginning. Stay tuned!

GNOME 3.34 Release Party in Brno, Czech Republic

In September 25th we had once more a local meetup in Brno to celebrate another fantastic GNOME Release!

GNOME “Thessaloniki” 3.34 is out now and will be reaching distros in the following months. This version is the result of the work of approximately 777 contributors in the last six months. For more details, check out the release notes.

Our Brno celebrations this cycle were held in Schrott, a place with a wide variety of beers and a neat industrial decor. Dominika Vagnerova arranged delicious GNOME themed cupcakes with eatable app icons that went along pretty well with the drinks.

This was an excellent opportunity for us to sit down, relax, and chat about GNOME, Free Software, and all things that bring us together.

More photos of the event are available in our shared album, including ~exclusive~ pictures of application maintainers eating their apps’ cupcakes. :-)

Thanks everyone that showed up, special thanks to Dominika for organizing the event and Rishi for the photos. Stay tuned for 3.36!