(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.
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 car*share*, I finish at home.
So European waking hours?
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!