The annual European gathering of open source enthusiasts took place in Brussels this weekend. For the fourth time, I had the chance to take part in these two days of lectures and conversations with fellow developers from around the world about freedom, sharing and open collaboration. Here's what I learned there.
Lennart Poettering delivered his annual systemd update to an audience of over 1,500 filling up the largest auditorium at the campus at 10AM on Saturday. Quite an impressive feat, considering that many people returned from the Friday beer event in the small hours of the morning.
In 2015, many distributions adopted systemd as their primary init system, including Debian and Ubuntu. Things are going well and the project is becoming an even more important part of the ecosystem.
The maintainers moved the codebase from Freedesktop to Github. Even though many people aren’t the biggest supporters of the platform, it has brought the project better visibility and the highest number of contributors in history.
Lennart summarised the progress made on different components in 2015 and hinted where the work will go this year. A lot happened in networkd and distributions begun adopting it already, even though it isn't finished yet. In 2016, we should also see the implementation of DNSSEC in resolved being completed.
Open source design
I sat in the open-source design room for the best part of Saturday’s afternoon, listening to some very inspiring talks from people who contribute to open source, but don’t write any code.
Open source in the UK government
Bernard Tyers told the audience how they build gov.uk, a collection of government services and information in the UK. I love the site and it has helped me many times in the past. So it amazed me to hear that they publish their sources freely on Github.
As one of the first government services in the world, GDS started focusing on user’s needs rather than their own and they ingrained this philosophy into all design thinking across the platform. Over the past four years, they managed to consolidate many public offices under the centralised and accessible Gov.uk portal. Some departments welcome their help, others find change more difficult. In a few cases, the policy itself stands in the way of usability as the wording must be accurate and law certainly isn't renowned for clarity.
Although their processes aren’t quite open to contributors yet, it’s great to see so much voluntary transparency in a government organisation. And who knows? A few years down the road, we might be able to commit to the homepage of a country. How cool is that?
Check out the slides to learn more.
Designing with and for developers
Being the only design person on the project, she faces interesting challenges as the project is developed in the open and targets programmers — a highly technical audience.
Learning the subject domain makes better designers. Belén spent 2 years learning git, she joined the mailing lists and hangs out with the devs on IRC which helps her understand their work and needs.
Despite the maintainers being also the target audience for her designs, she stressed the importance of reaching out to other users to avoid maintainer bias.
Find her slide deck here.
Designers vs. developers
How can designers and developers work better together? Hollie Lubbock answered this question in the next presentation, drawing from her experiences designing digital products.
Design isn’t about things being pretty, but about serving the users. The best brands will see people identify through owning or using a product (like Apple or Airbnb).
People perceive the quality through the small details and for high-quality products, these details become the product.
One of the worst things a designer can do is to finish her work and hand it over to developers to implement. Without making the devs part of the feedback loop, you're at risk of making incorrect assumptions. After all, they're the people who will turn your vision to reality.
Hollie suggested pairing up designers and developers, just as copywriters and art directors cooperate in design agencies. Designer and developer can prototype rapidly and make sure all the proposed interactions are feasible for a given platform. The designer will also be able to make sure none of the important details get lost on the way.
Designer's compromises in open source
Ecaterina Moraru spoke about the odds and ends of doing design for open source projects. Even though it’s improving, designers are nowhere near as common contributors to open source as developers. That can make your job easier and a lot more difficult. There usually isn’t anybody around to give you task, so you’ll need to find your own. Depending on your skill level, this can be a liberating or rather intimidating experience.
Since your proposals will be approved and implemented by the maintainers of the project, it's not difficult fall for maintainer bias. They're the people who decide what gets done. Explain your thinking process and work with them to keep the design user-centric.
See Ecaterina's slides for more.
Overcoming your designer ego
Over the three decades that free software has been around, developers worked out their de-facto standards for decentralised and open collaboration. Maintainers, committers, git repos, bug trackers, wikis, mailing lists and IRC channels — many projects have at least a few of these.
Open source is certainly no longer seen as just code, but contributing as a designer can be still more difficult. Not as many designers work in the open so things can be a bit all over the place.
Elio Qoshi from Mozilla, who presented this session, suggested that designers coming to open projects can struggle with empathy sometimes. They might not be taking into account developers’s points about feasibility or not willing to share their workflows and thinking with others at the expense of losing some of the credit.
He stressed that even if you don’t use open tools, it’s important to share your work in open formats and license it properly so others can chip in.
In the evening, I moved to the Mozilla devroom to listen to Hannes Verschore’s lecture about micro-benchmarks in JS.
Discussion boards and Stack Overflow questions are full of speed comparisons of different optimisations and algorithms. These isolated benchmarks often show dramatic differences in performance, yielding a clear winner that people will use.
Unfortunately, it’s not as simple. Compilers do a range of optimisations based on many characteristics of the entire program. They can rearrange instructions and run them in parallel. Changing the environment alters the way the compiler will optimise your code and ultimately affect the results.
But what to do if micro-benchmarks don’t work? Hannes suggests profiling your scripts and focusing on algorithms instead. Micro-optimising in high-level languages is a moving target as the compilers change all the time.
GPLv4 and Affero LGPL
Tom Marble interviewed Richard Stallman — the founder of the Free Software Foundation and the man who gave the conference its 'F — in the Legal and Policy Issues room on Sunday morning. They touched many topics about licensing and the philosophy of free software and open source.
Stallman said that he regretted not making GPL self-updating like the Creative Commons licences. This would give projects the option to switch to later versions of the licence without having to ask for permission of all individual contributors first. He had thought that the community would reject that idea but it worked out quite well for CC. There are no plans to make GPLv4 at the moment but the update clause would be one of the things the FSF would consider for it.
The distro devroom had a series of interesting sessions that kept filling it up throughout both days of the conference. I made it to two on Sunday.
SUSE Studio lets you build customised appliences — Linux images with specific packages and configuration — in the browser. It supports a variety of image formats and cloud deployments, and you can even boot the image in your browser window via the test drive feature.
Over the past two years they added an API and webhooks to help with automation, increased the performance of the test drive and dropped support of http, making the site https-only.
Core OS supports atomic updates. It keeps two read-only copies of
when an update arrives, it's applied over the unused one. The OS then boots
into it, leaving the old working and untouched. If something goes wrong, the
system will boot back into the original state and retry the update.
Brian said that they were exploring the option of automatic updates similar to the way Chrome installs updates. People aren’t very good at updating, but running up-to-date software is critical in large-scale production environments.
He also explained how they use systemd, etcd, rkt, docker, locksmith and kubernetes. Check out the video when it comes out!
As always, I missed a few great sessions due to overcrowding or schedule clashes. But that’s what happens when more than 5000 hackers get together for 600+ talks over the weekend. I drunk Belgian beer, ate waffles and saw the beautiful Grand Place in the heart of Brussels. It was lots of fun.
Thanks to the organisers and all the volunteers who made this event possible. I hope to see y’all next year!
Don’t worry if you couldn’t make it this year. Most of the sessions were recorded and will be published in the following weeks here. Check out the schedule and pick what sessions would you like to watch.
Thanks for reading! Sign up for my newsletter to be the first to know when my next post comes out.