Spread the word: LibreOffice Hackfest Cambridge

Two weeks today on May 21st LibreOffice enthusiasts from around the world will converge on Cambridge for the first ever UK Hackfest. Hosted at Collabora’s headquarter offices, engineers, designers, translators, and first-time contributors will work together on the world’s most popular Open Source office suite over a three day sprint.

The Cambridge Beer Festival
The Cambridge Beer Festival coincides with the LibreOffice Hackfest

Use the printable poster below to tell your colleagues and classmates about the event, and encourage them to participate. Hackfests are the perfect opportunity to get familiar with LibreOffice for the first time — expert engineers will be happy to help you get started and solve problems together. High resolution A5 size PDF and PNG files are available, as well as editable Gimp source files.

Poster advertising the Cambridge Hackfest
Poster advertising the Cambridge Hackfest

Full details of travel, accommodation, programme, and more can be found on the dedicated Document Foundation Wiki page. See you in Cambridge!

LibreOffice, Collabora, and Partners at openSUSE Conference and Kolab Summit

Last weekend over a hundred Linux experts and contributors gathered in The Hague for the annual openSUSE conference. Collabora’s Michael Meeks presented the latest developments in LibreOffice, including a live demo of the cutting edge document editing features in LibreOffice for Android, and an introduction to the backend architecture of LibreOffice online.

Attendees at openSUSE Conference 2015
Attendees at openSUSE Conference 2015
Michael Meeks presenting in the Hague
Michael Meeks presenting in the Hague

Between talks on subjects such as community building, power management, and cloud infrastructure, Document Foundation Committee Member and Collabora partner Cor Nouws offered information and advice to attendees from his conference booth, and shared infographics and promotional materials. As a leading member of the Document Foundation’s Dutch Team, and Director of local LibreOffice training and services firm Nou&Off, Cor was ideally placed to field the crowd’s questions.

Booth with Cor Nouws
Booth with Cor Nouws

The event was run jointly for the first time this year, sharing a venue with the inaugural Kolab Summit. Hosted by Kolab, an Open Source Groupware application, the two days of talks ran parallel with the openSUSE Conference, and Michael contributed his second talk of the weekend titled “Producing business: driving development of LibreOffice-from-Collabora”. A video of Michael’s talk is being prepared and should be available in the next few weeks.

Interview with Jennifer Liebel and Tobias Madl from Munich

Last summer, German students Jenny and Tobias started a work placement organised and funded by the City of Munich. One of the most famous Linux deployments in the world, Munich began switching to Free Software across its desktop and server infrastructure in 2003, and completed the process ten years later. LibreOffice is included on all desktop computers, and the City manages its own development of the application, including training students on placements.

Tobias and Jenny talked with Sam Tuke about how they sped up LibreOffice significantly by reorganising its internal task management, with the help of their Mentor Michael Meeks, and the LibreOffice community. This work is a foundational technology for future improvements to our rendering model, converting it from immediate to deferred (ie. idle) rendering, which is necessary to get smooth double-buffered rendering without flicker. It’s great to see the investment from Munich improving the LibreOffice user experience for all.

Tobias and Jenny - students in Munich
Tobias and Jenny – students in Munich


About Jenny

  • Name: Jennifer Liebel
  • Web nicknames: jeyli
  • Nationality: German
  • Location: Munich Germany
  • Blog: Google+
  • Hobbies: personal fitness

About Tobias

  • Name: Tobias Madl
  • Web nicknames: tobaem
  • Nationality: German
  • Location: Neufahrn bei Freising, Germany
  • Blog: Google+
  • Hobbies: sword fighting, bouldering, fire fighting

When was your first LibreOffice contribution?
In August 2014, while completing a work placement with the City of Munich (Landeshauptstadt München), we started working on some LibreOffice ‘Easy Hacks‘; translating German comments into English, and working on automated quality checks with CppUnit tests. Around 20,000 city-owned computers run Linux, and LibreOffice comes pre-installed with the Limux distribution of Linux that they use. In our work placement we had the choice of what to work on, and we chose LibreOffice.
For the next seven months we worked on LibreOffice consistently.
Had you used LibreOffice before that?
Yes we were using it at University for coursework and presentations. It has all the features we need. Later on, Tobias presented his talk at FOSDEM using LibreOffice Impress.
When we began our Computer Science studies we started using Linux because it made software development easier. We chose Linux Mint, and as LibreOffice came bundled with it, we started using it.
How do you explain LibreOffice to others?
It’s an awesome alternative to Microsoft Office and if people don’t want to waste their money, they should definitely try it.
Do your fellow students use LibreOffice too?
Yes, many. Maybe even most of them. Mainly it’s used for presentations and text documents. Students here don’t get provided with a copy of Microsoft Office like at some universities, and many use LibreOffice instead. A few use Latex. Students here use LibreOffice on all operating systems.
What was your initial experience of contributing to LibreOffice like?
It was exciting and challenging: we were using new tools for the first time, like the Gerrit review platform for managing LibreOffice code contributions. Getting used to these tools was a lot of fun.
How did you choose what part of LibreOffice to work on?
We were members of a group of five students whose placement focused on LibreOffice. We worked on different parts. We were both lucky enough to be invited to the LibreOffice Conference in Bern, where we met Michael Meeks who works for the Document Foundation and Collabora. It was a fantastic event, and he proposed tasks that we could work on, and became our mentor.
One of the hardest options proposed was improving LibreOffice’s "main loop". This loop executes the most important actions that LibreOffice needs to start up and run itself, including loading macros, generating previews, updating menus, and more. It sounded demanding, and we both wanted to learn as much as possible, so we chose that.
Together we went through every single timer used in this loop, and invented a new task scheduling system, which manages the loop more efficiently. The list of tasks in the loop is huge; we wrote them up in documentation of our work on the Document Foundation Wiki. We planned and developed the new scheduler together to prioritise important tasks and drop some which were unnecessary.
Optimizing the main loop has been a huge and interesting task. We’ve learned a great deal, and are still improving the quality of our code.
How did you make decisions and distribute the work?
‘Scrum’ is an agile software development methodology that we used to organise our work. We had regular stand-up meetings, did paired programming (especially for harder tasks), and generally worked in the same space for easier communication.
Michael was in England, while we were in Germany, so we had video calls and communicated via email.
What was it like to be mentored?
Working with Michael was demanding but awesome, great to meet and get to know him. He’s very motivated! We had a few communication issues because of distance, and time available, but he was very helpful. He reviewed our code, gave us tips and direction, he spent a lot of time with us on our project.
Did you communicate with other LibreOffice community members?
Markus Mohrhard and Jan "Kendy" Holesovsky helped us a lot when we were starting out with setting up our working environment, and teaching us how to debug code efficiently with the GDB debugging tool.
Building LibreOffice binaries from source code on our own machines was easy thanks to the great documentation, but building a good development environment with the right Vim editor plugins was harder. We went to a LibreOffice/Debian Hackfest and were shown how to do it in person, which was really useful. Kendy also explained the purpose of other LibreOffice libraries that we didn’t understand which clarified things a lot.
Every day we were in the #LibreOffice IRC Chat channel talking with Kendy, Markus, Thorsten Behrens, Stephan Bergmann, Noel Grandin, and others. We had an opportunity for lots of chatting with nice people online, and then met many of them at the FOSDEM conference.
Caolán McNamara was also reviewing our work at the end of our placement, and we were very happy there was someone looking over our code because it was our first time merging code using Git for version control. We’d also like to thank Miklos Vajna, Michael Stahl, Tor Lillqvist, and Bjoern Michaelsen for helping us and reviewing our work.
Once we started chatting with people we felt accepted as part of the LibreOffice community. We were just some students, but people made time to help us.
Had you contributed to Free Software before your work on LibreOffice?
No, this was our first project, but we are thinking about contributing to other projects, maybe the Kodi home theatre application.
What aspect of LibreOffice do you like the most?
Clearly the friendly and open community, which supported us a lot. We had great fun with them.
What the one thing you’d like to change about LibreOffice?
Improve OpenGL support (hello Michael Jaumann, Stefan Weiberg 😉 ).
Michael Jaumann, a close friend of ours, developed OpenGL support for LibreOffice Impress. It was really awesome to get to know how that worked. We’re developing OpenGL shaders in another part of our Computer Science course, and we love it. It’s got so much potential. There are still some issues with implementing full-scale support in LibreOffice due to its use of some older APIs; it’ll be great when those are fixed.
What will you do after your studies?
Jenny: As part of our course commitment, we have to work for the City of Munich for three years after our degree. The City has a large IT department catering for most of its own technical needs, including software and hardware development, and sub-departments dedicated to Java applications, network infrastructure, and custom development workgroups. Our work placement was with the Linux Desktop branch, which caters to the many thousands of City staff using Linux in Munich and the region.
I’m not sure; I’ll probably stay in Munich. Let’s see after three years!
Tobias: I’m definitely interested in software development, but also in information security and embedded development. I’d like to work in a company in one of those fields, or even better a mixture from all of them, but I’m not sure if something like that exists.
Both: You can read more technical details about our work in the Document Foundation Wiki report.

LibreOffice for Android: prototype editor preview

Contents

  1. Suite improvements
  2. Under the hood
  3. Reaching out
  4. Joining in

A continuous effort

Since January, Collabora’s engineers have been working on the next generation of LibreOffice for Android: a fully functional mobile office suite, running natively, ready to edit rich documents. Thanks to Document Foundation sponsorship, we’ve spent the last three months working intensively towards this vision. Today we’re delighted to present a new prototype with spreadsheet, slideshow, and text editing built-in.

Writer: formatting text
Writer: formatting text
Calc: selecting cells
Calc: selecting cells

Suite improvements

Like LibreOffice Desktop, LibreOffice for Android has separate components for different types of task. On Android, we include Writer, Calc, Draw, and Impress.

All components of the the prototype benefit from the following features:

  • Text editing with on-screen keyboard
  • Simple text formatting with bold, italic, underline and strikethrough
  • Text selection by touching and holding part of a section of text (aka ‘long push’)
  • Easy resizing of shapes and images by tapping them to select, then dragging one of eight directional handles and releasing
  • High quality rendering of a wide range of filetypes, including Open Document Format, OOXML, and MS Office file formats (both binary and rich text format)
  • One tap access to the on-screen keyboard for quickly switching between viewing and editing mode
  • Smooth scrolling between pages

In addition to these, each component has its own distinct features.

Writer

  • Document saving support, updating the originally opened file by default
  • Support for movable embedded images, drawings, and shapes

Calc

  • Touch-triggered selections of table and spreadsheet cells flows across columns, rows, and pages with the drag of a finger.
  • The “parts” sidebar switches between spreadsheets within the document

Draw

Impress

  • The “parts” sidebar shows a scrollable overview of all slides
  • User interface interaction and overlays are now far more accurate

Under the hood

Powerful internals

The editor consists of two parts: LibreOffice core compiled for the Android platform, and a Java component that is responsible for the user interface. They interact with each other via LibreOfficeKit — a thin C++ library that allows any application to access LibreOffice’s powerful internals via a consistent interface.

All three parts (LibreOffice core, LibreOfficeKit, and the Android interface) have been extended to enable them to handle user-specified selections, cursor placement and movement, and commands like loading a document and applying formatting. The signals we’ve implemented make way for other LibreOffice-powered applications to support editing too.

Input and interface accuracy

  • Highlighted text selections can include table contents, allowing for formatting of contents of multiple document sections simultaneously. Previously selections used different internal identification systems and had to be selected separately.
  • All Impress interaction data has been ported to TWIPs — or ‘twentieth of an inch points’, from millimetre based measurements, resulting in much finer internal measurements, and improvements to display and selection for all versions of the application.

Impress: slide overview in sidebar
Impress: slide overview in sidebar
Impress: more accurate selection via TWIPs
Impress: more accurate selection via TWIPs

Performance

More efficient rendering of documents tiles: those relating to non-visible areas are deprioritised and rendered in the background without blocking the initial page view from loading. The result: faster loading of documents for the user and more efficient use of the mobile device’s resources.

Documentation

  • We’ve added extensive javadoc/doxygen comments to pre-existing and updated methods
  • We’ve included javadoc/doxygen comments for all new classes and methods

Performance: non-visible pages deprioritised
Performance: non-visible pages deprioritised
Writer: cross-page text selection
Writer: cross-page text selection

Reaching out

On the rare occasion that our engineers hands haven’t been busy under LibreOffice’s hood, they’ve been writing up their work in blogs and demonstrating it at conferences.

Joining in

This is the start of a journey that you can be part of — get involved with any number of ongoing LibreOffice activities, including LibreOffice for Android documentation, demonstration, and development.

  • Unstable daily builds can be found here
  • A user introduction is available on the Document Foundation Wiki
  • A developer introduction is also available
  • Report any problems you find to the bug tracker, and attach any documents related to the issue so developers can investigate

To complete this prototype preview we’d like to again thank The Document Foundation for making the work possible, and remind you that, as a charitable foundation, donations power their work. Support the foundation by donating via their website.