FOSDEM 2018

FOSDEM Logo FOSDEM Logo, CC-BY 2.0 Belgium License

FOSDEM is a massive weekend event for developers of free and open source software to come together and share ideas. It happens every year, at Université libre de Bruxelles, Campus du Solbosch.

Video recordings of all this year’s talks are available on both the FOSDEM site and on YouTube.

(It may be ironic that I’m linking to YouTube for a conference about Free Open Source Software, but this way FOSDEM don’t have to pay for the bandwidth)

This year I was fortunate enough to have a talk I submitted to the Go Devroom accepted! So this is part travel blog, part conference write-up, and part “wow, I just spoke in front of almost 200 people for the first time”.

This post turned out to be significantly longer than I initially planned, so here’s the short version: Being able to go to conferences even only tangentially related to my day job, and having Sky Betting & Gaming paying for it, is pretty great. Talking at events like this is kinda scary, but definitely worth doing.

I also want to give a special thanks to Francesc and Maartje from the Go Devroom, who were amazing, and barely took any breaks throughout Saturday. I’m super impressed.

With that out of the way, let’s begin!


Friday - Travel Day + LGBTQ Slack @ FOSDEM Meetup

I was travelling from Sheffield, which meant I woke up at silly o’clock in the morning to get ready to go and catch an early train.

My first train, from Sheffield to London, was somehow deserted, despite the fact that it was peak time. Convenient, considering the seat reservations were broken, and someone was in my seat.

The second train, from London to Brussels, was more interesting. This was my first time on Eurostar. I didn’t really have the chance to enjoy it though, as I was far too busy watching pre-downloaded Netflix videos.

But I did promise my Twitter followers photos of the Eurostar, so:

When I arrived in Brussels, I met up with a friend of mine, one of the Go Devroom organisers, who kindly showed me how Brussels public transport worked. Side-note, Citymapper is a pretty good app for every city I’ve used it for, and helped me out a lot this weekend.

I got to the hotel, checked in, and rested in bed for a bit. In the evening, I met up with a bunch of folk from the LGBTQ in Technology slack for dinner, graciously paid for by iText.

Food was from a restaurant called ‘T Kelderke. I tried to eat something Belgian most days of the trip, which in this case was pâté, followed by marolienne style meatballs. So far, I’m liking the food that Belgium has to offer.

It was a good evening, especially considering most of us had never met in person before. But I was speaking the next day, so needed to get some rest.


Saturday - Go Devroom

Francesc's very own Gopher by Ashley McNamara FRANCESC Gopher, CC-BY-NC-SA 4.0, Ashley McNamara

All talks for the Devroom:

I slept in, so I was well rested and ready for my talk, watched a couple of talks from my hotel room, practiced my talk some more, then made my way to the venue.

This was definitely a good idea, in terms of getting sufficient rest to be ready for my talk.

This was not a good idea, in terms of being able to access the devroom. Today I learned: FOSDEM is busy.

When I finally got to the venue, around 1230 in the end, the Go Devroom was full.

The entire time.

Francesc’s tweet from the morning sums it up well:

I only actually managed to get into the room about half an hour before my talk, and that was only because I needed to be there so that the handoff from one talk to the other was as quick as possible.

This is not the fault of the devroom organisers, who are lovely people by the way. As I understand it, the problem is inherent to the fact that the venue (Université libre de Bruxelles, Campus du Solbosch) is the only place big enough that the FOSDEM organisers can get for free. So that was disappointing, but I know now what to expect if I go back next year, and what to do. i.e. if you want to be in a popular devroom, get there early, and never leave.

But all the talks were livestreamed on the FOSDEM website, and released to YouTube and the FOSDEM website afterwards, so I wasn’t going to miss a talk just because I wasn’t in the room.

State of Go - What’s new in Go 1.10

By Francesc Campoy

slides

Francesc went through what’s new in Go 1.10 (which should be coming within days of this post going live). If you’re interested in Go, you can view the slides yourself, and also the draft release notes: https://tip.golang.org/doc/go1.10

Highlights include:

  • No changes to the language
  • Dropping support for old versions of some OSs
  • The Go tools are becoming easier for newcomers to use…
  • … and faster too, with some caching added
  • Few minor changes to some of the core library, made with Go’s promise of compatibility in mind
    • i.e. some stuff works slightly differently, but just upgrade, you’re probably fine
  • Oh, and more emojis are supported now (I may have an unhealthy obsession with emoji)
  • The founder of Women Who Go has stepped down, but four community members (including Maartje, one of the devroom organisers) have stepped up to fill the position. Good luck to the four of them!

Dep Deep Dive

By Sam Boyer

Dep is a dependency manager for Go. We use it for one of our complex Go projects, and it works really well for us. I’d not personally been involved in getting that set up, so I’ve not actually seen it working. I’ve just been seeing that it does work really well by some magic.

So it was very useful for me to watch Sam go through how it works.

The case for interface{}

By Sam Whited

Discusses the empty interface interface{}, that is an interesting feature of Go; something with the potential to be misused. Sam went through some examples of where it’s really useful to have this, and how to use it effectively without shooting yourself in the foot.

I’ve made use of this in some of my own code, and found it to be frustrating, so it was nice to see some good examples of how to use it effectively.

Computer Vision Using Go And OpenCV

By Ron Evans

A talk about GoCV, a Go wrapper around the OpenCV library.

Computer vision is one of those fields which to me, as someone who’s not actually looked into it much beyond the occasional Computerphile video on YouTube, just seems like magic.

This was a fun and interesting talk to watch, and a lot of the examples Ron went into, he covered the theory of what the computer vision techniques being used were, before essentially saying “but you don’t need to know that, because there’s a single function you can call”.

My original theory that this may in fact be magic remains.

And there was a bit involving a drone, which flew around identifying objects with TensorFlow. That was cool.

Make your Go go faster!

By Bryan Boreham

This one was right before my talk, so I actually got to be in the room for this one!

I learned a lot about the tools available for analysing how go applications run. It’s quite possible that some of the issues we’ve seen recently with some of our Go apps could be resolved by following these techniques. Certainly something I’ll need to look into.

Distributing DevOps tools using GoLang and Containers, for Fun and Profit!

By Lucy Davinhart (me!)

I’m not actually going to talk about the topic of my talk here. Rather I’ll talk about what it was like to give the talk. I will do a follow-up blog post about the thing I actually talked about, because it’s pretty cool (at least, I think so).

This is the first time I’ve ever spoken in front of that many people, let alone about anything technical.

For now, I’ll just say… wow, that was scary. I’ve been worried about it for weeks, and spending so much time preparing for this, that when the actual talk came around, it didn’t feel too different to me practicing in my living room in front of my cats.

There were a few minor technical issues. For example, half-way through my talk the microphone died, so we stopped for about 30 seconds while we got the backup microphone working. But beyond that, it went well I think, especially for something I’ve not done on that scale before.

In summary, I got well outside of my comfort zone… and it wasn’t actually too bad. It was scary leading up to it, but in the moment it was good, and at the end it felt great. I’m kinda thinking now that I want to do another one, if I can come up with something cool/silly to talk about. Not necessarily FOSDEM, for reasons I’ve outlined already. But there are no shortages of places I can do talks.


Saturday - After/before-Party

I’m referring to it as the after/before party, partly because the notes I wrote after I got back to the hotel were in a state of mild inebriation, paid for by Source{d} (Francesc’s company). But also because this was an event for speakers at the Go Devroom on Saturday, as well as speakers at the Source Code Analysis Devroom on Sunday.

It took place in a board-game cafe, across the road from what looked like a video game cafe. It was a good evening, especially considering the fact that it was booked with only a few days notice, after the previous venue cancelled.

There was a seating plan, which I’m guessing must have been randomised. The idea was that you don’t sit next to people you know, which in turn means you end up socialising with people you’ve never met before. As a natural introvert, this worried me. I don’t like being forced to socialise with people I don’t know. But I’d already gone out of my comfort zone once today, so why not twice?

I got on with the folk around me. I can’t remember who everyone was, but I do recall that the four of us on our end of the table ended up having an interesting discussion about Kubernetes, and whether or not it is suitable for persistent storage for large databases, among many many other things that I can’t remember anymore.

I did get hints of impostor syndrome. Everyone here had either done a talk today, or was doing one tomorrow, and everyone I talked to seemed to be much smarter than me have more experience than me. But it was a good evening regardless.


Sunday - Miscellaneous FOSDEM Talks

My original thinking was that I’d spend all of today at the containers devroom.

I underestimated just how tired I would be this morning, so what actually happened was that I stayed in bed, and watched a few talks from there, before heading out to meatspace-FOSDEM.

I also got to use FOSDEM’s pretty cool video review tool SReview to check the recording of my talk, trim it to the required length, and submit it for upload.

You want a Clean Desktop OS? Containerize it

By Sanja Bonic

I missed this one, but it was something I really wanted to see live, so I watched it later when the recording was uploaded. It sounded like something I was introduced to back at DockerCon Europe 2017: Docker on the Desktop, by Maartje Eyskens, inspired by Docker Containers on the Desktop, by Jessie Frazelle.

Indeed, Sanja starts by referencing Jessie’s post on the subject. She talks about why you would want to containerize your workstation, in a way that’s not quite the same as what Jessie does. And she introduces Fedora Atomic Workstation (https://www.projectatomic.io/blog/2018/02/fedora-atomic-workstation/), which is a desktop OS that uses the same principles.

My list of things to try with my old laptops gets longer.

(Note: the video quality on this one is not very good)

Babelfish: a universal code parser for source code analysis

By Francesc Campoy

Run by the Go devroom organiser Francesc.

I’m not too familiar with source code analysis, but I think I followed along well enough. Babelfish seems like a useful tool. I’ll have to run some of my code through it and see what it comes up with.

So you think you can validate email addresses

By Stavros Korokithakis

An amusing and not entirely serious talk all about RFC5321, or why validating an email address is more complicated than most people assume. It took the form of audience participation in a quiz, featuring a bunch of examples you might think are invalid but actually are valid.

The big takeaway from this is just check there’s at least one @ in it, and send a validation email to it. Anything more than that and you’re probably wasting your time.

This particular talk prompted some discussion this morning, and a round of Code Golf to determine the minimum code needed for such minimal validation. The winner:

func isEmailValid(e string) bool {
    return strings.Count(e, "@") > 0
}

Terraform is maturing

By Walter Heck

We use Terraform a lot at work, to manage our Infrastructure as Code (primarily stuff in AWS). I even use it at home, because of course I do.

This talk goes through an outline of what Terraform is, comparing it to the early days of Puppet. Then it covers a few annoyances which I’ve found when using Terraform, and how to potentially solve them.

diskimage-builder: Building Linux Images for Cloud / Virtualization / Container

By Andreas Florath

This is something my team is working on improving right now, how we create golden images for on-prem VMs, AWS, and for containers. Currently we’re using Packer, but I’m open to looking into any technology that looks useful.

Andreas’ talk covered diskimage-builder, a tool for building these images. It does seem like a very different way of building images compared to Packer. For example, Packer doesn’t impose the same restrictions on what you can build, compared to Packer’s small list of popular distributions. However, this comes at the price of having to define more stuff yourself.

Alas, Andreas was unfamiliar with Packer so was unable to address the differences in more detail, so this is something I’ll have to investigate further in my own time later.

(Note: the video is cropped on the sides)


Sunday - Meatspace

Most of my time at the venue was spent wandering round the various stands, talking to people, and generally just acquiring merchandise and stickers.

I got to see some cool open source projects I’d not heard of before.

On the Fedora stand they had something called Fedorator which they use to flash USB sticks with LiveCD images. This is pretty cool, and I’m kinda tempted to make one myself following their instructions, even though I don’t (currently) have a use for such a thing.

I discovered that ReactOS is a thing which, as I understand it, is an open source operating system intended to be compatible with Windows software and drivers. Another thing I don’t have a use for myself, but which I think is pretty cool that it exists.

They didn’t have a stand, but I ended up wandering round for most of the afternoon with one of the CircleCI devs, who convinced me pretty quickly that CircleCI is, in their words, “pretty great”. So I’ve started using that, and seeing how it compares to TravisCI. Thus far, I agree: pretty great.

I learned that MuseScore is a thing that exists. It’s been years since I was into composing music, but the fact that there’s a good open source piece of software for doing it means that, maybe, at some point, I might pick it up again.

And FOSDEM themselves were doing something pretty cool. They had a Grafana dashboard set up, showing how many t-shirts and hoodies they had left, as well as a graph of sales-per-minute.

Grafana dashboard of shirts remaining


Sunday Evening and Monday - Goodbye FOSDEM!

Once FOSDEM was over, myself and a couple of friends headed into the centre of Brussels again for some dinner. We ended up at a nice restaurant called Drug Opera, which was super fancy inside, yet reasonably priced. Tempting to add that to my very short list of “restaurants worth travelling to a different country to eat at”.

Drug Opera restarant, exterior

Monday morning I checked out of the hotel, after checking my packing Trello twice (yes, of course I use Trello to keep track of what’s in my suitcase; I’m exactly that kind of a nerd).

Now I had about 5 hours before I could go through security at Brussels Midi, so I took the opportunity to wander round Brussels for a few hours, without the aid of a map (for the most part). I ended up taking a bunch of touristy photos.

Went back to Drug Opera for lunch, which reaffirmed my opinion that this was a restaurant worth travelling for.

I also stocked up on some Kriek lambic to bring back with me, which I’d discovered over the past few days was really nice. Belgian chocolate too, because it would be silly not to.

And then back on the Eurostar for some more Netflix, while Belgium, France and England rushed by outside the window.


FOSDEM, you were an interesting experience. I didn’t know what I was getting into, so wasn’t really prepared for how busy you were.

Brussels, you were great to me. I’m gonna have to visit again.

So… same time next year, perhaps?