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!

GUADEC 2019

Meeting my fellow GNOMies is something I look forward to every year. For eight years now I have traveled to participate in GUADEC and returned home with my head thinking of next year’s edition of the conference.

This year, I was busy with lots of activities, but still, I managed to chill with the friends I work with online throughout the whole year.  Putting faces into new names is also something very pleasant in these opportunities.

In the pre-registration party, I hosted a “Newcomers dinner“. Not many people could attend because of their personal travel plans, but those that participated were excited about being at the conference and getting to know so many cool people.

Besides that, it was the first GUADEC that we had a trained Code of Conduct Incident Response Team. We did an extensive training workshop with Otter Tech. Highly recommended!

Right at the first talks day, I hosted the interns’ lightning talks, that thanks to the amazing local team, are recorded and available online. The audience (and myself) were enthusiastic about hearing from the interns. After a few years of organizing these activities, I can still remember myself being an intern and giving my lightning talk back in 2012. Time flies! :-)

The quality of talks is always outstanding, so I listed below the ones I attended and recommend watching online:

  • Desktop Secrets Management for the Future by Daiki Ueno: I have lately been heavily interested in application sandboxing, so it was great catching up with Daiki’s work and ideas for our keyring story.
  • Managing GNOME Sessions with Systemd by Benjamin Berg and Iain Lane: It is being great and educative to follow their progress throughout the years on this task. The cherry on the cake is seeing this work landing and explained in Benjamin’s blog post.
  • Designing Multi-Process Application Security by Christian Hergert: Watching Christian talk is always exciting and educational. We are lucky to have such skillful developer in our project, and I definitely learned valuable lessons on application security.
  • Portals – Principles and Practice by Matthias Clasen: As I mentioned above, I have been lately interested in application sandboxing, so I couldn’t miss Matthias’ talk on Portals. It is so nice to see our application ecosystem evolving with Flatpak and its technologies.
  • GNU HEALTH: The Fight for our Rights in the Public Health System by Luis  Falcón: I personally care a lot about such social issues especially for being myself originally from the developing world, where people often don’t enjoy the same rights people in the developed world take for granted. The keynote was very well chosen.
  • Environmentally Friendly GNOME by Philip Withnall: IMPORTANT! We are running out of time to stop climate change, and I think every segment of society needs to discuss the issue. I hope to see the ideas discussed in this talk brought forward in our community.
  • Simple is Hard – Creating Beautiful App Icons by Jakub Steiner: Jimmac is so creative and talented that I can’t ever miss his talks. It is great to work with the design team on a daily basis, and this was a good opportunity to better understand their creative processes.
  • Accessibility Features for Mutter/GNOME Shell on Wayland by Oliver Fourdan: This work is very important. Oliver has made significant progress in shrinking the accessibility gap we currently have. Thanks for that!
  • Designing GNOME Mobile Apps by Tobias Bernard: Exciting work! It was great to see their progress on making GNOME apps adaptative. I hope this can make our platform even more attractive to vendors interested in building mobile OSes.
  • The Growth of GNOME by Neil McGovern: It is very reassuring listening to Neil describe the plans of growth for the GNOME Foundation.
  • Lightning Talks: It is always fun to see fellow GNOMies delivering their talk considering the lightning talks’ time constraint. :-D

During the BoF days, I conducted the Newcomers workshop, where we had various participants learning hands-on how to make their first code contribution to the GNOME project. Thanks everyone that showed up to participate and to help newcomers. I hope we can improve and repeat the workshop all over the world. GNOME.Asia will have its edition of the Newcomers workshop, so if you will be around in Gresik, don’t miss it!

In the Boxes BoF we discussed a roadmap to land some highly anticipated features such as UEFI support, Import/Export VMs, etc… Stay tuned here and also in the @BoxesGNOME Twitter account, where I have been doing outreach for our project by interacting with a part of our user base [wherever they are].

The social events were a blast. We had delicious food, great music, and passionate conversations at the Gala Dinner. The Picnic Day was fun and relaxing. The Museum BoF was enjoyable and nerdy (how I like it ;-)).

Checkout the photos!

Thanks to my employer, Red Hat, for sponsoring my trip and accommodation in the beautiful Thessaloniki!

Trip report: Flock to Fedora 2019 + Fedora Flatpaks

This was my first time at Flock to Fedora, and it was a blast! The conference took place from August 8th to August 11th in the astonishing city of Budapest.

It is very convenient to host the conference at the same place where people are accommodated. The whole infrastructure and conference organization was top-notch. Nice social events and great comfort during the talks/workshops.

At the very beginning, it was pleasant to watch Matthew Miller’s “The State of Fedora”, especially the emphasis on Silverblue being “the future of Fedora Workstation”, and the overview of all the other teams building fantastic things on top of Fedora. The “Facebook Loves Fedora” talk was definitely the one we talked the most about during the breaks. Long story short, Facebook’s IT is supporting Fedora Workstations for its employees and they have a quite appealing story of their adoption. All recorded Flock talks are planned to be published in the Fedora Project YouTube channel, so I encourage you to watch specifically this quick one (25 minutes) once it is out.

Debarshi Ray’s “Toolbox” talk was well received by the audience, and the post-talk corridor convo was productive. People seemed curious and optimistic about the solutions we have for “making their workflow-breakage less painful”. :-) Unfortunately Rishi’s talk was scheduled at the same time slot as Christian Schaller’s “Fedora Workstation update and roadmap”. It is great having talks recorded for this very reason.

“Fedora IoT” by Peter Robinson was a nice surprise. Peter brought an Exxon Mobil representative to talk about their use and challenges while using Fedora technologies in IoT devices. These folks have a very interesting set of problems to solve, and I would love FOSS to be the go-to option in this market (any market, really!). I am personally interested in home/domestic automation with open hardware tech, and I can see how the “Fedora IoT” efforts can have a beneficial impact on the enterprise but also in STEM education.

To start the second day, Denise Dumas presented a very reassuring keynote talk on “Red Hat + IBM” and how that impacts the Fedora project. Once again,  it was very satisfying to hear “Fedora is RHEL’s upstream” being emphasized. The Red Hat commitment to upstream communities is something we hear a lot internally, but I feel we rarely express that to the outside world (to the point that a significant amount of people eventually question that).

My colleagues Jiri Eischmann and Tomas Popela had a talk on Silverblue. It gathered an interested audience that engaged in Q&A with us afterwards. Some of the questions were positive feedback that we should take, and some others were useful questions that enabled us to clarify some common misunderstandings and lack of knowledge about Silverblue, ostree, containers, Flatpak, and all things. :-)

At the end of the day I presented a “Fedora Flatpaks” talk. You can watch its recording below.

After the talk, I was approached by a couple of packagers interested in converting their RPMed apps into Flatpaks. Win-Win!

The river cruise and dinner in the Danube is now history! Check out all the pics https://photos.app.goo.gl/rz1VZqdw6MKeasuc8

I am looking forward to seeing you all again in DevConf.CZ and/or Flock to Fedora 2020.

Newcomers workshop @ GUADEC 2019

This year’s GUADEC is approaching and I can already feel people’s excitement while talking about our annual conference.  It is important that we benefit from having so many GNOMies together in the same location to help the next generation to get started in our project. For this reason, we are planning a workshop during the first day of the BoFs (check our wiki page for more info).

The Newcomers Workshop aims at helping newcomers solve their first Gitlab issue. Historically, Carlos Soriano has championed the initiative (thank Carlos when you see him) and I have participated, guiding dozens of people in the universities here in Brno. In the past, other community members were organizing the workshop all over the world. We plan to expand the initiative by having even more GNOME contributors organizing similar events at a local level.

In the workshop we go step-by-step in the GNOME Newcomers Guide, making sure nobody gets stuck on anything.  As simple as that. The more GNOME developers participate the better, since we can benefit from their project-specific expertise.

The workshop is taking place on August 26th, and anybody interested in making their first contribution is welcome! Save the date!

Settings: new Search panel

I haven’t been working on GNOME Settings for quite some time now. Currently, I am focusing mostly on GNOME Boxes, Usage, and Fedora Silverblue. To be fair I still have some love for Settings and I enjoy context-switching once in a while to hack on code bases which I don’t face daily. Unfortunately I can’t do this more often.

A few years ago I pushed a WIP version of the Settings “Search” panel that never got merged because we were in a moment of transition in the project and at the time we thought that introducing Drag & Drop capabilities to GtkListBox would make sense still in gtk3. Fast forward, we are far from even starting to port Settings to gtk4, but people got to use the panels! For this reason, I rebased and iterated a bit over the Search panel in order to make it identical to the mockups. The final result is previewed below and will be available in our next stable release, 3.34.

P.S.: I haven’t blogged much in the last couple of years mostly because I always felt that blog posts required a certain amount of *amazingness*. Now I’m convinced that small pills, highlighting something as small as the work above, have a place in this blog (better than not blogging at all). :-)

Introducing GNOME Usage’s Storage panel

GNOME Usage is a new GNOME application to visualize system resources such as memory consumption and disk space. It has been developed by Petr Stetka, a high school intern in our Red Hat office in Brno. Petr is an outstanding coder for such a young fellow and has done a great job with Usage!

Usage is powered by libgtop, the same library used by GNOME System Monitor. One is not a replacement for the other, they complement our user experience by offering two different use cases: Usage is for the everyday user that  wants to check which application is eating their resources, and System Monitor is for the expert that knows a bit of operating system internals and wants more technical information being displayed. Besides, Usage has a bit of Baobab too. It contains a Storage panel that allows for a quick analysis of disk space.

The Storage panel has been recently rewritten both in the backend and user interface. It is much faster at listing the filesystem tree and much nicer to interact with.

The screenshot above shows how it looks like in my Videos folder. Selecting a file in the sidebar makes the slice in the pie chart pop. The filesystem tree is presented in a DzlStackList, so getting back to the parent folder is smooth and pleasant.

Each file type gets a different color, and these are consistent. Directories are indicated by a bigger ball in the list. Clicking an item opens the corresponding file. Selecting its checkbox allows for batch deletion. Very intuitive!

GNOME Usage is available in the Fedora repositories. Before you ask, there isn’t a Flatpak because libgtop needs access to the processes running in the host. I plan to work on introducing a Usage daemon that will enable Usage to be Flatpaked AND would allow us to provide historical performance data instead of just real time.

All in all, there’s more coming to Usage soon. Peter is now moving into other opportunities and continuing his studies, so I will continue his work in Usage. If you are interested in contributing to the project, you can reach me out on IRC #usage. Stay tuned!

User account fallback images in GNOME 3.32

Your face might resemble this one in the left (avatar-default) as much as it could be pretty much everyone else using the same computer as you. With this in mind, we introduced a small feature in GNOME 3.32 that intends to make it easier for users to identify themselves in a list of system users, such as in the login screen or in Settings.

From now on, GNOME won’t set the “avatar-default” icon for users created in the Initial Setup or in Setting. It will create a colourful image with the user’s initials on it.

The colour palette is the same used in the new icon guidelines (if you haven’t heard yet, we are living now a Big App Icon Revolution in GNOME!). User names (full names) are mapped to colours in the palette, and therefore are consistent everywhere you enter the exact full user name. So get used to your colour!

Nothing else about the user image setup is going to change. You still can:

  1. Select a picture with a file chooser.
  2. Take a picture with your webcam.
  3. Select one of the GNOME stock avatars.

Another detail that came with these changes is that now user images will be rounded everywhere in GNOME. These efforts are part of the “Consistent user images across GNOME” initiative.

User Accounts panel in Settings
GNOME Initial Setup
Login screen

GNOME 3.32.0 is coming out next week! o/