The Document Foundation Planet

 

August 21, 2014

User Prompt

Understanding Icons: Participate in fantastic fourth survey

We start the next in our little test series of different icon sets. Please, again, participate in our little game and help us to learn more about the usability of icon design.

Please participate in our little game!

It is fun, takes a maximum of 5 minutes and helps us to better understand effects of icon design.

For more information please check our initial post on the idea and background of this series of small icon tests.

by Björn Balazs at August 21, 2014 07:31 AM

August 20, 2014

Tomaž Vajngerl

LibreOffice on Android #2 - Draw and Impress documents

I am continuing working on LibreOffice on Android and now I had achieved a next milestone - support for Draw and Impress documents.

After some painful debugging experience, where an unavailable service in the Android build prevented the documents to be successfully opened, I finally managed to get a slide rendered on screen:
Impress slide rendered in the LibreOffice Android viewer
Draw and Impress documents share most of the code so if you get one working then you most likely get the other for free:
Draw page in LibreOffice Android viewer
Draw and Impress documents differ a little bit from Writer documents, as they are a collection of document parts - slides and pages (and in case of Calc - sheets). To be able to show different parts of the document I implemented a sidebar (using Android's DrawerLayout) which shows all available parts in a list. Clicking on a part in the list re-renders that part on the screen. The sidebar is hidden and can be activated using a left-to-right swipe on the left side of the screen. When activated it looks like this:
Sidebar to switch between slides/pages
In the future the static icons will be replaced with actual thumbnails of pages.

Additional to this I have worked on increasing the performance of tile rendering by auditing the life cycle of tiles and removing corner case bugs. There was a particular bug that removed corner tiles and right after that rendered the same (now missing) tiles for every redraw call (inconsistency in determining which tiles are still valid). Interestingly the impact on the performance was not so big as I thought. I am still not happy with the speed of tile rendering especially when faster scrolling a page.

All the work so far is summed up in this video.

Thanks again goes to Smoose for continuing the sponsoring of LibreOffice on Android work and my employer Collabora to make this project possible.

Tomaž

by Tomaž Vajngerl (noreply@blogger.com) at August 20, 2014 12:29 PM

Michael Meeks

2014-08-20: Wednesday

August 20, 2014 12:03 PM

Tamas Zolnai

3D models in Impress (LibreOffice 4.3)

The last LibreOffice release came with 3D model support in Impress. Now you can insert 3D models onto your slides in the open formats of glTF, COLLADA and KMZ. To do that go to Insert->Object->3D Model... in the menu hierarchy and after you selected a file you can see the model on your slide:

Impress with a duck model on the slide
Duck 3D model

Animated models

The inserted 3D models also can define some animations. In this case after insertion you can control the animation using the media toolbar's play/pause/stop buttons. During implementation we lean on the existing movie player feature, that's why 3D animations behave the same as movies. This similarity also exists inside the slideshow which means animations are also started as soon as the actual slide appears and the same custom animations are available to trigger play/pause/stop events.

Impress with a monster on the slide
Animated monster model

 

Hidden features of the model viewer window

This 3D model feature was implemented a bit late in the releasing process that can explain why some features of the viewer window does not appear noticeable on the UI. Hopefully the situation will be better on the next release, but until then let's see what are these features are.
First you should know that the viewer window is active only when the 3D model is "played" (push play button on the media toolbar or start the slideshow), even if the model actually doesn't have any animation to play. While the 3D model object is in stopped state, only a screen shot of the scene is displayed, which makes resizing and positioning easier in edit mode.

Changing camera position

So when the viewer window is active we can change the camera position to have a look at the model from different points of view. By default we are in walkthrough mode where we can handle the camera from a first-person perspective. We can move forward ('W'), backward ('S'), left ('A') and right ('D') using the keyboard and we can turn by click and drag.
You can see some pictures bellow about the walkthrough mode. However you can enter into the maze, but inside the maze navigation becomes hard. The perfect would be if we could walk in the maze like packman does but camera handling still needs some improvements.

Packman maze default view
Closer to the maze
Inside the maze
 
Next to the walkthrough mode there is an other one called orbit mode. Use 'M' key to switch between the two modes. In orbit mode the camera is moved on an orbit around the model, always looking at the model. Using the keyboard we can move the camera on this orbit northward ('W'), southward ('S'), westward ('A') and eastward ('D'), and we also can change the distance between the orbit and the center of the model ('E' and 'Q' keys). Click and drag event also moves the camera on this orbit, but from the user points of view this looks rather like the model is rotated around it's center.
On the next pictures you can see the different views after the model was rotated horizontally by mouse (in other words, camera was moved around the model horizontally):

Duck model, full face

Duck model, profile
Duck model, from behind

 

FPS rendering

We added an FPS (frame per second) rendering possibility to the viewer window, so the rendering performance can be measured easily. By default this feature is disabled. To enable it you can press 'F' key and you will see FPS number at the right-bottom corner of the viewer window.

Monster model with FPS

 

About the file formats

The main format is COLLADA, the other ones are closely related to it.
First KMZ is a zipped file format which can contain 3D models in COLLADA format. So not all KMZ files can be loaded by LibreOffice, it's assumed that the given KMZ format contains only one 3D model. The main advantage of supporting KMZ format is the huge source of free 3D models on the 3D warehouse site. On this site almost all models are available in KMZ format.
The glTF format is a really new format, actually it has only a draft specification. The main purpose of the format is the better performance. It is designed to make loading and rendering of the models faster, with using such structures which are closer to the OpenGL language. It's not an independent file format but rather a runtime form of COLLADA. So in general glTF models are generated from COLLADA files and creating/editing of the 3D models is done in COLLADA format.
Since glTF is desgined to be faster, LibreOffice stores all 3D models in this form both in runtime and in the ODP file. When a KMZ or a COLLADA file is inserted into Impress, the file is converted to glTF and rendering comes just after that.

Some limitations you should aware of

First of all it's good to know that Impress uses OpenGL 3.0 for rendering of these 3D models. If your graphic card doesn't support it then only a question mark will be displayed on the screen, but the model is there, so if you save your presentation and move it to a capable computer then it will appear.
Other limitations come from that glTF is a draft format and collada2gltf tool (used for COLLADA->glTF conversion) is also unstable. So don't surprise if some of the KMZ files downloaded from Warehouse are not rendered well.

Who stands behind the feature

3D model support came alive as a result of the cooperation of Collabora, AMD and MCW.
First of all AMD founded our work and was coming up with new ideas about the feature.
Secondly a developer group from MCW was working on the parser/rendering code of the glTF format. To make our cooperation with MCW more misunderstanding tolerant we set up a wall between LibreOffice code and glTF parser code with defining an API. Later, from that separation born an open source glTF rendering library called libglTF. By now libglTF is still developed closely to LibreOffice.
Last but not least we at Collabora have done the integration into LibreOffice. First Markus Mohrard was working on LibreOffice OpenGL code in general, made it better/more fresh and generalized it allowing to use the same code for all OpenGL based  features: OpenGL transitions, OpenGL charts and glTF models. Jan Holesovsky (Kendy) was the manager of the project, making plans, participating in brain storming and having great ideas. Matus Kukan helped us with integrating COLLADA related libraries into LibreOffice (for COLLADA->glTF conversion).
Finally I implemented embedding of glTF models into Impress by setting together the pieces (plans from Kendy, generic OpenGL pieces from Markus, COLLADA conversion from Matus and glTF rendering from MCW).

by Zolnai Tamás (noreply@blogger.com) at August 20, 2014 07:55 AM

August 19, 2014

Michael Meeks

2014-08-19: Tuesday

  • Into Cambridge, had a fun day of quarterly management meetings, really good to catch up with Rob, Philippe, Tim, Tracie, Lauren; home late in the evening.

August 19, 2014 09:00 PM

User Prompt

Intermediate results of the icon tests: Oxygen

With a series of icon tests we currently study effects on the usability of icon design. This article however does not focus on these general design effects but presents findings specific to the Oxygen icon set.

Introduction

The introduction of the new Breeze icon set in KDE let us again wonder, what aspects of an icon set actually takes what impact on the usability of it. We investigated Oxygen and Tango icons for the LibreOffice project before, but our focus then was on checking all icons of the standard tool bar. This time we focus on different icon sets and will use 13 common actions to compare them.

With this series we are going to test at least 10 different free icon sets: Breeze, Oxygen, Tango, Faenza, Nuvola, Nitrux, Elementary, Crystal Project, Humanity and Treepata. These icon sets differ on various aspects: use of color and details, flat or not and sometimes even on the metaphor used.

So, we generally want to analyze effects of icon design on the overall performance of an icon set. Statistics on this issue can obviously only be done after all icon sets have been tested. But with every test, we win some specific insights in strengths and weaknesses of each icon set tested.

In this post we share some findings about the Oxygen icon set.

The study was finished by 728 participants (drop-out rate 16%) with an average handling time of 2:57 min.

Results of Oxygen icons

Table 1 lists the aggregated quality indicators. They show how well all icons that we used for the test were suited to symbolize the different terms. It has a range from 1 (no fit) to 10 (perfect fit), whereas you would expect values of at least 9 for well represented terms.

Table 1: Quality of the icon set for different terms based on assignment ratio (percentage of missing assignments) and conspicuity (or speed of picking icons).
Term
Quality Indicator
Paste7.0
Open8.5
Search8.5
Copy9.0
Link9.0
New9.0
Remove9.0
Save9.0
Redo9,0
Add9.5
Cut9.5
Print9.5
Undo9.5

Table 2 shows a cross-table with the percentage of false associations. These are terms where the intended icon was not chosen by the users, but some other icon was.

Table 2: Cross-table of icons and terms with percentage of false associations. The direct match is inverted (1-value, e.g. 0.92 for Add) to obtain comparable data.

Results of the icon test for the Oxygen set

Discussion

The Oxygen icon set performs very well in general. Most icons are quickly and reliable identified with the corresponding term. As found in previous studies there is a minor setback for Add/New, Undo/Redo, and especially Copy/Paste which are mutually mistaken. Also the Search icon shows quite a high number of missing values. Perhaps the field glasses are not such a good metaphor.

If you know how to design icons and would like to help us to identify metaphors that work better, please contact us. Also, all raw results are publicly available on our open usability platform UserWeave.

These results only reflect the internal quality of the Oxygen icon set. The final interpretation will be done after all sets have been tested. So stay tuned and please participate in our follow-up tests. And, of course, feel free to discuss these findings with us.

by Björn Balazs at August 19, 2014 03:34 PM

August 18, 2014

Michael Meeks

2014-08-18: Monday

  • Visited the Doctor, innoculations for Brazil; more mail chew. Pleased to see Caolan's blog on dialog conversion - 99% done, 4 to go. Looking forward to loosing some of the complexity of rsc/ and .res files if they're not going to contain dialog descriptions.
  • Chewed mail, product & consulting team calls. Finally got to correcting the LibO conference program details.

August 18, 2014 09:00 PM

User Prompt

Understanding Icons: Participate in our 3rd survey

Our little journey through different icon sets continues. Please participate in our little game and help us to learn more about the usability of icon design.

Please participate in our little game here! (Study closed)

It is fun, takes a maximum of 5 minutes and helps us to better understand effects of icon design.

For more information please check our initial post on the idea and background of this series of small icon tests.

by Björn Balazs at August 18, 2014 08:46 AM

August 17, 2014

Michael Meeks

2014-08-17: Sunday

  • Played Violin at NCC, back for a roast lunch; slugged variously with babes. Sandy over in the afternoon. Read stories to little girls; bed - fitful sleep.

August 17, 2014 09:00 PM

Charles Schulz

One interface, many truths

Today I’d like to discuss a topic that is constantly recurring about LibreOffice: the overhaul of its interface. I am aware the matter has some real trolling potential, but at least if one wants to troll it is important to get some things straight first.

Is LibreOffice’s interface outdated? It depends who you ask the question. The problem is that some part of the answer is really a matter of taste; another part of it is really about the kind of interface we could have; and yet another side of the matter is the perception of what its interface should be like. Let’s address the three issues separately.

A matter of taste

Do you like the Tango icons shipped by default with LibreOffice? Do you prefer the Sifr iconset? Really, it’s up to you. Did you know you could customize pretty much each and every toolbar of the interface? You can not only add new toolbars, you can of course remove them, but you can also change their actual position and even customize them. You can use Firefox themes as the background of LibreOffice. What’s not to like then? The interface is outdated? Now we’re getting somewhere…

What kind of interface should we have?

That is actually a broad issue. The whole debate started at the times of the old OpenOffice.org project. Microsoft Office had just been shipped with its ribbon interface, and there were really two kinds of feedback. One was that we should switch right away to a ribbon-like interface. The other one was just as loud, and was urging us to stick to our menu based interface. Statistical analysis showed a clear correlation between a massive surge in downloads of OpenOffice.org and the ribbon interface of Microsoft Office. This debate has not changed since that day. We receive dozens of mail, tweets, comments telling us to get a ribbon interface, a dozen more urging us to the contrary. It is obvious that many people hate change, but it is also important to realize that with respect to the ribbon interface, there is no new and old interface. Ribbon intefaces are one of the three possible types of interfaces for a computer: text (command line, for instance), menu (LibreOffice, Photoshop, Firefox, etc.) and ribbon (Microsoft Office). The text interface obviously is the oldest, but the ribbon and menu interfaces are actually quite old. Tiled windows managers such as the old CDE or Fluxbox belong to the category of meny interfaces for instance. Ribbons were not overly popular before Microsoft Office and force a different way of thinking based on a stream of icons and options, rather than a highly logicial flow of menu and hierarchies. No one is “more or right or more wrong” than the other.

To me the real question is what we should have as actual improvements to our present inteface. It’s not so much about how to make it look more up to date -major efforts have been accomplished since the 4.1- but how to make certain options more readily accessible to the user. A good example of people who went to think hard about the interface is the Calligra team. I’m not suggesting this is where LibreOffice should go, but it is clear they thought about a new way to think about the various menus and toolbars. Last but not least, it is also important to realize that LibreOffice on tablets or phones will have a new interface, or at least will go through a major simplification of the interface. Things are not idle in this field, but there are constraints. More on that below.

What should the user interface of LibreOffice look like?

Among the recent feedback on LibreOffice, someone on Google + wrote that we should copy the Microsoft Office’s Ribbon interface “just like KingSoft Office”, because that way people would migrate seamlessly to LibreOffice. This kind of comment is not isolated, and I think it’s important to set the record straight on this:

  • there are several copyright issues if you just copy Microsoft Office. Perhaps even patents. KingSoft is based in China. It is a different matter as they do not seem to be affected by these legal constraints.
  • we are not interested in being a clone. When you are a clone, people always prefer the original and you have invested tremendous resources in being just that, a clone. I don’t think many LibreOffice developers are interested in a clone either. We are interested in developing the best office suite in Free Software, interested in growing our community, interested in helping others and promoting digital freedomes and bridge the digital divide. It is fine if you want to use a clone of Microsoft Office, but we’re just not that kind of project.

That being said, would a ribbon interface for LibreOffice speed its deployment? It is very hard to say. Because people who hate ribbon interfaces would go away, while the rest of them would have to learn a new ribbon interface, a new way to do even the simplest things, while the rest of them would use alternatives or Google Drive, with its much simpler interface. On top of this, it is very important to always remember that we cannot change the LibreOffice user interface in one shot. The code is too complex, it has undetected dependencies pretty much everywhere, and we are thus constrained into incremental changes. Of course in a few years, the interface will look very different from what it does today. I could actually write the same about how LibreOffice looks like today: open it on Windows 7 or 8 and compare it with OpenOffice.org, any version of 2007-2008. You WILL notice major differences.

The conclusion of this (too long post) will thus be this one: when it comes to user interfaces, there are many truths and even more prophets; the reality however is more complex, and often times frustrating. If you want to help with the LibreOffice interface, join our Design team, and you will be able to work on improvements while incrementally changing it to something different and hopefully better. More importantly, you will have learned from a great community and this community will have learned from you!

by Charles at August 17, 2014 04:06 PM

August 16, 2014

Michael Meeks

2014-08-16: Saturday

  • Up rather late; unpacked a bit; lots of slugging, huge amount of back-issues of The Economist, IET etc. to get through. Played BosWars with the babes. Visited the neighbours and their extension. Bed early.

August 16, 2014 09:00 PM

August 15, 2014

Caolán McNamara

dialog conversion status, 4 to go

http://magazine.uc.edu/issues/0509/rabbi.html

Converting LibreOffice dialogs to .ui format, 4 left

I should go on vacation more often. On my return I find that Palenik Mihály and Szymon Kłos, two of our GSOC2014 students, have now converted all but 4 of LibreOffice’s classic fixed widget size and position .src format elements to the GtkBuilder .ui format.

Here's the list of the last four. One (monster) whose conversion is in progress, one that should ideally be removed in favour of a duplicate dialog and two that have no known route to display them. Hacking the code temporarily to force those two to appear is probably no biggy.


Current conversion stats are:
820 .ui files currently exist
There are 3 unconverted dialogs
There are 1 unconverted tabpages
An estimated additional 4 .ui are required
We are 99% of the way through.

What's next, well *cough*, the above are all the dialogs and tabpages in the classic .src format. There are actually a host of ErrorBox, InfoBox and QueryBox that exist in the .src format as well.

These take just two pieces of information, a string to display and some bits that set what buttons to show, e.g. cancel, close, ok + cancel, etc. We want to remove them in favour of the Gtk-alike MessageDialog, but we don't want to actually convert them to .ui format, because they are so simple it makes more sense to just reduce them to strings like this sample commit demonstrates. This might even be possible to at least somewhat automate.

I've now updated count-todo-dialogs to display the count of those *Box elements that exist in src file format, but I'll elide the count of them until the last 4 true dialogs+tabpages are gone.

by Caolán McNamara (noreply@blogger.com) at August 15, 2014 03:54 PM

August 14, 2014

Matteo Campanelli

Announcing chained text in Draw - a prototype implementation

During the second part of my participation to Google Summer of Code 2014 I tried to enable boxes to have their content chained to one another in case of overflow. In other words, text that cannot fit in one box can "overflow" in the next link in a logical chain.

The images below, for example, show 3 text boxes where each one is linked to the one on its right. The two images show respectively the program before and after chaining.

Overflowing text before chaining Overflowing text after chaining

The current implementation is not perfect though:

  • It is able to break and move whole overflowing paragraphs (but portions should be enabled for the future);
  • It does not work if the first paragraph is the one to overflow;
  • It has some issues when the result of chaining has to recursively overflow in a next box;
  • Editing the first box should show the whole text as if it had not been chained. This is not the case yet.

by Matteo Campanelli at August 14, 2014 10:00 PM

User Prompt

Understanding Icons: Participate in survey no. 2

Our little journey through different icon sets continues. Please participate in our little game and help us to learn more about the usability of icon design.

Please participate in our little game here! (Study closed)

It is fun, takes a maximum of 5 minutes and helps us to better understand effects of icon design.

For more information please check our initial post on the idea and background of this series of small icon tests.

by Björn Balazs at August 14, 2014 10:44 AM

Official TDF Blog

LibreOffice Conference 2014: the program of a landmark event

Berlin, August 14, 2014 – The program of the LibreOffice Conference 2014, which will be held in Bern, Switzerland, from September 3 to September 5, is now available at https://conference.libreoffice.org/2014/program. Sessions will focus on development, community, certification, migrations, training, marketing and Open Document Format (ODF).

In addition to the sessions in English, there will be a track in German focusing on open source adoptions in governments and enterprises in Switzerland, Germany and Austria: https://conference.libreoffice.org/2014/professional-user-track.

This track will be opened by Balthasar Glättli, a Member of the Parliamentary Group on Digital Sustainability, who will be followed by lectures on professional adoptions of free office suites at the Swiss Federal Court (350 jobs), in the schools of Geneva, in the city of Munich (14,000 jobs), at the LVM Insurance in Münster (13,000 jobs) and in the Austrian Ministry of Justice.

Social events will happen in the evenings of September 3, with a LibreOffice Hack Night at UniS, and September 4, with a community event and key signing party at ISC Club Bern: https://conference.libreoffice.org/2014/events.

With a forecasted attendance of 300 community members from around the world and over 70 sessions, the LibreOffice Conference will be the biggest Open Source Event in Switzerland in 2014.

The conference will be hosted by the University of Bern, and organized by CH-Open – the Swiss Open Systems User Group – and the Digital Sustainability Research Centre of the University of Bern, in coordination with The Document Foundation. The track in German will be organized by the Working Group on OSS of the Swiss IT Conference SIK and the Working Group on Office Interoperability of the Open Source Business Alliance.

LibreOffice Conference 2014 is generously supported by the Hasler Foundation and the Civic Community of Bern, and sponsored by:

Platinum: CloudOn, Collabora and Google;

Gold: adfinis SyGroup, Canonical, CIB labs, ITOMIG and Studio Storti;

Silver: Apertura, FOX, Igalia, OpenSUSE, Puzzle ITC, ritualis and Univention.

Local Contacts:

Matthias Stürmer, +41 76 368 81 65, matthias.stuermer@iwi.unibe.ch

Christa Ammann, +41 78 646 83 09, c.ammann@brief.li

by italovignoli at August 14, 2014 07:26 AM

August 11, 2014

Miklos Vajna

So many bugs

From time to time developers feel that they have little time, but they would want to take care of many bugs. Last week I was frustrated enough to actually design a T-shirt for just that. ;-)

Above is how it looks like. In case you don’t get the joke, see here for a hint. Oh, and if you would like to build your own binary… err T-shirt, you can do it: here is the ODG file that can serve as a source. Happy bugfixing! :-)

August 11, 2014 04:04 PM

August 10, 2014

>Mihai Varga

SharePoint connection

Good news! - part 2. As GSoC’s final deadline draws near the SharePoint connection is complete. In addition to the OneDrive binding that I presented in the previous post, this new connection provides features such as checkIn, checkOut and of course, file versioning.

by Mihai Varga at August 10, 2014 11:00 PM

August 08, 2014

User Prompt

Understanding Icons: Participate in survey (aka The Rising)

We are starting an exploratory series of studies to better understand effects of icon design. Please participate in this first survey!

TL;WR:

Please play this little game! (Closed)

It is fun, takes a maximum of 5 minutes and helps us to better understand effects of icon design.

For those with a little more time:

The introduction of the new Breeze icon set in KDE let us again wonder, what aspects of an icon set actually takes what impact on the usability of it. We investigated Oxygen and Tango Icons for the LibreOffice project before, but our focus then was on checking all icons of the standard tool bar. This time we focus on different icon sets and will use 13 common actions to compare them.

With this series we are going to test at least 10 different free icon sets: Breeze, Oxygen, Tango, Faenza, Nuvola,  Nitrux, Elementary,  Crystal Project, Humanity and Treepata. These icon sets differ on various aspects: use of color and details, flat or not and sometimes even on the metaphor used.

This series is not meant to bring a final statistically proven answer to the problem – we rather want to be able to explore the question in more depth and based on data. Of course we will share and discuss all results publicly.

Here is the study, please participate! (Closed)

by Björn Balazs at August 08, 2014 12:40 PM

August 07, 2014

Stephan Bergmann

dynamic_cast for the price of static_cast

At least for polymorphic types, the cool -fsanitize=undefined feature at runtime flags any broken downcasts, effectively turning all casts into dynamic_casts (which are often avoided in the code due to their cost in production builds):

#include <iostream>
struct S1 {};
struct S2: S1 {};
struct T1 { virtual ~T1() {} };
struct T2: T1 {};
int main() {
    S1 s;
    std::cout << static_cast<S2*>(&s) << '\n';
    T1 t;
    std::cout << static_cast<T2*>(&t) << '\n';
}

when compiled with -fsanitize=undefined will complain

undef.cc:10:18: runtime error: downcast of address 0x7fffa604fc20 which does not point to an object of type 'T2'

(but still fail to find the broken downcast from S1 to S2).

Letting this loose on the LibreOffice code base results in a plethora of reports about somewhat harmless violations:

For one, many places in the code over-eagerly downcast a pointer to some T3 in a hierarchy where the resulting pointer is only used in a context that merely requires a T2. A trivial example is 14e81a12b0fa6a7bcd9fb29870db8b8bb67b25dd “Not every SwGluePortion is an SwFlyPortion.”

A special subset of this case are trivial derivations in the SfxPoolItem hierarchy that only exist to provide “convenience constructors“ that implicitly specify the right “Which-ID,“ but fail to override Clone (so that client code that downcasts an item to such a convenience class fails for a cloned item). See 68969cc61adecac481ae9656978ef952f435b310 “Consistency around SdrMetricItem” et al.

For another, some base class constructors or destructors (indirectly) call sub-class–specific code, and that code then erroneously finds this to—theoretically, at least—point at an object of merely the base class rather than the whole sub-class type. An example is b75e052d31ec8854cad3bda7d372dcfcd50c9609 “Call SwTxtNode-specific part of DelFrms while SwTxtNode is still SwTxtNode.”

And among all that “noise,” -fsanitize=undefined also finds genuine bugs like a30ce480fa6044b1545145559cd23df140307bd0 “These SwTxtFrm calls shall apparently be done via pOwn, not m_rThis.”


by stbergmann at August 07, 2014 01:07 PM

August 06, 2014

Official TDF Blog

ITOMIG joins The Document Foundation Advisory Board to Complement the Launch of the LibreOffice Division

Berlin, August 6, 2014 – The Document Foundation (TDF) announces that ITOMIG is now a member of its Advisory Board. ITOMIG, based in Böblingen, Germany, is a spin off of the University of Tübingen focusing on open source solutions for the enterprise.

Since 2004, ITOMIG is at the crossroad of German and French cultures, offering value added services for the introduction of OSS software such as LibreOffice in enterprises, the selection and use of open source tools for the optimization of IT processes, and the management of migration and sourcing projects”, says David Gümbel, founder and CEO of ITOMIG. During the last couple of years, we have seen a growing demand for LibreOffice related value added services, and we have invested to grow our specific competences in this area”.

ITOMIG will bring diversity to TDF Advisory Board, adding the perspective of German value added software consultants, says Thorsten Behrens, Chairman of The Document Foundation. “The announcement strengthens the entire ecosystem, because it shows that TDF vision of an independent project can foster the growth of third parties investing in LibreOffice”.

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

About ITOMIG

Founded in 2004 as a spin-off of Tübiingen University, Böblingen-based ITOMIG GmbH supports its clients internationally in using Free and Open Source Software in a business context. Its key areas of expertise are free office solutions (mainly based on LibreOffice), including migration support and consulting as well as software development, and IT service management consulting and implementation services based on iTop. With clients ranging from Paris to Vienna, ITOMIG has successfully supported well-known organisations such as the Max-Planck-Gesellschaft, Agrarmarkt Austria, and the City of Munich.

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 June 2014, the foundation has over 200 members and over 3,000 volunteer contributors worldwide.

Media Contacts: https://www.documentfoundation.org/contact/.

by italovignoli at August 06, 2014 06:12 AM

August 05, 2014

Tim Janik

C++ Month Name Hashing

In a time critical section of a recent project, I came across having to optimize the conversion of three digit US month abbreviations (as commonly found in log files) to integers in C++. That is, for “Jan” yield 1, for “Feb” yield 2, etc, for “Dec” yield 12. In C++ the simplest implementation probably looks [...]

by timj at August 05, 2014 03:57 PM

Official TDF Blog

LibreOffice 4.2.6 is ready

Berlin, August 5, 2014 – The Document Foundation announces LibreOffice 4.2.6 “Still”, the seventh and last minor release of the most solid version of the software, ready for enterprise deployments and conservative users.

LibreOffice 4.2.6 arrives just one week after the successful launch of LibreOffice 4.3 “Fresh”, the most feature rich version of the office suite.

LibreOffice 4.2.6 is available from http://www.libreoffice.org/download/

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at http://donate.libreoffice.org. Money collected will be used to grow the project both at global and local level.

by Florian Effenberger at August 05, 2014 08:58 AM

August 03, 2014

Markus Mohrhard

Guadec 2014

I had the privilege to attend GUADEC this year and speak about Libreoffice. I was really impressed by the conference and enjoyed the beautiful city of Strasbourg and the nice Gnome community.

My talk was about Resuing Libreoffice in your application and centered mainly around LibreOfficeKit, “The Document Liberation Project” and new features in Libreoffice 4.3.

 

The next conference that I will attend will be the LibreOffice conference in Bern, Switzerland where I will give presentations about OpenGL in Libreoffice, recent development in charts and automated testing.

 


by Markus Mohrhard at August 03, 2014 09:10 PM

August 01, 2014

Jacobo Aragunde Pérez

Tales of LibreOffice interoperability: the missing files

I’m welcoming the release of LibreOffice 4.3.0 in the name of Igalia with the last post in this series. This time we will talk about the preservation of embeddings in OOXML text documents, and devote some lines to the support of Standard Document Tags.

Embedded content in documents

Our goal this time was the preservation of embedded content in OOXML text documents, as a first step towards full support like we did with other features. The insertion of new embeddings in .docx documents or the edition of existing ones will have to come later in the future.

An embedded document usually consists of two files; one of them is a preview picture to be shown in the parent document, and the other one is the actual embedded document. For the case of a spreadsheet embedded in a text document, the most common case, you will find these two files in the document:

/word/media/image1.emf  
/word/embeddings/Microsoft_Excel_Worksheet1.xlsx 

With the corresponding entries in the relations file:

<Relationship Id="rId2"
  Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/package"
  Target="embeddings/oleObject1.xlsx" />
  <Relationship Id="rId3"
  Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image"
  Target="media/image1.emf" />

The relevant bits in the document.xml file are below. Notice a w:object consists of one shape, which is filled with data from an image file, and the OLE object itself, linked to the embedded spreadsheet. Also notice the attribute ProgID, which defines the program, document type and version:

<w:object>
  <v:shape id="ole_rId2"
  style="width:362.25pt;height:146.25pt" o:ole="">
    <v:imagedata r:id="rId3" o:title="" />
  </v:shape>
  <o:OLEObject Type="Embed" ProgID="Excel.Sheet.12"
  ShapeID="ole_rId2" DrawAspect="Content"
  ObjectID="_570182397" r:id="rId2" />
</w:object>

There is one more element that allows the embedded file to be properly detected by Word, it’s a content type definition in the content types file:

<Override PartName="/word/embeddings/oleObject1.xlsx"
ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

As you can see there are three elements that determine the kind of embedding we are dealing with, and Word requires the right combination of the three of them:

  • The properties in the tag in document.xml
  • The ContentType for the file defined in [Content_Types].xml
  • The Type of the Relationship defined in document.xml.rels

The most convenient way to achieve our goal was using the grab bag technique to store the ProgID attribute of the object, and infer the correct content type and relation type. Some examples:

  • An object with ProgID Excel.Sheet.12 is a OOXML spreadsheet. Its media type must be application/vnd.openxmlformats-officedocument.spreadsheetml.sheet and the relation type is http://schemas.openxmlformats.org/officeDocument/2006/relationships/package.
  • If the ProgID is Excel.Sheet.8, this is an old Office spreadsheet. Now the media type must be application/vnd.ms-excel and the relation type http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject.

If you detect a particular type of embedding in your documents that isn’t being preserved, drop us a line in the Bugzilla. A patch to add new relations of this kind should be quick and easy.

Bonus track: Structured Document Tags

Structured Document Tags (SDTs) is a family of document objects that contains form-like controls, citations, contents tables or bibliography tables among many other. This variety of uses means that they can live inside a paragraph or they can be a high-level element that contains several paragraphs and even shapes, which of course is tricky to implement.

For 4.3.0 we have worked on some of these tags, and we can say we properly implemented the import and export of combo, date and check boxes. We also wrote some code to preserve generic SDTs and now most of the tags are preserved but there are formatting issues. The proper way to support every kind of SDT is translating them to the equivalent objects in LibreOffice on import and translate them back to SDTs on export, but that will require time and work. Any volunteers? ;)

Wrap-up

Despite the 6-month development cycles, I’m feeling like the development of 4.3 line started a long time ago and I may have forgotten to write about some little feature or fix… Anyway, it’s time to close this batch of blog posts about interoperability features, all of them developed by Igalia and sponsored by CloudOn.

Enjoy our shiny new LibreOffice, and happy hacking!

by Jacobo Aragunde Pérez at August 01, 2014 11:10 AM

Charles Schulz

A personal take on LibreOffice 4.3

LibreOffice 4.3 has been released this week and it has already been noticed quite a lot, judging by the number of articles in the press worldwide. The announcement may be found here, and a thorough, technical description has been written by Michael Meeks on his blog (detailed release notes are here).

I would like to discuss a bit what I think stands out in this new release; as such this is a personal collection of items and topics and not an authoritative list you could find in the release notes.

1. Native look and feel on Mac OS X

Had this been a multi-platform announcement, it would probably have been the most touted feature of the release. The reality is that this only affects OS X users and the technical details are a bit more specific: toolbars background are now rendered natively on Mac OS X, essentially leading to a native-look and feel for LibreOffice on Apple computers. This is significant to me and to OS X users and gives a much welcome UI refresh to LibreOffice. I know we receive many demands – or rather complaints to “change our user interface” but most of these requests come from people who probably have no clue what such a change entails in terms of efforts and resources. LibreOffice’s user interface, as such is not outdated because it is based on menus and not ribbons. These two interfaces metaphores are two concepts that date back to roughly the same time (the eighties) and none of them is supposedly better than the other.  LibreOffice however needs a background refresh at least and to look native or more native on each platform. Such changes happen in an incremental way, and the 4.3 illustrates this. If you have a Mac, just download and install Libreoffice 4.3 and see by yourself what I mean. To me it is something major because it is by definition highly visible to anyone.

Osx-native-toolbar.jpg

2. Printable comments

I don’t think I would have hailed it on my top list just a few years ago but working more and more in a “collaborative fashion within a reasonably close physical distance” (read: in an office) I keep on noticing people printing documents all day long, then taking a pen, writing stuff, highlighting lines with markers… Of course you can add comments to documents with LibreOffice and go print-free. But people do print documents. All the time, all day long. I am planning a post dedicated to the never-ending legacy print as some aspects of this issue fascinates me. Anyway, it is now possible to print the comments you added in the margins with Libreoffice, independently of the file format (ODF or OOXML). This is a much awaited feature (other improvements for comments are also shipped with the 4.3), and it will let people continue to print endless drafts of their documents for many, many years to come. Apparently, we answered a deep and essential human need here – it did require a lot of work from the developers as well.

3. Filters, compatibility, interoperability

LibreOffice 4.3 ships with many improvements in document filters: better PDF support, improved OOXML compatibility, new import filters for – get this- Microsoft Works spreadsheets and databases, alongside a whole series of ClarisWorks and AppleWorks filters, igniting in your desillusioned soul the hope that what’s been on this old computer and floppy disks of yours in your inlaws’ basement shall be retrieved at last. For this you must be forever thankful to the Document Liberation project. But, as good as it gets, the juicy bits here won’t come from the nineties, but rather from 2008. Regular readers of this blog will remember these glorious days, just before the big financial crisis, where Microsoft had created the so-called OpenXML standard that was supposed to be totally not competing against the OpenDocument Format, managed to have pretty much the entire standards community swallow it in the most creative ways possible, then fell short of actually implementing it in its own products. A good summary of the whole -technical- story is available here. The irony of life has the uncanny ability to devise ways to enchant us. Well, sort of. The format called “OOXML – Strict”, by comparison to “OOXML-Transitional” was the readable open part of the ISO 29500 standard, known as OOXML. For years, it was obvious that Microsoft Office implemented OOXML-Transitional (the heap of the more or less documented parts of the format alongside undocumented blurbs) and nothing else, creating a situation where one standard, OOXML was existing, and another format, OOXML, was fully implemented and spread all around, yet was an undocumented, proprietary specification. That’s the .docx, pptx, and .xlsx you see everywhere, and the one LibreOffice was busy reverse-engineering for all these years.

This unfortunate situation, we were told, was about to change soon, with the full adoption of OOXML-Strict by Microsoft Office. Helas, if you open a purely OOXML-Strict compliant file with Microsoft Office 2013, the file will be declared corrupt. If you open the same one with LibreOffice 4.3, the file will open and you will be able to edit its contents just like with any other format supported by LibreOffice. In other words, LibreOffice can claim to have a better support of OOXML than Microsoft Office, despite years of unfulfilled promises, pledges, and never met expectations by Redmond. I guess that, just like the old saying goes, promises only commit the ones who actually believe them.

4. Spring Water

Not in the announcement, but we did change somewhat the way we name one of the LibreOffice branches. We started with a naming pattern for our releases that had numbers only and confused the hell out of everyone. We then named the most recent branch “Fresh” and the older branch “Stable”. That turned out to be a very good idea, answered a lot of questions, but somewhat reinforced the impression that the Fresh branch is a development branch or a beta version of LibreOffice, which is by definition not the case (if you want to check our beta, release candidates and development versions, follow this link) .

We thus had to come up with another name for the “Stable” branch, knowing we could not satisfy everyone. “Mature” seemed to be the best term as it was conveying exactly what we meant. Mature, however, at least in English, can have some other unfortunate meanings that are as or even more popular than “LibreOffice Mature” on the Internet. After some try-outs, we came up with “Still”, as in “Still or Sparkling water”. It echoes well with Fresh, and manages to convey the notion of something that is less active, even quiet and “in a more stable state” than something which is fresh and new, yet already a finished product. Of course this concept works well in English and it will have to be twisted, if not radically altered in other languages, starting with French.

Last but not least, this release has been a success and I would like to thank the developers, the growing Quality Assurance team, the localizers, the infrastructure team and of course Italo Vignoli for this tremendous job. Being involved in the actual release (publishing pages, handling social media among other things), I know the kind of excitement releasing a software like LibreOffice induces, but also the skills and the talent it requires: the LibreOffice project is lucky to rely on these teams of various contributors who make it happen, day by day. That is also one of the things that truly stands out in LibreOffice.

by Charles at August 01, 2014 06:00 AM

July 31, 2014

Matteo Campanelli

Announcing Text Background Color in Draw.

For the fist part of my participation to Google Summer of Code 2014 I worked on a simple feature of text in Draw: enabling color of text background. Now arbitrary portions of text in boxes and captions can have non-transparent colored backgrounds:

Text Background Color in Draw

The resulting changes have been incorporated in master. Despite this feature still has to be integrated with the UI of Draw, the program is currently able to read background colors from the document source by the fo:background-color attribute.

Right now it supports only solid backgrounds, partially transparent colors might be a future enhancement.

by Matteo Campanelli at July 31, 2014 10:00 PM

July 30, 2014

Official TDF Blog

LibreOffice 4.3: today, you can’t own a better office suite

- Better OOXML interoperability, and support of legacy Mac file formats

- Better comment management, and highly intuitive spreadsheet handling

- 3D models in Impress, and support for “monster” paragraphs

Berlin, July 30, 2014 – The Document Foundation announces LibreOffice 4.3, the 8th major release of the free office suite since the birth of the project in September 2010. The application includes the combined effort of thousands of volunteers and hundreds of developers, and has reached a point of maturity that makes it suitable for every kind of deployment, if backed by value added services by the growing LibreOffice ecosystem.

LibreOffice 4.3 offers a large number of improvements and new features, including:

- Document interoperability: support of OOXML Strict, OOXML graphics improvements (DrawingML, theme fonts, preservation of drawing styles and attributes), embedding OOXML files inside another OOXML file, support of 30 new Excel formulas, support of MS Works spreadsheets and databases, and Mac legacy file formats such as ClarisWorks, ClarisResolve, MacWorks, SuperPaint, and more.

- Comment management: comments can now be printed in the document margin, formatted in a better way, and imported and exported – including nested comments – in ODF, DOC, OOXML and RTF documents, for improved productivity and better collaboration.

- Intuitive spreadsheet handling: Calc now allows the performing of several tasks more intuitively, thanks to the smarter highlighting of formulas in cells, the display of the number of selected rows and columns in the status bar, the ability to start editing a cell with the content of the cell above it, and being able to fully select text conversion models by the user.

- 3D models in Impress: support of animated 3D models in the new open glTF format, plus initial support for Collada and kmz files that are found in Google Warehouse, in order to add a fresh new look and animations to keynotes (support of this feature is currently on Windows and Linux versions only).

LibreOffice 4.3 also support “monster” paragraphs exceeding 65,000 characters (an example of an 11 years old bug solved thanks to the modernization of the OOo source code, which is an exclusive function of LibreOffice). In addition, the accessibility technology on Windows has become a standard feature, thanks to the improvements based on IBM’s IAccessible2 framework.

The entire list of new features and improvements of LibreOffice 4.3 is here: https://wiki.documentfoundation.org/ReleaseNotes/4.3.

“The LibreOffice project shows that a large free software community can live and thrive without the patronage of a software vendor, to liberate PC desktops”, says Thorsten Behrens, Chairman of The Document Foundation. “Today, you can’t own a better office suite than LibreOffice, in term of features, interoperability, support for document standards and independence. After many years, LibreOffice brings the control of the PC desktop back into the hands of the users”.

According to the Coverity Scan service, joined by LibreOffice in October 2012, the quality of LibreOffice source code has improved dramatically during the last two years, with a reduction of the defect density per 1,000 lines of code from an above the average 1.11 to an industry leading 0.08 (for more information: http://softwareintegrity.coverity.com/register-for-libreoffice-scan-report.html).

People interested in technical details about the release can access the change logs here: https://wiki.documentfoundation.org/Releases/4.3.0/RC1 (fixed in RC1), here: https://wiki.documentfoundation.org/Releases/4.3.0/RC2 (fixed in RC2), here: https://wiki.documentfoundation.org/Releases/4.3.0/RC3 (fixed in RC3) and here: https://wiki.documentfoundation.org/Releases/4.3.0/RC4 (fixed in RC4).

Download LibreOffice

LibreOffice 4.3 and LibreOffice 4.2.6 – which will be released on Friday – are available for download from the following link: http://www.libreoffice.org/download/. Extensions and templates to supplement the installation of the software and add specific features can be found here: http://extensions.libreoffice.org/.

LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at http://donate.libreoffice.org. Money collected will be used to enhance the project both at global and local level.

About The Document Foundation (TDF)

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 June 2014, the foundation has just over 200 members and well over 3,000 volunteer contributors worldwide.

Media Contacts: https://www.documentfoundation.org/contact/.

by italovignoli at July 30, 2014 06:00 AM

July 29, 2014

LibreLogo

Sleep

<figure class="wp-caption aligncenter" id="attachment_870" style="width: 500px;">Sleep symbols standardized by IEEE 1621<figcaption class="wp-caption-text">Sleep symbols standardized by IEEE 1621, and created by LibreOffice for Wikipedia (see the public domain SVG version in Wikimedia Commons)</figcaption></figure>
<figure class="wp-caption alignright" id="attachment_866" style="width: 150px;">Not a standard sleep symbol<figcaption class="wp-caption-text">Not a standard sleep symbol</figcaption></figure>
Wikipedia page Power symbol mistakenly showed the astronomical symbol of the moon (see right) instead of the IEEE 1621 standard crescent moon symbol. This standardized symbol, called “Sleep” refers to the Sleep mode (also Stand By or Suspend), the low power mode for electronic devices.
The easily accessible consultant report of the standard is a little bit cryptic about the form and size of the proposed symbol (Appendix VI.3.):
precisedrawing
Fortunately, abstract of the referred standard IEC 40630 revealed the size of the square, too: exactly 75 mm. Using this data and a ruler, it was possible to measure the diameter of the outer circle, too: it is 6 cm. The standard specifies the ratio of the outer curve of the moon shape: a half circle; the width of the shape: 1/4 diameter of the circle (1.5 cm); and “tilt” of the moon: just for fun, it is equal to the earth’s angle of inclination (at the time of writing of the standard, it was 23.45 degrees). The only question was the specification of the inner curve of the moon shape. After some investigation it was found that it is arc of a circle, not an ellipse. We can calculate its radius (r2) and position based on the following illustration:
sleepedit
Radius of the first circle (r1) is 3 cm. Using the Pythagorean theorem, r22 = (r2r1/2)2+r12 = (r2–1.5)2 + 9 = r22 – 3r2 + 2.25 + 9, so r2 = 11.25/3 = 3.75. The following LibreLogo program draws the filled moon using a black, 6 cm circle, and a white, 7.5 cm circle:

PENUP LEFT 23.45° 
FILLCOLOR “BLACK” CIRCLE 6cm
RIGHT 90 FORWARD 2.25cm
FILLCOLOR “WHITE” CIRCLE 7.5cm

For a better cropping in the SVG version, we can draw only a black semicircle, and – using the law of sines for the calculation – only the requested white circular segment of the second circle:

PICTURE “power_sleep_black_cropped.svg” [
PENUP LEFT 23.45°
FILLCOLOR “BLACK” ELLIPSE [6cm, 6cm, 6h, 12h]
RIGHT 90 FORWARD 2.25cm LEFT 90
FILLCOLOR “WHITE”
ELLIPSE [7.5cm, 7.5cm, 6h+36.8°, 12h-36.8°, 2]
]

Apply the following steps to convert the black and white circular segments to a single moon shape:
1. Open the exported SVG file in LibreOffice Draw.
2. Select and remove the bad black background rectangle.
3. Press Ctrl-A to select the black and white circular segments.
4. Select Modify » Shapes » Subtract to subtract the white circular segment from the black semicircle.
5. Export as SVG.

inner_moon_150
Drawing white (empty) sleep symbols is a little bit trickier. We have to draw the circular segments with the (double of the) requested line width for the inner moon shape (see the screenshot), (moreover, in enlarged version to reduce the rounding errors of the Draw canvas and the following clipboard operation), and subtract this smaller moon shape from the big one. Steps:

1. Change the Writer paper size to 100×100 cm, and run the following LibreLogo code:

TO moon color bgcolor
HOME LEFT 23.45° 
PENCOLOR color PENSIZE 4cm 
FILLCOLOR bgcolor ELLIPSE [60cm, 60cm, 6h, 12h]
PENUP RIGHT 90 FORWARD 22.5cm LEFT 90 PENDOWN
FILLCOLOR “WHITE”
ELLIPSE [75cm, 75cm, 6h+36.8°, 12h-36.8°, 2]
END

PICTURE [
moon “INVISIBLE” “BLACK”
moon “ORANGE” “INVISIBLE”
]

2. Copy the picture to a 100×100 cm Draw canvas, select Modify » Ungroup and Modify » Shapes » Subtract to create the inner moon shape.
3. Press Ctrl-C to copy the inner moon shape to the clipboard, and press Ctrl-Z to restore the image.
4. Remove the two shapes with orange outlines.
precdraw2_150 Press Ctrl-V to insert the inner moon shape (you can change its filling color to check it, see on the attached screenshot).
5. Press Ctrl-A and select Modify » Shapes » Subtract to create the empty moon shape.
6. Resize it with Format » Position and Size…, move it to the left upper corner, resize the canvas (or copy the moon shape to the previous, but empty SVG file), and export it as a new SVG file.

IEC 40630 has got two preferred line widths, 2 mm and 4 mm, also the filled moon is an official version of the symbol, and sometimes it is useful to use not only the fully cropped versions of these symbols, but the versions cropped only to the 6 cm (invisible) circle, that is why Wikimedia Commons has got six new sleep symbols (see the image gallery of one of them).
moon_gallery

by Németh László at July 29, 2014 02:12 PM

July 27, 2014

>Mihai Varga

OneDrive connection

Good news everyone ! The OneDrive connection in libcmis is ready. Due to this new feature users can now create and edit files in their OneDrive storage directly from LibreOffice. As soon as the SharePoint connection is ready and functional and hopefully by the time the GSoC ends, this new useful feature will be available and patched into the new version of libcmis. This means that roughly in a month's time users will be able to benefit of it.

Here is a short demo of how the binding works. It basically implies no more than opening the document from your own machine. It gives the user the security and flexibility of a cloud service, while still running locally.

by Mihai Varga at July 27, 2014 11:00 PM

July 25, 2014

Caolán McNamara

Dialogs and Coverity, current numbers

Army massing

Converting LibreOffice dialogs to .ui format, 54 conversions remaining

We've now converted all but 54 of LibreOffice’s classic fixed widget size and position .src format elements to the GtkBuilder .ui format. This is due to the much appreciated efforts of Palenik Mihály and Szymon Kłos, two of our GSOC2014 students, who are tackling the last bunch of hard to find or hard to convert ones.

Current conversion stats are:
778 .ui files currently exist
There are 20 unconverted dialogs
There are 34 unconverted tabpages
An estimated additional 54 .ui are required
We are 93% of the way through.

Coverity Defect Density: LibreOffice vs Average

According to Coverity's overview dashboard our current status is:

LibreOffice: 9,425,526 line of code and 0.09 defect density

Open Source Defect Density By Project Size

Line of Code (LOC) Defect Density
Less than 100,0000.35
100,000 to 499,9990.5
500,000 to 1 million0.7
More than 1 million0.65
Note: Defect density is measured by the number of defects per 1,000 lines of code, identified by the Coverity platform. The numbers shown above are from our 2013 Coverity Scan Report, which analyzed 250 million lines of open source code.

by Caolán McNamara (noreply@blogger.com) at July 25, 2014 12:05 PM

July 24, 2014

Charles Schulz

What the UK Government’s adoption of ODF really means

On Tuesday the news that the UK Government had decided to use ODF as its official and default file format started to spread. The full announcement with technical details may be found here; the Document Foundation published its press release on Thursday morning there.

This decision is a landmark for several reasons. First, it is not every day that you see an entire ODF-logogovernment migrate to a standardized file format. You may hear about government branches using this or that solution, but nothing that is so “abstract” than a file format.  This time the UK Government has made the conscious decision to define a coherent policy in handling its digital documents, from the stage where they are created, edited and circulated all the way to the archival phase. It also comes year after the decision of the State of Massachusetts. As such the decision covers a variety of standards (HTML, PDF and ODF); yet its scope, as Glyn Moody rightly reminds us, also means that the devil will lie in the details of the execution.

Most of the migrations from one office suite to another tend to happen without any coherent document management policy. Many organizations moving from, say, Microsoft Office to LibreOffice do not necessarily adopt ODF as their default format and will carry on supporting whatever version of the MS Office file format internally. This usually leads to frustrations and compatibility problems. This time, the UK Government decision takes a different approach. By deciding about the formats first, the UK creates the conditions necessary to have real choices for its government and its citizens, thus setting a level playing field for everyone. Many people have understood this decision as being a move against Microsoft. It is not or at least it should not be. Microsoft Office implements ODF files and its latest editions, as I’m being told are actually quite good at it. What this move does, however, is to ensure no other solution will be at a competitive disadvantage because of a technical or legal (aka patents) lock-in. Of course, it remains to be seen what concrete actions the UK Government will take in order to ensure a smooth transition between proprietary formats and open standards; and it remains to be seen how well it will ensure a proper change management across all of its departments so that its agents feel comfortable with ODF documents and whatever new office suites that may be adopted as a result of the decision. Much could be lost at that stage, but much could be gained as well. And of course, just like with the Netherlands, the decision itself might end up being toned down or take a somewhat different meaning.

While reading among the tea leaves is not my favourite past time, it is relevant to assume that this decision may change a few things around the IT industry as well. By way of an example, I have always been amazed at Apple’s clean support of ODF inside Mac OS X but its constant absence across the iWork editions. Perhaps Apple will feel compelled to introduce ODF files in iWork now? Only time will tell. Cloud solutions will also have to improve or implement ODF and in some cases PDF support in a proper way.

The decision might also have consequences for other European countries and perhaps for the European institutions themselves, as the UK will now be an actual example of a country that has migrated to ODF, and not just one of the countries that made the choice of Free and Open Source Software. This is rare enough to catch the attention of several member states CIO offices.

This move to open standards by the UK Government is also telling of a deeper change in IT industry. We may reach the stage where finally, the average user starts to realize that the old Windows + Office paradigm starts to get exhausted. What can you do with Office documents aside opening them imperfectly in alternatives and opening them in a more effective way with Microsoft software? Actually, not much. Unless you get SharePoint. But the whole point is that in 2014, trying to extract revenue by creating lock-in on office files is no longer acceptable. That, I think, is what the UK Government decision really means. And if I’m right, it’s only the beginning.

Last but not least, this post would not be over without thanking many people whom I’ve worked with for several years in my position at my former company, Ars Aperta, in my former role at OpenOffice.org, at the OASIS Consortium and even today when contributing to the LibreOffice project. I’m thinking about people at OpenForum Europe, the FFII, the APRIL, the AFUL, the OASIS, the now defunct ODF Initiative and everyone else I am forgetting right now but who should be remembered. It’s nice sometimes, after such successes, to turn back and look at the road behind us. It can only give more confidence to walk on the one ahead.

by Charles at July 24, 2014 10:27 AM

Official TDF Blog

The Document Foundation congratulates the UK government for their revolutionary and historic choice of open document standards

UK citizens will be the first in Europe to be liberated from proprietary lock-ins

Berlin, July 23, 2014 – The Document Foundation (TDF) congratulates the UK government for the selection of the Open Document Format (ODF), in addition to Portable Document Format (PDF), to meet user needs. LibreOffice, the free office suite developed by TDF, supports both ODF – the native document format – and PDF (including PDF/A).

The original UK government press release is here: https://www.gov.uk/government/news/open-document-formats-selected-to-meet-user-needs. In addition, the UK government has published a policy paper with more details: https://www.gov.uk/government/publications/open-standards-for-government/sharing-or-collaborating-with-government-documents.

“TDF has always been a strong supporter of ODF, and a believer in open document standards”, says Thorsten Behrens, TDF Chairman. “July 22 will be a date to remember, as the culmination of a dream inaugurated when ODF become a ISO standard on November 30, 2006. By standardizing on ODF and PDF, the UK government is showing the world that it is entirely possible to find a way out of proprietary formats to enhance user freedom”.

LibreOffice is a reference implementation of ODF, a document standard which is supported by a growing number of applications (including proprietary ones). ODF is independently managed by OASIS (https://www.oasis-open.org/), a non-profit consortium that drives the development, convergence and adoption of open standards for the global information society.

To leverage the advantages of ODF, you can download LibreOffice from the following link: http://www.libreoffice.org/download/. Extensions and templates to supplement the installation of the software and add specific features can be found here: http://extensions.libreoffice.org/.

Complementing ODF, LibreOffice manages Hybrid PDF files, which combine the advantages of PDF and ODF by embedding a fully editable ODF document into a PDF without breaking any of the standard characteristics of both formats.

by italovignoli at July 24, 2014 07:00 AM

July 17, 2014

Cedric Bosdonnat

LibreOffice can now reach CMIS servers through HTTPS

LibreOffice CMIS server connection feature suffered a severe disease since the begining: it was not able to connect to servers using HTTPS. First a workaround was added for invalid certificates, but the problem also existed for valid ones as described by fdo#72277.

After several months of inactivity, I finally managed to grab enough courage to dive into curl and NSS. From 4.3.1, LibreOffice built with internal curl library, will be able to use the mozilla certificates database to validate CMIS connections.

For those wanting to know the gore details, LibreOffice internal curl library is built with NSS support. To read the certificates database, curl needs to find libnssckbi: so NSSInitializer UNO service was here to do that job. But using that service is not enought: curl doesn't know how to read the PKCS certificates stored in the database... and needs libnsspem to do that. After some digging, I uncovered it on fedorahosted and added it as a patch to LibreOffice internal NSS library.

Thanks Caolan and Michael Stahl for pointing me to the right direction to fix that one.

by Cédric Bosdonnat at July 17, 2014 08:07 PM

July 16, 2014

Tomaž Vajngerl

LibreOffice on Android

Thanks to Smoose, we are now able to do some real progress with the Android version of LibreOffice. The idea is to first build a LibreOffice document viewer, which is able to display any type of document that is supported by LibreOffice. Afterwards build on that and provide more features and eventually editing. The application itself should be a Android native application and use LibreOffice (interfacing through LibreOfficeKit) to provide tiles of a rendered documents and other needed pieces.

In the last couple of weeks I have been working on making this plan a reality. The first goal is to prepare the base of the application so I used the Fennec (Firefox for Android) source code. Fennec already solves many of the problems that we would need to solve - especially concerning drawing of tiles, touch handling, scrolling, tools and removed the rest, that will not be needed or needed later in development.

The calls to Gecko (rendering engine in Firefox) were replaced with our own implementation either in Java or a facade to LibreOfficeKit. By using a mock document tiles (tiles of the document that are part of the application's assets)  I was able to make the application work without actually interfacing with LibreOffice yet. With this the application  looked something like this:

At this stage the application was able to show a mock document with working scrolling and touch handling. The next big step was integration of LibreOffice and writing a JNI facade to LibreOfficeKit so that a real document rendered by LibreOffice could be show on a screen. With a big help from kendy we managed to integrate LibreOffice and correctly initialize LibreOfficeKit. After that the a real LibreOffice rendered document appeared:

See application in action video here and here.

Finally some results! There are some issues at the tile borders but this will be eventually resolved. The application uses OpenGL ES 2 for rendering so the user experience is smooth for the most parts (there are still things to optimize). This is the current state of the application but it is still far from complete however a lot of quite difficult technical challenges have been resolved and true development and polishing can now start.

Next steps are cleaning up and refactor a lot of code, integrate useful parts of previous attempt (LibreOffice4Android), tune tile loading and invalidation (when to load or remove which tile), making parts asynchronous to reduce blocking and improve the user experience, text selection and copy/paste, ...

I am really excited with what we have achieved and really looking forward to see where we go from here. By the time of LibreOffice 4.4 we should have a working and polished document viewer application ready. Thanks again to Smoose for funding for the work on this important step!

 Tomaž



by Tomaž Vajngerl (noreply@blogger.com) at July 16, 2014 08:13 PM

Miklos Vajna

TextBox: complex LibreOffice Writer content inside shapes

TL;DR: see above — it’s now possible to have complex Writer content (charts, tracked changes, tables, fields, etc.) inside drawinglayer shapes, yay! :-)

The problem

Writer in LibreOffice 4.3 can have two kind of shapes: drawinglayer ones or Writer TextFrames. (Let’s ignore OLE objects and Writer pictures for now.) Drawinglayer shapes can be triangles (non-rectangular), rectangles can have rounded corners and so on, but shape text is handled by editeng — the same engine that is used for Impress shapes or Calc cells. OTOH a Writer TextFrame can contain anything that is supported by Writer (Writer fields, styles, tables, etc.), but its drawing capabilities are quite limited: no triangle, rounded corners, etc. Together with CloudOn, we thought the best would be to be able to have both, and started to use the "shape with TextBox" term for this feature.

A user can already sort of to do this by creating a drawinglayer shape, then a Writer TextFrame, and by setting the properties of the Writer TextFrame (position, size, etc) to appear as if the TextFrame would be the shape text of the drawinglayer shape. The idea is to tie these two objects together, so the (UI and API) user sees them as a single object.

Results

I’m providing here a few screenshots. Above, you can see an ODF document having a rectangle with rounded corners, still containing a table.

Given that OOXML has this feature since its birth, I’m also showing a few DOCX documents, which are now handled far better:

  • chart inside a left arrow callout:

  • tracked changes inside a cloud callout:

  • SmartArt inside a snip diagonal corner rectangle:

  • Table of Contents inside a pentagon:

Details

What follows is something you can probably skip if you’re a user — however if you’re a developer and you want to understand how the above is implemented, then read on. ;-)

Situation in 4.3

From the drawinglayer point of view: SwDoc contains an SdrModel (SwDoc::GetOrCreateDrawModel()), which contains a single SdrPage (SdrModel::GetPage()) — Draw/Impress contain multiple sdr pages. The SdrPage contains the shapes: e.g. a triangle is an SdrObjCustomShape. For TextFrames, a placeholder object called SwVirtFlyDrawObj is added to the draw page.

The writer-specific properties of an SdrObject is stored as an SwFrmFmt object, an SwFrmFmt array is a member of SwDoc ("frame format table"). The anchor position and the node index of the frame contents counts as a property.

At UNO level, a single DrawPage object is part of the Component (opened document), which abstracts away the internal SdrPage.

For TextFrames, the UNO API works exactly the same way, except that the implementation stores all properties of the TextFrame in the SwFrmFmt (and some properties are different, compared to a drawinglayer shape).

One remaining detail is how the shape text is represented. In case of drawinglayer shapes, this is provided by editeng: internally an EditTextObject provides a container for paragraphs, at UNO API level SvxUnoTextContent provides an interface that presents paragraphs and their text portions.

For TextFrames, the contents of the frames is stored in a special section in the Writer text node array (in the 3rd toplevel section, while the 5th toplevel section is used for body text), that’s how it can contain anything that’s a valid Writer body text. An offset into this node array of the "content" property of the SwFrmFmt.

Document model

At a document model level, we need a way to describe that an SdrObject (provided by svx) has an associated TextFrame (provided by sw). svx can’t depend on sw, but in the SwFrmFmt of the SdrObject, we can use the so far unused RES_CNTNT ("content") property to point to a TextFrame content.

So behind the scenes the UNO API and the UI does the following when turning on the TextBox bit for a drawinglayer shape:

  • creates a TextFrame

  • connects the SdrObject to the TextFrame

Also, every property of the TextFrame depends on the properties of the SdrObject, think of the followings:

  • position / size is the largest rectangle that fits inside the shape

  • borders are disabled

  • background is transparent

Finding the largest rectangle that fits inside the shape is probably the most interesting here, it’s implemented in SwTextBoxHelper::getTextRectangle(), which uses SdrObjCustomShape::GetTextBounds().

UNO API

The UNO API hides the detail that the TextFrame and the SdrObject are in fact two objects. To get there, the followings are done:

  • SwXShape is modified, so that in the TextBox case not editengine, but the attached TextFrame is accessed when getText() is invoked. This was a bit tricky, as SwXShape doesn’t have an explicit getText() implementation: it overrides queryInterface() instead (see SwTextBoxHelper::queryInterface()).

  • SwXDrawPage (its XEnumerationAccess and XIndexAccess) is modified to ignore TextFrames in the TextBox case

  • SwXTextPortionEnumeration is modified to ignore TextFrames in the TextBox case

  • SwXText::insertTextContent() and SwXText::appendTextContent() is modified to handle the TextBox case

Layout

This was the easiest part: the "merge TextFrame and SdrObj into a shape with TextBox" approach ensured that that we use existing layout features here, no major effort was necessary here.

One interesting detail here was the positioning of as-character anchored shapes having TextBoxes, that’s now handled in SwFlyCntPortion::SetBase().

Filters

The primary point of this feature is to improve Word (and in particular DOCX) compatibility, and of course I wanted to update ODF as necessary as well.

Regarding the new feature, I did the followings:

  • DOCX import now avoids setting service name from original to css.text.TextFrame in case shape has shape text

  • DOCX export now handles the TextBox case: reads Writer text instead of editeng text as necessary

  • ODF export now adds a new optional boolean attribute to make export of the TextBox case possible

  • ODF import now handles the new attribute and act accordingly

Note that regarding backwards compatibility, we keep supporting editengine-based text as well. This has the best of two worlds:

  • existing ODF documents are unchanged, but

  • the TextBox feature is enabled unconditionally in DOCX import to avoid formatting loss

User Interface

I took care of the followings:

  • the context menu of shapes now provides an item to add / remove a TextBox to/from a shape

  • when moving or resizing a shape, the TextBox properties are updated as well

  • when the shape is deleted, the associated TextBox is also deleted

  • editing individual TextBox properties is no longer possible, since they depend on the shape properties

Summary

If you want to try these out yourself, get a daily build and play with it! If something goes wrong, report it to us in the Bugzilla, so we can try fix it before 4.4 gets branched off. Last, but not at least, thanks for CloudOn for funding these improvements! :-)

July 16, 2014 11:33 AM

July 14, 2014

Charles Schulz

“To whom much has been given, much is expected in return” – Free Software economics

To quote the gospel of Luke (12:48) before discussing Free Software is rare, yet not unseen, and this blog will not shy away from creating new rarities every month. Let’s start right away. What do projects such as OpenSSL, LibreSSL & LibreOffice have in common? They are Free Software projects of course; why do I ask the question? Probably because it deserves a better answer… Let’s try to dig deeper.

It is  fashionable these days to show surprise, and then a sorry look, when discussing Free and Open Source Software. Yes, some projects are everywhere, in your browser, embedded into appliances and in places you don’t even imagine they could be. Is it written anywhere? Do appliances, ATMs, cars, airplanes, some proprietary software solutions, phones, televisions, ovens come with a full list of components? They usually don’t. But  if they would, people would realize how prevalent Free and Open Source Software is. The other thing they would be surprised with would also be that most of the time, nobody pays projects or developers for this. I know, you’ve been taught that Free Software costs zero, and that’s good news because it’s better than warez, and on top of this you get to tell their idiotic developers that their software stink -heck, you’re even entitled to do that!

The problem with that, however, is that it is not sustainable. I don’t mean to say that the Free Software model is not sustainable, only that, just like any other working system, it does not  work like a perpetual movement: people’s motivation is important, and sometimes even developers need a roof, some food, a shower, perhaps a car…Some of them might be entrepreneurs. Discovering the sorry state of OpenSSL does not equate to demonstrate that Free and Open Source Software does not work as intended, it only means that there are a whole lot of people benefiting from it -the users- and a few people probably abusing it, while the core  contributors do not get anything in the end. And while no  one suggests there is an obligation to pay core contributors in one way or another, certainly no one actually paid attention to the OpenSSL developers.

Let’s come back to LibreOffice. We often get messages, public and private, in the form of: “this or that feature does not work. How can it not work? You should be ashamed to offer this software. I expect software to work, and if it does,’t, well, I’ll take my business elsewhere!”. Of course we have not received this complaint but we did receive similar emails of what can qualified as digruntled customers. At first they were irritating to me, even though some of them were pointing to actual bugs. Now, they make me smile. Not having my livelihood depend on bug fixing helps too, but it would still make me smile. At the risk of offending a few people, these complaints make me think of people who browse large malls, have no money, will not spend anything of course, but who will call the better business bureau and the shops managers to complain about how the racks are aligned or the weak A/C. Could they be right? Probably yes, why not.
Will it be fixed because they communicated their frustration? Probably yes. Or perhaps no. It will really depends if their complaint is justified and if the mall has enough money to fix these issues.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="http://www.youtube-nocookie.com/embed/SRZYUyiQMcU?rel=0" width="420"></iframe>

When it comes to Free Software projects, there’s a profound, deep misunderstanding about who does what and how it’s being done. Using the now overused quote, developers write a code “because they have an itch to scratch”, means that there can be twenty different motivations to contribute to Free Software. No one needs to explain or justify his or her contribution. In the real world, one of the most common motivation is money, be it in the form of a salary, a fee, or a transaction involving the developers to fix whatever bug or develop a new feature. Most of the FOSS projects I know -excluding Firefox- do not pay developers directly for fixing bugs except in very specific circumstances and by definition not on a regular basis. The LibreOffice project is no different. The Document Foundation serves the LibreOffice project by financing its infrastructure, protecting its assets and improving LibreOffice in almost every way except paying for development on a regular basis. What this means, in other terms, is that the Document Foundation does not provide support; nor does it provide service to customers. In this sense, it is not a software vendor like Microsoft or Adobe. This is also one of the reasons why there is no “LTS” version of LibreOffice; because the Document Foundation will not provide a more or less mythical “bug-free version” of LibreOffice without ensuring the developers get paid for this. The healthiest way to do this is to grow an ecosystem of developers and service providers who are certified by the Document Foundation and are able to provide professionals with support, development, training and assistance.

To expect software that’s both Free as in beer and as in speech, without bugs and meeting most of your needs is a dream. Free Software delivers software freedom, digital rights; it greatly improves the collaborative development of software and the nurturing of software commons. It does not deliver you free lunch, and it never will. Or rather, if there is free lunch, it will be somebody’s lunch you share with him or her.

How can you help? There are many ways to contribute: joining the community by actively participating to its workflows, its teams and offering time, manpower, expertise; or with money, if you’re a professional user or donating to the project. You can do all this with LibreOffice (donate here; see how you can join us there). Ultimately, Free Software projects do not sell products, they grow communities. Stop being a consumer, become a contributor!

by Charles at July 14, 2014 04:46 PM

July 12, 2014

>Andrzej Hunt

Calc & Impress Tiled Rendering preview

Recently I’ve been working on Calc and Impress tiled rendering, with some results now becoming visible:

Impress

Impress Tiled Rendering is now integrated into master — there are still some issues, i.e. foreground images are not shown yet (this is a bug that’s shared with calc tiled rendering), and it’s not yet possible to select between rendering only slides, only notes, or both (i.e. we currently default to whatever mode the document was last opened in). However in general it seems to work quite well:

Impress Tiled

Impress Tiled Rendering: Unfortunately no Image rendered

In fact very little work had to be done to get tiled rendering working here — the hardest part was figuring out what part of Impress to plug into: once I’d gotten my head around Impress’s architecture, connecting up the rendering was a matter of a few lines of code.

Calc

The calc work is somewhat more substantial, primarily due to the way that scaling for cell rendering works: calc calculates on-screen pixel based sizings in a number of steps using its own scaling methods, which can sum up to noticeable errors between expected and rendered content (which would result in discrepancies when later compositing tiles). This means that there is a significant amount of work needed in rewriting parts of the scaling: while the tiled rendering itself is beginning to look acceptable, the normal UI for Calc is now partly broken, primarily in that scrolling is rather glitchy (however this is being fixed bit by bit, and it is hoped will be mergeable in a useable state soon). This work is still staying on a branch for now — i.e. until it doesn’t break the usual way of using Calc.

Similarly to Impress, images in the foreground aren’t being rendered yet — this as far as I can tell is the same underlying issue, and is what I’m currently working on fixing.

Calc Tiled

Calc Tiled Rendering: charts work too!

Other Stuff

In addition to the work on actual tiled rendering, there have been some further additions in the surrounding code and testing tools:

  • “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).

by ahunt at July 12, 2014 06:51 AM

July 10, 2014

Jacobo Aragunde Pérez

Hot accessibility for LibreOffice 4.3.0

The first release candidates for LibreOffice 4.3.0 are already bouncing around the internet and, besides great new features like the ones I’ve been explaining in my latest posts, they come with a set of fixes to ease the life of screen reader users and developers alike. This is, once again, a part of the accessibility work we do at Igalia.

Back in April, when the Gran Canaria hackfest took place, I started working on the bug #71556. The problem was that typing on a document triggered a lot of unnecessary text-attributes-changed events. These events had a variety of origins, but most of them were caused by modifications in the internal text attribute rsid, used for change tracking and with no relevance per se for the user. The bug is not completely fixed, but addressing the problem with rsid attribute allowed us to get rid of the most annoying part of it; now LibreOffice only sends one unnecessary event when we type the first character in a new paragraph and not with every keystroke.

Bug #71558 is also related with the same kind of events; in this case, text-attributes-changed was not being triggered when a word became marked as misspelled. Actually, the spell-checking status is not internally treated as a text attribute and because of that there were no events indicating its change. The patch explicitly raises the event which lets the accessibility code check the status of the text attributes and find out the spelling mistake. While I was working on this issue, I also detected a weird behavior when checking the text attributes through the Python API; it resulted to be a bug in the bridge between AT-SPI and ATK, which I reported and fixed too.

A triaging session took me to bug #74681; the main issue reported there had already been fixed for a while and only small bits regarding missing accessible names in some buttons were missing. I fixed that allowing toolbar buttons to use their tooltip text as the accessible name if it is not explicitly set, and now the paragraph properties panel is fully accessible.

Finally, I retook the work I had been doing in relation with ATK roles at bug #39944 and detected wrong mappings for LibreOffice EDIT_BAR, EMBEDDED_OBJECT and HYPER_LINK accessible roles. I fixed them and opened a ticket in ATK bugzilla to create ATK roles for the five cases that were still registering custom roles. Once that ticket is managed, hopefully we will be able to close bug #75191 too, which is related with the deprecation of atk_role_register.

These fixes are added on top of the ones coded in February hackfest, making 4.3.0 the most accessible LibreOffice so far… Until the next version arrives, of course!

by Jacobo Aragunde Pérez at July 10, 2014 10:55 AM

July 08, 2014

Miklos Vajna

Updated Writer training slides

(via michaeljosh)

Last year I published some Writer training slides, which are hopefully a useful extension to in-tree documentation like sw/README and sw/qa/extras/README.

Last week I reviewed those slides and realized that some of them are outdated. So here comes an updated version:

The intention is that these build nicely on top of Michael’s generic intro slides, and with that, the reader can have a good "big picture" understanding of the code base. For the gory details, you always need to read the code anyway. ;-)

July 08, 2014 10:52 AM

July 06, 2014

Charles Schulz

What’s up with Open Standards?

It has been a while since I have discussed open standards here, even though I have alluded to them in passing. There are currently a number of initiatives and policies ongoing at the European level that are bringing this topic back on the table, especially with regard to public procurement practices. Why does it matter? Because it shows that beyond any kind of advantage, convenience, or the mere ability to have a real choice of IT solutions suppliers, open standards are considered by much of the private and public sectors as some sort of nuisance.

Depending on how you see it, the “battle” for open standards is either won, or it is  still ongoing at the normative level (think about the DRM injection in HTML5 that happened at the W3C). Open Standards, more than ever before, rule the IT industry and the Internet. Cloud technologies rely on open standards to a large extent; purchasing music tracks online lets you increasingly download open file formats that, while they may not be exactly standardized themselves, have open specifications and are unencumbered wiith digital restrictions management (yes, that’s how DRM should really be called).ODF-logo

On the other hand, desktop technologies are still a major issue. One could assume it is because of the stranghold of an entrenched  monopoly, and perhaps it is, to some extent. We are in 2014 however, and both open standards and FOSS desktop offerings (LibreOffice, Firefox, Linux  distributions for the desktop) are legion. These have a real uptake among what is  often referred to as the consumers’ market and that’s great news, but when it comes to what’s going on in the workplace, there seems to be little choice aside the MS Office + Outlook + SharePoint on Windows stack. Why  is that the case? Why is the European Commission still trying to tackle the problem in 2014?

The Desktop is traumatizing

And more exactly, change is traumatizing. Technology changes very quickly, but the more structured the workplace you have, the less adaptative it will be for IT  solutions. If you add the specific culture of the organization that can sometimes be more or less rigid and centered on one vertical industry, you will find long cycles of deployment for any kind of IT technologies and a reluctance to “switch” to a new brand or a new kind of software. This could not be more true on the desktop. I’ve been writing this for years here, but there are reasons for that: the desktop is used by pretty much everyone in the organization. While it  is  somewhat changing with the arrival of tablets and smartphones, desktops are here to stay. The problem is that desktops are very complex systems -offering a graphical interface and tools for pretty much every kind of uses and situations one can imagine- and as such come with more quirks than other devices and other software platforms. These quirks end up being noticed by the users, who most of the time are not computer-savy and will be reluctant to change. Worse,  their  skills will directly or indirectly be challenged by the change. This fear of change ends up being passed on to the CIO level, who has to make the purchase decision, and does not want to be hold liable for having chosen that “weird, so called innovative solution no one gets”.

Just like with any fear, we are not talking about rationality. In 2014, people who use Twitter on a daily basis will shout if their desktop has changed overnight. It is not a good practice to do that kind of brutal change anyway, but the very concept of microblogging was unknown to them 5 years ago. They embraced it with no trouble at all. Their desktop, however, is a holy land, the solitaire game and their office suite their hallowed relics.

Open Standards can sometimes be hard to understand

It is hard enough for people to understand what protocols such as TCP/IP do. These open standards however are invisible to most of them, even if they’re using them on a daily basis. Other open standards, such as OpenDocument Format, are probably not conceivable by some people, who think that an office document is “an extension of Microsoft Office”. I have even heard of teachers, here in France, who refused to even mention ODF because such a thing “could not possibly exist”. The conceptual distinction between a file and an application has not permeated much, even in the twenty first century.

Yet, open standards are the way to go. They may not always be the superior technology, but they offer a level playing field for the industry to build on and innovate with. The Internet has been built on this, so does cloud computing. Desktop solutions are no different. Using open standards brings you back in control of your suppliers and IT infrastructure; it ultimately helps reducing costs and keep your data safe, reusable and sustainable  for dozens of year to come. You can read more about it in the excellent article by Bjorn Lundell published here. Ultimately, the lock-in of the desktop solutions will stop being meaningful as the state of the art will change so much the solutions that are seen as essential today will stop being that important. But the documents, the images, the data, all your content will still be locked in undocumented file formats that need to be reverse-engineered in order to edit them. No one should build such a silo for the future and then throw away the key. That’s what has been happening for more than a decade on the desktop, unfortunately. Where does that lead  us? I think we can already see where: vendor lock-in is here to stay on a more or less large extent; but so are open standards. There will then be people who are stuck with their vendors and constantly handle the legacy; there will be the others, who actually enable information technologies to help them innovate. For them, the story has only started.

by Charles at July 06, 2014 01:07 PM