The Document Foundation Planet

 

January 30, 2015

Collabora Community

LibreOffice and Collabora at FOSDEM 2015

This weekend close to ten thousand Open Source enthusiasts will gather in Brussels for mussels, monk-made beer, 549 talks, and a great deal of hacking. Collabora Productivity will be out in force – at talks, booths, and a hackfest. Look out for our team in the ‘Open Document editors devroom‘ track – we’ve printed a fresh run of branded purple shirts and will be sporting them around ULB Campus.

VP Michael Meeks speaking at FOSDEM 2011

VP Michael Meeks speaking at FOSDEM 2011

Eight talks by Collaborans will range from LibreOffice on Android, to secure signatures in Writer, and include a presentation by Vice President Michael Meeks on recent radical performance improvements to Calc.

LibreOffice talks by Collabora

The LibreOffice conference booth, run by the Document Foundation, will be on the second floor of "building K", between Kolab Systems and Apache OpenOffice. Collabora Productivity team members will congregate there – pay us a visit for informal news and demonstrations of Libreoffice from Collabora. We’re also keen to meet developers looking for career opportunities – drop off a CV.

Map of booths at FOSDEM 2015

FOSDEM booths layout, building K

Hackfest

Following FOSDEM itself, the LibreOffice Hackfest, hosted by Betacowork, will see old hands and new join forces to work on features such as change tracking, QR Code support, and template management. Join veteran hackers, including six Collabora staff, for two days of collaborative task-oriented learning.

See you there!

by Sam Tuke at January 30, 2015 10:31 AM

January 29, 2015

Michael Meeks

LibreOffice under the hood: progress to 4.4.0

Today we release LibreOffice 4.4.0, packed with a load of new features for people to enjoy - you can read and enjoy all the great news about the user visible features from so many great hackers, but there are, as always, many contributors whose work is primarily behind the scenes in places that are not so easy to see. That work is, of course, still vitally important to the project. It can be hard to extract those from the over eleven thousand commits since LibreOffice 4.3 was branched, so let me expand:

Complete User Interface Dialog / Layout

The UI migration to a much improved, Glade compatible XML representation of VCL dialogs, complete with automatic layout is now almost complete (after thinking we'd done them all - Caolan discovered a lot of docking windows that need further work but these are now also migrated, all but two). Also a lot of work was put into cleaning up and tweaking the look / arrangement of dialogs. Many thanks to Caolán McNamara (Red Hat) - for his incredible work & leadership here, and to Adolfo Jayme Barrientos, Palenik Mihály (GSoC 2014), Olivier Hallot (EDX), Szymon Kłos (GSoc 2014), Rachit Gupta (GSoC 2014), Tor Lillqvist (Collabora), Jan Holesovsky (Collabora), Maxim Monastirsky, Efe Gürkan YALAMAN, Yousuf Philips and many others. Thanks also to our translators who hopefully will have much less string churn to suffer now. As a side-note the resource-compiler in rsc/ has gone on a nice diet.

Graph of progress in UI layout conversion

Initial OpenGL rendering backend

The switch to move VCL to use OpenGL for rendering is one of those things that ideally should be entirely under-the-hood, but ends up having small but important visual impact. All the work here was done by Collabora engineers, with a beefy re-factor and the initial OpenGLContext management by Markus Mohrhard, much of the rendering implemented by Louis-Francis Ratté-Boulianne with anti-aliasing, and image scaling work from Lubos Lunak, various Windows fixes and porting work from Jan Holesovsky and some bits from Chris Sherlock. During the work we also implemented a half-way decent and increasingly complete VCL demo application exercising rendering. A rational for the work with some pictures is available.

By moving to a pure OpenGL rendering model, we can accelerate those operations that badly need to taking advantage of the power and parallelism of the huge APU die-area given over to modern GPUs. Being able to interact much more directly with the underlying graphics hardware helps us to both render our image previews at high quality, and not to sacrifice scroll / zoom performance: having our cake and eating it too. We've also used some of that power to not only significantly accelerate our image rendering, but also improve its quality too from before:

Before: image down-scaling
to After (NB. if your browser scales it too you're likely to loose the sense; zoom to 1:1 and checkout eg. the top of the circular window, or other high-frequency areas.)
After: faster, better, GL image down-scaling

There is a fair bit more work to get OpenGL into a suitable state including several odd Windows / lifecycle bugs; it is necessary to export SAL_FORCEGL=1 to override the black-listing, but we hope to nail these in the 4.4.x cycle. Several ongoing and intersecting features such as the true Idle handler work from Munich's Jennifer Liebel and Tobias Madl as well as more future / pending work in-progress from Munich's Michael Jaumann (working on OpenGL canvas) and Stefan Weiberg (on OpenGL Transitions) are due in 4.5, both mentored by Thorsten Behrens (SUSE).

Mobile Viewer / LibreOfficeKit

The recently announced Android Viewer (Beta) has a number of invisible pieces included there. Particularly the improvements to LibreOfficeKit: an easy way to re-use the rendering and file-format goodness from LibreOffice from Andrzej Hunt and Kohei Yoshida (Collabora) to get Impress and Calc rendering to tiles at least to a Beta level. You can read more about the just started editing work done for TDF there too. LibreOfficeKit has also become more powerful at extracting key document meta-data from yet more of the host of file formats that LibreOffice supports - important for indexing un-structured data.

Build / platform improvements

30% faster Windows builds

With the new build system functionally completed, we've looked at the most significant problem with it: rather slow build times on Windows. An investigation and some benchmarking revealed that the usage of Cygwin make was the main cause of the slowness, and hence Michael Stahl (Red Hat) made it possible to build LO 4.4 with a Win32 native build of GNU make, cutting from-scratch build time by almost a third over stock Cygwin make, and speeding up incremental rebuilds even more.

Win64 porting action

Another major improvement is from David Ostrovsky (CIB), which is to do some significant work towards completing the native Win64 port. This we expect will ship in LibreOffice 4.5, but should significantly help eg. Java users and those with very large spreadsheets. See the Windows 64bit wiki page for more detail, thanks also to Mark Williams for some tricky UNO bridge fixing work, and to Tor Lillqvist (Collabora) who laid a lot of the initial ground-work here.

Code quality work

There has been a lot of work on code quality and improving the maintainability and cleanliness of the code. Another 59 or so commits to fix cppcheck errors are thanks to Thomas Arnhold, Julien Nabet and Simon Danner, along with the daily commits to build without any compile warnings -Werror -Wall -Wextra on many platforms with thanks primarily to Tor Lillqvist (Collabora), Caolán McNamara (Red Hat), and Thomas Arnhold.

Awesome Coverity

We have been chewing through the huge amount of analysis from the Coverity Scan, well - in particular Caolán McNamara (Red Hat) has done an awesome job here; his blog on that is typically modest.

We now have a defect density that bumps along close to 0.00, though as Coverity introduces new checks, and new code gets committed that goes up and down a little; currently 0.02 so - 2 static checking warnings per 100,000 lines. That compares extremely well with the average Open Source project which has 65 warnings per 100,000 lines.

Grokking commits with coverity in them we have 1530 fixes since LibreOffice 4.3 with the top three contributors after Caolan (1378 commits) being: Norbert Thiebaud, David Tardon (Red Hat), Miklos Vajna (Collabora).

Increasing use of asserts

In the 3.5 release we switched away from custom macros to use normal 'assert' calls to sanity check various invariants; we're doing more sanity checking left and right these days:

Graph of number of run-time assertions
Import and now export testing

Markus Mohrhard (Collabora)'s great import/export crash testing has been further expanded to cover 76,000+ problem/bug documents up from 55k last release, with a selection of odd images now also included. Another major win here was the provision by TDF (thanks to our donors) of a beefy new 64 core box to run the load/save/validate tests on. This, combined with some re-working and better parallelism of the python scripts driving that, has speeded up our test runs from five days to under one - allowing rapid diagnosis of new regressions in a much smaller range. We've also been able to do some Addresss Sanitizer runs of the document set which has resulted in a number of fixes, thanks too to Caolán McNamara (Red Hat) for some great work there.

Clang plugins / checkers

We have continued to add to our clang compiler plugins; a quick git grep for 'Registration' in compilerplugins shows that we've gone from 27 to 38 plugins in the last six months. These check all manner of nasty gotchas that people can fall into in our code. Some of these plugins are used manually but many are run by a tinderbox and some users to catch badness quickly. Thanks to: Stephan Bergmann (Red Hat) and Noel Grandin (Peralex) for their hard work on these checkers this cycle.

The plugins do all sorts of things, for example Bjoern Michaelsen (Canonical) wrote a plugin that detects deeply-nested conditionals such as these monsters. These are hard to read and a severe pain to debug through. Some of the worst offenders in sw/ have been rewritten and the plugin can easily be applied elsewhere in the codebase.

Unit testing

We also built and executed more unit tests with LibreOffice 4.3 to avoid regressions as we change the code. Grepping for the relevant TEST and ASSERT macros we continue to grow the number of unit tests:

Graph of number of unit tests and assertions
Our ideal is that every bug that is fixed gets a unit test to stop it ever recurring. With around 1000 commits, and over seventy committers to the unit tests in 4.4 it is hard to list everyone involved here, apologies for that; what follows is a sorted list of those with over 10x commits to the qa/ directories: Miklos Vajna (Collabora), Caolán McNamara (Red Hat), Kohei Yoshida (Collabora), Michael Stahl (Red Hat), Stephan Bergmann (Red Hat), Zolnai Tamás (Collabora), David Tardon (Red Hat), Noel Grandin (Peralex), Matúš Kukan (Collabora), Luboš Luňák (Collabora), Markus Mohrhard (Collabora), Tor Lillqvist (Collabora), Thomas Arnhold, Andrzej Hunt (Collabora), Eike Rathke (Red Hat), Jan Holesovsky (Collabora)

QA / bugzilla

Over the last six months the QA team has grown in size and effectiveness, doing some amazing work to bring our un-triaged bug count right down from one thousand (which we thought was good) to just over three hundred bugs. It's particularly knotty triaging some of those last bugs - with rather deeply technical, or super-hard-to-reproduce combinations lurking at the bottom: some excellent work there. It is rather hard to extract credits for confirming bugs, but the respective hero list overlaps with the non-developer / top closers listed below.

One metric we watch in the ESC call is who is in the top ten in the freedesktop Weekly bug summary. Here is a list of the people who have appeared more than five times in the weekly list of top bug closers in order of frequency of appearance: Caolán McNamara (Red Hat), Adolfo Jayme, tommy27, Julien Nabet, Jean-Baptiste Faure, Jay Philips, Urmas, Maxim Monastirsky, Beluga, raal, Michael Stahl (Red Hat), Joel Madero, ign_christian, Cor Nouws, V Stuart Foote, Eike Rathke (Red Hat), Robinson Tryon (TDF), Miklos Vajna (Collabora), Matthew Francis, foss, Sophie (TDF), Samuel Mehrbrodt, Markus Mohrhard (Collabora). And thanks to the many others that helped to close so many bugs for this release.

Bjoern Michaelsen (Canonical) also wrote up a new year QA update which is well worth reading.

Another win that should help us tweak our bugzilla to make it more user friendly and better structured is the migration from FreeDesktop infrastructure to TDF, with thanks to FreeDesktop for taking our large bugzilla load for all these years. This was completed recently - so now we file bugs at http://bugs.documentfoundation.org/. Thanks to Robinson 'colonelqubit' Tryon (TDF), and Tollef Fog Heen as well as our sysadmin team for that work. As is perhaps obvious, Robinson is working for TDF (funded by our generous donors) half-time to help improve our QA situation.

Code cleanup

Code that is dirty should be cleaned up - so we did a lot of that.

Ongoing German Comment redux

We continued to make progress, but sadly only a small amount of it on translating our last lingering German comments across the codebase into good, crisp technical English. This is a great way to get involved in LibreOffice development. Many thanks to: Philipp Weissenbacher, Christian M. Heller, Jennifer Liebel (Munich), Chris Sherlock (Collabora), Michael Jaumann (Munich), Luc Castermans, Jeroen Nijhof, Florian Reisinger and a number of others with just one commit. Further reductions in the number of false positives from bin/find-german-comments suggest that there are only ten top-level modules left containing German, nine of them worth translating: i18npool, include, reportdesign, sc, scaddins, sfx2, stoc, svx, sw

Graph of remaining lines of German comment to translate

One particularly encouraging contributor to our German Comment translation efforts was Lennart Poettering who it seems has an amusing plan afoot.

Upgrading to (some) C++11 subset

As time advances, C++ improves, with the upgrade of Visual Studio we've been able to move to a subset of C++11 (as supported by VS 2012) as a new compiler base-line. We also removed several optimization disabling workarounds for bugs in old GCC versions that don't do C++11 anyway, and hence both GCC and MSVC can now build all of LO with optimization. Thanks to Stephan Bergmann (Red Hat) for researching and driving this work.

OOXML Tokenizer cleanup

This cleanup builds on work by Miklos Vajna (Collabora) in the last release. A big chunk of our OOXML tokenizer was generated code, which is reasonable but it was generated using XSLT (which is trending below cobol). This was re-written from 4200 lines of XLST into 1300 lines of python - to produce the same output with a large increase in hack-ability. Then some optimization was done by Jan Holesovsky (Collabora for CloudOn), to reduce inefficiency in the generated output saving 2.2Mb from the 8Mb (stripped) writerfilter DSO. Great to see this sort of code cleanup, source size shrink and binary shrink at the same time. You can read more about it in Miklos' blog.

std:: containers

A systematic set of improvements to our usage of the std:: containers has been going on through the code. Things like avoiding inheritance from std::vector, changing std::deque to std::vector and starting to use the newer C++ constructs for iteration like for (auto& it : aTheContainer) { ... }. There are many people to credit here, thanks to Stephan Bergmann (Red Hat), Takeshi Abe, Tor Lillqvist (Collabora), Caolán McNamara (Red Hat), Michaël Lefèvre, and many others.

Performance improvements

Performance is one of those very hard to see things, that is nevertheless viscerally felt: "why am I still waiting ?". There are a number of rather encouraging performance improvements by different people in LibreOffice 4.4 that are worth noticing.

Autocorrect performance

For reasons that elude me, some people like to have huge auto-correct lists. These are stored as zipped XML. Daniel Sikeler (Munich) put some lovely improvements into the loading of these. In particular he discovered that we were re-parsing our BlockList.xml a large number of times, fixing this made a big difference. Combining that with switching to use the threaded & improved FastParser - yielded a further win. The auto-correct list is loaded after the 1st key-press, so getting this from 4.3 seconds down to 1.5 seconds (for huge correction lists) is a big win.

Image management

While profiling saving in various file formats, it was discovered that we frequently swap in (ie. re-load, and de-compress) images - this of course takes significant CPU time, particularly since we then immediately continue to preserve the (original) data in the file. In some cases this was taking a large proportion of save time for large image-filled presentations eg. Thanks to Tamaz Zolnai (Collabora) for cleaning up and fixing this, as well as hunting perennial image loss issues.

Fast Serializer

As a general rule any class named 'Fast' in the inherited OpenOffice code is a horrible mis-nomer. Many thanks to Matus Kukan (Collabora) for fixing this. We discovered that 25% of save time of large XLSX sheets was consumed in the Fast Serializer, which did a staggering 9.9 million system-calls, each writing some tiny fragment of an XML attribute eg. separate writes for opening elements, element names, attribute names namespaces etc. Matus reduced this to 76k calls to do the same thing, a 99% decrease. Quite apart from the system-call overhead we reduced cachegrind CPU pcycles for 'SaveXML' from over 12bn to under 3bn for a simple sample.

Bundle libjpeg-turbo

It has been known for many years that JPEG-turbo provides superior de-compression performance - "In the most general terms, libjpeg-turbo is 2.1 - 5.3x as fast as libjpeg v6b and 2.0 - 5.8x as fast as libjpeg v8d.". Naturally Linux vendors use the system packaged libjpeg, but when we distribute on Windows - we now bundle a 2x speed-up in the form of libjpeg-turbo - thanks to Matúš Kukan (Collabora) with some cleanups from Stephan Bergmann (Red Hat). Volunteers to make jpeg-turbo integrate nicely on Mac appreciated.

Mail merge performance

Mail-merge works by building a huge document containing the result of all the mails to be printed / merged into a single file. The wisdom of this is highly debatable, but nevertheless thanks to Lubos Lunak & Miklos Vajna (both Collabora for Munich) who put some significant effort in to very substantially accelerate large document merge, in some cases by several orders of magnitude. Sadly OpenOffice.org took a major regression here in version 3.3, and that is now comprehensively fixed. This turns a 2000 record mail-merge from a matter of hours down to a few minutes.

Calc Performance

There were a number of rather pleasant performance wins in this release of LibreOffice, which cumulatively have rather a helpful effect.

Range dependency re-work

For previous LibreOffice releases Kohei Yoshida (Collabora) spent a big block of time unifying runs of similar formulae into FormulaGroups - that fill down a large span of a column - since this is a common case for large data sets. This allowed a large memory reduction, and lots of great data sharing. However dependency management was de-coupled from this and was still performed per-cell. That is particularly expensive if you consider a range reference that is common for the whole formula group: resulting in lots of setup, and tear-down cost: essentially to notify the entire formula group. In 4.4 calc adds a listener type that is tailored for these formulae groups - potentially turning tens of thousands of complex data structure entries into a single entry. This saves a large chunk of memory, and a lot of CPU time walking lists, it also saves a ton of time when broadcasting the changes. There is plenty more work to be done to extend this, and ideally in future we should use the same approach for single-cell references as well. Thanks too to Eike Rathke (Red Hat) and Markus Mohrhard (Collabora) for some associated fixes.

Script type optimizations

For various reasons, detecting the script-type of a cell is an expensive operation; is it some asian text, complex text or simple - which affects the font, sizing & various metrics. Kohei Yoshida (Collabora) discovered that in several common operations - copying/pasting large chunks of data - that this work was being needlessly re-done and removed this cost. Similarly, for simple data types with standard formatting on eg. a large span of doubles, it was possible to significantly simplify the calculation of script types.

Chart deferred re-rendering

Another area that (still) causes some grief is that whenever a data range changes which a chart depends on, the entire chart is re-generated. That involves tearing down a lot of drawing shapes and re-creating them, which in the case of text is particularly expensive. Kohei Yoshida (Collabora) implemented a great optimization to defer this work until the chart is visible. This should have a pleasant effect on editing time for large data sets which are charted on many other sheets, and also for macros operating on many charts.

Getting involved

I hope you get the idea that more developers continue to find a home at LibreOffice and work together to complete some rather significant work both under the hood, and also on the surface. If you want to get involved there are plenty of great people to meet and work alongside. As you can see individuals make a huge impact to the diversity of LibreOffice (the colour legends on the right should be read left to right, top to bottom, which maps to top down in the chart):

Graph showing individual code committers per month

And also in terms of diversity of code commits, we love to see the unaffiliated volunteers contribution by volume, though clearly the volume and balance changes with the season, release cycle, and volunteers vacation / business plans:

Graph of number of commits per month by affiliation

Naturally we maintain a list of small, bite-sized tasks which you can use to get involved at our Easy Hacks page, with simple build / setup instructions. It is extremely easy to build LibreOffice, each easy-hack should have code pointers and be a nicely self contained task that is easy to solve. In addition some of them are really nice-to-have features or performance improvements. Please do consider getting stuck in with something.

Another thing that really helps is running pre-release builds and reporting bugs just grab and install a pre-release and you're ready to contribute alongside the rest of the development team.

Conclusion

LibreOffice 4.4 is the next in a series of releases that incrementally improve not only the features, but also the foundation of the Free Software office suite. It is of course not perfect yet, this is just the first in a long series of monthly 4.4.x releases which will bring a stream of bug fixes and quality improvements over the next months as we start working in parallel on LibreOffice 4.5.

I hope you enjoy LibreOffice 4.4.0, thanks for reading, don't forget to checkout the user visible feature page and thank you for supporting LibreOffice.

Raw data for many of the above graphs is available.

January 29, 2015 02:24 PM

2015-01-29 Thursday

  • Quick mail check, morning off - out for a walk with J. along a rather perplexing Devil's Dyke nearby - apparently each end used to be an impassable fen / swamp. Nice to wander along.

January 29, 2015 02:06 PM

Official TDF Blog

LibreOffice 4.4, the most beautiful LibreOffice ever

  • The user interface has been improved in a significant way
  • Interoperability with OOXML file formats has been extended
  • Improved source code quality based on Coverity Scan analysis

Berlin, January 29, 2015 – The Document Foundation is pleased to announce LibreOffice 4.4, the ninth major release of the free office suite, with a significant number of design and user experience improvements.

“LibreOffice 4.4 has got a lot of UX and design love, and in my opinion is the most beautiful ever,” says Jan “Kendy” Holesovsky, a member of the Membership Committee and the leader of the design team. “We have completed the dialog conversion, redesigned menu bars, context menus, toolbars, status bars and rulers to make them much more useful. The Sifr monochrome icon theme is extended and now the default on OS X. We also developed a new Color Selector, improved the Sidebar to integrate more smoothly with menus, and reworked many user interface details to follow today’s UX trends.”

LibreOffice 4.4 offers several significant improvements in other areas, too:

  • Support of OpenGL transitions in Windows, and improved implementation based on the new OpenGL framework;
  • Digital signing of PDF files during the export process;
  • Installation of free fonts Carlito and Caladea to replace proprietary Microsoft C-Fonts Calibri and Cambria, to get rid of font related issues while opening OOXML files;
  • Addition of several new default templates, designed by volunteers;
  • Visual editing of Impress master pages, to remove unwanted elements, adding or hiding a level to the outline numbering, and toggling bullets on or off;
  • Better Track Changes – with new buttons in the Track Changes toolbar – and AutoCorrect features in Writer;
  • Improved import filters for Microsoft Visio, Microsoft Publisher and AbiWord files, and Microsoft Works spreadsheets;
  • New import filters for Adobe Pagemaker, MacDraw, MacDraw II and RagTime for Mac;
  • Greatly expanded support for media capabilities on each platform.

A rather comprehensive description of all LibreOffice 4.4 new features, including developers’ names, is available on the release notes page at the following address: https://wiki.documentfoundation.org/ReleaseNotes/4.4. In addition, a summary of the most significant development related details has been published by Michael Meeks: https://people.gnome.org/~michael/.

People interested in technical details can find change logs here: https://wiki.documentfoundation.org/Releases/4.4.0/Beta1 (fixed in Beta 1), https://wiki.documentfoundation.org/Releases/4.4.0/Beta2 (fixed in Beta 2), https://wiki.documentfoundation.org/Releases/4.4.0/RC1 (fixed in RC1), https://wiki.documentfoundation.org/Releases/4.4.0/RC2 (fixed in RC2) and https://wiki.documentfoundation.org/Releases/4.4.0/RC3 (fixed in RC3).

Download LibreOffice

LibreOffice 4.4 is immediately available for download from the following link: http://www.libreoffice.org/download/ or http://download.documentfoundation.org/libreoffice/stable/. LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at http://donate.libreoffice.org.

About The Document Foundation

The Document Foundation is an independent, self-governing and meritocratic organization, based on Free Software ethos and incorporated in Germany as a not for profit entity. TDF is focused on the development of LibreOffice – the best free office suite ever – chosen by the global community as the legitimate heir of OOo, and as such adopted by a growing number of public administrations, enterprises and SMBs for desktop productivity.

TDF is accessible to individuals and organizations who agree with its core values and contribute to its activities. At the end of December 2014, the foundation has 205 members and over 3,000 volunteer contributors worldwide.

tdf-libreoffice44info

The infographics is also available as a PDF.

by italovignoli at January 29, 2015 01:01 PM

January 28, 2015

Michael Meeks

2015-01-28 Wednesday

  • Mail chew; worked on marketing, ploughed through tedious tasklets, sales call, partner call, another sales call. Worked on a write-up of 4.4 things you can't see in the evening too.

January 28, 2015 09:00 PM

January 27, 2015

Charles Schulz

LibreOffice 4.4 the beautiful

We are very close to release LibreOffice 4.4 and I thought I’d share my thoughts on the work that has been put into this new branch and what the general idea is about it. LibreOffice 4.4 is unusual; as a major release you may expect some important underlying change in its architecture, or the inclusion of a set of major features. The 4.4 does include several important features and improvements, most notably for Impress and the much forgotten HTML editor (the comprehensive release notes may be found here). But the most important details are not to be found in this area. If you want to understand where the 4.4 branch is headed, I think it is useful to keep two fundamental trends in mind.

A beautiful and useful interface

Both the official announcement and the detailed release notes point in one direction: user experience. An unusual number of features are actual user interface improvements, from better looking toolbars, menus, colour selector, to a full set of icons finally arriving on OS X. There is an untold explanation about this sudden flurry of UX novelties. Several months ago, the small design team of the LibreOffice project was struggling to accomodate both the incoming set of artwork requests for marketing or advocacy purposes and the actual need to contribute to the software itself; all this, unfortunately, despite an agreed on and working process encompassing every step from the idea to the actual design blueprint to be developed by any willing developer. The design team received the LibreOffice-4.4-OS-Xhelp of a few really motivated people who started to launch UX surveys around Twitter and work on icons design. Then one of the core developers of LibreOffice decided to help the design team by accelerating the inclusion of design blueprints into actual code. As a result, iconsets became completed, new elements of user interfaces appeared, got tested and were finally integrated in the software. The design team is thus on a very creative sprint and you should expect more of these new designs and interface elements in the coming releases.

A better document logic

There are several features as well as announcements that are helping set a fresh picture not just on the software itself but on how you can improve your daily workflow. Since about two years, various releases of LibreOffice have shipped with a CMIS connector. This tool allows you to connect to various content management systems, from SharePoint to Tibco, Nuxeo, Oracle and several more of these platforms. With the 4.4 the tool has received several improvements as well as the ability to connect to the OneDrive storage cloud by Microsoft. If you add to this connector the recent announcements of the work we are doing on Android, you may realize that LibreOffice is increasing its focus not just on the software features itself, but on the document and its processing logic. The real debate, I think, is indeed not one where we ask whether the Document Foundation is late in the game of mobile apps or Software as a Service. The important discussion in my not so humble opinion is what can the Document Foundation do to improve the experience and the productivity of the user on its documents. Today, this means being both able to handle documents in a myriad of formats and ensuring they are accessible and editable pretty much anywhere so that the logic of the user with regard to its documents (why the user is even handling documents in the first place) is understood and implemented in the best way possible. The document logic must also involve the ability to store files on platforms that will distribute the files to several other users so that they in turn may edit or comment on them.  This is how the ability to manipulate documents in various contexts (mobility, computers, in the cloud, etc.) and track changes and comments makes sense.

The 4.4 release is firmly headed in this direction and as we will be moving forward through 2015 it will only become more visible. All in all, this upcoming release makes me happy, not just because of the big trends I’ve just outlined, but simply because it’s the kind of releases where you don’t need to explain what “happened under the hood” and justify all the hard work developers invested in the software; for once a great deal of these contributions is visible by anyone, and it’s obviously a rather gratifying experience.

by Charles at January 27, 2015 09:30 PM

Michael Meeks

2015-01-27 Tuesday

  • Mail chew; great to see the Android Editing Tender announced by TDF. Naturally I (and another board member) was recused from that discussion / decision. My hope is that after the heavy lifting is out of the way, it will become much easier to get more people involved there. The work itself has a has a large element of generic tiled-rendering functionality which is re-usable in a number of situations to improve rendering performance. Reading Miklos' nice write up of some of the work so far.
  • Lunch. Reviewed my notes from the ODF plug-fest. Sync. with Thorsten.
  • Up late replacing J's cracked glass on her Galaxy S3 - managed to buy all the necessary bits, incluing a heat-gun for 20% of the cost of having it replaced by the cheapest shop I could find; thank God it still works.

January 27, 2015 09:00 PM

Miklos Vajna

Tiled editing: from viewing only to a living document

As it has been announced last week, an Android port of LibreOffice in the form of a viewer app is now available for download. What’s next? Editing, naturally. First, thanks again to The Document Foundation — and all the donors who made this (ongoing) work possible. In this post I would like to explain what did we do with Tomaž Vajngerl at Collabora so far in that direction.

If you ever touched the Android port of LibreOffice, you probably noticed that sadly developing for Android is much harder compared to Linux (desktop). On Linux, if you just touch a single module, it’s possible to rebuild just that module in a few seconds, and then you can run soffice again with your modifications included. On Android, this is much harder:

  • due to a limitation of the Android linker, we link all the native code into a single shared object, that has to be re-linked after each native code modification

  • the native + the Java code has to be packed into a .apk archive

  • the .apk archive has to be uploaded to the device (or emulator) and installed there

and only then can you test your changes. To partly sidestep from this problem, we split the "Android editing" into two:

  • tiled editing: this can be tested on Linux using the gtktiledviewer test application (and ideally any core problem can be seen here already)

  • Android LibreOfficeKit client: replacing gtktiledviewer with the real Android client code, and this time testing it on the device

One problem with this approach was that while Android properly rendered small tiles of 256x256 pixels, gtktiledviewer rendered a single huge tile. This means that in case part of the document changes and we need to re-draw it, we always repainted the whole document in gtktiledviewer, while we only repainted the necessary parts on Android. Guess what, if the area to be repainted is wrong, it’ll be visible on Android but not on gtktiledviewer. So the first task we solved was to let gtktiledviewer also render small tiles. For debugging purposes, small red rectangles are painted at the top left corners of each rectangle, so the size and position of the tiles can be seen easily:

The next step was to somehow start work on real editing — but where to start? We identified two critical building blocks:

  • there should be some way for the user to provide input (e.g. press a key on the software keyboard)

  • once the document changed, the application has to redraw the changed part of the view

To avoid solving two problems at the same time, we first went after the second. One use case that only requires the update of the view is blinking text. Even if no touch or key events are available, a blinking text wants to update the view using a timer, so it’s a good testcase. It’s now possible for LibreOfficeKit clients to register a notification callback, and using that, LibreOffice can notify clients if part of the view has to be redrawn. Here is how it looks using gtktiledviewer:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/rgv76GPlMRU" width="420"></iframe>

This demonstrates that the LibreOfficeKit implementation in LibreOffice core and also the gtktiledviewer client code handle correctly tile invalidations. Once that was done, we could also implement a similar client code in the Android app — it looks like this:

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube.com/embed/EkGpCrGlhiY" width="420"></iframe>

That’s it for now — next on our list is adding support for input handling, so it’s possible to type in some text. :-)

January 27, 2015 10:02 AM

Official TDF Blog

The Document Foundation announces the results of the Android Tender

Berlin, January 27, 2015 – Following the successful release of the LibreOffice Viewer (Beta), The Document Foundation announces the results of the Android tender – http://tdf.io/tender – today. The tender aims at developing the technical framework that will ultimately power LibreOffice for Android, including the document editor. This tender is one more step towards a compelling, elegant and full-featured experience of LibreOffice on Android.

“We have received a large number of requests for LibreOffice on Android, but at the same time we have realized that without a solid base framework it would have been extremely difficult for the ecosystem to develop a full fledged application for that platform,” comments Thorsten Behrens, TDF Chairman. “With the other members of the BoD, we have then decided to use a portion of the money coming from donations to fund the development of such a framework. This represents an innovative way to spend donations money, and respects the will of the people who have donated to fund an Android application. We invite our happy users to keep on their support with donations.”

To confirm the interest for LibreOffice on Android, the Viewer – although still a Beta – has already been downloaded by tens of thousands of users in just a week, and reviewed by hundreds of websites.

Three work packages, out of the four included in the tender, have been assigned as follows: (1) infrastructure and (2) selections to Collabora, (4) cloud storage and e-mail to Igalia [details of the work packages are available on the tender page]. Results are expected during the month of March 2015.

“The tender process has been a completely new experience for the Board of Directors and for myself”, says Florian Effenberger, Executive Director of The Document Foundation. “The most challenging part has been to create the format of the tender according to the principles set in our statutes, to set an even ground of competition for all the participants. Once again, we have set a new ground for free software foundations, by investing in the development of a framework, to foster the development of a full fledged LibreOffice for Android. I would like to take this opportunity to thank all the companies who have sent their proposals, including those who have not been selected.”

The Document Foundation will be making the work available as a series of Beta builds over time which will incrementally add more powerful editing capabilities. Users are encouraged to download and play with the application, and provide their feedback to help improve the quality of the software.

The Document Foundation is grateful to all donors for their ongoing support of the project, through the donations page at: http://donate.libreoffice.org.

by italovignoli at January 27, 2015 09:54 AM

LibreOffice Documentation

LibreOffice 4.3 Draw Guide Published

The Documentation Team has published the LibreOffice 4.3 Draw Guide. Free PDFs can be downloaded from The Document Foundation’s wiki. Printed copies can be purchased here. (Published by Friends of OpenDocument Inc.)

by Jean at January 27, 2015 05:51 AM

January 26, 2015

Michael Meeks

2015-01-26 Monday

  • Mail chew, 1:1's with the guys; lunch with J. Product team call; more mail chew, sync. with Sam; Consulting team call; more mail churn. Dinner, babes to bed, more admin. Pleased to see the progress that Noel has made on the feature/vclref branch.

January 26, 2015 09:00 PM

January 24, 2015

Miklos Vajna

Perfect WW8 comment import

TL;DR: Import of annotated text ranges from binary DOC format was a problem for quite some time, now it should be as good as it always was in the ODT/DOCX/RTF filter.

Longer version: the import of annotation marks from binary DOC was never perfect. My initial implementation had a somewhat hidden, but important shortcoming, in the form of a "Don’t support ranges affecting multiple SwTxtNode for now." comment. The underlying problem was that annotation marks have a start and end position, and this is described as an offset into the piece table (so the unit was a character position, CP) in the binary DOC format, while in Writer, we work with document model positions (text node and content indexes, SwPosition), and it isn’t trivial to map between these two.

Tamás somewhat improved this homegrown CP → SwPosition mapping code, but was still far from perfect. Here is an example. This is how this demo document looks like now in LibreOffice Writer:

And this is how it looked like before the end of last year:

Notice how "Start" is commented and it wasn’t before. Which one is correct? Here is the reference:

The reason is that the document has fields and tables, and the homegrown CP → SwPosition mapping did not handle this. A much better approach is to handle the mapping as we do it for bookmarks: even if at the end annotation marks and bookmarks are entires in sw::mark::MarkManager, it’s possible to set the start position as a character attribute during import (since mapping the current CP to the current SwPosition is easy) and when we know both the start and end, delete the character attribute and turn it into a mark manager entry. That’s exactly what I’ve done. The first screenshot is the result of 3 changes:

Hopefully this makes LibreOffice not only avoid crashing on such complex annotated contents, but also puts an end to the long story of "annotation marks from binary DOC" problems.

Note
Just like how C++11 perfect forwarding isn’t perfect — if you think it is, see "Familiarize yourself with perfect forwarding failure cases." in this post of Scoot — the above changes may still not result in a truly perfect import result of DOC annotation marks. But I think the #1 problem in this area is now solved. :-)

January 24, 2015 09:14 PM

January 23, 2015

Thorsten Behrens

LibreOffice Google Summer of Code 2014 retrospective

Apologies for being really extra-late with this report, but at least I don’t have to update this post with links to late video uploads or the upcoming LibreOffice 4.4 features page. ;)

Let me first thank Google’s OpenSource office for their generousity, our many volunteer mentors for their time & efforts, and of course this year’s ten successful GSoC students for their outstanding job!

Without further ado, below is the collection of the achievements during the 2014 GSoC period, in no particular order:

Andrzej Hunt

Andrzej is a returning GSoC student, and continued his work with the mobile story for LibreOffice. In particular, he worked on tiled rendering support in Calc and Impress, to be used e.g. for viewer applications on mobile devices.

With his words, the achievements include:

  • “Zoom” Controls for the gtk tiled viewer. (Zooming is however quite slow as we’re repainting a huge tile…)
  • A part selector for the gtk tiled viewer, i.e. permits switching between tabs in a spreadsheet, or slides in a presentation (writer documents are however rendered all as one huge block).
  • Associated zoom and part selection methods for the LokDocView gtk+ widget.
  • A quad-tiled widget for testing (nothing to do with real tile composition…): this allows for inspecting tile transitions/borders (and was useful for finding some more glaring issues in the calc implementation).
  • Some automated tests that aren’t yet fully enabled due to some further bugs that have been uncovered (which would cause them to fail).

Here’s how it looks:

Impress tiled rendering

Calc tiled rendering

Andrzej’s LibOCon talk gives even more details.

Anurag Kanungo

Anurag implemented an Adobe Pagemaker import filter from scratch, for the Document Liberation Project – a sister project of LibreOffice, also under the roof of The Document Foundation

In his words, this is what he did:

  • Reverse Engineered about the encoding of various shapes ( line, rectangle, polygon, ellipse) in the pmd file format, using oletoy.
  • Parsing of various shape transformations such as Rotation and Skew.
  • Implementation of proper geometry and output the shapes to open document format.
  • Rotation and Skew is implemented for the shapes. So, that basic skeleton of all the shapes are ready.
  • Fill and Stroke are reverse engineered and parsing is done.
  • Solid Fill and Normal Stroke for shapes are output properly.

Remaining issues:

  • Ellipse Skew Output is not perfect yet.
  • Fill patterns are to be implemented. ( Bars, Tilted lines, Grids etc.)
  • Stroke patterns are to be implemented. ( Dashed array, multi line stroke etc.)
  • Stroke are not output properly, Pagemaker stroke overlaps the shape where as open document format adds stroke on the outside the shape. ( To reproduce the problem , try a custom stroke on a rectangle with width 40pt and then convert).
  • Fill doesn’t work fine for open polygon.

You can find a pagemaker file and a converted odg file here for comparison:

Original PageMaker rendering
As imported by the new filter

Further details can be found on Anurag’s blog.

Valentin Kettner

Valentin jumped onto the thankless job of refactoring Writer – both the oldest and the largest application in the LibreOffice suite, with a lot of coding sins and technical debt. One example: sw/inc/doc.hxx is included by half of the Writer source files, and itself includes loads of other headers (by way of being the central class of a text document). Apart from undesirably tight coupling, that also causes a major and unneeded increase in incremental (re-)build times.

Below is the impressive list of changes Valentin did:

  • fdo#75280 Started cleaning up of sal_uIntPtr usage.
  • Split out the IDocumentDeviceAccess interface of SwDoc.
  • Started cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Removed getVirtualDevice and setVirtualDevice from SwDoc.
  • Cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Finished cleaning up of IDocumentDeviceAccess methods in SwDoc.
  • Made SwDoc::getDocumentDeviceAccess return a reference.
  • Work on DocumentSettingManager for SwDoc.
  • Added 32DummyCompatabilityOptions to DocumentSettingMananger
  • Removed DocumentSettingManager methods from SwDoc.
  • Removed IDocumentSettingAccess.hxx include in SwDoc.hxx
  • Removed IDocumentDeviceAccess.hxx include in SwDoc.hxx
  • Fixed a typo in IDocumentSettingAccess.hxx
  • Added IDocumentSettingAccess& getIDocumentSettingAccess() to SwDoc
  • Changed DocumentDeviceManager includes to IDocumentDeviceAccess.
  • Split out IDocumentDrawModelAccess from SwDoc.
  • Moved SwDoc’s get methods from docnew to doc.cxx
  • Finished rebasing to master.
  • Refactored IDocumentChartDataProviderAccess in SwDoc.
  • Refactored IDocumentTimerAccess in SwDoc into DocumentTimerManager.
  • Refactored IDocumentLinksAdministration out of SwDoc.
  • Refactored IDocumentListItems out of SwDoc.
  • Refactored IDocumentListsAccess out of SwDoc.
  • Refactored IDocumentOutlineNodes out of SwDoc.
  • Refactored IDocumentContentOperations out of SwDoc.
  • Fixed build fail on MacOSX after f634ec5 .
  • Fixed another build failure caused by 2 refactorings.
  • Added #include to DocumentContentOperationsManager.
  • Refactored IDocumentRedlineAccess out of SwDoc.
  • Refactored IDocumentFieldsAccess out of SwDoc.
  • Refactored IDocumentLineNumberAccess.
  • Refactored IDocumentStatistics our of SwDoc.
  • Refactored IDocumentState out of SwDoc.
  • Refactored IDocumentLayoutAccess out of SwDoc.
  • Refactored IDocumentStylePoolAccess out of SwDoc.
  • Refactored IDocumentExternalData out of SwDoc.
  • Refactored SwDoc::GetEditShell .

Valentin’s mentor Michael Stahl’s LibOCon talk gives even more details.

Efe Gürkan Yalaman

Efe worked on the new LibreOffice start center, improving it such that templates now appear directly in the Start Center, and can be picked from there:

Screenshot

Below is what Efe achieved during GSoC:

  • Start Center now has TemplateLocalView with templates.
  • Default view (TemplateLocalView) is set to show all types of templates.
  • A few more handlers and toolbars got moved
  • Opening regions works properly
  • Creating and deleting folders works.
  • Moved initial parts of TemplateBar.(Save, Export etc.)

Future work:

  • Change Templates button with a dropdown to filter the templates for the Module.
  • Put a return point to Recent Documents. Maybe put it in the dropdown?
  • How should editing work?
  • Pondering about filtering (date, alphabetical, filetype etc.)

Efe’s LibOCon talk contains a demo and many more details.

Matteo Campanelli

Matteo worked on two pieces, both situated in the Draw and Impress text editing code. Firtly, the missing feature of setting a background color for text characters was implemented. This was needed especially be a number of Document Liberation Project import filters.

Screenshot

Secondly, a more challenging task was started, namely involving automatic flow of text from one box to another. Imagine having a text box containing too much content for its size. In some documents it is not possible or convenient to solve the problem resizing the box or the font. In these situations we may want the overflowing text to move to some other area in the document, such as another text box logically linked to the overflowing one. This is commonly used for two-column text layouts, but was missing for Impress

Screenshot

See also Matteo’s LibOCon talk for more details and insights.

Mihai Varga

Mihai successfully implemented support for OneDrive and Microsoft SharePoint 2010 native API into libcmis. He also fixed LibreOffice to work with those 2 new protocols. So users will soon be able to grab their documents from their OneDrive account or from SharePoint Foundation server.

Screenshot

See alo Mihai’s LibOCon talk for more details and a demo.

Krisztián Pintér

Krisztián implemented support for more colour palettes, reading of “.gpl” (Gimp) palettes and redesigned the colour picker to be able to use them. With the new colour picker the user has the ability to select the wished colour palette in a drop down menu that are included in the profile (by default there are already additional palettes included). As a document can have colours that are not provided by any colour palette (especially when the document is not ODF), Krisztián added gathering of all colours in the current opened document and presented them as “Document colours” palette.

There were 2 more changes that were missing, are very convenient and highly requested: recent colours and custom colour. With custom colour a user has the ability to select a colour from the colour spectrum, and use that in the document. Recent colour are those that were recently chosen by the user – it is unlikely that a user will use many colours in a document so such a list of recent colours is very convenient for users when they are creating a document.

All this changes have been integrated into master and will be available in LO 4.4.

See also Krisztián’s LibOCon talk for more details and insights.

Rachit Gupta

Rachit worked on the LibreOffice support for FireFox personas (a feature implemented in an earlier gsoc term). During this Summer of Code, he improved the usability of personas. LibreOffice version 4.0 introduced the possibility of applying Firefox Personas to the suite so that users can customize the look and feel while working with LO. However, to do that, the user had to open up the dialog, which would redirect them to a browser, search for the themes on the Mozilla website, copy the URL back in the dialog and wait till the theme was downloaded and applied. The aim for the summer was to make this process a bit more intuitive for the user. The user can search for themes by putting in a search term in the dialog itself. The dialog searches for themes using the Mozilla add-on API, and display the first 9 results with previews in the dialog itself. The user can select any theme and continue working as the theme is now downloaded in a separate thread which does not block the main thread. Also, the user can install a self made theme using oxt extensions. The user can install multiple oxt themes and select one from them.

Screenshot

Palneik Mihaly and Szymon Kłos

Both Mihaly and Szymon worked (independently) on converting legacy UI fixed-layout dialogs over to Caolán’s new format, which is editable by the glade UI builder tool.

When they started working, 64 Dialogs and TabPages were still awaiting conversion. It was uncertain how to launch all of them (obscure cases, unclear if related to long-removed functionality etc). These were the last, and therefore most obscure, difficult to convert, or just plain huge ones.

And the end of the project, each student converted approximately 30 dialogs and TabPages. That means, all .src-based dialogs were converted, as well as all .src-based TabPages.

From the wiki page tracking the UI conversion:

  • 842 .ui files currently exist
  • There are 0 unconverted dialogs
  • There are 0 unconverted tabpages
  • There are 0 unconverted errorboxes
  • There are 0 unconverted infoboxes
  • There are 0 unconverted queryboxes
  • There are 0 unconverted warningboxes
  • There are 0 unconverted msgboxes
  • There are 0 unconverted floatingwindows
  • There are 19 unconverted dockingwindows
  • An estimated additional 19 .ui are required
  • We are 97% of the way through the .ui conversion.

(footnote: by now 100% is converted)

Please also see Palneik’s and Szymon’s LibOCon presentations for details and their experiences.


As an aside: the next opportunity to meet loads of LibreOffice hackers will be during the annual FOSDEM in Brussels. We’re having a number of talks in the OpenDocument Editor’s DevRoom, and a stand in the K building. Looking forward!


Filed under: LibreOffice Tagged: gsoc2014, libreoffice

by thorstenb at January 23, 2015 11:42 PM

January 22, 2015

Jacobo Aragunde Pérez

LibreOffice for Android at FOSDEM

FOSDEM

Next week I’m flying to FOSDEM to let you know about our work in LibreOffice for Android, which has just been released in the Play Store. In my talk I will focus on the document browser, the new features we are currently working on and my own vision for the future of this component.

LibreOffice for Android, provider selection

You can read more about LibreOffice for Android in this post from The Document Foundation, and some gory technical details in Michael Meeks’ blog.

by Jacobo Aragunde Pérez at January 22, 2015 05:30 PM

User Prompt

How to make Libreoffice Customization usable

Introduction

Over the last couple of month we mooted diverse changes for the toolbar in order to update it according the usual workflow. For instance, we discussed the inclusion of Copy and Paste into a new ‘clipboard’ item using a split button control. Or we removed some rarely used items. To learn more read about the standard toolbar in Writer, the results on Calc’s toolbar, and how people utilize Impress.

However, all these changes do not necessarily fit your personal workflow. Maybe you are a casual user who just wants to write down a letter and don’t wants to get bothered with the potpourri of options that Libreoffice provides. And others might run Libreoffice in a business environment with standard procedures that makes a completely different access to functions necessary.

Since there is no default user, everybody should be able to customize the program for his or her own needs. Actually you can customize all aspects of Libreoffice right now, but the workflow is not intuitive.

Current State

The dialog for customization is opened by right clicking a toolbar item (except drop-down menus like font name; and right-click does not work on free space) and selecting Customize Toolbar… from the context menu, or via main menu > Tools > Customize.

Customization dialog for menus and toolbars.

Figure 1: Customization dialog for menus and toolbars.

To change an item you have to select the menu or toolbar you want to change from the dropdown (in figure 1 the (sub-)menu Format > Change Case has been selected).

List of all functions

Figure 2: List of all functions

In case of customization for toolbars you can show or hide items that were assigned to the toolbar beforehand. If you want to add another function you need to click on Add, which opens another dialog showing all available functions. It is organized in categories to break down the extensive list of functions.

You may add separators, rename or delete items, and restore the default. When customizing menus you can add submenus; for toolbars you can change the icon.

But there is no option to search for a function (which is one the major issues of the current dialog). And the customization gets even harder when you want to assign a different or new shortcut to a function.

Customization of shortcuts

Figure 3: Customization of shortcuts

It is possible to search for a shortcut by selecting the list Shortcut keys and pressing the key combination (e.g. ctrl+alt+v = Paste Unformatted Text). Unfortunately the category and function below are not selected accordingly. And with Modify you assign the selected shortcut to the function selected below. So you need to browse through category/function first. If you have found the function you are looking for and if it is assigned to a shortcut the upper list is updated accordingly. Pressing Modify updates the shortcut to what you select in the upper list. If the shortcut was previously assigned to another function this association would be cleared. For instance, you select Insert/Date and assign ctrl+D as a shortcut, the default with Double Underline would be cleared. Otherwise, functions may have more than one shortcut, and you can assign both ctrl+D and ctrl+T to Insert Date.

In addition to the customization of toolbars, menus and shortcuts the dialog contains of a tab to organize events like Open Document, Close Application etc. You can assign macros to those events and, for instance, backup the document on save. So events are rather part of the macro definition than the customization and will not be part of this proposal hence.

Requirements

Although we do not have personas for Libreoffice the following user stories should be written for the fictive user Martin.

Core functions

  1. Martin wants to be able to add/remove items to/from menu and toolbar in order to organize the menu or toolbar for his needs.
  2. Martin wants to be able to sort items up/down (including groups) in order to organize the menu or toolbar for his needs.
  3. Martin wants to (re-)assign shortcuts to functions in order to organize the workflow according his needs.
  4. Martin wants to be able to group items by using submenus/menu- or split buttons in order to organize the workflow for his needs.
  5. Martin wants to have multiple occurrences of functions (but not within the same level) to have access in more than one use cases.
  6. Martin wants to be able to create and organize new toolbars/menus to not override the system standard.

Navigation & Support

  1. Martin wants to search for functions (including fuzzy search) by
    a) the function name (“Select the function xy quickly, with no need to know the right category.”),
    b) the caption of menu item or toolbar button (“Into what toolbars/menus did I add the function xy?”), and
    c) the default and the actual shortcut (“What function is usually assigned to shortcut xy?”, “What function do I have assigned with xy?”).
  2. Martin wants to be able to browse through functions including the usual behavior with jump to the first item on key press to find those functions he knows.
  3. Martin expects to have drag ‘n drop support when adding or sorting items.
  4. Martin wants to save/load the customization on the program level (but not application wide) as well as on a document level to share functionally restricted templates.
  5. Martin wants to have a description for items to learn about what it is used for.
  6. Martin wants to have immediately a preview on changes to get perfect feedback.
  7. Martin wants to be able to customize Libreoffice on his mobile device.

Proposal

Premises of the mockup are:

  • have all customization in one dialog without tabs
  • use the well-known dual-list pattern
  • consider mobile devices

Basic layout

Mockup #1 showing the basic layout.

Figure 4: Mockup #1 showing the basic layout.

The dual-list pattern consists of a view with all available functions on the left hand (similar to the current one), a button to add the selected function to the actual selection on the right hand. You have to choose first between menu and toolbar (tabs), and then which one should be changed (dropdown). The dropdown for both menus as well as toolbars contains of top level items only showing all submenus or menu-/split buttons below. Options that are not available in the current context should be disabled.

We will call the left view the functions list and the right view the positions list. The dropdown for toolbar selection is used similarly for menu selection.

Search

Mockup #2 with focus on the search feature.

Figure 5: Mockup #2 with focus on the search feature.

Search operations are applied to the functions list in terms of a filter. In the example all items that contains the term “date” are kept and all other are hidden. Additionally, the toolbar selection is restricted to those items that contains a function with the search term. But the positions list itself should still show all surrounding items.

Filtering the toolbar selection makes it easy to find items you are looking for, which could be a shortcut as well, but is not handy if an item should be added. You can either clear the search to reset the complete dialog or use the small icon right of the toolbar selection that shows up when filtering is active to unfilter the dropdown content only.

Shortcuts

If you want to change the property of an item, i.e. caption, icon, or shortcut, you have to open the details view by double click. In order to change the shortcut you have to focus the input field and accept the keyboard input as new the key combination. If this combination is being used for another item a warning should be shown. Since changes become not effective unless the dialog is closed with Ok this option should be safe to use. Some items have application-wide shortcuts and require at least an indication that is done by the checkbox (and by the bold font as shown figure 4).

Mockup #3 with the modification of a shortcut

Figure 6: Mockup #3 with the modification of a shortcut

Generic functions

All changes can be saved to or loaded from user defined templates.

To provide a preview all changes should be shown immediately. But in contrast to the current version the actual state is restored when the dialog is not closed with Ok.

Future enhancements

In order to free toolbar space we introduced a lot of split buttons recently. Those controls have a default function but provide also a dropdown menu with extended features. For instance, Paste inserts the text from the clipboard but has a dropdown where you can select a different format (aka Paste Special).

To enable the customization of own split buttons we would need to enhance the UI from ground. The advantage is not to have just new buttons but as well the option to move existing functions into the button’s menu. For example, you could create the ‘clipboard button’ yourself and move Copy, Cut, and Paste into this new menu.

The only change needed for the customization dialog is another item in the Add menu, namely to add a new toolbar- or menu item. Eventually sorting an item up/down should move it also into or out of a submenu.

Discussion

The mockups above renders the idea how the customization could look like in future. It reassembles the existing features and streamlines the dialog. But perhaps you never customized your UI and would rather suggest to remove this feature completely. Or, less radically, you might want to have the customization as simple as possible. It could be just the on/off feature for toolbar items that we have right now, perhaps with the option to drag ‘n drop items to arrange the toolbar (menus wouldn’t be customizable anymore). On the other hand you might prefer to have as much options available as possible. This could include the advanced features from Options > Advanced > Expert Options.

So what we need is your input. Do you have different requirements? Is the dialog too complex to your taste?.

Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.

Of course we appreciate your comments too. All ideas are welcome. If we get a positive feedback we can start to realize the project at the next GSoC. In case you are interested in coding you are very welcome, with all support from experienced Libreoffice programmers granted.

by Heiko Tietze at January 22, 2015 11:52 AM

January 21, 2015

Collabora Community

LibreOffice on Android – one less barrier to public sector Open Standards

Today’s launch of the first LibreOffice application for Android pushes our community into exciting new waters. As we speak, new infrastructure is being prepared by Document Foundation Staff for documentation, translation, and bug reporting of the new app, laying the foundations for a busy future. This is just the beginning.

Rather than awaiting perfection, this Beta release strives to follow Eric S. Raymond’s revered principle of “release early, release often”. The app supports only newer versions of Android, and simple documents. More sophisticated features like embedded media and change tracking are also not available. The pace of development however has been rapid, and in the last week alone several major features including the built-in file browser have been added. Semi-weekly releases are planned to advance performance and stability at a steady pace.

The app comes at a sensitive time for Open Standards in the public sector. Many Governments are currently moving to require open formats, such as Open Document Format, internally. So far this month, France, Spain, Sweden, Slovakia, Germany and Finland have all announced commitments to making greater use of Open Source productivity tools. Open Forum Europe’s “Fix My Documents” campaign has meanwhile assessed the many file-types published EU institutions, revealing minimal adherence to current Open Standards policies and adding pressure for adoption of Open Document Format.

Bringing a new Open Source viewer of Open Document Format files to mobile devices can only help to remove barriers to public sector adoption of Open Standards and level the playing field for proprietary formats such as Microsoft Office, which already have mobile applications available. In theory 6,806 devices are compatible with LibreOffice for Android – a staggering amount belying the incredible reach that this operating system now brings to the LibreOffice brand.

Having led development of the initial launch application, we’re looking forward to swelling the ranks of LibreOffice for Android with volunteers of all descriptions. Please join us and the wider LibreOffice community in making Open Source productivity the best that it can be. Find out how to contribute at the Document Foundation website.

by Sam Tuke at January 21, 2015 02:48 PM

SMOOSE and Collabora make LibreOffice Beta available for Android

Cambridge, January 21, 2015 – Collabora engineers today release LibreOffice for Android for the first time. LibreOffice Viewer for Android (Beta) is available in app stores, and marks the start of a new product series for the mobile market resulting from months of work with SMOOSE B.V.. Weekly releases are planned to bring new features and improvements.

“Freedom of Choice is a defining factor of our approach”, says Niels Spanjers, Customer Manager at SMOOSE B.V., “Having a competitive Open Document Format viewer on Android is an important part of providing that freedom to our customers and the larger ecosystem, as a part of our mobile strategy.”

The Open Source app for mobiles and tablets opens documents, spreadsheets, and basic presentations in Open Document and Microsoft Office formats. Complex presentation support and many additional features are planned for future releases.

“The world’s most popular Open Source office belongs on the world’s most popular mobile platform” said Michael Meeks, Vice President of Collabora Productivity. “By bringing LibreOffice to Android Collabora has brought cutting edge productivity tools to one billion mobile users and entered a new mobile market”.

LibreOffice on Android would not be possible without the foundational work of the rest of the LibreOffice community and many others have contributed to its success. SUSE provided a key foundation of cross-platform support, with Google Summer of Code contributions from Andrzej Hunt and Ian Billet, along with improvements from Igalia S.L., and core components by Mozilla Corporation.

LibreOffice Viewer Beta is available in the Google Play store free of charge at the following URL: https://play.google.com/store/apps/details?id=com.collabora.libreoffice

About Collabora Productivity:
Collabora Productivity delivers LibreOffice products and consulting to the enterprise. With the largest team of certified LibreOffice engineers, it is a leading contributor to the LibreOffice codebase and community. LibreOffice-from-Collabora provides a business-hardened office suite with long term multi-platform support. Collabora Productivity is a division of Collabora Ltd., the global software consultancy specializing in providing the benefits of Open Source to the commercial world, specialising in mobile, automotive and consumer electronics industries.
About SMOOSE:
SMOOSE is committed to ICT solutions based on Open Source. We strive to give companies the freedom to build and control their own IT environment and using products that have nothing to hide. Like knowledge, we believe software can be shared, edited, and distributed where owners see fit. SMOOSE adds value in the creation of a business model in which customer, supplier and user can excel.

by Sam Tuke at January 21, 2015 12:11 PM

Official TDF Blog

LibreOffice Viewer (Beta) now available for Android

Berlin, January 21, 2015 – The Document Foundation (TDF) is happy to see the LibreOffice Viewer (Beta) for Android released in the Google Play Store, allowing mobile users to access Open Document Format (ODF) files from devices such as tablets and smartphones.

The application, created by Collabora, is available from the following link: https://play.google.com/store/apps/details?id=com.collabora.libreoffice.

The first release of LibreOffice Viewer handles text documents and basic presentations. Support for spreadsheets have been included in an early form, while support for more complex presentations is planned for a future release. Users are invited to download and test the application, although care is advised for production environments.

“Support for Android is the result of cooperation between organizations as well as individual contributors,” said Michael Meeks, VP of Productivity at Collabora, “LibreOffice’s open ecosystem has again proved its ability to bring diverse groups together to produce great software without restrictions”.

The mobile app fulfils the wishes of many users who access ODF files on the go, and is also able to read proprietary document formats from other suites including Microsoft Office.

“This release is the first of a new series of mobile applications,” said Björn Michaelsen, a Director of The Document Foundation. “Individuals, companies and organizations are encouraged to participate in the open development process by joining the LibreOffice community.”

The LibreOffice Viewer (Beta) has been created by Collabora with the support of SMOOSE. It is built on foundational work by the LibreOffice community, SUSE, and the Mozilla Corporation, with additional development by Jacobo Aragunde of Igalia, and Andrzej Hunt and Ian Billet as part of Google Summer of Code.

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at http://donate.libreoffice.org.

by italovignoli at January 21, 2015 12:06 PM

Stephan Bergmann

Users of Clang plus glibc, beware

On the one hand, Clang conservatively (and somewhat shizophrenically) claims it is GCC 4.2, by predefining __GNUC__ = 4 and __GNUC_MINOR__ = 2.

On the other hand, glibc headers contain a number of conditional blocks that are only activated for specific GCC versions, using a macro __GNUC_PREREQ(maj, min) that internally checks against __GNUC__ and __GNUC_MINOR__.

For example, that macro is used (for whatever reason) to control whether wchar.h defines the two C++-mandated overloads

wchar_t * wcschr(wchar_t * wcs, wchar_t wc);
wchar_t const * wcschr(wchar_t const * wcs, wchar_t wc);

or the single C-mandated but const-unsafe

wchar_t * wcschr(wchar_t const * wcs, wchar_t wc);

even in __cplusplus mode.

So be warned and do not leave broken code behind, as with “Missing const.”


by stbergmann at January 21, 2015 10:14 AM

January 19, 2015

Naruhiko Ogasawara

Japanese LibreOffice Online Activities

In the post, I want to summarize the online activities of the LibreOffice Japanese community.

On The Document Foundation infrastructure

We, LibreOffice Japanese Team (Japanese Native Language Project), currently focus on the activities.  Having an information / communication hub is very important to energize our <gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="7c3c8e76-0d75-4ae8-b752-7004403c6438" id="f64fcdc0-507f-4fd2-bc2f-d1b1e8749217"><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="df59a8bf-be8d-48c5-a3dc-89ee35fc0051" id="555e9a6a-865d-4cff-87d4-878dc75c5180">community we</gs></gs> believe, and TDF infra is the best place to do that.

Mainly we maintained:

Social Networks

Nowadays, SNSes, like Twitter, Facebook and Google+, are very important communication tool in our everyday life.  We maintained several <gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="995cc0a3-5f71-4ac5-a985-3af41ff149bc" id="098501f9-f222-42fa-81eb-117e1fe6b380"><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="90f9b1e6-82eb-4f30-8368-dc32a8e15115" id="9ea25fb9-4bb8-4e83-9f34-159b8ee3ab31">our</gs></gs> "official" accounts in Japanese language:
I don't know why we haven't Google+ account...  It's better to have this, I suppose.

Blogs, ...

There are several good LibreOffice materials in Japanese.  Some of this can see in TDF planet (includes my blog).

The <gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="a78ab995-8ef9-46c1-a6c6-2ffae28f06b0" id="a808f9e9-107f-49ee-af17-3790a77af775"><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="3b65dac1-f48c-4811-b8a8-e04c98a70351" id="6bc93953-aef6-4a41-af9f-769c2537c83e">oooug</gs></gs><gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="d3450f4f-404f-4871-84f8-051828eb6ff2" id="1417e4b1-198a-4f8c-b81a-fd1aece22f4b">,</gs> which is the Japanese very historic FLOSS office suite (mainly LibreOffice, former OpenOfice.org), has the site with very nice materials, and their own SNS.  But unfortunately, they <gs class="GINGER_SOFTWARE_mark" ginger_software_uiphraseguid="ca663f3f-e7ee-428e-8624-ae150806dba0" id="397f30c7-7075-41d1-b046-c3cf1a3e0d28">seem</gs> less active now...

Some end users publish their own LibreOffice materials, such as:
I might miss some, however, done is better than perfect ;).  Please tell me if you have any additional info.  Thanks!

by Naruhiko Ogasawara (noreply@blogger.com) at January 19, 2015 02:51 PM

January 18, 2015

Eike Rathke

Hallo NSA?! Ich nutze Tor und Tails und Cryptozeugs!

Ich bin Extremist!

Eigen TOR

XKeyscore-Quellcode: Tor-Nutzer werden von der NSA als Extremisten markiert und überwacht

Dabei sollte ich das besser gar nicht benutzen, denn alleine dadurch mache ich mich schon zum Freiwild. Eigen-Tor: Gefahren der Tor-Nutzung im Alltag

William Binney heute in der Anhörung im NSA-Untersuchungsausschuss: Die Vollüberwachung der Gesellschaft ist die größte Bedrohung der Demokratie seit dem amerikanischen Bürgerkrieg.

Ups, da hab ich doch glatt auf netzpolitik.org verlinkt, jetzt bin ich Doppel-Extremist.

Eigentlich ja Dreifach-Extremist, denn Mails verschlüssel ich schon seit Jahren (falls denn jemand mitmacht) mit GnuPG.

Damit ein für alle Mal klar ist was ich von euch NSA-Arschgeigen & Co halte: Und Du, NSA, brauchst da nichts weiter zu speichern und analysieren.

Yours sincerely,
The Tororist


by erAck at January 18, 2015 08:34 PM

An App they would like you to use

Another wet dream of the secret service and advertising department:
mobile application software that identifies a user's behavior and location in order to suggest events and locations of interest and keeps track of events and locations a user has attended or visited; mobile application software that allows a user to notify other users when arriving at an event or location, share photos with other users, and exchange messages with other users
I won't name it nor link to it.

by erAck at January 18, 2015 08:34 PM

WhatsApp? Nein Danke!

Studie zu Messengerdienst WhatsApp: Gläsern chatten - taz.de: Forscher sammeln unbemerkt Daten von WhatsApp-Nutzern und zeigen, wer wie oft online ist. Das zeigt auch, wie leicht man beobachtet werden kann.

by erAck at January 18, 2015 08:32 PM

January 17, 2015

Florian Reisinger

SI GUI is ready for the Bugzilla migration

Hi,

So, version 4.4.0.7 is ready for our bugzilla migration. Now this project uses TDF.io – The url shortener of the TDF for all URLs, so I am going to change the URL leading to bugzilla on the day, or no later then one day after the migration.

BTW: The URL is http://tdf.io/siguibug.

Thanks for using SI-GUI :)


by Florian Reisinger at January 17, 2015 09:37 AM

January 16, 2015

Kohei Yoshida

Last day

Today is my last day with Collabora, and also my last day as a full-time engineer working on the LibreOffice (and formerly OpenOffice.org) code base. It’s been 8 long years of adventure. Lots of things happened, and we’ve achieved great many things. I’m certainly very proud of having been a part of it.

From this point on, I’ll participate the project purely as a volunteer. I have not yet figured out what I want to do nor how much I can do, and figuring that out will probably be my first task as a newly volunteer contributor.

Thank you for being patient with me in the last 8 years. You guys have been great, and, even though I’ll have much less time to devote to LibreOffice going forward, I still hope to see you guys around from time to time!

by Kohei Yoshida at January 16, 2015 02:43 PM

January 15, 2015

Björn Michaelsen

SwNodeIndex: Ludicious Speed

No-no-no, light speed is too slow!
Yes, we’ll have to go right to… ludicrous speed!

– Dark Helmet, Spaceballs

So, I recently brought up the topic of writers notes in the LibreOffice ESC call. More specifically: the SwNodeIndex class, which is, if one broadly simplifies an iterator over the container holding all the paragraphs of a text document. Before my modifications, the SwNodes container class had all these SwNodeIndices in a homegrown intrustive double linked list, to be able to ensure these stay valid e.g. if a SwNode gets deleted/removed. Still — as usual with performance topics — wild guesses arent helpful, and measurements should trump over intuition. I used valgrind for that, and measured the number of instructions needed for loading the ODF spec. Since I did the same years and years ago on the old OpenOffice.org performance project, I just checked if we regressed against that. Its comforting that we did not at all — we were much faster, but that measurement has to be taken with a few pounds of salt, as a lot of other things differ between these two measurements (e.g. we now have a completely new build system, compiler versions etc.). But its good we are moving in the right direction.

implementation SwNodes SwNodeIndex total instructions performance linedelta
DEV300_m45 71,727,655 73,784,052 9,823,158,471 ? ?
master@fc93c17a 84,553,232 60,987,760 6,170,762,825 0% 0
std::list 18,461,317 103,461,317 14,502,230,571 -5,725%
(-235% of total)
+12/-70
std::vector 18,986,848 3,707,286,032 9,811,541,380 -2,502% +22/-70
std::unordered_map 18,984,984 82,843,000 7,083,620,244 -627%
(-15% of total)
+16/-70
std::vector rbegin 18,986,848 143,851,229 6,214,602,532 -30%
(-0.7% of total)
+23/-70
sw::Ring<> 23,447,256 inlined 6,154,660,709 11%
(2.6% of total)
+108/-229

With that comforting knowledge, I started to play around with the code. The first thing I did was to replace the handcrafted intrusive list with a std::list pointing to the SwNodeIndex instances as a member in the SwNodes class. This is expected to slow down things, as now two allocs are needed: one for the SwNodeIndex class and one for the node entry in the std::list. To be honest though, I didnt expect this to slow down the code handling the nodes by a factor of ~57 for the loading of the example document. This whole document loading time (not just the node handling) slows by a factor of ~2.4. So ok, this establishes for certain that this part of the code is highly performance sensitive.

The next thing I tried to get a feel for how the performance reacts was using a std::vector in the SwNodes class. When reserving some memory early, this should severely reduce the amount of allocs needed. And indeed this was quicker than the std::list even with a naive approach just doing a push_back() for insertion and a std::find()/std::erase() for removal. However, the node indices are often temporarily created and quickly destroyed again. Thus adding new indices at the end and searching from the start certainly is not ideal: Thus this is also slower than the intrusive list that was on master by a factor of ~25 for the code doing the node handling.

Searching for a SwNodeIndex from the end of the vector, where we likely just inserted it and then swapping it with the last entry makes the std::vector almost compatitive with the original implementation: but still 30% slower than the original implementation. (The total loading time would only have increased by 0.7% using the vector like this.)

For completeness, I also had a look at a std::unordered_map. It did a bit better than I expected, but still would have slowed down loading by 15% for the example experiment.

Having ruled out that standard containers would do much good here without lots of tweaking, I tried the sw::Ring<> class that I recently rewrote based on Boost.Intrusive as a inline header class. This was 11% quicker than the old implementation, resulting in 2.6% quicker loading for the whole document. Not exactly a heroic archivement, but also not too bad for just some 200 lines touched. So this is now on master.

Why do this linked list outperform the old linked list? Inlining. Especially, the non-inlined constructors and the destructor calling a trivial non-inlined member function. And on top of that, the contructors and the function called by the destructor called two non-inlined friend functions from a different compilation unit, making it extra hard for a compiler to optimize that. Now, link time optimization (LTO) could maybe do something about that someday. However, with LTO being in different states on different platforms and with developers possibly building without LTO for build time performance for some time, requiring the compiler/linker to be extra clever might be a mixed blessing: The developers might run into “the map is not the territory” problems.

my personal take-aways:

  • The SwNodeIndex has quite a relevant impact on performance. If you touch it, handle with care (and with valgrind).
  • The current code has decent performance, further improvement likely need deeper structual work (see e.g. Kendys bplustree stuff).
  • Intrusive linked lists might be cumbersome, but for some scenarios, they are really fast.
  • Inlining can really help (doh).
  • LTO might help someday (or not).
  • friend declarations for non-inline functions across compilation units can be a code smell for possible performance optimization.

Please excuse the extensive writing for a meager 2.6% performance improvement — the intention is to avoid somebody (including me) to redo some or all of the work above just to come to the same conclusion.


Note: Here is how this was measured:

  • gcc 4.8.3
  • boost 1.55.0
  • test document: ODF spec
  • valgrind --tool=callgrind "--toggle-collect=*LoadOwnFormat*" --callgrind-out-file=somefilename.cg ./instdir/program/soffice.bin
  • ./autogen.sh --disable-gnome-vfs --disable-odk --disable-postgresql-sdbc --disable-report-builder --disable-scripting-beanshell --enable-gio --enable-symbols --with-external-tar=... --with-junit=... --with-hamcrest=... --with-system-libs --without-doxygen --without-help --without-myspell-dicts --without-system-libmwaw --without-system-mdds --without-system-orcus --without-system-sane --without-system-vigra --without-system-libodfgen --without-system-libcmis --disable-firebird-sdbc --without-system-libebook --without-system-libetonyek --without-system-libfreehand --without-system-libabw --disable-gnome-vfs --without-system-glm --without-system-glew --without-system-librevenge --without-system-libcdr --without-system-libmspub --without-system-libvisio --without-system-libwpd --without-system-libwps --without-system-libwpg --without-system-libgltf --without-system-libpagemaker --without-system-coinmp --with-jdk-home=...


by bmichaelsen at January 15, 2015 12:14 PM

Charles Schulz

The Document Foundation: a personal outlook for 2015

2015 has started and I realized that in between the New Year and last week’s tragedy, I hadn’t had the time to discuss what’s on the table for the Document Foundation in 2015. This is purely a personal opinion and does not represent any sort of official statement by the Foundation. Let’s try to keep this somewhat synthetic. LibreOffice_external_logo_200px

More & better software

  • 2015 will be the year of mobility for LibreOffice. The end of 2014 had seen the announcement of CloudOn’s new office suite for iPad, and this office suite is basically powered by LibreOffice. 2015 will see the first results of the development of our Android version. Don’t look for a scoop here: it will be gradual so you will have to take every announcement from the Document Foundation on Android as a chapter in a story.
  • Cloud-wise, the work is still ongoing. You may think we’re taking a long time doing this – and there’s some truth in that. It is important however to consider the following: a cloud version of LibreOffice is not about starting from scratch and releasing something like etherpad. Quite the contrary: it is about “porting” (for lack of a better term) LibreOffice in the cloud, with most of its feature. And that takes a lot of effort, which means constant work by developers who would be glad to have their work subsidized in some way, but who also work on several existing projects, including LibreOffice itself.
  • It is hard to predict how LibreOffice will evolve in 2015 as we do not work with roadmaps. But from what I can see, I see three trends. The first one is a better, more beautiful interface for the OS X version. This was started sometime in 2013, but it will be a reality starting soon, with the upcoming release of the 4.4. The second trend did start with the 4.0 release: more powerful spreadsheets with more features. The third one stems from the benefit of having a more active UX / Design team: improvements in the user interface are being released more frequently and are thus more visible now. LibreOffice-4.4-OS-X
  • Even more document filters: better compatibility with OOXML, Abiword, Clarisworks, Corel… and even better: filters that can be reused by every other FOSS document editors, thanks to the active Document Liberation Project.

A stronger foundation

I guess it’s difficult to know these things before you have experienced them first, but managing and growing a foundation like the Stiftung or any other similar entity such as its counterpart in France, Switzerland or Italy is a full time job. It requires detail and accuracy in execution and the the management of the structure, but since the foundation relies on the community for its actual activities, it requires the involvement of all kinds of people, which in turns implies that a complex human ensemble has to work with a complex yet robust legal machinery. The situation is gradually improving. The employees and contractors of the foundation have the rare quality of being great community members and fit well within the operations of the foundation. I expect these operations to improve and accelerate in 2015 because of all these factors. Which also means you should expect more announcements from the foundation this year.

A larger, more diverse community

Our community is growing and more interestingly, the way it is growing is not only by the arrival of new contributors to the code, but also by new, non technical contributors who may be more familiar with social networks than with mailing list. Even more importantly, we seem to gather traction everywhere with the arrival of contributors whose native language is not English and whose mastering of that language is all but certain. This means that now we have very active community members who are outside mailing lists but on social networks: Google +, Twitter, LibreOffice, and on websites that are in languages completely different than English, while contributing locally without necessarily liaising with the more “central” project. We need to take this into account – and being part of the Membership Committee I can say this is an important discussion we are having and will continue to have this year. This also calls for more awareness in how we work with each other, acknowledgement of contributions; on the other hand, it suggests that we finally get to tackle the need for a more formal management of our relationship with local entities.

But above everything else: let’s continue to have fun! Thank you everyone for your time and efforts you dedicate to this project. I’m looking forward to a great year 2015.

by Charles at January 15, 2015 11:14 AM

January 13, 2015

Official TDF Blog

Behind the scenes at TDF: Infrastructure

09.01.15 - 1

LibreOffice admin meeting in Munich, with Alex being the third person from the left

With the beginning of 2015, a new year packed with exciting projects and ideas around LibreOffice and The Document Foundation, we today finish our behind-the-scenes series, to share achievements in 2014 with our community and our generous donours, to whom we’d like to express our sincerest gratitude and thanks for their incredible and wonderful support and their invaluable contributions!

I’m Alexander Werner and I am responsible for the infrastructure of The Document Foundation on a contracted basis since March 2014. I have been with the project since its foundation in 2012, and been a longtime supporter of free and open source software. As a volunteer I helped setting up and maintaining our first server and optimizing it to handle the load of the first days.
The infrastructure is one of the most important things The Document Foundation provides for the community. As long as every part is working as expected, it is basically invisible. It is my job to make sure that this is always the case, mostly by orchestrating the different services on our growing number of virtual machines.

When the LibreOffice fork began, we started with only one server where all services were located – mailing lists, both private and public, website, mirror management, wiki and many more. As time went by, this server survived its first slashdot, but soon it became clear that more power was needed. So our infrastructure started growing organically as more and more servers were added. Our admins specialized on different parts of the infrastructure, while the whole configuration was centrally documented in a single ODT file.

It soon became clear that this was not a viable solution – our quest for infra 2.0, as we internally call it, began. The admin team worked under fast escalating load while looking for ways to optimize resource usage, inclusion of new volunteers, configuration documentation and management. Also high availablility of services became increasingly important. In our sparse free time we started creating concepts, tested HA with DRBD, Pacemaker and Heartbeat, evaluated different solutions for centralized documentation and started using tools for centralized configuration management.

It soon became clear that we needed more flexibility for working HA with the solution described above, so as interim solution we started virtualizing services first in paravirtualized guests with LXC and then switched to fully virtualized guests with KVM. For infrastructure documentation I suggested to use the documentation generator Sphinx. The source files for the documentation – human readable RST text files – are located in a git repository, and the online documentation is automatically updated on every push. For configuration management and deployment, I eventually stumbled upon SaltStack.

My daily work consists of working on various small recurring tasks such as helping people with mailing list troubles, adding and removing mirrors in MirrorBrain, installing updates and doing necessary reboots as well as handling unexpected incidents such as the Heartbleed bug.

In spring I started working on our Salt states, made them more reliable and made sure that all user accounts are now managed by Salt. I have setup a new virtualization host with VMs for Gerrit, Jenkins, Bugzilla and Plone. Apart from that I worked on improving the documentation of our services, looking for undocumented and unused services.

I also worked on our AskBot setup. While having set up the initial AskLibO instance, it was decided to contract Evgeny Fadeev, the primary developer of AskBot, to develop additional features needed by our community, which will then be made available upstream again. Despite that, I also did some changes such as enabling the newly-developed multilanguage support, fixed template bugs and administered the list of moderators.

Except for my ongoing work to improve the Salt states and adding more not yet managed servers to our Salt infrastructure, I also continued to concatenate various documentation sources into our centralized repository.

I also worked on a download counter that will be useful to track all our downloads by language, location, version and operating system.

But the most interesting, time consuming and fascinating part of my work was the planning, testing and setup of our new cluster/cloud infrastructure. As it was decided to virtualize all of our services, I looked for a solution that is easy to manage and maintain but provides powerful tools for easily creating highly available services.

After quite some time of evaluating I decided to go for oVirt – a KVM-based virtualization solution that provides a nice out-of-the-box experience, the simplicity of its setup was worlds apart from other solutions. It is also possible to provide fully high available services with only two nodes by having the management engine run as VM on the platform.

During the time of evaluation I also had contact to hardware suppliers and hosters, and after a good offer from manitu we decided to host our new platform on two large, dedicated servers, each with 256 GB RAM and 64 CPU cores. Until the end of the year, over 20 virtual machines were migrated and a third node was ordered that will be used primarily for crash testing and to increase the stability of the platform even more.

If you are interested in learning more about our infrastructure or helping out, consider subscribing to the website mailing list, where infra calls are announced or write a mail to alex@documentfoundation.org

by Florian Effenberger at January 13, 2015 02:10 PM

January 12, 2015

Official TDF Blog

The City of Munich joins The Document Foundation Advisory Board

Berlin, January 12, 2015 – The Document Foundation (TDF) announces that the city of Munich has joined TDF Advisory Board, where it will be represented by Florian Haftmann. Back in 2003, the city of Munich – the third largest in Germany – has launched Project LiMux to migrate their software systems from closed-source, proprietary products to free and open-source software. The project was successfully completed in late 2013, which involved migrating 16,000 personal computers and laptops of public employees to free and open-source software. The City of Munich has hosted a LibreOffice HackFest since 2011, to improve features targeted to enterprise environments.

“The city of Munich is a healthy reference for every migration to free software, and as such will add a significant value to our Advisory Board, where it will seat side by side with MIMO, representing the migration to LibreOffice of French Ministries, and with other companies providing value added services on top of LibreOffice,” says Thorsten Behrens, Chairman of The Document Foundation. “Florian Haftmann will be introduced to other members of TDF Advisory Board during next planned meeting, on January 15, 2015.”

TDF Advisory Board has 17 members: AMD, CIB Software, City of Munich, CloudOn, Collabora, FrODeV (Freies Office Deutschland), FSF (Free Software Foundation), Google, Intel, ITOMIG, KACST (King Abdulaziz City of Science and Technology of Saudi Arabia), Lanedo, MIMO (Consortium of French Ministries), RedHat, SPI (Software in the Public Interest), Studio Storti and SUSE.

About the City of Munich and Project LiMux

Munich, Bavaria’s capital, between 2005 and 2013 has successfully managed to migrate around 16,000 PCs in 11 business units and 4 municipal undertakings to an open source based, standard and stable operating system. Munich is the largest public-sector open source stake holder in Germany, and Project LiMux has always had a high visibility.

Project LiMux has been able to reduce in a significant way the dependence from legacy proprietary software products, and attain – in the long term – the desired flexibility of software and architecture, based on three fundamental decisions:

– Introduce a free and open source operating system, with office communications based on open standards for all workstations;

– To acquire or develop platform independent administrative procedures;

– To use a standardised IT platform with consolidated applications and databases.

In such a scenario, a suitable desktop office suite is a strategic core product. In the beginning, LiMux has started to deploy OpenOffice.org, but by now the reference office suite is LibreOffice.

by italovignoli at January 12, 2015 10:30 AM

January 11, 2015

Andreas Mantke

LibreOffice Templates Site – Change Language Settings

I worked on the language settings of a lot of LibreOffice template projects and template releases the last days. There was the setting to the default site language English, if the contributor didn’t changed that on the metadata register of every content type. But this language setting leads to a situation where only user with the English language setting could view that content.

It was not that difficult to indentify the content with (in this case) the wrong language setting in the portal_catalog tool of Plone, the content management system used for the website. There is an index for the language of the site content.

But the work on changing the language setting from English to language independent took some time, because I had to do it manual. Because there were so many entries with the English language setting, it took me some spare time working hours. But I finished the work on the LibreOffice templates site today. I started with the work on the LibreOffice extensions site, but it seemed there are much more entries that I have to change from English to language independent. I hope to get this work finished during the next week.

by andreasma at January 11, 2015 10:03 PM

January 10, 2015

Miklos Vajna

Export validation as a new year's resolution

TL;DR: If you touch the ODF and/or OOXML filters in LibreOffice, please use the --with-export-validation configure option after you ran the setup.sh script.

Markus Mohrhard did an excellent job with adding the --with-export-validation build switch to LibreOffice. It does the following:

  • it validates every Calc and Impress zipped XML document (both ODF and OOXML) produced during the build by export filters

  • it does the same for Writer, except there only a subset of documents are validated

One remaining problem was that it required setting up both odfvalidator and officeotron, neither of them are standard GNU projects but Java beasts. So even if I and a number of other developers do use this option, it happens from time to time that we need to fix new validation regressions, as others don’t see the problem; and even if we point it out, it’s hard to reproduce for the author of the problematic commit.

This has just changed, all you need is to get export-validation/setup.sh from dev-tools.git, and run it like this:

./setup.sh ~/svn /opt/lo/bin

I.e. the first parameter is a working directory and the second is a directory that’s writable by you and is already in your path. And then wait a bit… ODF validator uses maven as a build system, so how much you have to wait depends on how much of the maven dependencies you already have in your local cache… it’s typically 5 to 15 minutes.

Once it’s done, you can add --with-export-validation to your autogen.input and then toplevel make will invoke odfvalidator and officeotron for the above mentioned documents.

The new year is here, if you don’t have a new year’s resolution yet — or if you hate those, but you’re willing to adopt a new habit from time to time — then please consider --with-export-validation, so that such regressions can be detected before you publish your changes. Thanks! ;-)

January 10, 2015 12:07 PM

January 09, 2015

Florian Reisinger

2014 im Rückblick

Sorry for the German. This is automatically generated by wordpress.com. Sorry for publishing only 9 posts in 2014…

Die WordPress.com-Statistik-Elfen haben einen Jahresbericht 2014 für dieses Blog erstellt.

Hier ist ein Auszug:

Die Konzerthalle im Sydney Opernhaus fasst 2.700 Personen. Dieses Blog wurde in 2014 etwa 9.200 mal besucht. Wenn es ein Konzert im Sydney Opernhaus wäre, würde es etwa 3 ausverkaufte Aufführungen benötigen um so viele Besucher zu haben, wie dieses Blog.

Klicke hier um den vollständigen Bericht zu sehen.


by Florian Reisinger at January 09, 2015 08:05 PM

SI GUI got SI GUI

Hello everyone,

I am neither dead not did I abandon LibreOffice :). I simply lacking time. Anyway SI-GUI just got SI-GUI. So “LibreOffice Server Install GUI” (which I guess was against 3rd party tools branding guideline) got “Separate Install GUI” (Thanks for the name BTW ;) ). It has the same bugs (and maybe due to the name change a bit more).

I admit I try to monetize SI GUI a bit, in the sidebar of my blog you can find links to my Amazon wish list or a direct link to gift cards. On the download page as well as on the sidebar there is a “paypal donate” button. Feel free to use them (Paypal has a quite high fee). This software will ever be free and I will continue to support it in the future, no matter if you use them or not.

Thanks for not closing the page up to now, here is one last thing. Close before Christmas I collected the stats for SI-GUI again: LINK

 

This blog post and the changes @ SI-GUI have been planned to go live before Christmas, but thanks to university I did not find time.

PLEASE SPREAD THE WORLD ABOUT THIS

I managed to get the update working, but it installs as a “new” program. So please manually uninstall

  • “Seperate Install GUI” (Spelling error – Sorry)
  • “Server Install GUI” (After updating to “Separate Install GUI”)
  • And any version which has a ([NUMBER]) in it (like “Server Install GUI (2)”)

It does not harm, if you keep using this, but they won’t get updated. So “Separate Install GUI” (as seen in the following screenshot) is the “future” version of SI-GUI

Unbenannt

 

 

I am looking forward to see your comments. I will publlish the changes to git after publishing this post :)


Tagged: Anyway SI-GUI, LibreOffice, seperate install gui, server install gui, SI-GUI, Windows

by Florian Reisinger at January 09, 2015 03:57 PM

January 05, 2015

Eike Rathke

Happy New Year 2015

Today is Sweetmorn, the 1st day of Chaos in the YOLD 3181

by erAck at January 05, 2015 10:58 PM

Björn Michaelsen

Auld Lang Syne

we’ll tak’ a cup o’ kindness yet,
for auld lang syne.

– Die Roten Rosen, Auld Lang Syne

Eike already greeted the Year of Our Lady of Discord 3181 four days ago, but I’d like to take this opportunity to have a look at the state of the LibreOffice project — the bug tracker status that is.

By the end of 2014:

unconfirmed

And a special “Thank You!” goes out to everyone who created one of the over 100 Easy Hacks written for LibreOffice in 2014, and everyone who helped, mentored or reviewed patches by new contributors to the LibreOffice project. Easy Hacks are a good way someone curious about the code of LibreOffice to get started in the project with the help of more experienced developers. If you are interested in that, you find more information on Easy Hacks on the TDF wiki. Note that there are also Easy Hacks about Design related topics and on topics related to QA.

If “I should contribute to LibreOffice once in 2015″ wasnt part of your new years resolutions yet, you are invited to add this as Easy Hacks might convince you that its worthwhile and … easy.


by bmichaelsen at January 05, 2015 06:32 PM

December 31, 2014

Cor Nouws

New years wish - lessons from "AutoCorrect"

During trainings in LibreOffice Writer, that we give at customers offices or in the LibreOffice-Trainingcenter, a standard part is how to handle AutoCorrect. As long as people don't know what happens, AutoCorrect is a source of annoyance and errors. Once they've learned how it works, this changes drastically.

Recently during a training for a regional office if the Dutch Refugee Council there was attention for the example "aanrijken" that is replaced by "aanreiken" through the AutoCorrect function.
(Since we know AutoCorrect is language dependent, it's time for a little help in this English version of the original Dutch blogpost.
The correct word "aanreiken" means: hand over, give something to someone else. The wrong word "aanrijken" has the part "rijk" what means rich. So, now back to the plot of the story ;) )

During the training I gave the next, free, explanation for the example: we see enough of the 'aanrijken': people, places where there already is a lot, the opportunities to grow that 'prosperity' are, be it knowingly or not, seldom left untouched.. Now how wonderful would it be if that behavior, that habit so often, is replaced more and more by 'aanreiken': giving, sharing. Beautiful though so short after Christmas, don't you think?

Thinking of the new year, I have added the following AutoCorrect: "2014" replaced by "2014-closed" and "2015" replaced by "2015-open". You see...
In the new year we at Nou&Off will be again acting in the front line of open source, at the route to more freedom in choice for also your IT applications.
I wish you all a blessed, successful and happy "2015-open"!

by Cor & OfficeBuzz (noreply@blogger.com) at December 31, 2014 12:24 PM

Tim Janik

Is SSH Insecure?

In the true tradition of previous years, this years 31c3 in Hamburg revealed another bummer about surveillance capacities: 29c3: 2012: exit(0) 30c3: Glenn Greenwald’s keynote starts 31c3: Reconstructing Narratives – Jacob Applebaum & Laura Poitras The brief summary is that viable attacks are available to surveillance agencies for PPTP, IPSEC, SSL/TLS and SSH. New papers [...]

by timj at December 31, 2014 03:37 AM

December 28, 2014

Andreas Mantke

Coolreader for Android

I bought a new 8.9 zoll Android tablet some weeks ago. There were already a book reader application from the supplier installed. But that application was closed source and I was not happy with its features. I read about an Android reader application and tried it out: Coolreader for Android (http://coolreader.org/e-index.htm, you could also find in the Play Store). It’s able to read the file format epub and pdf and has a nice background (wood and old paper style).

I tried that application out and it worked fine. It showed me epub perfect rendered. I was a bit curious and looked around the menu of the application. There was a menu item with a headphone on it and I pushed it. Because I was not online the service didn’t work at that time.

The Android application tried to configure the Text to Speech (TTS) service but could not download a German language file. Yesterday I was online again and tried the Coolreader button again. Coolreader started to read out the text for me. But I noticed that the service only worked if the tablet was connected to the Internet.

I googled a bit around and found out that I could use that service also offline. I had to download a language file for German to my tablet. I had to go to the configuration menu and the entry language and let my tablet download the file. Coolreader reads German ebook text with a female voice without connection to the Internet now. Great free software!

by andreasma at December 28, 2014 11:26 PM

Charles Schulz

Projects to support & initiatives to help in 2015

This will be the very last post of 2014. Let me first wish you, dear readers, a happy new year 2015 in good health, love, prosperity and happiness. Let me also thank you for your continued interest in Moved by Freedom, Powered by Standards. This blog is now over 7 years old and each year I am happy (and surprised) to count a broader audience. I look forward to 2015; it will be a very interesting year in many regards, and an important one for me on a personal level.

As we are a few days away from 2015 I thought I would present a few projects that could benefit from our support, usually in terms of money donations. As I had the opportunity to explain a few months ago in a post, Free and Open Source Software need funding to move forward and to be sustained on the medium and long term. The projects I list below are my personal selection and do not, in any way, represent the views of the Document Foundation, my employer, or any obscure entity I might be affiliated with. There are many more projects and initiatives out there who need love and support.

Let’s thus start with an obvious one: the Document Foundation. The Document Foundation has been growing at a rapid pace and 2014 was a year of structuring in terms of internal processes: a new board, new employees, all these account for more activities but also for a transformation of the way the entity LibreOffice_external_logo_200pxworks. 2015 will see broader initiatives starting and being (hopefully funded). One aspect I think important to be mentioned is that while we are thankful for the trust people put in the Document Foundation, very few of them have a clear idea how we invest their donations. This is something the Foundation’s board is actively working to present in a more “cosmetic” way, as spreadsheets tend to be qite boring. The latest post on the Document Foundation’s official blog should however help understanding how several activities are conducted. Be it as it may, the Document Foundation rely exclusively on your donations to survive and strive. Donate today and help us develop LibreOffice, improve its quality and compatibility with as many file formats possible!

I’ve mentioned this email client several times this year: I rely on Claws Mail on a daily basis. As these64px-ClawsMailLogo guys are all volunteers it is important to help them. Donate to Claws Mail and help this different email client handling your email the right way.

Staying on the topic of email clients, my post on the state of encryption in Android made me discover that K9, a major open source email client, needs funding to further its development (and add PGP/MIME support). More information here.
gnupg
A major project needs your help. Its importance cannot be missed in the times we’re living in: GnuPG needs your help and is raising funds. As we do not want to have another Heartbleed because it will always be up to someone else to help the developer we should seize this opportunity. Two other initiatives to keep in mind: the apps of Whisper Systems and pretty Easy privacy needs some love and rely on your daily usage to gain traction as well.

Do you remember UnHosted? It is of course very much active and they’re experimenting with quite interesting concepts. Michiel De Jong went ahead with another guy to create -or recreate?- a hosting platform fully based on Free Software. The concept is so simple we almost forgot such services could be out there: they provide you with server space and Free Software; it is up to you to create your website, your collaborative space or anything you want. While this is a non-profit initiative, it comes with very reasonable costs. Don’t hesitate to give it a try!

archlinux-logo-dark-1200dpi.b42bd35d5916I could list several Linux distributions that accept donations; but DistroWatch might be a more exhaustive source than I ever will be. I use Arch Linux for my systems, and have been using it for several years now; there are several cool distros out there that I like and even wrote about; but Arch Linux needs monetary support and it is my choice for this selection. There are several ways you can donate. See here more information.

Moving away from the world of pure software I thought it would be good to remind my readers that 3D Printing also has had a very strong open source component to it. Most notably, the Repreprap_logoRap project was among the first to create and distribute 3D printers and self-replicating printers. It is possible to donate to the RepRap project and take the time to visit this fascinating initiative.

The defense of Digital Freedoms also need support and donations. You can donate to many initiatives; I listed four of them:
– The Free Software Foundation
– The Open Source Initiative
APRIL (France)
– The FFII

Last but not least, I would like to thank a very cool guy who has been supporting this blog all along. He is a web designer, a music composer and more generally a man of many talents. Do not hesitate to call him for your projects!

Enjoy the end of 2014, dear readers ; I look forward to greet you on this blog in 2015!

by Charles at December 28, 2014 02:13 PM