Interview with LibreOffice localizers around the world: Helen & Sophie

Today we interview two great women, Helen Ushakova and Sophie Gautier, from the Russophone and Francophone communities.helenrussian

LibreOffice can only exist since people are working on it: so please, tell us a bit about yourself.

Helen:  My name is Elena Ushakova, also known by nicknames as Helen Russian (helenrussian, helen_russian). I am 36 years old. I’m full-time employed as a corporate web applications programmer.

Sophie: My almost full name is Sophie Gautier, also known as sgauti or sophi or sofi. I’m usually a women, traveling in the open source world since 14 years now.

In what other software projects have you been involved?

H: In the past I used to work on some projects but it was a short time. Seriously I liked only OpenOffice.org. I took care of OOo UI and Help translations. We have the user forum and the site with useful tips. Now we are making the same things for LibreOffice. Also, I’m participating a little in the Apache OpenOffice project (mainly in the wiki).

S:  I’ve been deeply involved in the OpenOffice.org project, working on different areas, trying to understand all the aspect of this strange organization. I’ve done localization in French for other very small projects. I also participate in several associations.

Where do you live (and/or study)?

H:  Yekaterinburg, Russia.

S: I live where my feet are 😉 I guess it’s Paris for more than a year, yeah!

What do you do when you’re not working on LibreOffice?

H:  Well, I’ve got another pet project – DMOZ (Open Directory Project). I’m an ODP Editor since 2008. Also I like a lot of interesting things: whether it be cooking dinner for my family or playing musical instruments.

S: I own a consulting and training company dedicated to open source applications for the desktop. Creating objects and drawing is my favorite way to escape from the world.

When do you usually spend time on the project?

H: I don’t know… Every day. In the morning, in the evening. Each time when it is needed.

sgaS: Any time I’ve time, I think about it or work on it, I’m afraid it’s a kind of passion (no, I didn’t say poison!).

How did you hear about LibreOffice?

H: From news. And I remember the feeling of joy “Finally someone took this step” and then there was a long period of my doubts. The whole 10 long days. 🙂

S: I’ve been involved in The Document Foundation and LibreOffice since its creation, so the first time I heard about it was probably in my dreams.

Why did you get involved? Is LibreOffice popular in your native-language? 

H: First, people who are involved in the project are its precious thing. I love to be together with these people, to work in a team, to feel friendly support. Second, in the department of the company which I work, ODF is an internal corporate standard, so I dedicate a part of my work time to LibreOffice. As for the popularity of LibreOffice in Russia, we will definitely have to strive for it. However it still isn’t the main goal.

S:  I got involved with localization during the Openoffice.org time, I’ve been taught by professional linguists and it was natural for me to go on with the French localization of LibreOffice. LibreOffice is more and more used in the French speaking countries and supported by the French Government, hence my motivation to continue the work too.

What was your initial experience of contributing to LibreOffice like?

H: It is obvious: I sent a file with the Russian UI translation update on 2010-Oct-8. After that it became too late to retreat. 🙂

S: I was very happy to work with so many different people, with so many skills, having so many different ways of being and with so much understanding.

What have you done since then?

H: Russian LibreOffice community does a lot of work. My contribution is not very big. Usually I translate UI, resolve some administrative questions on the user forum or sites. Sometime I help Free Office users on our forum or in G+ LibreOffice Russia community.

S:  Speaking about FR l10n, not much. I’m still alone to localize the UI/Help with my old tools and my friend named grep. But now, the French QA team is helping a lot in proof reading and correcting my mistakes (and I’m sure they often have a good laugh at them 🙂

What would be your best suggestion or advice for anyone interested in getting involved in the localization of LibreOffice?

H: Don’t be afraid to start any work alone. Be ready for errors. Always begin any work in LibreOffice only in a good mood 🙂 . And in this case LibreOffice will be source of inspiration for you and your personal growth.

S: My advice would be : do not be afraid by the amount of words all around you when you’ll begin, you’ll see that fast and soon, the green will eat the grey on Pootle. Also, we are a team, always here and happy to help each other, so never hesitate to ask either on a translation or the use of the tools.

What is your vision for the future and/or what would you most like to see improved in LibreOffice?

H: I would like each NLC to have more attention from the global community and be more involved into community life. Let’s communicate more.

S: What I would like to see the most improved is the representation of the native language projects and their communication with the international project. A native language project is like a small projection of the international project, but with its specificity due to the language. It should not be seen as a barrier or a fragmentation, it’s on the contrary what makes our diversity and our plurality, but we need to communicate more, always more because we are one and only one project.

Thanks a lot for your answers and your time!

H: You’re welcome!

S:  Thanks a lot for your interview!

Interview done and prepared by Charles-H. Schulz & Marc Paré.

Developer Interview: KOHEI YOSHIDA

(Submitted by Marc Paré, November 5, 2012)

Kohei YoshidaKohei Yoshida is a well-known individual on the LibreOffice project. To many, he is considered as one of the core group of developers who have contributed to the steady development and code improvement of the project, and one of the leaders of the calc component. Kohei takes a little time out from his busy schedule to let us know a little more about himself and why the LibreOffice project appeals to him.

LibreOffice can only exist since people are working on it: so please, tell us a bit about yourself.

My name is Kohei Yoshida. I’m a Japanese national currently living in Raleigh, North Carolina. I used to work in the environmental science field but decided to change my profession to software engineering to make it more aligned with my passion and obsession. I’m very glad I made that switch. Now I can justify my obsession instead of apologizing for it since I’m now getting paid for it.

In what other software projects have you been involved?

Besides LibreOffice? Not much actually. Of course, I was involved in the OpenOffice.org project back in the old days, but that’s about it.

I once worked at SlickEdit as part of their development team for about one year, before I moved on to join Novell to work on OpenOffice.org full-time.

Where do you live (and/or study)?

I live in Raleigh, North Carolina.

What do you do when you’re not working on LibreOffice?

Bits and pieces of various things, such as taking my son to his Taekwondo practice, watching TV, mostly documentaries and news to learn about interesting developments around the globe, working out to stay in good shape…. that sort of stuff.

When do you usually spend time on the project?

That’s easy. Since this is my full-time job, I do it just like how other people go to work. But I also put a fair amount of personal time into it to mostly move forward some of my side projects that would not warrant using my employer’s time.

What is your preferred text editor? And why?

Unlike many other core developers who use mostly either emacs or vim, I do use SlickEdit which is a well-capable commercial code editor. It has built-in symbol database that scales very well with very large code base such as LibreOffice code base. It also has tons of other useful features that save me lots of time and effort. The fact that I used to work there developing the editor probably helped me initiate myself with the editor, and get stuck with it, so to speak.

How did you hear about LibreOffice?

Well, it’s hard not to have heard about LibreOffice as I’ve been there since day one.

Why did you get involved?

I got involved through my employer, SUSE.

What was your initial experience of contributing to LibreOffice like?

Again, this question may not apply to me personally since I was involved in LibreOffice from day one. But I think it’s worth saying that the new git-based repository made my job 100 times easier than our old system, which was basically nothing more than just a hand-crafted, custom patch management system wrapped around the upstream cvs/subversion/mercurial repos. If you are familiar with the Go-oo project, that’s what I’m talking about here.
Now that I look back, the system back then with the Go-oo project, it was terribly inefficient and not a great place to go wild with one’s creativity. I didn’t necessarily think that back in the days, but now I do.
There were rough edges even with the system we use in the LibreOffice project when we just started. But the good news is that we have since improved our system and most of the kinks are now gone. I’m very happy about that.

What have you done since then?

Well, I’ve done a lot of things since the project started. Due to the nature of my work, I tend to go to many corners of Calc, so it’s hard for me to list individual achievements. That said, overall, what I’ve done can be categorized as follows: 1) code cleanups, 2) new features and enhancements, and 3) core refactoring for better maintainability/performance/memory footprints. Recently, I’m mostly focusing on performance enhancements and core refactoring to make the code more readily extensible, easier to maintain and generally perform better. These changes are not very visible to the end users, but in my opinion just as important as more visible features.
I’ve also worked to extract some of the code into external projects, and have it maintained outside LibreOffice. Projects such as mdds and orcus are good examples of that effort.

What do you think was your most important contribution to LibreOffice so far?

The improvement in the pivot table engine, which is finally in a very good shape as of 3.6, and numerous unit test code I’ve written since inception of this project.

How will that improve things for users?

Hopefully users will have to wait less for things to get done when using pivot table. Also, having more code automatically tested by our unit test framework means less chance of having regressions. Unfortunately the coverage of our unit test framework is still not high enough, and we should still stay diligent in writing more and more test codes to accompany bug fixes. But things are improving, and hopefully as we make more releases and make more code changes (accompanied by more test code) we will increase the coverage of our unit test.

What is your vision for the future and/or what would you most like to see improved in LibreOffice?

My vision for this project is to make the code more modular; extracting more code into mdds, orcus etc to offload code maintenance, and more unit test coverage to improve the quality of the binary that we release. Of course, I can’t forget about making Calc run a lot speedier in all areas. But to achieve that goal we need to make lots of changes in lots of areas.
I would also like to someday spend some serious time tinkering with and understanding the drawing layer code. For now, I only know just a little, barely enough to get by. But some day that level of knowledge won’t be enough to carry out large scale refactoring or re-architecting of Calc’s drawing layer, which relies in large part on the common drawing layer code that all apps depend on. So, I’d like us to improve that situation one day.
The chart code is another beast that we don’t have an intimate knowledge of. Several of us have spent some time in that code, including myself, but the code still feels “foreign”. I’d like to see that changed.
Also, we really need to do something about the poor performance of ods and xlsx imports. But this is a difficult problem to solve, and while I have some ideas to improve the load performance, it’s for the long-term rather than short-term. I have some prototype ideas in orcus. The challenge is to figure out how to materialize those ideas to make them happen in LibreOffice proper. That won’t be easy, but we have to move in that direction some day.
Lastly, I’d really like to refactor Calc’s core cell storage to take advantage of newer CPU’s vectorization support, take advantage of GPU, or perhaps allow some super computer cluster to be plugged in to massively speed up formula calculations. Achieving that will be a major architectural challenge, but it’s a very interesting one.

What advise would you give new developers to make their first LibreOffice hacking steps easier?

Get a good idea of what you want to accomplish with this project, and if possible, try to establish a main area of interest, and keep forging ahead.

Anything else interesting you get up to when not hacking?

Not much, actually. I tend to spend a lot of time researching the latest on clean energy development. Too bad I can’t do much about it myself and I can only get to learn what awesome stuff other people have been doing in that area. But I do believe that we have a global-scale energy crisis, and I really appreciate those who are trying to solve this very hard problem. Meanwhile, I do my part by trying to make the application run faster which will consume less CPU power which will in turn draw less electricity and generate less excess heat.

Thanks a lot for your answers and time. We look forward to more of your great code in our favorite office suite.

Developer Interview: Lionel Elie Mamane, LibreOffice Base Maintainer and Volunteer

(Interview by Michael Meeks, edited by Marc Paré)

In our continuing series “Developer Interview”, Lionel Elie Mamane discusses his work with LibreOffice code and of his particular interest with Base. His lead role in maintaining the Base module is helping raise the use of Base among the LibreOffice community at large.

Lionel Elie Mamane

How did you hear about LibreOffice?

Debian switched to it from OpenOffice.org.

LibreOffice can only exist if people are working on it; so please, tell us a bit about yourself. In what other software projects have you been involved?

Mainly Debian, but I’ve always sent patches left and right to scratch my itches; a more or less random selection:

  • IPv6 support for privoxy, an anonyimising HTTP proxy
  • bugfix for gfax, a graphical interface to send faxes: handle spaces in telefax numbers gracefully
  • Linux, the kernel: In SIT tunnels set to “tos inherit”, propagate IPv6 transport class byte from the inner packet to the ToS byte in the outer packet, like IPIP and GRE tunnels already did
  • Pan (newsreader): fix interaction with mutt (email user agent)
  • Pan: bug in thread filter
  • Fixes in some LaTeX packages
  • mutt (email user agent): fix parsing of mailto: URLs

What do you do when you’re not working on LibreOffice?

Finish up my PhD dissertation in theoretical computer science/computer mathematics.

What is your thesis?

The field is proof assistants, that is programs that help mathematicians make theorems (proofs), manage them, etc. But also that check that a proof is correct.

My thesis is that the way current / historic proof assistants are going at it, we will “never” have a nice proof that we can show to a human and that will be “nice” to read. We have to change a bit (but not that much) how they are organized, both as concrete systems (programs), but also the theoretical underpinnings.

I handle the IT needs of a small (15 people) company.

What company? Can you give us a link and tell us of it’s products?

The company is Gestman S.A.. It does administrative, accounting and juridic work.

I’m also adviser to a charitable foundation called: Matanel. Its mission statement is summarized as “Matanel Spirit: The Matanel foundation, granted to give, encourages social entrepreneurship in all over the world.”  The full version of Matanel’s mission statement explains this in more detail.

Additionally to more “classic” charitable stuff (food, education, culture, …), I’m to blame for the logo being on Debconf11, Debconf12. You’ll notice my employer (Gestman s.a.) is also a sponsor of these conferences, and also pays my attendance to the same: http://debconf8.debconf.org/corporate.xhtml.en

When do you usually spend time on the project?

If I was interrupted in mid-thought or mid-bugfix by my carshare, I finish at home.

So European waking hours?

Yes.

Why did you get involved?

Because I want to use it as a programming platform for database-driven custom business applications at work. As a Microsoft Access killer, if you want. I started fixing bugs and adding small features that were useful to me, and before I really realized it, I find myself being the LibreOffice database expert.

Lovely, that’s exciting! What do your business applications do? Can you flesh that out a bit?

The business applications do:

  • customer database
    • contact data
    • track who is authorized to order which action on behalf of customer
  • billing: manual, automated, semi-automated
    • when customer asks for out-of-package work, bill by hourly tariff
    • statistics on which employee works how many billable/in-package/non-billable hours
    • statistics (for each customer) on how many hours spent on in-package work vs price of package.
  • tracking of assets and investments we manage
  • track advancement of work that needs to be done, and its bouncing from employee to employee or external entity.
  • For example, filing a company’s tax return:
    • accountant prepare balance sheet: employee 1
    • account manager validates: employee 2
    • send to auditor: employee 3
    • waiting for auditor: external service
    • file tax return as certified by auditor: employee 4
    • did we get the filing acknowledgment from the tax authority?

What was your initial experience of contributing to LibreOffice like? And how did that make you feel?

Very welcoming community. Err… Very welcome? My skills are recognized, contributions valued …

What was your first contribution to LibreOffice?

My first “applied as I wrote it” patch seems to be (date:   Sat Jan 15 05:39:40 2011 +0100):

#116187: report left/right page margin setting ignored on Unix 64 bit

The bug was: when one changed the left or right margin of a report on a 64 bit arch, all changes done in that dialog were lost.

What have you done since then?

Fixed a lot of stuff in Base, and a bit in scripting.

Great! Can you expand on the importance of fixing base?

Nearly all “enterprise/business applications” are more or less “read this from that database; do this work on it; push that to the database, …”. LibreOffice will never be a rapid application development platform à la Microsoft Office + Visual Basic for Applications without a solid database access / management / … component.

How will that improve things for users?

Users will be able to use LibreOffice for database access without crippling bugs.

What is your vision for the future and/or what would you like to see improved?

  • Ideally I’d like to have a rich, vibrant Developer/Tester/QA/ … community around base.
  • Interested in database stuff or scripting in LibreOffice? Come join  us! You can be useful at many different levels, with many different skills and levels of specialization: programming, bug triage, QA, testing, documentation writing, …
  • The reporting system is a bit primitive and could use a real upgrade.
  • It would be nice if forms could show several records at once (not only in grid mode).
  • The many dependencies on Java are a liability, and I’d like to have them curtailed / removed.

What do you think of the new build system?

gbuildification is a nice step forward, but it is “recursive make”, which is bad; see http://miller.emu.id.au/pmiller/books/rmch/  At least now it is not “much worse” than most other projects.

Errata: Actually, it was now explained to me that the “recursive” nature of our gbuild system is transitory, and that wen everything will be gbuildified, it won’t be recursive anymore (everything will be in the tail_build module). Great news!

I’m 100% convinced that our dependency information is incomplete and/or too low granularity. I still have build problems solved by a “make module.clean” or some such. And, when I try to do a more surgical “rm”, it often fails BECAUSE THAT FILE IS NOT REDONE, so, compilation of a different file fails with message “file you removed missing”.

Which is your preferred text editor and why?

Emacs. Habit (keybindings in muscle memory), features, programmability in a decent language (I’m a functional programming guy at heart), …

What would you encourage new contributors to work on with you?

I’ve made a few “easy hacks” with suggestions.

Anything else interesting you get up to when not hacking?

No, hacking is my life 😉

Thanks for your time and commitment to the project!

LibreOffice mega Christmas interview

In many countries in the world, Christmas is celebrated as time of peace. In olden days, in the Northern hemisphere, it was the mid-winter celebration – looking towards the new light to come. Nowadays, sharing presents is a popular activity at Christmas time.
So, let’s look at what presents LibreOffice has left under the tree… Ah, this is clearly the outline of a new major version: 3.5 🙂

I’ll try to unwrap this present a little, looking beneath the shiny paper.
What do I see: hundreds and hundreds of code commits, which talk about ‘clean up’, ‘rework’, ‘remove’, ‘easy hack’. Sounds like tech-talk to me. So how is this a great present to users?
I decided to talk to some developers, in an attempt to get an explanation about what all this work means – to mere mortal office-users like (probably) you and me 😉 Simply: what improvements, in which areas, can we see now or in the long run, as result of all this hard work?

Below you find the result of my search. Some parts are technical, some parts really talk about features for users.
I have stress that I was only able to cover a small part of all people and all the work … Nevertheless I hope you like the (greater) present.

Fast building

An important part of the software development process is ‘building’: converting the source code written by developers into something that we can download and install. But building is also important for developers, to prove that their work is OK, that it works as expected, or fixes the bug, and does not break something.

So developers need to build. Frequently. Quickly. So this is where Norbert Thiebaud has a story to tell:
“Yes, my efforts are aimed at making the build process fast and reliable, to give good reliable ‘tinderboxes’ with fast turn-around and useful feedback, so that in turn other developers can have feedback on their work for platforms they do not have access too, and QA can have builds more regularly and more frequently so they can test early…”

The latest buzz word for that is ‘continuous integration’. Code is reviewed and committed quickly: ideally as soon as possible. So then you also need quick feedback. The ‘tinderboxes’ Norbert tells about are machines that produce builds automatically, on all kind of platforms. Then there is a ‘tinderbox-server’, that reports about the status and builds, on a daily basis.

Norbert again: “This means that I do punctual fixing to try to keep my tinderboxes green :-), i.e. they work properly, so that the server shows a green “OK” sign. We are making great progress with tinderboxes. In this month of December, we are at a rate of 100+ builds a day. Back in April, that was only about 30!”

Lionel Elie Mamane, who will talk later about Base, also contributed in the field of building: “In my early days of getting started building LibreOffice, I stumbled upon a few things that annoyed me in the config/build system, so I fixed them.

“One annoyance was that there was a mysql-connector file that would be downloaded after configure finished, but yet configure failed when the file was not there. A catch-22 🙂 and now that I fixed that, there is a smoother ‘first build’ experience for newcomers.

“Other small things involved stopping the unnecessary creation of many symlinks (so giving a speed improvement here), and enabling colours in the build output for 256 colours, instead of the the old standard 16. This makes development easier, as compilation errors stand out in colour on the screen.”

Proper release building

Builds that are to be released must of course must be good ones. Petr Mladek tell us how this works: “Most of my work is related to producing all official builds, so code wise that means that I fixed build problems. And of course a lot more build related stuff. Since there was one build almost every week, I spent a lot of time with it. Beside that I helped to merge useful scripts from the old build repository. They help package maintainers to provide LO for different Linux distributions. There were many more people helping with this.”

Since builds are also used by QA volunteers for testing, special work was done for that too. “One of the items was fixing Linux packages, so that the different 3.x releases can be installed in parallel. It is useful especially for testers but also for normal users. I also added more precise version information, e.g. beta2, to the the ‘about’ dialog. It should help testers and users to better describe the installed application and provide better bug reports.”

Easy-hacks as a good starter

Now, some words from Olivier Hallot, one of the founding members of The Document Foundation: “LibreOffice code was a challenge for me since the OOo days. I succeeded in compiling it, and the next step was naturally to try one of the easy-hacks suggested by the developers. I found these easy-hacks the best way to get knowledgeable in C++ coding, and I started to fix some UI issues I found in my language. From a simple hobby to a more serious job, now I am involved into the enhancement of LibreOffice. Plenty of fun times!”

Cleaning up: for improving and easy developing

Easy developing .. well, as easy as possible! Tor Lillqvist is one of the developers who worked on that: “I cleaned out many obsolete bits and pieces. This makes it easier to start developing, there is less obsolete or irrelevant stuff to waste time looking at.”

Part of the work Tor does is related to enabling cross-compilation:
“Cross-compilation makes it possible to develop on a fast machine for slower machines, or for machines not running a desktop operating system at all. So now on Linux you can produce an executable for Windows, but not an installer yet. The Lanedo people are working on this.”

Though not directly related to this clean/improvement interview, Tor also wants to add something different: “Yes, for iOS and Android the compilation part is finished too, just a few days ago. But be careful: in no way does that mean there is a version already running on those devices. Just that people interested in working on the UI side now have a solid base to work upon.”

Lionel Elie Mamane also did some general code cleanups:
“I removed unnecessary const casts, unused variables, … This makes the code more maintainable, easier to understand, etc. Const casts are ‘holes’ drilled through a safety feature of C++! So removing them when they serve no purpose helps to catch future programming errors.”

A special cleanup case was the old OpenOffice <-> PostgreSQL driver. “That was ‘bitrotten’ as we say. It only worked up to version 3.2 .. So I reworked it: integrated the native LibreOffice <-> PostgreSQL driver into LibreOffice proper, enhanced it, ported it to the latest LibreOffice version. Lots of advantages for PostgreSQL access obviously.”

Code readability

If you want to make it easy for part-time developers, students, beginners and so forth to work on the code, then good readability of the code is very helpful. There are many examples. Olivier tells about a easy hack that aims to replace the test for strings inside the code: “Previously, to test when a string is empty, you had to get the length of the string. If it is zero, the string was empty. Recently, a new method isEmpty() was written for the same purpose. The job is then to replace getLength() by isEmpty() in all the code: a very laborious task. But the end result of this re-factoring is much better code readability.”

What can users see ?

Working with RTF documents gets better

While others work on general code clean up, the work of Miklos Vanja with regard to cleaning/replacing is strongly focussed in one area. Miklos:
“During the last two summers I have been working on the Writer RTF filters. Both the export and the import filters were old code, with known design issues. So it was time to redo and create new ones. Export was new in 3.3, import will be new in 3.5. Now that makes it possible too to add features in our RTF which have been missing for a long time, such as nested table support, which was introduced by Word 2000 in RTF.”

Miklos always welcomes example documents which are not yet fully handled by the new filters, so that the import can be further improved.

Calc

Improved testing, especially in Calc, is also worth a note. Markus Mohrard is working there: “One of the areas that I have been active in is automated testing work. This really makes the work of developers easier, and reduces the risk of introducing bugs in new and changed functions. Our Calc filters-tests are a particularly nice way to discover bugs quite early. They showed around 15 really nasty Calc bugs, and at least two older bugs in LibreOffice core. From the bug number we see that these are mostly newer bugs that might not yet have been addressed in OOo, and some are our own bugs.”

Markus points out these are new tests, that are fast and reliable, and are run during most developers’ compilation flow – so we can be sure: if it compiled, it will not have these regressions. He stresses that it is not only important, but also really easy, to extend the tests!

“What I did was to download all ods, xls and xlsx files from several bugzilla instances and used this filters-test concept to check if any of these files crash Calc during import, or during the initial calculation of the content. This showed another set of bugs that Kohei, Eike and I fixed before we branched 3.5 off.
“More than 4,000 documents were checked with this approach, which has already significantly improved 3.5.0.”

Another developer: “I removed some unused code and fixed bugs, mainly some that were already introduced in 3.4, and some in master that went unnoticed, or indeed were reported.”. This is from Eike Rathke.

Speeding up

Eike Rathke is one of the long established developers we know from Sun/OpenOffice.org. He starts off by talking about his vacation:
“Summer was so poor in July/August that I started to work on LibreOffice 😉 I joined RedHat in October, the Monday right after the LibreOffice conference. One of the things that I reworked then, was the class ‘Date, Time and DateTime’. In the old code, the system time was obtained every time during construction. This is unnecessary just to declare a variable. Together with related checking and updating, this resulted in many many unnecessary system calls, which are now not happening any more in 130 out of approximately 350 occurrences. “I expect to have gotten rid of a gazillion of calls to localtime with this change 🙂 Sorry, no real numbers on that.

“Of course I also fixed a lot more code, reported and unreported bugs, the work that “Moggi” Markus Mohrhard has talked about. And I merged some fixes from CWSs pending from (A)OO(o) still under LGPL, and applied/pushed patches. I also helped Moggi improve the Calc named ranges/expression handling, especially with sheet-local names and copy & paste behaviour. ”

Base

Moving on to Base, Lionel has a lot to tell:
“Overall, I’d say I focus on making Base (with scripting) usable again, because I want to use it at my daily job, to replace the Microsoft Access-based business-specific programs I developed in the past. And it was quite broken in early 3.4. Further I fixed some user-visible bugs, e.g.: margins in reports; better, more widely supported, syntax for reporting based on a query + sort; fixed several crashes, fixed PDF-export.

“Maybe most important of all is that I re-enabled ADO (ActiveX Data Objects) on Windows; yet another “common API” for access to SQL databases.” He also made enhancements to passwords, metadata, queries, joins:
“With my work in LibreOffice mostly I ‘scratch my itch’, and I take care of bugs and features where I feel uniquely interested and/or competent: database stuff!”

Lionel stresses that the LibreOffice community has been exceptionally welcoming and quick about recognising his efforts.
[Let me (reporter) remark that it looks a nice idea to have a post somewhere with little more details on Lionel’s work.]

Various easy hack-UI improvements

Olivier Hallot was glad to spend time on several easy hacks, resulting in better usability, interface etc.:
“One hack is about improving the extension manager dialog. Now it allows the user to filter the installed extensions, de-cluttering the dialog and easing the search for an installed extension. Another simple one is adding the command ‘Protect Sheet’ to the sheet guides context menu. I also added 8 new symbols to LibreOffice Math, used in game theory equations. The demand came from a college math professor.”

One of the interesting parts of LibreOffice of course is the localisation. Sometimes that results in strings that are so much longer then the English ones, that the texts don’t fit .. Olivier: “Therefore I made several adjustment in the dialog boxes, to accommodate non-English strings, which are a bit longer and were truncated in the UI.” Another example of improved UI readability.

So, what a Christmas present! And this is only a small snapshot from a few of the hackers we managed to drag away from bug-fixing the 3.5.0 betas – there have been many more, more visible improvements – you can see some in the 3.5 wiki page

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! 😉

Developer Interview : Markus Mohrhard

Coding LibreOffice to relax a bit from studying tough mathematical problems? Read why and how Markus Mohrhard works on LibreOffice!

LibreOffice can only exist since people are working on it: so please ! tell us a bit about yourself.

I’m a third year math student and have always been interested in computer science(which is even a subsidiary subject for me). I’m always interested in anything new in math, physics and computer science and try to learn as much as possible in these areas.


In what other software projects have you been involved ?

I’ve been working on a university project for about one year now. This project is mainly about model to model transformations.

Where do you live (and study)?

I live at Karlsruhe and study at the Karlsruhe Institute for Technology (formerly know as university Karlsruhe)

What do you do when you’re not working on LibreOffice ?

Mainly studying, but in my free time I do sports or just do something with my friends.

Ah sports means healthy people in the project 🙂 …so, what type of sports?

I’m jogging and playing football. But since university I have no more time for doing this in a club only with friends and in my free time.

When do you usually spend time on the project ?

Mainly in the evening and during nights. Mostly when I have some math problems which drive me crazy and I need to think about something else for some time.

Working on LibreOffice code to relax – could be worse 😉
Do you have a preferred text editor for this relaxing work? And why?

Notepad++, Vim and Gedit. Depending on what I’m doing. Notepad++ is my prefered editor at Windows and sometimes I miss it in Linux. I think for developing in Linux there is only the choice between Emacs and Vim and I just prefer Vim(even if it sometimes drives me crazy). And I like Gedit for its simplicity.

How did you hear about LibreOffice ?

I’m following a tech news site and they report regularly about Libreoffice and the Documentfoundation. I liked the idea of an independant foundation behind LibreOffice that would not force developers to sign a CLA.

Why did you get involved ?

I’ve always wanted to contribute to an open-source project. After I discovered the Easy Hacks page my decision was made and the community made it really easy to get into the development. Especially Kohei helped me a lot to understand the code around calc.

What was your first contribution to LibreOffice ?

It was a one line change to fix a problem showing the right shortcut. Nothing special but I learned a lot about the structure of LibreOffice there. It was about the crasher bug (fdo#37429) and listed and the most annoying bugs. As soon as I found the problem (which took a lot of time) it was just a one line change.

What was your initial experience of contributing to LibreOffice like ?

It was amazing how positive the core developers react to someone new and how much they encourage someone to go on. Even when I started working on my autofilter patch and made some really bad design decisions, they helped me every time with some hints how I can improve my code.

What have you done since then ?

I’ve written some code to support one autofilter per sheet in calc and the corresponding import and export filters(thanks a lot there for Kohei’s help). Since then I’ve fixed several bugs and started working on supporting an unlimited number of sheets in calc together with improving the performance in some situations.

What do you think was your most important contribution to LibreOffice so far ?

For me it is the support for one autofilter per sheet, but for others it might be one of the bugs I fixed.

How will that improve things for users?

This was a long requested feature and improves the compatibility to Excel a bit. There was a workaround for this this but it was extremely uninitive, so I hope that a lot of people can benefit from this feature.

What is your vision for the future and/or what would you most like to see improved ?

It would be amazing if more people would help in the QA and help the developers to find bugs much earlier. I broke some minor things with my patches but they were not detected before RC1 and I think our quality could improve if there were more people testing the nightly builds or beta builds.

Anything else interesting you get up to when not hacking ?

I’m playing chess and doing sports regularly. But I’m always open to new things and try something different. I’d like to travel to other countries more but that will not possible as long as I study.

Thanks a lot for your answers and time!