Information and Details from past LibreOffice Conferences

Development

Inconsistencies Fixed in Writer [Development]

Miklos Vajna (Consultant Software Engineer, LibreOffice)

LibreOffice Writer has a huge amount of features, and sometimes one feature is inconsistent with an other one, or the way a similar feature is implemented in an other application, e.g. in Calc or Impress. The talk will mention how table selection got improved, how the UI now allows you to reject a spelling error, how Writer can now create .dot files and similar improvements. Come and see where we are, what still needs to be done, and how you can help.

Wednesday from: 13:30 ~ to: 14:00

Inconsistencies Fixed in Writer

Life after Calc Core Change [Development]

Kohei Yoshida (Software engineer at Collabora)

4.2 releases were perhaps most memorable in my whole LibreOffice history. I will discuss how that experience went; what I expected, and what actually happened, what were the pitfalls and how they should be handled in the future, and how all of that experience will affect the future maintenance of this code base going forward.

Wednesday from: 15:00 ~ to: 15:30

Life after Calc Core Change

Squashing the Beast into 60 MB Cage [Development]

Tor Lillqvist (Software engineer at Collabora)

If you read the instructions for submitting apps to the iOS App Store very carefully, you will find it mentioned that the executable in an app must be less than 60 MB in size. (The size limit of other files included in the app is so high, if there even is one, that it is not likely to be a problem. But note that all executable code must be in the single executable. No dynamic libraries are allowed.) This restriction is very easy to miss. It poses a problem for meaningful apps that use LibreOffice code to load, display, and perhaps modify and save documents. Not because such an app would necessarily actually invoke anything close to even 50 MB of code from LibreOffice, but because of the large amounts of code and data that gets linked in anyway. This talk describes some of the more or less extreme measures introduced when that restriction was noticed, in order to get below the limit.

Wednesday from: 16:00 ~ to: 16:30

Squashing the beast into 60 MB Cage

Unittest and CI Roundtable [Development]

Bjoern Michaelsen, Markus Mohrhard (Software Engineer, Collabora)

Roundtable on unittests, continous integration and test-driven development. What tools do we have right now (testsuites, tinderboxes, code analysis, gerrit, etc.), which tools do we need? How do we foster a culture of tests on this legacy codebase? This session invites all contributors to brainstorm on these questions.

Wednesday from: 16:30 ~ to: 17:30

Slides not available yet

3D Models in Impress [Development]

Tamas Zolnai

An overview of the new 3D model support in Impress. LibreOffice uses more and more OpenGL solution behind the user interface, but now it appears for the users in a direct way. With the new 3D model support we can display any 3D scene in our slideshow. In this talk I will demonstrate how these models look like on the slides and on what ways can we play with them during our presentation.

Wednesday from: 17:30 ~ to: 18:00

3D Models in Impress

LibreOffice Building Tips and Tricks [Development]

Lubos Lunak

LibreOffice is a large codebase and building it takes a lot of build time and disk space. This talk will present some tools and ways that can help reduce them (ccache, icecream, split debug info and others).

Thursday from: 09:00 ~ to: 09:30

LibreOffice Building Tips and Tricks

Getting into the Code for Beginners [Development]

Michael Meeks (General Manager, Collabora Productivity)

Beginners often find it hard to get into the codebase and work out where pieces of code are, and/or where they should be. I'll present a graph of the internal modules' dependencies and try to explain some of the basic building blocks the code is constructed from. Come and find out how the pieces of LibreOffice go together, and help me puzzle out some of the more obscure and mystical module names.

Thursday from: 09:30 ~ to: 10:00

Slides not available yet

drawinglayer : What Should You Know about It [Development]

Jan Holesovsky

I am not the author of drawinglayer - and it appals me how on one hand the drawinglayer became a core technology of LibreOffice, and on the other, how little information about it is available, understandable, and shared inside our community. This talk will summarize my experience with drawinglayer, and will attempt to break down the drawinglayer complexities into smaller pieces that can be useful for every LibreOffice developer.

Thursday from: 10:00 ~ to: 10:30

drawinglayer : What Should You Know about It

Techniques Used for Testing of HTML, SVG, WMF/EMF Formats [Development]

Tomaž Vajngerl (Software engineer)

In LibreOffice we extensively test ODF and OOXML formats (import, export and round-trip). Other formats, especially common vector graphic formats, aren't tested as much as they could be. We need to improve that.

Thursday from: 10:30 ~ to: 11:00

Techniques Used for Testing of HTML, SVG, WMF/EMF Formats

A Threading Snarl [Development]

Michael Stahl (Software Engineer at Red Hat, Inc.)

As anybody who uses remote UNO connections is aware, the legacy code-base of LibreOffice is riddled with subtle concurrency bugs. This talk is an airing of grievances and investigation into the nature of the problem, with the aim of providing an estimate as to how doomed we are, exactly.

Thursday from: 11:00 ~ to: 11:30

A Threading Snarl

Writing Import Filters for LibreOffice [Development]

Fridrich Strba

LibreOffice is known as a Swiss Army knife of file formats. This is mainly du to the impressive number of import filters integrated since the project was born. This hands-on will give a quick overview about different frameworks that can be used by import filters within LibreOffice. It will also guide the audience through an implementation of a dummy file-format importer using the librevenge framework. The result of this workshop will be a skeleton library that can be used to write an import filter for your preferred file-format.

Thursday from: 11:30 ~ to: 12:00

Slides not available yet

OOXML DOCX Interoperability Status [Development]

Adam Fyne
(Interoperability Team leader, CloudOn / Member of the Board of Directors, The Document Foundation)

When working together on documents, users tend to choose to work with the same tool that their colleagues use so as to be compatible and avoid format conversion. This helps traditional leading office tools like Microsoft Office to create stickiness and attract all the users to their dominating file format. To disrupt this cycle it is not enough to allow importing of formats like OOXML into LibreOffice. Only by making LibreOffice truly compatible with Microsoft Office OOXML format, will we allow users to work with LibreOffice without having to be concerned about the office tools chose by their colleagues. In the past year, CloudOn has invested tremendous resources to improve the way LibreOffice imports and export DOCX documents. In this talk we are going to discuss the work that CloudOn, alongside Collabora, Igalia & Synerzip have put into LibreOffice Writer in the past year to support OOXML better, different mechanisms which have been introduced into Writer to allow for better preservation of objects & methods to test thousands of files. In addition, a comparison which has been done between LibreOffice and GoogleDocs will be presented. Topics of Discussion

  • What is DOCX? What is Interoperability?
  • 4 Layers of interoperability (Corrupt, Preserve, Render, Manipulate)
  • DOCX Preservation
    • What is supported?
    • InteropGrabBag
  • Interoperability Matrix - LibreOffice vs Google-Docs
  • Statistics & Examples for Fixed Cases (September 2013 vs September 2014)
    • Corrupt
    • Crash
    • Preservation - Data Loss
    • Preservation - Style Loss
  • Observations from CloudOn's iOS App BETA

Thursday from: 13:00 ~ to: 14:00

Slides not available yet

Thoughts on Future Core Design BOF [Development]

Michael Meeks (General Manager, Collabora Productivity)

A BOF session, where developers can get together to chew over the next big opportunities for improvement in the code-base, and catch up with status on existing re-factorings. Several areas of work will be highlighted, from re-using LibreOffice code, to threading and rendering infrastructure, VCL widget lifecycle and more.

Thursday from: 14:00 ~ to: 15:00

Slides not available yet

LibreOffice on Android [Development]

Tomaž Vajngerl (Software engineer), Tor Lillqvist

Handling a mobile application is quite different from a user's perspective than a desktop application. LibreOffice being a desktop application did not have the infrastructure not the user experience that is expected from a mobile application. This talk presents the making of LibreOffice on Android which is an attempt of a LibreOffice mobile application. In the first part of the talk we will present the lower-level work: adapting LibreOffice to Android platform and interfacing with an Android Java application. The second part is about the higher-level work: creating "LibreOffice on Android" application based on Mozilla Fennec code.

Thursday from: 15:00 ~ to: 15:30

LibreOffice on Android

OpenGL in LibreOffice [Development]

Markus Mohrhard (Software Engineer, Collabora)

In this talk we will discuss how to use OpenGL in Libreoffice. Historically OpenGL was a build requirement that made it difficult to distribute features based on OpenGL. With some of the new development and support for OpenGL in vcl it is easier than ever. The talk will detail how to use OpenGL and how to use the modern OpenGL support based on shaders and OpenGL 2.0+.

Thursday from: 16:00 ~ to: 16:30

Slides not available yet

Mail Merge Internals [Development]

Eilidh McAdam (Open Source Software Developer and Consultant)

Mail merge is most often required by organisations such as government bodies and businesses. As a consequence, it hasn't had a lot of attention compared to issues faced by individual users. I'd like to talk about how it works in LibreOffice, the problems faced by users and recent improvements made to the feature.

Thursday from: 17:30 ~ to: 18:00

Mail Merge Internals

It's Magic. It's Mobile. [Development]

Shachar Binyamin (Product Manager, CloudOn)

For CloudOn, this is the story of the ultimate document creation experience for mobile. You know that annoying problem of not being able to use your fingers to manipulate and create rich content in documents? You know that frustration you feel when you have extremely limited space to read and review documents on tablets and phones? You know the problem of accessing, editing and sharing documents on mobile? Well, we feel the pain from these problems as do our users. We took on the challenge of solving these problems and we believe we have created a tool that is magic, fast and fun. Shachar will talk about how CloudOn defined, designed and developed a successful application that users care about on the Libre Office core. Topics that Shachar will cover:

  • Difficulty of building the toolbar
  • Creating beautiful styles
  • Using gestures for easier input and productivity
  • Determining how to build a minimal rich experience that meets our user needs
  • Transitioning from Microsoft Office as the basis of the CloudOn app to the Libre Office core

Friday from: 09:00 ~ to: 10:00

Slides not available yet

LibreOffice Architecture for iOS Document Editor [Development]

Ptyl Dragon

The talk would discuss CloudOn's effort over the last year, to use libreoffice, so to power a full touch office experience for mobile devices. Talk would focus on writer and iOS, with respect to the following:

  • In document navigation - tiled rendering - adaptation of the desktop canvas and behavior, so to be compatible with native touch technologies (e.g CATiledLayer), allowing easy leveraging of the device's GPU, resulting with a seamless integration of LibreOffice into native look and feel
  • Rendering performance - integration of Apple's native rendering libraries, core graphics and core text, into VCL's rendering mechanism, while minimizing rendered areas to "dirty" rects only
  • Document selection - tunneling the rects of the selection overlay, so to be rendered using device's native frameworks (again, leveraging the GPU, while still using relatively high level API), providing the fast response and slickness users expect from touch applications.
  • Editing functionality - adapting the APIs provided by LibreOffice desktop (e.g. UNO, and the SW module), so to be usable with the touch adapted document selection mechanism.
  • Threading - Decoupling the iOS views from the LibreOffice DOM, while combining native iOS dispatch queues, LibreOffice's event loop and mutexes, so to ensure consistency between rendering and editing functionality, without sacrificing the smoothness of touch experience (e.g. auto saving)
  • Conforming to apple's 60 MB binary size restriction (mandatory for app store approval), by externalizing data out of the code, and into loaded data resources, removing LibreOffice libraries unnecessary for the iOS app, trimming linkage of factories and factory branches, compilation flags, reducing the usage of templates (e.g STL and boost containers), etc
  • Touch device memory restrictions - integrating a node count limit, and free memory limit to the XStatusIndicator mechanism, allowing to abort opening documents, preventing memory outages and crashes
  • Daily build combined with high level iOS unit testing - ensuring product stability, ability to safely add new features, and robustness while still merging with code from the master branch, rather than official stable LibreOffice releases, allowing an agile development process

Friday from: 10:00 ~ to: 11:00

Slides not available yet

Easy Hacks to Improve Writer - OOXML Interoperability [Development]

Sushil Shinde (Sr. Software Engineer, Synerzip Softech Pvt Ltd)

OOXML is a widely used file format. Many people, organizations, schools etc. use OOXML file formats. Currently Libreoffice can read/edit/save OOXML file formats. But there are many open bugs for writer OOXML interoperability. Many features are either not supported or not handled properly. We can fix them by studying XML values from docx files. Currently many files gets crashed while opening on LO and if LO opens them properly then it corrupts some files while saving. I will cover some best practices to improve interoperability. I will also showcase improvements in features which are widely used. Topics will be covered in presentation.

  1. Interoperability improvements in widely used features
  2. XML comparisons to find root cause and fix issues
  3. Simple code hacks
  4. Crash and corruptions due to libreoffice code
  5. Patterns of crash and corruption
  6. Some best available tools for finding root cause

Friday from: 11:00 ~ to: 12:00

Easy Hacks to Improve Writer - OOXML Interoperability

Overview and Status of LibreOffice Accessibility [Development]

Jacobo Aragunde (Software Engineer, Igalia)

The purpose of this presentation is to provide participants with a basic understanding of LibreOffice accessibility. It will begin with a brief introduction to accessibility support, including the challenges assistive technologies are meant to address and how they are able to do so through the implementation of accessibility APIs. With this background having been established, the remainder of the session will be spent examining the specific case of LibreOffice: which accessibility backends are implemented and how the architecture is designed to support multiple backends while maximizing code reuse, making the addition of new backends easier. The presentation will conclude with a discussion of the current health of LibreOffice accessibility supported by an analysis of bug trends and repository statistics.

Friday from: 13:00 ~ to: 13:30

Overview and Status of LibreOffice Accessibility

How to Create a Custom Widget [Development]

Jan Holesovsky

Our widget framework, VCL, provides LibreOffice with many widgets you can use in the dialogs, and other user interface elements, like buttons, list boxes, etc. But sometimes you need to create a custom widget – one that behaves & appears in a special way. This talk will describe the essentials of creating custom widgets, what methods to implement, and how to plug it into the dialogs and other user interface elements.

Friday from: 13:30 ~ to: 14:00

How to Create a Custom Widget

Coverity and LibreOffice, Current Status [Development]

Caolán McNamara

We run the development version of LibreOffice through the static analysis coverity tooling on a regular basis. This lightning talk presents the current status, overall trends and common pitfalls on taking coverity warnings at face value.

Friday from: 14:00 ~ to: 14:30

Coverity and LibreOffice, Current Status

Automated Testing for LibreOffice [Development]

Markus Mohrhard (Software Engineer, Collabora), Bjoern Michaelsen

Testing is a central part of the development process. In this talk we will discuss the various techniques used in the Libreoffice code base and how to use them. All the concepts will be discussed with examples from the Libreoffice code base. Additionally we will discuss the benefits of a test driven development environment.

Friday from: 14:30 ~ to: 15:00

Slides not available yet

The Big Draw on LibreLogo.org [Development]

László Németh (Software developer, LibreOffice consultant)

LibreLogo.org is dedicated to the easy, Logo-like programming environment of LibreOffice for turtle vector graphics. The talk provides a brief glimpse into the motivations, results and future plans of developments of LibreLogo and LibreLogo.org, and it shows the best illustrations of the upcoming LibreLogo picture book. Link: http://www.librelogo.org

Friday from: 16:00 ~ to: 16:30

The Big Draw on LibreLogo.org

Compiler and Me: How to team up with modern compiler technology to keep the LibreOffice code base under control [Development]

Stephan Bergman (Software Developer at Red Had, Inc.)

Modern C++ compilers like Clang and GCC are more and more becoming tool sets that can be individualized and adapted to the needs of a specific code base. Plugins find bugs in the usage of certain LibreOffice code idioms already during compilation, and help us guarantee some invariants about the code that in turn allow us to modify it with confidence. Runtime support to precisely detect various causes of undefined behavior is becoming ever cheaper and easier to use. Mix in evolving C+11 support, and we are on a good way to stay ahead of our ever-growing code base. This talk will give an overview of what is available in our tool box, and demonstrate how to leverage it effectively.

Friday from: 16:30 ~ to: 17:00

Compiler and Me: How to team up with modern compiler technology to keep the LibreOffice code base under control

3D Charts and New Development in Charts [Development]

Markus Mohrhard (Software Engineer, Collabora)

This talk discusses the development in the chart module in the last year with a special focus on 3D charts. Some of the new features like property mapping, time based charting and 3D scene support will be discussed.

Friday from: 17:00 ~ to: 17:30

Slides not available yet

Accelerated, Threaded XML Parsing [Development]

Matus Kukan, Michael Meeks (General Manager, Collabora Productivity)

Come hear how Matus Kukan and I significantly accelerated XML parsing using the XFastParser interface in LibreOffice; see the befores and the afters, hear about some of the other sillies in OOXML parsing, and hear about what is necessary to do in the ODF filters to make use of this.

Friday from: 17:30 ~ to: 18:00

Accelerated, Threaded XML Parsing