 Welcome back to the Janssen Room. Now on to Office for the final half of the day. Michael Meeks is here to talk about LibreOffice, so go take a look. Hello, hello, hello, hello. One, two, three, four, five, six. Brilliant. Excellent. Thank you. Well, thank you so much for coming. It's fantastic to have you all here. And isn't Faustium great? I love Faustium. Hey! Brilliant. Excellent. So this is what I'm going to say. I'd like to persuade you it's worth staying and listening, but maybe it isn't. Who knows? Let's see. Yeah, these are my views, just so you know that. LibreOffice is better and fun, so I'll persuade you hopefully of that first. And then I want to talk about licensing and how licenses should apply to everyone, not just most people, which is really important. And then I want to say, yeah, basically, thank you for your help and show you how to get involved, which would be great. So there we get. Perfect. So what is LibreOffice and the Document Foundation? Well, finally we're doing this thing right, you know? We hope. Now, if we're not, at least we have an open process so you can come and get involved and help us out and show us the light, which is cool. So if vendor neutral, no one's in charge, I happen to work for Nevelle, but spot the LibreOffice t-shirts and the D-branded slides. Good. Excellent. So it's a real free software and a hackers project. This, you know, you can get stuck in and get your code included quickly. And we have loads of people involved. Primarily the volunteers. I love volunteers. I love to employ volunteers, but then they're no longer volunteers, which is, there's one of those tragedies, you know, that you hire the best people and anyway. So, but we have some great volunteers. Obviously there's Red Hat, Nevelle, Debbie, and Canonical, just hired a guy, which is great. Google provides all sorts of support through Google Summer Code and so on. But just to give you some idea of, you know, that this is an idea whose time has finally come, the people supporting our launch were Boycott Nevelle and Nevelle. So that's pretty good. You know, if we can agree on something, then that's pretty good. The FSF and the OSI, you know, traditional lovers of each other, both in our press release, one at the top and one at the bottom. You know, this is pretty cool. I mean, just the widespread support we've had has been fantastic. Free desktop hosting us. The LGPLv3 Plus and MPL for new code, key commercially friendly license in some ways, I guess, to try and keep the door open for Oracle to come in and IBM and so on. And yet, you know, obviously stick with the GPL we love. That's only for new code. Suddenly the code from Sun is licensed with a non-plus license, the LGPLv3, but I'll get on to that later. So yeah, and this is our goal. We want a beautiful office suite that we can be proud of. Now, there are several views on open office and they range geographically. It's interesting. It's interesting. Obviously, if you live in Africa, you moan about the performance problems and your hardware is slow, maybe, you know, that's bad as a gross stereotype. If you live in Hamburg, you have this view that it is a beautiful but misunderstood thing. You know, it's funny that. But the rest of the world thinks it's about the best we have as of now, but it's really not as good as it could be. You know, this is something that I ought to encourage my friends and family to use, but I feel kind of a bit, you know, can I cope with the support cost of this, you know, the emotional capital, you know. So we want to improve it and we want to make it into something beautiful and reliable and high quality and something that actually we can be proud of and that works not just well, but better than anything else there is. And there are lots of projects out there that do this. I mean, you know, you take a look at GCC, maybe it's not beautiful inside. I actually know it isn't beautiful inside, but it is the leading cross platform compiler tool. There's just nothing else there. Or you look at the Linux kernel. I mean, the people don't even bother marketing against it because they just look silly. You know, I mean, you want to bring a performance comparison. Come on, bring it, you know, and we'll fix it and blow you out of the water. So I think we can be there, you know, and that's where we want to be. And we're shipping on Windows, Mac, and new Linux, just so you know, we love the FSF, we're even willing to bow to the slash, you know, which is good. You know, I think Free Software Foundation is fantastic. We're not formally affiliated with them, but we love Free Software. So that's where we're at. And of course, ODF enables you to move in and out of Libre Office really easily. So another thing that people often come and say to me because they're bitter and twisted even more than I am, they say, is it all Oracle's fault? You know, say nasty things about Oracle. And you know, Oracle have some serious, serious problems to wrestle with. And it's not really anything to do with Oracle actually, Libre Office. There was always this hope for a foundation, this passion that we would actually get there, you know, that the promise of a foundation, which was given as the project was created, would actually be fulfilled. But all these excuses, you know, the time is not yet ripe. What does that mean? You know, like, I mean, the problem is time tends to go bad and rot before it becomes ripe often. So anyway, perhaps perhaps in another few years and so on. But our patience is essentially not inexhaustible. But it had pretty much run out. And then Oracle is going to buy sun and was this great hope that, you know, there'll be positive change. So we waited and waited. But in the end, the change didn't come. So luckily, we've been left with some fantastic opportunities for improvements, which we'll see later. But the key, key improvement is this vendor neutrality, no copyright assignments, particularly to corporations, and just a much lower barrier to entry. You can get your code in. We want you to contribute. We'd love to have you involved. It'd be fantastic if all of you guys contributed. We wouldn't have an office problem in the next year. You know, years time, I could come here and tell you the end of, you know, the end of proprietary office software was was nigh. So that's cool. So it's really unrelated, relatively unrelated to Oracle start efficient is its own separate thing. It does what it likes. And this is what it likes. And they have hard problems. I mean, you know, they have nasty business numbers they have to make. And honestly, the community has failed them from their perspective, actually, you know, because of many of their decisions. And I would argue that these are the kind of decisions that really screw up a community. But they've tried in all, all honesty, and they haven't got a whole lot out of it. You know, it's been more pain than it is a shame when you're trying to say, look, do more of this openness. And they say, well, we tried and it didn't work. And so I'd like to persuade you that there's a local minima where you get all of the negative effects and none of the positives. If you try and over control your project, if you're thinking of opening sourcing something, don't own it. Give other people license that you accept yourself. Act as a peer. And that seems so scary, but go all the way. Don't go halfway and capture all the negatives of giving your product away and get none of the positives of getting other people involved. So you see, anyway, and they're great friends and hackers in Oracle. I love Stefan Bergman is sitting here listening to my every word and he's fantastic. And well, there's probably some other people I can't see because my eyesight gets worse. And really, this is a good motivation. You know, don't do things because because of other people. Just do it because you love freedom and not not hating it. So we deliberately trying to keep the door open to Oracle so they can join. We would love that. That would be fantastic. So on the negative side, a lot of people come to me and they say, oh, well, Libra office, it's all nice and all that, but it's irrelevant. The web is going to swallow everything. You know, this giant blob that is the web is going to come and roll you flat. You know, it's interesting because I've been hearing this argument for many years. The first time I heard it was the smartphone thing. Give up on desktop applications. The smartphone is going to be the whole market in the next, you know, two years. I think I heard that in about year 2000. Was it 99? Good thing I didn't invest then. Anyway, so finally it's come coming more true. But you know, that's a new tension to the web development. But anyhow, so the logical conclusion of a fully functional offline office suite, if you want all of the features to actually work, is you need to rewrite everything in JavaScript. Well, I mean, you don't have to write in JavaScript. You could write in something else and then compile it to JavaScript. You know, maybe when the GCC JavaScript back-end arrives, you know, we'll just have it, you know, it'll be awesome. But best of luck with that project, you know, we have plenty of bugs as it is with our type safe checking and all this sort of thing. So I don't think that's going to work. But the other problem, the other reason why it's not going to work, if you don't do that and you leave a lot of it online, which can work, that would work, you have this problem of internet connectivity. I must say, I was at the speaker's dinner last night with the people doing the infrastructure here and it's fantastic. This is the first conversation I've been on. Actually, you had fast internet and actually works. I hope it's actually working for you. This is the exception, not the rule, I would hasten to add, you know, and it would be bad if I were presenting at the front here from a web app and I couldn't get a domain name server, you know, or a DHCP lease. Or it comes with customer site and 3G. And in fact, the most interesting thing is that the people who are supposed to believe most in the web don't. So the people who you would think believed in always-on connectivity would be, say, 3G data providers, mobile companies making mobile phones, right? Do they believe that you're always on the internet? Of course not. They put loads of software on your device. Where is your address book? Does it live in the cloud? No, of course not, because I'm going to lean out of the window like this to get a signal so that I can use my landline to, you know, you need some data locally. It makes sense to have fact lines. So, yeah, and I think, you know, of course there's a lot of good on the web. Don't get me confused. But I think at the end of the day, the cloud is pretty much a rent versus buy thing. Brilliant for service stuff, brilliant, you know, for that sort of thing. But for desktop applications, it's not there yet. And anyway, my phone is an 80 Super Computer. Yeah, you should have been using them. They're great. And so we can run, you know, something like LibreOffice on a phone, starting actually very quickly, because it's usually had the flash in them. A lot of our start time is just seeking on slow disks. So actually you can start LibreOffice on a, you know, sharp, ARM-based handheld device as quickly as you can on a relatively fast mobile laptop. So, WYSIWYG, yeah, and some things are basically just impossible in HTML4. In HTML5, they become more possible. And actually, I think HTML5 is cool. So, there you go. How's it going? Well, extremely well. We have 100 plus entirely new code contributors. So, unfortunately, you can't see this in the graph, because it doesn't tell you if this guy here, the 40 people that committed in this week that we'd never ever seen before we launched were the same as the, you know, 35 that committed in this week or the, you know, 41 that committed in this so this is just people per week. This is Christmas, incidentally. And what this tells you is that commercial people go on holiday at Christmas for volunteers, you know. Yeah. So, these are presumably the sociopathic fringe here that don't talk to their family. I don't know. Something like that. Anyhow, yeah, anyhow, that's all good. We appreciate people like that. And it's coming back up to Christmas. Actually, we did our release here. So, some of this is trailing off because of the 300 release and it's taken a great big jump again after release. But the punchline is there are 100 plus entirely new code contributors with code included. Those whose patches have been reviewed and got into the repository. Of course, there's companies as well. Oracle, Novell. Oracle's code we are merging when it comes from them. Red Hat, Novell. And of course, Canonical now. And so, there's considerable growth here. Half a translator every day. So, 50 plus new translators again with stuff in. These are the concrete numbers. The real numbers may be bigger. So, that's fantastically encouraging. I'm encouraged. One new developer each day approximately since we launched. And there's still room for more. Really, there's a lot of room for more. So, yeah, develop at a pace. And we've got this great new release schedule which I talk about later. So, the Oracle one joining us in name directly, although they clearly contribute via the inclusion of their code. Which looks like it's getting smaller here, but really that's because they were working on their stable development branch as well. So, I don't think their contribution has shrunk. That's just an artifact of the graph. So, what are we doing? Well, we're trying to pay down some of the vast technical debt that we've inherited. So, you know, if you're a proprietary product and you're working to commercial deadlines and so on, there are many things you just don't do because they don't make commercial sense. Such as reading code to make it look pretty. That's a total waste of time. Trying to remove the cruft from your code, refactoring all the stuff out. It doesn't make any sense commercially, but it certainly makes sense in terms of the long-term sustaining of the code. And trying to persuade management to let you do things that don't generate value or apparent value is really hard, you know, with these people that are short-term horizons. But in our community we can do that. So, it's been 20 plus years of organic growth, maybe 25 now, and without any refactoring, with generally a total lack of code review. And, you know, it's quite an interesting code base. And one of the things I like is the opt-in approach to life-cycle management. You know, if you're a Java programmer you have a garbage collector, which is great, you know, you don't have to free anything. And if you're a C++ programmer you can believe that you have a garbage collector, you know, that deals with reference loops and, you know, free stuff automatically. But unfortunately you don't. So this here is a beautiful graph as produced by IBM. And what they do is they have a basic script that loads a document, saves it and closes it. And it does this for some documents and does it in a little loop. This is the number of times of open and close closes. Bear in mind that at the end of this there's nothing in there. It's just an empty frame, right? So you would hope it should be flat. And it used to be fairly flat. But now we're up to sort of, well, I don't know, but Open Office 3.1 was up to 250 megabytes. And certainly the end of the line is where it crashes. So, you know, that's so you know. So we've been trying to get the slope of this curve down. That's one of the things we're doing. Quailon's been doing some fantastic work there with Algrin and tracing reference leaks. And part of that is because actually Open Office would routinely crash when it exited, which is fine for weird, weird, weird reasons. Often, you know, you have many threads and the P thread mutuses are holding them, stopping them doing anything dumb. And then they're automatically deleted because they're C++ objects, right? So as you exit cleanly, they're automatically deleted and these threads suddenly race on and do dumb stuff, right? Okay, we're scribbling over. And that's fine for me because most of we never see that. But Red Hat were getting all these crash reports. You know, their crash reporter was filled full of, you know, crashes on exit and so on. And it's bad when you have unit tests because unit tests are meant to exit cleanly. And if one in three times you run it, it just crashes everywhere. This is not good. So we've done a lot of fixing that. Other problems translating the code. So yeah, you know, this is virtually useless comments, you know, the cups, cup style of commenting. If you haven't read cups, you know, if you're feeling sad, you know, and you're, you know, you have, you know, just really low and you think you're not a good programmer, go and read the cups code. You know, it just, it just warms your heart, you know, in I, this is an integer variable, you know, I mean, it just I learned so much programming just by reading cups. Anyway, here we are. So others are somewhat more useful, often with, you know, date stamps and authors and all sorts of things. That's pretty cool. And there are a lot more that are really useful, but unfortunately, a lot of them are in German. And so we have a fantastic German comment detector that uses LibreOffices language detection code, which will detect languages and blocks of text so you can do the right spell checking on them. And yeah, we puzzle the comments and go, ha, German comments. So if you're German, and you can read this, we need you, we need you. And it's easy to contribute, you know, make a difference making the code base more useful. Another thing is revision control. So OpenOffice had a check at history of revision control. And it's migrated several times, pointlessly losing revision history left and right. It used to be horrendously slow multiple hours to tag the repository, just for one module like writer. After years of pain, we had analysis and rejected git because they wanted really to use mercurial, but they moved temporarily to subversion. And then from subversion on to mercurial and routinely lost history at each of these steps. And so a reliable workaround, if you're a programmer that cares about how the code got there, was to add all of these comments to the code saying things like, ah, you know, this changed in 2005, 1212 with this issue and so on and so on. So at least you know who did what, right? I mean, you can actually get some information out of it. And unfortunately, there's a whole lot of issue trackers as well as the internal issue tracker we have no insight into that. So we're removing cruft to make the code easier to read. Things like, you know, under years since 2008, 05, you know, you laugh. But, you know, there are tens of thousands if not, you know, hundreds of thousands of lines of code. Things like this. Well, the Chinese did a huge refactor, but obviously they didn't trust the Chinese very much that they hired. So they encouraged them to add comment China and the number of the change that they did at the end. So routinely, again, hundreds of thousands of lines of code with random, it was done by a Chinese guy. And I like Chinese people. I think you can trust them. So we removed all that. And if zero, you know, if the code is not in use and you don't trust your vision control system, it's very sensible if you've got a nice piece of tested code not to actually remove it from the code, but just to, you know, either comment out, hash if they fit out so you know it's there. You know, you might need it later, right? You wrote it and tested it. Why get rid of it? So this really, again, tends to 100,000 lines of code of just not compiled. And it's a sad because we use git and we think it's cool. And so we just we're confident that it will continue to be there our history. And so we remove this stuff with great glee. So what are we doing? Well, we're trying to make it easy to contribute so people can actually get involved and be effective and do good things. So I have a wiki page full of easy hacks and you can go there and you can you can do what random stuff. But more than that, I mean, if it's not an easy hack and you have something that you want to do, we give permission. We encourage you to change and break and fiddle with Libre Office and send us patches. We'd love that. And, you know, we will almost certainly be merging them in some way unless they're totally mental, right? But so we really want people involved. I talked about unit tests. There were virtually none, unfortunately, run during the build for various reasons. I think there's some now in the Oracle tree. But we have a number that are doing quite a lot of good things every build on every platform. Yeah, Vos is an object system, a system abstraction library that was deprecated nearly a decade, well, probably more than a decade ago. I was there when we first released OpenOffice and someone finally wrote it out of the code, which is great because it was all duplication of other stuff, although wrapped around that. And we've merged a whole lot of outstanding Debbie and Red Hat, Nevelle patch sets. So we have a single base and we're all working on that, which is great. And loads of community features. So RTF export, refactoring the code, fixing hundreds of bugs, sharing the export core and so on, reducing code duplication. That's just one guy, Miklosh has been doing that. Inline interactive formula editing and these two Google summer of code guys who are outstanding done by Eunus. So you can actually edit your formula in your document. Rather than in some kind of like formula language at the bottom, which we kept, but you know, you can choose. And things like running lints on the code. Here's just an example. Well, some of the people look at my graph of 100 entirely new code contributors and they say, ah, but the only contributing a one line change, you know? And it's meaningless, you know? What's a one line change? Why does that mean anything? You're just inflating the figures. I have a lot to say to that. I mean, first of all, I think if you get no one contributing one line changes, you have a problem with your process, you know? Because some bugs are one line change. Here is one of them I particularly like. So this bug was opened in 2007 with a test case which said basically run this macro. And yeah, so we have 999999, we add one to it and we get one. Good, isn't it? Particularly useful in a financial application. You know, and thus Enron was formed. Yeah, yeah, yeah, yeah. Yeah, that was my that was my bonus. Anyhow, so, um, so I don't know, this guy turns up. This is history. He arrives on the list. He commits his first trivial patch of total meaninglessness. You know, I mean, fixing a comment or something. But the thing is, this is how people interact. They push on the door. Are you going to sit down and write a month of work and then post a monster patch of the mailing list? No. That would just be ridiculous. Right? I mean, you might write totally the wrong thing. They might not even accept your code. They might leave it lingering in a bugzilla for years without merging it. Why would you waste your life like that? Instead, what you do is you send a small patch and they go, hey, good to see you're cool. I love it. What about just this minor tweak? And you get, you know, if you love. So two days later, you know, he sends morning patches. Then he tries to do a word count. There's some idiot fix in the word count feature that's, but sadly, someone else has done it. So he goes away, asks, you know, what should I do? And it just appears later, having analyzed this bug, beautiful analysis, exactly what's wrong. It's emitting equals or less than in a less than or equals. Anyway, one line. Fix the bug. Open since 2007 with a test case. So the other thing that people like to say is that the Libre Office is just open office. It has no new features. So I have a whole load of random slides in between my talk just of new features that are actually kind of useful. SVG was the number one wanted user feature. So this is, if you look in the votes of issues where there are two top features, that's number one. It's been like that for years and not being fixed. It's not perfect, but it's a lot better than nothing if you have an SVG file. Another thing that happens is because we have this wonderful meta component technology, which is actually far harder to use than the native C plus plus, sadly. We bundle everything's extensions, you know, which is good. It's worked for Firefox, so it must work for us, right? But the problem is we put loads of functionality in this repository that no one goes to. And all the download statistics are there. Some tiny fraction of our users, less than 1% of our users, actually download the presenter console. So you can better daily downloads and the daily extension analysis. It's ridiculous. Well, you know, this is kind of a useful feature if you're presenting. So we bundle things that make sense so that people actually get them instead of not knowing they even exist because they're in some random place. Yeah, I talked about the inline formula editing. And this highlights another thing. We have an experimental mode now so you can turn on enable the crazy features, you know, the stuff that doesn't quite work yet. Hey, you can even crash your office suite if you do that. I think there's probably some corner case that breaks. But anyway, so you can go and turn these things on and in fact, it turns some things off. So, you know, we've turned some features into experimental features because they never worked that well anyway, like macro recording. So yeah, so that's pretty cool. And again, I volunteered at that. But one of the things I really want to talk about and perhaps this is not to everyone's taste is what happened here, what changed, you know? Is it just a list of easy things that you can get involved in because any idiot can tell you that's a good thing to do, right? I mean, you don't need to be a genius to lower the barrier to entry. But what really happened here to make the project actually start to exist? I don't know. Spot the difference. Let's see. So I'd like to argue that what changed there was really primarily around copyright assignment. It's really around vendors owning and controlling your code and people asking to have special exceptions from the license that everyone else has. And I think this is one of the most problematic and subtle threats we face as a free software movement today. And I think Simon Phipps has an article that he's gonna publish soon about the background. I try and summarize it. It's quite a complicated issue, but I think basically check the license applies to everyone. And if you've assigned your rights to somebody else, the license doesn't apply to them. They can do what the heck they like with it. And you need to be concerned about what they do. So traditionally, people have just looked at the license of a project and said, oh, that's fine. It's a GPR license. The GPL is a great license. I love that. That's cool. We'll go with this project. And I'd like to persuade you that in fact, you need to check more than the license. Of course, check the license. Licensing is really important. But also check there's no backdoors around it. There's no, I'm the special guy. So particularly assigning ownership to companies is a problem. This demands assignments. Apache demands a license that's like assignment. And I will say copyright assignment by mistake sometimes. What I really mean is allowing a single corporate entity to have an ownership like right. So there's many ways you can do that. You can do it without assignment. If you're a big company, you can say give us your code under a very liberal license. We'll give you our code under a much more restrictive license. And then they have a special ownership right. It's pretty much the same thing. So you see these words in these licenses are perpetually revocable worldwide, no charge, royalty free, unrestrended, bend over, might choose the angle, this sort of thing, you know, license. Why should I care? Well, yeah, it's good to care about licenses. But I think the problem is that other people work in an ecosystem with you. And so you get the license, which is what matters to you, but other people also can get a license, a special license from the person that owns the right. And that is what creates this huge problem. So it creates this barrier of entry and delay and conflict. It creates conflict because there's a property that's owned especially by someone. And when you have this kind of thing, you get conflict, I'm sorry. You have armies and wars and locks and stuff. Why do houses have locks on their front door? If everyone owned the house, there wouldn't be perhaps, anyway, I'm not a complete communist, but anyhow. It also creates a barrier of delay and entry. So you actually have to sign something in many jurisdictions and actually either post it or fax it to get it to the other side. So you're talking several days if you're not lucky. But also, I think much more concerningly for us, it disrupts quite a delicate hacker suit balance. So I like business people and I have to report to them, but there comes a certain strata in a company where you're totally disconnected from any of us. You don't know who's done you a favor. You don't know what companies really you're working with. You want money. That's what you're there for, right? Money. It's all about money. And luckily in most of the worlds, there are people at the bottom who say, well, you can do that dumb thing, but then no one will do it with us, you know? They'll all run away and screaming. And so there's this nice tension whereby hopefully the people at the bottom have some power. But unfortunately, when there's an ownership property issue here, you get a whole load of lawyers and business people starting to say what you can and can't do in your free software project, which is really, really unhelpful. But thirdly, it excludes competitors. If you want a dynamic project with lots and lots of different companies contributing effectively to it, not just little ports that benefit just them, but actually investing in the project, you really want something that includes competitors. Does your licensing setup, does your ownership structure allow people to compete with you? This is a great test of whether you got it right. If it doesn't, then you have a problem. So try and look for that. Maybe one day your project will succeed and you'll want to start a company and work in it, is the structure there. But I think perhaps worst for me, it creates fud around free software licensing and practices. So people say, oh, well, you can't trust the license. So you better assign us rights and we'll look after things for you, you know? Let's see. So the delaying conflict, there's some really good papers on this. The top example is well known, Xemax versus Emax. Interestingly, a champion of assigning rights to some at that stage wouldn't assign rights even to the FSF, which is a shame. Sometimes, some people think this is a bad thing. More interestingly, perhaps, there's a very good paper called The Best of Strangers. Who's read the paper The Best of Strangers? No one, perfect. Okay, so when I publish my slides, go and click on the link. It's really, really fascinating. Basically, it tells you why you shouldn't have legalese on Facebook. Why there shouldn't be a click through eulah. Why there shouldn't be any of those things. Because as soon as you do that, people will not give you information. Their expectation of privacy is triggered by this sort of thing. So they do this study and first of all, they ask these people all these questions. You know, what's your name, your age, what you live, what your parents call, their maiden names. And then they start on, you know, when was your first sexual encounter? Do you like, you know, the questions get increasingly risqué and they throw all of the answers away and they only record the answer where you stop. Right? So this gives you some idea of how your expectation of privacy. And so they did that for a whole lot of students on a university website and they got the number, right? And then they did the same study, exactly the same questions, but first they put up a great blurb saying, your data is safe. It has been encrypted with 100 million bit encryption. None of the results will be shared with anyone. The data will be burnt after use. It will, all of these reassurances, right? What do you think happened to the privacy score? No one would enter anything in this form at all. You know, I'm much lower. So then they tried it again with, you know, demon.com, how bad are you at a random site on the internet, you know, somewhere else. And people, there was no limit to what people were willing to fill in. The questions didn't go far enough. You know, the scores were maxing out. Which is interesting in itself, right? I mean, so this is why Facebook's Eula, which you should read, incidentally, because it makes a difference, is, you know, not shown to you clearly. And in fact, it's designed to drive away people that care about privacy, because they only create problems, right? Arguably. But the problem is that as soon as you engage with the project, you get this huge, you know, this assignment, perpetual irrevocable, unreversible worldwide, whatever. What happens? Well, you don't need to be a rocket scientist to apply the paper, I think. I think we value your contributions and hence do not require copyright. I think this is a very succinct, pithy statement from Leonard that I happen to like. Actually, your contributions are valuable whether we own them or not. And we want to include them. So I think I talked about this. I don't want to get too bogged down in these slides because they're not that interesting, generally. But I think this is perhaps particularly important. I work in an ecosystem with red hats guys who I love. You know, they're just fantastic. I work with some of the best programmers in the world in my company and also some of the best programmers in the world in theirs and we don't fight over business. However, if you move up our companies towards the top, there's a whole sales organization and a fighting in public organization that go out there and persuade people that you should passion, and you should definitely buy our product and not their product. Their product just sucks. I mean, ah, they all lose us. Right, you know, this is the thing. And so, you know, the two salesmen arrive and do pitched warfare in the customer account and eventually they buy one or the other, right? The problem is when you start owning code and the code becomes ours, what happens in this pitched warfare goes more like, ah, but this is our code. We own this. We should, and the other guy goes, oh, that sucks. We should own some code. You know, like, why don't we own it? You know, the pitched warfare, unfortunately, of all this mess out there gets imported into our world where we don't want it. We really don't want it. It's really, really done. And worse than that pitched warfare, it then extends into other technical decisions. You know, what technology should we use? Well, this technology is kind of naff. Why don't we use that technology? Oh, they own that technology. We own this naff technology, but we're gonna make it better. This is our swamp. We are gonna build the house in our swamp. It's ours, you know? And it just imports a whole load of inter-corporate conflict and also gets rid of transparency because the agreements that happen behind the scenes to allow one company to have another company's code are confidential, non-transparent, and so on. And software patents play into this, play into this, unfortunately. And so you get these, I know nothing about this project and this slide may be entirely wrong. That's my caveat. But just think it through with me. You get these apparently open source projects. OpenSpark, great. It's GPLv2 licensed and it's got a sharing contributor agreement. If you want to take things from people, it's important you call the process sharing or joint or something like that, you know, so it sounds good. All contributors to OpenSpark, this is a direct quote from their website, to represent the code base and to give the community flexibility. Yeah. Well, so I don't know. I'm not in software, I'm not in hardware, luckily. So I can say this, but it seems to me that there has been some patents spiled on microprocessor architecture in the last 20 years. All right, maybe that's just me. I mean, I suspect there has been. So you can use their code under this license that means that you can't make hardware without being sued to death. Not by them, but by everyone else. So that would be fine. You know, I mean, you can be sued to death by everyone that isn't distributing OpenSpark, which is gonna be all the competitors. Or you can just safely license from Oracle and pretend to be in an open community but actually have behind the scenes licensing agreement. So I think it's wonderful to have free software. It's wonderful to have it under the GPL. There's nothing wrong with the license. It's not the license that's the problem here. It's the asymmetric relationship that drives people behind the scenes to seek proprietary licenses, which are bad. Here's another example. You know, GPL makes everyone in it together, but here is the public face that we actually know about. And it's simplified of the patent wars in the mobile space at the moment. It's good, isn't it? I don't know. I just, I should update it. I'm sure there's some more arrows. But the problem is if one of these players comes to you and says, hey, use our technology. It's really cool, you know. So someone comes and says, use our technology. Oh, it's LGPL v3, LGPL license, whatever. That sounds like a good deal, right? You're getting the LGPL. It's a commercially-friendly license, so you can do anything. The problem is if there's any patent infringement in it there, the only people that can settle are Nokia or Apple or HTC, right, the actual owner of the code. So they have this, they're not in it with you. They're not in it together with you. They have these special rights. And so, yeah, sure, if you're friends with them today, you could build your technology stack on their technology. Let's hope it doesn't infringe a patent. Oh, and by the way, they don't care if it infringes a patent, because they can settle. So they actually have no incentive to be in it with you and actually help make this clean and safe for everyone. So it's just excessively dangerous. And there's some really good examples out there. I might want to bore you more with this. Open call, special indemnity. You know, open call allows you to have a special indemnity that others can't give you. Of course, Red Hat and Nevelle offer indemnity for all of you guys' code. Well, maybe not all of it, but if we're shipping it, you know, we'll offer indemnity for it because it's the right thing to do. Some people have that concern. But there's special indemnity. How can you have a special indemnity? Well, if you own the code, you can have other funky licenses behind the scenes. And this is part of what's driving this thing called open call. And how do you mark it an indemnity product like this? Now, when you go around scaring people and saying the license isn't good enough, you're not protected, there are probably problems in it. And we hear this happening. Why is it that Java is not on your phone with a free software license rather than a proprietary one? You tell me. Worse than that, there's all sorts of fud around the place. So people typically don't choose a plus license because they're terribly scared of what the FSP will do next, right? It could like, oh no, that's a terrible clause. So what they do is they choose a non-plus license which makes no sense at all unless you own the code. If you own the code, of course, you can move to another license at your choice, choosing, and not when the community chooses. So, you know, you have control. But, you know, these great arguments, oh well, we need copyright assignment so that we can move to the next license. Actually, you don't need copyright assignment for that. Just choose a plus license. Use an MPL, if you particularly need to. Use the GPL, use a CDDL, even if you, well, use the MPL V2, let's say. And so just choose a license that allows you to do that with the community. Don't try and control it. And people like Apache, sadly, if Apache had a plus licensing clause, we would see very many fewer CLAs today, I think. Because that's what they use their ownership right for in Apache is to basically move to the next license. But they didn't need that. There's a standing chess notch there where people say, oh well, but we can't defend the code. But it's just rubbish, basically. And then there's all these other fuds around the license that says, in this weird country with this extraordinarily broken law, it's absolutely vital that we have a copyright assignment because you can't write free software. I mean, yeah, but in some countries, you can't even speak without being beaten to death. You know, we can't adapt everything that we do to these other companies' broken jurisdictions, right? But they need to fix their law so that actually we can write free software. Why should we compromise the safety and integrity of what we do to meet some random jurisdictions' problems? So there we go. There's a lot of fun. But actually, we do have a contribution agreement. Every contribution is under the license that we use. And it's a beautiful and fair symmetry. The inbound agreement, the contribution agreement is the same as the outbound. It's the same license. Now, I'm not a lawyer, so ignore everything I said. But listen to Richard Fontana, who's worked for the SFLC and now works for Red Hat. And he's got a great talk on it. I'm going to read the slides there here about Project Harmony, which is in this area. And he says these bullet points, basically. The legal benefits of greater control, there are some legal benefits, are sufficiently dubious to not justify the harm done to the community by copyright assignment. Okay, well, that's a great quote. What about contributor agreement seems to suggest that free software licenses are not good enough for the model? I mean, this is a lawyer talking, right? You know, these are, you know, the ethical concerns involved in terms of the unequal Anyway, so I've done my bit on contributor agreements. There are some other things in the slides, blah, blah, blah, I'm fired about it, applied. Blah, blah, blah, blah, blah, blah, blah, blah. Okay, the trend is away from it. Read the GNOME guidelines on copyright assignment. They're really good. Red Hat's dismantling their copyright assignment agreements. Novell's dropped some left and right revolution. Loads of projects failed that tried this in the past. So, this is not news. So, we need your help. I have five minutes left of talking in ten minutes of questions. So, this is just a random new feature. I keep trying to put the message across that we actually have new features. We're not just the same. Our VBA support is much better. So, there you go. You love VBA, right? Did I mention that we have every programming language? So, almost whatever you program in, there's something good to do in LibreOffice, you know? That's cool. So, anyhow, can you mirror? You know, it's a plus, huh? Yeah, anyway. So, can you mirror or translate? Well, mirror admins, we have something for you. There's a great mailing list here. If you have a machine and a great fat bandwidth connection, I know some of your sys admins here. I know you guys creep in everywhere and hold the world together. So, we're small. You know, we're only 11 gigabytes for our release. It's ridiculous, isn't it? It's much too big. We're gonna make it a lot smaller. But the alternative is 76 gigabytes, you know? So, you know, switch today, mirror us instead and you free up 65 gig on your server. That's good. And it turns out that the downloads on the other side are only 160, 146 meg, and we're 200 and 200 meg. So, we seem bigger. But the reality is that if it's 200 meg out of 76 gig, it's actually slower to download. I have people saying, oh, I downloaded it in 30 seconds. You know, 30 second download of 210 meg. Okay, so this is not characteristic, I would say. But nevertheless, you know, being able to distribute these builds much more quickly everywhere and making them small and having a bigger mirror system is brilliant. And we've got 50 plus mirrors, but we'd love more. It's always good to have the guy next door to you in the next room so you actually get that 30 second download so you can update. It's brilliant. Translators. Yeah, we have a no language favoritism policy. So, we bundle all of our languages. We split the help out so it's separate. You have online help. But if you have an active translation and you have good coverage and you're working hard, you will be in the default install. So, if you speak Upper Silesian, someone came and told me they were from Upper Silesia after I'd given this tool last time. I'm sure it's a great place. But, you know, we can get your language in if it's Welsh or whatever. We'll ship it by default. It's actually very small translation so we're working to make them smaller. And what's more than that, we do quick releases. We do monthly releases and we'll backport your translation to the stable branch so you'll see it in a month. Actually, in a shipping product. So, that's cool. Now, here's another nice feature. Microsoft workspiles. You shouldn't be using them, but we can luckily convert them to ODF. So, all these are distinctive features you'll find in LibreOffice only. Can you program? We don't need ultra, well, we do need ultra-elite programmers. Actually, we have some big, heavy lifting tasks we need. But there are plenty of entry-level problems. It turns out that superstar hackers start by doing easy things first. So, we'd love you to start in our project and become a superstar hacker. That would be cool. You know, we wanna change the world. Now, we have plenty of entry-level problems. We have this easy hacks page and some of them are just simple. Removing pointless comments. You don't need to be a programmer to do this. And it's useful. It is actually useful to have cleaner code. Just requires some simple brain. And unfortunately, when I was young, I learned programming by typing in basic games, you know? The magazines used to come with type-in program. I see some older heads nodding here. Unfortunately, typing in program games is no longer a growth industry. But, if you can fix dirty code, you can learn to read code and learn the syntax and you get into it. So, you can learn to program. A language you can help with. Yeah, we have all the languages. And loads of simple tasks, but more interesting tasks too. We have four duplicate Base64 implementations, for example. I think we just removed one. So, we only have three now, but there's another two to kill, right? This is not a complicated thing, Base64. Uncalled code, we have 650. We're down from 1400s known unused methods to only 850 or something, but there's still a whole load of dead code that's never called. We know it. It can't be. CPP check, we're running lint tools over it and getting warnings of leaks and crashes and all sorts of things that need fixing. Obsolete macros that are never called. Yeah, multi-second sleeps from the QA tool. We have this great QA tool that presses buttons, but unfortunately due to race conditions, it sleeps almost all the time between every button click in case something slow happens. This is a more advanced programming task involving main loop integration and even some Uno stuff. And this will be cool. This will help us speed things up. Threading the spreadsheet computation engine. This is getting quite advanced. This is a really interesting problem in multi-dimensional dependencies. You know, it's quite funky. Writing unit tests. Stopping the thing waking up constantly and leaking these wake-ups that will chew your battery life. Let's try a new feature that's distinctive. Styles. Okay, so styles. We have a style-based word processor and it's brilliant. It's a clean way of doing things, but unfortunately it makes some things very hard. Like doing title pages. So you have this brilliant new feature and this is like one of the number one bugs in writer. How can you get my title page numbering to work? And there's frequently asked questions about it and click this and do that and this dialogue and change that style and even though it goes on. We have a dialogue like this that does it. Trivially, again, distinctive LibreOffice. It actually makes it work very easy. Can you integrate? Maybe you have some web thing. Everyone has a web thing now, right? But your heart is in the fact line. You want to integrate your content management system. Don't write some extension and hide it somewhere where no one will ever see it. Get it integrated in LibreOffice and deployed to millions of users. So it's just built in. It's just a feature that we have there. And yeah, whatever service you have, we'd love to do it. We'd love to get people integrated. And it's a lesser GPL v3, which is set in some ways, but we're competing with Microsoft Office, which sadly is everywhere, unfortunately, but not quite everywhere. There are some niches of software freedom that are growing and we're growing them. But the problem is ISVs think Microsoft Office is there. They just think it's there. And so they write things for it and we want to change that. We want to make sure that they can write them for us and at least push that stuff out in terms of software freedom strategy. So yeah, another nice feature. Moving from Lotus Word Pro to ODF. That's a good thing to do, right? Who uses Lotus Word Pro? Anyway, are you German? If you're German, we have special opportunities for you. But let's not go there first. I see the journey, excellent. Anyhow, if you're an academic, we, you know, so get involved. Help us translate the source code. It's easy. There's a USB keys with the source code on it at the desk up there. And it can be easily, you know, you can easily improve things. I'm sorry, you know. So what does what say? This one here, okay. So this is a German joke. Germans like it. It says, everything has an end. Alice Hatainenda, only the sausage has two. So there you go. Anyway, it's an important, I don't know, maybe it's not. Anyway, let's think about the academic opportunities in LibreOffice. You know, so actually we are the last large application that believes in component programming. You know, it's amazing. GNOME and KDE both used to believe in abstract component models and they both got rid of them. They just have in process C++ now. Firefox, after a great long struggle with its internal XP-con wonder, has also realized that this is just a bunch of waste. Yeah, yeah, there's Kparts, but it's native C++, right? You have abstract interfaces and you just use them, yeah? Perfect, okay. So either way, Firefox is dropping its own internal component model and rewriting it out. We're the last one that hasn't realized that it's just a total waste of time. Anyway, so there's an academic paper to be written here called The Death of Component-Based Software. Free Software is the magic bullet for code reuse. And I speak as one who wrote a component model system and part of a book on it. Yeah, so, Karen? Yes? Very substantially that's true. It's about codifying a contract between two things. But that's only one of the big problems. There are hundreds of, you know, like the confusion of concerns. Why don't we use a component model for thread safety? Why don't we use utterly generic interfaces so everything turns into a single method, do something that gets passed and abstract anything? And, you know, your whole code is full of do something methods. So how the heck do you find what's going on? You know, how can you follow the flow of code? Well, you know, it's just a disaster from beginning to end. But anyway, there you go. It's good for some things like scripting bindings, but anyway, fair enough. So hopefully we can get academics involved, we can get translators, programmers, Germans. Oh, here's another nice new distinctive feature. Yeah, those WordPerfect files are the legacy. Now we can suck even the images and they've got some weird image metaphor format that we now convert nicely. And you can save those and move them to ODF. It's beautiful. And if you're a user, you can file good bugs with a clear description better than it doesn't work. And a test document that actually is minimal that has just the feature that we need in it. And if you do that, we can fix the bugs much more quickly. Instead of having programmers on whatever programmers earn, which is a lot, doing, you know, chopping bug documents, chop the bottom half out, does it still crash? Yes, excellently it was in the top half. Chop the top half of, you know, that out. Ah, you know, whittling down this document by binary chop to the one piece that breaks stuff. Instead of paying someone a fortune to do that, this is somewhere you can really help. We have bug documents that are huge that break stuff. This is a really good way that people with no real skill can help. But triaging and working on bugs is great. And just downloading and running the latest release candlets, we're gonna have nightly snapshots soon. This used to be a distinctive feature, but then Oracle rewrote it because they wouldn't accept our code under the GPLv3 or the MPL, which is a shame. So what we're working on now, we're working on scaling, growing this thing. We have lots of patch review coming in. I spent a lot of my time reviewing people's patches, building out easy hacks, trying to mentor people and trying to scale that process. So we get more people like, I guess, like me, like Quailorn, like some of the Red Hat guys that can help mentor people and grow this community. We'd love super experienced ACE, free software developers that can help that process because we're getting a lot of people and they need love and help. Yeah, easier build cross-compilation so we don't have to compile on Windows, which is a disaster. Hourly snapshots, improvements with user interface, gonna make builds, making the code suck less. There's lots of work there we talked about. The smaller download footprint so that it's even smaller, we think we can be smaller and have more features and more translations than the competition. And we're moving up. We're starting with the bottom. We're getting the code right, we're getting the code clean and we're moving up to the user interface and starting to change things and UI improve them. I think the full blown refactors and new metaphors will come but first let's get the foundation stable. Oh, beautiful mine, beautiful, beautiful icons. Yeah, yeah, they're more coming. It's kind of a contentious. Because we have a graphic design team that likes these, I don't know. Oh, I've got two of the same one. There are more of them. Why do we choose these colors? Artists do that, not me. But who knows? That would be totally irrelevant to any of our thinking. A roadmap to the future. So we have a release train. So it's not a block of bug. If you didn't fix it by the time you released, obviously no one cared enough about it. And we release incremental stable updates. So people need to understand both of these things. The release train means check the release notes on the .0 release. Okay, so if you're an enterprise user, maybe you don't want to use the .release. Although ours is very good. Nice to add, relatively bug free. But the .1 release, which is coming out free as Monday, release middle of next week, is going to be even better, and even better on a monthly basis. And we're going to synchronize our release plan with the wider free software desktop. So we'll release at a time that makes sense to get into your distribution so you get the latest and best office suite. And it's pretty rapid fire. There's the thing. Basically, we're just going to be a normal free software project. So here are my conclusions. We want to be big and cool and fun and vendor-neutral and vigorous and turn this thing into something that kicks ass like you wouldn't believe. I think we can do it with your help. We're going to be ungrateful to corporate control projects. Actually, if you have a corporate control project, it's not fair to say, oh, but that company, they invest so much. They're doing almost all the work in the project. Isn't it only fair that they have copyright assigned to them? They say, what? This is totally broken. They're the only one doing all the work in the project. This is ridiculous. It should be a wide open community full of people contributing. This is a weakness. How can we have this one person controlling it? It could fail. That company could do something dumb. We need to be ungrateful and positively discriminate in favor of projects that are actually proper community projects. So Postgres, Iced Tea, LibreOffice, I encourage you to use these projects. LibreOffice also has, you can strike a disproportionate blow for freedom here. We have loads of users. We have a $100 million user base to cannibalize. Most of it on Windows. We'd love you guys to help us in that process. And we want to grow that. We think we can go two, three, four times as many as that without much difficulty. And we want to get people excited about free software. You don't want your friends to be embarrassed. You don't want them to have crashing bugs. You want them to say, this LibreOffice thing is cool. It really works. It's stable. It's sexy. Wow, it does this thing. I just discovered, you know? Oh, you can't do that in the alternative Microsoft world. Look, isn't this cool? That's what we want to be. We want to have a cool project people get excited about. And the way to get there is just to try an easy hack. Get stuck, you know? Put one hand on the other hand, foot, and you know? Get stuck in. And thanks for all your help and support. We would be nowhere if it was not for people like you helping us, supporting us. And we really rely on you. You know, we're betting a lot. The LibreOffice will demonstrate the power of freedom and openness to change software projects and, of course, to change the world. So please help us do that. Thank you. Well, thank you. We've got time for two or three questions. Meanwhile, I would like to ask the next speaker to already step up to the desk. Any questions? Questions? Questions? Oh, we have stickers as well. So these wonderful people are going to run up giving you stickers in case you don't have them for your laptops. So you can help promote LibreOffice. Ah, there's a gentleman there. Hello, and do you have any plans? Well, do you have any plans related with accessibility or with LibreOffice? Do we have accessibility? Plans, future plans to improve accessibility support on LibreOffice. Yes, on Linux. Yeah. So I personally wrote at least half of the accessibility bridge for Linux that allows you to use the native accessibility stuff instead of go to Java and then to the native stuff. And we've done quite a lot of work to improve that. So yes, it's not perfect. We would love your help. It's not a lot of code. It's like a 500,000 lines of code does the whole accessibility bridge. 500 to 1,000. It's 1,000 lines. No, I mean, future work relates to accessibility because I mean that you are talking about the current support that LibreOffice has, right? I mean, I am asking about future plans about accessibility. So I didn't hear any of that. But we have a great accessibility story. Ask me at the end. Is there anyone else that has a question quickly? I'm sorry. I didn't mean to carry you off, but I just couldn't hear. Come on, Geoff. You've got to have a question, dude. No more questions? Perfect. Well, thank you so much. Just one here. Oh, nearly escaped. Are there any plans to improve the build? My laptop needed six hours to compile the whole thing. Yeah, so it turns out that this is not our fault. The C++ compiler should compile instantly, right? Everyone knows that. So yes, we have a lot of code. We're reducing the amount of bloat. So it compiles quicker. But we have a better build system actually being done by Oracle, although the guy doing that is now working for Canonical. So we will have a faster build that will parallelize much better. But at the end of the day, if you're compiling 8 million lines of C++, C++, I add, it's going to take a while. So we're trying. Thank you. Cool. Maybe one more? Last question. So based on your comments, would you characterize the business model of MySQL and QT when they were dual-licensed as inherently bad? Can I say what about them? Based on your comments about contributor agreements, would you consider the business model of MySQL and QT after dual-licensing when they were in fact to be? Yeah, so I didn't mention those things by name. I think they're bad. You'll notice. But I think you need to think very carefully about dual-licensing business models. I think there are acceptable ways to do dual-license business models. And if you read the GNOME contribution agreement, it codifies the kind of things that help protect against the worst excesses here. So there are ways of making sure that those companies are in it together with us still, but I have not seen one yet. I've not seen a contribution agreement that actually does that. So yes, be very careful. And I speak as one with some experience here of being a massive advocate of contributor agreements and now being wiser. So, thank you. All right, well, thanks again. Thank you. Thank you. Thank you.