 Okay, so today, actually it's been several years I haven't talked in this conference. This time I'm going to introduce a scheme that's to our online solution. It's not developed by me, but I'm interested by the developer to demo this to you. So the story starts from here. The story starts from here. In 2015, Taiwan's government started to migrate to ODF. This is the first time I come to the divorce conference. Okay, this is the... I'll just clip it now, yeah, but I think... Okay, so we generate, we customize a national version called NDC ODF application tools. That's customized from LibreOffice. This one is our local developer. They also customize, okay? And then in last year, we have a new developer, a new development in government called the MODA Ministry of Digital Affairs. It's what we call the MODA. MODA in Taiwanese means engine. They wish to be the push the Taiwan to go through this way. So the newest version this year is customized from LibreOffice 7.5 and the source code is here. Everything they customize, the source code is open, okay? Besides this type of version, there's also online version. This is these three or four years, especially after the pandemic starts, this request is a lot more. So we also have a MODA version online, okay? It is basically customized from the developer OX Office online and it is also customized from LibreOffice online. And the source is still here. When you got my slides, you can connect to there to see. And besides online solution, this part, ODF web, this part is the next cloud part. Of course, we have also some customization for next cloud. So since we have ODF, there are a lot of new features, new requests. For example, this one, this one is a talk I gave in Boston. That is because in our government, we have many systems and they will generate reports, but they are mostly in Microsoft format and sometimes in weird Microsoft format. For example, the extension is XLS, but actually HTML, something like that. But then the government asked them to generate ODF format reports. But the system is there. The system does not provide that. So our long development is kind of API server. And for the service for the server part, they don't need to change the code. They just need to call the API server and give him a template. They will generate the ODF report they need. This is where they don't need to change their own solution, but still can generate ODF reports. So in 2019, I gave a demo in Boston. But that's just one. Another is like this. This is a preview, the document preview. Actually, this request is not from government, it's from one of their business customer. Okay, later I will demo something like that for you. Yeah, okay, this is for review. And actually, it is not used on the online instance. It is used for, for example, other service like WebMail, where WebMail has an attachment of ODF file. They can directly call the online instance to give a review to that. So that is also a new request. Anyway, they have quite a few feature requests. But then they found a serious problem that when they try to implement those requests, they have to sometimes to change some part of the core. And also if the upstream changes something in the core, that might break the implemented feature. So that's the problem they are facing. So they are thinking about if there is a way to easily develop new features without breaking the core. So that is what it comes out of. Okay, the module scheme. So first is you just use a module maker to generate an empty module and then we can implement our features. Right now, I'm giving you a lifetime. Okay, this is why I have already run a testing instance here. And now I just need to do this. This is the command I need to use. I just give him some argument. Give him some argument. So I directed wrong that it will generate a git repository of this module. So now what I'm doing is just to implement that. We just borrow the draw.io from end code. So I already downloaded that. This is the code from the GitHub. So I directly borrowed that. I just copy it from end code into our module. And then I simply change the request because so far in the demo code, the request is directly sending you an HTTP OK. So I simply use to handle by the base class. Now it's comparing time. The code is pretty simple, so it won't take too long. And then I just run it on the instance. Okay. Finally, ta-da. I'm calling the instance its module and the file is here. That's all. Okay, that's all. But this is, of course, this is the final part. We also need to handle the backend part. That's to send the SVG file into the audio file. That's another part, but generating a simple module is pretty simple, just like that. Okay. So we have already developed a few useful modules. For example, this one much ODF is what I said, a server-side solution to generate ODF reports. They originally implemented it directly on the online source code, but then they used the module scheme to develop a module. So the code is pretty clean. Just call the module that you can do. And the list table, let's see this is from the request from our educational department. That is, they will have some table on the HTML and they can directly build it into a spreadsheet. Oh, this one preview is pretty interesting. This is the backend admin. And here, I can give it... Here we can try this module. For example, I put the date here. This is for watermark. Day and time. And I select file. And this is the effect. And this means when you preview that, you cannot download it. You cannot print it. You cannot copy that anywhere like that. So I just send it out. And this is a review. This preview is used to... For example, I just said one of the big customers, they have their own cloud solution. And they use... Have their own web mail or mail service. So this one is used when they... When the mail has the ODF attachment in it, they can directly call that to preview. And you can see... I don't know if it's not very clear or rather the preview... The watermark is not very clear here, but it is there. So this is some of the useful modules we already have. So right now the source code is open. For this case, it's open. And so far the problem we have is... We actually don't know because maybe because it hasn't been used for large scale. We have a few modules but we need more. Also for one single module, maybe we need more users online concurrently to test that. So anyway, we need more people. If you are interested in that, we need more one to join us. And one thing we are talking about is to dynamically load the module. Right now, if we develop a module or install a module, we need to restart the online instance. But we are thinking about a way to dynamically load that without restarting the instance. Okay? So for the future, maybe... Right now, we can develop a module using C++ and HTML, but we are also thinking about if we can put PHP interpreter or Python interpreter inside that so that we can develop a module using PHP or Python. That's what we are thinking about. So if you are interested, of course, welcome to join us. And this one is that the online part is not only the office part, but also the next cloud, right? So what they are doing now is... I've found several customers, they are doing now is to integrate other online services, online... other online services into the solution, into a solution. So maybe there will be more ideas to generate a module or anywhere in the integration. So that's the future. So that's it. We have now... We have some simple document, but of course, we have a mailing list running by mailman. So you can join us... That's the code, sorry. What I want to say is this. We have a mailing list, so you can join the mailing list and start to discuss with us. And the code is here, so you can try to contribute to that if you are interested. So since we have already wasted many time just to install that, so I think that's it.