Keynote - Integrating ownCloud and Collabora
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Meeks, Michael
Come and hear how the Collabora Online extension for ownCloud adds rich document editing functionality to ownCloud. Hear how you can deploy this both at home with CODE, and at scale. See how the code is structured and how we tackle security, document isolation, and interactivity. See a demo of where we are at, hear about what is next, and checkout how you can get involved in accelerating that future
 Please let me shortly introduce Michael Meeks, general manager at Collabora Online. He will talk about integrating on cloud and Collabora and I hope you have a good day. In any case, if you want to do meetings, whatever, have another talk, you want to tell, just let me or Felix know we'll make it happen. Thank you very much and have an awesome day. Thanks. Thank you very much. Excellent. Let me just grovel and plug my laptop in very quickly before it flakes. Sorry, I just got off a train and it was a lovely train. I slept all the way through the Czech Republic. So thank you so much for coming and getting up early to see this awesome work we've been doing. It's a real pleasure to be here. So thanks for the invite. I'd like to talk a little bit about what we're doing here. I'll try to make this a technical talk because I think there's a business you want tomorrow. If you like to ask questions, just interrupt. Hello, you old friends. Excellent. So just shout out. I'm going to talk through what we've done and what you can get now. So we have a thing called code, which is the development edition, but pretty much everything I show you here you can get and test and play with yourself right now. So this is not a good slide to start with, but I'll talk through what it is. So essentially, Collaborate Online allows you to put LibreOffice inside your own cloud instance. And it's a beautiful thing. It's just a simple extension. OwnCloud is highly extensible, as you know. This is a very important feature. And so we need no extra functionality at all. We can just drop straight in and provide lots of nice richness here, which is great. Why using LibreOffice makes sense? Well, LibreOffice is extraordinarily feature rich. We have just a huge file format support, as you probably know. And people are used to using it on the desktop. It does what we call high fidelity, whizzy, wig rendering. What you see is what you get. So what you see on the screen is what you print on the paper, complete with funny diacritics, strange language issues, odd fonts, weird charts, and so on. And in 1.0, we have some form of collaboration. So collaboration for us is the key, not just because we call it Collaborah, but also because people really, really need to collaborate around documents. And I think that's just one of the key things that OwnCloud provides already. Obviously, it's a brilliant means for sharing files and collaborating with users. But we want to just make that much, much easier, and of course, with free software, a productivity in the cloud. So perfect. For now, we have a thing called shared editing. I'll demo the existing product first for you in a second. And then maybe we'll have some collaborative editing in a minute, just to show you the future. Shared editing is easy to understand. The idea is essentially that only one person can type at once. So there's still only a single user actually typing. And it's very easy to change between those users just by clicking and starting to type. Well, I should be requesting this thing at the bottom and typing. So it's a very nice way to just share. Often when you're in a meeting or something, people are listening. One person is minitting, and the rest are listening, heckling, this kind of thing. So it covers this quite important use case. And of course, you still have the assurance that your document is actually there, and this is the document you're editing. It's the latest version. So even with a single user, shared editing is extremely useful. And we use it at Calabra quite a lot. So my product management spreadsheets are all in own cloud sitting and being edited through a Calabra online. I think this slide has probably been done to death, because you will know this stuff. What else? So from an office perspective, I think it's important to know that the workload is running on a CPU you can control yourself and have on premise. But in terms of the office space, when we look at other competing online office suites, there is an expectation that is repeatedly reinforced that this is a basic subset. If you've gone to use Office 365, you'll notice there are a few basics in there. So for example, you can't edit a spreadsheet that's bigger than five megabytes. So it doesn't take a long time to make a spreadsheet five megabytes. If you load that's Office 365. Of course, Google Docs has quite a richer feature set than Office 365, but even so, it's not wonderful. I think other interesting things would be like inserting charts. You actually can't insert a chart in Office 365 online, except in the spreadsheet. So try putting one in your WordPress thing, Word Online or PowerPoint Online. But bad luck. It's just not there. There's no button for it. You have to do it in some other way. And there are size limits and rate limits. People get used to this idea of a reduced feature set. And that's great because we have loads of features and we think we can capture these light editing use cases and we can excel. Yes, we can do better in so many ways. The other thing that's interesting about the cloud is of course that we're passionate about the open document format and freeing your data. And of course, that's really useful for getting data out of the cloud, you know, because data goes into it and it needs sometimes to come out and move to some other place. But broadly, as long as it's there, it doesn't much matter. This use case of I emailed something to someone outside the organization and they can't edit it doesn't need to be a problem in this case. You email them a link through your own cloud. You share the link. And if you've allowed them to edit it, they can just edit it in their browser. No software install, no interoperability compatibility problem. It runs in any browser on any device. So this solves a huge chunk of the interoperability problem. And that's very nice. So you can take this excuse and its objection to using free software and open formats off the table. And of course, by default, we create open document formats in OCloud. The other interesting thing with my Crasse business hat on is that there's a whole load of people out there running quite large instances. The enterprise installs of OCloud and other enterprise fast and can share solutions. And you'd be mad not to buy support for that. Particularly when there are smiling, happy people that will help you when you need it. And when and if the crisis strikes, lightning takes your server out with a big zap and corrupt some database in your Oracle server or something, the OCloud people will be there to help you and try and repair your systems as quickly as possible. So I think that mission critical aspect of it is very interesting to me from a business perspective. Perhaps you don't care about my business. But I want money so I can invest in free software. That's my passion, not for its own sake. So here we go. So you can go and grab it during the talk. If you lose interest, you can go to this link. And there's actually an OCloud version installed in a virtual machine there you can download and play with. You can grab a recent Docker image which doesn't work on older Ubuntu. So I think the last LTS of Ubuntu is missing some kernel patches that makes it not work, which is a shame. But hardly our fault. So grab it, have a go. And as I say, it should be extremely easy to deploy. How that works, we implement a thing called the WAPI protocol, which I'll talk about later. But I think the thing to say about WAPI is this. So WAPI is a very simple protocol and it basically unifies authentication and file access. So these two things are the exact thing you need to integrate with OCloud. Why is that? Well, when you use Collaborer Office, you don't need to use OCloud. You don't really want to be typing your password in again, do you, to load or save the document. That would really suck, right? That would be absolutely terrible. And of course, you don't want to be telling Collaborer Office, you know, browsing in a file selector to find an own cloud instance to load the document. This would also be a terrible user experience. We want something beautiful and sweet that just integrates nicely. And what WAPI does this is it's existing protocol and it's documented. And the amazing thing about it is that OCloud is just incredibly rich, as I understand it. If you want an active directory, multi-tiered, something architectural, you have this complicated L-dap setup and you store all of your files in an object store made by whomever, that OCloud does all that and that's brilliant. But from my perspective, it's even more brilliant that we don't have to care about that. We just reuse it all. We plug in, OCloud does all the hard stuff and we do the easy things like complex document layout, interoperability, you know, all that collaborative editing. So it's really a wonderful symbiosis, I think, and synergy of these two rich pieces of code. So let me just try and do a demo quickly. WAPI permitting. I would tell you the story first that I went to travel to Bruno for the LibreOffice conference. I was about to give my keynote next day. And of course, I haven't written my slides because the slides are supposed to be fresh. I mean, stale slides are a real problem in our industry. So always write it the night, if not the minutes beforehand. And anyhow, the laptop chooses at this moment to die in a very horrible way. So yeah, I've had an interesting week. And anyway, that's why I'm running Windows 10. So it just so happens that the open SUSE that I have over here won't even render anything. So anyway, enough, let's try and find a browser. Perfect. So this is Collaborate Online. Now let me get back to the own Cloudy bit. So it looks more own Cloudy. Presumably this back button will do that. So you can see, you know, our files as you're expected to see them. You know all about these stuff. And you know, you can click on a document. And in due course, it gets authentication, it passes the file through WAPI to it, it loads it, renders it. And you know, here you are, you can fool around and say, hello. And get the capitalization wrong. That's very important. I was always getting in trouble at SUSE for making open SUSE with the wrong letters. So there we go. Some branding consultant can get me afterwards. And Tuesday is dollar day. Let me try. So what do we have? We have a whole lot of functionality under redo, all sorts of things that you expect in an Office Suite essentially. This is all the shipping stuff that's actually there now. Let me try and find some more funky, not a tab, but document. This is still the demo server. Perfect. So what about presentation? So I wonder if it's got, so anyway, you know, you can move stuff around, fool about, you know, insert images, you know, fiddle with bullets, you know, simple basic editing. And of course, you know, save it all interactively. And multiple people can come in. It's a bit hard. I'm only one person. So I can't, you know, I can't show you that. What else can I show you? Yeah, so we have a nice table widget up here, which is pretty funky. Let me try a writer document. See if I've got any. I wanted to show you. Okay, let me try and show you some of the nice things we have. So in terms of slide transitions, we have quite a nice number of things here so that we can download this guy as SVG. Oh, I'm sorry. I need to sort of let this do what it wants. And so we can do fades and wipes and, you know, all sorts of animations with text and, you know, all of this good stuff. And so that's basically just running an SVG. We just use the convert to SVG and we can, you know, change our bullet points and, you know, have their colors change and all sorts of silly things happen. I would point out that if your presentation has too many transitions and funky effects in it, you're probably wasting your time. But still, you know, customers like that and, you know, it thrills them obviously to see that, you know, that bouncy arrow. We have to support it to keep them all happy because, you know, if you had spent, you know, 90% of your slideshow construction time adding animations and then they aren't there. Just imagine how angry you could get. Anyway, there's something else that you'll see here which is the screen has gone slightly gray. I don't know if you notice it's hard to see. And then when I click on it, it gets bright again. So one of the things we want to do is, you know, this is quite an efficient architecture and I'll talk about that in a minute. And one of the things we want to do is reduce bandwidth use. So I don't know if you notice my browser has a whole lot of tabs and I've only had it open for a few minutes. Perhaps you're not like me, but I have a thing called the tabpocalypse which is where my browser gets more and more and more and more tabs until each of them is so small. And then I start accidentally closing windows or machine wedges and then I start again, you know, and that's great. What's not great is if you have to have a whole Libre office sitting behind every one of these tabs for each of the documents you have open, consuming server capacity, and potentially bandwidth as well because you'll never find that tab again. It's lost. It's part of the archeological strata down here. So you're going to start another one. And what we don't want is to end up with, you know, hundreds of tabs, you know, all of the same documents. And as you type a key, you know, we render a million times and, you know, this is not clever. So as we're inactive, I'm trying to be inactive at the moment, but it eventually realizes you're not there. And if you switch tabs, again, it fades out to gray. And so we can then cut this connection down. We can actually save and destroy the server instance. So there's no bandwidth use that's needed there. So it gives us a lot of flexibility around reducing cost and server capacity, which is good. We like that. So yeah, that would contrast very heavily then with a VDI solution where, you know, you're effectively looking at a window on a real desktop, potentially in its own virtual machine. Drat, I should have a slide about our security model. Let me try and remember that. What else do we have? Let's try this guy here. This is a docx file. I apologize for that, but, you know, the customers like to know it works. What else? So this is bigger knit. There we go. Now we can see the bottom. That's a bit better. For some reason, the browser was not very happy. So you know, we can see we got various things, word counts, and you know, you can do even your insert and over type. You know, that's very important as you press insert. I don't know who uses this feature. You use that feature? No. Oh, sure. Yeah, I have another user volunteer in the front, but yes, you're right. I think I'd actually have a very nice sample server that you can play with. I'm not using it. I'm using this. This is a server in Ireland. I shall the question, the question was, can I be your co-co-co-cow orca? Can I also work with this document? Andres, maybe you can, well, I haven't shared it with you. In a minute, we'll do the collaboration one. It'll be more fun. But yes, this is essentially an island. I'll get rid of Ava type because it's a really lame feature. Oh, yes, this is a key thing here. So yeah, let's see if we can resize it and get it to re-render. So yeah, this is my pitch for the American election. It's the way it should go. So why don't I just do some typing? Because that's usually what people are interested in. My one-handed typing is really not what it could be. So there's a whole lot of shortcuts. You can use your heading type stuff. One of the things I like about LibreOffice is you can go star bold, star. And suddenly, your text is bold. I don't know if you notice that. Or if you go underline, look at this beautiful magic, auto-correction engine in the background doing all of this fun stuff for us. What else? Yes, I'm wanting to put a table in or something just to. The problem with this demo is that since we actually made it work, it actually saves the content. And it auto-saves quite regularly. So the more demos I do, the more mangled the document gets over time. So I'm going to go into that. Absolutely. That's a really good question. So I mean, I think there's a documentation question there. But in terms of features, you can see the toolbar here. It's a very basic editing functionality. So if you're going to want, for example, multiple balanced columns on your page, we don't do that. Actually, we do render that. So if you have already set it up on your PC version and you want to edit someone else's document that has multiple balanced columns and change your name or the page, it will render and lay out perfectly. But there isn't a dialogue to change that feature. How would you predict? I tell you, the best way to predict it is to either just have a play with it, install it, have a look and see what you get. We can provide you with a list of editing features that are there. Obviously, we do that. But these features change quite quickly. So we add more and fewer features. It's actually very easy to add features because they're all there, really. It's a matter of choosing what to expose. So the reason that we don't add some features is that we want to make collaboration easier to implement. So collaboration is an interesting problem. And we'll look at that in a little bit. Does that help? So you... Somehow. Okay. So play with it. My hope is that we can get this under the radar a little bit into organizations and test it and play with it and get people excited about it and just capture that benefit of the on-premise collaboration. Yeah. So the plus side of it, having a very limited feature set, isn't anything complicated there, right? You know. Sure. You said, oh, well done. Sure, sure, sure. So yeah. Okay. So I mean, in terms of creating rich documents and templates and editing your headers and footers and doing sort of getting templates set up so they're nice, you know, vast numbers of editing use cases are just this. You have a complex template with, say, a whole lot of fields or forms or whatever. You can't edit fields in here. You can't create these templates in Collaborate Online, but you can do them with Collaborate, you know, PC version, right? Collaborate Office and upload them into your own cloud and then everyone can use them. So yes, it's a deliberately basic editing functionality, but the good news is we plan to improve it. So, you know, this is step one and we're getting that. Does that help? Any other questions on that while I'm here? Good. How long am I supposed to speak for? Let's now tend to. Is it another half an hour? Yeah? Okay. Perfect. Heckle me if I'm doing it wrong and I'll wander off. So yeah, you know, you can set text colors and themes and styles and, you know, it's, you should be using the styles, of course, all this other stuff. Yeah. Okay, okay. So I think that's it pretty much for the basic editing experience. Maybe I can share something with Andres and, you know, I don't know. It's the wrong button. Try this one. I can't spell. And he doesn't have a link on here. Try. Nope. We'll give up on this before I embarrass myself further. So that's the demo there. I think if I do shift F9. Let's try that. F5. Perfect. So I just want to talk a little bit more about the architecture and how that works. So essentially we use WebSockets for all of our clients. So that's not written on there. But we also use a WebSocket like protocol internally. To make this efficient, in LibreOffice is quite a large chunk of code. And if you've used it on the desktop, you'll be aware that it's 150 megabytes small or something like this, which seems like a lot of memory. And when you load it for one person, everything is bad. Now if you use Java, on the other hand, you'll notice that any Java app you run takes forever to start, right? It has a very similar problem. But once it started, you know, you can then spawn lots of threads and do all sorts of clever things with it. So we have various approaches. It's actually based on a KDE in it. I don't know if you know this idea of doing lots of work ahead of time and then forking and serving users. So we think of the 4Kit, whose basic job is to set up lots and lots of stuff, read the configuration, link all the libraries, page all this stuff in, get every component initialized. And then that is used to spawn off all of these children that actually used. Now as we spawn those off, we have a CHroot jail. So we encapsulate this document in its own world. So it can't see any other document and it talks only to the web service demon about that. So we have a thing called a LibreOfficeKit, which provides a very simple C++ API for LibreOffice and just exposes a tile rendering. So actually much of what you saw just now, maybe I should do a gratuitously technical thing here. Let me find a document and show you what's actually going on. Although it looks like an interactive document that you can play with, so you have a blinking cursor and you can select and fool around with it. Actually when you start to look at it, F12 doesn't work on here. How do I do the, this is Edge. Does anyone know how you do the debugging thing in Edge? I don't know. I should use Chrome, shouldn't I? Where is it? There's something here. I'm sorry. I apologize again. I am covered in shame. But essentially it's a whole load of tiles there. So 256 pixel square tiles. No, I'm not going to be able to type quick enough. Let me just abandon ship and go back to this. It doesn't work at all. So actually the really encouraging thing about using Windows 10 is that I get upset about Windows Linux when it doesn't work and then you go and use the opposition. And suddenly everything is okay. So the Web Service Demon does a whole lot of things. It proxies these tiles. It gets information out of this CH route jail, the tiles, and it caches it for you. So if you look at the same document again, it's very quick and you can do rapid viewing of documents. So it caches things and it serves through a WebSocket to the clients various things. There's also an admin console there so you can log in and see who is using how many documents and what memory and so on that we're continuing to develop. And yeah, this is I guess the basic picture. I'm trying to work out whether there's a whole load of complexity here that you don't notice. So prioritizing what tiles are sent and refreshed, you know, queuing stuff on asynchronous pieces. But the Web Service Demon is not very big. It's about 15,000 lines of C++, something like that. It's not the world's most gigantic and complicated thing, but it's complicated enough. So shoot, sir. Well, I was just demoing that from Ireland. Yes, the question was what are the latency constraints like? I think that's a really good question. So I'm demoing this from Ireland. So you know, that's a little way away. Probably 100 milliseconds of ping away or maybe less. Amazon are pretty good. But people use this. So our QA guy actually lives in Brazil and tests in Ireland. So that gives us some good bandwidth there. And of course, it's more about sort of traffic management and making sure that you're not flooding the thing, filling the buffers. You have a producer-consumer balance for the data you're sending to try and make sure it works well. So I mean, it's pretty good. It's the answer. And of course, if you're on a LAN, it's going to be brilliant. But you don't need to be on a LAN. Beyond that, we have a whole lot of ideas for making it quicker. So if latency is a real problem for you, there is a lot we can do. Let's talk and see what your use case is and how we can work with that. Does that make sense? Perfect. And all you can contribute. I mean, we take patches from everyone. So I think just on the technical side there, what I'd like to be doing is moving to text composition and graphic composition on the client. So we start to send a scene graph. So this is the five-year vision. The one-year vision is different optimizations in it. But the Canvas text API is really not up to it, I don't think, when you come to the very complicated text shaping stuff that we like, like northern Thai or, you know, there's some pretty funky text layout we do in LibreOffice. And so we want to do a glyph stamping ourselves as bitmaps, I think, and store glyph caches of our own in the browser. And the nice thing there, of course, is that you can at least predictively put glyphs down and try and avoid the round trip cost. What else? Yeah, but also for resizing and moving images, it's nice if you don't have to go to the server. I should have mentioned, actually, that when you use this thing, you know, as the cursor blinks, as the selection moves, this sort of thing, that's all rendered on the client as an SVG overlay. So as you move around the document, you know, you just have a single round trip ping and the new cursor position arrives. So it's very quick and responsive for those things. And we don't use lots of bandwidth rendering jerky selections over the document. Shoot. That's also on the client, yeah. So let me just show that again. So let's try zooming in here. So the tiles are all there. Sorry, my mouse is not, also not very good. So as you zoom in, you're getting something, I don't know if you perhaps can see it, just having a good flicker there. It doesn't normally do that for me on the Chrome. But so you can do this relatively interactively. Again, you can cache much of the document outside the visible range. So for viewing, we can go down around and it's just there very rapidly, right? So now the whole document is cached and I can zoom around it. So you can manage that and clever algorithms to notice you've stopped typing and you're mostly reading and to look ahead of where you are and pre-caching the client. There's lots of things we can do to make a very slick experience. And we'd love to have help with that or if that's a customer use case, then obviously we'll work hard on that. Does that make sense? So you can zoom and you can pan and you can do your pinch to zoom on your mobile device and get a good experience, not a total write off. Good question. Any other while we're here? Perfect. So there are other things there. Actually I think I can probably show you these rather than showing you slides about them because that's more fun, isn't it? Assuming we've got some kind of visions going on here. Let me see. So what did I just edit? I just edited my basic text. And I should be able to see, I think actually, so one thing to say is that it auto saves relatively regularly. So we have two forms of auto safe. One is if you stop typing, after a minute it saves. If you don't stop typing, you're really, you're going at it for minute after minute. We eventually give up and say, look, you've got to save this thing. So we're going to slightly interrupt your editing experience while we shovel this to disk because you've typed a lot and we don't want anything to go wrong. Having said that, it very infrequently crashes. The nice thing about a server thing is that we can see, we have logs of all these things and yeah, it's pretty awesome in that regard. But auto saves that important. You can see it all in your versions thing here, which is pretty good. But better than that, we can actually see not just a dry version, but we can see the revision history here and we can come back and see what was that document here and what it looked like. So I don't know what actually changed here, but we can probably scroll down and see what was there. So these of course read only, but at least you can then see, I should have a nice demo with a duck that appears and disappears or something, but I'm afraid I'm too lame for that. But still you can restore the versions there and you can get a quick view of what the document used to look like, which really makes revision control just much better. Because sucking these old revisions out and then trying to look at what they are is a pain. And this is quite a nice feature. Even if you never use Collaborate Online, you don't believe it, it'll do it for you. You can still get these nice previews and thumbnails. I'm sure we could integrate those in an attractive way. Makes sense? You fully say. But wait, so that's revisions and everything that I've shown you up to now is already there, is shipping, is supported by own cloud and Collaborate together. So you can deploy it right now. Of course there's more fun that's coming and my team have been working extremely hard. So I think the next thing there is that dynamic Collaborative Editing with multiple people at once, which is the more exciting thing. Everyone wants to be seeing these are screenshots of stuff going on. So we have nice notifications and lists of people. There's much more than integration, rich integration with WAPI into own cloud so we can work out people's usernames and details about them and annotate the changes that they create in documents with that information. One of the interesting things about Collaborative Editing is that undo and redo across multiple users, Collaborative Editing, is pretty unsolved problem. It's really bad, really bad indeed. So consider two users editing the same paragraph and the paragraph says, don't kill Jim tomorrow or something. Someone removes the don't. I thought ads yesterday or something. It's very hard to tell which of these edits, whether they truly conflict in the same paragraph. If you undo one, how about the other? Why is people would then look at the paragraph that's been edited by two people and go, does it still make sense? You need a human being sometimes to resolve these things. And yeah, so there's basically nothing you can do. Even if you're ever so clever, you can create composable operations and you can write operational transforms till they come out of your ears. The problem is that the intersection of any two operations, so for example, sorting my spreadsheet and setting a cell bold, how these intersect and how you apply them is a bit interesting. I've renamed some guy's cell and I want my sheet sorted, but some renamed it and now it's not sorted anymore. So when I undo the sort, do you see what I'm saying? It can get pretty complicated pretty quickly. And the complexity is not CPU time, but we've got lots of CPU time, it's coder time, because some human being has to go through this matrix of operations and work out how they intersect with every other operation. So it's a nightmare. And N squared complexity in developer time is very expensive problem. And this is why basic editing is the norm, I would suggest, in almost all of these situations. So anyhow, here is our approach. We annotate everything operations done on the undo and redo stack with a user, so we can tell who actually did it. And then you can undo anything that you've done up to the point where someone else did something. So this already captures the 95% use case where there's only one person editing the document, you get perfect undo and redo. Beyond that, we're starting to implement the easy cases. So we can have an incremental approach to flesh this out. So two different paragraphs are edited, fine, we can move that around. Someone has edited a chart, someone else has edited a label and a shape. We can look at these and go, yeah, they're probably independent, we can probably move these around. But beyond that, when it all fails, as it may easily do, we have a repair document mode. So you hit the wall, someone's done something stupid, say they hit control A by mistake. Do you know how control and A are quite close together? And then they type something and suddenly their whole document is gone. I don't know, has anyone ever met a user that's, yeah? I think it's a web mail favorite of my wife's. But then again, perhaps Caps Lock and control. If you sort these two, then control A is sort of one finger press away. Maybe it's an Emacs user's wife's problem. Or husband's problem, I should point out just to make it all. Anyway. This is also a nightmare for change tracking because whatever you were typing, how do you resolve this conflict? You know, delete everything and type something else. So either way, you get a repair document mode here and you can look at the stack and you can undo and pull back to any level you like. Not perfect, but achievable. Which is always nice in development. So let me just see if I can get the collaborative editing demo to work with Andres. Andres, have you shared a document with me? Perfect. Let me look for it. Here we are. Okay. So I can see Andres here. And hopefully if I do nothing, my employees can do all the work. Look at that. It's absolutely a pleasure to have smart people doing good things everywhere. So here's my selection. And Andres is, well, mangling the Latin text, you know, somewhere over there, which is all fun. Why don't you do something more interesting, Andres? You'll notice his cursor appears and disappears. So often when people are not doing anything, it's not terribly interesting to show much detail about where they are. So he's editing down there. And you should be able to see there are two users here at the bottom. And so we can see it's me and Andres editing. As users appear and disappear, you get nice notifications saying, hey, someone else is typing. And I'm going to do something nasty like delete Andres. Ha. I killed him. Oh. So these are all the fun things that you can do while you're at it. So luckily there is a whole load of functionality in here to avoid the obvious problems of nasty things and do something sensible. And that's already in LibreOffice. It's been shipping for many years. There's a multiple window mode. And so the way that this works is essentially opening multiple windows in what was a desktop client, which gives you the multiple cursors, multiple selections, multiple, you know, all of this stuff. And so the functionality is broadly already there, which is very, very attractive when it comes to reusing code and reducing the test load and not doing something totally crazy and new over, you know, millions of lines of code for tomorrow. So that's all good. What else? Yeah, I might put a comment in or something. You know, that's bound to break it. This is our demo server. I would point out it's not space to work. It's a testing staging server. You know, staging is, I can't spell, to be broken. But for some reason it's not broken enough yet. So we'll have to keep going until it breaks. You know, whatever. What should we do? Tables are particularly fun in terms of the internal core implementation. So let's try a table. See what happens here. Ah, didn't insert. That's even more exciting. Let me try this again. And I can file a bug. Oh, no, didn't insert. I just obviously screwed it up in some silly way. Uh-huh. Delete, delete this guy. We don't want him. Ah, perfect. Now how about... Come on. Ah-ha. We're fighting. You know, that's much more fun. So, yeah, yeah, so I think the sort of the extended use case here is the, you've got to delete this thing, Andrew. Otherwise people think I'm some kind of egotistical. Well, that'd probably be right. Um, okay, this is good. So, um, yeah, so actually the most common use case we've seen for this is when I type the minutes or when someone else is typing minutes of a meeting, I make dozens of spelling mistakes and, you know, I shape the meeting to my agenda, you know. And so other people can come and correct it and, you know, improve upon the record as we go down. Um, so actually I think that's quite a common use case where actually you do get conflicts in that as you're watching and editing and building some kind of record or a document. But yeah, of course this is combined then with all of that rich layout, balance columns, images, you know, all of these things are, you know, all part of that. So again, you can edit any rich documents, slideshow, you know, all together and collaboratively. This is, uh, if you want to build master, you can play with this now yourself. Um, but we'll be releasing, I think a code version with some of this stuff in it, um, in the next, um, let's say months because that's, that's better, you know, rather than minutes. Um, but, um, yeah, certainly before the end of the year, we hope to be taking this to market in a, in a really great, robust, tested, a staple way. And we'd love help, you know, if people want to get involved playing with that and finding all those nasty corner cases where, uh, you know, maybe something is, uh, as under tested. So does that make sense? Good. Exciting. So once we're at this point, I think we're then almost, you know, we're on feature parity then with, um, a number of these other suites and actually we can do a lot more. So if you play with, uh, some of these other alternatives that are doing it all in JavaScript on the client, you discover that actually you, you can't do things. So let me give you an example of something you can't do. So if you take office 365, you can have a perfect whizzy wig view of the document. I say perfect, like reduced resolution images, but you see what the pages are, or you can edit it. When you edit it, it's not whizzy wig at all. It's a sort of crushed, crushed version of it, which behaves in an odd way. So for example, images, because it's not a whizzy wig view, you can't reposition your images. So just the ability to move an image around seems like an easy thing, right? It doesn't work in office 365 in word. Does work in PowerPoint because PowerPoint is, it would be kind of debilitating if you couldn't position an image on your slides, but you know, you get the idea of the feature gap. So already we're starting to do things that are, you know, really actually at the cutting edge in terms of delivering features. It may not seem a big feature to you to be able to actually see what your document will be like. Um, but you know, people, people like that. Um, it seems kind of sad that it's not that. So I think already we can do some very exciting things with the collaboration. I think we'll be in a very strong position and then moving ahead. We're going to get even richer in various ways. So you say, how expensive is this? What is the bandwidth we need? What is the, you know, what are the feeds and the speeds? And we're getting quite conservatively to start with, I think on this. So you know, there's a lot of optimization we can do. Um, but we're, we're focusing on, you know, features and stability and scalability, I think to start with. Um, in terms of hosting more users rather than reducing the hardware footprint. So the main one we're saying something like 10 users per CPU thread, 100 megabytes of RAM per user, 100 kilobits per second. So if you consider my laptop here, which has 16 gigabytes of RAM, that's quite a lot of users, 160. It has eight cores. So that's, uh, it has four cores and eight threads. So that's 80 users. Um, and it has probably a gigabit network card, but that's kind of cheating, isn't it? So, so my laptop should be able to host everybody in this room to collaboratively edit and several other rooms worth as well. I'm not recommending using a Windows laptop with virtual machine to do that, but you see the idea, right? It's not, um, it's not a huge, um, a beast. So yeah, I mean, you can see them for 200 users, uh, what, what you need there. I think on a single, large-ish machine today, you can do a quite, quite nicely. And that's how we recommend you deploy it just to demo it and try, try it out. So everybody hits this, uh, this worker machine. And as I said, all of the nasty, difficult integration, uh, file IO stuff is done by own cloud. Uh, and we're very happy about that. Um, yeah, this is a sort of commercial slide I plugged in at the back, um, talking about updates and maintenance and support. So apologies for that. And what else? H.A. support. And the key of this, uh, the key understanding of RHA, uh, setup is that everyone that's editing the same document needs to end up in the same virtual machine address space, the same threat, um, of that. And the problem with that is, um, you know, your, your average load balancer is quite, um, promiscuous. You know, it puts the load where it thinks best and everybody for that document has to resolve to the same machine. Otherwise you load two copies of the document and then all things go wrong. Okay. Yeah. So our collaborative editing works by, you know, not by composable operations, funny remote synchronization problems and so on. Um, yes. So it is, it is probably said that, you know, there are two problems in computer science that are basically impossible. You know, one is sort of synchronizing remote state and, um, the other is naming things and, uh, the other one is off by one errors. Anyway, it's a silly joke. Um, so, but the H A balancing thing is then very important to get, get this piece right. But beyond that, you know, if you're balancing on your eye, then my hope is that you get everybody into the same, the same machine. And, and then it becomes more of a network, uh, routing, uh, problem, which scales really very well judging by the internet and much less of a, oh, it doesn't scale. You know, there's some database everyone needs to talk to. Um, so yeah, these, these workloads are extremely independent. Each one is serving just that document, just those users. And yeah, so scalability is, well, you know, we, we run LibreOffice on, you know, thousands of PCs and big organizations. And it's not conceptually that different to do it, uh, by aggregating those two to one machine. So if, if there's going to be a scalability bottleneck, my hope is that it's in the virtualization technology you're using or, you know, this kind of thing rather than anything that we're, uh, we're doing. So I think that's about the end of my talk. I've had some great questions throughout. You've been very patient. I don't know how I'm doing for time. I do know I talk too quickly. Any bits you'd like to see again, or were too fast or too slow? Tell me something. Yeah. Yeah, yeah. Yes. Probably. Although yes. So in collaborative editing, we reuse the tiles typically. So actually the more users you can get into one document in theory, the less rendering work we have to do. Now there's, there's other work that we have to do as well, obviously, but in theory, if everyone's watching the same tiles come out, we'd render one, you know, 10 tiles and serve a hundred people. That's the theory. Of course, in reality, you know, let's, uh, let's test it and profile it and, and benchmark it and, and then optimize it. And then there won't be a problem. Um, does that make sense? Sure. That's true. That's the case. Okay. That's true. Yes. Yeah, that's right. So, so my hope is though that if the use opens, you know, five documents and five tabs, he doesn't type into all of them simultaneously. That's, uh, that's the hope. Of course there are some octopus programmers out there. You know, I mean, you see my one hand typing, you know, maybe the other hand is writing a novel over here. So yeah, it's possible. And I'm sure there are stupid things you can do. Like, you know, if you want to see, so one of the problems in the world is, is that, um, you know, marketing people like more megapixels. So you know, your camera needs to have way more megapixels than any feasible screen can display. You know, it was a 4k screen in terms of megapixels. Well, even a 4k screen is smaller than your average camera display now. And so that's brilliant because it sells, it sells hardware. You know, the reason you need a quad core ultra, whatever phone is so that you can try and interpolate the image down to the half a megapixel screen you have, right? And, um, and the better thing is that the bigger the camera gets in relation to how the size of the image, the worse the problem gets. You know, if you want to actually see the, you know, the fence in your image, not as a pixelated mess. And so, you know, it does, it does really, some of these things are really relying on people not pasting 100 megapixel images, hundreds of them in one document and then expecting it to behave very, very quickly. My hope is that's a relatively limited use case, but we can always optimize for this as well and, you know, cache scalings and so on and so on. So there's no hard and fast cut and dried answer. But my hope is that actually, you know, having multiple documents open isn't a problem. And as I say, we have everything in place to just expire those and, you know, cut the virtual machine image down. It doesn't need to be there. So the connection can be alive. We can talk to web service demon and the user may see a little spinner when it fades from gray back to whatever, but you'll still be where you were. And life will be good. That's the vision. And of course, collaborative editing is not ready here because, you know, we store a single cursor position in a document when we auto-save. So the shipping product works very nicely. Has one cursor position. So, but collaborative editing is more fun in this regard. Does that help? Perfect. Good question. Did I repeat the question? Maybe it was obvious from the answer. Another question. Oh, gentlemen here. Actually, two questions. The first one is, have you had any discussions with integrating this into the on cloud mobile app? And the second question is, I've talked about this to some users and they said, well, we'd actually just prefer opening straight up in Microsoft Office just because we don't want to have to deal with compatibility issues. How would I go about responding to that type of objection to global war? That's great. So the first question is easy. We love talking to our own cloud. So, you know, we can talk to them about anything. I think in this case, you know, it's a relatively trivial web app. Of course, we do have an Android version for OVLEBROFIS. Calabra is currently not supporting that for a number of reasons. Although actually, the technology you see here in terms of tile rendering and so on, came from the mobile space. So lots of that editing and tile refresh and so on is exactly what you want on a mobile GPU and the pinch to zoom and pan. It's what Firefox or Phenec uses. So our Android version actually reuses Phenec. It's like the Firefox tiling engine written in Java and then talking to the LibreOffice backend. But there's still a chunk of productization that's needed to make that nice. And the question is, at least from my perspective, whether someone wants to download 150 megabytes or it's actually a 50 megabyte zip file. We do quite well actually compressing that down alongside their own cloud thing. I think that's probably something we need to discuss together or work out how to integrate. But yeah, all things are possible. If that's a killer feature for you and it closes the deal, then we'll do it. Why not? Why not? As long as you have more than one user. So what else? The other question was Office 360 for Office, Microsoft Office and compatibility issues. Yeah? Sure. So I think we have some customers and pilots who are actually using Microsoft Office still within cloud and having a great experience with that. And there's no reason why that has to change. So you can continue to download your files and edit them. We can probably do some user experience work to make that even more beautiful. I don't know if you played with Office 365, but there's a button saying edit this document and the whole thing is an extended advert for offline office. So you click the button and the top item is really edit this document in rich on whatever where it really works. And there's another button underneath that says, not very good, try editing it online, basic, limited, whatever. And then you load your spreadsheet and it says, oh, by the way, we threw away all of your smart art and we also can't do this shape thing either. And so would you consider giving a new name for the document because we don't want to overwrite the old other one? And that's Office 365 shipping today, right? So I think we can do better than this. We can match this functionality and I think that's, we should be proud of doing better, really. So if people are completely wedded to their Microsoft Office on the client and have sort of ribbonized their brains or whatever, then they can stay there. Why not if they don't want it? But having said that, we'd like to persuade these people that there are real cost savings and flexibility savings and all sorts of wins to using Collaborate Office or Libre Office on the PC client. And we see lots of governments and all sorts of things, the Hungarian court system, for example, if you want to get tried and sent to prison in Hungary, it's all Libre Office based, which is great because these court transcripts are quite important, for example. There are huge deployments in governments and companies all around the place. If you're in Italy and you go to Banco Populare to get your money out, again, all of the administration is done through Libre Office there, really big 15,000-seat deployment supported by us. So it's actually quite doable. I think as we sell PC side, which is not what this conference is about, one of the things we find is that people just are unaware that you can improve software. Software is something that arrives out of heaven and you either try and dodge it or you're ha, ha, thank you. And that's it. And the idea of having a rich product management relationship with the people that make it and improving it and fixing your concerns and making it better and tying it into your infrastructure and solving your business problems with it, it's just something completely foreign to them. There's this perception that if it has a bug, then we can't use it. Actually, it's a nonsense. We can fix the bug. If it has a missing feature, well, we can add the feature. And actually, given the price differential for large deployments, we can do that. And you still win. So does that help? I mean, there's some tools there to, you know, but the punchline is you can still deploy this alongside nCloud and keep your office, Microsoft office if you want, and still get better functionality. And it's easy to deploy and it's in the cloud. And maybe you can segment your users and get a few of them that don't need to pay the tax, right? And you should install LibreOffice everywhere so that you can exchange ADF documents because it's free, right? If you don't want to fund development by paying me, then just install the free version, right? And so then there's no internal problem. Actually, I was talking to the Nantes Metropole, which is a large French region who've deployed LibreOffice everywhere. And they say, you know, having done their studies inside the organization, almost all documents are exchanged. As soon as you go outside, it's rare that the documents need to be edited. So, you know, they've got some great stats on, like, the tiny proportion of people actually need to edit it. And they found that actually they can get LibreOffice deployed in most of their suppliers and most of their partners as well. So this is kind of spreading LibreOffice-ness, you know, going out there, which is encouraging. And the more we can join up the islands, the more goodness we'll get. Sounds good? How am I doing for time? Is there a... I'm doing... Perfect. As in we have time for a few more questions? One more. Perfect. So who is going to be the closing question? One at all? Don't move suddenly or you'll find you've bought a house, you know? Okay. Bang. Anyone else? Oh, well, you've been very patient. Thank you for your time. And check it out. It's awesome. Okay.
 Please let me shortly introduce Michael Meeks, general manager at Collabora Online.  He will talk about integrating on cloud and Collabora and I hope you have a good day.  In any case, if you want to do meetings, whatever, have another talk, you want to tell, just let  me or Felix know we'll make it happen.  Thank you very much and have an awesome day.  Thanks.  Thank you very much.  Excellent.  Let me just grovel and plug my laptop in very quickly before it flakes.  Sorry, I just got off a train and it was a lovely train.  I slept all the way through the Czech Republic.  So thank you so much for coming and getting up early to see this awesome work we've been  doing.  It's a real pleasure to be here.  So thanks for the invite.  I'd like to talk a little bit about what we're doing here.  I'll try to make this a technical talk because I think there's a business you want tomorrow.  If you like to ask questions, just interrupt.  Hello, you old friends.  Excellent.  So just shout out.  I'm going to talk through what we've done and what you can get now.  So we have a thing called code, which is the development edition, but pretty much everything  I show you here you can get and test and play with yourself right now.  So this is not a good slide to start with, but I'll talk through what it is.  So essentially, Collaborate Online allows you to put LibreOffice inside your own cloud  instance.  And it's a beautiful thing.  It's just a simple extension.  OwnCloud is highly extensible, as you know.  This is a very important feature.  And so we need no extra functionality at all.  We can just drop straight in and provide lots of nice richness here, which is great.  Why using LibreOffice makes sense?  Well, LibreOffice is extraordinarily feature rich.  We have just a huge file format support, as you probably know.  And people are used to using it on the desktop.  It does what we call high fidelity, whizzy, wig rendering.  What you see is what you get.  So what you see on the screen is what you print on the paper, complete with funny diacritics,  strange language issues, odd fonts, weird charts, and so on.  And in 1.0, we have some form of collaboration.  So collaboration for us is the key, not just because we call it Collaborah, but also because  people really, really need to collaborate around documents.  And I think that's just one of the key things that OwnCloud provides already.  Obviously, it's a brilliant means for sharing files and collaborating with users.  But we want to just make that much, much easier, and of course, with free software, a productivity  in the cloud.  So perfect.  For now, we have a thing called shared editing.  I'll demo the existing product first for you in a second.  And then maybe we'll have some collaborative editing in a minute, just to show you the future.  Shared editing is easy to understand.  The idea is essentially that only one person can type at once.  So there's still only a single user actually typing.  And it's very easy to change between those users just by clicking and starting to type.  Well, I should be requesting this thing at the bottom and typing.  So it's a very nice way to just share.  Often when you're in a meeting or something, people are listening.  One person is minitting, and the rest are listening, heckling, this kind of thing.  So it covers this quite important use case.  And of course, you still have the assurance that your document is actually there, and  this is the document you're editing.  It's the latest version.  So even with a single user, shared editing is extremely useful.  And we use it at Calabra quite a lot.  So my product management spreadsheets are all in own cloud sitting and being edited  through a Calabra online.  I think this slide has probably been done to death, because you will know this stuff.  What else?  So from an office perspective, I think it's important to know that the workload is running  on a CPU you can control yourself and have on premise.  But in terms of the office space, when we look at other competing online office suites,  there is an expectation that is repeatedly reinforced that this is a basic subset.  If you've gone to use Office 365, you'll notice there are a few basics in there.  So for example, you can't edit a spreadsheet that's bigger than five megabytes.  So it doesn't take a long time to make a spreadsheet five megabytes.  If you load that's Office 365.  Of course, Google Docs has quite a richer feature set than Office 365, but even so, it's  not wonderful.  I think other interesting things would be like inserting charts.  You actually can't insert a chart in Office 365 online, except in the spreadsheet.  So try putting one in your WordPress thing, Word Online or PowerPoint Online.  But bad luck.  It's just not there.  There's no button for it.  You have to do it in some other way.  And there are size limits and rate limits.  People get used to this idea of a reduced feature set.  And that's great because we have loads of features and we think we can capture these  light editing use cases and we can excel.  Yes, we can do better in so many ways.  The other thing that's interesting about the cloud is of course that we're passionate  about the open document format and freeing your data.  And of course, that's really useful for getting data out of the cloud, you know, because  data goes into it and it needs sometimes to come out and move to some other place.  But broadly, as long as it's there, it doesn't much matter.  This use case of I emailed something to someone outside the organization and they can't edit  it doesn't need to be a problem in this case.  You email them a link through your own cloud.  You share the link.  And if you've allowed them to edit it, they can just edit it in their browser.  No software install, no interoperability compatibility problem.  It runs in any browser on any device.  So this solves a huge chunk of the interoperability problem.  And that's very nice.  So you can take this excuse and its objection to using free software and open formats off  the table.  And of course, by default, we create open document formats in OCloud.  The other interesting thing with my Crasse business hat on is that there's a whole load  of people out there running quite large instances.  The enterprise installs of OCloud and other enterprise fast and can share solutions.  And you'd be mad not to buy support for that.  Particularly when there are smiling, happy people that will help you when you need it.  And when and if the crisis strikes, lightning takes your server out with a big zap and corrupt  some database in your Oracle server or something, the OCloud people will be there to help you  and try and repair your systems as quickly as possible.  So I think that mission critical aspect of it is very interesting to me from a business  perspective.  Perhaps you don't care about my business.  But I want money so I can invest in free software.  That's my passion, not for its own sake.  So here we go.  So you can go and grab it during the talk.  If you lose interest, you can go to this link.  And there's actually an OCloud version installed in a virtual machine there you can download  and play with.  You can grab a recent Docker image which doesn't work on older Ubuntu.  So I think the last LTS of Ubuntu is missing some kernel patches that makes it not work,  which is a shame.  But hardly our fault.  So grab it, have a go.  And as I say, it should be extremely easy to deploy.  How that works, we implement a thing called the WAPI protocol, which I'll talk about  later.  But I think the thing to say about WAPI is this.  So WAPI is a very simple protocol and it basically unifies authentication and file access.  So these two things are the exact thing you need to integrate with OCloud.  Why is that?  Well, when you use Collaborer Office, you don't need to use OCloud.  You don't really want to be typing your password in again, do you, to load or save the document.  That would really suck, right?  That would be absolutely terrible.  And of course, you don't want to be telling Collaborer Office, you know, browsing in a  file selector to find an own cloud instance to load the document.  This would also be a terrible user experience.  We want something beautiful and sweet that just integrates nicely.  And what WAPI does this is it's existing protocol and it's documented.  And the amazing thing about it is that OCloud is just incredibly rich, as I understand it.  If you want an active directory, multi-tiered, something architectural, you have this complicated  L-dap setup and you store all of your files in an object store made by whomever, that  OCloud does all that and that's brilliant.  But from my perspective, it's even more brilliant that we don't have to care about that.  We just reuse it all.  We plug in, OCloud does all the hard stuff and we do the easy things like complex document  layout, interoperability, you know, all that collaborative editing.  So it's really a wonderful symbiosis, I think, and synergy of these two rich pieces of code.  So let me just try and do a demo quickly.  WAPI permitting.  I would tell you the story first that I went to travel to Bruno for the LibreOffice conference.  I was about to give my keynote next day.  And of course, I haven't written my slides because the slides are supposed to be fresh.  I mean, stale slides are a real problem in our industry.  So always write it the night, if not the minutes beforehand.  And anyhow, the laptop chooses at this moment to die in a very horrible way.  So yeah, I've had an interesting week.  And anyway, that's why I'm running Windows 10.  So it just so happens that the open SUSE that I have over here won't even render anything.  So anyway, enough, let's try and find a browser.  Perfect.  So this is Collaborate Online.  Now let me get back to the own Cloudy bit.  So it looks more own Cloudy.  Presumably this back button will do that.  So you can see, you know, our files as you're expected to see them.  You know all about these stuff.  And you know, you can click on a document.  And in due course, it gets authentication, it passes the file through WAPI to it, it  loads it, renders it.  And you know, here you are, you can fool around and say, hello.  And get the capitalization wrong.  That's very important.  I was always getting in trouble at SUSE for making open SUSE with the wrong letters.  So there we go.  Some branding consultant can get me afterwards.  And Tuesday is dollar day.  Let me try.  So what do we have?  We have a whole lot of functionality under redo, all sorts of things that you expect  in an Office Suite essentially.  This is all the shipping stuff that's actually there now.  Let me try and find some more funky, not a tab, but document.  This is still the demo server.  Perfect.  So what about presentation?  So I wonder if it's got, so anyway, you know, you can move stuff around, fool about, you  know, insert images, you know, fiddle with bullets, you know, simple basic editing.  And of course, you know, save it all interactively.  And multiple people can come in.  It's a bit hard.  I'm only one person.  So I can't, you know, I can't show you that.  What else can I show you?  Yeah, so we have a nice table widget up here, which is pretty funky.  Let me try a writer document.  See if I've got any.  I wanted to show you.  Okay, let me try and show you some of the nice things we have.  So in terms of slide transitions, we have quite a nice number of things here so that  we can download this guy as SVG.  Oh, I'm sorry.  I need to sort of let this do what it wants.  And so we can do fades and wipes and, you know, all sorts of animations with text and, you  know, all of this good stuff.  And so that's basically just running an SVG.  We just use the convert to SVG and we can, you know, change our bullet points and, you  know, have their colors change and all sorts of silly things happen.  I would point out that if your presentation has too many transitions and funky effects  in it, you're probably wasting your time.  But still, you know, customers like that and, you know, it thrills them obviously to see  that, you know, that bouncy arrow.  We have to support it to keep them all happy because, you know, if you had spent, you know,  90% of your slideshow construction time adding animations and then they aren't there.  Just imagine how angry you could get.  Anyway, there's something else that you'll see here which is the screen has gone slightly  gray.  I don't know if you notice it's hard to see.  And then when I click on it, it gets bright again.  So one of the things we want to do is, you know, this is quite an efficient architecture  and I'll talk about that in a minute.  And one of the things we want to do is reduce bandwidth use.  So I don't know if you notice my browser has a whole lot of tabs and I've only had it open  for a few minutes.  Perhaps you're not like me, but I have a thing called the tabpocalypse which is where my browser  gets more and more and more and more tabs until each of them is so small.  And then I start accidentally closing windows or machine wedges and then I start again,  you know, and that's great.  What's not great is if you have to have a whole Libre office sitting behind every one  of these tabs for each of the documents you have open, consuming server capacity, and  potentially bandwidth as well because you'll never find that tab again.  It's lost.  It's part of the archeological strata down here.  So you're going to start another one.  And what we don't want is to end up with, you know, hundreds of tabs, you know, all  of the same documents.  And as you type a key, you know, we render a million times and, you know, this is not  clever.  So as we're inactive, I'm trying to be inactive at the moment, but it eventually realizes  you're not there.  And if you switch tabs, again, it fades out to gray.  And so we can then cut this connection down.  We can actually save and destroy the server instance.  So there's no bandwidth use that's needed there.  So it gives us a lot of flexibility around reducing cost and server capacity, which is  good.  We like that.  So yeah, that would contrast very heavily then with a VDI solution where, you know,  you're effectively looking at a window on a real desktop, potentially in its own virtual  machine.  Drat, I should have a slide about our security model.  Let me try and remember that.  What else do we have?  Let's try this guy here.  This is a docx file.  I apologize for that, but, you know, the customers like to know it works.  What else?  So this is bigger knit.  There we go.  Now we can see the bottom.  That's a bit better.  For some reason, the browser was not very happy.  So you know, we can see we got various things, word counts, and you know, you can do even  your insert and over type.  You know, that's very important as you press insert.  I don't know who uses this feature.  You use that feature?  No.  Oh, sure.  Yeah, I have another user volunteer in the front, but yes, you're right.  I think I'd actually have a very nice sample server that you can play with.  I'm not using it.  I'm using this.  This is a server in Ireland.  I shall the question, the question was, can I be your co-co-co-cow orca?  Can I also work with this document?  Andres, maybe you can, well, I haven't shared it with you.  In a minute, we'll do the collaboration one.  It'll be more fun.  But yes, this is essentially an island.  I'll get rid of Ava type because it's a really lame feature.  Oh, yes, this is a key thing here.  So yeah, let's see if we can resize it and get it to re-render.  So yeah, this is my pitch for the American election.  It's the way it should go.  So why don't I just do some typing?  Because that's usually what people are interested in.  My one-handed typing is really not what it could be.  So there's a whole lot of shortcuts.  You can use your heading type stuff.  One of the things I like about LibreOffice is you can go star bold, star.  And suddenly, your text is bold.  I don't know if you notice that.  Or if you go underline, look at this beautiful magic, auto-correction engine in the background  doing all of this fun stuff for us.  What else?  Yes, I'm wanting to put a table in or something just to.  The problem with this demo is that since we actually made it work, it actually saves  the content.  And it auto-saves quite regularly.  So the more demos I do, the more mangled the document gets over time.  So I'm going to go into that.  Absolutely.  That's a really good question.  So I mean, I think there's a documentation question there.  But in terms of features, you can see the toolbar here.  It's a very basic editing functionality.  So if you're going to want, for example, multiple balanced columns on your page, we  don't do that.  Actually, we do render that.  So if you have already set it up on your PC version and you want to edit someone else's  document that has multiple balanced columns and change your name or the page, it will  render and lay out perfectly.  But there isn't a dialogue to change that feature.  How would you predict?  I tell you, the best way to predict it is to either just have a play with it, install  it, have a look and see what you get.  We can provide you with a list of editing features that are there.  Obviously, we do that.  But these features change quite quickly.  So we add more and fewer features.  It's actually very easy to add features because they're all there, really.  It's a matter of choosing what to expose.  So the reason that we don't add some features is that we want to make collaboration easier  to implement.  So collaboration is an interesting problem.  And we'll look at that in a little bit.  Does that help?  So you...  Somehow.  Okay.  So play with it.  My hope is that we can get this under the radar a little bit into organizations and test it  and play with it and get people excited about it and just capture that benefit of the on-premise  collaboration.  Yeah.  So the plus side of it, having a very limited feature set, isn't anything complicated there,  right?  You know.  Sure.  You said, oh, well done.  Sure, sure, sure.  So yeah.  Okay.  So I mean, in terms of creating rich documents and templates and editing your headers and  footers and doing sort of getting templates set up so they're nice, you know, vast numbers  of editing use cases are just this.  You have a complex template with, say, a whole lot of fields or forms or whatever.  You can't edit fields in here.  You can't create these templates in Collaborate Online, but you can do them with Collaborate,  you know, PC version, right?  Collaborate Office and upload them into your own cloud and then everyone can use them.  So yes, it's a deliberately basic editing functionality, but the good news is we plan  to improve it.  So, you know, this is step one and we're getting that.  Does that help?  Any other questions on that while I'm here?  Good.  How long am I supposed to speak for?  Let's now tend to.  Is it another half an hour?  Yeah?  Okay.  Perfect.  Heckle me if I'm doing it wrong and I'll wander off.  So yeah, you know, you can set text colors and themes and styles and, you know, it's,  you should be using the styles, of course, all this other stuff.  Yeah.  Okay, okay.  So I think that's it pretty much for the basic editing experience.  Maybe I can share something with Andres and, you know, I don't know.  It's the wrong button.  Try this one.  I can't spell.  And he doesn't have a link on here.  Try.  Nope.  We'll give up on this before I embarrass myself further.  So that's the demo there.  I think if I do shift F9.  Let's try that.  F5.  Perfect.  So I just want to talk a little bit more about the architecture and how that works.  So essentially we use WebSockets for all of our clients.  So that's not written on there.  But we also use a WebSocket like protocol internally.  To make this efficient, in LibreOffice is quite a large chunk of code.  And if you've used it on the desktop, you'll be aware that it's 150 megabytes small or  something like this, which seems like a lot of memory.  And when you load it for one person, everything is bad.  Now if you use Java, on the other hand, you'll notice that any Java app you run takes forever  to start, right?  It has a very similar problem.  But once it started, you know, you can then spawn lots of threads and do all sorts of clever  things with it.  So we have various approaches.  It's actually based on a KDE in it.  I don't know if you know this idea of doing lots of work ahead of time and then forking  and serving users.  So we think of the 4Kit, whose basic job is to set up lots and lots of stuff, read the  configuration, link all the libraries, page all this stuff in, get every component initialized.  And then that is used to spawn off all of these children that actually used.  Now as we spawn those off, we have a CHroot jail.  So we encapsulate this document in its own world.  So it can't see any other document and it talks only to the web service demon about  that.  So we have a thing called a LibreOfficeKit, which provides a very simple C++ API for LibreOffice  and just exposes a tile rendering.  So actually much of what you saw just now, maybe I should do a gratuitously technical  thing here.  Let me find a document and show you what's actually going on.  Although it looks like an interactive document that you can play with, so you have a blinking  cursor and you can select and fool around with it.  Actually when you start to look at it, F12 doesn't work on here.  How do I do the, this is Edge.  Does anyone know how you do the debugging thing in Edge?  I don't know.  I should use Chrome, shouldn't I?  Where is it?  There's something here.  I'm sorry.  I apologize again.  I am covered in shame.  But essentially it's a whole load of tiles there.  So 256 pixel square tiles.  No, I'm not going to be able to type quick enough.  Let me just abandon ship and go back to this.  It doesn't work at all.  So actually the really encouraging thing about using Windows 10 is that I get upset about  Windows Linux when it doesn't work and then you go and use the opposition.  And suddenly everything is okay.  So the Web Service Demon does a whole lot of things.  It proxies these tiles.  It gets information out of this CH route jail, the tiles, and it caches it for you.  So if you look at the same document again, it's very quick and you can do rapid viewing  of documents.  So it caches things and it serves through a WebSocket to the clients various things.  There's also an admin console there so you can log in and see who is using how many documents  and what memory and so on that we're continuing to develop.  And yeah, this is I guess the basic picture.  I'm trying to work out whether there's a whole load of complexity here that you don't notice.  So prioritizing what tiles are sent and refreshed, you know, queuing stuff on asynchronous pieces.  But the Web Service Demon is not very big.  It's about 15,000 lines of C++, something like that.  It's not the world's most gigantic and complicated thing, but it's complicated enough.  So shoot, sir.  Well, I was just demoing that from Ireland.  Yes, the question was what are the latency constraints like?  I think that's a really good question.  So I'm demoing this from Ireland.  So you know, that's a little way away.  Probably 100 milliseconds of ping away or maybe less.  Amazon are pretty good.  But people use this.  So our QA guy actually lives in Brazil and tests in Ireland.  So that gives us some good bandwidth there.  And of course, it's more about sort of traffic management and making sure that you're not  flooding the thing, filling the buffers.  You have a producer-consumer balance for the data you're sending to try and make sure  it works well.  So I mean, it's pretty good.  It's the answer.  And of course, if you're on a LAN, it's going to be brilliant.  But you don't need to be on a LAN.  Beyond that, we have a whole lot of ideas for making it quicker.  So if latency is a real problem for you, there is a lot we can do.  Let's talk and see what your use case is and how we can work with that.  Does that make sense?  Perfect.  And all you can contribute.  I mean, we take patches from everyone.  So I think just on the technical side there, what I'd like to be doing is moving to text  composition and graphic composition on the client.  So we start to send a scene graph.  So this is the five-year vision.  The one-year vision is different optimizations in it.  But the Canvas text API is really not up to it, I don't think, when you come to the very  complicated text shaping stuff that we like, like northern Thai or, you know, there's some  pretty funky text layout we do in LibreOffice.  And so we want to do a glyph stamping ourselves as bitmaps, I think, and store glyph caches  of our own in the browser.  And the nice thing there, of course, is that you can at least predictively put glyphs down  and try and avoid the round trip cost.  What else?  Yeah, but also for resizing and moving images, it's nice if you don't have to go to the server.  I should have mentioned, actually, that when you use this thing, you know, as the cursor  blinks, as the selection moves, this sort of thing, that's all rendered on the client  as an SVG overlay.  So as you move around the document, you know, you just have a single round trip ping and  the new cursor position arrives.  So it's very quick and responsive for those things.  And we don't use lots of bandwidth rendering jerky selections over the document.  Shoot.  That's also on the client, yeah.  So let me just show that again.  So let's try zooming in here.  So the tiles are all there.  Sorry, my mouse is not, also not very good.  So as you zoom in, you're getting something, I don't know if you perhaps can see it, just  having a good flicker there.  It doesn't normally do that for me on the Chrome.  But so you can do this relatively interactively.  Again, you can cache much of the document outside the visible range.  So for viewing, we can go down around and it's just there very rapidly, right?  So now the whole document is cached and I can zoom around it.  So you can manage that and clever algorithms to notice you've stopped typing and you're  mostly reading and to look ahead of where you are and pre-caching the client.  There's lots of things we can do to make a very slick experience.  And we'd love to have help with that or if that's a customer use case, then obviously  we'll work hard on that.  Does that make sense?  So you can zoom and you can pan and you can do your pinch to zoom on your mobile device  and get a good experience, not a total write off.  Good question.  Any other while we're here?  Perfect.  So there are other things there.  Actually I think I can probably show you these rather than showing you slides about them  because that's more fun, isn't it?  Assuming we've got some kind of visions going on here.  Let me see.  So what did I just edit?  I just edited my basic text.  And I should be able to see, I think actually, so one thing to say is that it auto saves  relatively regularly.  So we have two forms of auto safe.  One is if you stop typing, after a minute it saves.  If you don't stop typing, you're really, you're going at it for minute after minute.  We eventually give up and say, look, you've got to save this thing.  So we're going to slightly interrupt your editing experience while we shovel this to  disk because you've typed a lot and we don't want anything to go wrong.  Having said that, it very infrequently crashes.  The nice thing about a server thing is that we can see, we have logs of all these things  and yeah, it's pretty awesome in that regard.  But auto saves that important.  You can see it all in your versions thing here, which is pretty good.  But better than that, we can actually see not just a dry version, but we can see the  revision history here and we can come back and see what was that document here and what  it looked like.  So I don't know what actually changed here, but we can probably scroll down and see what  was there.  So these of course read only, but at least you can then see, I should have a nice demo  with a duck that appears and disappears or something, but I'm afraid I'm too lame for  that.  But still you can restore the versions there and you can get a quick view of what the document  used to look like, which really makes revision control just much better.  Because sucking these old revisions out and then trying to look at what they are is a  pain.  And this is quite a nice feature.  Even if you never use Collaborate Online, you don't believe it, it'll do it for you.  You can still get these nice previews and thumbnails.  I'm sure we could integrate those in an attractive way.  Makes sense?  You fully say.  But wait, so that's revisions and everything that I've shown you up to now is already there,  is shipping, is supported by own cloud and Collaborate together.  So you can deploy it right now.  Of course there's more fun that's coming and my team have been working extremely hard.  So I think the next thing there is that dynamic Collaborative Editing with multiple people  at once, which is the more exciting thing.  Everyone wants to be seeing these are screenshots of stuff going on.  So we have nice notifications and lists of people.  There's much more than integration, rich integration with WAPI into own cloud so we can work out  people's usernames and details about them and annotate the changes that they create  in documents with that information.  One of the interesting things about Collaborative Editing is that undo and redo across multiple  users, Collaborative Editing, is pretty unsolved problem.  It's really bad, really bad indeed.  So consider two users editing the same paragraph and the paragraph says, don't kill Jim tomorrow  or something.  Someone removes the don't.  I thought ads yesterday or something.  It's very hard to tell which of these edits, whether they truly conflict in the same paragraph.  If you undo one, how about the other?  Why is people would then look at the paragraph that's been edited by two people and go, does  it still make sense?  You need a human being sometimes to resolve these things.  And yeah, so there's basically nothing you can do.  Even if you're ever so clever, you can create composable operations and you can write operational  transforms till they come out of your ears.  The problem is that the intersection of any two operations, so for example, sorting my  spreadsheet and setting a cell bold, how these intersect and how you apply them is a bit  interesting.  I've renamed some guy's cell and I want my sheet sorted, but some renamed it and now  it's not sorted anymore.  So when I undo the sort, do you see what I'm saying?  It can get pretty complicated pretty quickly.  And the complexity is not CPU time, but we've got lots of CPU time, it's coder time, because  some human being has to go through this matrix of operations and work out how they intersect  with every other operation.  So it's a nightmare.  And N squared complexity in developer time is very expensive problem.  And this is why basic editing is the norm, I would suggest, in almost all of these situations.  So anyhow, here is our approach.  We annotate everything operations done on the undo and redo stack with a user, so we  can tell who actually did it.  And then you can undo anything that you've done up to the point where someone else did  something.  So this already captures the 95% use case where there's only one person editing the document,  you get perfect undo and redo.  Beyond that, we're starting to implement the easy cases.  So we can have an incremental approach to flesh this out.  So two different paragraphs are edited, fine, we can move that around.  Someone has edited a chart, someone else has edited a label and a shape.  We can look at these and go, yeah, they're probably independent, we can probably move  these around.  But beyond that, when it all fails, as it may easily do, we have a repair document mode.  So you hit the wall, someone's done something stupid, say they hit control A by mistake.  Do you know how control and A are quite close together?  And then they type something and suddenly their whole document is gone.  I don't know, has anyone ever met a user that's, yeah?  I think it's a web mail favorite of my wife's.  But then again, perhaps Caps Lock and control.  If you sort these two, then control A is sort of one finger press away.  Maybe it's an Emacs user's wife's problem.  Or husband's problem, I should point out just to make it all.  Anyway.  This is also a nightmare for change tracking because whatever you were typing, how do you  resolve this conflict?  You know, delete everything and type something else.  So either way, you get a repair document mode here and you can look at the stack and  you can undo and pull back to any level you like.  Not perfect, but achievable.  Which is always nice in development.  So let me just see if I can get the collaborative editing demo to work with Andres.  Andres, have you shared a document with me?  Perfect.  Let me look for it.  Here we are.  Okay.  So I can see Andres here.  And hopefully if I do nothing, my employees can do all the work.  Look at that.  It's absolutely a pleasure to have smart people doing good things everywhere.  So here's my selection.  And Andres is, well, mangling the Latin text, you know, somewhere over there, which is all  fun.  Why don't you do something more interesting, Andres?  You'll notice his cursor appears and disappears.  So often when people are not doing anything, it's not terribly interesting to show much  detail about where they are.  So he's editing down there.  And you should be able to see there are two users here at the bottom.  And so we can see it's me and Andres editing.  As users appear and disappear, you get nice notifications saying, hey, someone else is  typing.  And I'm going to do something nasty like delete Andres.  Ha.  I killed him.  Oh.  So these are all the fun things that you can do while you're at it.  So luckily there is a whole load of functionality in here to avoid the obvious problems of nasty  things and do something sensible.  And that's already in LibreOffice.  It's been shipping for many years.  There's a multiple window mode.  And so the way that this works is essentially opening multiple windows in what was a desktop  client, which gives you the multiple cursors, multiple selections, multiple, you know, all  of this stuff.  And so the functionality is broadly already there, which is very, very attractive when  it comes to reusing code and reducing the test load and not doing something totally  crazy and new over, you know, millions of lines of code for tomorrow.  So that's all good.  What else?  Yeah, I might put a comment in or something.  You know, that's bound to break it.  This is our demo server.  I would point out it's not space to work.  It's a testing staging server.  You know, staging is, I can't spell, to be broken.  But for some reason it's not broken enough yet.  So we'll have to keep going until it breaks.  You know, whatever.  What should we do?  Tables are particularly fun in terms of the internal core implementation.  So let's try a table.  See what happens here.  Ah, didn't insert.  That's even more exciting.  Let me try this again.  And I can file a bug.  Oh, no, didn't insert.  I just obviously screwed it up in some silly way.  Uh-huh.  Delete, delete this guy.  We don't want him.  Ah, perfect.  Now how about...  Come on.  Ah-ha.  We're fighting.  You know, that's much more fun.  So, yeah, yeah, so I think the sort of the extended use case here is the, you've got to  delete this thing, Andrew.  Otherwise people think I'm some kind of egotistical.  Well, that'd probably be right.  Um, okay, this is good.  So, um, yeah, so actually the most common use case we've seen for this is when I type  the minutes or when someone else is typing minutes of a meeting, I make dozens of spelling  mistakes and, you know, I shape the meeting to my agenda, you know.  And so other people can come and correct it and, you know, improve upon the record as we  go down.  Um, so actually I think that's quite a common use case where actually you do get conflicts  in that as you're watching and editing and building some kind of record or a document.  But yeah, of course this is combined then with all of that rich layout, balance columns,  images, you know, all of these things are, you know, all part of that.  So again, you can edit any rich documents, slideshow, you know, all together and collaboratively.  This is, uh, if you want to build master, you can play with this now yourself.  Um, but we'll be releasing, I think a code version with some of this stuff in it, um,  in the next, um, let's say months because that's, that's better, you know, rather than  minutes.  Um, but, um, yeah, certainly before the end of the year, we hope to be taking this to  market in a, in a really great, robust, tested, a staple way.  And we'd love help, you know, if people want to get involved playing with that and finding  all those nasty corner cases where, uh, you know, maybe something is, uh, as under tested.  So does that make sense?  Good.  Exciting.  So once we're at this point, I think we're then almost, you know, we're on feature parity  then with, um, a number of these other suites and actually we can do a lot more.  So if you play with, uh, some of these other alternatives that are doing it all in JavaScript  on the client, you discover that actually you, you can't do things.  So let me give you an example of something you can't do.  So if you take office 365, you can have a perfect whizzy wig view of the document.  I say perfect, like reduced resolution images, but you see what the pages are, or you can  edit it.  When you edit it, it's not whizzy wig at all.  It's a sort of crushed, crushed version of it, which behaves in an odd way.  So for example, images, because it's not a whizzy wig view, you can't reposition your  images.  So just the ability to move an image around seems like an easy thing, right?  It doesn't work in office 365 in word.  Does work in PowerPoint because PowerPoint is, it would be kind of debilitating if you  couldn't position an image on your slides, but you know, you get the idea of the feature  gap.  So already we're starting to do things that are, you know, really actually at the cutting  edge in terms of delivering features.  It may not seem a big feature to you to be able to actually see what your document will  be like.  Um, but you know, people, people like that.  Um, it seems kind of sad that it's not that.  So I think already we can do some very exciting things with the collaboration.  I think we'll be in a very strong position and then moving ahead.  We're going to get even richer in various ways.  So you say, how expensive is this?  What is the bandwidth we need?  What is the, you know, what are the feeds and the speeds?  And we're getting quite conservatively to start with, I think on this.  So you know, there's a lot of optimization we can do.  Um, but we're, we're focusing on, you know, features and stability and scalability, I  think to start with.  Um, in terms of hosting more users rather than reducing the hardware footprint.  So the main one we're saying something like 10 users per CPU thread, 100 megabytes of  RAM per user, 100 kilobits per second.  So if you consider my laptop here, which has 16 gigabytes of RAM, that's quite a lot of  users, 160.  It has eight cores.  So that's, uh, it has four cores and eight threads.  So that's 80 users.  Um, and it has probably a gigabit network card, but that's kind of cheating, isn't it?  So, so my laptop should be able to host everybody in this room to collaboratively edit and several  other rooms worth as well.  I'm not recommending using a Windows laptop with virtual machine to do that, but you see  the idea, right?  It's not, um, it's not a huge, um, a beast.  So yeah, I mean, you can see them for 200 users, uh, what, what you need there.  I think on a single, large-ish machine today, you can do a quite, quite nicely.  And that's how we recommend you deploy it just to demo it and try, try it out.  So everybody hits this, uh, this worker machine.  And as I said, all of the nasty, difficult integration, uh, file IO stuff is done by  own cloud.  Uh, and we're very happy about that.  Um, yeah, this is a sort of commercial slide I plugged in at the back, um, talking about  updates and maintenance and support.  So apologies for that.  And what else?  H.A. support.  And the key of this, uh, the key understanding of RHA, uh, setup is that everyone that's  editing the same document needs to end up in the same virtual machine address space,  the same threat, um, of that.  And the problem with that is, um, you know, your, your average load balancer is quite,  um, promiscuous.  You know, it puts the load where it thinks best and everybody for that document has to  resolve to the same machine.  Otherwise you load two copies of the document and then all things go wrong.  Okay.  Yeah.  So our collaborative editing works by, you know, not by composable operations, funny  remote synchronization problems and so on.  Um, yes.  So it is, it is probably said that, you know, there are two problems in computer science  that are basically impossible.  You know, one is sort of synchronizing remote state and, um, the other is naming things  and, uh, the other one is off by one errors.  Anyway, it's a silly joke.  Um, so, but the H A balancing thing is then very important to get, get this piece right.  But beyond that, you know, if you're balancing on your eye, then my hope is that you get  everybody into the same, the same machine.  And, and then it becomes more of a network, uh, routing, uh, problem, which scales really  very well judging by the internet and much less of a, oh, it doesn't scale.  You know, there's some database everyone needs to talk to.  Um, so yeah, these, these workloads are extremely independent.  Each one is serving just that document, just those users.  And yeah, so scalability is, well, you know, we, we run LibreOffice on, you know, thousands  of PCs and big organizations.  And it's not conceptually that different to do it, uh, by aggregating those two to one  machine.  So if, if there's going to be a scalability bottleneck, my hope is that it's in the virtualization  technology you're using or, you know, this kind of thing rather than anything that we're,  uh, we're doing.  So I think that's about the end of my talk.  I've had some great questions throughout.  You've been very patient.  I don't know how I'm doing for time.  I do know I talk too quickly.  Any bits you'd like to see again, or were too fast or too slow?  Tell me something.  Yeah.  Yeah, yeah.  Yes.  Probably.  Although yes.  So in collaborative editing, we reuse the tiles typically.  So actually the more users you can get into one document in theory, the less rendering  work we have to do.  Now there's, there's other work that we have to do as well, obviously, but in theory, if  everyone's watching the same tiles come out, we'd render one, you know, 10 tiles and serve  a hundred people.  That's the theory.  Of course, in reality, you know, let's, uh, let's test it and profile it and, and benchmark  it and, and then optimize it.  And then there won't be a problem.  Um, does that make sense?  Sure.  That's true.  That's the case.  Okay.  That's true.  Yes.  Yeah, that's right.  So, so my hope is though that if the use opens, you know, five documents and five tabs, he  doesn't type into all of them simultaneously.  That's, uh, that's the hope.  Of course there are some octopus programmers out there.  You know, I mean, you see my one hand typing, you know, maybe the other hand is writing  a novel over here.  So yeah, it's possible.  And I'm sure there are stupid things you can do.  Like, you know, if you want to see, so one of the problems in the world is, is that,  um, you know, marketing people like more megapixels.  So you know, your camera needs to have way more megapixels than any feasible screen can  display.  You know, it was a 4k screen in terms of megapixels.  Well, even a 4k screen is smaller than your average camera display now.  And so that's brilliant because it sells, it sells hardware.  You know, the reason you need a quad core ultra, whatever phone is so that you can try  and interpolate the image down to the half a megapixel screen you have, right?  And, um, and the better thing is that the bigger the camera gets in relation to how the  size of the image, the worse the problem gets.  You know, if you want to actually see the, you know, the fence in your image, not as  a pixelated mess.  And so, you know, it does, it does really, some of these things are really relying on  people not pasting 100 megapixel images, hundreds of them in one document and then  expecting it to behave very, very quickly.  My hope is that's a relatively limited use case, but we can always optimize for this  as well and, you know, cache scalings and so on and so on.  So there's no hard and fast cut and dried answer.  But my hope is that actually, you know, having multiple documents open isn't a problem.  And as I say, we have everything in place to just expire those and, you know, cut the  virtual machine image down.  It doesn't need to be there.  So the connection can be alive.  We can talk to web service demon and the user may see a little spinner when it fades from  gray back to whatever, but you'll still be where you were.  And life will be good.  That's the vision.  And of course, collaborative editing is not ready here because, you know, we store a single  cursor position in a document when we auto-save.  So the shipping product works very nicely.  Has one cursor position.  So, but collaborative editing is more fun in this regard.  Does that help?  Perfect.  Good question.  Did I repeat the question?  Maybe it was obvious from the answer.  Another question.  Oh, gentlemen here.  Actually, two questions.  The first one is, have you had any discussions with integrating this into the on cloud mobile  app?  And the second question is, I've talked about this to some users and they said, well, we'd  actually just prefer opening straight up in Microsoft Office just because we don't want  to have to deal with compatibility issues.  How would I go about responding to that type of objection to global war?  That's great.  So the first question is easy.  We love talking to our own cloud.  So, you know, we can talk to them about anything.  I think in this case, you know, it's a relatively trivial web app.  Of course, we do have an Android version for OVLEBROFIS.  Calabra is currently not supporting that for a number of reasons.  Although actually, the technology you see here in terms of tile rendering and so on,  came from the mobile space.  So lots of that editing and tile refresh and so on is exactly what you want on a mobile  GPU and the pinch to zoom and pan.  It's what Firefox or Phenec uses.  So our Android version actually reuses Phenec.  It's like the Firefox tiling engine written in Java and then talking to the LibreOffice  backend.  But there's still a chunk of productization that's needed to make that nice.  And the question is, at least from my perspective, whether someone wants to download 150 megabytes  or it's actually a 50 megabyte zip file.  We do quite well actually compressing that down alongside their own cloud thing.  I think that's probably something we need to discuss together or work out how to integrate.  But yeah, all things are possible.  If that's a killer feature for you and it closes the deal, then we'll do it.  Why not?  Why not?  As long as you have more than one user.  So what else?  The other question was Office 360 for Office, Microsoft Office and compatibility issues.  Yeah?  Sure.  So I think we have some customers and pilots who are actually using Microsoft Office still  within cloud and having a great experience with that.  And there's no reason why that has to change.  So you can continue to download your files and edit them.  We can probably do some user experience work to make that even more beautiful.  I don't know if you played with Office 365, but there's a button saying edit this document  and the whole thing is an extended advert for offline office.  So you click the button and the top item is really edit this document in rich on whatever  where it really works.  And there's another button underneath that says, not very good, try editing it online,  basic, limited, whatever.  And then you load your spreadsheet and it says, oh, by the way, we threw away all of  your smart art and we also can't do this shape thing either.  And so would you consider giving a new name for the document because we don't want to  overwrite the old other one?  And that's Office 365 shipping today, right?  So I think we can do better than this.  We can match this functionality and I think that's, we should be proud of doing better,  really.  So if people are completely wedded to their Microsoft Office on the client and have sort  of ribbonized their brains or whatever, then they can stay there.  Why not if they don't want it?  But having said that, we'd like to persuade these people that there are real cost savings  and flexibility savings and all sorts of wins to using Collaborate Office or Libre Office  on the PC client.  And we see lots of governments and all sorts of things, the Hungarian court system, for  example, if you want to get tried and sent to prison in Hungary, it's all Libre Office  based, which is great because these court transcripts are quite important, for example.  There are huge deployments in governments and companies all around the place.  If you're in Italy and you go to Banco Populare to get your money out, again, all of the administration  is done through Libre Office there, really big 15,000-seat deployment supported by us.  So it's actually quite doable.  I think as we sell PC side, which is not what this conference is about, one of the things  we find is that people just are unaware that you can improve software.  Software is something that arrives out of heaven and you either try and dodge it or you're  ha, ha, thank you.  And that's it.  And the idea of having a rich product management relationship with the people that make it  and improving it and fixing your concerns and making it better and tying it into your  infrastructure and solving your business problems with it, it's just something completely foreign  to them.  There's this perception that if it has a bug, then we can't use it.  Actually, it's a nonsense.  We can fix the bug.  If it has a missing feature, well, we can add the feature.  And actually, given the price differential for large deployments, we can do that.  And you still win.  So does that help?  I mean, there's some tools there to, you know, but the punchline is you can still deploy  this alongside nCloud and keep your office, Microsoft office if you want, and still get  better functionality.  And it's easy to deploy and it's in the cloud.  And maybe you can segment your users and get a few of them that don't need to pay the  tax, right?  And you should install LibreOffice everywhere so that you can exchange ADF documents because  it's free, right?  If you don't want to fund development by paying me, then just install the free version, right?  And so then there's no internal problem.  Actually, I was talking to the Nantes Metropole, which is a large French region who've deployed  LibreOffice everywhere.  And they say, you know, having done their studies inside the organization, almost all  documents are exchanged.  As soon as you go outside, it's rare that the documents need to be edited.  So, you know, they've got some great stats on, like, the tiny proportion of people actually  need to edit it.  And they found that actually they can get LibreOffice deployed in most of their suppliers  and most of their partners as well.  So this is kind of spreading LibreOffice-ness, you know, going out there, which is encouraging.  And the more we can join up the islands, the more goodness we'll get.  Sounds good?  How am I doing for time?  Is there a...  I'm doing...  Perfect.  As in we have time for a few more questions?  One more.  Perfect.  So who is going to be the closing question?  One at all?  Don't move suddenly or you'll find you've bought a house, you know?  Okay.  Bang.  Anyone else?  Oh, well, you've been very patient.  Thank you for your time.  And check it out.  It's awesome.  Okay.
Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_0_71.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_72_119.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_120_167.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_168_215.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_216_311.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_312_359.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_360_467.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_468_527.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_528_659.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_660_719.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_720_803.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_804_899.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_900_983.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_984_1055.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_1056_1163.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_1164_15911.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_15912_16055.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_16056_16319.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_16320_16655.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_16656_17687.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_17688_17759.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_17760_17879.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_17880_17975.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_17976_18755.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_18756_18935.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_18936_18995.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_18996_19283.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19284_19343.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19344_19391.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19392_19475.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19476_19655.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19656_19703.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19704_19931.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_19932_24923.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_24924_25031.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_25032_25235.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_25236_31415.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_31416_31955.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_31956_34727.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_34728_35003.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_35004_35879.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_35880_35939.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_35940_36227.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_36228_36287.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_36288_42167.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_42168_42359.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_42360_42599.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_42600_42659.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_42660_42707.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_42708_45251.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_45252_45323.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_45324_45611.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_45612_45803.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_45804_46763.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_46764_53435.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_53436_53831.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_53832_53951.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_53952_54035.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_54036_54155.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_54156_59747.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_59748_67595.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_67596_82715.png Michael_Meeks__Keynote_-_Integrating_ownCloud_and_Collabora_V3xWNOpab58_82716_82863.png