Preparing for FOSDEM17

The annual FOSDEM is nearing. This year I will be participating for the third time and I’m looking forward to it! It’s a great opportunity to meet GNOME users and mingle with the other free software projects. FOSDEM was the first free software conference I attended back 3 years ago and I still really enjoy it.

Unlike the other times, I’m not going alone this time. Open Source Aalborg is arranging a trip to go together to Bruxelles so I will be going with 6 others. Most participants have never been to FOSDEM before, so I’m sure it’ll be exciting for everybody. We are renting a nice bed and breakfast from a a family down in Bruxelles for this occasion (Actually, we ended up renting two due to high demand!). It’s located in Etterbeek which is just a nice 3km walk away from FOSDEM. There is even a small kitchen so we can make some common dinners together.

claire's apartment (picture by claire and mike)
The rented apartment “La chambre haute” (picture by Claire and Jean-Michel)

Usually I also book a booth for GNOME during FOSDEM. Standing there and talking to users is usually loads of fun. The picture below is from FOSDEM 2014 where I was in the booth for the first time.

In preparation for the FOSDEM booth, I have printed out the GNOME outreach flyers I designed back a few months ago.

50 GNOME flyers printed at the local printshop.

Furthermore, I’ve worked on a new t-shirt design which Ekaterina is printing.

Mockup of FOSDEM design. Copyright belongs to the respective copyright holders.

Those who have been idling in the #engagement channel, may also have seen a picture of some gnome socks. Unfortunately I don’t think they will make it out of print in time for FOSDEM 2017, but you can have a sneak peak anyway.

Sample of the mysterious GNOME socks. Known to keep the feet warm!

GNOME Beer Night at La Becasse
There are lots of extra events happening around FOSDEM. Last year a GNOME developer experience hackfest was arranged prior to the event for example. This year’s there’s the local hackspace Bytenight and GNOME Beers event on Saturday. Arrangements has been made so that La Becasse (in the city center) has been booked. This is a good opportunity to come and have a drink with fellow GNOMEies.

The Lambic Blanc beer at La Becasse in Bruxelles City Center.

If you’re going to FOSDEM too, let me know. You can most definitely find me in the GNOME booth for a chat.

November Bug Squash Redux

Last month GNOME had a Bug Squash Month. Thanks to everyone who participated!

For this initiative I had prototyped a way to gamify things up a bit. I created a high score table and badges for the local open source groups joining in on the bug squashing. I had my own group Open Source Aalborg participating on November the 30th and we had lots of fun!

Open Source Aalborg in the process of bug squashing (CC-BY-SA 4.0)

What made bug squashing a particularly good activity for my local group was the it sets no requirement to do actual coding. I did a small presentation about bug squashing and afterwards everyone could participate regardless of background. Our award system with the badges even meant each could individually set their goal and how much effort to put into it. Want something easy? Look out for obvious obsolete bugs. Want something harder? Try to code up a patch.

Installing Fedora to build run the latest GNOME Apps and reproduce bugs (CC-BY-SA 4.0).

As participants worked out the bug reports, I was keeping the high score table up to date. A projector would then show off the high score table so everyone would know whenever we achieved a new badge.

Small physical rewards in the form of candy to everyone participating (CC-BY-SA 4.0)

As another experiment, I had made actual physical rewards for the participants consisting of candy and buiscuits. When participants managed to squash their first bug they would get something, and when our group managed to get 5 bugs squashed I would give out snacks to everyone. Fun small addition and I particularly liked the idea of rewards to everybody when we as a group met a goal. It reinforces the team spirit!

Some thoughts about what worked and what didnt work:

  • Badges which the event manager can manage live at the event happens also work the best.
  • It varies a lot how much each local group achieves in quantity. I think making badges based on other measurements works best (fx. Spooky Skeleton Award was fun!).
  • Our social media awards were awesome!
  • Good to have share a step by step guide after presentation so people can get started quickly.

I’m definitely up for getting another high score table up and running again for another bug squash sometime. There has been talk in #engagement about making a web app a bit like the Capture the flag websites for these kind of things. Would definitely be cool!

And thanks a lot Alexandre for taking an initative on this!

Whereabouts at the CoreApps Hackfest

For the past three days I have been to the Core Apps Hackfest in Berlin. It’s been nice and cozy! Kinvolk has some nice facilities that we could borrow and it’s been productive for me even if I missed the first day as anticipated.


The upcoming Newcomer Guide Revamp

At the hackfest I met with Carlos Soriano. We discussed Carlos’ experience doing the Bucarest Hackathon with Rares and Razvan. Talked about the issues that the students had and the questions they asked. The most general problem is that there is too much text in the newcomer guide. All information is useful but we need to prioritize what we present first. The students have only so much energy, and our job as guide writers is to ensure that no energy is wasted.

Since the first revamp where GNOME Love turned into the Newcomer Initiative there has also been many projects participating which newcomers can choose between. I’m super excited that so many projects care about getting newcomers but the list is also getting very long again now. We’ll try to address this in the next revamp by introducing highlights and rotate the rest as necessary. Other issues include working with discoverability of newcomer bugs, making all terminal commands copy/paste-able, make sure newcomers get developer docs installed, and maintain consistency between the website of our newcomer apps.

To address these issues I’m experimenting with using less text, using more visuals and gamifying the experience with progress bars. More to come soon.

work in progress mockup of the newcomer guide.

I made some experiments turning this mockup into reality using Tom’s new custom CSS for the moinmoin wiki. There are still a few things to resolve before we can migrate, but we are getting closer.


Julita asked me to give a talk about contributing to GNOME Design for her LinuxAtUNI event in Peru. So during the hackfest in Berlin I gave this talk by video conference. I’m super excited for the events there!




The hackfest officially ended Sunday but I stayed a day longer with Florian Muellner, working on Polari. Together with Andreas Nilsson I finalized some new iterations of various design ideas I had been playing with and managed to file a bunch of bugs. Here’s some highlights:

Mockup showing the design for room status indication, error handling for rooms and indicating prolonged waiting for rooms. See bug 775257, bug .

We finalized offline indication through using an infobar in the sidebar. bug 760833.

Andreas made a mockup of how we could expose server passwords for custom networks. Bug 775225.

Florian worked on moving our soon-to-land roomlist in the join dialog over to a GtkTreeView as we had performance issues with the GtkListBox. We also discussed things like the nickname renaming behavior, how should error messages behave in connection properties dialog and future plans.

Again, thanks to GNOME Foundation for partially sponsoring me, it’s been a great hackfest and I really enjoyed it!


Plans for Core Apps Hackfest

I have requested and received a partial sponsorship for a trip to Berlin to participate in the Core Apps Hackfest. This is a great opportunity for me to meet up with other from the GNOME community and immerse myself in contributing. I’ll be going on Saturday the 26th and leave again Tuesday the 29th. Some things I anticipate I’ll be doing includes:

Polari Whereabouts

The hackfest will be an opportunity to meet up with Florian and discuss design for Polari 3.24. Danny, a good friend of mine is currently working on Initial Setup based on mockups by Allan Day. For Polari 3.24 Rares Visalom might be looking into implementing blank states and we also hope to land room lists this cycle.


Quality Assurance on listed Newcomer Applcations

The hackfest is a great opportunity to meet a lot of maintainers of different core applications of which are listed as Newcomer applications. I think it could be a useful opportunity to go over the newcomer bugs and identify ways we can improve the in-flow of bugs, the expected level of difficulty and so forth.

Revamp Newcomer Applications to the new TemplateFancy

I have babbled a long time about wanting to get rid of the ugly HTML tables we currently use to make “fancy” layouts in the GNOME wiki. As part of the Newcomer initiative I made the TemplateFancy template which is now required to be used by applications listed in the Newcomer guide. I investigated how to add custom CSS classes with MoinMoin wiki and Tom Tryfonidis has managed to complete convert the template from using HTML tables to custom CSS classes. This has resulted in a webpage which has easier-to-read MoinMoin markup, separation of content and layout and which possibly is more mobile-friendly.

Furthermore, these custom classes are generic and can be applied anywhere on the GNOME wiki, providing much better opportunity to make visually pleasing documentation. This really excites me! We can be much more flexible in terms of how we want to visualize information and I’m hoping this can lead to a more pleasing experience. These custom classes has already landed so I’ll looking at converting newcomer application pages to the new template markup this weekend. :-)

If I have time this weekend I’ll also look into getting these classes and examples of how to use them documented on the wiki. But most of all I’m looking forward to getting my batteries recharged and participate in the many discussions listed in the agenda on how to bring GNOME’s core applications forward. Thanks to GNOME Foundation for sponsoring part of this trip!


November is Bugsquash month – Open Source Aalborg is joining

From the initiative page:
For a month, we focus on bug triaging to get our bug tracker in a better shape. Maintainers then get a clearer picture of the state of their module, users have a better chance to see their issues resolved, and software quality improves as a consequence.


Me and my friend Daniel from Open Source Aalborg will arrange that the local participants from the open source group in Aalborg will join in on the final bug squashing day, November the 30th. OS Aalborg has recently joined a lot of Capture the flag’s and I think we will try to put up some very basic infrastructure (read google forms + spreadsheet) to do something similar for the GNOME Bug Squashing initiative.

Open Source Aalborg busy working on open source projects at the Hal9k hackerspace. Maybe we will livestream?

Apart from the many individuals idling in #bugs on GNOME IRC, there are currently also three open source groups participating in the squashing: San Fransisco on Nov 17th, Strasbourg on Nov 26th and Aalborg on the 30th.

We are talking in #engagement on GNOME IRC about creating “virtual teams” and make a fun competition around the initative. I think it’ll have a motivating effect to have something “capture the flag” -like for the local participants and in the end it’s for a better purpose. :-)

Check out the initiative here and read the triage guide if you want to join in!

GNOME outreach flyer for local groups and events

One of my very early contributions to GNOME was a flyer. FOSDEM 2014 was one of the first conferences I attended and with me I had brought printouts of this flyer which we handed out to people from the GNOME stand.


That was 2 and a half year ago and the flyer has started to show its age. GNOME shell has received a lot of changes style-wise since then. We now have more well-defined brand colors and I learned a lot more about communication and visual design. So over the last three days I have worked out a new flyer.

gnome-flyerThe flyers as seen when printed (Image by Rares Visalom)

The flyer focus on presenting GNOME and our vision with the ultimate goal of reaching out to users and give them the initial motivation to participate in our awesome community.



In the first two sections I focused on communicating GNOME in a tangible way. This is important because I feel the other information (vision, community etc) requires that you know what the fundamentals of what GNOME is in order to have impact. Furthermore attention is put on the user-visible aspects of GNOME – the shell and our applications. Hopefully someone who picks up a flyer might already recognize a few of the application icons shown in there.


The rest of the flyer then moves onto explaining our vision and values. First section is there to introduce our community structure in GNOME. Second section is a (very) friendly version describing exactly what “free” means when we say that GNOME is a free desktop.


The last section is about the more personal goals you can set for yourself which you can use when getting started as motivational factor for getting involved with GNOME. Initially you might want to do this in your free time to improving your skills, get more experience doing team work etc. My experience is that this motivation later is replaced by relational motivation factors as you start to bond with the community and partake in the team activities. The great photos shown in this section are taken by Carla Quintana Carrasco (thanks!).


Finally, the flyer contains information on how to get involved – online and possibly via a local GNOME group.

Getting the flyer

Is your local free software group doing an outreach event? Are you having a GNOME booth at a conference? Then this flyer is for you. I have uploaded it as a folder on engagement team’s gnome cloud where the source SVG’s and sample PDF’s are freely available for download (photos under CC-BY-NC 2.0, the rest CC-BY-SA 4.0).

If you have a local group and plan on printing this for an event, I encourage you to edit the gnome-outreach-flyer-middle-pages.svg and add links to your web pages, contact information, social media etc. there before printing. As an example see the gnome_flyer_bucharest.pdf.

This iteration of the flyer is made to be printed out on a duplex A4 printer. I definitely recommend getting it printed at a print shop on some proper paper but otherwise the flyer is possible to print on any printer – you can specify 0mm bleed when saving the SVG as PDF from Inkscape. In other cases I have made margin big enough for 4-5 mm bleed (although I’m not sure how to make Inkscape do crop marks). Notice that the A4 page containing front and back has to be upside down for the end result to be correct. If you need to edit the front page you can use “Ctrl+A” and afterwards “V” will flip the contents vertically back and forth in Inkscape. Use a tool like PdfMod to join the front-back pdf with the middle-contents pdf and you are good to go.

In the future I’m thinking it might be nice to expand the flyer a bit. I have some ideas including:

  • Make a separate page showing off pictures from our GNOME conferences and talk a bit about them.
  • Have sections dedicated to talking about the different teams in GNOME such as translation, engagement, coding, etc.
  • Have a dedicated page to possible local groups with more elaborate information and pictures of key persons in the group a newcomer might want to talk to.
  • At the moment the flyer targets people who are already familiar with Linux. That might not always be the case so it might be wise to have (optional) pages dedicated to talk about Linux, gnu’s and penguins.

If you have feedback or ideas yourself, do feel free to share them – this is first iteration. Thanks to Rares, Nuritzi and Alexandre and the rest of the engagement team for giving comments, feedback and encouragement for working on this!

How to install GNOME Builder Nightly with Flatpak

I wanted to try the latest version of Builder (gnome-builder 3.22) so I decided to install it with Flatpak. Here is a screenshot of GNOME Builder.


To run gnome builder nightly with any of my instructions and use all features you need Flatpak 0.6.13 or later. In case you run GNOME Software 3.23 or later I made a .flatpakref for GNOME Builder Nightly. You can download it and open it with GNOME Software to install Builder (note: you need to have Flatpak installed):

If that doesn’t work for you, you can also do it by Flatpak’s commandline:

Installing the flatpakref

  1. Install gnome-nightly.flatpakrepo
  2. flatpak --user remote-add gnome-nightly gnome-nightly.flatpakrepo

  3. Install org.gnome.Sdk from gnome-nightly using the command underneath
  4. flatpak --user install gnome-nightly org.gnome.Sdk

  5. Install the gnome-builder-nightly.flatpakref:
  6. flatpak --user install --from gnome-builder-nightly.flatpakref

    Manual approach

  1. Install GNOME Nightly SDK keys:
  2. wget
    flatpak --user remote-add --gpg-import=nightly.gpg gnome-nightly

    See also:

  3. Install GNOME Nightly SDK:
  4. flatpak --user install gnome-nightly org.gnome.Sdk

  5. Install GNOME Nightly Apps keys:
  6. wget
    flatpak --user remote-add --gpg-import=nightly.gpg gnome-nightly-apps

    See also:

  7. Install org.gnome.Builder
  8. flatpak --user install gnome-nightly-apps org.gnome.Builder

    EDIT: Sorry i had forgotten to add --user to all the commands, should be fixed now!
    EDIT2: in case you are wondering why the flatpakrepo and flatpakref is hosted on the gnome cloud space it’s because I haven’t gotten in touch with the right people to get official files up in the space where they (imo) belong. stay tuned!

Behind the GNOME 3.22 Release Video

Every six months GNOME 3.22 releases and for the past six releases I’ve produced a release video to accompany our release notes.

Click to watch the release video on youtubeClick the image to watch on youtube. Also available as download (Ogg Theora).

Schedule-wise a number of things were different for producing the video. I started later than usual this release. The voice-over was also produced later in the production phase than usual. In total I spent 18 days working on the video.


This is less than usual. The time saving mostly stems from spending less time recording for the release video. At first thought you might think recording would be a breeze but it can be one of the most frustrating aspects of making the videos. Each cycle the GNOME community lands improvement a wide set of GNOME’s applications. So before each release I have to find some way to run a dozen of applications from master. I do this either by:

  1. Running the application in Fedora Rawhide with a NoDebug kernel.
  2. Attempting to build the application with JHBuild.
  3. See if a nightly flatpak exists of the application and attempt to run that.

Even then, I might run into boring problems. The rawhide packages may not be up to date or the application might not build or run. In these situations I usually attempt to get in touch with maintainers/developers but in this particular cycle I had little time on my hands to handle these issues. This unfortunately means that I had to skip including some awesome applications in this video such as properly showing GNOME Games, GNOME Builder’s profiler support and the revamped keyboard settings. Which is frustrating of course! If things went smoother with recording, I could maximize my spending time better on editing and with much more energy to do so too. In the past I have asked maintainers to record new features. This might be a nice time-saving approach since maintainers usually have their applications built and know how to showcase the new improvements. On the other hand I also know that maintainers can be just as time constrained as myself at this point in the release cycle. If you are maintainer, let me know: If I gave you a tarball with everything you need, would you be willing to spend time recording the new features you developed if I asked you?

The voice-over finished two days before release which had some interesting side-effects. By then I had already finished most of the video material and so it allowed the manuscript to be tested and modified extensively. Some sections of the release video now goes into more detail about the changes than in previous videos. The changes are also covered at slower pace and more in-depth. A big downside is that a late voiceover delays the subtitles translations tremendously due to the way the translation tools work. After submitting subtitles it’s not possible for me to change the timing, so subtitles would have to be made at a point where I can freeze the timing of the voiceover. This is unfortunately one of the last steps in the editing stage. However, thanks to the hard work of our translation teams who translated exceptionally quick this cycle, making the video available in 16 different languages 48 hours after release.

New developments in this video

Even on a tight schedule I had room to experiment with a few new things. I had some fun working on Jakub Steiner’s wallpapers in an attempt to animate them. You probably barely notice it in the video (that’s on purpose), so here’s some separate videos showing them (click the thumbnails below).

Adwaita-morning animated, click to watch on youtube
Adwaita- morning Overexposed, click to watch on youtube
Adwaita-day, click to watch on youtube

In one case I needed to change the same settings across 20 strips which blender usually can do using a “Copy to Selected” operation. This particular case was on changing a property inside a noise modifier inside a keyframe on an F-Curve for a strip – which Blender didn’t seem to support, hmm. Fortunately blender makes scripting some python easy and with the help of the internet I did so. Yes, very specific use case but very convenient if you work with noise modifiers and dont feel like manually editing 20 noise modifiers.

screenshot-from-2016-09-26-10-51-36The top left is the python script, top right is the preview, bottom right are the overlayed image sequences and bottom left shows the opacity F-curves with noise modifiers applied to them to change color randomly over time.

This cycle I put more of the work into the VSE instead of the 3D view which both saved me some time and cost me some time. One one hand it means less in-between render steps and this saves time if what I want to do is something simple animation-wise anyway. On the other hand it prolongs the final render time which can be cumbersome if you just want to render a preview of the video. The key probably is to find a balance here.

img_20160921_004700Rendering the release video (CC-BY-SA 4.0)

Thanks to Karen and Mike for working on the amazing voiceover, the GNOME Design Team for providing graphical assets, the translation team for translations, the engagement team for feedback and Jonathan Yamoty for the background music. And thanks to everyone who contributed improvements to GNOME this cycle! For me, making the release video and is not only about promoting the new version but also about celebrating the awesome contributions by the community. This is my contribution to help giving everyone renewed energy and make next release even better.

GUADEC 2016: BoFs

The Birds of a feather sessions at GUADEC was a great opportunity to sit down and get work done. I participated in the engagement team’s BoF which involved lots of brainstorming for GNOME’s 20th birthday. Over the two days we delegated all the different tasks to do and planned what should be done up to and doing the event. Together with Sri I’ll be working on merchandise for the event which among other things could involve beer mugs.

28795698090_35a9a8ea74_kThe engagement team brainstorm in the form of sticky notes and whiteboard doodles. Picture by Jakub Steiner (CC-BY 2.0).

The BoF days were also spent on Polari work. Florian has had lots of code restructuring patches waiting for review. Hopefully they will enable us to land exciting features such as automatic nickserv authentication support soon. A couple of fixes has also landed which might make bouncer users happy.

I spoke with Philip Chimento about GJS and what could be interesting stuff to work on there. There are patches for having GJS snippets in Builder. I’m also hoping to someday see GJS documentation integrated with I couldn’t attend the GJS BoF itself but heard there was lots of interest in it so I’m looking forward to follow any developments here!

On the last BoF day there was an Ambassadors BoF. We are a lot of open source groups around the world and several also have people from the GNOME community involved in them. We discussed how we could distribute marketing materials and how the engagement team could help the GNOME groups around the world. Personally I’d love to see free and open source groups connect more and share their experiences and knowledge. Another suggestion which came up was to make easily transportable newcomer packages which could contain things like stickers, pin buttons and balloons.

I met both old and new faces and GUADEC this year. Now I’m home, batteries once again loaded over the top with energy. Thanks to GNOME Foundation for sponsoring my travel and stay!

GUADEC 2016: Core Days

I’m having the opportunity to once again go to GUADEC. I’ve had many great discussions, There’s so many great people to meet here.

Core Day 1: Friday
On the first core day I held a talk with Carlos about the newcomer initiative. Carlos has been involved for three years while I myself have been involved since around fall last year. Newcomers is a rebrand of GNOME Love and aims to be a clear step-by-step guide aiming to get developers introduced to GNOME development. Currently building relies on Jhbuild but im hoping for an even brighter future. Flatpak and GNOME Nightly SDK have the potential to make building gnome applications completely distribution agnostic. Should Nightly not build one day, we can also in large amount of cases fall back to an older version of nightly from a day or two before without this being a problem for the newcomer. If I made you curious you can watch the talk here.

28342074124_2bab4cfd9d_o-binliMe and Carlos giving the newcomers talk. Picture by Bin Li (CC-NC-SA 2.0)

During the evening there was a nice picnic in the evening with GNOME Games, good watermelon and great fun.

Core Day 2 Saturday
Saturday went with attending talks. To mention a few I attended there is Emmanuelle’s GTK: Are we in the future yet? and GNOME Music: State of the union. In the afternoon I also participated in the AGM where me and Carlos gave a brief review of the year working on the newcomer intiative.

Core Day 3 Sunday
On the third day I held a lighting talk about GUADEC’s streaming artwork. I spoke about the difference between SVG and HTML coordinate systems when applying transformations and how you can script and animate transformations using python and CCC’s intro-outro generator.

During the conference I had the opportunity to talk with many contributors. One of the items which I had on my list of interst was the GNOME developer center and what is going to happen there. I was also approached on the topic of which applications could be suitable for the newcomer guide once they get a nice wiki page and newcomer bugs filed against them.

As volunteer for GUADEC I had the chance to work on a lot of artwork. I made streaming artwork for the talk recordings. I also got requested to make artwork for the unconference slots.


For this year’s GUADEC T-shirts I created a conference-specific design and a generic design like last year. The conference-specific design was opted for and can be seen below:

28331201703_5188f8b064_zThe red edition of the GUADEC 2016 T-shirt worn by one Benjamin Berg from the local GUADEC team. Picture by Bin Li (CC-NC-SA 2.0)

Big hugs to GNOME Foundation for sponsoring my travel and accomodation. This thanks also goes out to all you donors who enable GNOME Foundation to sponsor contributors like me and events like GUADEC. Stay tuned for a blog post on the BoF days.