 How many of you are not from Singapore? Visiting which country are you from? Taiwan? Vietnam? That's awesome. So although I'll be talking about curating the open community in Singapore, I believe the things that I'll be sharing will be very much applicable to your countries as well, our cities. So my name is Sayani. You can go to this website. Here you'll find all the information about me. And I'll be talking about this project called WeBuildSG in the context of Singapore. But like I said, it can be applied anywhere. So what happened a little bit of history is that a few years ago, I was trying to learn web development. I traditionally came from electrical engineering. And I was like, OK, so where are the meetups? Where are the open source projects coming from Singapore? Because at night, I want to go and visit them so that I can enhance my learning. So about three years ago, I did my first initial commit on GitHub. As at that point of time, I was learning HTML, CSS. What I did is that I did this page. And the design is exactly the same as three years ago. I did this page. And on the left-hand side, as you can see, it's chronologically ordered open events, which means these are free events. Developer design or maker-related events coming here. And on the right-hand side, you'll see open source. So what I did is I went to the GitHub. I picked up repositories that at least had 50 stars, updated within the last three months. And then I listed here also chronologically, but updated previously. And although the design has been exactly the same, instead of editing HTML and CSS, what we do right now is automated. So all these are automated because, seriously, Singapore has so many open events and so many activities in open source that it is impossible for you to go through manually. So what do we do? We have a JSON API endpoint here. How many of you are developers or programmers? See, if I talk about API and JSON, it's fine, right? OK, so if it's not, please feel free to stop me. So if you go to this JSON endpoint, as you can see, there are, as of now, as of this hour, in fact, there are 81 upcoming events into the future. So what we do is that we query Facebook events API, events write API, meetup.com API, and then we apply some filters, such as it must be in the category of technology. It must be free, of course, and then we kind of list it here. And of course, it must be something related to engineering, design, or development, things like marketing or startup, even though they might be in the tech category, we remove it. We also have an API endpoint for repositories, and this is something we query from GitHub, and we query by the location. So, you know, if you go to the GitHub, and if you look at your profile here, you will see the location string here. So if the string contains Singapore, you can, of course, say Ho Chi Minh slash Singapore slash Taipei, so that's completely fine. But if it's contained Singapore, I go through the user's repositories, and if they are more than 50 stars, and updated recently, which is in the last three months, I kind of listed here. And that works happening in the hour by hour, we run a scheduler, and by the way, we host this website on OpenShift, very thankfully by Red Hat, one of the sponsors of this event, and it just happens automatically. So if you go here, you can subscribe to the calendar, rebuild.sg slash calendar, or you can also check by events date. So for example, say next week on 23rd, if you wanna look out for a developer event, there are a couple happening, one regarding AWS, the other one regarding security, by NUS. So this website has been going on for fairly, you know, since 2012, we did some changes to the backend. But my point of the talk today is to talk about what we did with the data. Now, when we query it every hour, it happens, the data happens in memory, that means it is not backed by any database, but why should we anyway? Because all you're interested is in the upcoming events, and in the recently updated repositories. So we were like, nah, we don't need database, and anyway it costs money, this is a site project who wants to do that. So today's talk, the main focus is on data.webuild.sg. What we decided to do is that we decided every day to capture these JSON endpoints, data, and kind of store it in a repository. So let me show you, webuild slash data. So once again, all these projects are completely open sourced. And if you go inside the data folder here, let's look at events. You will see that all the JSON files are actually stored here. This is our database, our free database. And if you click one of them, yeah, if you go to raw files and you will see that, okay, on this day there were no events, that's why there's nothing. So for one year, so we actually started collecting this, like we run a cron job actually. So if you come here to data and you look at the commit logs, you'll see that at three a.m. every day while we are sleeping, a bot, which is a GitHub user itself, commits two files, JSON files to this repository, one for events and one for repositories. And for one year over the course of 2015, they were just snapshotting it. And it still goes on, by the way. And then during the December holidays, I was finally have some time during Christmas. So what can I do with over 356 times two JSON files? And that's when I plotted it. And are you curious to see the graphs? All right, so although these graph is once again, we got in Singapore, I believe we share some commonalities between, sorry, okay. Believe share some commonalities with a lot of other growing cities. So let me show you the first one, which is repositories per week. This is the repositories per week, by the way. As of like December, 2009, 2014, or maybe even January, you know, they were like barely, what? 11 repositories, five repositories, but look at how it's growing. I think it really shows us something about the community here. Then the next thing we have is events per week. And this is kind of zigzag, zigzag, but you will clearly see like during December, the events went down, and during Chinese New Year, it went down. And it's been fairly pretty bustling. But let me also show you some activities per programming language. So this is the repositories, you know, they have the programming language. And here you can see, and this is where the language war might start. You know, I actually brought this talk to individual Python user group, JavaScript user group, they were very curious to see the activities. So obviously JavaScript, even Stack Overflow also noted from their survey a few days ago, JavaScript and of course Java because of Android, PHP, these are very, very active languages. We also do active user groups, by the way. And for all of you who want to visit open user groups, you can go to this data point and have a look. And because they are queried from API, it is not a stale data. These are the groups that have held at least five events over the course of last 52 weeks. So they are not groups that were active two years ago, they were active as of a year ago. So please feel free to go and check out these groups as well and their meetup.com, I even write pages. This is also active repositories as queried from GitHub, there are so many and still growing. Maybe these will be interesting. Let's say you want to create a meetup group as well, for let's say, I don't know, for like iOS something. And when should you firstly create it? Where should you create it? These are the first questions that as an event organizer you have to ask. So for that, we have some charts and graphs for you. So for example, the event of the day, thirsty is most popular. So if you want to create a new meetup group, maybe Thursday is something to void. Maybe you can go for Monday or a Friday. The next one that will be very useful is event per week of the month. Like somehow the first week and the first week especially are not having so many events. So maybe you should hold it on the first Friday of every month instead of Thursday of every month. The next one that will be very interesting is event duration. A lot of people are like, oh, let's have it for three hours. But seriously on an evening after people come from work, they don't have much concentration. So maybe one to two hours is good enough and the data shows. The next one that I want to show you is event location. This is like a big thing. Like where can I host my free event? And this is where we have once again taken the data and we have plotted it in latitude and longitude. And the cool thing is if I, let's say, and by the way, why don't I show sign center? All right, so these are the sign center events and you can see that clearly Mini Make Affair has been held there. So for example, if you like city area has so many, so let's click one of them. I don't know what it is. Okay, this is like Barclays. Let me click another one. This is like Skyscanner. So let's say you wanna hold your event at Skyscanner. All right, but you don't have any contact. But here you will see our Haskell SG, Ruby Tea Party, Pi data has held their events there. So go to meetup.com or facebook.com, find their organizer or admin list and contact them. Hey, I saw that you held your event there. I also want to hold my new meetup group there. So go and explore all these charts and graphs. We will probably be adding a lot more because we got feedback from all of you to collect, say, license of open source or like other types of data and we'll be plotting more charts. I would like to end up with these four numbers. At the bottom of it, you will find that these were the numbers in the course of 2015. There has been 129 unique repositories, 975 update activities in open source repositories and also in terms of events, there has been over 800 events and almost 200 user groups holding these events. How will 2016 look like? And I guess me coming here and talking to all of you here, whether you came from Myanmar, Cambodia or whatever, it doesn't matter, you can go back and do this in your own city as well. And if you're in Singapore, go and contribute to these numbers because you can sort of bring these numbers even higher. This is really encouraging. We are what, barely in March and we already have 111 open source repositories. Of course, you can see that from the initiatives of say, you know, having computing in schools or the government supporting the open source community. You can already see a lot of, like this 700 is almost coming to us 975. So I think we will definitely beat the numbers. But these are, once again, queried every day and they are being updated as in men. So once again, how can you contribute or join in the WeBuilds data? In GitHub, we have all the repositories here. There's a repository for the data website, the WeBuild website and lots of others. You can also follow us on Facebook. WeBuildSG, you can like it or even Twitter. We are constantly retweeting people about developer design, engineering and maker events. And we hope to see this activity go up even higher with your help and more. So thank you so much. I would love to take some questions as well. Do you have any questions? You can also take some stickers here. I have some WeBuildSG stickers on your way out. You can have some. I have a question. Yes. Do you have about the dust comets? Yes. Yes, the 3AM. Does that put your project at the top of the WeBuild list? No, it doesn't because it only has 11 stars. Give me more stars. I'm being very fair even to myself. So I do not, you know the good thing about, this is the project that taught me about how to set criteria with being fair. Of course I want my repository there, right? But I have set the criteria in the code. So if you want to come and debate, like, hey, why is my repository not there? Instead of debating why your repository not there, we should debate about what is the criteria. Yes, it's open source. Go and fork it for your own country or city. It's all open. It's all open. Like WeBuild is the API server. Yeah, go ahead. It's written in Node.js. I can talk to you about how we coded it in detail as well, but all the code comets are right here and open. Right. Any other questions? Yes. So data.webuild.sg is a static site, and we did that because I wanted to host it on GitHub Pages, which is free. So what we do is it's written in Jade. So if you go to the repository, it's written in Jade. And every week I will manually compile it. I can actually show you in the terminal. So I can go to the data website here. All right. And then of course the first thing I want to do is I'm going to show you how to do it. So I'm going to show you how to do it. I'm going to show you how to do it. Then of course the first thing I have to do is get pulled to get the JSON files. I haven't done that today morning. So you're in luck to see it. And there you see, I did it yesterday. So there you see, you see two JSON files here. And what I'll do is NPM run build. So I have a build task that builds both the HTML and the graphs. So let's build it. And it will start out in localhost. There you see JSON, JSON, JSON all saved. So I try to keep the data in a JSON file and then I take that to plot it. So I try to keep the data and the markup separate. So there you go. It's right there. And let me start it in localhost. And you see the graph slightly different. 8080, localhost. See I have so many localhost ports. All right, so if you come here you will see the repositories especially will be slightly different. What is this? This is like 32 repositories. And if I go to the latest one which is data.webuild. No, okay, you can also go from here actually. And if I click here, it's been 31. So between yesterday and today there were one more repositories. Maybe I should git push here. Git push production. Git push. And then it will go to GitHub and no I should commit it actually. Update graphs is git pushing aloud here. And now you will see the fresh graphs as of today. All right, any other questions? And when I come here and I refresh it, whoo, we have 32 now. Is that right? I heard you had no moderator before. That's fine. The moderator is not important. The project is. Exactly, okay, bye. Bye. All right, any last questions for so many? Please take some stickers. You can ask me a question. If you want to find me, this is my website. All right. Yeah, dot EE is my top level domain. So that's my website from here. You can email me or find my GitHub or yeah, check out the different projects. Thank you.