 If you want to come on back in, we are going to wrap up a little bit. Did everybody, was everybody able to get through the exercise? What is, what did you learn? Did anybody learn anything new? Hopefully, somebody did. Anybody want to raise their hands and say what they learned? Sure, what did you learn? You learned how to do it? Awesome. Yay, success, that's our goal. Very cool. So, one more thing that you can learn is a little bit more about open source. And so for that, we are going to have Bjorn who is going to give a little talk about why you should interview open source. He's a member of the community here in Singapore. And so I'm going to turn this over to him and he will tell you more. Thanks, Jesse. So I said, my name is Bjorn. It's also a fun fact that means bearing the country of my people, which would be Sweden. For some reason, we have a national day today. I tried to figure out as a fun fact why that is. But basically we had a king at the 16th century and that's why we have a national day. Not every country has that boring of a national day. So I'm a developer, I'm a DevOps guy, meaning that I also play around with servers. Hopefully, I'm a Metacoder, but who knows. And I talk a lot. So I would like to mention to you a little bit why open source is good amongst other things. And one of the things I really love with open source personally is just that you learn so much from reading other people's code. That's probably the best way you're ever going to get anywhere with programming by reading. And you get so much stuff for free. I use Rails, I use Django, I use a bunch of other tools and toolkits get itself. And it's saving me so much time whenever I work. And it's all available, it's all available for all of you. So that's great. Sorry, I just realized I don't have my speaker nose up and that's great to have. Here we go. Thank you. And then the question is what is open source? So open source has a formal definition. There's also something else called free software and I'm not going to talk about that today. It's mostly interchangeable except when it isn't and if you want to know about it you can look it up online. It's basically open source is a little more free version of it all as in you have more ability to do things. The definition of open source contains about 10 steps. So the first part of it is that you have free distribution. Meaning that you're free to share the code that you have or other people has made available either as code or as a program itself. You know the shareware of old and all that. You have the ability to look at the source code and modify it. And as you modify it you're free to work on it and continue sharing it on. These three are the most important. They're the easiest deal and that gets you the basic idea of it all. To see the rest of it you can look at this website which will give you what it is. But open source isn't just about technology. We mostly hear it used among makers and software developers or hardware developers. Because a lot of us are seeing it in there. But there are other things like my mom has a great meatball recipe. That's something that's open source. You can see it's open source because anyone can get that recipe. You can share it, you can change it, you can modify it. The result of the recipe is available for everyone. Well, if you happen to be our dinner table but different story. And why and how did I end up contributing to open source is... It's basically one of these things that I felt that the community was giving me so much for free. I was learning so much because I wanted to give back. But I was also scratching my own itch. Because sometimes things just aren't working and... Yeah. Telling people to fix it doesn't necessarily work. You just have to go in and take care of yourself. So you start fixing bugs, you start contributing back. Because at the end of the day if I had that bug, maybe someone else will. And maybe they will fix my bugs. So you help out. There's also a big case where you just look at a library or something and it's almost doing what you need. It is so close. But there's that tiny little thing that's missing. So you go in, you add that. At some point maybe you add a big thing. It just keeps building and that's what we're standing on. We keep building software together, getting bigger. And then there are cases where I saw something and I wanted to make it... I saw the problem for myself. And I didn't find a solution already, which is why I built it myself. And I saw that I could just give it out to other people so they didn't have to do that themselves. Which can all go. And another thing that I felt with open source is that you never know what you do will be useful. As an example, I made a couple of years ago, back in 2008, The Dark Ages. I know a little Ruby script to help me download YouTube videos and extract audio from them because Spotify wasn't around yet. And the little script stopped working after a couple of years because YouTube changed and apparently they don't want you to download their videos. But sometimes this year, a colleague of mine from Australia came and told me thank you for putting that script up. And I go, why? How did you find that? I was doing a problem about FFmpeg, which is a program I use inside of that. And the way you'd use it to solve my problem. I'm like, really? That thing, it was dead. It hasn't been working since 2010. But you never know whenever something that you did is going to be useful to someone else. So always leave your things around. It's not like my room. And the other thing is just that as I mentioned, you can solve a bug, you can fix something and you may have had a problem and someone else may have a problem. At work, we used this piece of software called the Go, which is a continuous integration server, meaning that it runs your tests, it can deploy your stuff. And there was a little bug there that if you got a blank space at the end of a file, it would just lock up the entire server. So that happened and our server was down for a day when we were trying to figure out what was going on and how it worked and trying to get it out of the loop that ended up there. It was terrible. We have developers that couldn't push their code because they couldn't verify whether anything was good. So what to do? So we finally got it working. We found a patch and that's now pushed into that. And I now know that whenever an agent for this software boots up, which is probably hundreds of thousands of agents around the world, it will run my little piece of code. That's really cool. But a little line there. Admitted it was only a strip, but anyways. Now the one I spent is a software called Ansible for managing lots and lots of servers. And we found this problem where things just stop working every so often. And I spent something like six hours digging around on the servers figuring out what's going on. What I did figure out the problem here is that the Ansible module we're working with doesn't understand how Monitworks, which was the module we were using, but the fix was just one hour. I just wrote the code in an hour and got it done. I can submit that back. And now we're having a discussion with the Ansible developers about other edge cases that we also discovered during this. And this is going to go in. I'm hopefully saving someone else having to debug for an hour. Maybe the more who knows. And all of this comes back all the time. I don't know how many countless hours I have not spent debugging stuff because someone else helped out. It made it so I didn't have to do it. Because they spent the time and they helped. And a little bit, I hope you guys will start helping out and you will release your own software. You will fix bugs, you'll add features. So some days, at the end of the day, working with computers, you're always working in the shoulders of giants. You're always working because someone else has done some work for you. And some days, some day I'm hoping I'm going to stand on your shoulders and work out of your work. Hopefully not literally though because they even crashed. Any questions? Yes. I think I had a question before about open source. This day is open. Is it your building? Is it means you can use that not only in your type of project but in your work? Maybe some of my friends told me even if it is open source that doesn't mean you can include that in your, like, what you're doing in your company. Yes, repeating the question. So you're asking if all open source available, you can use that for work as well? Yeah. So that's where the definition between free software and open source and all of it gets a little bit confusing. There are licenses that allows you to do that, like BSD license, MIT license for instance, our license allows you to take and use wherever. You can use it in private projects, you can use it in open projects. If you find the GNU GPL, you are not allowed to use it unless you share back the source code, which means if you put it into your private code, then all your private code needs to go out. It's a viral license in that way. It gets a bit complicated, but there are, if you look at the OSI website, if you email me later on, I can give you a link that explains a little bit better. Anyone else? In that case? Thank you. In case anyone wants my mom's meatball recipe or anything else, you can always get in touch with me. Look at my open source contributions and help out. I have a really cute emoji library for Python if you do that, so please go on. So thank you.