 Hey guys, so next up is the GSOC panel. I'd like to have all the students here in the front because we will have to switch rather quickly. And whoever's standing in for a student, Michael I think, and anybody else, if you could come here, this will be less friction. Okay, so the order will be Bustak with a Firebird, then I think Michael standing in for AzoPitt, then Jakub, Jakub, sorry. Yeah, sorry, just, well, you choose your nicknames, so I will just address you with the nicknames. I think that's easier. Just look at the, that's the order that we will run this through. Okay, Michael, want to join the fun? I think you are. Number three. Number three. Two, two because I like this. Cool, so yes, welcome. I think it's 1400. This is the GSOC 2016 panel session where we have almost all students on stage to present their successful GSOC projects. Thanks so much Google for sponsoring. Thanks a lot to all the mentors for investing time and energy and sometimes sleep to keep this going. Congrats to all the students for making GSOC, wonderful. So yeah, with that I'd like to kind of, all right, so you have exactly five minutes and after six minutes we will cut you off hard. Otherwise, we're not making this. We have eight talks and one hour to go. Cool, so Firebird. Hi, I have a slide maybe. Yeah, thank you. So, yeah, I'm Tamás Bundt and I had a summer of good project with the title Finnish Firebird Integration. Firebird is an open source database management system written in C++ and currently the database system which is used to, which liberal fizz uses as an embedded database at default is HSU-LDB, which is a bit unfortunate because it's based on Java. So the main purpose is to bring Firebird, the Firebird driver to a state that it can be suitable as a default embedded database. And, but there were some problems with the Firebird driver. First of all, I made an upgrade from version two dot five to three, which made some more possibilities with Firebird. For example, I could fix the next issue, which was that the Firebird databases are dependent from the platforms and DNS. So if you made an embedded database in a big Indian platform, then move the ODB file to a little Indian one, then it's fair to open. And there were Firebird related bugs. There are still some, but I solved some. For example, I implemented the auto increment feature and there are some more things to do. For example, to switch to the C++ API, which is available from Firebird three. I'd like to do that in the future. And there is a problem that it's not implemented that the Firebird should work with remote databases. So that's another thing to do. And the new Firebird cannot open the old Firebird databases. The official way to solve this is to backup it with the old Firebird and then it can be restored by the new one. I'd like to do external tool for that. Maybe a web service and I'd like to thank for the community because it was really helpful and my mentor Lionel, thanks. Thanks for a very good project and we look forward to see more patches from Noob. The next one is Michael. He's not the DSOC student. He's representing. If only youth is wasted on the young, they say. Anyway, perfect. So Michael did some great work. He showed up that the essential problem we're solving here is that we have a very fast parser that does threaded parsing and in theory has a constant time to parse an infinite sized file because it doesn't have a thread. And we're not using it for ODF. We're using it for the Microsoft formats, which is bad. We don't want to load XLSX faster than ODF, do we? So his job was basically to retrofit this to use it for the ODF filters. And the fast parser does tokenization as well and the ODF filters do tokenization. And previously we'd had an approach which was a one shot do everything at once type approach. And this never got merged because everyone's too scared. So he came up with an incremental approach and we started looking at spreadsheets just very large because they're big consumers and producers of data and trying to accelerate just the inner sell storage for numbers and simple text and so on. And he's done great work. So he reworked the fast parser to add the ability to emulate the old API on top of the fast parser. So we parse, we tokenize, we de-tokenize and we emit it again. And it sounds stupid, doesn't it? But anyway, it was approximately the same speed as the old parser, which is quite good. Slightly slower, but well, what do you get? And currently we're, he's punching through that to avoid de-tokenizing and re-tokenizing inside the ODF parser just for a few of those things and it's looking pretty good. So I'm happy. All of the patches have been merged as he's gone along. So it's all there in master for four three and I've got three minutes, but I'm nearly done. So it's good, I'm happy. And he's continuing to work and fix and improve it. So what a guy, thanks, thanks Mahoud. And continuing to work is of course what we really like. Hi, my name is Jakub. I was working on table styles with my mentors, Jan, Yusuf and Miklos. The project target was to implement the table styles for the writer. The first thing was to implement the export and import of table styles. The second was to implement the table styles in the sidebar and implement the table styles drop down menu. The export and import to the ODF is implemented as a table template element export. It had to be expanded to the extra low X namespace because the ODF specs only allowed, didn't allow to export all the properties which the writer's core had. It had to be expanded by six properties. And you can see the low X filter last row and the sidebar. The sidebar is implemented, but it's not full finished because you cannot, I will talk what it allows already. It allows to browse the styles and filter the applied styles, apply a style to a table, update a style by example and hide a style. When the cursor is in table, the style gets highlighted in the sidebar. As you can see on the right is the styles and formatting sidebar, table styles tab. And it's not finished, it's missing the table style and the dialog to edit properties of the table style because it now crushes when you try to edit the properties. And the drop down menu is not yet finished but I plan to do this. So that was my project. I plan to work more on this and finish it. Thank you. Hello everyone. My name is Szymon Kwas and I was working on infrastructure for defining toolbar via .ui files. My mentors were Candy and Samuel. So the goals of my project. I wanted to prepare infrastructure for defining rich and dynamic toolbars. This had to be easy to modify in the glade because we wanted to change the interface without coding. So we also wanted to handle the context to change the content of the toolbar and left should be according to screen size. So here we have the results. We have three different implementations merged to master and I was working mainly on the first one because the other ones are only prototypes prepared to show the concepts. So while working on this project, I had to convert some pop-ups because they were working only in the sidebar. So I had to write new controllers and after this conversion, they can be inserted into toolbar, node bar and sidebar. I also noticed that inside bar, we have pretty widgets in the impress. So I reused the code and prepared the horizontal versions of these widgets. So we can simply insert them to the node bar. As I said, I was working on context handling, so some concepts have static part and dynamic part which is dependent on the context. So when user is focused on the table, he may want to add some rows and columns not format the text. So I extended the VCL builder to parse some additional marks with context in name and then I created new container which shows only these childs which have correct context. Also I prepared a special container for hiding some widgets when we don't have enough space. So when we resize the window and we don't have enough space, we will see a small arrow and after clicking on that arrow, we can see a new pop-up with the content of container. I also added option to change icon size in the sidebar and node bar. As I said, we have multiple implementations. We can switch between them from the view menu. They are described in the XML files. Also we have switched to turn on the node book bar and other modes like single toolbar mode or sidebar mode. They are also described in the XML files and what next? Node book bar still needs some work. We want to make node book bar possible to customize by user. Jay Phillips proposed to describe this widget in XML files. We also want to make them for extension developers to add content to node book bar and we need to make better accessibility for keyboard users. Thank you very much. So hello, I am Akshay and my project was we're designing the template manager and my mentors was Sam and Yusuf. So this was the proposed user interface for my design idea, for my project. And you can see how it got implemented and it's final version that it's in the master now. So there were quite a few changes. Some people like it and some don't. So basically in the previous template manager we had a folder view in which we can see the templates are contained in those folders. But basically we placed that folder view in which now we directly see the templates. As you can see here and the folders are shifted to this category combo box. And now we have removed the save as template mode from the template manager. And we have also added some filters like search filter, application filters and category filters to differentiate between different kinds of templates. And most of the functionalities have been shifted to context menu. And now we also have an option to edit a template which is not in the template repository of the template manager. And there have been some other fix-ex like we have removed the save as template mode from the template manager. And we have shifted it to a new dialog which I'm going to describe later. So yeah, moving other. Now the template manager has another state to show whether a template is selected and if it is over or not. So it was a much demanded feature in some of the bugs to differentiate between different templates whether they are selected, whether they are not selected or they are just forward. So basically it was finished and then we have a save as template dialog. And it was one of the most important task of my project to implement this because most of the people users were complaining about that the previous workflow is not as good as it needs to be. So we basically created it from scratch and we separated this functionality from the template manager. Now, and we also have an option to set the template as default. And now I have made some few changes in the start center. Like this changes were directly copied from the template manager and then integrated into the start center. And we also have the toolbar buttons now to indicate that whether we are showing the recent files or we are showing the template manager templates view in the thumbnail part of the start center. And now basically a major change through my project was that we replaced the presentation wizard with an impress template selection. Whenever you open impress now, you will see a popup dialog which asks you through whether you want to select a template or not. And it is enabled by default. If you want to that dialog to not to show, so you just have to uncheck the check box there and then it won't appear again. But yeah, basically removing the presentation wizard was our first idea. So now moving on, there was another project which was emoji toolbar control and I had Samuel mentoring me and you so far the UI part. It was an enhancement which is available in writer impress and calc and it is basically I have put it in the standard bar. It can be changed from now on. So yeah, so emojis appear as a grid just like in any other control in some other softwares. We have tabs to separate different kinds of emojis based on the categories and we can insert emojis. Basically what we need to know that these emojis are not images, they are just font characters. So we can play with them, we can color them, we can change the background size, subscript them, superscript them and these emojis are font dependent. So yeah, so it won't support every font. So we package another font with the emoji control so that we don't create any bug or anything. So the foundation has been built now. There are further improvements on this project like the move of duplicate glyphs and support for SVG emoji, which is an important task to work ahead and I am planning to do work on it. So yeah, for further insights, you can look at the jobs if you want to know more and you have some miscellaneous tasks like go to page dialog and some bug fixing. Thanks. Good afternoon, my name is Jaskaran. I am a JVSG and I had been mentored by my mentor Marcus Morhart for the project, import cell styles into Calc using orcas. So two things, cell styles and orcas. I'll explain them both. Cell styles, a set of attributes like here you see the blue background with a wavy underline and red underline as well. And the dollar sign comma and the dot, these all are attributes and together they are a style. You combine them into a style. The second thing is orcas. It is a standalone filter library written in C++, multi-threaded, started out as a fun project of Kohai Yoshida, now has around four or five active contributors and hosted on GitLab so you can check it out. Features, I provide some import filters like ODS, OpenOffice XML, XLS, plain text, generic XML, genumeric XML, provide some parsers like CSV, YAML, XML, JSON, CSS. So almost all major filters and parsers are provided. So here's the interesting part. Working of cell style imports. So what we do is whenever you open a new file ODS file and the code goes through all of the things and then the control moves to doxial. Here we pass, here we use the API of orcas and we pass the address of the file we want to import and we pass, we create a handle, handle class and we pass the address of that handle class to orcas so that we can later receive callbacks. Then it moves to orcas and using the lower level pass it imports the data from XML file, produces callbacks and here we have the orcas interface which we have implemented in this project and this orcas interface actually creates the styles and then which you can obviously see on the screen. So you might be thinking why we use orcas, why not the things that already are there in the LibreOffice because UNO is slow with all the things like broadcast and everything. The code of UNO is not reusable so orcas provides an API so that we can use it. Orcas is time and memory efficient. It uses some nice data structures. The temporary string allocation is very low so it's memory efficient, it's time efficient as well. So that's the main thing, what's in store for you. Of course, less clicks is less annoyance so you just need to, the styles would be listed in a drop down box, you can just click on them and do your work. So of course, earlier we had like three or four styles like default, heading, result, result one. They were not really useful to be honest but now you would have beautiful 10 or 12 maybe styles which are made by the UX team. The best part is you can change these existing styles according to your needs. Now as a user, individual user, you may not need to change these but as an organization you may need to change these. I'll show an example. Like here you see you created a spreadsheet. The heading is in green background and the salary is written in pink. Now suppose you are using this in Japan office. You would need yen instead of dollars. You can just change that XML file so next time you open your calc or spreadsheet you can have the style with yen instead of dollars. So that's the advantage of maybe importing through styles and not having the hard coded styles. So here's the location. In the share calcs, styles.xml. Here's the styles.xml. So the one thing that you need to know is don't change the name of this file because the name is hard coded. If you change it, you won't be able to import. Font, fill, cell, number, format, alignment, borders, underline, strikeout, all these are imported and there's some things that we don't import like conditional format, alignment, various trivial attributes but I think conditional format would be available to the next release. This functionality is currently not available because it fails a unit test and that unit test actually has nothing to do with it. It's a LibreOffice kit test but we don't know why it fails. Maybe some uncut exception or some dependency issue. We are looking into it. We'll solve that till this weekend maybe. So use this as much as we want when it's available. Report bugs to us on bugzilla and you can also tell us what styles you want so that we can import those attributes next time when we release the Orcus and of course you find a bug and you fix it yourself, nothing better than that. So contribute to Calc and Orcus. Thank you. Good afternoon everyone. I'm Sushobhan Ghosh. I worked on the project review of Sidebar and its functionality. My mentors were Boobly and Jay is not here I guess. So first of all I'll begin with my introduction. I'm a third year student junior year at Triple I.T. Hyderabad and before I begin showcasing my work I'd like to thank my mentors obviously because they've put up with me. I've asked silly questions. Also the design team and the development team. The channel, some people were annoyed I guess when I asked stupid questions. So thanks to all of you and thanks to the community for inviting me here and to present my work and basically the outline of my presentation will be just screenshots and few details. Nothing more because it's a UI project and for more details about my project you can visit my blog. It'll have detailed description of all the features I've developed and I'll just briefly explain them here. So the first thing which I'd like to explain is the page deck for writer. Currently in writer you'll have the page property panel which provides the basic bare minimum quick changes to the writer dock. So if you want more features so this is coming up in 5.3 so you can change the size, width, height. You have four panels here you can enable the header, footer. You can change styles and you have format panel. So all the quick settings for writer are present in this whole panel and these four panels are together in a deck called the page deck. So this was the first thing which I developed. Next up was I improved on the properties panel for impressive draw. So I added the master slide button over there and there were a few more bugs. So this was first developed by Rishabh Kumar and then Bubli and Jay worked on it and finished it and merged it to master so I took off from there and this was then enabled for draw. So this panel just slide is not written pages. It's called the page property panel in draw. So you might be, if you open 5.3 master then you'll be able to find it there. Next up was the shape stack and the default shapes panel. So the shapes deck was supposed to have two panels by now but only one panel I was able to manage just one panel throughout the summer. So that was the default shapes panel. The other one is work in progress. This one has all the default shapes which you could find on the left hand tool bar, shapes tool bar. So it has 10 categories and 153 shapes. You can just select it and draw it in your draw document. Next up was the media playback panel. I guess many users were reporting that the media tool bar at the bottom used to take up a lot of space. So this was designed as, when you select the media it'll pop up on the right hand side in the properties deck. So you can play, pause every feature that you could find in the media tool bar. You can find it here. So we're going to disable the media tool bar button but media tool bar at the bottom. So it might save you some space on the screen. At the end, I made two more adjustments. I added the import button to bitmap on the area fill panel and there was a show preview check box. So this was important because one had to restart LibreOffice to check and uncheck the previews on the right hand side in the styles and formatting side bar. So this was all, yes. So apart from that, like from now on I'm currently working on the other QA issues Jay prepared a doc for me. So I'm fixing that. And most of these panels are arriving in 5.3. Yeah, use these panels I guess and report bugs and perhaps contribute to sidebar development. That's all I guess. Thank you. A big thank you to all the students who have given us new wonderful features. This was my first year in LibreOffice helping making GSOC be a success. And I'm happy to say that we had the highest number of applicants this year. So we are known by the students out there. I also as a GSOC administrator have to say, we lack mentors. The way it was done this year by combining UI people and development people have really paid off. It is more resource demanding but it's also less use of each mentor. So please, please next year think of whether you can give a hand and help us. I'm sure if we get more mentors we can also get more slots in Google. So as a final thing, I don't, Torsten, do you have any final words? He's hitting as normal. So yeah, nothing really to add. So thanks Jan and also Moggy for co-running the program. There's always quite some admin work in the background and I'm happy that I could have shared that load. So I think we have some time. I don't know if there's questions still from the audience or I don't know, feedback of any kind. It's something which we ask. Just to say that I'm really impressed. I'm really impressed by all the work and the mentoring being done and also Jay who's not here but maybe listening to a stream who helped a lot with all the wise stuff. Wonderful. Anybody else? Okay, so end of this CRG SoC means start of next CRG SoC as mentioned. So keep the ideas coming. There's no further questions. I'd love to have all students on stage again so that you can get your applause that you deserve. Yeah, thanks guys. You've been wonderful. Thanks so much. Looking forward to more good work from you. That's it.