 Okay, guys, the floor is for you. Thanks. So, hello everyone. My name is Siri, and I will talk about the Divide and Map now, the Daemon project. I will start with the missing maps, where I am volunteering for three years. We are contributing to the OpenStreetMap by mapping the developing countries. These maps are then used by humanitarian organizations like Dr. Vizdar Warders and Red Cross and of course the local communities. How we do that? We organize map-atons. These are mapping events for many people. These people came. We give them some area we need to map and they do their job. The idea is to split the large area to multiple squares and each mapper may log the square, map the square, then unlock it, mark is done and things like that. This is the approach to map large area. We use Tasking Manager by humanitarian OpenStreetMap team, developers. I experimented transition from V2 to V3 and I am looking around the GitHub where the development happens because the Tasking Manager V4 should be released soon. There is another tool mapping North Korea, which is similar to Tasking Manager, but just for North Korea. The software is the same, or ADIAD is the same. Just have large area split to squares and let mappers map it. I think that there are some issues with the Hot Tasking Manager. There is a lot of ideas like machine learning and artificial intelligence to implement into the Tasking Manager, but there is a primary functionality that should be kept. If the service is slow, it is bad. The next thing is that the project has its OpenProject Manager, but I think that it is not the right thing. I think that the community manager that somehow communicates what the community really needs and the developers really implement it would be more beneficial. For example, this performance is kind of terrible. The last but not least, the closed tools used for contributing to the project. If you want to be some advanced user that provides feedback to the hot developers, you need to log in through the Google Form. You can read the meeting notes on the Google Drive. You need to sign up for the Slack or request sign up. They will approve it and so on. I don't like this approach, so I think they do it wrong. Therefore, divide and map now. Here we are. The project is split to multiple repositories. It's done explicitly to enable the focus for one thing. If anyone wants to implement new client, it needs to do the same. I had to do implementing my client. Therefore, I think that explicitly split is one thing that is really, really good. There is at least server, which is just JSON API to the Postgrease database. There is client that is for mappers who contributes to the OpenStreetMap by mapping these developing countries. There is manager used by the guys who need to create some area to map. Of course, you may use the preprocessed areas from Mapswipe, Analytics, or the JSON because the input is JSON polygon. If you're developing some service, mapping service, and you mean it seriously, you definitely need JSON plug-in. The last thing is deployment. You have a project and you want to deploy it, but the deployment is not related to developing tools. If you develop the server, you are Python programmer and developer, you don't care about Docker because you don't know what is Docker. Therefore, there is another split. These repositories are at least used. There is a place to chat or to communicate. The main communication channel is Github or Github. It's because the history is open, so you may just click link as a whole history. If you want to contribute to discussion, you may look in with the GitHub account, GitHub account, or Twitter account. Nobody needs to approve you. Just look in and contribute. The idea is to let the mappers communicate with client developers. Client developers should listen to the mappers and implement things into their clients. If they can't implement it because the server doesn't support it, then the client developers communicate with the server developers to implement the needed functionality. Of course, each client would create its own communication channel with its own mappers community. The GitLab issues, all these repositories are available on GitLab, so the communication channel of what should be implemented and why it should be implemented are through the GitLab issues. It's because having this in Github chat would be messy. Only after what and why is agreed, only after then the discussion should be about how it's implemented. About the demo server, well, it's implemented in fast API framework. Just a few keywords. It's Async, Interest, Restful, it's JSON and it's API. Of course, the base is the Postgrease database because in this kind of things it's must. There are four tables, database tables, one for areas which contains information about each area, squares which contains just area identifier, square identifier and both the geometry of squares. Then the commit, which is inspired by Git or Git. Well, if you change area or change square, you create new commit and therefore you have the whole history if you need it and OpenStreetMap users. Map or review square query like action from the mapper is implemented as single database query. So you say I want to map random square and it's only one query. This one query will select all available squares to map, then select one of them randomly, then create the commit message and then return the border geometry. Because it's one query, then there can't be like overlapping or something like these issues. Therefore it's implemented in database. The same for the split area functionality, split big area into the squares or for a split square if it's too big to map one mapper, it's written in database scripting language. So it's again some query. In the API for the commit query, there is implemented since query parameter, so you don't need to load all the commits each time you want the commits from the square or area. You just load the commits, save them, remember the last commit and then ask since therefore the performance or bandwidth is better. So demo clients, I'm always saying that it's just proof of concept. It's because I'm not JavaScript developer. I don't know it. I don't like it much. So there are proof of concept. It's only static web page and I implemented a really simple JavaScript library to load the data from the server. And of course the new clients are more than welcome. I think that it would be necessary if this project should come to life to create some new clients. Well, the deploy repository is based on Docker. If you want to just run some instance, you change the environment files to specific domain, provide your OpenStreetMap API keys and just Docker compose app. I recently added also the another Docker compose config file for bringing up the clients. So you may have clients on the same domain too. What I like to see in the future, it would be awesome if the demo project would be used by some local community of mappers. If somebody is part of the community and using for example, a tasking manager, some kind of old tasking manager or whatever, it would be awesome if you can test this project. It would be nice to start building the community to drive the project. I think that starting from the community of mappers is the good thing. Then I would like to benchmark it to hot tasking manager. I wasn't able to run the tasking manager yet. I'm not giving up. So as soon as I do it, I will benchmark it, but it would be nice if it would be done by some kind of third party. The last button is this kind of profiling refactor loop which should be done the whole time like you find out what is the weak point. Refactor the code, enhance it and so on. So this is all about the presentation and I would like to show you how does it work in the real world. There is a link to this project and I would like to show you the JSON manager. This one, its running instance is here. I will authenticate to open street map providing my credentials. Okay. Now, queef is mapping. Well, how does it look? I have a testing server with changes here. This is the JSON representation of the area in database and there is the history of changes. I somehow boosted here. Update the area. It's here and the history is the previous what was. If I want to, there is a check translation. So if I scroll somewhere where it's not check translation, I will load the old configuration, update the area. Now it's without the check translation. So this is the rollback function of the JSON manager. Creating area is similar but just you need to provide the JSON file. The second thing I would like to show you is the client which looks currently like this. There are just 10 areas. I will again authenticate to open street map. Okay, I'm here. Now I will show you the North Korea because I tried to upload some big area. So it looks like this. I implemented some kind of map. It's not perfect but at least something. And I will show you how the mapping is done. For example, here is the testing area. I uploaded it. Again, this is the map and things like that. So I want to show you that you may just click random square. The ID editor will open. You don't choose the JSON or ID editor because you have to do the JSON plugin. So you don't need to do that. Welcome. This is square. We know from the task manager. I can leave some message. It's done, for example, ready for review. So this is the history. I can review the JSON square which would be the same square I just marked for a review. Do-do-do-do. So here, again, done. This square is completed. I will try to map random square yet and show you, for example, split square functionality. Some small square. I will split square because the square was split. There's commits of the squares. I will go back to the area soon. There are four another squares added to this. One thing I really like is letting the users translate the description because it's, in my opinion, it's nice to let mappers contribute as much as possible. So I will just put here language and some translation. And the translation should be... Should, but it's not. So I will load the area again. And it's not because I am not connected. I don't know why, but I am losing... I am, so... No, I think that doing demo is important. So here it is. Yeah. Okay. So short demo presentation of the demo project. Your questions? Any questions? Yeah. I am trying to. Like I am always saying something on the GitHub. And they... For example, we have this meeting of Czech and Slovak community, missing maps community. And I provide the feedback and said that there are some issues with validators and performance and things like that. And we have some discussion, but it's kind of... Yeah, it will be implemented in the M4. Yeah, we don't change back end. So we can't do something like that. And it ends like this. So... Yeah. Thank you very much. Yeah. Thanks.