 Good morning everyone, thank you for the introduction and welcome to this huge crowd to learn about Calibra and ODF As you see I am blog shooting today, I am running Calibra right now So, if anything goes wrong with this presentation, it's of course our own fault Calibra, what was the big news in Calibra this year? Who knows? Ah, come on, yes, what was the big news? I see something... It's related to this screenshot? Oh well, shit, the title gives it away, I'm sorry Well, this is the old book of Calibra, you see all the KDE4 stylings and on the press this button we will have the new look The file is still the same, all the rendering is still the same It's just we have new widgets and a fresh tile which fits nicely with the desktop environment So, big news, well of course this was in January, but since last January this has happened Ok, well, a bit of history about Calibra I guess most of you know what's written here It's a very old KDE project, it is for more than 10 years and it used to be called K-Office in the times when every project within KDE thought it was fashionable to start their project with a K and now we still sound like a K, but it's written as a C Calibra, and yeah, it's based on KDE stuff and it's very light and modular, which is why Nokia chosen at the time to run on their phones I still have a phone which runs the Calibra code and I'm keeping it until it dies I hope at some point there will be another phone which runs Calibra Yeah, so the title is ODEF support in Calibra and this is a list of the different applications in Calibra and what part of the ODEF standard they support So obviously Calibra words and author, they are text based they support the ODE file format the spreadsheet, Calibra Sheets supports OES this presentation is an ODP file which is running in Calibra Stage and Carbon which has dropped off the slide is using OGG to the graphics format What is author? Author is a different skin on the text part which focuses on writing in novels and the most active user of it is sitting next to you Dan told me yesterday that he still uses it frequently to write his fiction Well, a quick reminder on ODEF files I guess many people here know this but I'll just repeat it ODEF files in the way they are used are basically zip files You can just unzip them and if you do that online or if you open them in the arc you can see the contents and the first file you see there is called MimeType and that holds the MimeType of the particular file and then you get the manifest the manifest is a list of all the files which are in the zip file and it mentions how they relate to the rest of the documents The pictures are in there as normal files so if you want to get a picture out of a text file or out of a presentation you can just unzip it and copy it from there So this is a difference with HTML because HTML pages are usually spread across the web They have different files and different servers so it's very hard to archive them and have one copy of a file which you can look up in the future and archive and open it again faithfully with HTML files you just have to hope that all servers for which you include the content are still available and that's a big difference and that's the advantage of the very zip container Now the MimeType file I mentioned earlier has actually a very funny use because the first file in the zip cannot be compressed and the reason for that is if you look at the binary content of the file you can actually read the MimeType always It's guaranteed that the MimeType starts at a particular offset and then you can read it from there and that's purely to help applications quickly determine what the type of the file is Continuously the course of how does ODF work This is the file content XML which is holding the main important part of your document, the text and as you can see here it looks a lot like HTML except as namespaces for everything The most important thing here is Hello Academy written in a paragraph and a P it's just the same as you would have in HTML and the text, the office text here that's specific because this is a text document If we go to presentation then instead of text you have presentation here and instead of just starting with your text you have to define pages So you have a page and then a frame and inside there you have a text box and then a paragraph again For who in the audience thinks hey this is news to me At least one guy, two guys, yeah Three guys, great So you have loads at least something already Now Calibra and ODF are very very tightly linked Everything in Calibra is done with ODF If you want to read a file which is not in the ODF then what Calibra will do the first thing is convert it to ODF and then it will read it and then when you save it back internally it will convert save it as an ODF file and then convert it to whatever you want to have So in that sense Calibra is also a great tool kit for converting any file format from a to ODF and there's a special command line utility for it which is called Calibra Converter which you can use for this Now where is Calibra and ODF? Where can you find it? Calibra has many libraries It's a very modular application which is using this modularity to a great advantage because if you have a text in a presentation it will use the same code as the text in a normal text file and in a spreadsheet if you have a frame there with text it's also using the same code and this is different from Microsoft Office and it's also different from Libre Office because those applications they grew together from different code bases and they had different ideas about for example what text is whereas Calibra from the ground up tweets all of these things which are the same in ODF with the same code so it's very well designed actually to deal with ODF Now the main library for ODF is called KO KO for K-Office and K-Store The KO store basically does the unzipping and it's not parsing and the KO ODF then handles all the styling and makes the ODF parts easily accessible to the code which comes next which has the reading and the writing Now through the Calibra code base there are pieces that display different parts you can have bookmarks you can have formulas graphs all of these are small classes with components in them nearly all of them have a function called load ODF and save ODF and they get the part in the ODF where we are reading at that point and then they can continue from there and when they are saving they are saving to this function Now the signature of this function is not exactly the same everywhere sometimes you need some context in there but generally the first argument will be a KO XML element which is like a DOM object and when saving it will be a KO XML writing which is just a sync where you just write your XML tags into so if you know one part of reading a writing XML or ODF in Calibra then basically you can deal with all of them so throughout the code base this is really nicely uniform and that's why if you can work on Calibra words it's fairly easy to also start working on a stage Now ODF is a standard it's maintained by Oasis and KDE is also involved in that David Fauron who is sitting there was our first representative and he also helped a lot in writing the standard I took over from him and Calibra Boeman who is now our representative in the ODF TC took over from me I am still on the TC but not for KDE anymore I never represented that government there and we are working currently to go to ODF 1.3 and it will be a minor release with cleanup mostly Do you care government are going to look at that? Do you care government are going to expand the way from ODF to they have any in a similar position to you? No they don't, no I know some people within the government of the CMT office some people within the cabinet office were really active on that but they were very busy with migration and so they didn't feel like they had the time to join the TC but I should be pastering them about it it's a good thing to join for them as well Of course other organizations could also join if Scotland wants to join themselves they can also do that Next year Next year? Okay We'll talk next year Is there any time for ODF 1.3? No, well it's done We don't have the time for it So what happens in between until ODF 1.3 is ready we see that different vendors have seen that there are limitations on the ODF format for them and what they can do then is to have an extension on the format so they can have their own namespace and say we would like to have this feature and that's allowed in the standard So the two versions of ODF, ODF strict which doesn't allow extensions and then you have the version with extensions Calibra always saves a version with extensions but it only has a few extensions LibreOffice has a lot of extensions but there you can configure LibreOffice to save with or without the extensions Now, we have a standard Does it work the same everywhere? No it doesn't, so not perfectly Here's an example of a cool feature where Calibra does something which nobody else can so that's why I'm highlighting it of course and there's a weekly text a weekly line through a text So, yeah there's a weekly line through a top text and LibreOffice and Word, Google Docs, Microsoft Office they all have a straight line So, if you use a lot of weekly text then you have to stick to using Calibra That's the procedure I guess How this is done I was mainly with Camilla about this is very Qt related in fact because most of the text rendering is just a Qt text document but also that doesn't support a weekly lines So what Calibra does is it just renders normally processing on the rendering by adding these weekly lines ourselves It's a wonderfully unique feature and I suggest everybody to use it a lot So, if you start testing more things in a more systematic way then what you have is a plug fest We have a plug fest about once a year where different vendors come together and we look at how well everything it operates We try to improve this Here you see a number of issues the last time we actually put a count on it and we saw that Calibra had 30 issues loading and saving which was fairly good Calibra Office is 29, so about the same the only one which was better was Web ODEF but that's a bit cheating because Web ODEF doesn't actually convert the ODEF It just reads it and writes it back So the errors for Web ODEF are all rendering errors whereas for the other applications it's also quite often that when you load something and you save it back you may lose a bit of information but yeah, this is interoperability and we have to work on it Yes? I remember that one of the major issues when I was in the CQB was support for number of paragraphs because basically CQB does it one way and Calibra was doing it another way and the only conclusion we came to was let's have both understanding which sets because in terms of interoperability it requires everyone to support both Yes? Yes, that was a very good decision to be honest and we are facing out one of them the number of paragraphs Yes, the number of paragraphs doesn't work well anywhere exactly, I think So it's not part of this business It's not in these results no, because these results are actually when we were focusing on style and the number of paragraphs is a body element Yes That was in this example Here's a nice tool which I have developed last year to compare rendering of files You can go to the web page, upload the document and then see the differences in rendering and I also have this live on the page here So here you can compare how Calibra and Microsoft Office render this page and you see that the graphics are really bad in Microsoft Office it's only black and white unfortunately but if I compare this to, for example every word that's much better We have a small shift in the font but apart from that it's quite nice and the same when we look at LibreOffice This is an OVT file which was uploaded to the server and the server has a number of helper virtual machines and we send the file there and they give us back a PDF and here this is a PNG for display purposes which you can download all the files here if you want to look at the Calibra PDF itself you can just click it and this is where this is the created PDF So all the inhibitions have a code making way of converting Yes, all of them do Yes? How do you know which is correct or which is better? Well, that's where we have Yeah, we don't This is basically to see that there is a problem with this then comes the next step which is the next part of my presentation So yeah, this is the view from Microsoft Office So what we would like to have is to create tests Actually the tests which I'm going to show you are about content when loading and saving so we don't have any tests for the rendering yet but if there was to be disagreement in rendering we would have to create a test which says okay, I know exactly how this is supposed to be rendered and I can create an SPG mask for this and then the image plus the SPG mask should be for example, completely white that would be a way to test rendering We have some preliminary code for that but not on the server and then you can make tests to do rendering quality but we don't have those yet but this tool is just a quick view and to also have a sort of majority vote on what is the good rendering If in this case only Microsoft was black and white and all the others had color so then I can assume probably the others were right Now this part is pretty cool and also requires a bit of a live demo When you upload documents what you can do is so you can upload documents then you have exactly these files here you can click on view then you go to the slide of view which we just had or you can say make a test or when you go to make a test you have to create a name for it like anime and then here we have an XML editor and then we have something I'm really proud of with auto completion so we have past the entire machine for a schema for OEF and we use it here to do auto completion and it even has validation so I have a header here but it says it's wrong now who can tell me what's wrong here this is for the OEF expert what's wrong it's empty ok still wrong maybe not very yes the outline level is wrong so is that true failed to validate the error message is not completely useful but if I add the outline level still wrong yes so I can write a very small snippet of OEF and if you remember the examples from earlier there was much more XML that's because we allow people to just write a small snippet and then this dialogue knows where to put it in an OEF file and then you can write a small test here and say when I save this file and I load it again I should still have one hay and it should have a black level one so you can write a small fragment of OEF add a test to it load it, save it, load it back again and then you can see the results and here's an example of a result page we have an OEF file this is the input file and click on it to download it and it has no validation errors and these are the tests I wrote for it these are all true but then when I saved it I loaded it with every word there were validation errors and the content which I wanted to feed was actually gone so that's not so good same with Google Docs web OEF kept it and you get to hear the whole list of the patients a few of them haven't finished running yet unfortunately and so you get an overview of who is passing the test and who is slaying it and these numbers here for these dialogues are for people who have an account they can actually confirm that the test is doing is correct in this assessment so it doesn't automatically go to a big report but people, experts still have to look at it and say yes this test is actually correct it is gone and it's bugged in this application yeah so a screenshot has a fallback with the same thing and here below you can see the PNG files or you can download the PDFs another convenient thing here is that if you want to look at one of these OEF files then it will show you a page where you can download it but you can also just click on all the contents of the XML so if you want to see the thumbnail which is obviously empty here or if you want to look at the settings you can just directly go into those files which makes it very convenient to investigate things you don't have to unzip everything on a command line or whatever way you would normally do that ok something else of course, no we've seen it, yes was that a question or just feeling tight just feeling tight well, so we've seen there are some bugs also in Caligra well, how can we fix that? we need to develop so this is a small interlude which is also a preview to talk that Jonathan will be giving later today oh it's tomorrow, yes you have to be even longer so all the better that we have a preview now so you can be anxious for a long time and you can try it out basically People Docker is a wonderfully nice new technology which allows you to very quickly run an application under Linux in a container and it's almost as fast as the application would normally be but you are in an environment which you can dictate so if you develop in Caligra what can happen is that you need to solve a lot of plugins you need to tell the KDE environment about them and this might interfere with your normal environment so what you can do for that is you can do all the development in a Docker container and here I have shown a command line that lets you quickly go into a KDE Neon Plasma development environment and from there you can start installing the compiler and dependencies for Caligra or you could also write your own small Dockerfile and Dockerfiles are really easy it's just a few lines here so the first line is what is your starting point so I can start from the KDE Neon Plasma development stable image as a user root I want to run this app sketch command just to install my dependencies then I switch back to use the Neon and that's it if I do that and then I run Docker build then I have an image with which I can very quickly go into a nicely contained Caligra development environment and in there I can mount my local directories as well so you can do the KDE Commit and check out in your normal environment and have all the source files in your Docker image here's a screenshot from my laptop where I was developing Rink's compute creator in Caligra 2 and Caligra 3 at the same time you see them running at the same time in different virtual machines but the windows are just in my normal Plasma environment yes and when we fix the problem but we can get good scores on the next earlier platform which will be in October in Rome and I'm looking forward to it this was announced yesterday actually well it was known for a bit longer that it was coming but this beautiful image was only there to me yesterday and I'm really looking forward to the next platform if you want to validate your earlier files just validate it online I probably should skip that a bit about who I am in my time but here's another image from Carbon and this might be a nice challenge for this Academy Carbon can open and save SVG files but when I tried to open this logo I got this back point displaced by some amount it's probably an easy fix and I think that it would be great if Carbon could be a good competitor to Inkscape because to have I think we should give an illustrator who? well illustrator let's set this aside anyway this might be a nice part for somebody to tackle if they won't and that's the end of my talk second place if you have any questions about this tab we have a coffee break now now 5 days ago so you can ask him in the coffee break that's right that's not that much of a graph if you want any photographs or questions