All right, let's get started. Hello, everybody. My name is Jeffrey Sika, but most of the people in the community know me as Jeefy. Long story short, someone misspelled my name 20 years ago and it's stuck. I happen to be a Kubernetes contributor. I also happen to work at the CNCF. So I've got kind of an insight, both from the community perspective and also from the inside of the foundation perspective on how best to start your contributor journey, how best to give back to the community and work with projects. So the name of this talk was CNCF Landscape. That can be somewhat confusing because there is actually a project called the CNCF Landscape. So I'd like to rename the talk to the CNCF ecosystem. How best can you learn a path to contribution within the ecosystem of the CNCF? First, I like level setting. I like making sure everyone has the same kind of foundational knowledge before we start. So let's kind of talk about what the CNCF is and why. If you already know some of this, I'm sorry. If you don't, welcome. The CNCF is a nonprofit foundation under the Linux Foundation. The Linux Foundation has quite a lot of other sub-foundations underneath it, as you have seen throughout this conference. We have quite a large list of graduated projects. The one that everyone tends to know is Kubernetes. That was our first project, and also the first graduated project. Under the Linux Foundation, like I said, there are a lot of different other foundations, and they all have a different specialty. So there's OpenSSF, which focuses on security. There's CNCF, focuses on cloud. As you've seen, automotive grade Linux. We try to identify different sectors, and then usually there are open-source projects that we want to try and help enable, so there's more options within that sector. The CNCF itself has three main pillars, as we call them. There is the governing board. The CNCF governing board primarily focuses on budgetary issues, marketing, and overall governance of the whole foundation. There is what's called the Technical Oversight Committee, or what's known as the TOC. They are an elected body voted on by maintainers within the community, and they are the group that will look at projects that apply to join the CNCF and decide whether they should join, whether they might make more sense within the CNCF sandbox. We have different levels of projects, or whether it's a project that's mature enough that it should go into incubating. A good example is Istio or Knative. They joined at the incubating level. They had also been around for quite a long time, whereas some other smaller projects or projects that a company might just want to spin off so they can get contributions from multiple companies, that might just go into Sandbox. Under the governing board, there is also a small group called the Marketing Committee, and they are the group of folks that help us with doing things like white papers and use cases, case studies, and et cetera, et cetera. So one of the greatest things about the CNCF is we are meant to be a vendor-neutral home. So projects that get donated from one company aren't just worked on and maintained by that one company. They are also worked on by multiple companies. The whole idea here is a rising tide raises all ships. It's not a zero sum game, let's actually get everyone together and collaborating and then make everything better. Like I said, TOC, the Technical Oversight Committee, tends to drive the technical direction of the CNCF. The CNCF has a dedicated staff of folks like myself. We have different specialties. Like I said, mine is in community and contribution, but we also have dedicated marketing folks. We also have dedicated tech docs writers who try and help with projects to make sure that their docs are up to snuff. We have developer relations folks to try and evangelize, not just a single project, but the whole ecosystem to, again, try and grow the community as much as we can. If you're here, maybe you know about KubeCon, the same events team that puts on Open Source Summit also puts on all of our KubeCon, so they are just top notch. Hopefully you can see that here. KubeCon is like this, but an order of magnitude larger. So, like I said, there is another project in the CNCF called Landscape. It's not a CNCF project, but it's kind of an internal application. Have to show it. It kind of shows a story of how much we've grown and also how much the landscape has evolved. This was taken in late 2017. This is not just showing projects that are within the CNCF. This is showing all the projects that want to join. That's poor phrasing. All the projects that feel like they are in the ecosystem, whether they're Open Source or not, whether it is a company project, whether it is closed source pet project, you can actually submit a pull request to join the CNCF landscape. And in 2017, this was already kind of large and kind of hard to read. That was taken July 2023. So in six years, it's probably gotten four or five times as big and even worse to read. Now, you can kind of see, let's see if I can actually do this with my mouse. There are some projects that are highlighted. And those projects are the ones that actually are in the CNCF. But this is still very difficult to digest. Lots of memes have been made about how awful this is. We are still trying to work on it. We have a new version of the landscape that is coming out. Yes, this is still difficult, but the filtering ability is going to be improved. You'll be able to actually directly link to certain pieces of information. Most importantly, there's actually a search bar. I'm not trying to sell the landscape, but we're trying, we're trying to improve things. So in addition to the technical oversight committee, we noticed that there were issues or there were certain areas of expertise that we saw common across all of our projects. And it made sense to kind of collect this expertise to be able to have informed opinions on certain things like storage or networking. And if a project was coming into the CNCF or looking to apply within the CNCF, we could have this group of experts come to the project and also assess it. We shouldn't expect the technical oversight committee, though they are very well-known community members. We shouldn't expect them all to be experts at networking or all become experts at storage. So these tags or technical advisory groups formed so that the TOC could have resources on the ground, yeah, resources and people on the ground still working within the projects that can do things like assess a project's ability to match certain criteria for networking projects. Make sure that it passes the SNF test to make sure it actually is a solid project and not something that's kind of vaporware. Because the CNCF is a foundation where a lot of projects want to join, we wanna make sure that the projects that do join are of a pretty high caliber. So it's kind of, I won't say painful, but rather involved to apply to join the CNCF as a project. But what we get out of that is most of our projects tend to be of a pretty high caliber. The tags certainly help with that as well. So these are kind of the four, sorry, eight tags that have formed. Creating a tag involves the TOC coming together and identifying a new space. So this doesn't really change often. And if you work within the cloud native space, you know that each of these is something that is considered a kind of large area to be an expert in. The CNCF provides a lot of training and certifications. The CKA is kind of the exam that everyone in the ecosystem knows. It's very, very high class. It also tends to be very difficult to pass. So it helps people early in their careers kind of get a foothold into joining one of the many places that are hiring Kubernetes experts. But also not just certifications. There's also a lot of free courses that we offer to kind of get your foot in the door. Of course, we have KubeCons, yay. The next KubeCon is going to be in Europe in 2024. That will be in Paris. The next North American KubeCon is going to be in Salt Lake City in November. And I think it's going to be a Kube day is gonna happen in Japan in 2024. Not a full blown KubeCon, but stay tuned. We also try to enable a lot of meetups, not just large scale conferences, but we want to enable local meetups. I myself used to run a meetup and it's how I even got here. Like I would not have become a Kubernetes contributor had I not gone to a meetup and met a friend who was also a Kubernetes contributor. There you go. So happy to say that the cloud native community Japan who one of our organizers is here. Thank you, thank you. Well, two of our organizers are here. Thank you, thank you. Just met on Friday, packed room. Please, if you are local, look into this, join. The best way to share ideas and share knowledge is at local meetups. Most of the time, the larger scale events tend to have hallway tracks which are just essentially meetups. And so being able to meet and share the latest things every month or every quarter is super helpful and invaluable. So that's CNCF foundation. I am an employee and have to tow the party line kind of thing. Now I can talk about what I really care about which is contributing to our projects, contributing to the CNCF. Like I said, I started as a Kubernetes contributor. So I feel like I have an insight or two into how to contribute, also why to contribute, how to justify more time contributing. It is all connected. And also, communities strengthen contributors. Like I said, meetups and exchanging knowledge, telling those stories, that is super helpful. This is from KubeCon in Chicago. We have a Kubernetes contributor summit. All of the contributors get together, have a good time, but we also try and share knowledge and keep each other relevant, keep each other up to date. It's super helpful. So I wanna start with a couple key things that people who just want to submit a pull request to Kubernetes or any of our other projects, they might not understand and should try and keep in mind. All of our projects try to defer to being out in the open. Say you are interested in a specific GitHub issue or you see a pull request and you have a comment that you want to give to the author. You should probably do that in the open in either one of our Slack channels or in GitHub itself. I would defer to GitHub, but DMing someone is probably not a good idea. You want to make sure that as much of your communication is done in the open so other people can see and learn from it and also so maybe someone that you are not directly trying to contact also has a comment and can respond. It's better to be out in the open because it's also more collaborative. A lot of people talk about burnout. I am one of them. I am a major advocate of trying to avoid burnout. So the phrase that's a marathon, not a sprint, very good thing to keep in mind. Make sure that you are trying to pace yourself and not push something immediately over the line. I know that's kind of difficult and there might be external factors pushing you, but mental health is a serious thing that I like making sure it's safe and it's healthy and we are kind of good. Also, assume positive intent. Maybe you submit a pull request and that pull request happens to get a snippy or you might interpret a snide remark. Maybe the person's having a bad day. Maybe they don't have a full, like there might be a cultural difference between what you are saying and what they are saying. If you tend to always assume that someone has their best intent, even if they don't, it's a lot easier to navigate a multicultural worldwide organization. This is something that some people think is common sense and common knowledge and just generally nice to do, but it's also worth really calling out. All of our projects have a code of conduct. This kind of falls in line with what I just said, but it's actually codified. You can go and read it. It's in my slides. I'll make sure the link is available.  Don't call someone names.  Like you want to try and be nice to everyone because again, everyone working together tends to up level everyone in general. Projects have community meetings. Tags have community meetings. The TOC has community meetings and this is one of the great ways to start looking at a project and see if there is a place for you to contribute to. Say you are really interested in storage, like high performance storage, and you look through the landscape that I just showed and you see, oh, there's a project called Longhorn. Longhorn works on storage. Maybe I can work with that. You can find a community meeting for Longhorn. Might be every week, might be every month, but it's somewhere in between there and just hop in there. All of our community meetings are supposed to be in the open. They are almost all of them recorded and put online in their respective community YouTube channels. And one thing that I like to make sure everyone understands, lurking is fine. In fact, I would encourage lurking at first. Most community meetings, I say most because all the ones that I attend do this, but in the beginning they'll say, is there anyone new? You can introduce yourself if you want. If not, that's fine and you can just stay muted. You can stay camera off and you can just listen to what they're talking about. This is extremely helpful if you're trying to figure out what this project is really trying to focus on. If you as a prospective contributor goes to this Longhorn meeting thinking, I want to really improve how the CSI driver of Longhorn works with Kubernetes and then you join the meeting and find out, no, there's like these three other things that are on fire. Probably doesn't make sense for you to then want to contribute to that weird, not weird, but change that they're not necessarily focused on. In that case, maybe there's something that you can do to help all these other existing maintainers. So again, lurking is a really good idea to just start embedding yourself in the community. Another thing that I'll say is consistency. If you attend these community meetings, keep attending and then if you start, I don't know, asking questions, make sure that you keep attending. People that continue to show up do get noticed and in fact it's the people that continue to show up even if they are doing minor contributions or smaller contributions. If they show up every month, you start being kind of expected to show up every month and you start I guess not necessarily getting relied on but you build a rapport, you build a trust. I mean, this is how almost every contributor and friend I have in the community has kind of grown as a contributor and into a maintainer. They would just continue to show up. So it's again, better to do smaller incremental changes just like you would expect with code bases. It's better to do smaller incremental changes to build rapport and build a community than it is to try and do this huge pull request and then be like, I'm a contributor now. It's like, that's actually not necessarily a good way to become a contributor. All of our projects fall under a CLA or a DCO. CLA is a code license agreement. A DCO is, I don't even remember, developer certificate of origin. This is partly because we are a vendor neutral organization so if we have, you know, the Googles, the Microsofts, the Amazons, all contributing to the same project, we want to make sure that it stays vendor neutral and one of these companies, not even the three mentioned, could come in and potentially sue us saying, no, that's ours. We want to prevent that. We want to make sure that this is a safe space for open source collaboration. So like I said, CLA is a code license agreement. This is usually done at the corporate level, the company level, whereas DCO is just you saying, I am a single person, here is my email address and I am okay with this commit being part of a project. Many projects, many of the larger projects have this idea of enhancement proposals. Kubernetes is one of them, for better or worse. I will just say that but Kubernetes and things like Python, this isn't just a CNCF thing, they have this idea of an enhancement proposal and what that is is if you are making a large change, I will use Kubernetes as an example. If you're making a change that goes across multiple different SIGs or code bases or focuses or it might impact a release, you need to write a rather large document that explains what the change is, why you're making the change, how you're testing the change, how the change will graduate from alpha to beta into stable, how you are going to test the change, if the change breaks, how can we back, get rid of it, revert it, they are rather in depth and then every single area that this code might impact has to get sign off from the people that own that code. Now, that can be really frustrating. I know, I have written several but when you look at Kubernetes, Kubernetes is in satellites, it's in fighter jets, it is in cars, we actually need a certain level of stability and this is currently the project's way to make sure that large changes don't necessarily cause problems, try and get them done as or catch them as early as possible. So, yeah. All of our projects, we require to have some form of governance and that can be as simple as we maintain a markdown file of our maintainers and if a maintainer changes, we update the markdown file. So, it can be that all the way to, again, picking on Kubernetes, there are full blown elections every year for the steering chair or the steering seats, they have a steering committee and that's how they do their governance. So, that's kind of, in general, if you look at all the patterns across CNCF, ways to not necessarily just join but also gotchas you might get, I know I have heard across different communities in different regions, some difficulties in how do I join a project, what project should I join? I will say, always try to stick with what you are strong in and also don't necessarily immediately try to work in Kubernetes. I think I say this again later but it seems like something worth repeating. A good example, if you're learning guitar, you're not gonna immediately start playing in Metallica, right? It's going to take time for you to develop your skills, develop how you interact with the community, also develop your technical skills, even if you think you are the greatest engineer in the room, you're going to find someone that is better and is going to critique your code and that's okay but being able to accept that critique and know, oh, this is something I should do in the future and learn from that, it's usually easier to do in the smaller projects where you can have a more intimate, more I guess community feel, whereas if you just start working in Kubernetes, it's kind of like trying to jog along a freeway, it can be very frustrating as some people know. So why should you contribute to open source? Why should you have your engineers contribute to open source? And also, how can you justify more of your time in open source? I came up with this story. This is not just a G-Fee made a silly story up, I have seen this directly happen twice. So I didn't come up with any witty, fun company names, I just, company A and company B. They both use an open source project. I'm not gonna name a specific project because I don't want to pick on Kubernetes anymore. Their business depends on the stability of this project, but they're not like reselling it at all, it's more a platform for their product. And we'll just say this project is Lama Pack. Unfortunately, Lama Pack recently released 1.7 and there is a major regression bug. If it gets too much traffic through its service, it unfortunately crashes the Kubernetes cluster. That's probably a bad thing, especially if company A and company B are doing anything to do with networking and they certainly are. They are also both unfortunately affected. So company A does not regularly contribute to Lama Pack. In fact, they do not have any in-house expertise aside from one person, maybe two people that manage their Kubernetes cluster and installed the Lama Pack Helm chart, shall we say. So they are unfortunately not really invested in a project that their company relies on. Company B actually has a maintainer within the company. They give them 50% of their time to focus on Lama Pack because that company recognizes we rely on Lama Pack. Lama Pack relies on Kubernetes. We should probably foster some sort of expertise in-house. We should also make sure that contributing to Lama Pack is something that we are, I guess, focused on and hey, we're giving back to the community. So what does company A do when they find out there's this major regression that their cluster crashes, there's a huge problem? Besides flailing and freaking out, we'll just say company A will probably go back to an earlier version of Lama Pack, assuming they can. Maybe this project doesn't really gracefully allow rollbacks or maybe they're going to have to spin up a whole new Kubernetes cluster, go and reinstall Lama Pack 1.6. whatever and then wait until there's a new patch. That could take weeks. We don't know Lama Pack's release cycle. We don't know this. I also didn't think about that in my little magical story. But the point is company A is completely on their own. They have to wait for this open source project or a company that they may be using for hosting to fix the problem. That's not bad, but that certainly means that you don't control your own fate and that is problematic in my opinion. So what does company B do? Well, they have a maintainer of the project. They can have that maintainer file an issue, an existing maintainer, unspoken thing that I will say out loud, an existing maintainer files an issue. Most other maintainers will read to that issue first. They will give that issue more weight. They will actually say, oh, this is a problem, we need to fix this. On top of that, you know what an existing maintainer can do? They can pretty easily take the raw source code, package it and then they could have their company run a fork until an official release comes out when that patch instantly dropped or when the code is patched but they haven't cut a release yet. So company B is in a pretty good place. They are fine. They may have some downtime. Everyone should expect some downtime. That's a disruption budget, but honestly, that they're gonna have a lot less downtime and they're also going to be up much faster. They are going to be able to have also a greater impact in the community as well. So like I said, benefits, if you were looking for reasons or ways to contribute or justification, it's actually de-risking your company's reliance on open source software. I am happy, fuzzy feeling guy. I like building communities. I like the technology, but I also recognize that businesses need to make money and justify spending money. So this is one of the biggest things that I think you can take back to companies and say, allowing me to contribute to open source, especially projects that we rely on, it makes sure that when we have problems, we can address them faster and get back up sooner. And also we are giving back to a large community because open source is a large community. On top of that, when you have maintainers in-house, you are also developing that in-house expertise and I'm not just talking about the open source project. I'm also talking about the programming language that the project happens to be in. I'm also talking about different build systems that the project may use. Like all of these ancillary third party systems around the project, your developers wind up getting to learn. And again, you're fostering community relations with that project. If company B files an issue, even if it's not necessarily from that maintainer, other maintainers within that project, no company B is actually contributing back. And so they're going to get their issues looked at sooner. Again, unspoken, quiet thing out loud, but it's still worth saying. On top of that, you are just up leveling engineering talent in general. By that I don't mean you're in-house engineers. I'm also talking about recruiting. If you were contributing to open source communities, it's a lot easier to find really talented people because the open source community tends to bounce around companies, but all the companies that actually do open source, not closed source. And lastly, kind of hard to quantify, but tangible marketing benefits. Company B can run around saying, we helped fix this bug. We contribute open source. And all they have to do is have an engineer work with an open source and they get larger marketing benefits and they get fuzzy, warm feelings that they can kind of shove in other people's faces. And everyone really likes that. I think everyone that wants to say that they make the world better, that's a pretty good line to put in marketing material. We help build open source projects. So what's interesting is if you look at Japan, Japan really likes open source projects. Actually, yeah, this is starting 2020 and looking at, this is public GitHub data and this is not just the CNCF. Like this is me with my open source contributor hat on not CNCF shill. You can see that open source in Japan is just continually growing. And not only that, it is projected to grow even further. I think it's super hard to read. Right now in 2023, Japan is ninth and come 2028, you are projected to be sixth. That's crazy. And this is like global data public but global data for all of GitHub's public commits. Like open source in Japan is crazy. And I think unofficially, but it was like projected to go even higher in 2029. But I mean, this is looking at previous data, who knows? But still, the hard fact is year over year, Japan is contributing to open source 33% more year over year. So back to where can you start? One project that the CNCF has built is this kind of search portal called cloattributor.dev. Each project has GitHub issues and they can flag an issue as a good first issue. This is something where if you have some technical expertise or if you were good at writing docs, pretty entry level issues that you can work on. You can also visit this website, put in something like Rust or Golang or search for different criteria to find something that you were not only interested in but also pretty strong at. But that's kind of basic. Where I would suggest most people go is look at the glossary. The glossary is a set of terms that if you are not within the cloud native community, it can be rather frustrating to navigate. Also, there might be translation help that needs to happen. So if you happen to be bilingual, that is super helpful. But I already know that there is quite a lot of work being done just to translate from Japanese to English. But I'm also talking about other languages because again, I'm not just focused on a single community or region. I want to see this get as global as possible. Like I mentioned, maybe don't start in Kubernetes. Look at some of our smaller projects. It will be a lot easier to enter into the community, become a contributor and even become a maintainer if you look at the Sandbox projects. And incubating as well, but incubating is kind of, some can be very difficult, some can be very easy. Sandbox tend to be smaller projects that are also easier to run at home, run on your laptop and develop with and maintain. Lastly, another link to local meetup. Local meetups, again, are not just a way to share knowledge about what I did at work. It is also a way for contributors to meet other contributors or contributors and maintainers to meet other people that happen to be interested in contributing and have a very good idea of, oh, well, I read this issue last week about this network thing and you said that you're really into networking, let's look at this together and you might be able to make someone's day and make them a contributor. Lastly, I was never a Boy Scout, but Boy Scouts have this idea of, you know, leave the world better than when you found it and that is open source in a nutshell. It really is trying to make everything in everyone a better place, just by kind of being yourself and doing things that you're interested and passionate about. And the last two slides have had a video game series template because that video game series has a thing called social links and really open source is all about building communities and friendships and so I felt like it was kind of relevant and on the nose, so that's pretty much it. Thank you, I don't know how much time I have for questions, but if there are questions I'm happy to answer them, if not, happy to reach out to me. Questions.  Are there any requirements for the projects to become a sandbox or incubator, you know, add it as an incubator? Sandbox, no. When a project applies to become a sandbox project, the thing you have to know is this is the, oh, so the question was are there requirements to become a sandbox or incubating project? Not really, but the process has some very specific things that projects should be aware about. You are donating a project, once you go through the application process and it's accepted, that project become the IP, the trademarks and all of that become Linux Foundation and CNCF. So you need to understand that if, say you're a startup and you're like, this is a really cool project and I wanna make it a CNCF project, that's no longer that company's project, that is that you are giving that to a foundation and the community, so making sure that they're aware of that is good. Otherwise, make sure that it's in like the cloud native space. If you're developing a terminal, maybe don't donate it or have it apply to the CNCF, but no, there aren't really any other requirements. The biggest thing is to eventually become a CNCF project, you need to have the things like governance, code of conduct and the other things that I mentioned, but like required language, no, nothing like that. Any other questions? We have an example of company A and company B. So in case of company B, they are using any open source in their project and what if the expert at company B don't know the solution in the new updates? So is there any chance or any team in the open source project who can help in the company B or that company and that open source project team might work together to solve. So is there any platform or something like that? So you're asking, say the maintainer and company B doesn't understand the problem that, in that example, I'm actually assuming company, the maintainer might not know the answer, but part of the benefit of having a maintainer even if they may not know the answer is when you file an issue, you might also know one of the other maintainers that does know the answer. So they can kind of reach out via Slack and go, I've noticed that our Kubernetes cluster is crashing because of this thing. Do you have any other info on that? So part of the benefit of having that maintainer is also their kind of social network and their ability to reach out to people directly. Cause if someone from company A just reaches out in a Slack channel, depending on the size of the project, that Slack channel might get missed or ignored, unfortunately. Whereas if someone that is a maintainer shows up and asks a question, they also know where to ask that question. They know who to potentially add. And also they might know who to assign the issue to in GitHub. There's all of that insider knowledge. It's super helpful when you have a maintainer and you have something that is causing an issue. So it's like, when... Yeah, having insider info on how to debug the issue, how to phrase the issue. If there's an issue template, they don't have to navigate it. They just know how to fill it out. There are very tangible benefits to I have run into a problem in my company and it is because of this open source project. I should probably ping person A, who is a maintainer. So it's like win-win kind of intuition. Yeah. Thanks. One minute left, I think we'll call it there. Thank you all. If you need or want to reach out to me, my name is Jeefy, J-E-E-F-Y. Pretty much everywhere on the internet. LinkedIn, Twitter, happy to chat. Like I love this stuff. This is kind of my passion. So I'm kind of happy to be here. So thank you all.


This video explains how you can get set up with a GPU based server on Amazon web services. The server is already for you to start running deep learning models and we will be using it in the Data Institute Deep Learning Certificate. In order to use AWS of course you will need to sign up if you haven't already. You can go to aws.amazon.com and click on create an AWS account. And then just fill in the information as it's requested from you. Once you've done that you will find yourself on a page that looks something like this. This is your Amazon web services console. Unfortunately, AWS does not allow you to create GPU based servers without requesting special access. So the next thing you'll need to do is to go to this address aws.amazon.com. Contact us, EC2 request and ask for a service limit increase. For region choose US West Oregon. And for instance type choose G2 2x large and say that I want a new limit value of 1 because by default you get 0. And then in the use case description you can explain what you're using this for. Choose your contact method and press submit and they should get back to you within 24 hours. If you've had an AWS account for a while and have been paying your bills you should find that you can skip this step because you already have access. Once you have access through AWS we can get our instance up and running. Everything that we do will be done through the console. And specifically we'll be using the AWS command line interface which is a Python based interface. For all kinds of reasons I very strongly suggest that you use the Python distribution called Anaconda regardless of whether you're on Windows or Mac or Linux. In our course I'm going to be assuming that you have Anaconda installed and specifically that you have it installed under your user account. I don't suggest trying to change the root Python or the main Python if you have one as a Mac or a Linux user. Installing Anaconda is very simple. You just follow the instructions for each of the different operating systems and choose the Python 2.7 version and the 64-bit installer. Once you've got that set up the only other thing you need to do if you're using Windows is to make sure that you have a bash shell installed. Specifically I suggest that you use Sigwin. The reason that you need to do this is that some of the scripts we will be using are written in bash rather than PowerShell which is the default in Windows. So you'll need to install this. Installing it is very simple. You just go to the Sigwin homepage, click on set up x8664 and it will pop up a screen that looks like this. I suggest you change category to four and just make sure that you have WGet selected. So if you go to WGet and just make sure that it doesn't say skip or uninstall. Once you've done that you can click next and finish off that wizard and that will install Sigwin. Once you've done that you can easily run Sigwin by just typing Sigwin in your start menu. If you have Mac or Linux you'll already of course have a terminal with bash installed so you can just go straight to there now. So here we are at our console. We're running bash. And in order to install the AWS command line tools you simply type pip install AWS CLI. In my case you can see it's already installed so it's ready to use. The AWS command line interface creates a program called AWS. And in order to use AWS you first of all need to configure it with your security keys. So the next thing we're going to do is to set up our security keys. So go to the AWS console. You can always get there by simply typing console.aws.amazon.com And specifically we're going to need to create a user for ourselves. We do this in this section called identity and access management. And here we are in the IAM identity and access management section where we can create a user for ourselves. So we say create new user. We enter the name of the user we want to create. Leave this tick to generate an access key for each user. And say create. And very importantly now say show user security credentials. And copy and paste this somewhere safe because you're going to need them and you won't be able to get them again later. We can now close that. And that's created our new user. We now need to make this user an administrator. So I click on the user. And I choose permissions. And I say administrator access, which is the first one here. And I say attach policy. Okay, we have now made this user an administrator. And we're ready to go ahead and use this user to create our GPU server. In order to do that we first of all configure AWS by typing AWS configure. As you can see it asks us for access key ID. And here it is. This is the thing that we just selected. So paste that into access key ID and press enter. And then secret access key. Copy and paste that whole line as well. And press enter. For default region name choose us-west-2. And for default output format choose text. AWS is now configured. And we only have one more step left to go. We need to use a script that we have set up for you that will create and set up your new deep learning server. So let's go and get that script. We can get it from here. www.platform.ai.slash files. And it's called set up p2.sh. The p2 instances are the brand new type of AWS instances which are particularly good for deep learning. So we can use wget to download that. By typing wget and pasting the path. There it is. And you'll see that we now have that script. Let's now go ahead and use that script to create our deep learning server. So we just type bash, set up p2.sh, hit enter. And then we have to wait a minute or so as it runs through all of the configuration steps asking Amazon Web Services to create each piece of this puzzle. It's going to set up a virtual network for us. It is going to set up a security key for us. It is going to set up an IP address for us. And then it's going to connect all that up to our requested server. AWS calls it an instance. So you can see it's setting up the instance now and waiting for it to start. The permission denied error I'm getting on my AWS key there is simply because I have run this script before. So it's going to regenerate a security, an SSH key when I already have one. So if you get that error message, don't worry, it just means that you've run this script once before. So the script has finished running and you can see it's created a number of things and let us know the details to each of them as well. I strongly suggest that you copy and paste these somewhere convenient. It'll be useful to use them again later. But most importantly, let's try now connecting to our new server. So I'm going to copy the connect line here, paste it into our console, type yes to say we are happy with the authenticity of the host, and we are in. Now that we've logged in, we can check that the GPU is working correctly by typing NVIDIA-SMI. This is a handy utility which just checks exactly what's going on. It shows us that indeed the NVIDIA driver is running successfully. It has found the graphics card, shows us how much GPU memory we're using and whether anything is currently using that GPU. So that's all looking pretty good. The only other thing that I suggest you do is I made a slight mistake when I first set up this AMI which is I had a file left over which I should have deleted. So I suggest you delete it by typing sudo rm.bash underscore history and the reason for that is that otherwise it won't save your history which will be pretty inconvenient. So the last thing I'm going to do is just make sure that we can actually run a notebook successfully. So we'll type Jupyter notebook and now the notebook is up and running. You can see that it is running at port 8888. So let's test it. And we were told the URL of our instance earlier on and hopefully you copied it like I suggested. So now copy that URL, go to your web browser and go to that URL and then colon 8888 since that's where we've got our notebook running. As you can see it's password protected and the default password that I've put in is dl underscore course. So type dl underscore course and log in. Let's go to the notebooks directory nbs and let's create a notebook just to make sure it all works okay. New Python, condo root. Let's try doing a simple calculation. I believe that is accurate. Let's try importing theano which is the underlying library we're using for accessing the GPU. Great, that's working well. And then secondly let's make sure we can use keras which is a wrapper on top of theano that we'll be using throughout the course. That's working well as well. Okay, well it looks like everything is set up correctly and you're ready to start using it. When you're done don't forget to shut down your instance so that you don't get charged for it. You can do that by going back to your AWS console choosing the instance that you want to shut down and choose instance state stop.


So wizard the wizard Scott and I met two awesome smart people at the previous PAX Australia first PAX Australia. Yes, we went to it. We were walking around and we were like, we got to find some smart people to play a game with. We saw two people and they were looking for a game. So like, hey, you want to play a game? And one thing led to another. Played Hanavi. We played Hanavi, which is smart person detector alpha. Yep. And they were smart. Yep. The smart person detector went bing bing bing. Yep. It's almost like a dowsing rod, but it works. So I have to give props to them because Jess and Bane, these two people who were smart and we hung out with them. I hung out with them again at the next PAX Aus cause like we do, we form PAX specific posses in every region of the world where there's a PAX and they brought out a game. And as is the Rimm and Scott style, I did what we always do. Really? I've never heard of this game and you want me to play it? Watch how enthused I am. Watch me try to avoid learning this game cause I actually just want to play this game that I brought and I played wizard and it was great. Wizard. So wizard is actually a mad old game. It's published in 1984. It is two years younger than us. Yep. It was all it all it received a nomination for the 2011 Netherlands spell in freeze, which I guess is the Netherlands game. Netherlander dust field is yours. Right. Basically in 2011. So it took that long for the end to be recognized. It wasn't even published commercially until like 1986. Right. And then we only discovered it in 2014. Yeah. So this game is like a game that I guess has just been sitting in the dark and suddenly popped out of nowhere. It's designed by a guy named Ken Fisher. Yeah. Who I never heard of, but I'm going to look him up. All right. In his board game geek picture, he has a hood on that has a gold lining. I think wizard is the only thing that he makes. It's wizard cards dot com. Well, you know what, guys, if you've only ever made one game, you're batting a thousand. Oh, no. He's made Isaac Asimov super quiz one, two and three. Okay. I think your batting average is dropping. Or maybe this is just his part of his wish. I don't know. All right. All right. We'll do less. Wizards is the only thing we care about. Sorry, Ken Fisher. Wizard is interesting because he actually has the username wizard on board game geek. Wow. Yeah. So remember our review of Penn Dante, Penn Dante is like the if poker were designed today to be fun. It's Penn Dante. It's like they take poker and you soup it up with some, you know, Euro game, you know, skills and some modern rules to it like it's a modern game and all that put some theme on there. Yeah. And you know what? Penn Dante gives you 90% of the fun of actual poker without any of the tedium of actual poker. Right. So wizard is well Penn Dante is to poker as wizard is to whist. Yeah. Slash heart slash huker slash every trick trick taking games wizard is just a Trump food suit following trick taking game. Now most people who are in the board game nerd community who are looking to play a trick taking game goes straight to teach you.  Well, it depends because bridges for old people. I so I grew up in the Midwest where everyone plays trick taking games everyone. Everyone knows those kinds of games. You grow up playing yuker and whist and hearts and pinocchio and all these kinds of game up.  Hearts is the best.  I will play hearts almost any time. Hearts is great. Yes, but much like how we when we taught Penn Dante especially when I tried to teach Penn Dante to a bunch of our friends I learned that a lot of our friends had never played poker like they didn't know what a flush was. So they knew what she was. They were extra surprised by a flush. Yeah, and this was the same deal. It was interesting to read the rules to trick taking because I had never in my life thought about the rules to teach him this game. I would say look we all you have to do in this game is trick taking. It's trick taking Trump Trump is the top card that gets revealed from the deck after we deal the cards. Well here you know what what I'll do right now for you guys. I'm going to teach you the entire game the way I would teach it to Scott. All right. So but I already know how to play. Exactly. But this is for the listener. So this is basically just a trick taking game. But the way you're going to do it is you bid how many tricks you're going to take and then you play a hand of one then you bid how many tricks you're going to take and you play a hand of two then a hand of three. So obviously in the hand of one I would only bid one or zero because it would be impossible for me to take two tricks. Yep. Dealer dealer allowed to bid to even though there's only one to take. Well yes.  So if I bid one I get one I get three points. So you want to take more tricks and bid correctly but if bidding correctly is more important because if you're even one off from the correct bid you lose a point for every one you're off by. So if I bid eight and I take nine or seven I lose a point. But if I bid one and take one and you bid five and take five you're doing way better than exactly that way you can't just be like zero zero always taking zero ducking under even if you always take zero you're going to play a trump card at some point because you're going to have one in your hand and you're going to take one maybe maybe not you're going to be off.  So that's the game with one trick to it. All three tricks three tricks. Yeah. I was just going to say there are super Trump weird cards. Oh OK. Yeah. There's only four of each type. There are gestures and there are wizards. I didn't I don't know any gestures. So the problem is the game is in German. At least the copy of it that we got so it's Zauberers and Nars Z's and N's because that's not in any way visually confusing. Yeah because Z is just a sideways end. Yes. Well I mean six and nine upside down. So anyway so that's why you draw a line on one side of it. So you know a wizard is it is Trump and it is infinity. So it always wins the trick. What if two people play with our the same wizards are played whichever wizard was plays first wins the trick. So if I get the first play because I took the last trick and I play a wizard I get the next trick and everyone else can dump a card. Yeah. So if I if you lead a wizard and clear out a suit of whatever is no suit for that. So wouldn't I want to play my wizards later in the round because I mean I'm going to take a trick with the wizard anyway. Possibly. So if I play it later in the round I basically preventing people from dumping suit early in the you don't want to be in a situation where you don't have the lead anymore. So and then the last three people all lead wizard and then your fourth wizard is just fucked. That could happen or you might accidentally take a trick in the mid and now you don't want to take a trick with that wizard. And then the gestures they are negative infinity and are not Trump. No. What if no suits. So obviously even if two people play NAR one of the other players is going to take the trick but what if all players play NAR whoever led that NAR gets fucked. Oh no. I've never seen it happen. I doubt that whatever happens. I'm going to yell and scream. NAR be beautiful. Well so it says here on board game you can play with three to six players but there's only four. It can only happen with only happen with four or fewer players. I think the game is best with four players like all trick taking games are. Yeah. If you play with five or six. I mean obviously it's still really all wizard or all NAR situation can't happen. Yes. But so if NAR is lead then the next player to play sets the suit for the trick. Okay. So that's pretty much the whole game. Now if you don't know if that doesn't mean anything to you the way trick taking games work fundamentally one you should go back and listen to our episode on hearts. Yeah. Everyone who is in the game has a hand of cards. Yes. Someone goes first. That person plays a card. Any of the cards cards have a suit and a value. So whatever suit was played is now the suit for that hand trick. So the next person now has to play one card from their hand. If they have a card matching the suit of the already played card they must follow suit. That's why you ever heard the phrase follow suit. That's what that means. So if rim goes first and he plays a spade the car and I have a spade in my hand. I must play a spade. I may not play one of the other cards in my hand and people if I cheat people can figure it out easily and ruin me. Yep. Pointing out. So I had to play a spade if I don't have a spade I may play any of the other cards in my hand. Exactly. So one suit will be determined by some fashion in some games players can kind of decide through a process in this game and in many games it's just random and not all trick taking games have this but one suit will be determined to be Trump. That suit will Trump any other suits. So if I played the 10 and Scott played the four and someone else played the two of the suit that was the trick then I would get it. I have the highest number. Yep. But if anyone someone else plays a card from some other suit because they didn't have the appropriate suit in hand worth nothing they don't they don't get to take the trick because it's only you have to follow suit for your card to count as taking the trick but a two of Trump beats the highest number of non Trump right. So it's like if I want to take tricks a lot of them I want to have a lot of Trump cards in my hand and dump a suit. So let's say I get rid of all the spades in my hand but I have a bunch of Trump cards hearts of Trump then other people still have a ton of spades and they play them and on my turn I don't have to play a spade because I don't have one so I play my heart cards that are Trump and I get to take those tricks regardless of the value of my heart cards unless someone else someone else also ran out of spades and place heart cards that are higher value than mine right so because the hearts of the Trump if someone just starts the hand with the hearts well that's awesome sometimes but you have to follow suit you had to follow so if I so in it like a stand like in hearts well the hearts as an example so in Uker if I play Uker is not a good example because they have to explain fucking about whatever with so in West if I play the ace of Trump and I lead that and Scott only has a king of the Trump suit he's got to just throw it down and lose it and it doesn't do anything even though that it's an extremely powerful card yeah I was forced to play and lose it so the final rub in wizard is that you may play a gnar or a Zauberer regardless of following suit at any time you can always play one yep so even if I can follow suit I can wizard or gnar instead so like if I want to really if I am gonna know if I was in a situation like rim just said we have a really powerful card but I'm gonna be forced to lose it I can just gnar or wizard instead and keep that powerful card in my hand and then play it later and get the value from it yep so the game is great you can play it with a normal deck of cards as long as you have eight cards beyond the deck of cards that can be labeled czar and and on czar Zauberer and gnar so usually if you buy a deck of playing cards at the drug store it's gonna have like two learn to play cards and two jokers you might need to like get two decks of cards of the same back and like take the aces and doodle on them and write Zauberer and then take some deuces and write gnar on them or something do something like that or you can just buy there's a lot of people that make pre-made decks the one we bought has the the official one has the best worst arts ever so the artist is friends vo Winkle and the art is simultaneously good and bad I mean it's not the worst art I've seen it's not sentinels the multiverse are just like a child drew it sorry whoever did that but yeah it's bad the art special and if you play with this deck your players will comment on the art yeah it's not worthy which I think is actually a positive right it doesn't really matter for the game you know a lot this is the way it does for like a collectible or you know living god I just realized what it says on the back game contents 60 character cards one score pad of truth one set of instructions I love how it's not even branded as a card game it's a the character cards yep it has this whole story and the story in the game is amazingly succinct what's the story the story is we unearthed Stonehenge and found the game that wizards used to play back when wizards existed nice here are the rules dude it sounds true to me I believe it so if you have never played a trick-taking game ever get this game and play it says on board game geek that wizard originated from oh hell or also known as up and down the river which are played with a standard deck of 52 cards with a proprietary 60 card deck comprising a standard deck plus four wizards and four gestures in the first hand one card and so on so apparently there was another trick-taking game called oh hell also known as up and down the river which was the game that came before wizard but did not have the wizards and gnar's in it yep but then you're getting close to whist or gops or all those other kinds of games yep but uh seriously if you've never played a trick-taking game you get wizard somehow and this is the best way to learn trick-taking games to learn to get good at them and then like it'll be really easy to play hearts and you could all these other kinds I think you should just play hearts first on your Windows PC so it's tricky because or yahoo games what's interesting and then you'll be able to play wizard very easily has the hearts teaches you desuding and ducking and all those kinds of strategies very important things to know for what hearts has no trump and hearts has the card pass well hearts are trump and hearts well they're not trump sort of right there like reverse Trump like you know they're not they are no they're not they don't count extra for taking a suit but they're the in Trump only means it lets you take a trick that you wouldn't otherwise take sure but they're the special suit in that you don't Trump trying to not a special suit they're the point suit don't fuck with me on trick-taking games in Michigan yes you've been a pedantic nonsense if you call that Trump among anyone who plays these games they would laugh you out of the room you'll still be able to easily understand the concepts of wizard after playing hearts got other in America other than one teaching game I'm fucking undefeated at wizards don't you even don't you even so but yeah hearts and Euker are the two like Arctic typical games I'd say whisk but no one fucking actually plays with well people did no yeah no one plays with and also Euker is basically just like whisked with a tiny deck so it's kind of it's almost like Euker is almost to whisk what Penn Dante is to poker as well in a sense as a bridge yeah I hate bridge but to articulate why bridge is a big deal though I know it is I respect bridge but I don't like playing bridge but so let's talk about wizard in because just play it but strategy wise oh strategy wise alright this is a good game with a very high skill cap right so I think might the thing is you go this with people with noobs is like beating babies to death like it's just right so you look at your opening your look at your hand you say how many tricks can I possibly take with this hand and the thing is well you could you might have a hand it's got like wizard okay I got a bet at least one I got a wizard yep then I got like two high trump cards well I should probably got I saw a game in the first round two wizards were in people's hands yep so shit happens exactly so let's say it's the hand of five you've got a wizard two high trumps and two man cards are those Mac cards the same suit maybe yeah why not if they're the same suit I'm definitely bidding fucking for how are you gonna get for because I'm gonna control with the wizard lead my other stuff the odds of other Trump being out in the five hand probably pretty low you think you're basically counting that one of those Mac cards will be able to take a trick because I'll be leading it toward the end and because they're meh if I if someone else fucks me somehow takes control I'll probably be able to use those Trump to get control back pretty easily because the odds of the highest Trump being in the game are pretty low and two because I'm desuited there's a decent chance I can use one of those Trump to get back in right away yeah I would just bet three because even if I am able to take one of the tricks with one of those Mac cards right I'm know that other people all have five cards in the hands someone's gonna fuck me when I play one of my high Trump so the wizard or some shit yeah so I basically can't those two those you know the advantage I can do if I try to take the tricks versus the someone's gonna fuck me cancel out so I go well I go three here's the real thing my heuristic there which was similar to yours is just based on your hand which is how like in the hearts your hand is the only real core direction you don't get to see anyone else's hand that's all you got to go there's no bidding but in wizard players openly bid on how many tricks are gonna take in turn order yes so depending on who bids first and what they bid it's the hand of five the first player let's say rim goes he has the hand we just discussed if I'm bidding first three all right so he going first he bids three if he's correct that means among the three other players only two people should take tricks me know I'm sitting to the left a rim I look at my hand it's ridiculous luck day I have two wizards so but all the other cards in my hand like twos but you know that I'm really confident because I bid three not knowing anyone else is right so but I'm bidding to I got two was alright so the other two people either know they're not taking shit are dumb and right so now it's around a five and five people have already bid with two two people of bid on all five tricks the other guys holding like a really high trump card he bids one and the other person's got some high trump cards to they've been one or two now this is where the game gets interesting or people have been a total of like seven or eight tricks out of only five available tricks yeah someone's wrong and and funny sometimes will go way under like I saw a game a couple of games were like in one hand the bids will be like one one zero and then the fourth person's like seven yeah they got a really bad hand but everyone else bid way low and the other thing is sometimes you'll under bid right by accident well that was really it so when your example the guy with that high Trump maybe he gets scared away from bidding because he knows like alright these guys got fucking wizards or whatever right so he bids zero so now my shithand is more likely to win because he's doing everything he can to not take any tricks so let's say I'm in a situation I got like I got a high card of every suit and a wizard so I've got I think I'm going to take five tricks but I'm pretty sure one of these is going to get fucked over it's a 10 and not a 13 what in green or something so I'm like yeah someone's going to probably take an 11 or 12 green and I won't get that one so I'll go under by one I'll bid four then as we play all the I'm forced to play those high suit cards by following suit and I end up taking my four tricks and I still have my wizard in my hand so the other thing is when the bidding ends usually you'll see like a lot like amongst people who are like really smart and good at trick taking games the bids are almost always within one or two of the actual number of tricks that I've never been off by more than one yeah I've been I was off by two or three or four or five in toward the end because if you're behind fucking just bid extra yeah if you're going to lose right then your only hope to catch up is to try to take more tricks there's nothing is like I'll play a hand then I'll bid three and I will take exactly three and say what a good job that was I got it exactly right but I didn't get it exactly right I could have taken four or five tricks I just didn't bet four or five so I chose during the round to not take tricks I could have taken because I bid too low so I even though I got the right number and got the you know points and didn't lose points I could have had more points because I made bidding was not aggressive enough so basically the game has the bidding aspects of bridge it has the Trump protection aspects of you Kerr and it has the ducking and desuiting tactics of hearts so it combines a lot of my favorite card it's pretty much everything there is about trick taking games all in one game so it comes with a bunch of variants plus wizards yeah but whatever there is one problem with the game as written the game does not give you a way to deal with reneg so in like in you Kerr if you fuck up and for like you don't follow suit and then later it's like oops I had a heart and I should have played it that doesn't ruin the game the rules basically like the rules deal with that there's a rule for if someone or an egg right so let's say like or if you're in the middle in the Midwest reneg because they just can't pronounce words right so let's say rim has a green card in his hand and I play green and he chooses to play some red card he forgets that he had in his hand then we find out later when he plays a green card I say rim why didn't you follow that green card on the previous two turns ago and I've played green yep fuck we've ruined the game no way to fix it there's no fix written into the rules now I at all I want I'm trying to come up with a rule that we as like our friend group is just going to agree upon as the rule for renegs just so that we don't have to deal with it because the fact that matter is I think the rules should be something along the lines of whoever takes that trick should take it according to the cards that were played yep but the person if you are caught basically you lose just lose chips yeah I'm trying to figure out because you screwed up I'm trying to figure out like a number of them right I think the number has to scale up as though as you get deeper in the game it has to be the penalty should become worse how about this you lose a number of chips equal to the number of cards that might be too much though but at the same time it also depends on like how significant was the mistake you made exactly it might not have mattered like oh you would have played it earlier and not taking the trick and the other card that you did play earlier would have not taken this trick exactly and also you fucked up everyone else's card counting that's all the counting cards very important so I'm not sure and if anyone has suggestions discussed in the forum because that's the only flaw with this game the other thing is that there's a variant I really want to try because one thing that hearts has that makes hearts shooting the shooting the moon no so in hearts in the first hand oh the passing pick three cards and pass them to the dude to your left and the dude to your right passes three to you so I know that I gave this motherfucker three spades so I know he's got a bunch of high spades and I don't have any spades it's going to be awesome he's right so we can you can easily add that to wizard as a variant rule no problem here's the question though do you bid before or after passing I think after by default do you but do you hardcore mode is before I mean we could you could choose the cards you're going to pass then bid then see the cards you're picking up because that you remember that you still getting information from the other people's bids yep you could also have something cool where like you're allowed you get your cards you're allowed to raise your bid but you can't lower it like something like that there's this game is right for custom thing is with passing cards people are going to dump suit like pretty much immediately yeah that's what happens in our Trump Trump cars become way more powerful yeah that you'll be able to take way more tricks if you have any trumps whatsoever and you know what much like with so do you reveal Trump before or after the bidding and passing much like order matters so much even then Scott much like with Dune everybody has that power that's correct and to but then luck becomes a big factor to in high level hearts play for example I would pass my dad to high clubs and a middling to low club but maybe I didn't de-suit myself of clubs yeah you got a low club and you're gonna get rid of that no problem you kept the low one no but I gave away a low one to imply that I had gotten rid of all my clubs and I'm probably some motherfucker who's gonna heart and or screen spade someone you held one middling club yeah that's still not gonna take a trick hopefully not so you get into like the card in high level hearts play the cards you pass themselves are a whole game of their own so it's like there's a whole process of seeing your cards choosing which cards to pass seeing the cars that were passed to you and seeing what Trump is and seeing the other players bids and you know so like when in that process the order that you do the things and when the people bid really changes the game a zillion yep so if you're you know if you're an aspiring game designer and you think those none of those things sound like a big deal they're such different games if you don't understand why the order of those things changes the game like 10,000% don't make any games and if you want to be good at this game when you first teach it to your friends one play a bunch of hearts online but two a basic heuristic that a lot of noobs use is guess how many tricks you think you're gonna take and go for one less than that because you're probably wrong yep you'll probably get wizarded or something it's like count the number of awesome trick taking cards in your hand that are powerful the high trumps and the wizards and whatever take that number subtract one and then try to take that many tricks and you'll probably beat most people who don't know what they're doing yeah and we're gonna play I mean we're gonna play a lot of games at PAX South but I think Wizards gonna be the like it's gonna be the default warm-up game or the default four of us are waiting for you guys to finish Eclipse before we do another thing game also at least our thing as came up at PAX losses anytime someone plays a wizard they basically sing that thing from Daffy duck behold the wizard incredible power that that you're pretty much obligated to say that out loud possibly loudly every time you play a wizard yep so link to that much like the posing in pendante this game is also right you know it's a good right any good board game any good tabletop game is gonna have a thing that people say y'all got a brick y'all got wood from my sheep that's right so the fact that this people are playing this game going wizard shows a good game this has been geek nights with rim and scott special thanks to dj pretzel for the opening music cat lee for web design and brand okay for the logos be sure to visit our website at front row crew dot com for show notes discussion news and more remember geek nights is not one but four different shows sci-tech Mondays gaming tuesdays anime comic wednesdays and indiscriminate thursdays geek nights is distributed under a creative comments distribution 3.0 license geek nights is recorded live with no studio and no audience but unlike those other late shows it's actually recorded at night