 Hey everyone good evening next one up, and I think that's the the last talk in this room for today It's the GSOC panel So that's not about me. That's about the students. We're just coming up here Hannah and Paris and then just Make a few words and then hand over To the wonderful students. So GSOC I'm only of chance. You don't know what it is It's short for Google Summer of Coach. It's an international program. It's sponsored by Google. They're grateful for that Google Thank you for many many years of sponsoring wonderful projects There was some change this year Used to be for students only like properly enrolled students at university Changed so from this year on it's from anyone 18 years or older There's a little risk there. So They say like without any let's say massive open source prior experience or kind of newcomers to open source and Google's funding Both the organization with a bit of money and predominantly the students Projects can be of two sizes 288 years and 350 hours and has to happen over the course of the summer and late autumn Yeah, it's scaled up massively so started 2005 Liberals has been part of that since the beginning And it's now I don't have the numbers from this year But it's it used to be like 1200 something student last year and more than 200 different open source organizations So it's really quite large and it's an honor to be part of that Right, so for this year we have two students that Google was sponsoring and People here were mentoring first of all big shout out for the mentors March me close. I've seen I didn't forget. I don't know if Mike maybe you're also helping with mentoring so all the mentors all the people review and code Massive thank you for doing that. We couldn't do that And of course people like doing the boring stuff in the background like organization and payment and form-filling And Marie predominantly Right and that out of the way It's not with some student presentations like showing off their their wonderful work here And so we start with Hannah who worked on PBA macro tests and improvements So with a warm applause welcome Hannah the people I haven't met. I'm Hannah nice to meet you Yeah, so my Google summer code was the PBA macros tests and missing API So basically had to a lot of tests and the first thing I want to say Was that to start with is quite difficult to get into it because like one of the prerequisites for GSOC would you have to do a level interesting difficulty easy hack And they were all quite difficult. I found anyway, especially being quite new to well relatively new to coding and stuff like a lot of them had quite a lot of comments and I think for starting off the barrier to entry is quite high And it would be brilliant if more people could file some easier easy hacks to get more people like me interested Yeah, so for example this one like Like 46 comments you have to read through before even getting started and like the easy hacks been deleted So it's a bit questionable whether it is an easy hack or not. It's just stuff like that. I found quite challenging Yeah, so I didn't want to talk about a bit about what macros are useful I mean, you probably already know but I just wanted to like quickly skip over it So yeah, just wave automating tasks And you can read so yeah But they are useful So this was What my project was mainly focusing on basically writing my tests in word testing them in writer and then seeing Where there are areas to improve the code or whether bugs and things didn't work As well as I wanted them to or as well Like they didn't work the same in word as they worked in writer So yeah, and these are just some code parts as well So this is just a bit about the like the structuring of the code. So you yeah, you start with your macro and then you can look at the the VBA API and then the Normal API so mostly I was just writing tests in the macros but then I did change some code Like in the VBA section of LibreOffice and then yeah, but I didn't really get into the core But I like doing the coding more in LibreOffice rather than VBA writing the test because it was just more fun Yeah, VBA is not the most interesting language. I didn't find but yeah And Then why is this useful for compatibility? Basically the main thing and also like preventing regressions Yeah, I guess people use the macros as well. So it's good just to keep Just keep improving stuff It's just an example test script Yeah And then this is like so This is just an example of what you'd expect so in word if you did this So I wrote a macro to do this So you'd expect there to be the same thing in writer but in writer You'd expect this but actually it doesn't work because there's no characters property So it's just stuff like that. I was trying to fix or like realize Yeah, that still actually needs to be done So if anybody wants to volunteer to add that or you know, it's on my to-do list And these are just some of the test documents I did so I tried to pick Areas that I thought would be quite useful to cover the most ground so I didn't focus Super a lot on like one area. I tried to move around quite a bit just to get the most use out of my summer, I guess This is just an example test I think So then this is what I did Just some like bullet points of main things I did I had to add it in all my test files I fixed some some things that I found that fix some bugs really added some properties Yeah, and then so I one of the things I did also was add my test framework So now I can just have like a nice array of my tests and then they run and then I can see which ones work and stuff And so you can notice like some of these are commented out because not all of them pass Yeah, so there's still lots to do Yeah, so some of my interesting changes. So one of my changes obviously this isn't the whole change Was that new find objects to the find object as a he had find replace I wrote some tests and for that and this find object was constantly being like Deleted so for every property that was set on it was just like created and destroyed it wasn't that useful. So I Made this small global and then yeah, one of the really useful things I did was have this message rock I know it's only a small bit of code But like it was really helpful because my debugger I just gave up with the debugger is just too hard To like fix so I use mostly like print FD bugging and stuff, but this showed so in VBA you can write a message box and then it's like a It shows what's happening basically and yeah, so this displayed the contents, which was really really useful So hopefully for the next person that tries to do some more of this this can help them as well Yeah, just some key things I've learned Um, yeah option explicit. I wanted to talk about like that. So In VBA like you call your function names and they don't automatically update when you change them So there'd be times where I try to run my code and I'd be like why is this not working? But the option explicit updates Your function like names and whatever they're called if you change your case. So I was actually really helpful Um, yeah, there's just loads to do. I mean, they're yeah loads to do still Yes, there's like over 300 objects In word just looking at their documentation and each of these have loads of properties and methods as well So, I mean I couldn't possibly do all of that Yeah, so there's just there's a lot to do and also I don't know what objects are really used and The most useful to implement and stuff like stuff like that. So that means more research And some tests don't need to fix things off. But yeah Yeah, here's just an example where word behaves strangely like inserting new lines For unknown reasons to me anyway If anybody has any these about I thought I might be to do with the purses Just looking at the code quickly, but yeah, they used to do still so And the next thing is just thank you to my lovely mentors and the community and for inviting me as well I've had a lovely time and it was nice to meet you all Any questions? The example you you gave about about the missing property the characters property. So that sounds like something That was not You know less of a bug and more of something that was like an incomplete API coverage So is it so are you testing something that was supposed to have been completed and and and this was missed or Or is the functionality of you know being able to run the VBA? macros only partial Partially implemented and your tests are telling us what's missing Yeah, so my tests My tests so they were testing what bits of the API were missing to implement as well as finding bugs So there were some sometimes when I changed like that wasn't off by one error So I changed that to make it Compatible, but that yet so there are still a lot of missing parts of the API I'm also trying to find those and see where we could like push and and write more new areas as well So like there are a lot of methods missing from a lot of objects Yeah, but yeah, it's quite incomplete, but it's quite difficult I found to document it because there are just there's just so much Yeah So thanks again, Hannah awesome stuff and next one Paris You just display that with extend Z compressed graphic support and Slides are coming up in a second and the stage is yours Paris Hello again So one thing you probably notice immediately is that I don't have the beautiful liberal office slides. So that's But I promise a search for them. I couldn't find them. Anyway, my project is extend Z compressed graphic format support and Well, there is a line the title the formats are GZ compressed, but the title was chosen already So what can you do? So if we can take this title word by word the the extend word is because SVGZ import was Already supported. So we added a couple more formats, which are WMZ and EMC which were not previously supported So what is a WEMF WMF or an EMF? We need to understand that before we move on to the WMZ So it's a Windows metafile and an enhanced metafile. They're vector graphic formats a lot like SVG They're drawn by a metafile record structures that include drawing commands object properties and the configuration settings That means you have this metafile structure in the file It tells you draw a polygon here and when you play back the file it draws it there a lot like SVG If you're wondering why they exist in the first place. Well, they both came before SVG and I mean, they're still used because they're used in competitor So What is WMZ and EMC? Well, it's just a gzip compressed WMF or EMF That's just it. So a WMF file you take it you gzip compress it and it's now a WMZ You change the extension as well. Well, of course as you know, this can reduce the file size by a lot I would say that it was more useful in the past because of slow internet speeds. No, it's need to be compression or You know floppy disks, you know need to share the graphics there But it is still used it exists in all documents so we need to preserve it and we need to support it and Importing SVGZ was already supported but exporting was not So we had to add that as well. So here's the work done. We added WMZ EMZ format detection support by decompressing the first few bytes You don't want to decompress the entire thing and then turns out it's not a WMF So you decompress the first you check it and then you decompress the rest and then You know import and export support as we said So decompression Supported the gzip format. There is a Z codec class that supported the the format when you decompress But after you compress the gzip header was not added So we had to fix that as well and then unit S Quite a lot of them but not as much as Thomas would want actually that project was quite small I started during the community bonding period, which is three weeks this year. I don't know why it's quite a lot So I started coding as I got bored So we moved on to a bonus project, which was make PNG writer use live PNG The reader was already converted to the PNG We had our own implementation before And Thomas had already started working on the writer So he suggested that I continue his work and I did I continued Thomas's work He had support for several chunks that were missing Her GBA and one innate bit pallet support and we added some PNG suite tests. PNG suite is like this Zip of a bunch of PNGs it tests for everything interlacing different sizes different pallets, etc This is more for consistency because it's a little bit harder to test that the file is actually open and pixels are actually The way they're supposed to be so we would just import the tasks check the size check out that everything is alright and Export them and check that they match And then at the end remove the old PNG writer and fully integrate the new writer And that is it. So that conclusion and the final thoughts of the project Well, LibreOffice has been a great introduction to open source It is the first open source community that I've been a part of The community is very knowledgeable and always eager to help whenever I would go on IRC, mails, etc There was always someone who knew exactly what I wanted It greatly improved my code writing and especially my code reading skills It was fun, obviously and Yeah, I hope to continue contributing for years to come That is all. Thank you for listening. If you're gonna only outline like what we had there before the PNG for the export There was our own implementation just like the reader. It didn't use the PNG Yeah, so now we have support for working with the compressed versions of PNGs of SVGs, right? I think you mentioned the VMMW maps and and the the OD whatever formats are themselves compressed is there do you think there is There's justification for something like a more general framework of some sort for like transparently looking into compressed Files so that we could like generically support Compressed versions of additional formats or is that or is that overkill? Yes, so this was actually one of the first things I considered. I Message Thomas about this and I asked him, you know Why don't we support everything that is GZ compressed? But turns out nothing else is really GZ compressed and that in the day the user just uncompressed the reason That we need support for WMZ say for example WMZ is inside a document Well, you cannot you cannot uncompress it inside the document But if it's a PDF.GZ you can always un-compress that and also there's like no other formats that use compression as far as I know Okay any further questions we got a few minutes left so there's one that's printing action. Thank you, Claude Yes, it's not a question to you Paris. It's just a general Google Summer of Code question So I'm just interested in the statistics on how many applicants we got how many got through what did the funnel look like? If you can if you can share that this year because normally we have more and what can we do to get I mean It's assuming we'll do Google Summer Code next year. What can we do to improve that? Yeah, so I don't have the Precise numbers Maybe we might remember so we had but we were not the only orc this year. We had significantly fewer Applications and those that we got were from really quite different corners so so the Google changed the rules quite quite substantially and that did apparently affect Us and other orcs more than so for example research open-source Organizations closer to research stuff apparently were less affected Because they were probably been what they have been recruiting their students from let's say in-house And they had no prior open-source experience. So there was kind of the standard like KDE and other projects they they would normally track students or people who have prior open-source experience and that was kind of So Google kind of switched from let's have students to let's have everybody but without open-source experience And and they they said that they're gonna tweak that They're kind of that's gonna be some AB testing I suppose so they tweak this massively and they're gonna tweak it again And then I'm kind of compare like what's worse the optimum I suppose so I think this year is a bit of an outlier if you look at the numbers like over multiple years I think you can learn something but if you look at this year, I think this is this is an outlier and On the other hand, well, of course the the other limiting factor beyond having applicants like like people who are obviously like passing the test and then like being considered Valid applications. There's the other side. That's the mentoring side And I think we have more of a problem there probably Going forward so so that that's mentoring is something that that takes energy that takes time And if you do that like every year since 12 years and then maybe you want maybe you want to break so That's that I don't know. I think in Mario's not here Anybody else Cisco maybe anybody from from the let's say in a circle Anything to add to that. I don't want to I'm not claiming that's that's That's necessarily all accurate. What I'm saying great then Then thanks a lot to everyone involved students mentors Google for funding it Tdf for hosting it And all of you in the audience for listening Thanks a lot and I'd say let's um Let's quit here And have five minutes earlier Go for some nice dinner. Enjoy the evening. Enjoy the rest of the conference. Hope to see you all tomorrow All the best