The Document Foundation Planet

 

February 15, 2019

Kohei Yoshida

Performance benchmark on mdds R-tree

I’d like to share the results of the quick benchmark tests I’ve done to measure the performance of the R-tree implementation included in the mdds library since 1.4.0.

Brief overview on R-tree

R-tree is a data structure designed for optimal query performance on spatial data. It is especially well suited when you need to store a large number of spatial objects in a single store and need to perform point- or range-based queries. The version of R-tree implemented in mdds is a variant known as R*-tree, which differs from the original R-tree in that it occasionally forces re-insertion of stored objects when inserting a new object would cause the target node to exceed its capacity. The original R-tree would simply split the node unconditionally in such cases. The reason behind R*-tree’s choice of re-insertion is that re-insertion would result in the tree being more balanced than simply splitting the node without re-insertion. The downside of such re-insertion is that it would severely affect the worst case performance of object insertion; however, it is claimed that in most real world use cases, the worst case performance would rarely be hit.

That being said, the insertion performance of R-tree is still not very optimal especially when you need to insert a large number of objects up-front, and unfortunately this is a very common scenario in many applications. To mitigate this, the mdds implementation includes a bulk loader that is suitable for mass-insertion of objects at tree initialization time.

What is measured in this benchmark

What I measured in this benchmark are the following:

  • bulk-loading of objects at tree initialization,
  • the size() method call, and
  • the average query performance.

I have written a specially-crafted benchmark program to measure these three cateroesi, and you can find its source code here. The size() method is included here because in a way it represents the worst case query since what it does is visit every single leaf node in the entire tree and count the number of stored objects.

The mdds implementation of R-tree supports arbitrary dimension sizes, but in this test, the dimension size was set to 2, for storing 2-dimensional objects.

Benchmark test design

Here is how I designed my benchmark tests.

First, I decided to use map data which I obtained from OpenStreetMap (OSM) for regions large enough to contain the number of objects in the millions. Since OSM does not allow you to specify a very large export region from its web interface, I went to the Geofabrik download server to download the region data. For this benchmark test, I used the region data for North Carolina, California, and Japan’s Chubu region. The latitude and longitude were used as the dimensions for the objects.

All data were in the OSM XML format, and I used the XML parser from the orcus project to parse the input data and build the input objects.

Since the map objects are not necessarily of rectangular shape, and not necessarily perfectly aligned with the latitude and longitude axes, the test program would compute the bounding box for each map object that are aligned with both axes before inserting it into R-tree.

To prevent the XML parsing portion of the test to affect the measurement of the bulk loading performance, the map object data gathered from the input XML file were first stored in a temporary store, and then bulk-loaded into R-tree afterward.

To measure the query performance, the region was evenly split into 40 x 40 sub-regions, and a point query was performed at each point of intersection that neighbors 4 sub-regions. Put it another way, a total of 1521 queries were performed at equally-spaced intervals throughout the region, and the average query time was calculated.

Note that what I refer to as a point query here is a type of query that retrieves all stored objects that intersects with a specified point. R-tree also allows you to perform area queries where you specify a 2D area and retrieve all objects that overlap with the area. But in this benchmark testing, only point queries are performed.

For each region data, I ran the tests five times and calculated the average value for each test category.

It is worth mentioning that the machine I used to run the benchmark tests is a 7-year old desktop machine with Intel Xeon E5630, with 4 cores and 8 native threads running Ubuntu LTS 1804. It is definitely not the fastest machine by today’s standard. You may want to keep this in mind when reviewing the benchmark results.

Benchmark results

Without further ado, these are the actual numbers from my benchmark tests.

The Shapes column shows the numbers of map objects included in the source region data. When comparing the number of shapes against the bulk-loading times, you can see that the bulk-loading time scales almost linearly with the number of shapes:

You can also see a similar trend in the size query time against the number of shapes:

The point query search performance, on the other hand, does not appear to be linearly proportional to the number of shapes in the tree:

This makes sense since the structure of R-tree allows you to only search in the area of interest regardless of how many shapes are stored in the entire tree. I’m also pleasantly surprised with the speed of the query; each query only takes 5-6 microseconds on this outdated machine!

Conclusion

I must say that I am overall very pleased with the performance of R-tree. I can already envision various use cases where R-tree will be immensely useful. One area I’m particularly interested in is spreadsheet application’s formula dependency tracking mechanism which involves tracing through chained dependency targets to broadcast cell value changes. Since the spreadsheet organizes its data in terms of row and column positions which is 2-dimensional in nature, R-tree can probably be useful for speeding things up in that area.

by Kohei Yoshida at February 15, 2019 09:40 PM

Andreas Mantke

Migration Of Plone Site Content

If you want to migrate content from or to a Plone site it is always the best use of ressources, if you ask volunteers to copy and paste the content items from one environment to another ;-(

But seriously: The Plone community created a tool for such tasks with a funny name: ‘Transmogrifier’. You could find some information on this at https://docs.plone.org/external/collective.transmogrifier/docs/source/index.html#transmogrifier and a training session at https://training.plone.org/5/transmogrifier/.

But it is not that easy and fast to create pipelines and blueprints for a migration yourself. Thus I recommend to ask and pay a Plone professional service to do the migration. It would preserve your nerves and you get results very fast.

by Andreas Mantke at February 15, 2019 07:11 PM

Official TDF Blog

Find a LibreOffice community member near you!

Hundreds of people around the world contribute to each new version of LibreOffice, and we’ve interviewed many of them on this blog. Now we’ve collected them together on a map (thanks to OpenStreetMap), so you can see who’s near you, and find out more! Click the image to see the live map:

Don’t see anyone near you? Help us to create a new native language community in your country! (Or if you’re already active in the project and would like to be interviewed, just drop us a line.)

by Mike Saunders at February 15, 2019 09:07 AM

February 14, 2019

Andreas Mantke

TDF Dashboard

I tried to have a look onto the TDF dashboard at https://dashboard.documentfoundation.org using an Internet Explorer 11, but with no success. The website didn’t render. I got only a retry of rendering actions. According to the browser stats at least 5.26 % of the internet user are not able to view the site (https://www.stetic.com/de/market-share/browser/).

And in addition for those who prefer webservices with ‘mobile first’ implementation: it’s not for you ;-(

The site doesn’t render proper on smaller mobile devices. It’s not usable on such devices.

by Andreas Mantke at February 14, 2019 08:40 PM

Michael Meeks

2019-02-14 Thursday

  • Particularly gratified to get a very touching birthday-card this morning: it's normally me that does that sort of thing.
  • Valentine's day release of Collabora Online 4.0 with an associated CODE update too. Tons of rather excellent work from the team there - its a privilege to be able work with them, and to fund almost all of that at Collabora. Then again - if you'd like to help out with both the funding, and directing the next round of feature work, we'd really appreciate you as a partner or customer.

February 14, 2019 07:30 PM

TDF Infrastructure Status

Disruption (slowdown or timeout) on various services

High I/O wait caused disruption to some services; as of 16:15 UTC the situation is back to normal.

by The Document Foundation's Infrastructure Status at February 14, 2019 04:05 PM

AskBot - monitoring

Resolved - 2019-02-14 15:58:20 UTC


AskBot check failed (server time: 2019-02-14 15:56:26 UTC)

Get https://ask.libreoffice.org: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

by The Document Foundation's Infrastructure Status at February 14, 2019 03:56 PM

wiki - monitoring

Resolved - 2019-02-14 15:59:45 UTC


wiki check failed (server time: 2019-02-14 15:55:55 UTC)

Get https://wiki.documentfoundation.org: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

by The Document Foundation's Infrastructure Status at February 14, 2019 03:55 PM

LibreOffice - monitoring

LibreOffice check failed (server time: 2019-02-14 15:52:39 UTC)

Get https://www.libreoffice.org: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

by The Document Foundation's Infrastructure Status at February 14, 2019 03:52 PM

download - monitoring

Resolved - 2019-02-14 13:31:48 UTC


download check failed (server time: 2019-02-14 13:20:24 UTC)

Get https://download.documentfoundation.org: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

by The Document Foundation's Infrastructure Status at February 14, 2019 01:20 PM

Official TDF Blog

Let’s celebrate “I love Free Software Day”!

One of our goals in the LibreOffice community is to make powerful productivity tools available to everyone. Releasing the software for free is an important part of that, but “free software” is about more than just the price. It’s about giving users fundamental freedoms in how they use their software and computers – giving control back to them.

For instance, the source code for LibreOffice – that is, the human-readable “recipe” behind the program – is available for everyone to see, study and modify. You can download this code, see what it does, change it for your needs, and then turn it back into an executable version for your computer. Many hundreds of people have done this already, contributing back important changes and updates to LibreOffice. And then you’re free to share the changes with other users.

In contrast, most other office suites don’t give users these freedoms; they are “closed”, so users can’t look under the hood, can’t study how they work, can’t make changes, and can’t share the software. Users become restricted and trapped, controlled by and locked into specific software from a specific company. That’s the very opposite of freedom!

So we’re different. But LibreOffice is just one example of free software. There are many other well-known programs, such as the Firefox web browser, and GNU/Linux operating system. The Free Software Foundation Europe is helping to spread the word about freedom, and has a number of campaigns to this end.

So we’re happy to support them on this day – and you can help them too! Use the hashtag #ilovefs on social media, talk about why free software is important to you, and let’s help people to get back control over their digital lives.

by Mike Saunders at February 14, 2019 09:17 AM

February 13, 2019

Michael Meeks

2019-02-13 Wednesday

  • Customer call, sales & marketing call.
  • Up late applying my limited caligraphic skills to J's Valentine's card: what a lady !

February 13, 2019 09:00 PM

Andreas Mantke

Expensive LibreOffice Extensions And Templates Website?

I read a time ago about the myth of an expensive LibreOffice extensions and templates website. I investigated about this and had a look at the real numbers (they are public available on the wiki page: https://wiki.documentfoundation.org/TDF/Ledgers). I found some expenses only in two fiscal period: 2017 and 2018. TDF spent in 2017 6399.44 Euro and in 2018 642.60 Euro. The money was predominantly spent for content migration and an improved server environment. It included also an individual training for the TDF infrastructure team.

The most work on the website was done by volunteer work within some support from the Plone open source community. All in all TDF spent 7042.04 Euro for running the site for about seven and a half years, thus about 938.39 Euro per year. Seemed a very expensive tool in comparison to the financial and personal ressources used for running other TDF tools 😉

by Andreas Mantke at February 13, 2019 06:06 PM

Official TDF Blog

Announcing the dates of LibOCon Almeria

LibreOffice Conference 2019 will be hosted by the Spanish city of Almeria during the month of September, from September 11 (Wednesday) to September 13 (Friday).

On Tuesday, September 10, there will be the usual meetings of the community, to discuss topics of general interest for native language projects, such as localization, documentation, quality assurance, design and marketing.

Collateral events such as the social dinner and the hackfest, which are a tradition of the LibreOffice Schedule, have not yet been scheduled.

If you want to be regularly updated about LibOCon Almeria you can subscribe to the LibOCon Discussions Telegram group or the LibOCon Announcements Telegram channel.

by Italo Vignoli at February 13, 2019 01:17 AM

February 12, 2019

Michael Meeks

2019-02-12 Tuesday

  • Isolated my weird Galaxy S4 hanging / power-off state to it being inside the bumper. Wondered if its too tight fitting and presses power/volume buttons constantly; cut these out - and bingo, a stable phone. Nice.
  • Built ESC agenda, prodded applications, ferried babes and friends to different places. Learned more WordPress than I was hoping to until late.

February 12, 2019 09:00 PM

CIB News

CIB visiting FOSDEM 2019

A new edition of FOSDEM (Free and Open source Software Developers‘ European Meeting) just ended. Our CIB LibreOffice team this year was represented by Thorsten Behrens, Michael Stahl and Marina Latini. The event is held annually during the first weekend of February, at the „Université Libre de Bruxelles„. For our team, attending FOSDEM means to be … CIB visiting FOSDEM 2019 weiterlesen

Der Beitrag CIB visiting FOSDEM 2019 erschien zuerst auf CIB events.

by CIB Marketing at February 12, 2019 04:16 PM

Andreas Kainz

did tabbed toolbar waste space?

With the release of 6.2 I read a lot of comments on the different threads. Several issues are listed. One was that Ribbons waste vertical space.

Tabbed toolbar waste vertical space

With default settings the standard toolbar need 110 px vertical space (menubar + 2 toolbar height), tabbed toolbar need 100 px and groupedbar compact 72 px. So the default toolbar need most vertical space.

Toolbar_Vergleich

Difference in height (with GTK3 backend)

  • 110 px for standard toolbar need most vertical space cause the default icon size is 24px (large icons) and you have two toolbars and the menubar
  • 100 px for tabbed toolbar cause the default icon size is 16px (small) and you don’t need an menubar.
  • 72 px for groupedbar compact need the same vertical space than single toolbar.

Yes MSO Ribbons need a lot of vertical space, which is an issue on laptops. Therefore you can show the tabbs only. In LibreOffice we have different UI’s for different workflows, but also for different screen’s. For example on your 32 inch office screen you’d like to work with standard toolbar but on mobile you prefer tabbed compact toolbar (which will be released with 6.3).

On windows the difference between LibreOffice tabbed toolbare and MS Office ribbons is

94 px vs. 110 px

If you like my work, become a downloads_wordmark_white_on_coral2x.jpg

by kdeonlinux at February 12, 2019 11:54 AM

Official TDF Blog

Next C++ workshop: Recursion (14 February at 19:00 UTC)

Improve your C++ skills with the help of LibreOffice developers! We’re running regular workshops which focus on a specific topic, and are accompanied by a real-time IRC meeting. For the next one, the topics is recursion. Start by watching this presentation:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Then join us on 14 February, 2019 at 19:00 UTC for a discussion via our #libreoffice-dev IRC channel on Freenode. You can ask experienced LibreOffice developers questions, and learn more about the language. See you then!

by Mike Saunders at February 12, 2019 09:07 AM

February 11, 2019

Michael Meeks

2019-02-11 Monday

  • H. to Hills Road; missed it - calls with team; sync with Amir.
  • Worked through CVs at some length: we're trying to hire - for Libre/Collabora Office related bits: a Javascript Dev, a QA / DevOps / Build eng, and a Technical Writer. Added a number of more open-source experience style criteria to try to somewhat reduce the flow of applicants: encouraging.
  • H. returned early and worked, played some 'go' with her till she beat me.

February 11, 2019 09:00 PM

Official TDF Blog

Community Member Monday: Khaled Hosny

With LibreOffice 6.2 now available, we return to our regular chats with LibreOffice community members! Today we’re talking to Khaled Hosny, who is working on the software’s font handling and user interface…

To start with, tell us a bit about yourself!

I’m based in Cairo, Egypt. I use IRC but not very actively – my nick is KhaledHosny. I’m a bit active on Twitter as well. I’m also on GitHub (which, after all, is a social network of sorts): https://github.com/khaledhosny.

Outside of my work on LibreOffice, I’m also a localizer and typeface designer, both in a professional capacity and as a hobby. I’m also an avid reader, and an amateur calligrapher and artist.

Do you work for a LibreOffice-related company or just contribute in your spare time?

I contribute in my spare time mostly, but some of my work was sponsored by The Document Foundation.

How did you get involved with LibreOffice?

I was trying to fix some bugs with Arabic text layout in OpenOffice.org (the predecessor to LibreOffice) on Linux. It wasn’t the most pleasant experience, to say the least, and I never got to finish the fix I was working on. So, when I became aware of LibreOffice in early 2011, I switched immediately and was able to finish and submit my first patch, which got reviewed and accepted. I have been contributing to LibreOffice intermittently since then.

What areas of the project do you normally work on? Anything else you want to tackle?

I’m mostly interested in areas of text layout and font handling, especially for Arabic and other writing systems that require advanced text layout. I also sometimes work on UI issues affecting right-to-left writing systems, as well as layout of mathematical equations.

What was your initial experience of contributing to LibreOffice like?

That was over eight years ago, so my memory is fading away, but I remember that it was much better than working on OpenOffice.org, and the build system (even then) was much more pleasant to use. Also, I think my first patch was accepted without much friction and delay, which is not my experience with many other open source projects.

What does LibreOffice need most right now?

In my humble opinion, I think the project needs a clearer vision and development agenda. Right now things seem to be moving organically without much coordination, and every one is working on whatever interests them. I understand that such development organisation is not easy or even feasible in an open source development model and might not even be desirable, but maybe The Document Foundation should take a more active role in steering LibreOffice development.

Thanks to Khaled for his time, and contributions to LibreOffice! Our community would benefit from more help in translating the website and user interface into Arabic, so if you’re interested, start here!

by Mike Saunders at February 11, 2019 11:15 AM

February 10, 2019

Michael Meeks

2019-02-10 Sunday

  • All Saints, confirmation service: got confirmed by the Bishop; interesting. A fine shared lunch afterwards, nice biography of Ryle from Mary.
  • Home, relaxed, read some Vinge to the family; movie, bed.

February 10, 2019 09:00 PM

February 09, 2019

>Marius Popa Adrian

Pure Elixir database driver for Firebird

Pure Elixir database driver for Firebird https://github.com/nakagami/firebirdex

by Adrian Marius Popa (noreply@blogger.com) at February 09, 2019 02:49 PM

Firebird 4.0 Changed travis distribution used to Ubuntu xenial.

Firebird 4.0 is using Ubuntu xenial on travis . https://travis-ci.org/FirebirdSQL/firebird .travis.yml looks a lot simpler after this change.   ps: Here is official Travis CI announcement: Ubuntu Xenial 16.04 is available

by Adrian Marius Popa (noreply@blogger.com) at February 09, 2019 01:52 PM

Firebird 4.0 Built-in logical replication

Firebird 4.0 implemented Built-in logical replication is now merged Here is the pull request https://github.com/FirebirdSQL/firebird/pull/182 We know that is a long standing feature request Wow! @firebirdsql team implemented a feature that I asked 10+ years ago!https://t.co/tRrg9YvkWW"Built-in logical replication"Thank you guys.— Daniele Teti (@danieleteti) January 25, 2019

by Adrian Marius Popa (noreply@blogger.com) at February 09, 2019 01:20 PM

February 08, 2019

Rizal Muttaqin

A Summary of LibreOffice Karasa Jaga Icon Theme Works (For Upcoming 6.2 Release)

As we know, Karasa Jaga, an icon theme derived from the Oxygen theme successfully entered the last fresh release of LibreOffice (6.1) on August. Since its inception for the first time, Karasa Jaga has been very complete and can even be said to have nearly 5,000 icons, because it has exceeded the number of icons that Galaxy and Colibre have had since first entering Karasa Jaga already has extra large icon support (32px * 32px).

But the work did not stop there, there were many things that should be improved. Moreover, in the next 6.2 release there are so many new icons that should be made especially to support the Notebookbar Tab interface. In addition, the existing icons also need to be adjusted, plus I want to add more SVG support.

Now I would like to show you the improvements that have been landed to Karasa Jaga. Although in this period I was more preoccupied with improving the elementary icon theme, I did not leave the mandate to improve Karasa Jaga, just like I took care of my own child. :) I admit that for this period the improvement were not as massive as previously released, but significant enough to be discussed as well. Let's see side by side

LibreOffice Writer

Standard Toolbar

View Menu
Mail Merge Toolbar
Data Source

LibreOffice Calc

Standard Toolbar
Row Right Click Menu
Column Right Click Menu
Sheet Menu
Data Tab
Tool Tab

LibreOffice Impress
Standard Toolbar
Slide Transition


LibreOffice Draw
New Tab Interface

Shape Menu


Other Stuffs

Table Properties
Sidebar Component
Flip Action
Data Table

That's all, if you find something strange or want to request change, just file a bug to my github page or TDF Bugzilla.

by rizmut (noreply@blogger.com) at February 08, 2019 03:28 AM

February 07, 2019

Tamás Bunth

The new MySQL driver in LibreOffice

Base – the database editing program of LibreOffice – offers several features when it comes to external database connection. One interesting feature is that Base lets you connect to an external database not only with ODBC and JDBC but with native connectors too. Using the native connector instead of a standard like JDBC sometimes has a positive impact on performance.

Considering that MySQL is one of the most used database management systems worldwide it is clear that the support of connecting to a MySQL database is an unavoidable part of Base. Currently there are three ways supported to connect to a MySQL database: with ODBC, JDBC and using a native connector. However, the last option was only available as an extension, and it is the part of the core project only since November 2018.

Why was it only an extension at the first place? The native connection was implemented by using the C++ connector of MySQL, which is licensed under GPL. Because of that it could not be put into the core project. So what is the solution then?

Because of the above mentioned problem we, at Collabora decided to use the connector of MariaDB instead. MariaDB is a fork of MySQL which has the same database structure and indexes as MySQL. It has a C API which can be used to connect to MySQL and MariaDB databases too. What is more, the connector is LGPL licensed, which means that it can be used in the core project too. So the next task was to use this API to implement the sdbc driver.

Some parts of the implementation is pretty straightforward. It is pretty easy to create a connection and pass options through the function “mysql_options”. It was also clear to me how to pass things like user and password to the DBMS.

There were a few things though which were a bit more challenging. The XDatabaseMetadata interface for example – which is responsible for providing information about the current state and capabilities of the database – could not be implemented with only a few function calls. In order to implement them, I had to construct SQL queries for most of the methods. Database information are available in the schema called “INFORAMTION_SCHEMA”. That task took some time since the interface has more than a hundred methods which had to be implemented.

Another challenge was a bug about parallel execution of result sets. The C API does not support the usage of two result sets simultaneously, but the sdbc standard supports it. The solution was to store the result of a query and free the mysql resources afterwards. That way a new result set can be fetched with the C API while the previously fetched data is stored in memory.

Having the native MySQL connector in the core project has several advantages. First, it is easier for the user to install it. It is bundled with the core project, there is nothing to do there. Also, it improves maintainability, because it does not have to be maintained separately as an extension. For example the automatically triggered clang plugins do not run on extensions. It can easily happen With an extension that after a few releases it is not usable anymore, because of the lack of maintenance.

Besides that, in order to improve quality and maintainability I created a test suite to test the implementation of the sdbc driver of a MySQL database. This test suite does not run automatically with each build though. In order to test it, a running MySQL or MariaDB server is needed, so only manual execution of the test suite is supported. The test suite can be triggered with the same method as the other tests, but you have to declare an environment variable as well (CONNECTIVITY_TEST_MYSQL_DRIVER). The variable should store the URL of an available MySQL or MariaDB server. It should contain a user, a password, and a schema, which can be used to test the functionality of the driver.

Although a lot of things work now, there might be some bugs hidden. Feel free to test the driver if you like, file a bug and please CC me in Bugzilla if you found something interesting.

You can also take a look at my talk on FOSDEM about the MySQL connector and other improvements of Base.

by Bunth Tamás at February 07, 2019 06:21 PM

February 06, 2019

Andreas Mantke

Playing With The Plone 5.2 Theme Editor

I updated my local instance from the new Plone 5.2 with the latest changes, created a copy of the Barceloneta theme and made some edits on its styles. It worked as expected. I could view my changes directly. Great tool!

by Andreas Mantke at February 06, 2019 08:58 PM

LibreOffice QA Blog

QA Report: January 2019

General Activities

  1. LibreOffice 6.2 RC2 was announced on January 11
  2. A two days hackfest with 25 participants was held in Brussels right before FOSDEM 2019
  3. Justin Luth (Collabora) fixed some old DrawingLayer FillStyles regressions
  4. Amharic script now works with Fontwork. tdf#66054
  5. Performance of opening documents with embedded fonts was greatly improved by Mike Kaganski (Collabora).tdf#69060
  6. CIB and NISZ teams announced they use Miloš Šrámek’s interoperability tools
  7. Some paper format bugs were found to be fixed by the 2018 GSoC print dialog revamp work
  8. Jens Carl made over 60 commits related to the Java tests to C++ conversion effort
  9. Mark Robbinson created SVG icons for Math Help pages
  10. Bartosz Kosiorek improved EMF+ support with several commits
  11. Caolán McNamara fixed about 70 UI issues
  12. Noel Grandin made several dialogs asynchronous
  13. Jim Raykowski kept adding the new style background tab page to dialogs that were missing it. The work is nearly done after a ton of effort! tdf#105225
  14. Around 20 improvements to the KDE5 and Qt5 backends were made by Bubli (CIB), Aleksei Nikiforov (BaseALT), Jan-Marek Glogowski (Landeshauptstadt München) and Michael Weghorn
  15. Brian Fraser added support for drag’n’drop of multiple effects in animation pane
  16. Miklos Vajna (Collabora) continues working on smartArts improvements
  17. Help pages in Python Macro programming (Alain Romedenne, Olivier Hallot)
  18. The Online Help Editor (Olivier Hallot, Mike Saunders)
  19. Roman Kuznetsov wrote a new guide about Conditional Formatting
  20. Xisco Fauli was interviewed about LibreOffice 6.2 from the QA perspective
  21. LibreOffice works on Chromebooks
  22. Gülşah Köse (Collabora) wrote a nice post on how to build LibreOffice Viewer on Linux
  23. Zdeněk Crhonek added more than 10 UItests
  24. Balazs Varga continues fixing OOXML Chart bugs
  25. Muhammet Kara (Collabora) added a redaction toolbar

Reported Bugs

688 bugs have been reported by 351 people.

Top 10 Reporters

  1. Telesto ( 42 )
  2. NISZ LibreOffice Team ( 41 )
  3. Xisco Faulí ( 26 )
  4. Nicolas Christener ( 20 )
  5. ricky.tigg ( 19 )
  6. Cor Nouws ( 15 )
  7. Regina Henschel ( 11 )
  8. Aron Budea ( 11 )
  9. Gabor Kelemen ( 9 )
  10. Roman Kuznetsov ( 9 )

Triaged Bugs

709 bugs have been triaged by 71 people.

Top 10 Triagers

  1. Xisco Faulí ( 213 )
  2. durgapriyanka.arun ( 59 )
  3. Dieter Praas ( 51 )
  4. Buovjaga ( 42 )
  5. raal ( 41 )
  6. Oliver Brinzing ( 25 )
  7. Timur ( 24 )
  8. Heiko Tietze ( 22 )
  9. Alex Thurgood ( 21 )
  10. Aron Budea ( 19 )

Fixed Bugs

235 bugs have been fixed by 55 people.

Top 10 Fixers

  1. Caolán McNamara ( 58 )
  2. Justin Luth ( 14 )
  3. László Németh ( 9 )
  4. andreas kainz ( 9 )
  5. Xisco Fauli ( 8 )
  6. Julien Nabet ( 6 )
  7. Eike Rathke ( 6 )
  8. Mike Kaganski ( 5 )
  9. Bartosz Kosiorek ( 5 )
  10. Zdeněk Crhonek ( 4 )

List of critical bugs fixed

  1. tdf#122449 Crash in: mergedlo.dll when closing “Edit Index Entry” dialog (gen/gtk) ( Thanks to Zdeněk Crhonek )
  2. tdf#122722 Hiding characters will crash. Crash in: SwAttrIter::CtorInitAttrIter(SwTextNode &,SwScriptInfo &,SwTextFrame const *) ( Thanks to Zdeněk Crhonek )
  3. tdf#122997 Canceling Paragraph dialog causes crash (GTK3) ( Thanks to Noel Grandin )
  4. tdf#119126 Crash in: SwFrame::PrepareMake(OutputDevice *) ( Thanks to Caolán McNamara )
  5. tdf#122509 EDITING Calc crashes when manipulating Negative numbers in red on Currency ( not gtk3 ) ( Thanks to Eike Rathke )
  6. tdf#122383 Crash in: SvxConfigPage::InsertEntry(SvxConfigEntry *,SvTreeListEntry *,bool) ( Thanks to Muhammet Kara )

List of crashes fixed

  1. tdf#122912 Another CRASH: “Apply”->”Restart Now” if UI Langauge is changed in Tools->Options ( Thanks to Xisco Fauli )
  2. tdf#122273 CRASH while closing LibreOffice with the help not-installed dialog open ( Thanks to Caolán McNamara )
  3. tdf#123019 CRASH: GTK3: Closing a modified Form several times ( Thanks to Caolán McNamara )
  4. tdf#122308 Crash: closing LibreOffice while warning about signatures is open (gtk3) ( Thanks to Caolán McNamara )
  5. tdf#123077 gtk3_kde5, kde5: Crash when minimizing file save dialog ( Thanks to Michael Weghorn )
  6. tdf#122598 Crash when stop macro recording ( Thanks to Caolán McNamara )
  7. tdf#122977 CRASH: “Tools”->”Options” “LibreOfficeDev”->”Charts”->”Default Colors” ( Thanks to Zdeněk Crhonek )
  8. tdf#122250 Crash in: std::unique_ptr<long [0],std::default_delete >::~unique_ptr<long [0],std::default_delete >() ( Thanks to Noel Grandin )
  9. tdf#112215 LibreOffice crashes due to PPD file using CUPS ( Thanks to Caolán McNamara )
  10. tdf#123050 Crash in: salhelper::Thread::run'::1′::catch$1, installing theme ( Thanks to Xisco Fauli )
  11. tdf#122253 KDE5: Crash closing full screen mode ( Thanks to Aleksei Nikiforov )
  12. tdf#122990 Crash after trying to switch to Notebookbar (GTK3) ( Thanks to Julien Nabet )
  13. tdf#122931 CRASH: GTK3: Closing Bullet and Numbering Dialog after showing the graphics gallery ( Thanks to Caolán McNamara )
  14. tdf#122597 CRASH: all chart dialogs crash if LibreOffice is closed while they are open (gen/gtk2) ( Thanks to Caolán McNamara )
  15. tdf#122711 CRASH: exporting a signed PDF ( Thanks to Caolán McNamara )
  16. tdf#122808 CRASH while closing LibreOffice with Search for formatting dialog open ( gen/gtk ) ( Thanks to Caolán McNamara )
  17. tdf#122611 Crash in: SvTreeList::Select(SvListView *,SvTreeListEntry *,bool) ( Thanks to Caolán McNamara )
  18. tdf#122410 Crash in anonymous namespace’::RetrieveTypeFromResourceURL ( Thanks to Muhammet Kara )
  19. tdf#122846 CRASH: Clicking “Restart Now” after “Use OpenGL for all rendering”->”Apply” in Options Dialog ( Thanks to Xisco Fauli )
  20. tdf#122885 Crash when converting tdf#122811 file to Firebird ( Thanks to Julien Nabet )

List of old bugs ( more than 4 years old ) fixed

  1. tdf#35152 fontwork cursor problem: there already is cursor, but we need click additionaly ( Thanks to Caolán McNamara )
  2. tdf#43220 UI: The Navigation Toolbox (top left of Navigator dialog) in Writer can incorrectly launch multiple instances ( Thanks to Caolán McNamara )
  3. tdf#52391 EDITING: “Record/track changes”: Rejected changes in character attributes are accepted instead of rejected ( Thanks to László Németh )
  4. tdf#38328 Find & replace dialogue doesn’t open through Ctrl+H (former Ctrl+Alt+F) if cursor is in Find bar ( Thanks to Mike Kaganski )
  5. tdf#69060 FILEOPEN: Documents with embedded fonts take too long to open ( Thanks to Mike Kaganski )
  6. tdf#72187 FILESAVE: edit filter settings checkbox disabled for a CSV file in the KDE “Save As dialog” ( Thanks to Jan-Marek Glogowski )
  7. tdf#79197 Unable to add track change comment when cursor is at the end of the tracked change ( Thanks to László Németh )

Verified bug fixes

138 bugs have been verified by 15 people.

Top 10 Verifiers

  1. Xisco Faulí ( 72 )
  2. BogdanB ( 37 )
  3. Vera Blagoveschenskaya ( 11 )
  4. Buovjaga ( 6 )
  5. Mike Kaganski ( 2 )
  6. Michael Weghorn ( 2 )
  7. Andras Timar ( 1 )
  8. Gabor Kelemen ( 1 )
  9. baffclan ( 1 )
  10. Aleksei Nikiforov ( 1 )

Categorized Bugs

918 bugs have been categorized with a metabug by 35 people.

Top 10 Categorizers

  1. Roman Kuznetsov ( 644 )
  2. Dieter Praas ( 61 )
  3. Thomas Lendo ( 44 )
  4. Aron Budea ( 27 )
  5. Xisco Faulí ( 24 )
  6. Gabor Kelemen ( 17 )
  7. Buovjaga ( 16 )
  8. NISZ LibreOffice Team ( 13 )
  9. Telesto ( 10 )
  10. V Stuart Foote ( 9 )

Regression Bugs

160 bugs have been set as regressions by 23 people.

Top 10

  1. Xisco Faulí ( 54 )
  2. raal ( 19 )
  3. Cor Nouws ( 14 )
  4. Buovjaga ( 12 )
  5. Telesto ( 11 )
  6. Roman Kuznetsov ( 10 )
  7. Timur ( 8 )
  8. Alex Thurgood ( 6 )
  9. Dieter Praas ( 4 )
  10. Robert Großkopf ( 3 )

Bisected Bugs

131 bugs have been bisected by 13 people.

Top 10 Bisecters

  1. Xisco Faulí ( 67 )
  2. raal ( 28 )
  3. Buovjaga ( 11 )
  4. Aron Budea ( 8 )
  5. Terrence Enger ( 4 )
  6. Telesto ( 4 )
  7. Roman Kuznetsov ( 2 )
  8. Oliver Brinzing ( 2 )
  9. Michael Weghorn ( 1 )
  10. Alex ARNAUD ( 1 )

Evolution of Unconfirmed Bugs

Check the current list of unconfirmed bugs here

Evolution of Open Regressions

Check the current list of open regressions here

Evolution of Open bibisectRequests

Check the current list of open bibisectrequests here

Evolution of Highest Priority Bugs

Check the current list of highest priority bugs here

Evolution of High Priority Bugs

Check the current list of high priority bugs here

Thank you all for making Libreoffice rock!
Join us and help to keep LibreOffice super reliable!
Check the Get Involved page out now!

The post QA Report: January 2019 appeared first on LibreOffice QA Blog.

by x1sc0 at February 06, 2019 04:06 PM

>Marius Popa Adrian

Max Transaction ID in Firebird

Firebird 3.0.x introduced 48-bit internal transaction IDs that are publicly (via API and MON$ tables) represented as 64-bit numbers. This makes the new limit roughly equal to 2.8*10^14 transactions, later it could be extended up to the 2^63 limit. Related notice in Firebird 3.0.x release notes.Related article about Posgtresql : How long will a 64 bit Transaction-ID last in PostgreSQL?

by Adrian Marius Popa (noreply@blogger.com) at February 06, 2019 03:16 AM

February 05, 2019

Andreas Kainz

LibreOffice 6.3 and Sifr

Tomorrow LibreOffice 6.2 will be released. Time to give you some information what will come in LibreOffice 6.3.

My work in process is an huge update of the sifr icon theme

SifrThemeUpdte

Sifr icon theme todo:

  1. Make Sifr SVG ready
    Draw some thousands new svg icons.
  2. Redraw icons to have an unique design
    All icons should use an 2px wide line. Make all lines grid align so blur will be reduced as much as possible.
  3. Finish Sifr
    A lot of icons are missing in Sifr which will be added.

If you like my work, become a downloads_wordmark_white_on_coral2x.jpg

by kdeonlinux at February 05, 2019 10:19 PM

February 04, 2019

Miklos Vajna

Improving SmartArt import in Impress FOSDEM talk

(via cor4office)

The next step in the recent SmartArt story is my Improving SmartArt import in Impress talk at FOSDEM 2019, in the Open Document Editors devroom. The room was a bit far away from the popular places, but the livestream worked out nicely.

There was also a hackfest before the conference, I looked at RTF export of rotated Writer pictures.

February 04, 2019 09:00 AM

Mike Kaganski

Microsoft deprecates MSI

Well – obviously. At least, their current actions tell that: they deprecated CRT MSMs (which is reiterated in VS 2019 RC2 release notes), a technology designed to allow MSI-based installers to install the CRT libraries in a centrally-managed manner; and the only recommended way now is using vcredist executable, which is not MSI-compatible.

What else, if not deprecation, might it mean, when an installer technology made unable to deploy applications created using vendor’s own flagship development tool?

Well – I thought: maybe that was an oversight? Why not inform them about the problem that MSI-only installers would be left without any viable option?

So I did. And I got the answer that to me was a clear confirmation:

Sorry that our current plan is like this, if there are a lot of customer complain about this new change, we will revisit this issue

So – “yes, our plan is to make it impossible for MSI; this is not a problem in our eyes; only if we will experience pressure, may we re-think about it”.

Sad.

by mikekaganski at February 04, 2019 06:27 AM

February 03, 2019

Replace libtool, turn full GNU Make?

Replace libtool, turn full GNU Make? Every once in a while I start pondering ways to get rid of the slowness and overwhelming complexity of the autotools machinery, in particular autoconf and libtool. GNU Make has been a great companion for 20 years, and automake helps with some of the complexity in…

February 03, 2019 02:02 AM

February 01, 2019

Andreas Mantke

Worked Through The Plone Volto Training Documentation

I worked with the training documentation for the Plone Volto framework and played a bit with the different components. This helps to get some entry level knowledge of the framework that is based on the JavaScript React framework.

I expanded the buildout from the Volto Github repository with one of my former Plone addons: tdf.extensionuploadcenter and added a new default view for it inside my own Volto app. I use this new view to improve my knowledge on Volto.

by Andreas Mantke at February 01, 2019 09:58 PM

LibreOffice QA Blog

LibreOffice 6.2 RC3 is ready for testing

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.2 RC3 is ready for testing!

LibreOffice 6.2 will be released as final in a week from now and LibreOffice 6.2 RC3 represents the last pre-release before the final release since the development of version 6.2 started in mid May, 2018. See the release plan for more information.
You can find the list of bugs fixed in this pre-release here and the list of new features included in LibreOffice 6.2 in the release notes.

LibreOffice 6.2 RC3 is already available for downloaded in this link, for Linux, MacOS and Windows.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ).

For help, you can contact the QA Team directly in the QA IRC channel or via Telegram.

Happy testing!!

The post LibreOffice 6.2 RC3 is ready for testing appeared first on LibreOffice QA Blog.

by x1sc0 at February 01, 2019 07:29 AM

January 31, 2019

LibreOffice Design Blog

Overwrite on macOS

The keyboard layout on Apple computers is special and some keys are missing. For example there is no Insert key to toggle between insert and overtype. LibreOffice supports the function and you can switch by clicking the respective panel on the status bar.…

The post Overwrite on macOS appeared first on LibreOffice Design Team.

by Heiko Tietze at January 31, 2019 11:31 AM

January 29, 2019

Björn Michaelsen

The saga begins …

Oh, the Council was impressed, of course
Could he bring balance to the Force?

— The Saga Begins, Weird Al Yankovic

As you might have seen, we have now run four C++ sessions to get started with C++ and LibreOffice development. The origin of this actually happened already at the last LibreOffice Hackfest in Munich where Izabela, Mike, Anxhelo and me conspired on the idea. We also started to recruit LibreOffice developers as mentors right there and Xisco joined us soon.

As the lectures discuss the basics of data structures and C++ I started to create some patches against LibreOffice to show how to start with simple things in the LibreOffice build based on the examples from the lecture, but in the environment of LibreOffice and with some of its framework and conventions:

Some background and discussion about these can be found in the videos linked in the commit messages of these and on the C++ lectures wiki page. I hope these small examples are helpful to someone starting with C++ and LibreOffice even if you might have missed the first C++ lecture sesssions.

Why am I posting this? Now? Well, tomorrow the LibreOffice FOSDEM 2019 Hackfest starts in Bruessls. As you can see from the above, awesome things often take off there! You dont have to take my word for it: Izabela and Anxhelo wrote about their experiences too! If reading their report (or the story about how the lectures started) make you curious, please feel invited to join us in Bruessels at FOSDEM — or if you cant make that, the next Hackfest!

by bmichaelsen at January 29, 2019 08:47 PM

January 28, 2019

Mike Kaganski

To Tame a Writer

This is the title of a book I enjoyed reading, written by one of our valuable contributors – thank you RGB!

by mikekaganski at January 28, 2019 09:21 PM

January 24, 2019

Stephan Bergmann

LibreOffice on Chromebooks

Until recently, Chromebooks could browse the Web and run dedicated ChromeOS and Android applications, and that was that. But things are changing now since Google announced Crostini, a technology to run arbitrary Linux applications on ChromeOS.

What you get, in short, is a Linux distribution running in a virtual machine. It is sandboxed, but with some channels set up between the virtual machine and the surrounding ChromeOS, so that e.g., icons of applications installed in the Linux VM show up in the ChromeOS launcher, and windows opened from within the VM are integrated with the overall ChromeOS desktop.

The default Linux distribution provided by Google is a Debian 9, and one should be able to also plug other flavours of Linux, at least in theory. But we can install applications as flatpaks there, at which point the exact Linux distribution becomes rather irrelevant, anyway.

How to set up your Chromebook to install flapaks is detailed elsewhere, so just follow those instructions. You can then browse flathub for the applications of your choice. But when you click on the “install” button for an app, things start to get a bit rough. The ChromeOS browser downloads a .flatpakref file, but doesn’t know what to do with it, so stores it in the Downloads folder. The Linux VM can’t see it there (thanks to the sandboxing around that VM), so you first need to use the Files app to copy the .flatpakref file from “Downloads” to “Linux files”. The latter is just the home directory of the Linux VM user, so when you switch to the Terminal app (which provides you with a shell for that Linux VM user), you can type flatpak install .flatpakref to finally install the application.

But there is also a more polished solution that doesn’t require falling back to the flatpak command line: Just go back one more time to the Terminal shell to install GNOME Software in the Linux VM, sudo apt install gnome-software gnome-software-plugin-flatpak. Then you can run the Software application from the ChromeOS launcher (it may hide in a “Linux apps” collection). Search for LibreOffice, install it, launch it, and enjoy.

by stbergmann at January 24, 2019 11:28 AM