 I give you the microphone, no, no. Okay, I'm Franklin from Taiwan. Recently, recent years, we have a huge progress about adopting ODF and also liberal office in Taiwan. But because this is not the topic of today's talk, so if you are interested in Taiwan's story, just a few days before the join-up, the OSOR, they had this case study of Taiwanese government, how to do that and what we have done and what's our thoughts. So I recommend you to read this one about what we have done in Taiwan. And today, I'm going to life demo you. Another problem we need to solve during this year, we find another problem. Because what we have done so far is about crime. That means users use liberal office or use our derivatives from liberal office to generate ODF files and attach it in the mail of your document. But there is still another problem is here. Usually, it will be from the server because always we have many servers, many servers that need to generate reports. And this is the current flow. If an agency user needs to generate report from the server and send it to another unit, they will say, oh, I wanted this and that report and send this request to who, to see said the mean. He managed the servers, but the user does not generate the report himself. He requires the system, the mean to have which management servers because most of the databases are here. So they will need to generate here. And each server needs a module, a dedicated module to generate this report. That's because of license issue. And then later, I'll tell you what kind of report it generates and what is the module in the next page, okay? Almost all, maybe not all, but almost all of the module that will need to be integrated into the information system is this. It's called the CRISPR report. I don't know if any of you know this. It will just get some input and generate a report to you. But this CRISPR report, if we see what file format it is put, we'll find out no ODF. So now our people, users in our agency face a problem because our service does not generate ODF format report, but they are asked to send reports and any attachments in ODF. So can I directly convert it? Mostly it will be saved as Microsoft format. Maybe DOC, maybe DOCX, maybe XLS. But if we directly open it in LibreOffice, that would be like this. I can directly left them to you. This file is a typical, typical CRISPR report generated report. And if we directly open it, you can see that the file extension is DOC, right? But if we open it with LibreOffice, it will become like this. Here is the content, but you will see a lot of strange comments. Here, here, a lot. And something is wrong, anything. And if you really see what it is, you'll find out that actually it is HTML. So that means the CRISPR report generates files in HTML but named it in DOC or in XLS. And amazingly, that Microsoft Word and Excel can open it correctly. But in LibreOffice, we have problem. It's not easy to directly convert such kind of DOC or XLS to ODT or DS. So this is the screenshot. Okay, actually it is in HTML file. Besides this converting problem, there are also other annoying problem like this. First, you can see that almost all the server needs one module installed here. But we have many public agencies, different counties, cities, so many different units, they may use different version of CRISPR report and they may generate different version of format. Okay, that's one of the problem. It's difficult to integrate with each other because it has no standard. The second is that each single server needs to install one CRISPR report, okay. It's because of license issue. So if we have 10 servers managed to generate reports, we need to have 10 modules integrated into those. They may be, maybe there are different servers, different service on those servers, but each one we need to integrate once. Okay, so it's also difficult to manage so many different servers or difficult to integrate them together. So, okay, then some developers in the government will say, okay, if so, let us generate ODF directly. So they will do that this way. They will create a standard ODF like ODT and put everything inside. But then what they need to do, when they need to generate report, they need to extract this ODT and find the content they want to replace in many XML tags. And then replace it, pack it back. What if they all the fields changes? So all this work needs to do again. So it's also a pain for those systems and the means to directly generate ODF report because it should be multiple data, a dynamic data, but they can only generate one template but they need to replace the data with inside the XML tag and then pack back. So, for last year, our National Development Council, that's the main unit that's responsible for promote ODF and make it the nation's policy. So they ask our local developers, company name OSSI, they do the service from open office to developer office, it's more than 10 years. So we all are together to work together to promote ODF in Taiwan. So they ask them to develop, this will be called NDC ODAPI service. Okay, now let me show you. It's the steps to generate report is very simple. The first one is to build a server. I will show you step by step and the life demo to you later. Okay, we just need to create a server first and create a report template. The second step, I will tell you it will be done by the user, not C-set. And the upload to this server and get a address for API, then what the server needs to do is only to send a URI, calling the server's API to generate with data and the report will be generated. Okay, the first is, we can see, create a server, we have put it on GitHub. So you can find it in the GitHub, if I NDC ODF and the, here's API service. Okay. Then we have a demo server here. This one is the demo server built on our NDC office, the machine room. Okay, so this is a demo, of course, it has to log in, you can have different account than the credentials. So let's let me log in again. Okay, this is the first, we have already built a service. Then the second, the second step is to create a report. Now I will, the directory demo. This one is a LibreOffice derivations. It is custom by LibreOffice 5.2.7 and this NDC ODF application tool. It's the target of this is very simple because many users in the public agencies, they have no idea which version of LibreOffice they want to use. And then they have no idea what is free software. So we just tell them, if you, now you need to generate ODF files, you just use this. And in 2017, the ODF process, I also tested that. Okay, so this is currently in government, this is the most use of this. Okay, and we have a tool, this is a wizard to generate the templates. So it's simple to generate it. Okay, let's start demo report templates and always remember to use the style. Then here we put many fields, data fields inside it. The field, the name of the field can be in Chinese. And here are the different kind of fields. Okay, then we have a few here. And because this template is created by users, but they need to let the thing know what it is. So sometimes we will add some comments here. Okay, and then let's put a date here. Then we put a table. Okay, we put field name here, sorry. Also we have the checkbox. Okay, so if it is, we can say if this report is credential or not, okay. Then this is a demo template, but sometimes we need some fields we need to be repeated. So we choose this field and put here, this is repeatable. Okay, then the simple template is generated. We save it as, no, okay. Us, OTT, text template, demo report template. Okay. After saving it, we can close that. And then back to this system, I just need to upload. I just need to upload this demo report for first name. And this is the category, in the government there may be many different category of reports, right? Then we upload it, OTT file. After uploading it, here, it's here. And you can see this is a JSON format example. This is YAM format example. And if we click this, you can see this. This is the API URL. So just copy that. And here are the demo, the example format of JSON and YAML. So we copy it. Now we upload and then we use slugger.io to simulate the server-side behavior. It's here. In this, the API we just generated, it follows a spec named open API spec. I'm not sure if it's version two or version three, but we follow that spec. Okay. And now this one is to simulate. Okay. The one we just copied, the URL we just copied, right? And then now we want to get API. It's pro. Then we can find, we have some method, get or post. The post is you can post the data with JSON format. So here we set it to JSON and then now we can try. This is the report generator. And this is the generator day. And the credential or not, maybe false. Okay. Here are the username, city, sorry. And this is phone number. And then we can have repeatable data, right? Here is repeatable. So we can copy that and generate the second and the third. Okay. We say ODF rocks. Okay. This is also, okay. And the third one is the graph is rocks two. Okay. It's in, okay. So we edit the data and then we execute it. That means we just sent this post request. Execute it. Then you can see this. This is exactly what he sent, what the service I sent. Okay. And, oh, JSON data error, sorry, wait. JSON data error. Oh, here. Okay. The call is, okay, look at the call. And the URL is here. And we can try, download it. This time we download it as ODT because it's generated report. So here is the generated report. Just it. So we just, because we have the URL here. So actually from the server side, what you need to do is only in the, when you need to generate report, you just need to send this out. Let us save it as another ODT file. We'll just use command line to send it out. And then it can be generated too. That's it. Okay, so let's get back here. So, and it really is done. It's very simple. And the most important, the flow now becomes like this. When the users, the unit in the government needs to generate ODF reports, the first thing is that they can generate template themselves because only them knows what they want, right? And with the help of our template visa, and they can put fields here and there. And then if, then after generate the templates, it just upload the template to the ODF API server. Just like what you see here, here, right? And it will generate the API that you need to call. Okay? And it will generate the API. Who needs to know the API? Only the citizen needs to know. And now this time, they don't need to install any other module in their servers. All they want is just to send a URL. You see, see URL or double get to send a post of data. So, he just called API and fill the data, and it will generate the ODF file that you can really send to the user. It's true standard ODF files. Okay? So the whole, the whole flow become very simple and they don't need to worry about we need to install so many modules. Okay? So, the advantage is very obvious. The first thing, of course, the server setters that need to rewrite the whole file report generating module. Now, it's use quiz for report and only generate HTML file with DOC extension. But then, now they don't need to rewrite anything. They just need to call the API. And actually, for the server setters not matter which programming language they use to create this server. Sometimes they will say, I will have the module but I'm written in Ruby but this server is written in C++. I don't know how to integrate them together. No, this time because we are only just require HTTP. So it does not matter how to generate the server, the original server. And, okay, also the server does not need to maintain or generate, upgrade the tools. And if any of the templates needs to update, you have new, you need to change some fields. You just need to, here is the modify and you just need to upload it again. And it will create a new API and you just call with new API, that's all. So no one would need to worry about the file, the data fields or the layout changes. It's just created by user and the teller. And I mean, I update these templates. Okay, they just need to replace the URL. So everything will be defined in the report templates which really use this report, okay? So I think this one is very important tool, especially for adopting ODF in government. Because actually, report generation is an important part in the government. And right now, they are still all in a non-standard Microsoft file format. And this tool will be online this year and the code is here. We have open source it, so everyone can build your own server in the tribe and of course, purchase our work home. Okay, that's my demo. So, okay, if anyone have question, but please speak slowly, okay? So, do we have any question? Yeah, of course. The dream of me is in Chinese but I think it's easy for you to understand that. So far. Yeah, but of course, maybe because we are, we do it for Taiwanese government, but of course, we can try to make it international. And then maybe it's everyone who is interested in it can have to send patches. Yeah, of course. No question then, thank you.