Interview with Björn Michaelsen about the Hackfest

(by Jorge Rodriguez and Hans de Vries)

Please, tell us something about you and your activities? And how you became involved with Open Source Software and LibreOffice?

I started to get involved with Open Source when I was still a student. I got involved quite a bit with Gentoo (the Linux distribution) in its early days, somewhere around Gentoo 1.2. I even wrote some tools for it, only to scratch my personal itch, but it seems that for example ‘etc-proposals’ is still quite popular. I kept being involved in Open Source, although my first job after graduating from the university was not Open Source related. In 2008 I joined Sun’s OpenOffice Writer team, motivated by the opportunity to work on one of the biggest – and most important – Open Source projects in the world. I learned quite a lot about the codebase and the product there and in turn could bring in some experience from the sometimes chaotic, but always dynamic ways of Open Source projects. As of February 2011 I am employed by Canonical and take care of LibreOffice releases on Ubuntu. Since that date I am contributing code changes directly to LibreOffice. Later I also joined the Engineering Steering Committee of LibreOffice.

How was Hackfest 2011?

It was delighting in its concentration on the essentials. There was: a room, food, a possibility to sleep, a build server (in case you didn’t bring your own hardware to build LibreOffice) and there were lots of cool people to meet.

Hackfest 2011 was an Unconference (see http://en.wikipedia.org/wiki/Unconference) in its best form. It provided exactly what was needed without bureaucratic overhead. Comparing Hackfest 2011 to the then still related to OpenOffice.org Hackfest 2010 in Hamburg, there was a tremendous growth in participants and interest. If this growth continues, some more organization will be needed or the Hackfest might become a victim of its own success. On the other hand, that might be just German over-cautiousness on my part. 😉

There were eleven topics to hack. As I saw the hacks, you were the mentor for Christoph Lutz. Can you tell us something about how you and Christoph came to work together?

Christoph already had his mind clearly set on the topic, which he choose himself. I only became his mentor at the Hackfest. I just noticed what the problem was he was trying to solve at the Hackfest and that I had already meddled quite a bit with related code. So naturally, as these things go on Hackfests and Unconferences, I became his mentor.

In a few words that a newbie can understand, what was the problem that you were working on (‘Non-linear execution time in mail merge’)?

If you had a mail merge document with bookmarks in it, which is quite common in corporate environments or public authorities (like the City of Munich), creating the merged document would get needlessly and unbearably slow with a large number of repititions/recipients.

Did you and Christoph manage to solve that problem?

Yes, the goal to speed up mail merge in this scenario was archived. Actually any scenario with large numbers of bookmarks existing in one document has been made faster.

Did you encounter any difficulties working on that hack?

I didn’t expect any, but there always are some. For example the issue documented at http://nabble.documentfoundation.org/Patch-for-MarkManager-td3308412.html. Fortunately, these issues have been quickly dealt with, so we now can enjoy the fruits of the effort. Quite a bit of work was put into getting Christoph up-and-running with callgrind (http://valgrind.org/docs/manual/cl-manual.html) to safely confirm where exactly the problem was. Once that was done, fixing the issue was the easier part in the end. At least thats how I felt about it. I cant speak for Christoph’s experience here.

I read you are also working on the Gerrit project (aimed at code review). Can you tell us something about that?

We installed a test instance at http://gerrittest.libreoffice.org/ at the time of the Hackfest which is offline again now. It basically worked (kudos also to Norbert Thiebaud, who — among a thousand other Good Things he does for the project also tested Gerrit with me), but in the end we found we needed much more resources for hosting Gerrit than that virtual machine for testing could provide. This is currently being addressed, so that does not invalidate our general assessment that Gerrit would be good for the project and is desperately needed (see http://nabble.documentfoundation.org/Minutes-of-the-tech-steering-call-td3362130.html for all the gory details). More on this topic will be presented in all its epic broadness at the LibreOffice conference in Paris. I invite everyone who is there (and not only developers!) to join that talk as it will also address the general question of “how we communicate” and changes to the source code are the most important means of communication between developers.

Is there a final document or presentation where the all results of all hack topics achieved during the Hackfest are saved? And could anyone interested in these results access it?

http://wiki.documentfoundation.org/Hackfest2011 is still the best with regard to this topic as far as I know. There are no restrictions on access once it is written. However, not every participant might be inclined to spend too much time on documenting progress when he/she rather likes to fix a few more things. So, of course such documentation is valuable, but it is also a trade-off against hacker productivity. More fundamentally: you can’t force volunteers to write documentation when they’d rather write code.

Also I like to note that there were open discussions I had (for example with Andre Schnabel, Christoph Noack, Florian Effenberger and Italo Vignoli) about the general direction of the project that I found extremely valuable. The outcome of those discussions often  can’t be nailed down to some direct result in the product, but they gave me a better perception of the project as a whole.

Finally we had a good chance to exchange quite a bit about the little tricks that everybody uses to make work on LibreOffice easier “on the fly”, just by watching each other work. Even better of course, if this gets documented, which is what Regina did here: http://wiki.documentfoundation.org/User:Regina/DraftParametersForAutogenForWindows for building LibreOffice on Windows.

Finally, in general what do you think of Hackfest 2011?

It was awesome and way more than I expected. In fact, I fear a bit that further growth of the Hackfest might destroy its cozy productivity. Maybe we need more Hackfests?

What made you decide to become a LibreOffice developer?

I was a full time developer on the codebase of LibreOffice at Sun/Oracle a year ago. I had a gut feeling that the Document Foundation had a much better idea of where to take LibreOffice long term and a better understanding on how to handle a open source project as a whole. When I got the opportunity to work on Ubuntu and LibreOffice for Canonical, I didnt miss it.

What did you do to familiarize yourself with the code and development model for LibreOffice?

I knew the code quite a bit from my previous job (and http://opengrok.libreoffice.org/ helps a lot for the areas that I am not fully acquainted with), however I needed to (re-)learn the (actually much simpler) development model. There are three important channels that helped me to learn about the development model in practice:

  • IRC
  • the developer mailing list
  • the wiki

Once you knew how things were done, what was your first contribution? And why did you choose to work on that?

Making LibreOffice 3.3.X the first LibreOffice release on Ubuntu with Natty was the first thing I did — along with a lots of odds and ends towards that. It was the primary task I selected with my new job.

If you look back at that time and what you learned then, what advise would you give new developer’s (not necessarily well-seasoned ones) to make those first steps easier?

a) Start off with an Easy Hack:

http://wiki.documentfoundation.org/Development/Easy_Hacks
http://wiki.documentfoundation.org/Development/Easy_Hacks_by_required_Skill

b) Find help on IRC or the developer mailing list

It might help if you name the Easy Hack you are intending to work on, as seasoned developers are esp. interested in helping new contributors with a clear goal — it also helps finding others who are knowledgable about that area of code.

What are you working on at the moment?

Last week I was mostly setting myself up for the LibreOffice 3.5 release to be shipped with the “Precise Pangolin” LTS release, and identifying what I need and can do for that. The parts relevant to LibreOffice can be mostly be found in these two blueprints:

https://blueprints.launchpad.net/df-libreoffice/+spec/libreoffice-3-5-engineering-steering
https://blueprints.launchpad.net/ubuntu/+spec/desktop-p-libreoffice-packaging
http://status.ubuntu.com/ubuntu-precise/u/bjoern-michaelsen.html

If you had unlimited resources, what improvements or new features would you like to see added to LibreOffice?

With unlimited resources, that question isnt too tricky, is it? However, if I had a limited set of additional resources at my will, I would use it to be even faster with streamlining our existing features and functionality. And if I had — because of the additional resources — more free time at hand, I would try to implement nifty Calc chart visualizations with the OpenGL Shading Language that you can walk/fly around in. But dont tell anyone, as it would only be fun if I do it myself! 😉

Comments