 and useful. So let's get started. First of all let me introduce myself and you can get the key top and the address and I have been participating in the open source project for several years. So it started from 2016 to 2018. I worked as a core review of the similar projects which is in the OpenStack communities and I was I also worked as the ATC of the volcano projects of the CNCF projects communities and the volcano is batch systems for the Copernicus and started from 2000 and 19 till now and the maintainer of the Infra 6 of the OpenURL communities. So thank you and today we gonna have four parts of the topic. The first part where we will give you a brief introduction on who we are and the overview and the landscape of our infrastructure of the OpenURL communities and for the second and the third part where we will give the details and of the collaborative devops and the cloud-related APT designs and for the last part we will talk about the future plans. Maybe something about the service mesh, the cloud IDEs and the message centers. So for the first part who we are yes I think most of you guys has already seen the huge blue exhibition board downstairs because we are from OpenURLs. So let me first introduce the OpenURLs. Yes it's maybe you haven't seen this pictures before so I just repeat the words for you guys. OpenURL is an open source for a new distribution platform. The platform provides an open communities for the global developers to build an open diversified and architectural inclusive software existence. And OpenURLs are also innovative platforms that encourages everyone to propose new ideas, explore new approaches and practice new solutions. So our community started from 2019. So that's all. And so we will talk about the infrastructures. And you can take a look at the pictures. And when we talk about the operating systems many people will come to their mind of the center or Fedora. So we try to build the infrastructures for our own version of operating systems. We find there are many so many excellent and a mutual projects that can be used to set up the whole infrastructure for our communities. So take a look at this once. We use the OBS, the open build service for the open source projects to build our packages and to distribute our packages. We also use the GNU mailman. Maybe you have heard that before as our many needs to assistance. And you may also find that there are a bunch of the projects comes from the CNCF. Yes, we have the NGX ingress which is used as our reverse proxy server and as a simple API getaways. We also use other cities. Yes, other cities are nice tools. We use other cities to centralize our applications, the changes, the codes to our production environment. We also use the vault from the HashiCop which is used as our sensitive data backend. And we will use another small tool to centralize all the sensitive data from our vault backend to our Kubernetes clusters in these configuration files. And we also use the copper. Copper is kind of from the Fedora. Fedora use copper to further give a package services. And we have enhanced the copper in several ways to make it running better in the Kubernetes clusters. Okay, a lot of the projects. Yes, we also have the pro from the CNCF to review the PRs. And for the next part, we will give you the overview of our infrastructures. Actually, there are two tiers in our infrastructures. And for the tier one, we use telephone files to centralize and to create all of the base ice resource, including the VPCs, the VMs, and the CCE clusters. And for the second tier, it's all about the Kubernetes clusters. Actually, we have two different kind of clusters in our environment. The first one is master cluster. We use the master cluster for the developed process of all the applications. As you may find, there are several key applications. They are obviously these vault backend and elastic stack and the Grafana. So actually, all of our applications are maintained by our city. So once we have created a new version of our applications images, we will use our cities to centralize changes into our different clusters. And we have about 155 applications running back the way to 300 VMs. And currently, we have 10 solenoid developers here where you are. So it's a huge infrastructure. And all of the applications will be deployed into our business clusters directly. So we are going to the next part. It's about the cloud native DevOps. So we will share some experiments and some best practice for you about how we deploy the applications in a cloud native way. There are four parts. The first part is about deployment of standardizations. So yes, of course, if you want to deploy applications into Kubernetes clusters, you have to containerize applications. So there are several rules. The first one is about to containerize the applications one process per container. So we need to upgrade the existing projects to make it running in your Kubernetes clusters. And the second one is about to release deployment of semantics. So we suggest our developers to use home chat and customize to upgrade their deployable files. And that's the several rules is including the standard log output and the configuration, the sensitive data, we are in this because we will use the water packet and synthesize the all of the data is by our small tool, which is called a secret manager. And we also ask our developers to restrict to push images to the restricted image repo. Actually, we don't use the get double hop because we have some tools, our private repos, which is used to scan the CVS and to perform some checks before deploying. We also use we also ask our info developers to use trust data based images. For example, they ask to use the open URL based images. Because one of the packages can be easily upgraded if some CV issues has been fixed. And the last one is about to expose the health check endpoint. Yes, we need to restart the applications by detecting the health check endpoints. So this is the first part. And for the second part, it's about the configuration separations. So there are four or three, three different rules in the whole process to, to deploy the applications to our production environment. The first rule is the application developers, who is responsible to write out the raw Kubernetes email files, which will not contains any details for the deployment. For example, the storage crosslands and the domain names. And for the second rule is our DevOps engineer, which is used to add more details to the JML files with customize or Helm charts. And who will add the storage crossland as well as the configurations for our production environment. For example, the real database connection URL, the password and the user name. And for the third part is our informant tenders, who is responsible for reviewing all the changes, all the applications in our communities. He is responsible to merge the pro request and it will be handed to the ARCCD. ARCCD is used to centralize the changes. So that's for the part two. And for the part three and part four, it's about the GitOps option, GitOps and the automations. I think GitOps is the great rules and we utilize a lot about the ARCCDs and it can give us several benefits, including increased productivity and improve the stability, higher reliability and the stock stronger security guarantees. I think some of you guys, you have already used the GitOps best practices in your environment. And for the last part is about automations. Actually, there are three different cases for the automations. And the first one is about the end to end pipeline for every services. So let me, you can take a look at this picture. This is our website pipeline. It's actually the pipeline for our every stateless website. So once our developers come from the community to submit a new PR, we will create a temporary port which will reflect all the changes and the actual look of our website. And our container will review all the changes and to get the PR get merged. After that, everything is auto triggered by our Jenkins ARCCDs. So it will build, it will check and build the new version of our images and then we will push to our private image hub repositories. Also, we have the tools and the task to scan our images. After that, the ARCCD will use these new images to centralize reflection, to centralize the changes to our production environment. And we also have the post jobs which is used to purge all of the website catches. And we will as notify our website maintainers. So that's for all of the best difficulties we have learned during the process when we set up the whole infrastructure for our overall communities. And we're heading to our next part. During this part, I will share some excellent applications that we have been working on to make them better, running better in the Kubernetes clusters. So some of the projects is based on the existing operating projects, but some of the projects is based on the ideas we've learned from other open source projects. So there are two cases. The first one is about the bot. So if you guys have ever been the open source communities, you have, you must have learned that there is a bot application used to connect all the different applications into the pro request. For example, if the new developers submit a new PR that maintainers will use the bot application to check the code to perform the CLA checks and as well as to assign on or side and to post his comments on the pro request. So application actually, the Yabot, yes, Yabot is short for yet another bot is based on the idea of the pro project for the CNCF communities. So when first time we tried to investigate the existing bot applications, we found the pro project for CNCF and it's a nice project. It has about 30 plugins that we P which can be directly used in our environment. But the Yabot is the pro project still has some issues and some performance bottleneck, including once the one of the plugins get crashed, the whole pro application will get restarted as well as it sometimes when there are huge message comes from the code repository. Okay, okay. When when a huge message comes from the repositories, so it will sometimes lose the event. So we have upgraded the pro project into our Yabot. So I have we have improved it from several aspects. First is the robust. So now every single plugins will be supported in the containers. And it's easy to replicate. And if one of the plugins get crashed, it will not affect the whole application. And the second improvement is about the highest output. We use Kafka to receive the message from the code platforms, as well as deliver the messages to the back of the plugins based on the capabilities of the plugins. And we also have the developers on SDKs for the Python, Java and Goland to for our developers to develop their own version of the plugins as soon as possible. So within this change, a new comer or new developers in our info six can have their own version or have the new plugins in half a day. Okay, I will speed up. And the second application is meeting board. So having meeting is quite the essential requirement for the communities because we have about a tense tense of meetings per week. So we have created our own version of the meeting board. Actually, the architecture of the meeting board is quite simple. And the most of the job is done by the communities job. We have our operators, which will subscribe to the event that comes from the kitty, the zoom, the winning and the tens of the meetings. We also will watch the meetings from the OPS, operate as well as a way chat application. So once the event comes, we will use the place jobs to create the meeting to download the video and to send the email to our Sieg owners, as well as publish to publish the videos to our social platforms, including the PDPD and the U2P. So you can take a look at this picture. So this is the archived website for all of the videos we have. And for the next one is the UI in WeChat. And our Sieg maintainers use that WeChat to book meetings and to notify the developers. And okay, the next one next one is about signing services, because we are community to for the operating systems. So signing packages and signing the file is one of the requirements for our communities. At the first, we use OBS sign from the open build open Suzy to do the things of signing things. But we also find that there is there are several aspects in the OBS sign. They can be improved. The first one is about the securities because every private and public keys will be stored directly on the local machines. So it's possible that the PDPD keys or the X5 or 9 keys got leaked by the bad guys. So and the second one is about the performance. When we use OBS sign in our production environment, we found that it's possible that it's possible it will take five or six minutes to sign a single package. So it's quite slow. So based on this idea that we have created our own version of the sign service, which is named the CNETRUST. CNETRUST is a new word which is a combination of the CNETRUST and RUST. Yes, it's based on the RUST languages. And we have improved the sign services in several aspects. First one is about the end to end security designs. Within our designs, the sensitive data will be encrypted and decrypted before storing to databases with external KMS systems such as the Huawei Cloud KMS. And also, the process to do the signature process will be located in the TE environment, actually, the InterSGS or the ArcTE. And for the next point is that the whole code, the code project is right and pure in RUST. We also use the mutual TLS to communicate with the client and the server. Okay. I will submit again. And the second one is about the high throughput. So with our designs, data servers can be simply replicated. And we also use GRPC strings. And due to the reason that the full client and the server is a single task. So it's much better than the OBS sign project. You can take a look at these pictures. So no matter configured with the PGP agent and all the OBS sign compared with PGP libraries, we got much better performance when compared to OBS sign. And the last tool is about the RPM. We support the different kind of the batteries, including the RPM ISOs, kernel module files, EFI. And we are also going to support the container images and WSL. Okay. Next part. We got a, we have, I have only one minute. And for the MUX Studio, yeah, MUX Studio, MUX Studio is used for our developers because our developers come from, most of the developers come from China. And we have the developers come from the universities or the high schools. So it's a common case that they have some troubles to get the real environment, especially, especially for the Arc environment. So to, to fix that, we have developed our MUX Studio. MUX Studio is kind of a native terminal playground, you know, browser. So for our developers, once he opens the MUX Studio, he can use, he, he can have his own instance of the open URL. And he can directly use the terminal to download the packages, to build the red code, to build the packages as well. And this server is quite simple and fast. Once the, once the developer opens the browser, so it will be 20 minutes to have their, have his own version of the open URL. And we also support to customize the different images. And due to the reason that we use, we both use Docker and the LXT at the back end. So we support a different kind of the courses, including the containers, application container and the system containers, as well as virtual machines. So, and for, I got two more pages. Okay, okay, okay. So the next part is about the URL. URL is short for open URL user repositories. Actually, this is based on the copper instance from the Fidora project. But we have upgraded this project in several aspects. First, we have upgraded them to make them collaborative. Because all, because now all of the complement has been upgraded for the complete environment. Also, we have right our own version of the task schedule, which can call the API to our CCI clusters and to dynamically create the port for our task. And also the URL is highly integrated into our package developer process. Okay, that's all. And for the next two parts, I'm sorry. The next one is about the URL maker. Yes, we first try to use the OBS project for the open source to build our packages and our images. But currently, we are designing our new version of the package build and distribute systems. And the URL maker is in several ways, much better than the OBS. The first one is about the dynamical workers. And we support VMS and containers, and which we will have a developer master build compared with OBS. And the second one is about the job key per user with priorities. So it's a common case when you use OBS that you're for individual developers it will do with some time together that tasks get built. So we have designed a new create systems that every per user will have this increase. We also use the global build cat, which will speed up the whole building process. As in our test, it's about a 30% higher build performance for single package on average. And the last one is about how to build images. And I think Fedora and Pursuit uses our own tools, which is named Kivi or OS build to build images. So we also have our own version tools that can be highly customer process for the image generations, including the image format, the setup process, and additional file packages. And for the last part, it's about our future plans. So the top three is our task for this year. First thing is about the SSO because we have so many applications in our communities. So we are trying to associate all the applications with our SSO, the ID platform. And the second one is about the cloud IDEs. We support the development and the test process with our developer. So we're trying to set up the cloud ID for the communities. And the last one is about the message center because we have different applications, different messages. So we're trying to connect all the messages with cloud events. And within that change, our developers can have the messages come from the OBS and the Ginkians and the code repositories and many different applications. So that's all. Sorry. Time for question. Okay, I'm sorry. So you can send me an email or just outside of this meeting if you have any questions. So thank you. That's all. Thank you. And I appreciate that you've accelerated through that. And I guess you've got the booth downstairs also for any AI as applied to art. So that explains why it's probably going to be the most colorful set of slides you've seen all day. Yeah, so today we'll be talking about how you can build a multi model search engine in 15 minutes. And what I'm doing is actually something I've been working on for fun with Gina Cloud AI. I'll be sharing with you is really a series of experiments that have been playing with on the Gina Cloud AI. And if you have any questions, particular to Gina, you can actually join that community to learn more about AI and neural search. So what I'll be sharing is really from the perspective of light, you know, really just playing with these tools for fun and educational purposes. So what I would like to do is actually really start the presentation by building the search app on the fly so you can really get to see how easy it is and how quickly it can be done. And then I'm also going to talk a bit about why we have decided what are the advantages of neural search and how embeddings is a way to actually enable cross model and multi model searches in any problem domain of interest. And also how you can go from POC to production and some thoughts on the implications of AI moving to the future. So what I'll do is really just quickly hop over to the Gina Cloud interface and start to set up a search app. Okay, so I've actually already uploaded my data on to the Gina previously. And what are about to kind of like build a demo on... I think I need to pull this. Okay, so what I'm about to do is this particular data set has already been uploaded. So we'll be building the search app based on about close to 4000 images in the NGS collection. And what we've done previously is convert into the Docker Ray, which is a unique Gina data structure for handling and processing multi model data, i.e. image text, videos, sound and so on. So that's going to enable us to then subsequently build search on top of it. And all you have to do on the Gina Cloud AI interface is actually just to create a new search app, right? And we're going to be making use of this data set that's really preloaded. So the data source is the Docker Ray and then this particular data set. And you'll be able to choose. So for the purpose of this demo, I'll just use the title of the artwork as something to index over as well as the image, right? The image of the artwork itself. And you'll also be able to kind of like filter over different fields that you have in your data set as well. And then you hit deploy. So what's going to happen after this is essentially the Gina Cloud AI will take care of indexing and coding your data for you. So all we have to do now is basically wait for the server to be spun up. Yeah, so now I'll go back to I'll backtrack a bit to explain a bit more about what we were doing. Yeah, I think you'll find that your projection right in present in conferences is always most challenging compared to even building a new research app. Okay. So, okay. Yeah, so essentially those are the two things that we just did. And now maybe let me talk a bit about why I was inspired to work on this problem in the first place. So I'm actually part of a team running a culture tech accelerator at National Gallery Singapore. So for those of you who are in town or if you are local, please visit us, right? So the problem that we're trying to solve here is really that at the gallery we actually have an existing online collection search portal. It's making use of elastic search, symbolic search capabilities, which essentially means that if you do not really know what you're looking for in the title or in the actors or whatever, you won't be able to find the artwork that you may be looking for, which kind of like defeats the whole purpose of search. And the reality of this is so that we have a very limited set of meta data about our collection, which is close to 10,000 works. And our curators don't have the time to actually, you know, tag everything to make it more searchable for keyword based matches as well. Not to mention that it's highly the most interesting job in the world for a human to be doing. Right. So, so we are really faced with this problem of how do I take the existing data that I have and the very limited meta data and make it more accessible, more searchable for people, right? Also, given the fact that I think audiences and users are also growing to be more and more accustomed to more, you know, new ways of searching data, not just limited by text, but sometimes you may want to find something that is close to something, something that you've seen before, right, by unloading an image, for example. So this are all the different things that we weren't able to do with the current collection search portal. Also, because everything is kind of like in British English, the moment you spell something with a typo in another form of English, you won't be able to find what you're looking for as well. So anyway, you'll see this observation that kind of got me interested in looking at how neural search could be potentially applied to solve this problem. And I guess unlike other institutions like McCurry, it's kind of like we are faced with this problem of do I spend two years having an entire team of engineers and AR developers be a re-ranking algorithm, right? Or do I try to find something that can quickly prototype and go to production as quickly as possible? So that is also why I think that kind of like search led us to Gina to really start to explore what the possibilities of neural search for locating artworks. Yeah. And I think the core idea behind this is really what the core embedding is, right? So I decided that cats are cuter than dogs when I realized that you do not need to walk a cat. And essentially the whole idea behind this is that anything that we can think of, right? In the n number of dimensions can be represented in the transform using mathematical equations and represented in the 2D space like this. So this text and images can be represented within the same space. And a cute cat, I mean, the text is going to be closer to those two images of the cat that we see here. And that's going to be some distance away from the dog. And that's really kind of like the fundamental idea behind a lot of these similarities such as that we are doing with the different modalities of content that we have. Yeah. To give you a better visualization of that. So this is a embedding projector applied to, yeah, applied to about 500 works from our collection. So using the TSNA algorithm, we transform it into this 3D space, which then iterates and starts to cluster similar visual images together just based on images, right? So you kind of like see that the machine starts to put calligraphic works together and then portraits from another cluster and so on and so forth. So this can actually easily be extended to include other dimensions or other attributes as well. And the whole idea is when the user has a search query, right? That's going to be compared against what we already have in the embedding space. And then the similarity search is performed. So that's kind of like the gist of what drives the neural search in our context. And actually, I mean, just to kind of like take a step back to what I was done before setting up the search app. And this can all be done in less than 50 lines of code. And after like credit max for a Regina team for helping me with this as well. But essentially, Gina is able to cover how you abstract away a lot of the complexities in terms of deploying a neural search app in production, right? So what we're doing here is actually really using this data class API to represent multi-model documents. Again, like it could be an artwork with an image and text and so on and so forth. So you create this data class and basically we are then able to leverage the docker-raised full API to do whatever that you've just seen that we did, right? To actually embed and search and store and transfer the documents. And then after that, we basically then instantiate this data class with our actual data and cast them to a document. It's also kind of like worth noting that there are also more complex features to the Gina's docker-rate, right? You can actually nest your data set so that I can have an artwork that's part of a collection. I think they're also building, working on something that allows you to search over multiple collections as well. By the moment, it's kind of like limited to top level search law. Yeah, and then of course, as we know, generally an article would have different levels of granularity to it, right? There's kind of like the paragraph and then there's the sentence and then there's the individual words. So if you want to be able to search over different granularities, depending on your problem of interest, you can actually also do that with Gina. Yeah, so essentially later we'll be able to take a look at the demo app that was actually built. And of course, after you've built your demo, you may be interested to think about now then how do I actually put it into production? So my background is in economics and I tend to look at a lot of these things from a point of view of a trilemma in the sense that unless you have unlimited budgets, usually you kind of have to pick two out of three things, right? So in our case, in the case of what is more like a public organization without an in-house tech team of engineers and developers, I mean we tend to probably tend to fall more on the cost-effectiveness and performance side of this triangle, right? So you kind of lose that sovereignty or being able to build and maintain your own models in the house, which kind of has that trade-off where if the API or the service they are using goes under and it has happened before, right? Your entire thing kind of falls apart. I think that that's just why for this reason that I'm actually a lot more interested in open-source models or open-source products like this, right? Because at least there's some way to maybe try to recover what you need to recover even if the company goes under or whatever because it's kind of like, oh, in the open, right? So cost effectiveness is also really important to us then because generally I think comparatively the cost of using a managed service will probably be more cost-effective than having to maintain and in-house thing of engineers and developers, right? Yeah, but I mean at the moment I think these new forms of search as everyone knows are still a bit more pricey compared to older forms of search so there's definitely a lot of room for improvement in this area as well. Okay, and then as far as performance is concerned to me anything that is an improvement upon the current search portal is high-performing so that checks off the performance box for me, right? Yeah, so again the cool thing to me about Gina is really that it's able to abstract away a lot of these things they'll see over here and all that we have to do is focus on defining the document and understanding of data and representing it properly, right? With that, let me just do a quick demo and in the interest of time maybe I'll just see I'll play this video. Yeah, so this is the I mean this would be a app that there was this deployed and essentially when you do like a text-based search such as a rabbit you kind of like see they also understand that a bunny could also be a rabbit, right? And then you can also look for more abstract concepts like I don't know like angry men marching and it turns your results about people going on strikes so people questioning where's my job? Yeah, and you can also perform searches with images and actually mix image and text as well so if you've been to the recent Van Gogh exhibition I want to look for flowers from the National Collection you can do that and you can also refine this query with a text, right? Maybe I'm looking for flowers but I want to make flowers that look like Van Gogh's a piece of work and you can do that and you will see that it's actually doing magic against like text and image so that's kind of like how the whole multi-modality and cross-modality comes about yeah, okay. So you I think I hope that's given you an idea of what can be built with Gina and then and essentially you know if there are like other search apps of interest or things they are trying to solve pertaining to search I think there's a lot that these platforms can do right? So Yongjin has a lot of like crazy smirks in this drama if you want to find like which episode this particular screenshot is from you can build that or if you want to buy stuff based on a photo of something that you think you can also do that and so and so forth yeah. So anyway I think to conclude I think we're really moving from this age of like single models searches and AI to one there's a lot more multi-modal right? And it's probably also worth noting that actually the text image embeddings used in the search that demonstrated is based on open AI circuit which has also been used in stable diffusion mid-journey so if you're into that sort of stuff like runway has also recently released a model that allows you to generate videos based on text image and so and so forth so while living in a time when in the not too distant future right? A single person will be able to generate like a whole K-pop group that can check a review that can sing and dance and whatever with the help of multi-modal AI but of course I hope that that wouldn't be kind of like the only use cases that we can think of for this time there's definitely a lot of problems and challenges in the world that we can use multi-modal AI to solve so if you're interested in building multi-modal AI you can join the Gina community and also for those of you who are based in Singapore and overseas if you are interested in solving problems pertaining to AI as applied in art right? In fact you do not need to be passionate about art in order to build with AI for art you can also join the YLab Discord which is the culture tech accelerator I was talking about and I'll be more than happy to I mean further conversations about how we can use AI for good together yeah thank you Wonderful very nice presentation I will take one question if there is right here in the front excellent So how does your system know like this is a picture of flowers or whatever did you have to train that or are you building on top of an existing already image trained AI set? Yeah so we actually made use of open AI's clip service which has already like this pre-trained text and image embeddings and as I mentioned actually that was the same foundation that was used for a lot of the AI image generators that you see it's also open source so also the clip as a service comes as a part of the Gina the ecosystem of apps so that's definitely something that you can take a look at and start playing with right away yeah All right yes so I think maybe platforms like that make life a lot easier and just extend the models beyond the capabilities of even small companies with limited resources so I think probably lots of opportunities in that space and many more platforms to emerge good so we're just keeping up with the schedule and I'm going to take it straight into the next session which is going to be presented by Hilo and Chong and it's really about Dengi because NOSCOS don't care about our country boundaries they don't care if you have a visa so yep and it went on so we took on the project in our weekly social coding back in 2018 and we worked on it and we looked at the data and recently last year I looked at the Singapore data in more detail where we have the complete set of uninterrupted daily weather data as well as weekly Dengi cases from 2012 onwards okay so this came out like last year so we would that they were commenting about you know climate change weather extreme extreme weather and whether or not that actually worsened the Dengi cases and caused more Dengi outbreaks is that so let's take a look okay so let's have an initial look at the data and this is the yearly Dengi cases that you can see and you can see it follows some certain trend not quite but almost you can almost see okay where is the monsoon season and where is the the the end of the year December monsoon season it picks again okay and and it should look like hey maybe the Dengi cases do follow the weather maybe or not take a look if you look at just the Dengi and the rainfall this is the total mean rain for some looks like hey there's two peaks there and there's two peaks down here is it the same actually no so if we put them together we clearly very quickly see that the Dengi peaked before the torrential rain okay so the rain has absolutely no impact your huge heavy rain floods away all the mosquito eggs so we actually don't get any Dengis okay so next we look at the max temperature and we look at the peak next temperature again it doesn't actually match any Dengi rice and we look at the minimum temperature again minimum temperature it actually correlates a little bit more with the low Dengi cases but could be just a coincidence and then we have a closer inspection now so next we look at the peaks of Dengi because we have the entire okay so we had the entire range of from 2012 all the way to 2022 here and we can see the peaks of Dengi very closely here one two three and the highest one here on top notice you can see my cursor so basically the highest peak right there so if we look at the peaks more closely this is what it looks like so that's what the peak look like and you'll notice when we look at the increasing trend if we only closely look at the increasing trend that length of period right there and we look at the rainfall can anybody see what that I just noticed from here what's the difference from the left side to the right side let's see if anybody notice the exact same thing as me no so it's very interesting that on when the Dengi cases start decreasing notice that there are actually periods of no rainfall and between the red lines you can see that there's actually very very little periods of no rainfall so this shows a continuous moderate rainfall continuous rainfall through this period that causes the increase of Dengi cases and that actually hey maybe this is a key so we look at another peak it follows it's following the trend again continuous rainfall and then when we have long runs of dry spell we get a decrease again continuous rainfall yet again and again so we're seeing a pattern here a very very clear pattern that is the continuous rainfall that causes a rise in Dengi cases and if you notice all these if you notice one of the interesting thing I noticed is that all these crowds have a maximum or the continuous rainfall is between the between the 50 millimeter rainfall if you notice the highest rainfall we have is actually 150 so the peak rainfall is actually 150 but the continuous rainfall we notice here all falls within the range of 50 millimeters in force so we are looking at a continuous moderate rainfall that causes increase in Dengi cases okay so now let's have a quick look at the decreasing trends so we have the increasing decreasing very clear a lot of no rainfall days when you see a straight line that means almost a week we've got at least a week without rainfall right there right again the rainfall days are the increasing Dengi cases and the decreasing Dengi cases is in green it's a very clear demarcation of continuous rain and the ones with with no no rains and if you look at the far right side of the graph there's actually very more high rainforests towards the end and that actually washes away the mosquito eggs so you notice a decreasing trend right there so we have 60 millimeters rainfall continuously for a couple of days and that causes more the mosquitoes they don't have chances to lay their eggs yet okay same thing and yet again this one's a lot more clear you have your dry spell and the decreasing trend right there again dry spell immediate decrease in your Dengi cases okay so this really shows that the number of rain for days the continuous rain for days actually does make a very big difference on your Dengi cases right there okay so let's have a quick look at the rainfall peak so we have looked at the low rain for the moderate rain force between less than 50 millimeter rainfall and now have a look at the peak of 140 millimeter rain for days and that does not affect the Dengi cases at all so it's very clear that one message is very very clear out of all these is extreme weather absolutely no change to the Dengi cases so extreme climate change mosquitos don't care another rainfall peak again no difference no change to the Dengi cases in these two rainfall peaks of our 18 liter rain force so let's have a look at the year of low Dengi so if you notice the previous graphs that I showed we have a couple of years with very very low cases of Dengi almost straight line down the bottom right there right so this means that the Dengi cases here we can look more closely the Dengi cases actually are below 100 so you see that the high Dengi cases areas are actually 200 over even 300 cases per week even heat that high right I think one of the the max was actually 1,700 cases in a one week you get 107,000 cases of Dengi in Singapore so that's a lot right so let's have a look at the low peak period which is actually right before Covid if you notice the days right there it's right before Covid we actually have a low Dengi period of more than one year almost two years right there from 2016 to 2018 and this low period basically is only every week there's no more than 100 cases every week right there and certain weeks that are actually zero you can see zero cases reported and if we look at the corresponding low rainfall actually means that in this two year period we have no rainfall and not now no rainfall days that is exceeds 70mm so that's interesting and if you draw a line through that if we look at the periods we cut the chunks out in three periods and we look at them a little bit more closely the rainfalls all do not it's quite low almost just 25 every day these are daily rainfall if you notice there's only a couple of days that goes above 25mm and yet again only a couple of days are sprinkled here and there as above 25mm rainfall okay this is a span of one year and 10 months less than two years okay so that completes the intense data analysis graphs that you see in summary basically the extreme weather no effect at all and what we are looking at that does make an effect on the dengue cases is actually the continuous moderate rainfall and the longer period of your continuous rainfall is the one that actually peaks your dengue cases it just go climbs up and up and up until it hit 1000 over cases a week and yep so moving forward we will analyze of course the malaria whether the malaria actually follows the same pattern as the dengue cases and we can look at Zika other viruses that actually mosquito born but most of these the three diseases below mostly imported rather than local diseases okay and for one interesting thing about malaria that we did notice in previous data and see is that malaria is different from dengue where the cluster of the dengue cases are around centered around HDB car parks so people where that's high population because dengue diseases is born from human to human so the high population area is where the dengue classes are and the malaria however malaria dengue clusters are centered around interestingly around the lakes around our lakes so that's some interesting point right there and that's it thank you very much let's just short answer awesome thanks for those insights get in maybe Oliver Singapore probably know somebody who's had dengue or contracted dengue any questions to the speaker I can take I think one question thank you for that just one question regarding to the the screenshots from BBC the news over there which is curious about how does BBC actually interpret the relationship between the extreme climate I don't think there was any it was just you know a hypothesis is a hypothesis yeah and what you have this findings here we'll find out actually it has nothing to do with extreme weather are going to correct yes that's not just me yeah there are other studies out there that has proven that yeah hot weather doesn't really affect mosquitoes at all if it's livable for us it's livable for mosquitoes most likely it's a fake news then uh not fake news but it's just a hypothesis I see I think thank you media with attention grabbing headlines right no good and I think also very very glad to hear about the support to the not-for-profit organizations in in their data challenges that's awesome thank you good so um we're now going to be moving on to a another topic taking us forward into the education space our speakers Benjamin I say it right Jerry spelled almost with the German way S C H okay I see okay makes it and so vengeance all for creating the new decentralized world with unique DeFi and visionary utility NFT infrastructure he's a language designer and helping to use technology to create new ways of learning around the world the session as we see up there is rethinking edu-tech and why has it failed can a new focus on learning finally realize its potential and so really just that the intention here is that Benjamin's encountered many edu-tech companies many have taken an approach of build it and they will come with an expectation to replace teachers and revolutionize education but yet this has not materially happened so we're looking forward to hear from Benjamin about how he seems the landscape to take education landscape changing thank you Benjamin you've got a 25 minutes is that right yes check check all right groovy all right thank you all yeah it's great to be back for FOS Asia last time I talked was at 2018 I was talking about the old crypto space and my company biggestlab.io we are crypto stuff and so my last talk if you if you YouTube search it FOS Asia Proteus or FOS Asia Sherry you'll see my talk and it's 45 minutes long so we got to do some back and forth so I really like back and forth so if I say anything that you find objective or you have a question in the middle of it raise your hand I like the debate aspect that's the open part of FOS so I'm hoping next year we're gonna have a little bit longer talks so that we can get into that but this talk is something completely different this is actually about a space that I kind of swore that I would never get into and yet here I am so yeah it was good to see I'm not the only one doing edu tech stuff trauma here gave a great talk in the adventure room earlier on you know with COVID right we've all been impacted education is getting changed education changes are generational right you almost for changes to happen you have to kind of wait for the old school administrators and teachers to retire for the new ones to come on and in fact I was born in the very late 60s I went through the 70s in America and I remember I had some incredibly good public school teachers Mrs. Fletcher in second grade she would open up the class by reading a verse from the Bible in America now she would be put in jail my best teacher ever would not be allowed to teach in America that's this generational change and it happened during the Carter administration when they created the education the federal education federal department of education before then there was not such and Thomas soul great economist has shown the inverse proportional relationship between SAT scores and federal government spending in education so spending is not the problem right so what's going on I've been a mentor for lots of tech startups I was one of the first mentors for the JFDI incubator here in in Singapore and I've worked with a lot of startups and I've helped advise some edu tech companies and I've just watched edu tech on the sides and for about 20 years and a lot of well-meaning people that are really trying to have a positive impact but they have almost universally failed right and so the three things that we see commonly is that they believe that education automation I'm sorry not educating automation can replace teachers and books they have this you know hey our curriculum our system is so cool that everyone will see it and adopt it right if you build it they will come mentality for getting market share and they think that creating the curriculum is something that they can do with less than 20 million dollars right these are these are all you know if you see a edu tech company or anyone who's thinking that this is any of these you know you'll see this commonality right so right public education is you know it's been focused on teaching teachers teaching you know we're going to show you what to do and what to learn right teachers are the source of knowledge wrote memorization students are measured by how well they can repeat back what the teacher has told them right that's what your classic education does my focus and I think I think what needs to just change is that we need to make sure that we're just focused on learning we're not focused on teaching right and what is what is education so learning or education requires understanding the knowledge and demonstrating the ability to apply it right see apply it usefully find recognizing these common recurring patterns in the real world so it requires the adoption of the enabling of critical thinking skills ultimately is is what must is what must be there I also believe that the proper role of teachers is not to be the source of all knowledge right because often you know in lots of school places the teachers aren't even smarter than the the students right or they have different exposure for things right they can't be the guides of everything right but teachers should be coaches that enable learning right and so you know edu tech you know technology is not the thing right I'm a tech guy and I just you know you have the best tech in the world and in other ways somebody who's got a marketing department but crappy tech is going to kick my butt every single time it just happens all the time right you know there's even a phrase for it in the tech world like worst is better right where they're talking about they're talking about that right technology is not the thing technology is a multiplier of the thing right you got a 15 million dollar sap accounting system and you have no accounting skills anything times zero equals zero if that be lesson number one but if you're a really great accountant right technology like this SAP accounting system can make it where instead of you needing to be have a staff of 20 people to manage this one company you by yourself could almost manage 20 other companies for their accounting right so that's scalability that's what's critical that's what tech is at the tactical level now tech also introduces some other things at the strategic level but if you haven't accomplished the tactical level first forget about it right so I believe that as a good coach should be measured by educational outcome that good technology should be measured by how much you enable how effective you can help make that coach so we're not trying to abandon teachers here right so my metaphor for education or for learning is like working out right if you've ever started to try to work out and try to get your body in shape if you've gone to gym you've had a good personal trainer like I was fortunate to in Atlanta I haven't lived in Atlanta a long time as you can tell I have no personal trainer but I mean I can just tell my workouts were three to five times more effective because I had this guy even when he would tell me what to do and do it by myself it wasn't as good as when I was with him that's what a teaching coach should do for education right that's what should be so you know it's trying to get your mind in shape right regular school is like going to a gym but everyone's got the same equipment everyone's looking the same weights and everyone's going to do the same lesson right so if you'd look at the on a standard distributed curve that's great for the majority of the class there's some people they're never going to be able to lift it they're going to be left behind and there's some people it's going to be like okay this is not a challenge right so there's like two to five percent on this one side right who would succeed no matter what so they're not getting anything out of it but on average right you're better off having attended they're not having done it right you're going to be in better shape if you do any kind of workout even the regimen is very standard then if you did no workout at all and also you've got your peers around you to cheer you on which is a big thing right people kind of discount that I happen to homeschool I've got three boys I happen to homeschool them and you know everyone when you say homeschool you know how to make friends and all that stuff well you got to do other things about it but it doesn't important thing but it's the first thing everyone jumps at right but they don't think about this when they talk about edu-tech so edu-tech is like okay you don't need a teacher or whatever instead of doing instead of doing the same exercise that everyone's doing you're going to buy an expensive piece of of workout equipment you're going to put in your living room and what's it really going to do almost everybody it's going to be your new clothes hanger right because you are not self-motivated to educate right now that two to five percent of people who are good at you know just naturally good learners they might use this so you know talking about the build it and they will come mentality and how do you get market share as an edu-tech company well what you've really done by going with this model is you've eliminated all but 95 percent of the learning audience because they're not going to do your thing right so our focus again is on you know we're not like there's a group called the act in the academy and in Austin, Texas that's starting to get really big and they're doing a lot of Socratic method style of teaching right it requires that you have exceptional teachers who are really dedicated and it's a fantastic method but that's not going to solve this generations worth of educational challenges right we don't want to leave this generation behind so what are we what are we trying to do here so a little bit more about my background my father my parents were both educators I was born in the Navajo Indian reservation in Winter Rock, Arizona because my parents had to leave Arkansas to get a good paying job in education we don't pay good in the government the federal government does and my dad was a principal of the school there my mom was a teacher and when we were about six years old they wanted to move back home so I grew up in Arkansas my dad was the assistant superintendent of the Fort Smith public school system my mom was a seventh grade geography teacher my dad started his Ph.D. program when my sister entered kindergarten and he got his Ph.D. when she graduated high school it's the longest Ph.D. program in the University of Arkansas history his Ph.D. thesis was trying to attempt to measure the impact of educational outcomes by how good the administrator the principals were right my dad's an administrator you know he's thinking we're going to prove this once and for all the man taught himself statistics I remember him going through all this stuff and I mean and you know collected data over time did this thing end of his dissertation no measurable impact whatsoever right you know I think was probably a disappointing outcome for him but you know it just it made no difference there was no way of seeing there was any correlation between good administrators of course there's good correlations between teachers and I asked you know this made me interested in other things that were that were going on and so I read about other things and and really the thing the impact of educational outcomes more than anything by far like nothing even came close was parental participation and it didn't mean that your parent was teaching it means that your parents showed up for your your football games or whatever your parents just showed by you know showing you that it was an important thing and making education a priority they didn't have to they didn't have to teach you right and so one of the things that we wanted you know a lot of edu-tech that's inside the classical teaching system right now is focused solely on the teachers and what we want to do is we want to focus on learning if you want to focus on learning it means when you also need that we absolutely we got to help the teachers right we got to help them be good coaches we're going to enable them but we got to give resources to the students and we've got to bring the parental participation and we got to give them an opportunity because what is the typical experience of a parent and their child's education system if they're in the classic school network it is Sunday night a little Amy comes up and goes daddy daddy daddy I've got this assignment to do and you know you may not have seen this subject in 20 years or maybe it's math and they teach math differently and so daddy that's not how they showed it in glass right it's not a positive experience and so we can we hope with automation and stuff build tools and things to let this parent know what the kids been exposed to even give the parent hear some questions and stuff that you can do to you know and be involved in your kids education right just help the parents out because lots of times parents don't have much of an education right it's the first time so right uh edutite companies think that they've got the one true way you see all these like programming language education systems like this is the way to learn python it's ultimate it's great no people are different types of learners some people learn visually some people learn the audio some people learn by just knowing the first principle some people want to know mathematical formulas right which means you need to make at least three types of curriculum if you want to have the ultimate system curriculum is extremely expensive right and also if you're only going after if you really only market is these people who are good self educators well in the classic VC perspective you're either a vitamin or a cure is the way they measure you if you're a good investment if you're just an incremental improvement on some problem you're a vitamin you're not a good investment if you've eliminated the problem you're a cure you've got the potential to be a unicorn right almost all edutite companies their ultimate top level possibility is only as a vitamin company right so what we want to do is we want to be a we want to help teachers be better coaches and so the most effective way to learn is with a professional coach or a teacher who is focused on your learning goals right and the most effective edutect is the one that makes that teacher more capable so one of the things that we have that has been a big thing for me I make a lot of domain specific languages we deal with ontologies and taxonomies and also so my my client by the way is company called Axor and in Thailand they are the largest Thai publisher of educational curriculum they have 40% of the commercial market eight out of 10 Thai students who are in a Thai curriculum whether it's public or private school are using some of their books now they see an existential issue that books ain't going to be the way to teach another 10 years for now and so they have bought me on I have signed on as a consultant as their CIO to build an entirely new division a digital division for Axor in Thailand and of course we're going to adopt and use a lot of open technologies open source technologies and we hope to also participate and create some protocols to enable edgitech to work together with this focus on learning so this is my call out here for people who are interested anywhere around the world our immediate content inside Thailand must be in Thai which is by the way a challenge for doing a neuro linguistic programming or natural language processing because we don't put spaces between our words in Thailand it's a computational challenge just to separate the words but we're working on that so we have here the concept we're introducing like an ontology of knowledge now an ontology is not specific to any language right it's not a cultural thing so let's just pretend that we want that our learning goal is to learn how to do division right so we have the the orange box division right it depends on being able to know multiplication which is an ontological concept which depends on knowing addition which depends on knowing what natural numbers are division also requires subtraction so you can do the remainder so we have these concepts and how they're related together and what we do is we can take now Aksorn it's a family-owned company the Kuntawan the current CEO very very much a guy who wants to have an impact on education he is constrained by limits of having to work within the Ministry of Education's requirements right but he still had a fantastic impact he's behind making this happen we've got 30 years with the content we're going through all this content and we're going to ontologically tag it so imagine that we have the grade one math primes system right so we we tag numbers and counting and then also there's some other content we've got a Sesame Street video we've got a counting song you know for pre you know for pre-readers we've got a role playing game over here so we tag a lot of different content and now as students are introduced to stuff our system will know what content the students have been exposed to and also the type of content right now so we want to establish learning goals now the MOE in Thailand and almost all countries have specific learning outcomes for certain subjects for certain students of certain grade levels MOE has that those map very closely to ontological models as it turns out so the MOE has some learning outcomes that are required by the government but also the schools the parents teachers students can set learning goals right you want to learn about the Renaissance and the Roman Empire okay well we're going to generate a custom curriculum for you based off of the curriculum that we already know that's going to start with okay Christianity Constantine getting in the Roman Empire and then the schisms and all that and it was map here's a custom curriculum that is focused on your learning goals so you can imagine a you've no doubt been in a situation where you're trying to learn something and you need to learn the prerequisites and the prerequisites are a couple of semesters worth the material right well what if you only need this is one of those 20 chapters you only need chapters one four and seven to go to the next step of your learning goal right if everything is ontologically tagged our system will discover that and only expose that to you so you can go through at your own pace right and so what is your pace right so you have to measure learning outcomes all right and what is the one thing that teachers hate can anybody guess what is the number one thing that teachers hate more than anything else in the world about being a teacher and this is at all levels sorry parents complain well maybe I don't know but is grading tests oh my god because you got to give a quiz because you want to know if they're absorbing your material or not right but then that means that that night you're going to be upgrading tests at home rather than doing something enjoyable it is you know bad and also there's this there's this there's this latency there's a delay between taking you know taking the test and then getting the answer back right it may be tomorrow or if it's a more comprehensive test it may be next week and so your mind in determining determining did I really know this material or not and how can I do better on it has got this big time separation where you're not really in the mode so we want to do gamification over testing so this is this is a system called Kahoot that I think a lot of people have encountered and it lets you make little gamified things so the teacher will have this up on the board and the students will have on devices and they can in real time do their own questions it's a game it's competitive five minutes thank you and they can they can immediately see the feedback as to whether they got it right or wrong and the teacher doesn't have to do the grading matter of fact at each end of each question this is so I'm very much into agile and when we're doing planning poker you've ever done planning poker everyone estimates at the same time people who estimate at the very low end at the high end need to explain their estimates so everyone gets a consensus why well so people who vote for the things that are wrong can explain why they voted that answer why they thought and so the teacher will understand what aspects of it they didn't understand we'll be able to provide more content and by the way our system because the ontological stuff we'll know what these measurements were and we'll say okay for this class or even for the student for their homework tonight this student needs more of this content because they didn't do so well on this but they don't need any more of this because they've already mastered it right so we're constantly reorganizing and re-optimizing and oh by the way it knows what type of content the student has seen so it starts learning what type of learner each student is as an individual now teacher can't do that for all 30 something kids in their class right our system will start to let the teacher know that and we'll start to let the parents know that right that's what we're trying to build so this is our continual adaptive curriculum right so in agile we like to discover things rather than prescribe things right how effective is this get rapid feedback and the things that work we double down on things that don't work we toss out well we're going to create curriculums out of existing curriculum that do this and it's going to do this automatically so students will be routed to more supporting content for concepts with poor understanding we'll skip over additional content for concepts already mastered we're not wasting time consuming content not relative to our learning goal and talking about different learning styles I need to get through this quick we need more time next year all right and remember we had this you know we had this curve right of you know average students that are poor students that are great and we want to involve the students right anyone know what is the best way to master a subject oh my god you're brilliant yes if you can teach the subject like the first time you teach it you think you're good at it and then you try to teach it to somebody who doesn't have the core concepts oh my god once you can do that now you've mastered it well guess what we've got these brilliant kids two to five percent we've got these kids are being held back and the the brilliant kids are not being challenged right there was I my son is one of those kids teacher always used to play and he always looks the other way so is he getting any grades well yeah he's the first to finish his test well he's bored I learned to hate school as a kid because I got bored because I was stuck in the standard curriculum Sammy fortunately he's you know we're homeschooled so he's he actually enjoys school I can't even comprehend that myself personally so what we want is we want to give these same tools like the cahoots and whatever and we want to let those kids build content to help teach their fellow students right this will make the top smartest kids it will push them and will make them better and it will take the kids who are being left behind and we'll we won't lose another generation of people because we have a poor education program so these are the types of experiments and we're doing dozens of experiments I've signed up to do this for about two years so the first year is just a lot of experiments a lot of things I'm at the only so falses is so awesome I'm at the only office guys yesterday and like a whole lot of their clients in Europe are educators and it totally makes sense we're going to evaluate them we might make that an offering to the to the schools in there right there's a lot of other challenges I can't get into but if any of this inspires you please please please contact me I want to be involved with what you're doing we want to involve more open protocols like the challenge for cahoots for example right you'll find the good teachers will incorporate cahoots into their program but they have to like make the they have to make the tests and all that stuff right a lot of the teachers especially these rural areas they don't have the time to do that they don't necessarily have the skills to do that so we want to make a lot of content for them and it needs to be integrated together because whatever the score was that somebody had on cahoots no system is going to know what that kid's score was because cahoots doesn't integrate with anything else right we need that to be part of the larger learning system and learning management systems are really generally horrifically awful they're just they're built for they're built for teachers and administrators who are also technical which just eliminated about 95% of all the teachers the teachers hate them frankly the administrators like them but that's as we know the person who's going to have the least impact on our learning outcomes so we need to help our teachers be better coaches we need to help our students learn better we need to get the parents involved and that is my mission thank you very much and any questions or comments I would really appreciate it yes sir we need to I initially dropped out of a college but now I'm running an academy with a lot of students full degree one month and I mean one semester in two weeks University of Arkansas off atville that's my yeah that's my educational background go at it so the presentation was amazing so I just have this thought we are all talking about education technologies but I believe people are less focused on learning technologies amen brother so as much as we are focusing on like education technologies and how do you said you could map these curriculums and tag these curriculums that will help how do you see that like we are all good with technologies and how do you see that we can make more more technologies that could not just help teachers to I mean not just help students to watch the contents through some videos or through some contents but help them experience the contents yes so I that is what I consider a difference between an education technology versus a learning technology learning technology should give deliver them experiences instead of you know just watching the content so what is your opinion on learning technologies versus it takes so learning tick versus it tick you're we're completely online and that is the thing right and like the gamification is the huge huge thing and the kids really do love it I've talked to kids who have used cow hoots in their in their classes and they all enjoy it they would like to make their own we're going to enable that right it's you know you got to you got to make them feel good about themselves on the outcome and that's the challenge and and let me say it's it's one of the things that like when I was talking to them I started talking to them in December and we just started doing this as of February this is brand new and I was thinking okay I know how to do this for STEM how do you do this for humanities how do you do this with kids who do not yet know how to read that's hard right that's a hard because right technology is the multiplier right you got to find out what is the strengths here that our technology can multiply and one of the challenges that technology is good at that teachers hate or can't do like grading tests right that technology can take off their hands and so now the teachers will want to use it they won't see it as a burden so if we make the teachers want to use it we make the kids want to participate in it that's that's how I have to do this and and how to do that I've got opinions I'm always full of opinions and we're going to start measuring learning outcomes and try to figure it out thank you sir right here in the front let's take a couple more questions hey thank you so much for the talk Benjamin really involved in education myself so my name is Aditya and just want to ask you so Kahoot is great at doing assessments and I would I have the opinion that it's one dimensional correct and 21st century learning is not just about getting the answers right right it's it's repetitive and there's something called Kahoot fatigue so what would be your comment on making assessment more dynamic well so it's so it's not just so I don't I didn't look at strictly for assessment although that's like one of the one of the good important things but we also looked at it as a way like you know kids I think it's very important that like for my boys for example I like them to do projects so they're bringing in multiple disciplines at the same time so it's not this isn't just a math project this isn't just you know English project right my kid remember Tony when he was two years old burnt some toast and the thing it turned black and he's going wonder what that is I said well that's carbon I said well why don't you do something about what the carbon cycle is and learn about that so from his burnt toast to you know plants and in the sun and all that kind of stuff do a project so we want to provide tools and Kahoot is kind of an inspiration for that with that kind of a model where the kids can create their own content right so they can do their own offering system very easy and then do gamified challenges is what I call them for the for the assessment intermediate to that so the kids can see if their own efforts to their classmates is effective in their classmates learning or not Acton Institute also has this great program where kids like you're going to do a book report kids vote to see if you should get a badge that you accomplish this so we're going to do we're using AI art which my CEO demonstrated yesterday for our IDs and you have badges that show you did a good book report the second time you do it is it better than last one the third time you've done it okay now are you mastering this so and it's going to be voted on by the other kids but then it gets audited so if you vote on somebody who didn't deserve it you might lose your badge programs like this that get introduced by the Acton Institute kids helping teach the kids and the parents or the well both parents and the teachers are now like agile coaches right they're not doing the work they're not telling them how to do it they're just enabling and make sure that they put them in a position where they can succeed and thank you very much I think Benjamin will have to come back next year to tell us how it's God's hopefully publish all of this into the open source right for all of us to use so thanks run of applause for Benjamin thank you very much more room so anyway there's a lot of talks happening today so thank you for showing up to mine I it's not it's not very serious it's I hope that at the end of it you are like remotely entertained and maybe learn a little bit of useful things okay okay cool okay so my name is Huijing and I I have a day job I work at Shopify yes Shopify pays me my salary so I can pay my income tax and my cpf so the the thing about Shopify is that we just to clarify if you have never heard of our company before is not our logo is or green shopping bag the orange shall we back is sure V the red showing back is sure back and we are a green showing back and we do not do music they are on Spotify ours is e-commerce green shopping bag based in Canada okay just to clarify and so as a Canadian company it started off English only very normal because you don't know American market you focus there first but eventually like 15 years 16 years later then they're like oh actually this world got a lot of people who don't speak English if you let the numbers right I'm speaking English right now so this is like but actually not really your native language like how many of you really native English because not that many right but we are forced to learn English nevermind this is a this is because of colonialism but in in theory right 5% of the world are actually really English native English because the first of them had to learn it and then we all got our own mother tongue so it's like oh yeah okay we should probably like you know in order to bring to new markets we should like do internationalization the name of our company is is a as all tech companies go we like to change change a lot change change change until like I've been there for 3 years I already changed 7 teams so it's not a bad thing it's not a bad thing keeps things exciting keep things fresh yeah but this is a bit of history and story time so the TRDR of what I'm trying to say here is that I also try to trace the history of how our we did internationalization and Shopify some of my conclusions are off the mark because I'm only with the company for 3 years but Shopify around for sitting years so the key here is what terribly is that remember we don't actually know how dinosaurs look like so these conclusions are merely inferences okay so I'm trying to not try not to get myself into any trouble and saying anything about Shopify I love my salary so this is public information I went into the amazing website that's called the Way Back Machine what does the Way Back Machine do? The Way Back Machine allows you to look for things that happened in the past even though the page not there anymore so you must tell your young young kids or like younger friends like if you post something on the internet it may or may not be forever yeah okay so anyway this is back in back in 2014 on a September 10 or 2014 right so here the call website was English only but then on September 11, 2014 wow they introduced a language country selector to the footer I wasn't there so I don't know what happened but like like suddenly we support a lot of different regions this is cool let's look into it a bit more so then I realized that we have a bunch of localized English sites you know we have a French side which all makes sense Canada, French and then there was a Portuguese side you know what I've even got a Russian side um some of you who have a bit of a sharp eye might notice a bit of a issues that we have on the the Russian side from a typography standpoint but like we'll talk about this later so again the code base for these original sites 2014 now is like it's nine years later we cannot I cannot find a source code anymore so I also don't know who built it but based on my source does if you look at the source code eh this is 2014 because there was a trend by a lot of like tech company websites so it's like oh look you know how to click inspect element you might be a developer do you want a job so I think we also follow that trend like they're like oh yeah I'll show you if I wipe a little bit so it's quite quite interesting but it makes it seem as if this is like it's not like any framework some it's probably just some some team was like oh yeah okay let's just hand roll this Bernilla htmlcss website seems like it infer infer right this but I I don't know la huh so I don't want to be saying anything but recently I read an interview with our current localization programs that so she's been with Shopify for quite a very long time it was a quite fun interview but I put this from there because it was like we have an organization called growth kind of a bit of a bit of a marketing department but they if you say that then I probably offend some people so I should not offend people but basically someone from growth said had a thought because back then the Shopify block was quite a high traffic entity of ours because they were like oh yeah you know how to start your business online but it was English only so someone from growth was like eh what if we translated this block into major languages that are not English and sounds like a good idea right like as we establish you know English is a 5% native speaker the thing is you must understand okay so we are e-commerce application the dot com the website and the application are completely separate code basis so even though they're like oh yeah okay let's just experiment and let's let's translate our block into these major languages and it was a good idea because you know a lot of people who wouldn't have be motivated to start their own online store actually click on the sign up and the problem is our back end not translated so after they click sign up they're like oh what is this hi ya bye so then it was a lot of churn so that's like oh okay okay we need to we need to do something about this churn so okay this is 20 and this is 2020 that's we have like some strategy but like back then there was a unified bigger internationalization organization which has since are no longer exist like it's been like four re-ops so now no more already but last time I had this kind of thing so they were like oh yeah I've got target marker then you're like oh no these regions you must target and then oh so many languages another row everything out so the it's a very grand concept but if you think about it right it's very difficult not just like not just for Shopify right in I personally don't think that I can actually name a company that they did internationally so well we would all learn from that I think everyone who attempted to go beyond their own home market all ran into a different problems as they ran in because it's just really really hard right it's really hard there's so much to take into consideration but like there's a there's a strategy and business thing I'm just a lowly code monkey so let's talk about fun things that I encountered as a lowly code monkey so when you talk about internationalisation there's a few terms that you always see get thrown around so let's let's talk about these terms first of all what is a language a language is a system of communication used by a particular country or community quite straightforward but a language can have multiple writing scripts did not just you are writing scripts everybody so these writing scripts are visual representations of verbal speech then next thing is like domain domain most of us understand it's just an easy to remember address on the web that I can find these and lastly is locale so the I think lot of different frameworks have their own definition so we'll go with the W3C1 because you know internet it is a set of language or country based preferences for UI okay so we established these terms so if I.com we have 39 domains live in production today and six of those domains are CJK CJK stands for Chinese Japanese Code okay our channel site a bit complicated because it's a bit sensitive to have a .cn but anyway this is the general timeline of how we rolled up our CJK websites so the first site was for for Japan 2017 already had it and then the rest were just like you know rolled up over the years for a while our Japanese team was quite well-rounded so they were like oh they were developers content writers marketers sales support or that and they all looked they were actually Japanese based in Japan that's why the our Japan site out of all the localized site actually the Japan site I would say is one of the best localized regional sites that we have the other domain the other regions were a biter let's call them they were a bit less okay cannot talk shit about company I need my salary one so this is the first story time I call it the billion problem so CJ most of this example it's just anecdotal experience of my daily life at Shofa so I used to work on Shofa.com team not now I've got big up to a different team but okay before let's let's introduce my background I attend if you it's not obvious I ethnically Chinese why it's not obvious is I'm from Malaysia so I can speak both English and Chinese I can understand Cantonese but probably I pronounced everything wrong I can actually read Korean but I cannot understand what I'm reading and and so but the one thing that all the CJK Chinese Japanese Korean languages have in common is the numerous system cause I got some ancient Chinese person invented it so for Chinese Korean and Japanese right billion which is nine zeros there's no special term like billion in CJK what the the CJK numerous specific like term is you've got like tens hundreds thousands that's fine after ten thousand onwards right we go up by four zeros really so that's the that's the way the num num numerous system works so ten thousand we have a special word and then million don't have hundred million have billion don't have so this becomes a bit interesting when it comes to translation so billion in Chinese is Shi Yi which translates to ten hundred million so so just kind of like keep that in mind you don't have to know all the the words just you know that is there so when we do translations for our website and keep in mind that we have 39 domains and like 13 languages so to send send to translators we do have a bit of a interpolation because there are some numbers that use about about Shopify the company that use across all the websites so of course we want to keep them standardized so we we don't we don't include we don't hard code them we have variables so the the variables are good you know total stores total countries for the most part all of the numbers give back the full the full number so this one billion is like one zero zero zero zero zero zero but there's this one particular one particular variable right and you can see from the name is total GMV billions are this this problem they already because as of April 21 total GMV billions gave back the number 200 to zero zero so the end result is supposed to be what you see on top there's a there's an image but the translators don't see that what they receive is the source the source file with the with the what you call variables that are needed to be interpolated so uh this was actually shameful to say that it was lying in production for a while before we spotted it but like not anymore not not anymore because we we designed already so this is fine this is fine to is fine to reveal because it cannot find evidence of this anymore oh anyway I understand that for those of you who don't read these languages this this image doesn't help you and also let me explain why it's actually happening and like why is this wrong why is all this wrong it's all very wrong the word billion is directly translated into 10 million but the problem is because the translators didn't know that the variable was 200 we got back the translates we got back a translation that read in chinese in korean and in uh uh in the both chinese script right it was like oh hi uh social profiles gmv is 210 million dollars which you know it's actually very glaring if you are if you're not native speaker you will see the difference but for for most of for the rest of us who can read it right it's like a mistake that a child learning about numbers would make it was like super glaring and the interesting thing is that our japan side how didn't have this problem why is this so magical why why does japan not have this problem so remember earlier I said our japan theme was quite quite full full full full well rounded and they were like very actively aware of what was going on the japan side they spotted it super early and then they really adjusted so what they did was instead of the the 10 the the character for 10 10 hundred million they replaced it with a zero and made it a grammatically correct sentence so so that's the that's the solution that they did we placed the the character with the number zero and it was currently brilliant didn't didn't tell us but I to be fair to them cause the Japanese side came up first so I'm they probably didn't know that there was a Chinese and Korean side that had this problem also but so what I was saying is like the reason I even knew to fix this issue for the Chinese and Korean sides was because we had a Korean language reviewer and and the person was like hi excuse me I know that the instruction was for us to only check the section that you told us to check but this is on your home page and as a Korean speaker I cannot unsee this man like just oh shit okay can't sorry we were looking into it so it's like that's how glaring this problem is for for those of you who don't speak Chinese, Japanese or Korean so anyway I saw like oh Japan side did this this is very smart this is replicate the fix and then all is well so I have a colleague his name is Lucas Huang he works he works in he's out of Canada but he also he works on a different project for me but like he also is involved with translation-related things so he wrote up a lot more examples when trying to translate our interface into a lot of different languages so he has written this really nice article and his examples are quite cool because there's like oh it's Polish and French and basically he has managed to find examples from languages that just have very different structure from English so I really highly suggest giving it a read but yeah okay let's move on these are good points uh okay about 10 minutes left so ah Shopify Sense uh okay okay most people don't know but if you right click in the element you'll see that the form used for Shopify.com is a form called Shopify Sense hey because like all tech companies like oh let's commission our own branding word it's really very expensive okay anyway it was designed by a type foundry called commercial type and because he's based on their own typeface turns out Shopify does not actually own the rights to it is so fun I hope I'm not revealing company secrets or I who cares but anyway is a uncreatively called Shopify Sense because naming things is hard anyway I know a guy the this guy built this wonderful tool in my humble opinion right naming things is hard but I think he got it right because this is a tool that tells you everything about what your phone can do so if you ever ask yourself the question what can my phone do get it what can my phone do okay thank you for the very like forced laugh I appreciate this I understand that my my humor is very weird but anyway I have provided a link to these two in the resources so you can try out is um you don't have to upload anything if you have a phone file your computer on dumpy in then literally I will tell you everything about your the phone file so your character set and CSS support or that so brings us to a question the problem of vietnamese because the vietnamese side was launched while I was still in the dot com team I was a bit involved in it so I used the abbreviation cjk cjk but sometimes you will see cjk v vietnamese is also included in that abbreviation stands for vietnamese the thing about Shopify sense is that it does not include any of the characters in the cjk set because like I said commissioning your own phone very expensive and the problem is cjk languages because ham characters do you know how many characters there are a lot which makes it even doubly expensive so no don't don't don't do it don't do it very expensive um but because there's no like zero support for cjk actually makes things easier to handle vietnamese however falls in this very complicated in between purgatory or unicode ranges let me explain if they are vietnamese because around like you may or may not understand but from a unicode perspective right the vietnamese attributes are in non-contiguous range one so there's basic Latin but then there's also some in supplement there's also some in extended B the currency symbol lives somewhere else so it's quite spread over a large number of ranges but these range these unicode ranges right are used in a lot of forms that don't fully support vietnamese so the problem that you will encounter is that you end up with a lot of missing beliefs that are substituted by a foreback form usually is the system form and i understand that there are folks who cannot tell the difference with the characters of the same word have different forms some people just like who's the same to me what's your problem like it's the principle of the thing okay and also the for those of us who can see it right like cannot answer it it's a very jarring one for example i i put this screenshot here already some people are gonna say looks looks fine looks fine to me or someone will tell me actually there's a spelling mistake that's not a point the point is there's a mix series of mix fonts here whether or not you can spot it doesn't look that great and and this is a this is a development screenshot it never never got into production because you know we are we we we tested and we topheaded like professionals before launching but we had this problem during development so we managed to fix it using something called a lang pseudo class and this particular pseudo class hinges on the lang attribute of your html set correctly usually you set this on the very top html then is a lang attribute and language you can set it on any other element but it's usually advice to set it at the very top level and therefore it falls into a category of things developers tend to forget about because if you do that right while everyone focus on everything that is between the opening body tag and the closing body tag that's why everything that you cannot see right you forget like meta tag they'll do correctly the social media tag wrong social media image wrong size or then you forget the lang attribute that kind but the lang attribute is actually very important and it allows you to be able to target based on this the language so instead of having to put an extra class like if you have a mixed language mixed scripts you don't have to be like oh that that particular language you wrap it in a span and then tag it tag it with a CSS class or whatever it will if you are if it is if you set the lang attribute correctly it will work and so we went with a system from system fonts font stack for vietnamese because honestly that was the safest option it would guarantee that there won't be any of these like mixed character nonsense so yeah the side look quite look much better but that's not all the font saga is not over yet because in the recent content and design update our korean side ended up having some typographic issues and it's actually a very a bit of an age case but you know gg what to do you build a site you run into this kind of problem as a result of the vietnamese form problem right we added a helper on Shopify.com so if you are use Shopify sense and your the language supports we have a class if not it's a different class all together so for the non Shopify sense supported one it just for that it just we just use font family sense array so it's good because it's clean so in the event you need to override your new font stack it's very easy so that was quite quite good majority of the time using this as a solution is actually it's perfectly fine because system fonts are very reliable most of the time when it comes to character support the thing about Shopify.com is that we are it's not pure so even if there is like chinese character or korean character there's also english words inside it's a mix it's a mix language side so what we have now is what i call the beyond say issue the say in beyond say so there's a letting characters with those accent right it's a beyond say problem because there are certain fonts that don't support the letting characters with the accents the like you know take here take there circle here circle there that our japan team made a deliberate decision they have a japan spawn specific font stack so it's very nice they did not have this problem because the fonts they selected supported Latin run supplement because that's where all the letting characters with the accents live for chinese we did not curate the font it just so happened that the user agent of choice for all the major operating systems use the font that has latin one supplement so uh mac os now users uh ping fang then windows uses a font called tung xian and android use notosense cjk so all this support nicely no problem korean korean on windows also no problem because korean uses this font called malgun gotik on android korean uses notosense cjk again that one full support no problem mac os and ios made a choice to use this thing called apple sd gotik new and just nice for some it doesn't have this latin one supplement character so this is the actual deal we're actually gonna try and render but if you think about it if we try to render beyond say beyond say's name will not render correctly how security just is that right so in addition korean also is a unlike chinese and japanese right our korean has spaces between our words one so even though it's quite flexible like the words made can be split per per word just like per individual character or by word for heading shred designers hate having this like one like one character at a bottom one like the number of designers will say hey can you can you adjust like we really cannot have this it's one word it's just like floating in the middle and the thing is it only happens in between 20 pixels then you want to do what but the there's there are solutions there are solutions that just nice for korean works very well so the solution for us the font stack one is we updated the font stack so the way browsers pick fonts is that the order in which it appears on the font stack actually methods one so if it will check for the character in the in the font if it appears they'll use it if not they'll just move on to the next to the next next one and the next one on the list so if you have a specified english font put it up put it up first the end result will be much better and then for the the character breaking thing there's this particular css property called word break and word break is nice because there's the value for keep or only applies to cjk languages but what is the what it does is like if you set keep or the break only happens on a space and therefore you would not use it for chinese or japanese long text but if it's like a header maybe can for korean works very well because korean words got quite a lot of spaces so it will it will always make the the word split nicely you'll never have a single open character and so uh ah yeah so uh 25 this is about 25 minutes worth of nonsense content uh these are the links actually i will share the slides with everybody later thank you thank you thank you for coming with nonsense talk yes 25 minutes on the dot yes okay thank you huijin for my entertaining talk on the subtleties of font and and all the localization um i'm not sure is there any questions otherwise i think i'd go to take it into the next it's not a question no question okay we have take one quick question oh i'm wondering if you are only relaying on the system fonts of your shipping it in the web pages as download so we come again when you need a specific font do you only rely on the system or do you provide them by default so specifically for the chinese japanese and korean because the character set is very huge beyond Shopify.com i believe that most sites that use chinese japanese or korean as a main language will ship system fonts and and to be fair the system font selection recently with like windows 11 mac has always done a very good job you actually have more choices and and it's quite high quality system fonts but it's it's it's fairly rare to see anyone try to use like web fonts or custom fonts for any of the the CJK sets because like if you look at the system font the support for about simplified chinese is about 20 000 characters it's it's a it's a big undertaking so most web fonts don't even don't even hit that count it's at the minimum for a just standard body copy right it's about you need at least 7 000 characters most commonly used for it to render nicely so actually a lot of a lot of the the custom or like web font styles for CJK people use it for headings headings quite safe but the body copy will just fall back to system fonts no this is this is all training room copy i i thought i had a filter up here a patch open meeting use so excuse me run too fast so i already introduced myself right okay most actually most of my experience involved in a patch use a meeting use the communities which means i try to promote the patch projects to some clients in in china so what is open meetings probably some of you already heard it before right it is open source unencumbered too just like zoom like uh team like white bags or tensor meeting anyway but only a patch open meetings is fully open source and the white profiles and also each support mobile so here are some screenshots i took it from the platform because i don't want to waste your time to just get brought into shows all this so what is the role based access control mechanism with ms ad directory in the patch open meetings i do this configuration is better than the following features for the host machine i use a women well workstation 16 pro installed on windows 11 and i use the two machine this is a trivial of my ad direction configuration you can see on the top is forest below that is your domain in your configuration you should change the domain to your domain and you can see on the top of the tree there is an organization unit the cs underscore security which is my organization unit in the server there are some entries on the right side you can see some concepts first one sticks to English name and the second one is domain component and the third one is organization unit and the last one is commonly those concepts we need to know it and because in your configuration fire you need to put out all this connecting string otherwise the integration process will be painful so oh sorry it's another way to hear so this is my topology you can see there is this machine as claimed and i do a net configuration there are several servers first one is 87 and second one is Linux claim which i will use to log in to the ad domain and the third one is a machine i installed openl depth server and the last one is claim the machine which will be logged into the openl depth server use ad depth server credentials and also i installed over meetings you can see there is a net i do some reverse processes then here comes the configuration file actually pretty simple just pay attention to the connection hoster IP address port and for the ad depth admin domain you need to pay attention to the whatever check you are ms ad configuration make everything's all right and here this is your administrator password you are search based just for in the tribute and for the ad depth search query there are two kinds of query probably some guys you already know for the ad the most popular search query is same account some account we use a c-staff stream as the connection as the search query as the search query stream and also you can use use a prism name but for the second one you need to add a domain name as the post fix and for the search code use a suppertree for the ad depth also table for ms ad we can only use search and band there is another band method which is a simple band but i don't know like probably they cannot work just with ad but for ad depth server it's okay it works so you put the use a distinction name for matter here see use a prism name right the c-staff stream and all you organization you need and the dc program something like this then for ad depth open ad depth server and integration with patch of meetings a little bit difference with ms ad so this configuration in my machine I use since 7.9 in the server sub side and the client side config for the configuration file most content that keep the same but for example for the ad depth admin distinction name now you need to change according to the configuration of you are open ad depth server and for the search query from here we do not need use a prism ball or similar content we use uid equal assistant stream for the ad depth search type we can now we can use either simple bind or use a prism name or search band ad depth use a distinction name format just check your ad depth server find the distinction name of your administrator so here comes the log file every time even though when the integration process every time even though we are we we're pretty sure everything in the package files in the environment we did everything correct but actually in the process still got some errors so how to handle it then we need to check the log file fortunately developers they have a certain kind of mechanism so you can just open the log file to find anything around for example there is a hero a hero you can see what's your message right see configuration data couldn't be retrieved so for the screw you try to find what's wrong and for the for last one you can see when you see this message you will see this is a bind successfully which means you are programming already talked to your ad depth service so here comes some code every time when you click the login button your system will call the ad depth login managing class and first class will call the login method then call the message in the user. class.valid.login to check if the user input a valid login name well valid login name if not then just the program will start if it keeps going we'll try call ad depth work to build a constructor which will initialize some values then you use your login password and domain ID as the parameters to login to your as parameters as the do login method so for the user.class the important method is the first one valid check if the method valid login if your login is method which means if you enter empty login name or your login name is not cannot meet the requirement of the system then you'll get a message and for the next one get valid login which means method will help you to get values input in the text box then fill in the field right keep going okay that's for do login do login which means if for you everything is correct then will call the switch statement check if you use search band or simple simple band method in your author method okay actually up to now you can see the configuration is done pretty simple right then how to join need some machine to MSID that too complicated only a few steps first you show your need server oh jump here you show your need server knows how to find the domain control where so you just for in my environment just pretty simple just vietc hosted at the host name then you need to install packages and run it the important thing is you need to install SSSD and the dreamd then use following such commands you'll find if everything is correct which means your user already joined your need to machine client already joining the MSID then how to join need to connect with LDP credentials opens the same logic firstly you need to install packages and start NSL, CD, SSSD such kind of a teaming and you install open LDP clients and do some configurations here then you use just get into the password to make sure you get your credentials from the LDP server then make sure you restart your SSD domain and enable it so generally that's my slides and stay for some time would like to give you a demo so this demo of how to integrate Apache open meetings with Apache which I mean say AD server can you hear it oh okay I just when you're logging use your admin password to log in system and you only need to click the administrator okay and then you click the adept connection you'll see there is a webpage to check if you already got some configuration files here I already did some configuration so I'm going to delete and add them again so everything changed here will be immediately to take effect in the system you do not need to restart your server do not in the restart your database okay so the video didn't work well very sorry and then I mainly do the configuration okay thanks thanks for your patience let's close the video and then we use a terminal to type some simple commands okay actually we need to find the in this demo all right and I'm just I think it's your lost connection because this is a very old native machine so yeah it works all right let's keep going my configuration see I got some configurations files here first two of them which will be used for the ad configuration but I'm going to use the third and the the fourth one which will be used for the integration with a depth server so first of all you need to make sure you are claimed is connected to the depth server I use a depth search command I believe most of you saw this command before right the depth search dash x which is a simple band and dash h followed by the host name is local host in the followed by the search base here I use DC equal local hoster DC equal local domain SMI search base and dash capital D followed by the distinction name of your administrator which is CN equal LDAP admin DC equal local hoster DC equal domain and dash capital W then a depth search oh wrong command LDAP that's one a depth search command then password see return output which means you are your clinician already talked to the depth server now you can do the integration okay I use enemy account to log system here you can see there are drop down one two three four four domains right and I'm going to do all of them at meantime I want to show you how to use machine to log in techniques machine for example this machine is a local hoster right we can see ETC password grab YMO you can see there is no result right or another username no result which means in your system there is no such kind of user but I can use the username to log in system which means I use the credential in LDAP server so SSH YMO at local hoster okay oh I see I need to run the nclcd command and do the logging again then yeah logged in right so as you know I see you are Linux connected to the LDAP server you can log in from any client even from a Windows shell so let's see what's the login okay for the LDAP connection just go to LDAP and leave it slowly okay see there's some configuration files each one are corresponded to the domain id in the dropbox and I'm going to delete all of them then okay I'm going to add the configuration very quickly for example first one I use the simple one simple one and configuration file is oamen oh forgot the name here so ADOMLDAP config okay then save it anything change here will take effected immediately and another one which means I use the searchman in a depth server search one and the enabler for the configuration file I use the second one omldap simple oh oh oh first one is not correct finish now okay time is up sorry about this because you know uh lost connection for a while let me do this one just oh very quickly do it again okay give me two seconds okay so here you see got two domains right I use the second one search and username for example this one I'm saying unfortunate something bad just happened okay so I need the technical file but unfortunately no time today sorry about this so let's finish my talk all right yep thank you very much now if we can get France right down here to set up your computer okay hello everyone well I really go fast because I don't have much time so I'm one of the good VFC guys for quite a long time now working a lot of strings and breaking a lot of things as well so we will see today VFC 4 which is the next release that everyone is waiting for and my first answer for you is when it is released and I don't know I still don't know so we had some objectives a lot of big changes to fix long old bugs so for the audio sampling we introduced a new clock model for the video resource management we changed the model to a pull model instead of push and for having a proper stream output which is mostly transcoding and passing to some other modules we had to rework the way we were dealing with the time and also what everyone is asking is the new UI because the old one doesn't suit everyone so we are on this seems quite a long time six years now lots of commits lots of merge requests there's still a lot of merge requests waiting a lot of changes and we are still expiring milestone we are turning into vaporware soon like some well-known video game while we are progressing what happened is that we are dealing with really old code because the core is hard for us we are not the guy who worked it it was hard to understand and there is a lot of documentation like everyone likes to write documentation it was well-documented I read the fucking code so we knew what kind of trouble we were we would be running to and we went into it but everything is getting better so we did the new clock it works quite well the video side is also done the timestamps do have some issues and the modern UI is on good progress and of course we still have to deal with more regression because the fix triggers a new regression surprisingly we will change the Chromecast because the current Chromecast is still buggy so we had to provide a full HLS server for people knowing what it means instead of streaming the file directly to the Chromecast so the Chromecast has better control of the buffering and doesn't run out of data and also provide support for real subtitles which never really worked without HLS we also removed things from for the next release we were promoting a lot of VR, HMD, 3D, virtual movie, theater and things yeah but it was hype the guy with it what the code is gone so probably we won't maintain this or maybe not for this version and on the audio output we are able to achieve finally as a video player Gapless output for Gapless audio for when you are turning into an audio player uh no more recent glitches something that people were always complaining that VRC is always sampling audio and we are so properly dealing with audio delay which means when you plug your Bluetooth headset video keeps in sync with audio it's not the same for airplay which has quite a huge delay like two seconds so those things are fixed and good and improved we also have some things we couldn't think we could fix like the frame by frame which was quite buggy for us so you can do more than five frames ahead without running into issues and also the guy which fixed this understood the thing so well that he's also introduced a hack to provide a previous frame and in video it's really hard to go back in time and currently we are we have people working on super resolution so upscaling most most of this is done for Nvidia video cards and Intel it works doesn't provide much enhancement but things are getting better also the stream output so that was for the HLS output we introduced hardware encoding on this side because we liked to drain battery for people doing homecast so now it's way better also we improved the subtlety so on Android it was quite laggy we had to improve that and find a better way to upload textures and so it's quite better now for us, for the developer side and contributors we are now able to build with Nissan so Auto Tools is gone soon and also we are probably starting to write Rust modules for improved security so we made some changes to be more rust friendly at the ABI development and to provide a new player we had to provide a new way to show video to people to pretend your collection and so we had to write a media library so that was the concept which was really buggy because it was built into you in the UI in the order it is now we have a dedicated library it discovers all your media on your on your device it gives us metadata it does terminating it stores the playback restoration state your preferences in language it does everything what a modern video player should do provide full search and it's already used by the Android version and the macOS version so it's quite well tested for the developer we we are replacing a lot of things so we are exposing a lot of API I'm not sure how much time I have left okay good and we also discarding bogus event model but anyway that's not interesting for video and we also have some a lot of wrappers so the old CPP JNI which is for Android VLC kit which is for macOS we have a wrapper for VLC sharp which is also used by VLC for Unity which is available in a different license but that's another question and we are also working on providing the VLC on Unreal Engine for video games so everything good on this side but we also achieve something really interesting for people and professionals a world which is low latency something that VLC never really achieved so we have to deal with some of buffering framing delay decoder so always one second or two seconds late and we have a new option which is low delay so we treat a lot of things we are able to target some decoder which can do low latency because you need some kind of specific profile and we are around 50 million seconds on the local network which is really nice which means also that less than three frames at 60 fps and that's good so that's a screenshot of glass to glass and you can see that the counter of number of frames locally is around two and a half so this is really hard to see that very latency but that's a specific mode and the new UI so that's what you're waiting for everything is rewritten using Qt Quick which is mostly JavaScript CSS so a lot of changes a lot of trouble we are able not to provide light and dark themes which was really nearly almost impossible in Qt 4 without a lot of acts that's why we were not progressing on this we are running through a lot of Qt issue we still are running through especially with Wayland on Linux and also we need to provide a legacy interface because not everyone will be happy to have a new interface and some people still like the old interface and we have to drop it so we need to provide a way to provide that interface to people so how does it look well you have your library and you have all the features when you can board into the categories and the discovery is all the category you had before and everything is integrated yeah and I need to do a demo so this is dark but that's not the right screen so how do I switch okay so probably I need to change the streaming up to something to another yeah because it's not mirroring my my screen so no no it's already mirroring okay good this is duplicating yeah okay well good so this is the dark theme which is switching automatically depending on the system so you have this library which is creating thumbnails and everything so you have your progress bar like on the video streaming websites you have the quality and everything you can resume your video okay so you have your subtleto selection you have the drop down she's disappearing yeah okay so everything that you should expect from a recent player and also you have a picture-in-picture so you can still browse and find other content and you have a modern music player like some others and for example where do I go to the tracks so you still have your playlist that's not what I want to do okay and I'm also discovering some recent changes so you should have the tracks the list of tracks when discovering your albums yeah okay so that is yeah sorry for this yeah okay well anyway it doesn't matter so I can go back to my slides sorry for that okay so we can try it's available on 90 builds of course it's still unstable but it works it works quite well right now so if you have feedback we can take it and know what's going next so we will probably provide a way to have more standardized odd keys that's something what people want also provide some upscaling shaders for we are already working on super resolution but very specific shaders for example anime which are quite popular we need to fix the HDR on Linux platforms we are still waiting for proper API probably move the subtletals in the black bar below the video for some platforms that's another request for some reason we want also to provide some transparency support mostly this is for the video games engines that I mentioned before and we are also sandboxing for security so that's something we worked for a long time now it starts working it's available on Linux windows it's based on Linux on a Rust library which is written in Rust and also we have a project which is quite successful is that we are rebuilding the whole VLC into Rasm the reason is that you no longer have web plugins in your browser and depending on your browser you have a lot of limitations which means if you want to play back some video you need usually to be in mp4 and you are limited to some codecs and you cannot do what the old player was doing and you cannot do this also using a plugin so rebuilding everything in Rasm and using the web codecs acceleration provides you hardware acceleration in most of the cases but it removes all the browser limitation you would have so you have everything that VLC provides all the formats all the subtleties you can watch DVD ISO in your browser you have support for every comma you want of course with convention all the depth and if you want if you want to do vp9 4k in software you have that level of performance so everything works there's a link if you want to try but if you step to set up your browser we move some limitations but it was quite well in Chrome and especially on Windows okay I think I'm done and I'm on time well thank you for listening if you have a question technical or we can talk after because we are a bit late on this kiddo thank you thank you very much and please test provide feedback thank you very much Francois we're gonna get Lotto where can I buy the head they don't sell it well you need to attend an event where we have a booth usually we have a giveaway but that's really popular yeah usually we need a wheel yeah because otherwise we need a truck to fulfill the demand any other question can all the state of vlc.js can all the state of vlc.js project currently the state okay so you can play back video in 4k without any issue as I said it works on Chrome it works better on Windows platforms if you use a different platform there is some memory leaks so it doesn't run too long but it's way better than a few years ago when you didn't have any API to access the audio which is quite annoying for a video player but it gets better every day but mostly we're still waiting for a few features from the web assembly stack and also you still have some limitations that might not be lived you cannot access a real device a real DVD player from the browser but most people don't still own one so it's quite okay thank you all right so I'll be very fast introducing Lota he has like a very long introduction full of this office stuff so he's been involved in the start office open office from the sandwich micro system days he's now co-chair of the certification committee of the library office and he's going to talk about migration to library office technology new technical scope and human issues in professional departments thank you so much for the introduction so the bad news is this is not Tristan he is 20 minutes away so we have me in between with this interesting talk for library office technology so thanks for the introduction perhaps a few words to me as a person I'm doing this talk in with two hats on my head first one is I'm doing since more than 20 years my own company in consulting for those migration projects and the second hat is as the writer said nowadays the co-chair of the certification committee from the document foundation who are doing certificates for such service consultants who are doing in practice in real life such migration projects so this is some professional deployments we are supporting in Germany it's not so known in Asia perhaps you have an idea of this one this is Bosch one this is one of the hugest deployment we ever have supported worldwide for Bosch who is doing also open-store stuff on the desktop mainly with their own IT department but suddenly they need specific certified consultants for doing special project items which I want to introduce you a little bit just six highlighted items because of the shortness of the of the time we have in this slot but first of all what is Libre Office I think give me a hand who know what Libre Office per se is yeah I see the most of you know it so let me introduce what's above you all know Libre Office with its roots in open office it's a client installation desktop deployment but it also runs as core technology for the other devices you see there so for an online version of Libre Office it's not the Libre Office online version but there are other ecosystem partners who are doing with the core technology of Libre Office they are own branded online version but under the hood it's pure Libre Office and brought in these different devices by their own ecosystem partner solution so this is why I said nowadays we are not just talking about Libre Office on desktop more and more about online browser and mobile devices but let me introduce the first item or the first issue in such migration projects this is this one we all hiding through browser based solutions cloud collaborations and so on certainly this is very very important I will do another item with this but let me say desktop clients is still and will still be needed in the future unfortunately and sad to say for example in Germany there are so much areas where you are not online and especially in areas where you have workers who have to do their homework for example you need such a desktop client installation for doing office productivity work with it so this is very very important because the work doubled the work doubled in the sense that we have to care about not only about an online solution for productivity suites but also for deployment work and so on the client on the desktop the old devices nevertheless in the last 10 years our big how do you say our big player in the market let's say the word Microsoft Office is doing his UI especially for desktop ahead and introduced different things a new tapped UI you will see an answer of LibreOffice to that but also some developments in assistant functions very interesting which are AI based artificial intelligence based which is very much used from our customers which are trying to migrate to another suite and they ask the question hey what's your answer to this to be honest the answer is nowadays not so big we do not have the same AI based assistance in place but these days I learned from Frank that in cooperation with NextCloud we are doing we are going this road down we are doing plugins and add-ins to have same functionality not just AI based assistance but also connectivity to these AI tools we use as chat GPT or something like this so there's a lot of work to do still here next one is which is really not one which is 20 years ago was a big issue a big item which is nowadays a big item this is the issue with the document format you all know that LibreOffice and LibreOffice Core Technology its native document format is open document format nowadays not in version 1.2 but in version 1.3 LibreOffice is the reference implementation of this open free and open document format but in real life we have the situation that a lot of customers want to change to a digital sovereign Office productivity suite but not to change the document format the good news is LibreOffice can do Microsoft Office document format so you can use all your old stuff which is on your server on your file server with LibreOffice but you have to analyze and define a strategy which defines the use document format in the future keep in mind that all these working in LibreOffice with not native document format could follow up with some layout issues or other issues or just see the macro item which is not working in both worlds if you do this in a round trip again and again with import and export filters in it it makes the problem with each cycle a lot of yeah the next one is a new one a very new one it's something like a hype in Europe it says bring me digital sovereignty so everybody understands oh if I go down the road with Microsoft in the Microsoft cloud it's not the digital sovereign solution for me and they realize that that they also could risk their business with such a solution yes they could risk their business with just using an Office productivity suite in a not sovereign cloud so here is a solution with a LibreOffice technology which can in combination with a file sharing a solution could do this in a digital sovereign way but the issue here is that certainly you are permanently compared with a running solution at the customer and it takes a little bit of time to migrate such installations which is used at every workplace in such a customer and the patient for that for such a migration project is very low so it should be like a big bang and big bang is not always the best solution to it yeah as I promised certainly a new development new issue is the online cooperation also on smart devices this brings the next issue in front it is something in combination with the UI we use as I mentioned Microsoft Office brought in this ribbon UI and we in LibreOffice did quite a similar UI alternative but as an alternative you can really choose by your own if you want to have the old one or the new one can change just there and change just that but this makes also more training stuff for example so if you have both UIs in your company you want to have supported both you have to train on different UIs and if you have in mind that this is also on smart devices then there's a third variant of UI where you have to search for functionality and so on so this doubles or thirds the support efforts and the training efforts for that yeah and last but not least that's what was written also in the headline of the talk it's the human factor or in other words it's the resistance of change this is a picture of the Kuiper horse change curve perhaps some of you know them these are the different phases of resistance of change shock and denial I could tell you stories about users who come to me and say hey you are taking away my Microsoft Office suite I will fight you till the end really really emotional process and you have to cover different phases of users first of all you have to take care of these emotions this is absolutely a success factor to take care about this you see something like anger and frustration and fear you don't take it for serious then you will lose the users and they really get success with the fight against you so there are different stages and different activities you can face these phases and what we have done in TDF is that we have written down a migration protocol which we are certifying for consultants for these different stages first of all do not a migration without any analysis and impact test for which integration are needed in customer side with other ERP systems or something like this which solutions you need for these integrations out of Microsoft Office for Libre Office then do the training and parallel to all the stages do in project management and permanently contact to the boss of the customer that it's one of the most success factor to have the support of the boss in this customer side and so on you can all read this on the migration protocol of the document foundation which I will show with a link if you are interested to read it so to guarantee such a quality of migration documentation have decided seven to ten years ago to do a certification but not such a normal certification perhaps you know from others especially also from Microsoft Office we are doing this in a very, very special way we are doing this in one-to-one phase manner so every certified professional in the categories migrators and trainers have done such a refuse session with a certified people from the document foundation the professional developer side is to secure the development of LibreOffice to have just contributions with a high quality and within people of trust bringing in new code into LibreOffice called technology so if you are interested in have experience and interested in such process you have to have to do some prerequisites you have to show some experience out of documents out of other pieces which you have worked on for such migrations and it will be seen by some few people out of a committee and if they say hey this is in a professional manner this is in accordance more or less in accordance with the migration protocol for example then we go into a discussion with you you try to to get in connection with the community and to have a permanent conversation about these migration projects and then you get the stamp from the document foundation you are a trusted migration consultant or a trusted LibreOffice trainer in different levels or different modules yeah here are some links and application forms if you are interested in perhaps you ask okay I'm not that expert now in nowadays I have few some flyers if you are interested then become a developer or migration consultant or just involved in the community we have some informations for you I will lay it here so you can take some flyers for that there's also a link where all informations are written down where you could get involved into the community and into such ecosystem partners which are doing these migrations and trainings and so on that's it hope I've done some minutes good so thank you very much if we can get Tristan to start setting up and maybe in the meantime we can have one or two questions anyone I have a question so you mentioned about doubling the effort when you go online and you have to maintain the desktop side right are you guys able to share like code or or like these efforts like are you guys able to share some part of the code that can be used online and reuse on the desktop side even the ecosystem partner projects are open-source projects so you can get involved there and what I meant with doubling the efforts is that you have to keep in mind in supporting in customer side two different devices of the same product so it as I said desktop is still there you need the old part of the support and perhaps you need new training stuff and so on this was the main point with this doubling of efforts the source code is for the core per se LibreOffice core per se technology is open-source and for example a Colobora office you can have a look in JIT Hub for the source code delivering LibreOffice core technology into the browser all right thank you very much thank you all right still running a bit late next up we have Tristan who has been involved with Genome for a very very very long time since its early days he's been maintainer of the Gled User Interface Designer tool in 2004 he became co-maintainer of the Evolution Data Server and GTK Plus over the years eventually serving one term as director of the Genome Board in 2019 he's going to talk about application development with state charts we ready is it just like almost there presents a slideshow all right we're good foundation because without LibreOffice we would not have these slides while we get set up so last last time I came to Passage I talked about something quite deep about about system integration engineering and I had a lot of people who were various mostly students maybe one person in the audience knew what the hell I was talking about so this time I'm going to start with the topic which should be from the beginning that anybody who knows what is code should be able to follow what I'm talking about and hopefully it will be interesting for everybody here so we're going to talk about application development with using state charts and we're going to talk about what that is right we're going to talk about what are state charts why should why is it interesting to do software development using state charts and we're going to present an interesting new tool and now I have something here which I have no idea how to change the slides how do I use this okay so let's take a walk down memory lane about state machines I think that an interesting place to start is with the allen Turing the Turing machine or the A machine while finite state automata was a concept in mathematics since before then I am not a mathematician so I can't speak very well for that but for people who are brand new to this theory essentially you have a machine and you have an alphabet so here we can see this alphabet in the example contains only one and zero so it's a two-letter alphabet right here we have a two-letter alphabet and here we have a state machine so the Turing machine or the A machine essentially we'll have an infinite tape input it will read one symbol from the alphabet and that will cause the state machine to change state and as a result it will stamp a new symbol on the position on the tape and an interesting property of the Turing machine itself is that as a result the depending on the current state that the state machine will be in it can also move the tape back and forward a certain number of slots right so that is essentially more or less what happens with the Turing machine later on we have the Moore machine so this is basically just a representation of a state machine and in the Moore machine you can still consider this as in those days we were basically doing calculations on tapes so we had a lot of tape and we're thinking about inputs here we have ones and zeros as inputs and we have states and the property of the Moore machine is that the output is determined by the current machine state and then the Mealy machine which was around the same time by George Mealy basically we can represent the same state machine however the difference is that the output is determined by the transition from one state to another right so that's basically they're basically the same thing you have states a finite number of states which which can exist in your state machine you have transitions and you have inputs and you have outputs just that the Mealy machine the outputs are determined by the transition right enter our favorite hero David Harrell and that was when we started when we started having this thing called state charts and these first two lines on the slide are two papers the original the first one a visual formalism for complex systems is essentially the definition by David Harrell of what are state charts and the second one is a recommended reading tells you about why and how state charts were created so an interesting thing is that Harrell was essentially hired to work in avionics company in Israel and he was working on a fighter jet and he was trying to figure out what are the requirements for a very complex systems so you had basically he was working with a 2000 page document of a line by line description of what should happen in which circumstance so he would come and he would ask so what happens when you press this button and then they would have to call somebody and somebody new and then by the time okay so what happens when you press this button and the targeting system is air to air or air to ground and then something different happens and there's all these different conditions under which this button actually does something different and in the end sometimes there was some low level programmer who had to make the decision because nobody knew and it wasn't in the requirements right so from his perspective he ended up creating this chart system because it was an easier way to communicate between these experts in order to define how a system actually works right and a side effect of this is that we ended up with a visual formalism that could actually be compiled and execute code so let's move on and see what's on the slide right so I'm going to try to quickly go over what are the properties of Harrell state machines essentially now we're instead of talking about inputs and outputs we're talking about events and actions right so we have a reactive system a button is pressed and perhaps the wing flap has to move right and that is a that is a reaction that is an action that takes place because of an event depending on the current system state which is basically how we created this how they started to think about designing this right yeah so essentially what's to take home here is that when an event occurs it's merely and more combined because the action can occur because of a transition and the action can occur as well because you've entered a state right so that's essentially it and the action can also occur when you leave the state in the first in the first model up above we can see that we have state one state two state three state one and state two both transition to state three in the case of the B event but then we for Harrell started adding this hierarchy kind of concept and said we can simplify a very complex system and how to describe it by placing two states in a hierarchy and say well if the B event occurs then we transition to state three and in the other example we can say well perhaps we don't care whether we're entering state one or state two from the perspective of state three so we have a concept of abstraction and we can say when we enter this state well there's a default state which is s one and that state by itself can determine what happens when you enter that state right so we can we can reduce the amount of arrows in a in a huge complex system and similarly here we he has introduced orthogonality right so in this case basically you have a light control color of the light whether the light is flashing whether it's constant and of course you would need to have nine different states if you didn't have orthogonality to represent the same number of machine states and he added history so I'm just going to try to quickly go over all of the different features right histories this this example basically says okay for example you have one of those old watches and you can like press one button to cycle through the different controls that you have and you have the other button to actually choose something so for example you press a button and you get into the alarm time control state and then you press the B button and it will change the what is your alarm time and when you leave the the time control state because it is a history state it will remember where you were the next time in right so that's history states and we have different kinds of transitions so we can add conditions because now we're integrating with code so any kind of transition can have a function that says no if I return false then don't take this transition right and then we have implicit so the first one is of course event transitions which is what we've all been talking about so far and we have some automated kinds of events like time out states say well the system stays for 1000 for one second in this state and then continues right or of course what's interesting in event based program is idle states because then when the system or when the event loop becomes idle then we can have an idle transition right and of course we have transients transient transitions right so that's also a bit different from previous state machines so even without any events occurring these transitions will be followed what is interesting also or what is interesting to consider is when you have orthogonality and you have transient transitions the state machine should synchronize should synchronize the transient transitions to ensure that in each active orthogonal state only one transit like one transition has been followed and then in the next step we can evaluate the next transitions and continue on right so after the Harold state machines of course UML became popular now I haven't I've heard before that UML was coming from this but then when I did my research I couldn't find a link I know that Harold state Harold had added the state charge semantic to UML I found relevance of that but essentially the big difference between unified modeling languages and state machines or state charts is that while Harold had conceived of this in order to analyze requirements he had come up with something that was fully specified but UML in general is not used in such a way that is fully specified it's more used just to communicate requirements in design phase and waterfall development models and so we analyze the requirements using UML and we pass it down the chain and people write code right so that is generally UML I'm sure that I'm missing some things so why should I use state machines because you know I like my indentation and I like my tabs instead of spaces and I really love Emacs not VI unlike you right so why use state machines right so state machines give you a different way of thinking about code and I've really enjoyed using state machines but there are some actual good reasons so I'm going to come back to this example a couple of times during the talk this is just a basic example of how to code a clicked event when you're writing a button widget in any kind of user user interface toolkit you basically have to handle four callbacks so there is when the mouse comes into your button area and then there's the event of whether the mouse click has gone down or the mouse click has come up right now in this case we can see that you need to actually record these two states right and when the button is released that's when you're going to do your branching statement and you're going to decide to emit clicked right of course the more states that your code is keeping track of and the more events that you have to handle all of this state needs to be considered in almost every callback and you have a combinatorial explosion of very complex branching statements and right so that that is that is unfun of course in object oriented programming we've kind of tried to address that problem with abstract classes and specialization and then things like this but state charts are fun right so if you were to do it with the state chart this would be your your state chart and in this case you really only have one state so this is a single hierarchical state machine or state chart now there's one two three four five but there's a bunch of pre-programmed you know possible states there's actually three possible states but you only have one state pointer and the machine is either in that state or it is not so in fact it can be less memory intensive if done that way so essentially there's static data which defines the model and then there's only one pointer which says this is the state right so in this case you just need to feed the events into the state machine and you have one call back that says okay when I go from down to up and I'm inside the button it's clicked right so this does one interesting thing that I found well I find that it's much more safe and deterministic to code this way because as your program evolves and state gets added you have this guarantee that such and such event cannot happen and cannot be handled in this state which gives you it reduces the amount of branching statements and cause for error which can happen arguments to be had later on if you wish so why don't we see this how come we don't see we see so much code but we don't see these state machines so much I have some answers for that of course the object-oriented push in the late 90s everybody loved C++ but let's skip over that basically there's two brands of adaptations of state charts that I've seen and one of them is essentially the the famous rational rhapsody which essentially it does everything right so I think that the I think it was even doing controlling threading for orthogonal states and it has like renders to multiple programming languages and it does code generation for absolutely everything if I'm not mistaken it also does revision control and all of this which of course by the year 2000 we were growing out of CVS and we're saying well I want to use Git right or I want to use you know Bitkeeper and then Git and then how come I'm stuck with this big monstrous thing that like okay it's it's actually really great and really magic but you have to have all of it or nothing right and then the other the other approach is we have libraries which cause you to to write add state add state add state at program initialization time so you have many calls in C or C++ like in the cute implementation used in automotive so what I found is that the complaints in the automotive industry using the cute implementation was that you have some people writing the state charts in the QT designer tools and then using UML and then you have other people writing code adding states and then you have people three years down the line who've added variables in the same module dancing around the state transitions and it ends up being quite a spaghetti mess because you've not enforced that you've not enforced that the callbacks are actually triggered by the state machine and you've added state and it's all competed in competing in the same code right which is also not fun how I wish I had water okay so let's switch the topic oh I have water it's not mine thank you so much hopefully you're not falling asleep okay so let's talk about another state machine implementation so this is the state chart designer theater this is a picture of this very very simple UI which I just baked up recently of theater editing itself we'll get back to that if we have time so right so this is a spin-off of a larger project which I started with Munir Kenfir in 2009 he had the brilliant idea of marrying a finite state machine editor an engine with a user user interface designer tool and to bring it all into one which we started together and then it took like four years of my coding to make it actually do something and in the end I made the same huge monstrosity of code generation which I couldn't really cause anybody to use especially since I didn't have that IBM Salesforce which Rhapsody had which could say use use this huge thing so so that kind of didn't work out for me so I revived it quite recently and essentially I'm looking at it from a perspective of like like Next Step or Glade or QTE interface designer we should have code and state charts separate in the same way that we have code and user interface design XML files and such separately so essentially the way we would use theater is that you will design a state chart design the brain of your project or your object and save it as a JSON file right right now the code generators are coming but the code generator will not generate everything it will just generate a dot a definition of your state machine and with references to callbacks that you can provide and this comes down to different implementation layers that need to be different for different environments right but in this case I just created the layer that I needed to bring up the to bootstrap the designer tool right if we were to have some Python for example if I had a Python layer the code for that button example would essentially look something like this possibly possibly we could even get rid of the enter notify leave notify forwarding events depending on how much introspection the the loading engine can have with with the Python like toolkit environment for example if well if it had derived from a widget class and then the event name were matched you could with Python you can basically crawl the whole data structure of your of your object class and you can you can bind it quite like this but essentially you just have to load the cursor define your callback forward the events and say clicked and then the state machine would do everything for you right is out there okay it's the end oh well then I'll skip over this I was looking for the somebody writing the how many minutes I had left and you are all the way over there oh my okay so you can get the code and look at it and criticize it and if you have a Linux laptop you can install the tool right now if you have flatback and enjoy all right thank you very much Tristan if we can have our next speaker be memory to get set up if anyone has a question yeah we have we have a question here hi Tristan I just wanted to how does it compare with declarative or reactive UI declarative or reactive UI this is an interesting question so I mean I think that it it works together with declarative and active reactive UI I mean the original tool that we wrote we wanted to combine them together so you would declare your UI and you would declare callbacks though the one missing bridge here is that you don't get to for example when you create a composite dialogue or a composite user interface component right you would want to say that well when this button is clicked this introduces this event and then that is directly introduced into the state machine the G object layer creates a signal connect so you can do that literally in code but the problem that I'm encountering is that if you want to mix those two together the code generation is too big unless for example you were to integrate it directly into GTK or QT at the Q at the toolkit level because these toolkits generally load the interface descriptions themselves and they could also load a state machine definition but without being in that situation it's impossible to to integrate together thank you very much Tristan all right so our next speaker is speed memory chief engineer VPN technologies at express VPN and he's going to talk about this very cool stuff that they're doing that is called lightweight so without further taking more time I'll let you start cool hey everyone so yep I'm Pete Membrune from express VPN and I'm really really excited to get to talk to you guys about lightweight that we've had a lot of discussions over the last few days a lot of people through the booth has been really really really nice but wanted to give a chance to explain why we did this and the reasons behind it and so obvious question why do we make lightweight right there are some very well known protocols out there okay we have the open VPN and of course we have the new and shiny wire guard so why did we go and create a new VPN protocol why didn't we just join and work with other open source projects what was the reasoning for this well open VPN has a lot of pros to it right it's been around for very very long time it's been audited it's well known people would recognize the name they'd understand it and for the longest time it was our preferred protocol nothing wrong with that the challenge though is open VPN was really created in a different era it was designed for the days when your PC would be a box on a desk you'd have a cable going to it and that was pretty much complicated as your networking environment got and relatively speaking speeds were much slower then right the demands on a VPN were significantly less it expects to run as a binary that might seem like an odd thing to point out but if you wanted to get this into say an iOS app or you wanted to get it into an Android app there was some surgery involved and it wasn't really designed with that in mind understandably and there's relatively limited ways to interact with it if you want to control it as a binary if you want to start stop and get status information from it that's more difficult to do it does have some support for this but you don't get full access a lot of the time you would need to for example look at logs and stuff like that but of course WireGuard why not WireGuard well again lots of pros for WireGuard it's you know it's a super simple implementation it's super fast it's very easy to set up I think to say that it has a lot of momentum behind it would be would be selling it short it has a lot of momentum there are some cons to it though and I should preface this by saying when I talk about cons here I mean them from the perspective of ExpressVPN and what we're building and what we need out of a VPN so with WireGuard all your keys must be pre-shared among all your endpoints that's fine if you have a small number of people that you're trying to hook this up to when you have many thousands of servers and you have millions of clients connecting to it pre-sharing keys is undesirable now of course you can build infrastructure to do this but now you have to build and maintain the infrastructure and do all the work involved in looking after that and well that takes you away from actually focusing on the VPN part which is the part where you're going to be actually hopefully adding value the keys are also bound to IP addresses that's kind of how you authorize keys to connect through and use the API of WireGuard and we're very privacy focused we don't want to have this particular key is tied to this particular IP address of course the simplest way that you could pre-share all your keys would mean the same IP the same key shared everywhere and that's undesirable for us because again you know it links those things too closely together could you make a system that does it differently so it's different per connection sure absolutely but now you need to build and maintain that as well they have the WireGuard project has no interest in TCP support and they list this on the limitations page and they have a very good reason for it generally speaking VPNs like TCP over TCP sucks it's not a great day out nobody likes it makes perfect sense they don't support it but for us we have a very very large amount of users that are in using networks that don't have UDP think public government Wi-Fi think internet on a plane coffee shops businesses running deep packet inspection that sort of thing in these environments if you don't have UDP it doesn't matter how great UDP is you cannot use it if you want to support those users you must then provide a fallback which possibly ironically is usually open VPN they also have no interest in DPI avoidance their feeling is that well that should be done at a different layer from the VPN they want to focus on the core VPN parts again that makes perfect sense but for us we have a lot of users in those sorts of environments where they're dealing with corporate firewalls they're dealing with various different networking restrictions and so for us we really need to have things like obfuscation that's directly and easy to integrate into our protocol something that sorry, Wargo wasn't interested in so these are all things that even if we put work and time and effort into them we tried to upstream them we wouldn't really have a receptive audience because we're just not building this the way that they're looking for so how do we make Lightway? Lightway was built with a mobile first sign so one of we probably heard this a lot with things like web design but when we were putting this together designing for mobile or embedded systems first was really key for us we have a lot of people who are using low-powered Android devices or otherwise like embedded routers and things like that and mobile devices have a very different set of problems they generally have limited power they generally have limited CPU and they have very interesting network configurations one minute you're on Wi-Fi then you're on to 5G now you're back to 4G back to 5G again if you can handle these things nicely on mobile when you then go to run this on say desktop it's just going to work nicely for you trying to go the other way can be very complicated so I called Dieter Ames I'm not sure if you guys ever heard of him he was a big inspiration for Jonathan Ive at Apple I don't like reading off slides but bear with me I'm going to do it here so everything interacts and is dependent on other things we must think more thoroughly about what we are doing how you're doing it and why we're doing it and that really was the main driving force for our work on doing mobile first how we balance all these different things together so that we get something that's very valuable and useful for people at the other end and so that's really where we're going with the mobile design aspect trying to keep all of these things in mind we'll touch on some more of these as we kind of go through but that's the general gist and direction that we were taking so well then what really is lightweight we've got this far we haven't really talked about it much but this is actually a picture taken from near my hometown Plymouth it's on Darkmore it's to represent the the blue sky green fields the approach that we were able to take this is probably one of the only three days you might have got a blue sky anywhere near my hometown anyone who's very been on Darkmore knows it's usually drain miserable so it took quite a while to find this but basically we had this rare opportunity and it was well if we had a big enough magic one what would we do right we have a lot of experience building and running these things if none of the existing things are a good fit for us what can we what would we create instead what if we just pick something what would it be so one of the questions I get is well why not wire guard why don't you like wire guard I love wire guard it's great I use it myself and to say that lightweight was inspired by wire guard is a very true statement I think everyone will agree that when wire guard first came out like it blew people's minds no one really knew that VPNs could look like this and it changed how people started viewing VPNs as a technology and so we really wanted that sort of stuff there's lots about wire guard that we really really wanted however it's also grounded very much by open VPN we have over a decade of running a platform with open VPN we like how that the binary runs we like how the you know the connections work how authentication works how network assignments work there's a lot of stuff that we'd learned running this that we were really happy and really wanted to keep one of the key things lightweight is secured by Wolf SSL I won't go into too much of detail on the reasons why we picked it but we did go through a whole host of different libraries before picking Wolf but the key reason I mentioned it here is we did not roll our own crypto so Wolf provides all the cryptography and the connection security for for lightweight none of that is implemented by us and Wolf themselves have actually verified and confirmed that the implementation that we've used and how we've used our library is correct and engineered by ExpressVPN this I'm putting in there because we designed it to do very much what we wanted it to do is very opinionated right like like a lot of software this was designed to solve our pain points and chances are it will solve a lot of other people's pain points as well but you know this deliberately fixes problems that we cared about and we designed it with that in mind so what we really is a mobile first open source VPN protocol it's open source under the GPLv2 it emphasizes simplicity security privacy and performance that's really what we were trying to do with it so what does it offer well it's fast realize that's a very if you've been to give without numbers everything is relative but even in our basic builds that we're clocking well over line speed for gigabit connections it's power efficient lightweight doesn't really do much of anything if you're not passing traffic through it lightweight is basically inert and on purpose right so things like sending heartbeats by default lightweight doesn't do that because that would wake up your your phone that will draw battery draw CPU again turns on the radio more power more CPU we try to do as little as we possibly can there and we're also using wolf's hardware acceleration so again we're using less instructions and getting better power efficiency that way it has first-class support for TCP again for lots of people this is an irrelevant feature for us it was absolutely critical and so lightweight supports TCP just as well as it does UDP it was designed to support easy extension this is so that you can easily add things around the tunnel and also things for through the tunnel and this is because doing that with open VPN is quite difficult you're not supposed to do that but it's something that I need to do in my role so I wanted to make sure that it was simple to extend has a very simple code base the first version we released publicly under the GPL was just under 2,000 lines of code so it's quite a simple code base people say oh the wire code base is so simple you could order it yourself in a few days while lightweight so simple you could probably audit it on a live YouTube stream like it's really that simple and most of it is getting and setting in terms of them the code itself a big focus on privacy and the ideals there so the ability to mask IP addresses from the client itself this means that if you did have someone looking over someone's shoulder or looking at log files and things like that you wouldn't really have to be concerned about trying to obfuscate it because the IP address doesn't actually have any real identification value everyone else on that system would have the same one so where's lightweight today it's been around three years carrying real world traffic over four it protects around four million people around the world so far this year it's handled over 11 billion individual connections we've transferred on average you know just over like an exabyte of traffic so far also it's in independently ordered by cure 53 so once when we open sourced it and went live and again quite recently so again we're keeping up the public quality of the protocol and this is a very quick comparison to open vpn and again this is because this is what we were running and these values are relative but if you've ever tried doing speed tests or performance testing you know as well as I do that just spewing out numbers is not particularly helpful but compared to users who had been you know using open vpn you know people are experiencing like twice as fast connection times reliability was improved by 40 percent so connections were longer lived and we're basically seeing double speeds on average across or users so for lightweight tomorrow well what currently is written in and cc we are making a big push to move this to rust somebody's happy and this is for all the reasons that you can probably imagine three years ago when I you know put this down we were looking to support again those really embedded niche devices and the rust compiler wasn't there yet it just wasn't going to do the job that's no longer the case and I think mostly probably we know that rust has moved on massively in three years we are very excited about taking advantage of things like the memory safety the borrow checker performance the much simpler code and modern tool chain and things like hash maps being available out of the boxes you know quite a nice thing too we're also moving quickly to implement the post quantum protection this is something that's being you know talked about a lot quite recently it was a big topic of the real world crypto conference a couple of weeks ago and to do with right now we're seeing this save now decrypt later that even large companies now are doing with the idea being that in about 10-15 years quantum computing will be at the stage where they can basically unzip the encrypted data that they're storing today and go into more deals later in the Q&A if anyone's interested but the short version is the post quantum protection that we're looking to roll out will help protect against that particular threat also we're improving open source reference clients we have one right now it's not great it did the job but it's not something that people would generally be able to run as their own server their own client we're revamping and improving that so that you can use it ultimately as a drop-in replacement for open VPN we're hoping to get it packaged into distributions and things like that and lastly your community outreach and engagement part of the reason why I'm here today and why we've been here the last few days just to try and engage more with the community figure out new things that we can do with this and new ideas and how we can make it more useful to more people if you're interested in some of the stuff that we're coming spring up next do have a Google form that you can fill in it's just an email address so we can contact you and just let you know hey here's where we're going we're still trying to figure out the best way of doing that so rather than trying to figure that out in a rush and get it horribly horribly wrong we have something simple to kind of get us started again the usuals our social channels if you are interested you'll please feel free to check us out anywhere there and thanks for listening all right thank you very much hopeful if you want to start getting set up yeah we're going to do questions but you can start getting set up in the meantime so questions run the the tcp the tcp problem are you you mentioned uniform IP address is visible from the client are you doing termination in the client so you can avoid the the what we can fall back to avoid the what sorry tcp when you have a drop backup based on the stuff that we've been doing we very rarely see you know tcp meltdown scenarios these days it's most common when you're on either a very poor network or you're like on the edge of Wi-Fi and you get a significant number of drops normally this cleans itself up quite nicely and compared to trying to have a work around as opposed to just leaving it be and not using tcp at all like so far we very rarely see this in the field some of the stuff that we are doing to improve this is just having timeouts based in lightway itself so that it knows when it's trying to send traffic if it isn't getting a response or you're not able to read from that socket after a period of time it can affect you like a like a dead man switch and just reset that connection usually due to how the those what triggers those events it's usually when it's in your pocket to not being interacted with so usually when those things would happen anyway you wouldn't be like aware it wouldn't be happening just as you were typing something for example there's definitely things we can do to improve it but so far it's not posed much for a problem I wanted to ask do we need to use ExpressVPN itself to use to utilize lightway do we need to use ExpressVPN itself to use utilize lightway can for example open VPN wire guard offer their own servers up in hours our servers so how can we use the lightway so lightway as in the core protocol it's on github it's fully open source you can use it for anything that is the core library so that's been designed specifically to remove any mention like TCP UDP and stuff like that so you can hook it up in any way you can imagine to whatever you want the most fun when we've talked about so far is doing lightway over Google Sheets so you don't actually have to use TCP UDP you can stick it over a spreadsheet if you want your performance would not be great and you wouldn't be streaming anything but you could build that connectivity to answer your question more directly we do have a very basic reference client as I alluded to earlier and that's being improved now so over the next few months to the end of the year we're looking to release better reference clients that are improved that you could use as your own server so you do not need to be an ExpressVPN customer to use lightway you can go and take the library now and build stuff with it but soon there will be better suited clients you can actually use it as like an open VPN replacement so is there any tentative date or any specific line that you're working within the open source domain which which has like a promising deadline or a date around which we can expect something that we can use on our own servers so can you say that first bit again is there any open source client which is like closely working with you so that I can like expect a date around which we can try try deploying this on our own servers to test it out we do have a lot of people at Express who are very engaged with the open source community I think we have a couple who are Debbie maintainers we have a couple do a lot of work at open WRT as part of the new like validation and testing for the new work we're doing with Rust that's what's going to cause these new clients to be created and released but then we released as part of the the Rust rework effectively at that point we are we're looking to work with any open source distribution that wants to help and work with us and we'll be openly trying to help like for example ensure that we're able to package it in the right way so we're looking to work with distributions to try and get it out there so at least initially you'd just be able to download it either from the crate or to our site but we are actively looking to work with people to get it integrated into into distributions that others can use it thanks all right thanks for your presentation Pete do you could you speak more to the post quantum protection part of you talking about maybe do you have a would be a framework an idea in mind that that you're working on that you're exploring to maybe speak a little bit more to that sure so one of the really nice benefits of using more fastest hours our library is Wolf as I was already integrated post quantum support as part of like the Libo QS project so for us actually enabling post quantum security is effectively you're tweaking the configuration of Wolf and then rebuilding so we don't actually have to do anything particularly special for that we don't have to implement new protocols or or new layers we're just going to take what's already there that someone else has already designed, tested and certified and we're going to use that we tried to have any if anything crypto related that's kind of how we approach it like we tried to do it hands off do you do you want to write the actual issue or your your call with the issue and just want to know the the framework okay so we're just going to using yeah so if you go to our GitHub page we we create a a system level wrapper for Wolf SSL already so Wolf SSL-SYS it's a rust create for Wolf SSL we have already integrated the post-quantum feature into that so anyone can pull that create set that feature and they'll have access to Wolf SSL in rust with the post-quantum stuff enabled we're currently working on adding the high level wrapper around it so that you can more easily use it with things like Tokyo but the core stuff is already there and it's already open for people to look at and see it working cool two questions one is how do you handle the expiry of the SSL-SERT for this and the second one is about what was the inspiration or why I got that you know you say she's taking from thanks so lightweight itself doesn't really do anything specific with the SSL-SERTs it just uses whichever SSL-SERTs that you provide it so you can get those from any provider or your own CA if you want so again we you can indeed use it let's encrypt so we're using then again another benefit of using Wolf SSL like standard off the shelf certs just work out the box so there's no restriction on how you create those or how you use them as long as you have in the client the CA so that it can recognize the server you know there's nothing you need to do that special for that in terms of inspiration I think why God was super inspiring for a whole host of reasons until then like VPNs are always kind of like clunky you always expect them to impact how you use your connection it's going to get slower latency is going to go up you know this was just something that we kind of just assumed and expected would happen with all VPNs and I think what why God shows that you know they can be lightweight and still be secure and they can be really really fast in many cases we've seen with lightweight that's actually improves in set connection performance particularly this is testing through our service and our servers have rather than going for your ISP provides particularly for international long-haul stuff by hopping into us like you can access that bandwidth so what traditionally be a case of please use our VPN it's not that bad now it's actually like we can improve quality of experience the other way like we can do this for you is with it's like it can roam between Wi-Fi and cell so when you're when if you are doing say a speed test and you're on Wi-Fi and you just turn Wi-Fi off you drop back to cell your speed test will continue it'll it'll drop or change of course but your connection itself won't drop and your traffic won't be exposed and we found this actually be really helpful even going in out of elevators and things like that when you're you know when you get that WhatsApp call and you get in the elevator and like I've just lost it for a second when you come out of course you're usually waiting a few more seconds for it to realize that you know the network is back the 3Ds come back or 4Ds come back and you know trying things to catch up with Lightway because it's keeping that exact kind of alive and it very quickly recovers usually the poor connectivity features in the stuff that runs on top of it they never need to kick in and so you tend to get faster responses for things like and if you're running Grab or you're running Uber or something like that you do tend to see more faster recovery basically I have a general explicit in question I think specific about Lightway I'm sure yeah so actually been recently pulled out of India there are no Indian servers from what I can recall the last news I read because so how are you dealing with situations where more and more governments are having more regulations to control the VPN usage of the citizens yeah sure and I have a specific use case where I need an Indian server and express we've been doesn't have it anymore from what I know so how are you dealing around that for the situation because I couldn't use any other VPNs I had to like I set up my own VPN server on an Indian Indian instance and then I am using that yeah cool I'm not a lawyer obviously that's okay so the India case was quite interesting as soon as the India government said that we are going to put these restrictions in place we've merely pulled all of our servers from the region once it's important for us to have servers there to represent people who need you want to use it there like privacy is our thing and we will not compromise on that so as soon as there was any kind of hint there might be some issues we just pulled out of it straight away and we were the first to do so however what we do have for India I'm not sure if you're aware but we do have what we call virtual clusters again we're quite open about these and these are our clusters that you can connect to that will give you like the geolocation of India so for a lot of like connectivity issues that you might have where you need to be in India with like an Indian IP address the virtual clusters can be quite beneficial for you so if you haven't tried that give that a go but yeah again like we are we are maybe a company but we're a law-abiding company so we make sure that we don't get into any of these sort of sticky situations if we start seeing more cases we will do the same thing we will pull our servers out we don't compromise on our privacy or how we build our service thank you so I have a question about the actual cryptographic protocol you guys are using so I just skimmed your your reports from cure 53 it seems to be that you're just using TLS because you mentioned that you use Wolf TLS so just actually use the TLS protocol like all the network into a TLS tunnel and use that instead of like wire guard they update one constant protocol yep so for the the TCP side of things we just use plain vanilla TLS 1.3 the reason for that is it works really well and we haven't found any reason to change it for UDP we are still using DTLS 1.2 we have certain extensions that were added to that from the TLS spec to give us a better key renegotiation but we're already working with Wolf TLS to upgrade us to DTLS 1.3 that will also then give us the post quantum support as well on both the TCP and the UDP side yeah okay this was well known about so the PQC will be just using the TLS effort suits that use that exactly yeah so with DTLS we want to remove the DTLS 1.3 we just get all the benefits of the TLS stuff and then we'll just use the standard of the shelf stuff again okay thank you thanks all right any any more questions no more questions all right thank you very much cool thanks everyone thanks and next up we have Hong-Fu and Mario quite a close part of the thinking is wherever possible to get developers in the region in front of each other and so we have lent a little bit towards keeping towards shorter talks other than for workshops but it's a it's a fair point I think we might have thought for a way to have a small number of speakers at least sort of take longer slowness but yeah but sure you know if we've got X hours everyone we give an hour to is another person we can't get 25 minutes endless trade-off right we still do we have a plan yes so my idea is this let we let a few team members sit here and we've also prepared some slides so yeah I mean people want to know what went what went on and so on so let's go through a few things okay so false asia summit this is still an old picture but we want to know your feedback so Roland already mentioned you have some feedback you have some improvements that you want to see you have something that you think is great and we're here at the lifelong learning institute so there are a lot of Singapore into of course participate and we want to know yeah how can we improve in regards to lifelong learning as well so there are a lot of ideas well Roland where did you get that okay awesome so always have a spare always have a spare one good so please check this qr code I will show it at the end again and see if you want to leave some feedback online I think there was this idea that people are entering a lucky draw and right afterwards if they fill in the feedback form they can possibly get a t-shirt right is that correct yes okay that's cool ah okay I think that's important information for some people so if you fill in the feedback form and then at the end of the closing you receive the email you can go to the team and which team member will distribute the t-shirts well Roland and they're downstairs yeah okay so you can go to them and check with them and if you have one there's a high chance to win okay so yeah who are the organizers is this here automatic and this is the slideshow or how is it what's it always going forward okay so organizers of course the first Asia community first first Asia organization but also the lifelong learning institute it's the whole building they support the event and they helped us to run it it's a long-term partnership so thank thank you to them we also had okay yeah sure applause thank you then it was the first year that we had the cooperation with open euler and the open atom foundation yeah I would say also big round of applause yeah and good and yeah we had our sponsors here gold sponsors elite sponsors silver sponsors from Oracle to Rundeg only offers Google Express VPN YDB Grafana Labs Angelhack Mercury thank you very much to you guys so it's really great and we had all of them also at the exhibition here are the numbers yeah and I hope these numbers are more or less correct because I understand we are on different platforms yeah we have ticketing on different platforms you know we're in Singapore so what happened is that the lifelong learning institute also distributed some tickets for example through their platform we have some some numbers there from yesterday and so on so these numbers are about the numbers that we saw here with the onsite participation from what we gathered is like 1,345 people who have signed up for onsite and actually a lot of them came 901 of course like some of them will say well we have the thousands of people like that we had in the past but actually also got the feedback that people say post-corona it's quite good yeah so they saw a lot of activities other events like still trying to catch up or they're not happening so I would say first Asia is back and yeah so what we see as well is the participation online but the streams are still going we don't know what are the numbers yet but we have partnerships also already in the last few years with Kaiuanshe for example in China and also with segment fold so that actually increased our outreach a lot like last year we saw around five to six thousand people it's always the question how you count right you at ExpressVPN you also know is like always a unique viewer or they change the IP address and so so but you get an indication so and what we also saw this year is that we had a lot of people from different countries coming from Korea of course we always have our community from Vietnam but we also had the Chinese and so on I mean everyone who really who came said wow this is really international yeah and so that was cool and actually like Kaiuanshe the Chinese people still here yeah I see okay some arms going up yeah cool yeah but you're also in based in Shenzhen right Takasu so yeah of course Japanese everyone I'm sorry I will not like mention everyone but like feel all really hacked and thank you very much that you were here I think a big round of applause for everyone who participated international okay international okay exactly right Chinese is also an international language of course so didn't yeah yes yeah okay I also understand a few words not so many like you cool and yeah we have a slide here actually off-segment for that is the stream from China that Leslie sent us and yeah Takasu you can read in Chinese we can have afterwards what's going on there okay thank you and yeah team members so we don't have the photos of all the team members but thank you very much so yeah so I thought that it would be more interesting to have the team members sitting here so you can at least see who we are I understand that you are already very tired after a very long day but my like our team members they are too shy to sit over here we still have one seat empty so one seat empty symbolizing the shine people and also the people who can't be here because they're actually supporting the event elsewhere yeah so for instance as we can see is I got this question a lot this is in the name false Asia doesn't it doesn't mean that only Asian people can participate yeah exactly so I got it every time when I go to the other international conference and you can see here we are not only Asian we have a lot of people from from Europe and of course Europe everywhere we have one team member that Mario said he he couldn't make it Leslie Wong from from China he doing the streaming for us over there yeah and of course we have many more team members I'm sure he I'm very sorry we wanted to put the pictures of everyone but we did this like last minute you know there's so many things going on at the moment so yeah so Kiwi Mr. Gui is here this is the chair for you Mr. Gui where are you yeah somebody switched off the light so we can't see anymore Mr. Gui please switch on the light again I know you are shy yeah but yes thank you very much also to Mr. Gui who built bring in for example the building blocks community also they did the workshops in the evening so that was great too yes and our volunteers of course some of them are sitting here in the audience thank you very much for your support so I would just want to mention here we have quite a number of local people we have also someone traveling all the way from New Zealand William to come here to volunteer for the Fourth Asia Summit thank you very much for the ad and we also have like our speaker I didn't mention here because they are on speaker side the good thing about being in the post community everyone can just contribute right so I remember in the past like people come to the conference even though they are speaker they willing to walk around and just hang on the bolster and have us with many the small tasks to make the event happen so I really appreciate it thank you very much and what should I say we want to take a moment to to think about our friend and team member I could not attend one of the talks today but I heard that someone one of the speaker dedicated to talk for Arib Arib actually never got a chance to travel abroad in his whole life so he passed away at the age of 26 I don't know what to say but the whole event yes system would mostly contributed by Arib and I don't know many people here also know him yeah Mario yes so I know not only us I also saw many polls in the public channel from other communities they also lost members in their community over the past two years we are very sorry for that and yeah so we just want to take a moment to think of these people that contribute to the community their work will be always remember more statistic yeah so without you like we will not have the false Asia summit we have all together 157 speakers from 22 countries so this number a little bit lower than previous year before Covid I think we always got a statistic of over 40 different countries so this year we have 22 and surprisingly the top country is Singapore not really surprisingly because people cannot travel anymore surprisingly because compared to the previous false Asia it's a little bit different and then the next the next country is India, China, Germany Japan, Vietnam, USA, South Korea, Sri Lanka and Malaysia so this is the top five countries of our speakers top 10 sorry our participants come from 54 countries and this is the map showing where they're coming from yeah please please move move move next so I have to say this is an approximation because like for example some people they say I live in Japan so then in the form what did they feel fill in I live like 14 years in Japan and then like am I from Austria am I from Japan or like you know I lived in another country so yeah it's never I think I need to I know but our mathematician to explain this Simon up to us so I did it with a software I did it I did not do I did not hand it manually no so I use a software to put in the number and this is what they show me all this okay so so actually if you put into any like what spreadsheet or something and you say like you only have the scale of zero to one and like anyone if it's hundred or one or we'll just show up in one color yeah yeah so uh yes so software so we are in an international world right whatever make in the tech community make from people from around the world so not really even project like open Eula they have contributors everywhere so not just Chinese people so we cannot say that oh is it a software make from a particular country or anything like that any software make from people everywhere yeah yeah that's it Ron do you want to gather some feedback and and and it seems like somebody wants you to talk a microphone has been handed to me okay so where were we we have gotten as far as the diversity of talks could we please have some more longer ones in the future yes perhaps we could do that what else what else would people like to see improved all of the stats maybe so we have quite a number of Indians because he actually and also it's just a bit were you not here yesterday and the day before the the crack was about the the slide that showed we had zero Indian participants which is actually not true because the lie is so from one to one thousand so it means that the lighter color the more people streaming in form yeah exactly yeah better visualization next time next who else so uh lunar new years are a problem for scheduling right but it just happened to be this is Thai New Year this is Songkran this weekend and which is impossible not to get with all the conflicts right but I had six staff that I would have been able to bring if not for that so hopefully next year it'll it'll not correspond but yes I mean that's a hard problem right scheduling the problem we have a problem no matter what we pick there's a there's a conflict so actually we were thinking about it but the venue wasn't available on another weekend so close by hi um I'd like to see a better application to view the schedule I was very confused with what's happening where and maybe if we could have a better application given that we have so many beautiful um you know I don't know we have the intelligence to be able to harness something collectively where we could add it to our schedule I just felt like the schedule was a bit clunky for me through the website to access the different aspects yeah so that would have been I could have been a better experience and I would have been able to keep schedule yeah that's fair enough I think the uh performance of the schedule is a bit slow and there's also a couple of bugs with the sessions appearing repeatedly and so on so not to make anyone's problem but we very much welcome assistance on that thing which is the volunteer to help so regarding the application it's actually been a challenge without Arif to to maintain even J Norbert knows we've been actually fighting to keep it up so just so you guys know it's open source and we welcome few developers to help us maintain it can we expose that actually thank you for the suggestion but like the backend has that API and in the past people did that yeah so for example there's the there's some open source Android apps also on they can do it it's just like somebody has to do it before the conference when everyone's super busy but honestly we had a meeting with some people here from India and Sri Lanka and they are very much interested to take it up and like we started yeah so that's cool yeah excellent anybody else ha who's coming next year oh that's pretty good yes any other highlights for anyone anything else that anyone things that people particularly enjoyed hardware track was amazing you guys don't realize that you have like there's like three or four of the top people on planet earth are we're doing the hardware track that's just you can't get that anywhere just quite I need to relate that that message to to bunny horn because yesterday he yeah so yesterday he is he here not always yeah so yesterday he told me that it seemed that he's out of play nobody really cared about his topic I'm not sure sure if he should come here and talk about what he's doing can we please put him in the hardware track next time yeah so thank you very much for the feedback yeah I let him know so I think the highlight in terms of social events is china street food because china town street food because you have so many different things to taste we should do it at a place where the restaurants are opening when we get there and not closing sorry about that a place a place and a time more importantly I think we need to check that one more carefully next time he thinks I was so positive yeah so even it's not like come limit it's not so positive you know it's fair enough I mean the times that have been a bit have changed a little since covered and we just happened to turn up after half the place has already closed and that's given that Singapore's biggest we were in Asia's biggest hawker centers the fact that half of it was closed when we turned up was probably not profitable but yeah I think it's a it's a good one thank you anything else I really loved the opportunity to you know my company sent here to the 10 talks relevant to my to my role and I really love that you guys don't take attendance because what I actually did was go to all the talks I wanted to go to stuff that's completely unrelated like I don't do anything with robotics but I love the robotics talks and nobody here will tell my company we'll just make sure your company doesn't watch the wrap-up session yeah the taking of attendance is interesting I'm glad we don't do it I don't think we have any plans to do it anything else things behind you now go ahead go ahead yeah I just want to thank you that you brought me to one of the beautiful place of the earth so I enjoyed the place Singapore very very much we talked a lot about inclusive inclusiveness of Singapore you explained me some background from the history of Singapore and so enjoyed it very much thank you glad you knew it thank you no I really like the better students are there any students here right now can you put up your hand okay any more Singapore students IT okay there's one here thank you for showing up yeah thank you I saw the students still like doing stuff in the exhibition hall while everyone's wrapping up so so yesterday evening when they gave the workshop and I told them that Harish is in the audience he came here but particularly listen to your presentation and they won't flow numbers I thought and why why Harish is others things go up so it's my first time to attend this conference and actually for me it inspired me to be a volunteer for next year the the camaraderie of the team is really great then you know guys they are just volunteers they're not actually paid they're not making anything but you know it's very nice to see people just contribute anything and they welcome anything as well and there it's it's it's very heartwarming to see that this you know goes a long way and hopefully next year we can get more participants congrats to all of us thank you so much we very much offered as a consciously as a sort of community group so yeah glad you saw it others only one person's talked about the video that's excellent obviously I'm the only person who's really annoyed about it good other things we can improve other things people who particularly enjoyed this might be the last call going once going twice where is no one that's not I think we might remain at once a year what we are doing trying to do a little bit of please please tell others in the region there are others happening but there's also moving through slightly more yeah no this is just a random comment who has go to went who went to the social event last night cool cool did you did you guys hear the mix yes the DJ mix right that was good I think next year maybe we need smoke machines yeah yeah yeah right we have DJ then over there yeah smoke machines say again you're looking at hackspace to make a smoke so maybe some lasers sharks they just take the lead off kiwi's machine right we have lasers also holes in the building but you know all good there's an intention to do some meetups in Singapore during the year as I'll say it was that uh no okay and together with the false Singapore group we try to do one every quarter a meetup here yeah so not quite the full summit much much smaller than the summit but we are trying to a few times a year all right I think that's pretty much canvas that's thoroughly thank you everyone and for those who'd like to please join us at Hackerspace later on for chat drinks and at some point also street food eating that's it we're done thank you