OCOW summit 2016

I’ve recently had the pleasure to visit Beijing and attend the 11th edition of the “Open Source China Open Source World” summit, organized by the China OSS Promotion Union (COPU). COPU is a non-government organization composed of companies, communities and other players in the software industry, with the goal of promoting the development of Linux and OSS in China. (You can find more information on their website.)

I have been invited to the summit by Emily Chen to represent the GNOME Foundation. This was my first time attending an event of this kind (and my first time in China!), so I was rather curious and didn’t know what to expect!

The summit

The summit lasted one day and a half (June 24-25); the first day had a single track of talks and presentations by representatives of various international and local companies and communities. Many of the “big names” in the industry were there (Intel, Red Hat, SUSE, Linaro, Microsoft, Lenovo, EMC, Alibaba, Huawei, …), and most of the presentations were focused around cloud computing, big data and storage technologies. In the afternoon I gave a presentation about GNOME and Flatpak, called “A new model for application distribution”. I think it was well-received by the audience, even if the topic was rather different from most of the other talks. You can find the slides I used for my presentation here.

The morning of the second day, a round-table discussion was held on the topics of open source, innovation and new economies, with delegates from various companies pitching in their views as to what are the limiting factors for a wider adoption of OSS in China, starting from education and all the way up to the industry, and how that relates to emerging trends such as IoT, cloud computing and AI.


Group photo


My name tag


Even Microsoft loves Linux!


The summit was very different from all the other OSS-related events I attended before, and it felt a lot more focused on the business aspect of open source rather than community-building. There’s clearly a lot of interest for open source in China though, and many companies pride themselves for being active contributors or maintainers of projects such as OpenStack, the Linux Kernel, Spark and many more. I was hoping to see more interest in desktop-related technologies, but I don’t think this was actually the best forum for that. Still, I was glad to learn about the deepin OS project, which looks quite cool and seems to share some goals (and code) with GNOME.

Beijing GNOME User Group

After the round-table, the Beijing GNOME User Group (BJGUG) had organized an afternoon event at the local SUSE office, and I gave another presentation about the new features in the upcoming GNOME 3.22 release. You can find the slides I used for my presentation here. Even though me and Emily got there quite late because of the crazy Beijing traffic, people patiently waited for us and the event went nicely, with the audience interacting and asking a lot of questions.


Preparing for the presentation


Talking about GNOME 3.22 and Flatpak


I had a really great time in Beijing, and I hope that my presence helped bringing publicity and more awareness to our project outside of the “typical” OSS channels. Beijing is a huge and fascinating city, and I only had a glimpse into what it has to offer. I spent the day after the summit doing some sightseeing around the Forbidden City, and I felt like I was transported into a different world.




I want to thank Emily Chen, Michael Lee and Cathy Ju for inviting me to the summit and all their help with logistics, Bin Li and the other folks at BJGUG for organizing the afternoon event and for hosting my presentation, and my employer Endless, for supporting my travel to Beijing. Looking forward to next year!

Developer Experience Hackfest 2016

I’m happy to attend the Developer Experience hackfest, once again in Brussels thanks to our kind hosts at Betacowork.

My focus has been primarily on xdg-app; you can find more coverage on Alex’s blog; I’ve been helping out with the creation of new application manifests, and I’ve been able to add Documents, Weather and Clocks. I’ve also improved the nightly SDK build manifests with a few missing libraries along the way, and added a patch to GeoClue to allow building without the service backend.

I hope to see most of the GNOME applications gaining an xdg-app manifest this cycle, so that we’ll be able to install them as bundles in time for the 3.20 release, now that gnome-software can manage them!

Today, I’m looking forward to spend time with Jonas and Mattias to work on a plan for offline support in GNOME Maps.

I also want to thank the GNOME Foundation for sponsoring my travel, Betacowork again for hosting the hackfest, Collabora for sponsoring food and snacks and my employer, Endless, for giving me the chance to attend.


GUADEC raffle!

I will be attending GUADEC again this year for the 8th time, in the city of Gothenburg, and I can’t wait!

A few days ago Karen came up with the wonderful idea of a raffle for people attending the conference; I really liked it and when I asked my employer if they could donate some hardware to the cause, I quickly got two Endless computers approved!

The rules are simple:

  • one of the prizes will be raffled exclusively between the volunteers organizing the conference
  • the same person cannot win two prizes

We would love to have more winners! If you work for a company that makes hardware that runs GNOME-based technology, and think you can donate some to the cause, feel free to get in touch with me.

If you want to participate in the raffle, all you have to do is registering for GUADEC. If you haven’t done so, do it now! I want to note that neither Endless nor other companies donating to the raffle will receive any personal information about the registered participants.


DX Hackfest in Cambridge

I’m thrilled to spend this week attending the 2015 edition of the Developer Experience hackfest! I arrived in Cambridge Sunday morning and I’ll be hacking away with my GNOME friends until Thursday. My main focus this year is on application bundling and sandboxing: I’ve been giving Alex’s xdg-app a spin, and even though there’s still a lot to do in terms of tooling, it looks extremely promising.

I also spent some time working on a proposal for a preview widget in GTK, which is being discussed on the GTK mailing list as I write too.

Stay tuned on Planet GNOME more updates about this week’s hackfest.

I would like to thank the GNOME Foundation for contributing to my travel expenses, and my employer Endless for letting me attend this event.


Support GNOME Builder!

The GNOME Builder fundraising is about halfway into its timeline, and reached the first funding milestone a few days ago! That’s fantastic news for our ecosystem, which will be able to rely on a great platform to write applications, but the fundraising is not over! There are more milestones to be met, and more money means Christian will be able to implement more features and make the project even more awesome.

I am glad my employer decided to support the project with a conspicuous donation; at Endless we write a lot of applications using the GNOME platform, and we often have faced the same struggles Christian describes about getting new developers started: how do I create or browse documentation? How do I write an UI file and integrate it with my code? How do I create a GResource or talk to a DBus service? What is the most efficient way to debug my application?

The problems Builder is trying to solve are very real and have been slowing down our ecosystem for a long time. People and companies who believe in GNOME and a solid application ecosystem around it should consider contributing to it, whether with money or developer resources!

DX Hackfest in Berlin

This week I’ve been in Berlin for another edition of the DX Hackfest. Lots of very interesting discussions, and it was just awesome to see some familiar faces after a very long time.

Wednesday I worked with Jon and Tomeu on GIR-based developer documentation, improving upon the work that Jasper, Giovanni and others have done in the past. Our goal was to understand the next steps needed to achieve feature-parity with the current docbook-based approach, and how documentation pages fit with distribution, both offline for use in Devhelp, and online. Ideally we would like to use exactly the same HTML content, but this is currently not the case. Jon and Tomeu kept working on this in the past couple of days too, so stay tuned for more updates from them on this topic!

Yesterday I focused myself on GTK work instead. A long standing goal for a while has been removing the GtkThemingEngine subclass from the Adwaita theme and that was blocked mostly on a CSS-based implementation of focus rings in GTK. Benjamin and I agreed on an implementation using CSS outlines, and this has finally landed in GTK master! The rest of the day was spent discussing a roadmap for further GTK development, about which others have blogged.

Today, we kept the discussions focused mostly around GTK, with part 2 of the above roadmap discussion still going on as I type this post. I also kept coding more deprecations for the old focus style properties, to complete the work mentioned above.

I’d like to thank the GNOME Foundation for allowing me to attend this hackfest, and the wonderful guys at EndoCode for the great hospitality at their office!



It’s been a while since I’ve written on this blog, and a lot of things have changed in my life in the meantime.

April 12 was my last day working at Red Hat. It has been an incredible ride in these two years and a half, and I can say I enjoyed every single day on the job. The Desktop Team of has some of the most talented and passionate people I’ve ever worked with, and I’m so thankful for having been part of it and having learned so much.

All good stories come to an end though and after a not so easy decision, on April 29 I started my new job at Endless Mobile. We’re building an operating system to power computers in the developing world, and it’s going to be based on GNOME. It’s a very exciting job, and I moved from Boston to San Francisco a couple of weeks ago!

This also means that after some period of settlement (I haven’t found an apartment yet!) I will still be around in the community and resume my GNOME duties in some capacity 🙂

I can’t really give too many details about my new job just yet, but stay tuned!


DX Hackfest part 2

I’m writing this post back home after a week in Brussels. I feel it has been overall a very interesting week; the hackfest has been great, and I really enjoyed the intense weekend of FOSDEM.


Following from my first report, I kept working in the Toolkit group for the rest of the time.
Quite some time was spent in a couple of all-hands discussions about choosing a recommended language for application development in GNOME; I’m really glad we were able to make a decision, and looking back at some of the code I wrote for GNOME in the last year or so, I think it’s the right one, and couldn’t be happier about the choice of JS. Travis did an awesome job explaining the reasoning behind this in his post, and I suggest you read it if you want to know more.

The rest of the time, we dived into some of the topics from the list we made initially; there were lots of conversations, but I think we had a very good start on at least two important topics:

  • it was great to see people interested in helping with the new notification API for GTK. We spent a couple of hours with Ryan and Lars (can’t find your blog, sorry!) fleshing out some of the details, and Lars already started writing code for the GLib part of the implementation, for which we settled on a GLib 2.38/GNOME 3.10 timeframe. A follow-up summary will be posted to gtk-devel-list soon detailing the changes from the previous draft, and we ideally will start porting core applications and testing the API in real world usage early next cycle.
  • with Jon and Alex we took a closer look at Tristan‘s EggWrapBox, which looks like a great start towards having a GtkIconView-like container for widgets (i.e. that doesn’t use cell renderers). After putting together a quick patch to allow height-for-width-based scaling in GtkImage we were able to get to our goal of having centered icons dynamically changing size and rearranging themselves together with the window. More time was then spent looking at the current EggWrapBox API, cleaning it and bringing it up-to-date to the GTK3 align/expand container flags design, and drafting a set of methods that could consistently work on both the wrap box and EggListBox. There’s also a very interesting overlap with Alberto‘s libmodel project, since the good ol’ GtkTreeModel might not be the best fit for this; unfortunately we didn’t have enough time to dive too much into the details of how that would work.

Further work on the other features we identified as interesting the first day is basically up for grabs, so if you feel adventurous and want to help improving our toolkit please get in touch with us.

I also suggest reading these other posts by Colin, Allan, Alex and Meg to find out what was discussed in the other groups.


This was my second experience with this great conference (first one was 2009), and I had a great time overall. I especially enjoyed the beer ^W the fact that the conference was spread out among more buildings than I remembered, making it possible to walk around the hallways without feeling oppressed by all the people squeezed in a tiny space.
I liked a lot Vincent’s talk about the GNOME community, and it was refreshing to see a huge number of people in the auditorium raising their hands on Vincent’s questions “do you love GNOME 3?”.
It was of course nice to hang out with friends and colleagues you only see once or twice an year, I wish we had more of this 🙂

I want to thank again the GNOME Foundation and Red Hat for funding my trip, and the people at the beautiful Betagroup Cowork space for hosting (for free!) the hackfest, you guys rock!






DX Hackfest

This week I’m attending the Developer Experience hackfest in Brussels. Our goal is to make it easy for developers to write applications for GNOME, identifying the problems or roadblocks and make our platform and documentation nice and attractive.

We had a very productive first day yesterday; after an introduction from Alberto we split into four groups, each to address and analyze different areas: Application distribution and sandboxing, Documentation, Toolkit and Development tools. You can find some information about what the various teams worked on from the main page.

I was in the toolkit group together with Jon and Alex, amongst others, and here are our notes for the first day: https://live.gnome.org/DeveloperExperience/Hackfest2013/Toolkit

I would like to thank Red Hat and the GNOME Foundation for giving me the chance to attend this hackfest! I will also stick around for FOSDEM this weekend…see you there.


Search improvements in GNOME 3.8

One of the most useful features of GNOME 3 is the awesome “just type” search system. Being a heavy keyboard user myself, I just love the ability to hit and type what I’m looking for.
The results returned by the system are not limited to what GNOME Shell handles internally; since GNOME 3.4 third-party applications have been able to have the search string be forwarded to them and provide additional results, by implementing the org.gnome.Shell.SearchProvider DBus API. The Shell then uses the provided information and displays results in a grid view, which I’m sure you’re familiar with if you used GNOME 3.

In GNOME 3.8, scheduled for March, we want to make a step forward in making search even more useful, and add some missing features and bling in the process.

Search Settings

As presented already by Allan, Matthias and Bastien, the first piece of news is we now have a settings panel to configure search options.

Search Settings

Here’s a screenshot of the panel in action

The panel allows to control the presence of each application individually among the returned results, as well as toggling on and off application results from the Shell entirely; it also makes it possible to configure the order in which they are presented by the Shell.

Search Locations dialog

Search locations configuration

The little gear icon in the toolbar would ideally pop up a search configuration dialog provided by the application itself, but since the infrastructure to make that possible is not there yet, right now it displays the dialog above. The locations there are those that will be indexed by Tracker, and you can add and remove them individually.

Shell Search Layout

The panel is not the only new feature; last summer Tanner Doshier worked on a relayout of how results are displayed in the Shell, based on these awesome mockups from our design team. Unfortunately his work didn’t make it in time for the 3.6 release, so this cycle I picked up his patches and brought them up to speed for inclusion in git master.
As you can see from the design page, changes are both visual and functional:

  • search provider results are now displayed in a list, for a better distinction between them and the application launchers.
  • the icon of the application is now displayed close to its result section: this is useful to immediately identify it in the list. Clicking it will launch a full search in the application itself, if what you’re looking for is not amongst the top results.
  • there’s now space for the search provider to show a descriptive string for each result, which can give more context as to why a result matters for the search string.

Most of this design is already implemented in 3.7.4, including the infrastructure to make it possible, but there’s still a lot of visual details to figure out and polish before the final release. In order to support the new search features, we introduced an org.gnome.Shell.SearchProvider2 DBus API. The Shell still supports launching providers implementing the previous interface, but of course those won’t get to use the new features (e.g. passing the search down to the application).
Some work also still needs to be done to nicely support highlighting the search terms in descriptive texts returned from search results. If you’re interested to help, feel free to get in touch!

Finally, I made a short video to showcase this feature – that is all code already in GNOME git. Enjoy!