 Okay, thank you, and well, thank you for the speak of Andrea and it's very, actually I heard Andrea say that every is not a technical talk, actually I heard a lot including myself from the morning to now everybody is not a technical talk so I have to say that yes this is a technical talk and I'm glad to see that there are so few people here, so little people here. Okay, and before I start, you can also refer to the, you can also refer to the, sorry, here, and you can get the presentation here and also you can get the link to a source. Okay, now we go back to the talk. Hello, this is Sima Ket and I, some people has already stayed here from the morning, so I'm from the Taiwan Open Office Liberals Committee and I'm a member of the Open Office PMC Project Management Committee and also a member of Women's Enforcement in Taiwan. And I believe that I heard a lot of talk about today about the basic, open-air basic development and I'm very glad that since last time I attend such a conference as mostly about the office source itself but less about the, but very rare about the extensions and basic. And yeah, it's very cool, actually it connects programming with everybody stated, Runkin. And I create basic toolkit application for all kinds of, all kinds of jobs. For example, the counting sheet like you said, the counting sheet, actually including the counting sheet for my trip here. And also, need a sign-up book. For example, the, in sign-up book. For this sign-book, I use basic to create, for this attendees list I use basic to create a sign-book. Yes, I use basic to create a sign-book. Also, I use it to create multiple spreadsheets and yeah, I use it to create multiple spreadsheets. And I use it to create, actually I use it to create a magical painting. This is some work I attend, I attend to a contest of design contest to create some work, some graphic using this basic image. And I use, I use basic, use macros to create this. And yeah, you can see that it's actually screwing around with its head, yeah. And also, I create piano. For example, piano, which piano? Oh, it's too big. I create piano and send to my friends, our local community say that this piano is broken and can anyone fix it? Broken means that it can be played and can anyone fix it? And it's in the Christmas time, so it's actually a quest and the answer would be that, oh sorry, the sound is too small. Yeah, and afterwards I can just, yeah, afterwards I can just play, yeah, and then unlock this piano. Eh, sorry. And also I create Christmas cards. Yeah, I create Christmas cards. Yes, actually it's, you can say it's a routine word, it's not a routine word. Yeah, basic is cool, but actually, in the meanwhile, and also the Pokemon, Pokemon Go IV calculator, I talk about this morning. But I still, basic sucks. Since, for example, if I restore my system and I forgot to explore it, explore this basic macros and I lost everything. Because it really sits inside some hidden directory in your hard disk. Also, I can, so if I really cannot synchronize my basic macros between my laptop, my office PC, and my home PC, unless I keep exporting and exporting everything every day. So this sucks. And similarly, the IDE itself sucks. And the macros are exported as XML, so I cannot do, do complicated things that IDE does not support. For example, regular expression search and replace, yeah, or using GRIP or AWK to do some core refactoring. And many more you know. So I start to wonder, is it possible that I can write basic macros outside of basic IDE? And what would I need, what would I need if I want to do this, if I want to do write basic macros outside of basic IDE? The first thought is that I can keep a source directory, or a directory of source files. Whenever I update my source, then I copy and paste by hand manually into the basic IDE. But this actually won't work because it really sucks. So the other solution would be, is it possible if I can create a tool to do this? Today the robot to do this, whenever I update my macros sources, it copy and paste it into the basic IDE. And to do this, I have to be able to read and update basic macros with UNO. So you know, so this reminds me of something I've seen before. Just Calc Mosaic. Let's see Calc Mosaic. Yes, this is, I create my purchase Calc Mosaic. And sorry. In my project Calc Mosaic, I create a Mosaic of each frame in a video, each frame in a video. And after that, I inserted, injected a piece of macro into the system, into a document, so that I can play it. So, in Calc Mosaic what I did is to find, for a document there's a property, basic libraries. And I find out the basic libraries, and then I can manage the macros in the document. Now I'm working on the system storage. For system and user basic macros storage, they are stored together in a different location, the application script library container service. And I can use service manager to create it. The code below is Python. And then this container has XNAM SS interface. So I can use Hasbyname or getbyname to test and obtain a library, a basic library. And then for a basic library, the basic library is the XNAM container. I can use all these things, getbyname, replacebyname, insertbyname, and removebyname to match the models inside. ObtainModel with getbyname is actually only a string, a text string. And that contains one or more basic macros as subroutines. So the logic is actually very simple, simple, synchronized between files and the basic storage. When I want to update the basic modules, that's the most thing I do. If I found missing basic modules, then I add it and replace the updated basic macros and delete the obsolete modules. And when I want to update the source files, this is real, but I also do it often. I add missing source files and replace the updated source files and delete the obsolete source files. Yeah, so actually this is quite simple. And directly here, and I wanted to put in a test library. Okay, it says added. The four modules are added. So if I go to the tools, macros, organized macros, tools, macros, organized, basic, you can actually see that the test is added here. The test, the four modules is added. Once again, I play it again. First I remove the test library, and then I run it again, so it is added. So now if I want to delete, I want to, so if I want to, for example, I come out this line. Okay, then you just tell you update the updated part. Okay, or if I remove this, okay. You also add the missing part and remove the isolated part. And also I can also download these sources. Yes, so with this tool, I can simply work with among different computers. And what's the good of using this? What's the good of synchronizing the work in all of? Also with this, I can work with different text editors. For example, I can even use NetBeans or Xclips to develop my macros. And what's the good of it? First of all, since I know I can now I can put it in my own dirty. I can store my source file in whatever I want. For example, the cloud storage directory. And use cloud services and assess your source code everywhere. And secondly, I can apply a version control system. For example, CVS, Subversion, Git, or Macro. Okay, and I can use it to manage my source code. And then I can develop, developer can host your service on all kinds of popular source hosting website. Serve service, for example, GitHub, or source watch, or Coprix, Microsoft Coprix. Or for example, Launchpad, Elite, or 7.0. Yes, and also another benefit is that I can apply, I can apply build tools to auto main extension building. Mostly, I believe mostly people are still, and mostly people are building extension with the background tools. And that tool is actually great, but it takes time and if you are really doing very intense development, it kills you. So, with build tools, I can, for example, use make, or use end, attach end, or use cmake. And you can automate this process for intense development. And then additionally, usually we can adapt bridge project layout rules or temporary. And templates to simplify automatic project management. For example, for my Pokemon Go IV calculator. It is, it lives entirely in my Dropbox, so I can access it everywhere, in my home office, in my office PC, in my home PC, and in my laptop. And also I don't have to worry about if my heart is dies, it's still there. Also, I use keep to, for version control. And I host my project on GitHub. And also I use end, attach end. I choose end because end cause platform. And I choose end to build and release my project. So this is the project, this is the project structure of my Pokemon Go IV calculator. The OST directory is just the directory, just the same directory as when you unzip the, unzip the extension. And also there's the Pokemon Go IV, that's the main source. And also I can have a build.xml, I can have the reme. I can have the version, and I can host it on GitHub. So you are welcome to try it. Yes, and it's on GitHub and also on PYPI. And you can just find all BA, all basic things. And you are welcome to try it. Thank you, do you have any question? Question, I welcome. I hate no question, you know. Any question? Oh, I hate it. Okay, thank you.