Tag Archives: LibreOffice

SI-GUI statistics


I have not talked mich about SI-GUI statistics lately so here some numbers 😉

Since logging every action (this can be turned off)…

  • 6990 parallel installation have been started (and 6022 of them finished successfully)
  • 6327 downloads have been started with 4833 fining their way in the download statistics [if someone has problem downloading LibreOffice, please tell me]
  • Most people use English (4338), French  (1669), Spanish (1251) and German (1327)

There have been SI-GUI version with bugs in reporting, which could hint to the numbers are not 100% accurate (to low and not to high BTW)

I hope it is still useful for the 33 people, which used this tool in the last week. Do you think it will stay relevant when auto updating nightly builds are implemented?




OOXML – Bug to bug compatibility needed to Word

As you know I often publish things how good Microsoft office adheres to it’s own standard.

It should be known that LibreOffice needs to produce non-conform OOXML (docx,xlsx etc.) files to be able to open files created with Microsoft Word.

This time linking to the commit message of one of our developers as a proof 😉

LibreOffice can open XLSX files Excel cannot

Just a quick heads up. I just created and saved an Excel file using Excel 2016, which cannot be opened again with it. Glad our swiss army knife LibreOffice can 😉

It’s funny to see Excel can open the ODS I created using LibreOffice (as source I used the XLSX file) better than it’s “native” format….

Here is a short “proof” video: https://youtu.be/bM7UOkqQTqw


OOXML Strict and MS Office 2010

One of the benefits of being a student is getting Office 365. I also have Office 2010 so that leaves me with bot Office 2010 and 2016.

Recently I tried to save a Excel file in OOXML Strict and confront my 2010 edition Excel with it.

This file has been created with a newer version of MS Excel – For opening this file you need a converter. Would you like to download it from Office.com?

The hilarious thing is the following image:

Source: https://blogs.office.com/2012/08/13/new-file-format-options-in-the-new-office/



So my Office 2010 should be able to open the Strict OOXml without problems (with this some month old file it actually does). But why is Microsoft frightening the enduser? The best thing is the linked page (from the dialog in the first picture) “Support for Office 2003 has ended“. If you need the converter, it can be found here. UPDATE:Removed link as it broke my Office 2016!!!!

And finally the sentence you were waiting for: Waaait, Office 2010 can open the OOXML strict standard, but not the file saved with Office 2016 with “OOXML strict”. So the “OOXML strict” is not Standard (or there is a biiig bug in Office 2010, which prevents interoperability)…..







Hello everyone,

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

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

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


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


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

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

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




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


SI GUI – Now with SDK + Naming

Hi all 🙂

So right before LibreOffice Conference I finished SI-GUI’s LibreOffice SDK support. You are now able to download the SDK and install it via the GUI.

Speaking of GUI, here it is:



Another thing where I need your help is the following:

Current icon
Current icon

The name was always bad and it is time to find a better one, although this will break some links…. And with a name, we need 1 icon (I attached the current). So if you have an idea and an icon, that would be perfect. [This icon is available in 256×256,128×128,48×48,32×32,16×16]

I am happily looking forward to hear your ideas. Enjoy SI-GUI 🙂

BTW: Tell me if you are using it and whether you like it or not 🙂


Assertion errors – not only for devs


So one difficult topic now. In his post I will throw around with things like precondition and code, but I really try to keep it simple.

So, let us first introduce the example. A “Linked-List”. What you need to know (just valid for this tiny example):

  • No element –> NULL
  • “->” is the link between elements
  • No element is an element
  • A list starts at “head”, so head is just the link to the first element

Let’s have an example. These are valid lists

  1. head->null
  2. head->1->2->3->null

The length of 1) is ZERO, of 2) THREE. That is most of the coding skills you need 😉

So, what are errors? You find them in LibreOffice as well as in all other software. It does not behave as expected, maybe resulting in a crash. That is quite obvious.  You can have invalid or simply unexpected input. As you can see in the above example, we do not expect to add the element “null” at position 1 [between 1 and 2] Would result in head->1->null->2->3->null (again sorry to all developers, I need easy examples).  So we are not allowed to add the element “null”, as this would result in changing the length of the list from 3 to 1, by adding one element. 3+1=1 okay, I guess that should not be like that…. So the code is a little bit inspired by Java, so sorry for the overhead 😉

public void addElement(int position /*A number from -2147483648 to +214483647*/, IntElement e /*Also a number like in our example, but it can have a link to a different IntElement*/){
assert e != null && LENGTH_OF_LIST >= 0;
if(head == null) //If we have an empty list
INSERTFRONT //We do not need to much detail here
assert LENGTH_OF_LIST == 1; //== means equals
return; //Exit the function here
int oLength = LENGTH_OF_LIST;
assert position >= 0 AND position <= LENGTH_OF_LIST;
INSERT_MIDDLE_LAST //Insert at the rest of the list
assert LENGTH_OF_LIST == oLength +1; // If adding succeeded the new length must be 1 greater than the old one

You can see some line start with “assert”. This are developer’s magic little helpers.

A function in mathematics and informatics has 3 conditions:

  1. Precondition –> How should the input should look like
  2. Post-condition –> How should the output / result of the function should look like
  3. Invariance–> What should be valid at the beginning and the end


What should be at the beginning and at the end?  The length must be >=0.


The inserted element must not be NULL and the length of the list must be positive (So this includes the invariance as well)


If the list is empty –> Length is 1 (this includes the invariance)
If the list is not empty the new length must be by one greater than the old length. (this includes the invariance as well)

So, did you get the need? You can assure yourself that the input and output of a function (and if you want steps inside) are correct. So you cannot get any unexpected result, if assertions are enabled. Assertions are disabled by default, because they slow down a bit, but in LibreOffice Daily build from tinderbox 39  (downloadable @ SI-GUI atm) assertions are enabled.

So finally, an example (I only realized they were enabled because of this message:44alpha


So at line 1291 of winlayout.cxx an assertion failed (while testing bug # 77248) That’s a starting point for devs. The error might be near there 😉 So yes, it makes sence to have assertions enabled and more to write them. If you write down how the output and the input should look like, everyone knows. You are turning implicit to explicit knowledge. And you will save hours to search for the place, where the error did occur. So please, and this is not limited to LibreOffice, have assertions enabled during testing!

And if you see such a dialog and remember the steps you did to come there, check if such a bug exists and comment with the exact version, or create a new bug. The exact version is needed, because this is the only way, that devs know on which version of the file they can find the failing assertion.