FOSDEM 2016

For the last weekend of January, I traveled with my colleague Johan to Brussels to attend the two-day open source event FOSDEM 2016. This was our second time going to the conference, as we also visited it last year. I thought I should share notes from some of the talks I listened to, so here we go.

This talk, done by the PhD students Vasia Kalavri and Paris Carbone from Royal Institute of Technology, was probably way over my head, so I really can’t say much about it.

The gist of the talk, I think, was that you can do a lot of things with just a “summary” of your complete graph. With Gelly Streaming, Vasia and Paris have implemented an API that allows you to use this technique together with data streaming platform Apache Flink.

Testing complex software in CI

This talk was held by two guys working for Red Hat. One of them is working on Samba and the other one is working on SSSD. Both also work on libssh.

These projects all have their test suites, but on top of that, Red Hat Quality Engineering maintains additional tests suites to catch regressions in the software Red Hat ships to customers. These suites run on their own infrastructure: bare metal servers or virtualized servers. What the presenters wants is to be able incorporate these additional tests suites back into the original projects, but it’s hard due to the infrastructure and setup needed.

Enter CWRAP:

Testing your full software stack on a single machine.

I think the above quote from their website describes the goal of the project well. CWRAP is a collection of wrappers: socket_wrapper, nss_wrapper, uid_wrapper, resolv_wrapper, pam_wrapper.

Some examples:

  • Use socket_wrapper to redirect all network communication to happen over Unix sockets, to test client and server software.
  • Use uid_wrapper to fake for the application you want to test that you are root when you are not.

It was a good talk that also included some demonstrations of the software. During the Q&A, they got a question about portability, and the answer was that they “try to be portable”, which sounds good, and I hope they continue with that in mind. I didn’t know about CWRAP before the talk, but I have now started to think about how CWRAP could help us at Twingly.

An efficient and thread-safe representation of objects for JRuby+Truffle

This was another advanced talk, by one of the “PhDs in Ruby”, Benoit Daloze. He explained the techniques used to handle instance variables in different Ruby implementations: MRI 1.8, YARV (1.9+), JRuby and JRuby+Truffle.

I have to admit that I didn’t fully grasp the details in each implementation, but a nice thing Benoit included in the presentation was a “summary in Ruby code”, where he showed Ruby code equivalent to what was going on in the implementations. You can see this code for yourself in his slides. Then it was easy to get an understanding why the performance differ between the different implementations.

The talk ended with reviewing some benchmarks that has been done, one of which can be seen at the GitHub repo Are We Fast Yet?.

Conclusion

FOSDEM is a very busy conference with several presentations happening at the same time. A great thing about FOSDEM is that it’s free, but that it also attracts a lot of visitors. It’s a challenge to plan your days so you get to see as many of the presentations you want to see as possible.

One of the presentations I wanted to see but couldn’t fit into my schedule was Testing interoperability with closed-source software through scriptable diplomacy, about the interesting project FЯIDA.

This year, the presentations held in the Containers and Process Isolation devroom attracted a noticeable big audience, so unfortunately we didn’t get a chance to attend any of the container talks.

But another great thing with FOSDEM is that almost all the presentations are recorded and put online on video.fosdem.org. All the talks doesn’t seem to be there yet, but I look forward to be able to sit down and watch some of the things I missed.