Since my last update, I have (1) Fixed the parent printing issue when logging keys - Gerrit #55675 (2) Made an interpreter for log statements - Gerrit #56120 (3) Changed some log statements - Gerrit #56305
About the interpreter -
The purpose of printing the log statements in a DSL is mainly to be able to interpret these log statements. The interpreter is written in python and is available at core/uitest/loginterpreter.py
The interpreter takes a log file as its input and outputs a python file which will act as a test case. It starts to read the log file line-by-line. Some events span two lines in log files, and others one. The first major task is done by the function get_coupling_type() which tells the interpreter whether the event being currently read spans over one line or two. Accordingly, either get_test_line_from_one_log_line() or get_test_line_from_two_log_lines() gets called. The interpreter then creates a python object corresponding to the UI element on which the action was performed. Finally, it calls a method from the created python object to actually perform the action. More information about the interpreter is in the commit message.
Coming up next -
After Gerrit change #56305, all the log statements are now in the appropriate DSL. The next task is to ensure their proper support. I will be working on the functions in the interpreter to support more types of log statements. After this, I will resume working on different UI wrapper classes.
Here's what the native GTK widget mode for the color picker looks like at the moment under Wayland. A GtkMenuButton displaying a color preview of the currently selected color and a GtkPopover containing the color selection widgetry.
While under X, because there the GtkPopover is constrained to its parents size, falling back to using a GtkWindow to contain the widgetry
Berlin, June 22, 2018 – The Document Foundation (TDF) announces LibreOffice 6.0.5, which still represents the bleeding edge in terms of features – and as such is targeted at early adopters, tech-savvy and power users – but is also ready for mainstream users and enterprise deployments.
TDF recommends deploying LibreOffice in production environments with the backing of certified professionals, providing development, migration and training support (an updated list is available at https://www.libreoffice.org/get-help/professional-support/). This is extremely important for the growth of the LibreOffice ecosystem.
LibreOffice users, free software advocates and community members can support The Document Foundation with a donation at https://www.libreoffice.org/donate/. Donations help TDF to maintain its infrastructure, share knowledge, and fund the presence of volunteers at events like the LibreOffice Conference, where they can meet with free software advocates coming from all over the world (https://www.libocon.org/).
Last week I wrote a quite long help page on a poorly known feature of LibreOffice aimed to Basic macro programmers.
LibreOffice - since it was named OpenOffice.org long time ago - carried a set of Basic libraries with no documentation (that I was able to find). The libraries were created to support some important features such as Euro conversion or WikiEditor, but also had a set of modules and macro very handy for the ad-hoc or professional Basic programmer of LibreOffice.
The library is distributed in the LibreOffice installers and can be opened in the LibreOffice Macros container, accessible when opening the Basic IDE.
I got fond of the TOOLS library because it has many handy macros that otherwise requires quite a lot of hard code writing and LibreOffice API knowledge even for simple operations.
Things like getting the last used row in a spreadsheet, get the value of a cell, get the filename out of a long URI are the kind of Function's and Sub's we don't want to write again but use GetLastUsedRow, GetValueofCellbyName or FileNameoutofPath for the task.
To use the LibreOffice Tools library , add the statement
Donations to The Document Foundation are used for many purposes, such as organising events, maintaining our infrastructure, and paying a small team to handle QA, marketing, documentation and other tasks. But donations are also used to fund tenders, whereby companies and individuals improve LibreOffice in specific areas and share knowledge with the community.
One such tender was posted in May 2017: “improve image handling in LibreOffice (#201705-01)“. When images are used in LibreOffice documents, the software manages them in a “life-cycle” which includes importing, displaying, modifying, exporting and more. To save memory – especially with large documents – images that are not currently on screen are sometimes moved out of memory and saved onto disk in a technique known as “swapping” or “paging”. The goal of the tender was to improve LibreOffice in these areas, making it more efficient at handling images and modernising the code base.
Collabora was selected to implement the tender; the work is now complete, and it will benefit all users in the upcoming LibreOffice 6.1 (due to be released in early August). Here are some technical notes about what was improved in the source code of LibreOffice, and what was achieved.
Problems with the image life-cycle
Currently, when an image is read from a document, a GraphicObject is created for the image and handled over to the GraphicManager which manages the life-cycle. When this happens we usually get back the string based unique ID of the GraphicObject with which we can always get access the image by creating a new GraphicObject with the unique ID (GraphicManager will look for the image with that unique ID).
Usually the unique ID is the one that is passed on between layers in LibreOffice (for example, from the ODF filter when loaded, to the model, where it is manipulated and then to the OOXML filter when saving) but the unique ID itself is just a “reference” to the image and by itself it doesn’t have any control over when the image can safely be removed and when not. It could happen that in a certain situation we would still have the unique ID referenced somewhere in the model, but the image would already be removed. This is dangerous and needs to be changed.
Usually for this kind of object we use a reference counting technique, where we pass an object around that holds a reference to the object resource. When the object is created, the reference count is increased; when destroyed, the reference count is decreased; when the reference count reaches zero, the resource object is destroyed.
The solution for the life-cycle
So instead of passing around a unique ID, the idea is to use the usual reference counting technique, which is normally used in this situation. The GraphicObject is mainly a wrapper around Graphic (which then holds a pixel-based image, or animated image, or possibly a vector image), and in addition it keeps additional attributes (gamma, crop, transparency etc.). It also has the implementation of swapping-in and out.
On the other hand, Graphic is properly reference-counted already (Graphic objects are reference counting the private ImpGraphic) so the solution to the life-cycle problem is that instead of GraphicObject unique ID, we would just pass along the Graphic object instead, or XGraphic, XBitmap which are just UNO wrappers around Graphic. Potentially we could also pass along the GraphicObject or XGraphicObject (UNO wrapper for the GraphicObject) when we would need to take into account the graphic attributes too. This should make the life-cycle much more manageable.
GraphicObject and the implementation of XGraphicObject (UnoGraphicObject) and XGraphic (UnoGraphic) were located in module svtools, which is hierarchically above vcl. This is problematic when creating new instances like in Graphic.GetXGraphic method, which needs to bend backward to make it even work (ugly hack by sending the pointer value as URL string to GraphicProvider). The solution to this is to move all GraphicObject related things to vcl, which surprisingly didn’t cause a lot problem and once done, it looks like a much more “natural” place.
Managing memory used by images
Previously, the memory managing was done on the level of GraphicObjects, where a GraphicManager and Graphic-Cache were responsible to create new instances from uniqueID and manage the memory usage that GraphicObject take. Here’s the hierarchy before refactoring:
This is not possible anymore as we don’t operate with uniqueIDs anymore, but always use Graphic and XGraphic objects (in UNO), so we need to manage the creation of Graphic object or more precisely – ImpGraphic (Graphic objects are just reference-counted objects of ImpGraphic).
So to make this possible GraphicManager and GraphicCache need to be decoupled and removed from GraphicObject and a new manager needs to be introduced between Graphic and ImpGraphic, where the manager controls the creation and accounts for the memory usage:
Graphic swapping and swapping strategy
The new swapping strategy is relatively simple – if a lot of memory is needed by graphic objects in a certain time, we let it use it and don’t try to over-aggressively try to free it. In the past this cased swap-out and swap-in cycle that made the application completely unusable. In the future, external hints when a certain Graphic object can be swapped out may be added, so we can perform swapping more effectively. There are also several other ideas which will increase performance and reduce memory usage that can be implemented now with the new hierarchy where most all of the swapping is contained inside the Graphic itself, but all of this is currently out of the scope of this work.
Thanks to Collabora and TomaĹž Vajngerl for their work on this. Although the details are highly technical, the end result is a faster and more robust office suite. If you’re an end user of LibreOffice and your documents include lots of images, you will be able to enjoy the benefits of this work in future releases, starting with LibreOffice 6.1.
LibreOffice get new app icons. The style is the same than before cause I love the existing work. So in general it’s only a more flat app icon set cause it fit’s now better into the design language of the operation systems and desktop environmental.
As I don’t have OS-X it would be very helpful if someone can generate the (38) .icns icon files. All files are available in svg and png.
With free and open source software, you get back control â€“ over your software, your data, and your computer as a whole. And in the LibreOffice community, we strive to create the best user experience, but we also recognise that different users have different requirements.
To this end, LibreOffice includes three main user interface designs, accessible via View > Toolbar Layout in the menu. Let’s go through them…
The first layout, Default, is what you see when you first install LibreOffice:
Then there is the single mode, which opts for simplicity and minimalism, giving you more screen space to really focus on your content:
And finally, the third option is the sidebar, which uses horizontal space to provide buttons and options for your work:
So LibreOffice gives you the freedom and flexibility to choose the right interface for you. But we’re not finished yet! Our design community is working on the Notebookbar, another (optional) user interface:
It’s still experimental, but you can try it out and help us to improve it, so that we can polish it up and include it in future releases! Join our design community to provide feedback â€“ and thank you!
I worked very hard on the new Plone buildout for the ODFAuthors website during the last days. I nearly finished the buildout today. I created a new policy and a theming product for the site. I added a template for the frontpage of the new website and am waiting for the input about the content, that the new frontpage should show.
I also need some suggestions on the new publication workflow of the site. The Plone workflow tool is able to run very subtle grained ones. The Plone Content Management System is also able to send automatic messages on all events like changing the workflow state.
Last week was the week of evaluation with minor fixes in the code I submitted.
I got information about the Coverity error in my submitted patch “Corrected Line Algorithm” : “*** CID 1436015: Code maintainability issues (UNUSED_VALUE)”.
I’ve fixed that in this week. Moreover, child width and height doesn’t depend on nIncX and nIncY, so I’ve removed that code, it relates only to the position of the child. I’ve submitted the patch with the name “coverity#1436015 UNUSED_VALUE” and it has been merged.
There is no such significant change in the rendering of the smartart but it was important for future changes.
I have also submitted the unit test for the Line Algorithm which asserts the position of the child nodes as well as it asserts that the child nodes are in the same horizontal level.
I’ll submit more unit tests in the coming week with some major changes in the smartarts, and will be adding the test documents to test the rendering of the shapes.
P.S. I passed my first evaluation. Thanks to the whole community.
I installed the latest OpenSUSE Leap distribution to a notebook. The installation tooks about half an hour and the new KDE Plasma desktop looks very well. It’s always easy and fast to install a new Linux distro these days. If I would have tried to do the same with a current MS Windows on the same machine, I wouldn’t have finished yet (but not sure, if the machine would be able to run a current version).
Well, lately the TDF Wiki Admins luckily hadn’t much to do, but well I still do want to provide some statistics as the results are very impressive.
Our activated “abuse filter” has caughtÂ 2214Â edits in the the time from 26 March 2018 to 12 June 2018 (so within 78 days) done by 1244 users. Be careful in interpreting the data as after many weeks the spammer detected the problem and tried to hit enter multiple times but with a new session (so all the accounts do not get blocked, part 2 of the rule was never hit except one false positive and by one of my test accounts!).
For a very short test in the night this filter seems very successful at the moment at least for my nerves for the last 3 months. Finger crossed that this stays so in our wiki (and of course all other platforms we provide – if they have spam problems, I do not know, except nabble)!
Some manually work still include 9 classical spammers (so it seems somebody other) who tried to post something in the “main space” / “article space” which we need to block and delete manually, but in 78 days this were only 9 times!!! That’s admin work as I love it: concentrate on the content, not fighting spam!
To mention: another abuse filter which hits much more the false positive, but is alive since ages has protected us from another 5 edits by 4 users from spam. This is ok, as the warning was reworked to make it more clearly what we do want and that most regular users also got excluded finally…
Put up tent in the garden for E's birthday sleepover; out
into town to play at the Bill Tutt memorial - onto All Saints for
a free out-door barbeque for the community - chatted to lots of
Home, dealt with six small, post-swimming girls at a party;
got a movie on for them; tried to wrestle them to bed and calm them
down in a tent; nearly got there - but eventually defeated by the
sheer excitement of it (and ultimately fear of the dark). Not much
Mail, sync with Kendy, mail; finally a bit of hacking -
somewhat frustrated by needing python 3.6 - but not being able to
install it without breaking / removing half my distribution; hmm -
not optimal. Minimally implemented client websocket masking.
At FOSS Backstage 2018 in Berlin I had the opportunity to give a talk about “The Document Foundation: The open, transparent and meritocratic future of free office software”. I’ll tell you what The Document Foundation is about, how it’s built and what our core values and principles are.
If so, and you haven’t contacted us yet, email firstname.lastname@example.org with your name (or username) from the wiki page, along with your postal address, and we’ll send you a bunch of stickers for your laptop, PC and other devices!
(Note: we will only use your postal address to send the stickers. No data will be transferred to third parties, and your address will be deleted as soon as the stickers are posted.)
This presentation was recorded at GOTO Chicago 2018
C++ is an old language only used by the unfortunate few that absolutely have to, right? Wrong!
C++ is not the language it used to be: clunky, error-prone and lacking in tooling. A lot has changed in the last decade: three new language revisions, new compilers and all-new: [...]
Download slides and read the full abstract here:
The Document Foundation reminds all members and contributors to submit talks, lectures and workshops for this year’s conference in Tirana (Albania). The event is scheduled for late September, from Wednesday 26 to Friday 28. Proposals should be filed by June 30, 2018, to be considered for inclusion in the conference program, so there are only 20 days left before the deadline.
The conference program will be based on the following tracks:
a) Development, APIs, Extensions, Future Technology
b) Quality Assurance
c) Localization, Documentation and Native Language Projects
d) Appealing LibreOffice: Ease of Use, Design and Accessibility
e) Open Document Format, Document Liberation and Interoperability
f) Advocating, Promoting, Marketing LibreOffice
Enterprise Deployments and Migrations, Certifications and Best Practices, Building a successful business around LibreOffice
Roundtable with company representatives: enterprises, governments and non-profits
Presentations, case studies, workshops, and technical talks will discuss a subject in depth and will last 30 minutes (including Q&A). Lightning talks will cover a specific topic and will last 5 minutes (including Q&A). Sessions will be streamed live and recorded for download.
Please send a short description/bio of yourself as well as your talk/workshop proposal to the program committee address: email@example.com
If you do not agree to provide the data for the talk under the “Creative Commons Attribution-Share Alike 4.0 License”, please explicitly state your terms. In order to make your presentation available on TDF YouTube channel, please do not submit talks containing copyrighted material (music, pictures, etc.).
If you want to give multiple talks, please send a separate email for each.
This week involved completing the UI wrapper classes for combo-box and tab-control. The code can be found here.
I have proposed two ways for logging actions for the main LibreOffice writer window. The first one is by writing separate logger for the LibreOffice writer analogous to the VCL logger. The patch is here. The second is by simply sending log statements when the functions for "Go to Page" or "Zoom" are called. The patch is here. Of course, we will push only one of these two patches to master after the code review.
I worked on an update of my new Plone environment to the current version 5.1.x today. I had to add and edit some files to my git repository. I got a successful local build first. I added a travis.yml file to the repository and enabled the building process on Travis. It needed some further edits but in the end it builds on Travis too and the new development buildout for an updated odfauthors site showed a green button.
I worked on the first bits for a new Plone development environment. I’ll use this to create a new website for the ODFAuthors team. The new site should run on Plone 5.1 or later. Maybe it is possible to upgrade the site to a Plone version that runs on Python 3.
I read already on a blog of a Plone developer that Core-Plone is already ported to Python 3, but that there are a big bunch of tests that are not yet ported and need some love (and work time).
I’ve learnt a lot this month and have solved issues regarding smartart import.
I started by adding the number of Microsoft Powerpoint 2007 test documents which were unable to load correctly in LibreOffice and pushing them.
Later on, I worked on Snake algorithm and first, I corrected Snake algorithm as it was not able to render the diagrams properly and then implementing the support to the same Direction and Reverse Direction. The algorithm works quite well. Now it displays correct position of child layout nodes along a linear path in two dimensions, with the correct number of rows and columns and aspect ratio, this algorithm is for smartarts like Basic Block List — grouped blocks of information. It also specifies the behaviour of the direction that additional nodes are added to new rows or columns in the snake algorithm.
I then changed my concentration to Line algorithm as it was also incorrectly rendered, I fixed the aspect ratio related problem, earlier it displayed odd height of the children nodes as compared to their width.
I have added the unit test for Line algorithm in that, TestMaxDepth test checks the linear (lin) algorithm such that it arranges child layout nodes along a linear path.
Present Week Work
I’ve added support to autoTxRot parameter in Text algorithm it specifies how text is oriented relative to the shape, according to values: none, upright(default) and gravity.
I’ve changed just a bit in upright value as it rotates the text negative to the rotation of the shape.
For autoTxRot: I’ll be creating a document that shows the various possibilities of the rotation, and a unit test that asserts that they are fine after the patch (and fail without it) — in a follow-up commit.
For Line Algorithm: will be creating a unit test that asserts that the shapes are at the same positions as in PowerPoint.
Test Documents: Adding more test documents to test the features of the shapes.
For Snake Algorithm: Adding unit tests for these changes & also for the revDir and sameDir.
There is a lot of work in improvement like rendering of pyramid shapes. I’ll be fixing more issues in the next month.
P.S. Please read my previous blog for project description and week-wise report.
There are so many smartarts which require proper rendering in LibreOffice and hence, I started with Snake Algorithm which is for basic block List.
Here is the layout which LibreOffice render.
As it is clear the number of rows and columns were different from the Microsoft office designed layout as well as the last node position also differ from the original. I made some changes which fix this issue and I am happy to see the results.
I have corrected the Snake Algorithm: Now it displays correct position of child layout nodes along a linear path in two dimensions, with the correct number of rows and columns and aspect ratio, this algorithm is for smartarts like Basic Block List — grouped blocks of information. It also specifies the behaviour of the direction that additional nodes are added to new rows or columns in the snake algorithm.
I have implemented for the same Direction and submitted it, waiting for the review:
To Do: If this patch got merged then, in the upcoming week I’ll be implementing this algorithm for the reverse direction:
I have learnt a lot, thanks to the whole community. I’ll be fixing more issues in the upcoming week.
The perception of an organization most often differs between people who are members of the inner circle and the public (public area of the organization). As a member of the inner circle oneself may have a belief about this view from 10 thousend feet hight, but that’s often only an idea. So am I.
If you are inside the inner circle you get a lot of messages, take place in discussions and had to decide on some topics. You share the impression that the leading body of your organization is always busy and take action for the organizations good.
I left the inner circle (due to no further candidacy) some month ago and got a different view now. I gotÂ – like others in the (organization) public – only little or no information about the work of the bodies of the organization (not even about the next meeting time etc. of the leading body).Â This opens my eyes and I’m able to comphrehend the view of other project members much better now. Thus I’m very happy that I took the decision to not stand for a candidacy again. It’s always good to change your view, thus you could understand the other position (view).
From now on you need the newest updater JAR. I hate that this happened…Â Updater download
Bottom line: The main application is no longer a ZIP, which needs to be extracted. From now one it is a JAR file, which can be started by a double click…. Therefore the updater procedure had to be changed.
I am sorry for this change, but I am quite sure that should not happen too often ( I do not want to say “should not happen again”, but I would not know a reason to change that again…)
Writer already supported XHTML import and export before (see my
previous post) as a special
mode of the HTML filter, this work builds on top of that. The main speciality
around XHTML as used for fragments inside a ReqIF file is embedded objects.
The special mode to opt-in for ReqIF-XHTML behavior can actived like this:
during import: --infilter="HTML (StarWriter):xhtmlns=reqif-xhtml"
during export: -convert-to "xhtml:HTML (StarWriter):xhtmlns=reqif-xhtml"
Three different cases are handled:
Image with native data we don’t understand and just preserve.
Image with OLE2 data, which we hand out to external applications (at least
on Windows). On the above video this is an embedded PPSX file, handled by PowerPoint.
Image with ODF data, which we handle internally. This is a Draw document on the above video.
Regarding how it works, the import is a series of unwrapping containers till
you get to the real data and the export is the opposite of this. Here are the layers:
Larger ReqIF files have the .reqifz extension, and are ZIP files
containing an XML file, having the XHTML fragments. This is not relevant for
this post, as Writer assumes that extracting the XHTML fragment from ReqIF is
done before you load the content into Writer.
XHTML always has a PNG image for the object, and optionally it has RTF as
native data for the object.
The RTF file is a fragment, containing just an embedded OLE1 container.
The OLE1 container is just a wrapper around the real OLE2 container.
The OLE2 container either has the data directly or MSO has a convention on
how to include OOXML files in it (see the PPSX example above), and we handle
On export we do the opposite: save the file, put it into OLE2, then into OLE1,
then into RTF, finally into XHTML.
There is no specification on how to put ODF files into OLE2, so I extracted
the relevant code from LibreOffice’s binary MSO filters and now the Writer
HTML filter uses that as well. This avoids code duplication and also could
avoid inventing some new markup this way.
All this is available in master (towards LibreOffice 6.2), or you can grab a
daily build and try it out
right now. :-)
This week started with extending the UI logging infrastructure for logging list-box related events. The events ListboxSelect and ListboxFocus will now be recorded in the log file. Here's the patch.
Next, I started to develop logging framework for LibreOffice's writer. The idea is to enumerate the events we need for logging and then have a logger similar to what we have for VCL events. The code can be found here. The patch is under review.
Week 2 of the GSoC coding period is completed successfully. I have been successful in upgrading the existing Smartart Algorithm.
In Week 1 and 2, I added new methods to Snake Algorithm which is for Basic Block list smartart types. Please Click here if you want to read the previous Blog.
This Week I started with Line Algorithm which displays odd ratio of height and width.
Changed some code so that Smartart displays Satisfying height to width ratio, will improve height to width ratio if asked by mentors.
I’ve written a unit test for Line Algorithm, particularly for Smartart MaxDepth, such that the child spreads across the x-axis.
Last Week, I mentioned about adding some new Style to Snake Algorithm with reverse Direction.
When we pass reverse Direction(revDir) parameter in the code it should behave as mentioned above, but it was not implemented until now. I’ve added support to this feature as the child nodes will be displayed in the snake manner described above. Please see the below image for a more clear idea.
‘Test’ is the first node and ‘a’ is the second node and normally will be spread along the x-axis, but when smartart changes row, third node ‘b’ should be placed below the second node and this pattern will continue until the last node.
Below is the behavior when Basic Block list is applied to 8 nodes.
I have learnt a lot, thanks to the whole community. I’ll be fixing more issues in the upcoming week.
Two weeks ago I had the honour of being a speaker at OSCAL in Tirana, the Albanian Open Source Conference.Â Still having vivid memories of this remarkable event, let me share my impressions with you while they’re fresh.
One of the most beautiful things about working in an open source project is having friends and colleagues around the world. They not only give you insight into different cultures and languages, but eventually will also lead you to countries and places you might have not seen otherwise.
Throwback in time. LinuxTag in Berlin, 2014. Redon, an Albanian free software enthusiast, visits us at the LibreOffice booth and talks about an open source conference they plan in Tirana. I was flattered to be invited, but Albania not being the closest destination and me travelling a lot at that time, I somehow didn’t manage to follow-up. Time passes by and I lose track of the event. Entirely my fault.
Another throwback in time. LibreOffice Conference in Brno, 2016. After the opening ceremony, someone in the room starts handing out candy, a nice conference tradition. “Llokumi” the candy is called, as I learn later on. I took a bite and was impressed how it’s possible to get so many calories into so little space. ;-) Later on it turned out it was a present from the Albanian community and so I got to talk with Jona. Over the course of the conference I learn that this is the local community who organizes OSCAL, the Albanian Open Source Conference and they would be happy to have LibreOffice contributors as speakers. It rings a bell, but I am not sure if I made the direct link to the meeting in Berlin a few years ago at that time already. In any case, not having travelled a lot for a while, going there sounded very much tempting, but sometimes life comes in between and so it didn’t work out for me in 2017 either.
Third throwback in time. FOSDEM in Brussels, 2018. “You really need to come to OSCAL”, I am told with a smile by many of my Albanian friends – an offer I neither would nor could refuse. This year, life’s surely not coming in between, the calendar looks good as well and so I decide to file two papers. And, d’oh, stupid mistake, Florian – eventually both of them get accepted! :-) So – seems I’m gonna talk about The Document Foundation as well as about open source cooking in Tirana this year! And actually it’s a perfect year to go, because in September, the Albanian community will organize the annual LibreOffice Conference as well, so why not get to know the country before?
I never made it to Albania, so I’m excited! I love travelling, I love flying – and escaping the bad German weather at that time sounded tempting, too. Having heard the exciting reports from my colleagues who went the year before, I was super happy to go – so, yes, Tirana in May it is! The flight worked like a charm and went pretty well. Just one word of warning: If they try to sell you “three unique bottles of Bavarian beer” at the duty free store for “just” 9,90 â‚Ź – better run away…
Well, to be fully transparent, not all went so well – my hand luggage and my beloved headphones both broke at the same day, but that’s just bad luck and I at least got the music issue fixed afterwards. ;-) And luckily I travelled together with my colleague Sophie, so we had a good time to talk.
I was already very much impressed by the Albanian community before I went to Tirana and my experience was more than confirmed during my stay. Already their airport pick-up service made a big difference. Having left the customs area, Izabela was already waiting for us, welcoming us with a smile and took the bus to get us to our hotel. Now that really is a welcoming atmosphere! Instead of being lost in a foreign country, someone picks you up, shows you around, brings you to the hotel and has some helpful hints for your first evening. Wow!
This wasn’t the only positive surprise for the day. Shortly after I checked into the hotel, I found a wonderfully wrapped welcome package on my desk. It contained a letter with warm words of welcome, including two phone numbers in case we need help and also had some local food and a small bottle of Raki. Again, wow! Such a nice gesture makes everyone feel home and appreciated after a long travel.
For the evening, we went to a welcome party and it felt good to celebrate the first evening together. Agreeably, we didn’t stay too long and after some really good sleep in my cozy hotel bed, the next day saw the opening ceremony of OSCAL. Located at the Piramida, whose history was explained to us by the organizers, from the beginning it had a very special atmosphere. Welcomed by an enthusiastic group of organizers, we got our badge and entered the building. Old and new, present and past, all combined in one venue. Piramida was equipped with lights, speakers, a big screen, wifi and everything else a conference needs. To be honest, I have no idea how they managed to get everything in there – it must have been a lot of logistics and sleepless nights to get that done!
The conference was opened by Kristi and Boris and once again, I was amazed. The first two talks were held in Albanian language, but we got simultaneous translation to English – in perfect quality! I’ve been to conferences near and far, free and expensive and have seen a broad range of “somehow acceptible translation” to “we don’t mind at all if you understand us”. But this was outstanding – we got a professional translation, absolutely well done. That’s how it’s supposed to be, and many others could learn a lot from you for sure!
The conference itself was split into two venues that were connected by a beautiful park, with flowers blooming all along during these wonderful days in spring. Piramida was the main venue and Protik offered further rooms for talks at just five minutes walking distance. As an additional benefit of walking from one venue to another, there were quite some good bars and restaurants nearby where we could stop, have a little break, enjoy a good espresso and relax in the sunshine. There was no lack of food during the conference either, as the organizers have prepared a wonderful speaker’s lunch with a variety of food of all sorts – and it all was extremely tasty. The conference itself had various exciting talks of all sorts, covering different aspects of free software and open culture, and many old and new friends were met. We’ve learned about the business behind free software, about security problems in governmental websites, about diversity in free software communites and in the evening I’ve seen many people trying their luck in lockpicking that was obviously explained in a talk, too!
Not only the organization at the venue was brilliant, but also the communication and coordination upfront. Speakers and attendees were connected via Telegram groups, and e-mails gave all details for the event. In one of those announcement mails we learned that there might be possibly eventually maybe a little party planned perhaps… and there are drinks involved! :-) After a delicious buffet that even had a chocolate birthday cake, the lovely streets of Tirana further invited for a stay during a long summer night. In other words: We essentially crashed into one sempty bar and completely took over the space with the sheer crowd of people joining. Rumors have it the last went home just after 4am in the morning. (Not me!)
The next morning day we went back to the venue. Lesson learned from the day before is that getting some sunscreen could be helpful as well as wearing a hat, as the sun is burning much harder already than in Germany. There’s an interesting side story of me “lending out” my hat, but in the end I managed to get it back in return for the promise to bring some as presents during my next visit. ;-)
While the first day of OSCAL had my talk about The Document Foundation, I was also excited to talk about open source cooking during the second day. Having held this talk just twice before in German, it was the first time actually to have it in English and I was very keen to see how the audience would react. I turned out they were as open, friendly and crazy as the organizers, and I was very happy to hear I actually was able to make people hungry. Who knows, maybe we see an open source cooking in Albania soon as well? ;-) Count me in!
Afterwards, I spent parts of the afternoon outside of Piramida in the beautiful park, taking pictures and talking to friends and colleagues. The second evening, of course, had a party as well. :-) Having had a short trip through the city organized by my colleague Italo, that covered Skanderbeg place, the market and other venues, we went to a bar to celebrate this edition of OSCAL with many speakers and attendees.
While for the conference attendees, the organizers offered a tour through the city, for us Monday started with a meeting about the upcoming LibreOffice Conference, to discuss details with the organizers, plan for hotels, logistics and other bits and pieces and I am very much looking forward to being in Tirana in September again.
This was my first OSCAL and my first visit to Albania, but clearly not my last. I’ve rarely been to a conference where organizers cared so much, were I felt so welcome and accepted and where ideals of friendship, community and hospitality were so strong and ever-present. I could literally breathe so many of the ideals that free software communites mean to me and OSCAL was an outstanding, remarkable event.
I am happy and thankful for the wonderful experience, for having the opportunity to meet such amazing people from all around the world and that I made new friends in Albania. I miss all of you already and look forward to be back again soon!
Faleminderit, everyone and kudos to the amazing organizers!
At OSCAL 2018 in Tirana I had the opportunity to give a talk about “The Document Foundation: The open, transparent and meritocratic future of free office software”. I’ll tell you what The Document Foundation is about, how it’s built and what our core values and principles are.
Das LibreOffice-Projekt besteht aus einer Vielzahl von Sprachprojekten weltweit, die LibreOffice in ihrer Sprache testen, vermarkten, lokalisieren und dokumentieren. Wir treffen uns regelmäßig, um über die lokalen Aktivitäten zu sprechen, uns auszutauschen und Pläne für die Zukunft zu schmieden. Im April 2018 war es im deutschsprachigen Projekt wieder soweit.
In den Räumen von freiheit.com in Hamburg, bei denen ich mich an dieser Stelle ganz herzlich bedanken möchte, fanden gleichzeitig das LibreOffice-Hackfest im neuen Format und das deutschsprachige Community-Wochenende statt. Meine Kollegen Mike, Thorsten und Björn, dem ich für die klasse Initiative und die tolle Organisation danken möchte, haben bereits dazu in den verschiedenen Blogs berichtet. Heute möchte auch ich meine ganz persönlichen Eindrücke mit euch teilen. ;-)
Wie ihr euch vorstellen könnt, ist bereits die Terminfindung zu so einer Veranstaltung alles andere als trivial – Feiertage, Urlaube und andere Konferenzen wollen berücksichtigt werden, sodass die Zusammenlegung mit dem Hackfest sich auch, aber nicht nur, aus diesem Grund angeboten hat.
Die Location war dabei ziemlich “stylish”. Ein modernes Bürogebäude, mit schönem Blick über Hamburg – und auch das Wetter hat super mitgemacht. Alles in allem waren wir ca. 30 Leute aus verschiedenen Ländern, die das Interesse an LibreOffice eint und für die das Community-Treffen eines der Highlights im Jahr ist, an denen man sich persönlich sieht. Als Gast durften wir in diesem Jahr Silva von der albanischen Community begrüßen, was uns sehr gefreut hat, gehört sie doch zum Team derjenigen, die im September die LibreOffice-Konferenz in Tirana organisieren.
Ein großes Thema für die deutschsprachige Community ist seit einiger Zeit die Nachwuchsförderung. Viele von uns sind bereits seit langem mit dabei, aber wie in anderen Projekten auch, ändert sich die Lebenssituation bei einzelnen: der ehemalige Student ist im Vollzeitjob, andere haben Familie, wiederum andere sind ins Ausland gezogen – kurzum, die Prioritäten verschieben sich und nicht jeder hat Kapazitäten frei, größere Projekte zu stemmen.
Umso schöner ist es zu sehen, dass sich viele weiterhin als Teil der deutschsprachigen Gemeinschaft sehen und bei den Treffen mit dabei sind. Das ist ja das Schöne an Open-Source-Communities: Aus Kollegen werden schnell Freunde, die einen über viele Jahre begleiten. Man kennt sich, man hat gemeinsame Interessen und kann nach all den Jahren auch in ein paar Erinnerungen schwelgen. ;-) Und, ganz nebenbei bemerkt, auch die Stiftung selbst stellt für die Aufnahme als Mitglied im Kuratorium keine unüberwindbaren Hürden.
Das Zusammenlegen von Hackfest und Community-Treffen hatte dabei den Vorteil, dass wir als deutschsprachiges Projekt auch mal über den Tellerrand schauen konnten. Ein Großteil der Programmentwicklung findet auf den internationalen, englischsprachigen Mailinglisten statt, sodass die gemeinsame Veranstaltung für viele die Gelegenheit bot, mehrere Entwickler persönlich kennen zu lernen und ein Gesicht zum Namen zu bekommen. Solche Kontakte sind viel wert, gerade in einem großen Projekt wie dem unseren und ich bin mir sicher, dass einige Fragen und Vorschläge dadurch direkt auf den Weg gebracht werden konnten.
Einer der Diskussionspunkte war die Teilnahme an Veranstaltungen. Hier wollen wir als DE-Projekt unseren eingeschlagenen Weg fortsetzen und künftig weniger an großen und teuren Messen teilnehmen, als vielmehr kleinere und lokale Events unterstützen. Zum einen ist das deutlich günstiger, denn eine große Messe kann schnell Kosten im fünfstelligen Bereich produzieren, zum anderen erreichen wir auf diesem Weg deutlich einfacher neue Mitwirkende als auf den klassischen Veranstaltungen. Wir wollen in Zukunft verstärkt darauf setzen, die Mitarbeit im Projekt zu bewerben, denn LibreOffice als Produkt ist auf den meisten Open-Source-Events bereits bekannt.
Ein erster Erfolg ist dabei die Teilnahme am Linux-Infotag in Augsburg Ende April, bei dem das LibreOffice-Projekt zum ersten Mal mit einem eigenen Stand vertreten war. Mit etwas Glück sind wir auch auf den Linuxwochen Linz mit dabei und versuchen zudem, einen Stand auf der FrOSCon zu bekommen. Ich selbst freue mich, im Juni auf der FOSS Backstage in Berlin einen Vortrag zur Stiftung zu halten. Parallel dazu haben wir Ideen für die weitere Überarbeitung unserer Mitmachseiten gesammelt, die wir nach und nach ausrollen werden.
Silva hatte zudem wertvolle Eindrücke aus der albanischen Community im Gepäck. Der große Vorteil in Albanien ist, dass sich nahezu die gesamte Open-Source-Aktivität um die Hauptstadt Tirana konzentriert und es mit Open Labs einen gemeinsamen Hackerspace gibt, der sowohl als spontaner Treffpunkt als auch für geplante Veranstaltungen genutzt wird. Im deutschsprachigen Raum verteilt sich die Community über eine deutlich größere Fläche und selbst für mich, der schon nahe München wohnt, beträgt die einfache Fahrtzeit locker 90-120 Minuten, mit eher bescheidener Verkehrsanbindung am Abend – ungeeignet für einen spontanen Abstecher zum gemütlichen Feierabendtreff. Eine der Ideen ist es, lokale Treffen wie den Stammtisch West oder auch die Münchener Open-Source-Treffen wieder vermehrt zu Community-Treffpunkten auszubauen. Ich kann mich noch gut an die ehemaligen Stammtische in München erinnern, die regelmäßig gut zwei Dutzend Teilnehmer begeistert haben – das sollten wir wieder in’s Leben rufen.
In diesem Zusammenhang kam auch die Idee erneut auf, eine deutschlandweite Karte mit allen Aktiven im Projekt zu erstellen, damit wir einen besseren Überblick bekommen, welche “Hotspots” wir im Projekt haben und wo sich lokale Treffen lohnen. Diejenigen, die kein Treffen in der Nähe haben, sind natürlich weiterhin eingeladen, an unseren monatlichen Telefonkonferenzen teilzunehmen, bei der sich Community-Mitglieder zu den aktuellen Entwicklungen im Projekt austauschen.
Das Wochenende ging, wie jedes Community-Treffen, viel zu früh vorbei. Für mich war es schön, all die Kollegen, Mitwirkenden und Freunde im Projekt wiederzusehen und ich freue mich schon auf das nächste Treffen, das wir noch in diesem Jahr organisieren wollen.
When doing mail merge, it’s often (even usually) desirable that if a database field is empty for a recipient, then the corresponding line be hidden in the generated document. LibreOffice has always allowed doing this using special Hidden paragraph fields – which is very flexible, though not too user-friendly, because of its complexity in creation and support. E.g., one needs to remember to move the field along with the database field when one edits the document; or change the field’s conditions when renaming database fields or combining fields in a single paragraph.
There are situations when using Hidden paragraph fields is even impossible. Since the condition in the said field depends on a registered database name, it cannot be used when there’s no registered database (which happens when one wants to connect to data sources dynamically, when one is actually performing the merge).
Meet the convenience
Today we have released the newÂ Collabora Office 5.3-49, which includes the improvement that we at Collabora Productivity have implemented: now database fields also hide paragraphs themselves when the field value is empty: now there’s no need to use separate fields for that. This allows for easier creation and management of the auto-hiding empty database values.
With the change, we are also more interoperable with other office suites that behave that way, including Microsoft Office.
This feature is controlled by a new compatibility option, which is enabled by default in all new documents. If one wants to return to old behaviour, however, one can easily do that using Writer’s compatibility options.
As usual, the improvement is also available in the next major release of LibreOffice, which is to be released in August.
After we at Collabora ProductivityÂ had improved existing LDAP configuration backend to be relatively easily configurable for Windows clients in ActiveDirectory-based domain environment, we started to prepare a further improvement in this area, which purpose was to overcome the problems of LDAP-based backend. The said problems are caused by the fact that LDAP backend needs to have proper credentials for server connection explicitly configured, which leads to requirement to have a dedicated restricted service account which would have a fake password (which would be written in clear text on each configured workstation), and which only purpose is connecting to LDAP server and retrieving user information. The said approach hardly fits into Active Directory’s concept with single sign-on (SSO) in its heart. Of course, the preferable solution would be to have a configuration backend that could get user data from AD using current user’s credentials, without the need to have a service account for that.
Collabora makes the next step
In the past weeks, we have merged a brand new backend plugin (WinUserInfoBe), which uses the improvements in core made when working on LDAP backend, and which implements the said concept. It is, naturally, even easier to configure than LDAP backend (the only thing required is to set a user data field to be taken using the said plugin); neither server connection configuration, nor further LO data field to LDAP object property mapping is needed. And of course, we have made the necessary changes to our ADMX templateÂ to make this configurable using convenient GPO editor interface.
SmartArt is a nice feature that allows users to quickly add charts/diagrams to presentations. LibreOffice has a partial implementation as an experimental feature, I plan to add some of the features in SmartArt by the end of GSoC period and keep fixing bugs reported during the GSoC period.
At the moment, we are able to import SmartArt as a stream of shapes that is available in the pptx presentations generated by Microsoft Office 2010 and later, but not compatible with Microsoft Office 2007.
Unfortunately: ● The rendering of such shapes is not correct
● We are unable to edit the imported SmartArt.
Below is the example of the smartart which is not rendered correctly in Libreoffice:
As a result of last year GSoC, there are few implementations of SmartArts which contain smartarts like composite, cycle and line etc. This year task will be to extend the list. The main implementation of the smartart resides in, oox/source/diagramml/diagram/* .
➔ Improving the rendering of the shapes There are many smartarts which are made in Microsoft office are not rendered correctly in LibreOffice and that’s where the problem arises.
Unit Testing Details
This task will focus on testing and implementing the correct rendering of the shapes of smart arts which can be achieved by : The deliverables for the task is to generate test documents in MSO, each document for one diagram type, and create unit tests that assert that each document lays out the same in LibreOffice as it does in Microsoft Office.
The file that will be created in Microsoft Office will be Copied in sd/qa/unit/data/pptx/* . This will be followed by creating a unit test for that smartart shape in sd/qa/unit/import-tests-smartart.cxx .
If I complete correct rendering of enough SmartArts, I’ll be adding more exciting features in the SmartArt import.
Apart from fixing some smartarts, I’ll be fixing some errors which are reported during the GSoC period.
The coding period of GSoC started 10 days ago. I'm working with LibreOffice's UI logger. The aim of first two weeks is to support logging for UNO commands, dialogs, radiobuttons, checkboxes, and buttons. To get a summary of what has been done so far, let's perform a couple of steps and look at the generated log file. Steps: 1) Click on "Writer Document" button 2) Go to Format -> Character to open the Character Properties Dialog. 3) Check the radiobutton 90 degrees and check the checkbox "Fit to line". 4) Click ok 5) Type "hi" in the main wrier_edit window
The breeze icon theme was my first task for LibreOffice back in 2014. 4 Months later I proudly present the new LO Breeze icon set with more than 2.500 icons for LibreOffice.
Breeze get the default icon theme for the KDE desktop with LibreOffice 5.0. Ubuntu switch to breeze cause they stop the development of there own icon theme and prefer breeze. As LibreOffice Online was announced 2016 they ship breeze cause it was the only icon theme with full svg support. And Breeze was also the default on OSX cause sifr lack of icons.
With breeze big success story started. If you’d like to be part of the story become a Patreon
You can read the full story on the following blog posts:
The Document Foundation is not responsible for the content on planet.documentfoundation.org. Copyright information: Unless otherwise specified in the author's blog, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.