Thanks everybody. My name is Matt Clark, as you just learned, and I just learned that Notch is the name of the guy who wrote Minecraft. That's a different Notch, not me. I'm with a company called Notch 8, we're a consultancy up in Portland, Oregon. I also am partner of a code school down in San Diego called Learn, based on Ruby and JavaScript, like most of the code schools that you find across the country these days. So when we just put our first class together in January, they graduated in May, and when we were thinking about what our curriculum wanted it to be, we knew we wanted it to be Ruby. We were standing on the shoulders of the giants who've come before us, like Dev Bootcamp and Hackreactor and Ada and things like that. And then Ruby is what I know and what my partner down in San Diego knows. So of course we're going to do Ruby, but it got me to thinking about how I've always thought of Ruby as a craftsman's language. It's a really extensible language, flexible, you can open anything up and modify it. Are we going to be giving these students a Ferrari and ask them to go out and learn how to drive? And it really isn't the case. Ruby is a fantastic first language for programmers, and I'm going to go into the reasons why that is. So while I was thinking about this and putting this talk together, it reminded me of when my son was three, about 10 years ago, at a Pee Wee soccer game. It was an indoor, oh thanks, an indoor game. And they put bumpers around the basketball court and there's goals on each side. Has anybody ever seen a Pee Wee soccer game? They're really fun, you should check them out. And there's goals on each side and then all the kids who show up get to play. So there's 10, 12 kids, however many are out there. And they kind of throw the ball out there and blow the whistle and then the entire group of kids just kind of mobs around the ball and they all kind of move in this big mass to, they stay over on this side and they move in this big mass and once a while the ball squirts out and they all kind of race after it and every once in a while they actually score a goal. But they don't keep score anything. So this one time in the game, one of my son's teammates scored a goal and Mike was really excited about it. So we ran up and he wanted to give her a high five and she kind of looks at them and realizes what he wants to do. So they kind of set up for this high five and they get ready and they go for it and they completely miss, like just the total air ball of their hands go past each other. And so they kind of reset, remember they're three, they're this tall, they're determined that they're going to make this happen. So they reset and they go again and miss again. And so that's two times. So the third time they're going to make it happen. And so they stand next to each other and they kind of, they think about what they're doing and right at the same time they kind of, they grab each other's elbows and they guide each other's hands in for the high five. And by this time the parents are cheering as loud for the high five as they are for the goal that just got scored. And me included. And so it got me to thinking about, you know, high fives really are a craftsmanship skill that you can develop as well. There's a science to this. You have to get good at it. You have to practice. And you can take the craftsmanship analogy a little further. You have to pair when you're high fiving, right? Because high fiving with yourself is just clapping. So, and you can practice test driven high fiving too, like my son was doing.  So they use their critical thinking skills and, and, you know, kind of set up an easier test with the bracing on their elbows. So that got me to thinking that we need a high five boot camp. Stick with me. I'm going somewhere with this. And it could be really amazing. I'm thinking that like second and third graders is the right demographic that we can target for this. And we could do some amazing things, you know, in the four months, eight hours a day that we have to train these, these kids to do high fives. We could, you know, get trampolines and we could start to do aerobatic high fives and, and things like that. And, and we could even get, you know, borrow from the movies and get some wires and, and, you know, have some, those amazing kung fu sort of high fives. And my inspiration here was, of course, the matrix and thinking about that scene where they're flying at each other, shooting and how awesome would have been if they would have high fived when they realized they were out of bullets. But it changed the movie, but it definitely would have been an internet meme. So for my son and his teammate, the, getting back to the critical thinking, you know, the logic about, about what they were doing, they, they, they had to, they had to apply reasoning, right? They had a, they had a failing test if we think about it in, in, in a developer talk. And, and they, and they had to think, okay, why are our hands not connecting? And, and they, they, they made the assumption that it was their elbows. And so they tested that and they were correct. And I'm sure that if they had gone further, they would have, you know, got to the refactor stage of red, green or factor and they would have done a couple more and been able to do high fives without the brace. So, so Ruby, really the, the purpose of this talk is it really holds your elbow. It's kind of unique among the, the languages that people typically first start programming in. And I got to admit during lunch, because of Ryan's talk, I almost went back and rewrote my whole deck about the cool things that some of the other languages are doing to help teach people programming. But keep in mind, I'm really focusing on the, the three that, that I, I think people really tend to gravitate towards PHP, JavaScript, and Ruby. So, there's three types of logical thinking, three broad categories anyways. There's critical reasoning, evaluating, evaluating arguments, you know, trying to poke holes constructively, of course. Analytical reasoning, drawing conclusions based on facts and logical analysis, validating your facts and, and sussing out your assumptions and, and figuring out how to test those. And when we talk about critical thinking and critical reasoning in programming, we're, we're usually talking about the logical analysis piece. We're, we're trying to figure out what assumptions we made in our code and, and you know, are they true or not? So, that's the, the how and the why of programming. How is the semantics, right? It's the, the, the, the language that you're writing, the programmer happiness, why we love Ruby. And the why is the, the, you know, being thinking about why we're doing things, why things are where they are and, and such. The how is pretty easy, right?  Boom, done. You're, you're thinking about the end result. When you're, when you're programming in a how-and-tell, you're thinking about how do I get this thing to work as quick as possible, cut and paste. There's tougher examples. This is small on purpose, but if you can read it, it's PHP and it's setting up a database connection and pulling out some variables and then spitting them out onto a, a web page, I'm assuming. I love the, the top of that. You put your username and password of your database right up there on the website, on the web page. It's awesome. But how doesn't a programmer make clearly? I mean, we need to, we need to, especially, you know, coming up in, in the sort of applications that we're writing now. You need to apply critical thinking to these skills or, or you're going to, once you get on an untrivial apps, you're going to really have, have a hard time. So the why is what we do now, why we do it here and, and why we do it like that. So here's my code. My, my, my talk is light on code. I apologize for that. But hopefully you'll get something out of it and appreciate what junior programmers are, are going through and, and how to better help them along their way. The first why in Ruby, really, when we're teaching Ruby comes on the first day when we write our first spec. So you can see my spec kind of in the middle there. I want to make sure that a default high five gets set with an exuberance of medium. Right. So I run my spec and of course it, well, I've got until I did my defined method up top, it wouldn't have passed. But, and when it didn't pass, I would have asked why, and I would have written my method and pass it. So yeah. So what did I do? I wrote my expectation. It failed because I didn't have that method defined. And so I had to think about what, what I need to do next, why that was failing. And I fixed the problem. This is, this is clearly a muscle memory for anybody who's been programming for a year or two. You guys just, we all get used to this. Just, it's how we write our code. But this is a, this is a brand new concept to people who are just coming into programming and that maybe they've had some experience in the past with, you know, being a how program. I just want to get to the end result as quick as I can. And they haven't thought a lot about breaking their project down into logical components and, and, and testing it and, and being really critical, you know, thinking critically about what they're doing. So our habits define us that at Notch 8 we work with quite a few junior programmers. We, I really value bringing them in and investing in people. I think it builds the kind of culture that, that we have. And it's a big part of it. And it's, it's part of our success.  And so most of what I do on a day to day basis is walk around from a pair, you know, from pair to pair to pair, kind of asking what they're working on, trying to figure out if I can help them get unstuck, you know, keeping everything on the right track. And one of the tell-tale signs that the things that have gone, gone south is if someone's, you know, filling out a form and submitting a browser and checking their stack trace to figure out what they need to do next, that's kind of the wrong kind of critical thinking you do about your program, right? You're just, you're focused so much on getting to the end, you don't bother stopping to break things down and write tests. You just want the form to get you to a success state or whatever the case is. And so you, at that point, you know, if they're, they took their, they followed their stack trace off into some other direction that, that wasn't the real problem that they were trying to solve, you know, we'll stop and take, take a step back and we'll look at, at what are the components of the, the problem you're trying to deal with.  Do you have your controller routed right or whatever the case is? And so we do, we try and get back to that question of why try and get back to critically think about a piece of our code. One of the, it just doesn't decide one of the challenges that I have, or I've set for myself this year as a goal is to figure out ways to reduce that, to kind of lessen that, that, that curve of building up that muscle memory. And it's an interesting challenge as, as someone who does quite a bit of mentoring. So I hear a lot, or I used to hear, I don't hear as much anymore. Maybe, maybe there's people out there who still think this, that new, that they're, they kind of are sad when they get new programmers who just come in straight from, from, you know, learning programming into Rails that they don't know enough SQL. Because after all, SQL drives are, are web backed, or sorry, are database backed web applications, right? You have to know SQL as soon as active record stops doing what you want it to do without a little bit, without SQL knowledge, you're going to be in a lot of trouble and I hear that and I agree with that. But I think that for junior programmers and for people just learning that, that that's getting lost in the, how that's getting lost in, in the mechanics of, of accessing your data. And one of the great things about using Rails and Ruby and a boot camp is that we can, we can get past the, the minutia of working with SQL pretty fast and get into the, the larger concepts. We do spend about a week on it because, like I said, it's important to know that there's SQL down there doing, doing the, the dirty work and getting, infetching your data. But, but it's more important I think that, that new students learn the concepts behind how objects relate to each other at the model there. And so I really appreciate Ruby's ability to kind of abstract that away and, and it allows, I still think it's important that, that all programmers get proficient in SQL, but it, it allows us to, to defer that cost where they can do that on their own or, you know, learning how it's really just, or sorry, learning SQL is just learning, is just memorizing how SQL works. So DHH talked a little bit, I think last year or year ago about how we're software writers, we're not computer scientists or programmers or engineers and things like that. And, and I think that's really critical, especially for new programmers when they're, they're thinking about what their code, why they're writing their code. There's, it's more important to write readable code, right, for, for your coworkers and for the people to come after you. And sure our, our computers are going to be reading our code as well, but, but that kind of comes second to being able to, to describe what you're, what you're doing in your code so that others are able to understand you. And speaking of DHH, you've all heard the look at all the things I'm not doing. Well, this is the, the next thing that he said and it doesn't get the, the sound bites as much as the, the first one does. But I, but I think it's really important for people just learning to use the Rails framework that they don't have to worry about all the required statements in the, and where code is belongs in. It's kind of like a minesweeper. I saw somebody earlier playing there, sitting in front of me. And remember that game where you get a board and it's all kind of grayed out and you don't know, you don't have any context of what's going on. You start clicking the, the boxes and then the, that shows you how many mines are next to you. And so you kind of gradually expand till you can see the whole board. Well, that's a lot like what learning out of program is, right?  And it helps in, so it, you know, it helps people keep focused on, on a, on a chunk that they can understand. So constraints are, are the other, the flip side of this coin, right? It's why we don't have to write all those required statements and why our router works the way it does. And it can kind of become a crutch for, for new developers. But I think it's a good crutch for that same reason that I, I just talked about. It's, it's the, the way that they can get understanding of smaller components of their application without having to understand the broader why. Of course, you know, we, you try and get as broad a depth of knowledge as you can as, as people work through the material. MBC is a big part of that and design patterns and I struggled with where these fit in my talk because they're kind of outside of the how and the why paradigm that I'm trying to build. But they're, they're again a crutch for understanding the why. They're, they're really depending on people who come before us who are smarter than us saying these patterns work to solve these problems. We have to be careful, of course, with, with new people because once they get a hammer and everything's a nail and design patterns can get abused. But even those situations are constructive for, for people because you can start to talk about, okay, why did you choose to use the composer pattern here? You know, would dependency injection have been a better choice or, or whatever the, the, whatever you're talking about is. And so those are opportunities for learning. Is anybody familiar with the theory of forms from Plato? It's nobody really? Okay. It's the idea that reality is really made up of two realms. There's the concrete realm that we live in, like this, this podium, for example, is a concrete example of a podium, but out there is a perfect idea of a podium. So when I was thinking about coming up here and giving this talk, not having seen the podium, and I had an idea in my mind what the podium would look like. And Plato argued that the, the abstract version, my perfect version is actually a more real version, because it's what I would talk about with, with you. It's, you know, it's, if I, when I'm, when I'm describing a podium to you, I would describe my perfect version, not the concrete one. And of course, there's levels of, of how close you can get to the perfect podium or in Plato's example that I see a lot is the perfect chair, like the, the chair on the right is a less perfect example of a chair than the one on the left, but they're still not as perfect as the one in his mind. So that brings us to Plato's MVC, or I'll try and say this, really try to give Wren Skogs MVC, he's the Xerox programmer who first wrote down the, the pattern. And again, a lot of people, I've heard say that Rails isn't an MVC. And I think they're wrong about that. I think that they're, they're kind of missing the point here that there's this perfect concept of an MVC. And then there's, there's concrete real world examples of it. And, and normally they'll argue that because our models, when they change, don't automatically update our views. We don't fit the pattern, but there's a lot of other great principles of MVC that, that Rails does do. And the model view thing is a restraint of HTTP, a little less so with sockets, but still. So we love Ruby because of the logic that it allows new programmers who are coming and they can get past the how, the minutiae of how to build things and they can start thinking about the why. The programmer happiness is, is, we all appreciate that. And I think new programmers do too. It's, it's really amazing to see someone who's only been exposed to, you know, very small parts of something like innumerable, be tasked with a challenge and, and say, well, I think I know how to do that, that, you know, this array, I need to go through all of them. I wonder if each would work and they try it and, and it works. And it's kind of one of these aha moments. They're really, really excited about that. So the, it's the, that's the, the, that's why Ruby, new Ruby programmers, I think kind of get up that curve faster because they found, they base their programming knowledge in concepts and larger, larger pictures. So Alan, when he was writing small talk and writing about small talk, the big idea is messaging. Object oriented programming really isn't about objects as much as it's about the messages that we send between them. And Ruby, of course, is, is very much a good example of that. So, and the example I like to use is Adder Accessor. Did anybody wonder why I did the defined method up there on that first example? So the answer is it's clear when you write out defined method like this that we're sending a message to our class and, and classes are objects after all, and they accept messages. So when we get to more interesting things like Adder Accessor, here's my spec for it that's failing. I want to set my exuberance level to Barney Stinson, who's the Neil Patrick Harris character of course. When we get there, Adder Accessor is doing the exact same thing as defined method is all we're doing is sending a message to our class. This wasn't clear to me when I learned Ruby for a long, long time. So the how part is learning to write software. The learning to write software correctly, I think is the piece that, that new Ruby developers get because of the ability to talk about the, thinking critically about our code and, and writing tests and things like that. Learning Ruby is also learning to be a craft person, which is just as important if not more important that, that students take that away. They're, they're really prepolyglots. Students are, they, they come like all the students that learn, we don't know what languages they'll actually fall in love with and want to, want to go off and do. We hope, we hope it'll be Ruby, but lots of other things will, will shape that decision. Their first job is their internships. They're just their own discovery. So Ruby is really useful as a language because we can talk about these concepts rather than the minutiae of putting parentheses around things or, or, you know, the kind of the, the how of programming. I asked, I was curious about, because, because our school is new and we're still graduating our first class, how many graduates from code schools actually go on to work in Ruby? And I asked Epicodes, their placement coordinator. Epicodes is a, is a fantastic code school up in Portland. And she told me that they, they talked to about 400 companies or so on working on setting up internships and, and placing candidates after they graduate. And of that 45 of those 400 are Ruby shops. Another 20 or so are they do some Ruby, whatever that means. That's about 15%. And she told me that roughly 50% or so find jobs and internships in the, in the Ruby shops, but that leaves the other 50% to go out and, and apply what they've learned in Ruby to, to other languages and, and, and challenges. So we really have to, to focus on, on building up good critical thinkers more than, than good Ruby programmers. So it's applicable to, to everybody. So why we do things is better than how we do things. There's more important. The, you know, the, the pairing TDD and, and writing readable code are all good examples of that. So the, that's a quote from Princess Bride, right, Wesley on the Jet Pirate Robert ship. My first job that I got programming was, was terrible. I didn't know it at the time, because I didn't have anything to check it against. And I didn't know a lot of programmers yet. So I didn't have anyone to ask, but I would go in in the morning with a mountain of tasks left over from the day before and, and unrealistic expectations on how long it would take me to get them done. And I kind of, I was, I was the only programmer at this company building brochure, where for hotels. And, and so I just kind of stood off on the corner and write code. And, and because I was very, very junior, the more code I wrote, the harder it was to complete the next task. And so the whole thing snowballed and, and I would have weekly or, or bi-weekly meetings with my boss and the owner of the company about whether or not I should be fired. And it's, it's true. And so, you know, eventually that kind of was the, the thing that made me realize, okay, this probably isn't the best place to work. But one of the, so one of the personal goals of mine, and the reasons why I'm so excited about learning the other boot camps is that, that, well, not all shops, I probably not very many anymore at all, like the one that I was in, but, but there's some really good shops out there. But some shops aren't as great a place as the work. And, and if we send developers out into those shops with an understanding of why we, we put these practices in place, the TDD and the, you know, and, and writing extensible readable code, then they'll have some idea, they'll have something to compare their experience, their, their current experience with them. And while they're, they're new programmers, they're not going to have a lot of sway, you know, eventually, if they stick with it, if it's a decent place, they'll, you know, they'll start to be able to apply some of the, some of the, the techniques to write good software. So, so boot camps should make happen. This is a bit of a soapbox part of my talk. Bobby McFerrin says, don't worry, be happy. The, I, I wonder, and I haven't heard this, but I wonder, I suspect that people are nervous about all of these junior developers who are entering the Ruby job market. And, and, you know, what's that going to do to the market? Is it going to, are they going to commoditize the market? Is business going to kind of zone in on these programmers who will work for, for much less than you and I will?  And there's going to be too many of us and, and, and you're not going to have a job, or you're going to have to fight harder for a job. And it's kind of intuitive, but the answer is no. It's clearly no, I think. The biggest reason is that it's a big pie world out there. The more, the more we eat out of the, the software pie, the bigger it gets. The, the more good software we write, we, we raise, we really raise customers or consumers' expectations on the quality of software that they want to interact with. So, as, if we're developing thoughtful, you know, logical developers in Ruby, as opposed to something else where they may enter a commoditized market like PHP, will be, will be continue to raise that bar because they'll eventually grow and develop into senior developers and be writing, you know, more thoughtful, more usable software. And that will, that will drive demand for that software, which will, which will drive more demand for you. So it's just an example of what Apple's done. And in the App Store, keeping quality high and, and ever rising Shopify is another great example of that. New Relic, there's a ton more out there. At Notch 8, we do a ton of work in the medical industry, which it's really easy to raise that bar of, of usable products. And so it's a lot of fun to like, you know, it's unbelievable how excited businesses get when they see the products that we're delivering in the medical space because they've never seen anything like it. I mean, it actually, it works and is usable. There's a lot more segments out like out there like that. Shopify is an interesting case in kind of a different context and that they've commoditized online retail, right? You don't need to be a programmer. You can go to Shopify and set up a store in a couple hours and, and you're selling. So do we, do we lament that, that we're not all out there building e-commerce sites because Shopify has kind of got that market? Well, no, the answer is no. There's, once the consumers have this great product like Shopify, they would just want more. They want better back office tools. And I know Shopify is busy working on that. And they've been working on integration tools like you can set up a Shopify store now in Facebook, which is actually a competitor to one of my clients. And so I, we're very keenly aware of, of Shopify kind of raising the bar because they do a great job at it. As long as they keep satisfying the needs of their consumers, they will never stop it a lot. Always grow. That's a pendulum, of course. Think about Internet Explorer in the 90s and early 2000s. We, it was kind of forced on most of the public and, and they just accepted it. They didn't have really any choice that they knew of. And, and so they dealt with the bugs and they dealt with the challenges that we had as, as developers writing websites that worked in IE. So we have to, I mean, we have to, it's actually kind of critical for us as developers to encourage more and more people into, into building Ruby and other communities that really value quality software. So more developers, bar moves higher, more demand, you get a raise. It's a good thing. I mean, if you're still worried about it, it's going to take years still to become as good at building software as you are. So I think you're safe. So that's it. That's about it for my talk. I, I talked about why Ruby is a great language to teach developers in because it gets them to the critical thinking part and the concept part of programming faster. And it's the community around them that kind of keeps them interested in building quality and, and the, and the techniques that that takes. So thanks a lot for your time. My name is Matt. I'm Wine Scout on Twitter.


What's going on everyone Sam here with Late in sports cards. We are ripping 22 tops triple threads baseball hobby 9 box case break number 36 random team style Here's a look again at your random results There you go Patrick As always you guys can find these on the website under the results tab as well as the link in chat It's good luck everybody. Let's do it. Me. Here's what I'm gonna do. I'm gonna go ahead and sort these Thanks Eric for becoming a member appreciate you buddy. Let's do it You got the Padres nice nice nice. I Like it Padres have a lot. I mean you got Abrams. You got Tatis stuff machado stuff You know if there's another big booklet pulled then Tatis and Machado are always possibilities of being on there Which is good too. So yeah, Padres are pretty solid in this. They're like a third top tier team when we do this Yeah, so yes, I forgot Soto's got stuff, so he's got his like the patch autos in this too So weird so weird seeing Soto as a Padre in this man. So weird. It's cool, but it's weird, you know Yeah, no, I pulled now that you said that I pulled two of them. So yeah, they are they are in this and they are live too, which is big So they're live and they are in this product which is pretty cool So hey, I know because you don't think off the top of your head like Soto as a Padre because it's still relatively recent So it's just it's just weird man. It's so weird But hey got a shot at it, which is good. So good luck Pull your Soto that'd be pretty cool. Redemption off rip here One Soto to 150 speaking of literally first in the back and Ken Griffey Jr. to 75 base base and base There's Bryce Harper That's 13 out of 18 Conn. It's 400 a box 400 a box and Going to Nick be with the raise. How about a wander Franco? Boom Let's go dude. What a way to start Wander Franco rookie card rookie autograph card gold parallel. There we go Congrats on that one there Nick. There you go, buddy Very solid we will take that white whale once once There you go Lauren going for that rainbow currently and Randy Johnson a 150 it is like Terrell Suggs in the Cardinals Jersey, man I don't like that. I don't like Terrell Suggs in the Cardinals Jersey. There's a wander base rookie. Let's do this Clayton Kershaw that's 12 out of 36 and White whale is gonna be of wow Show hey, oh, honey, dude, that's massive quite a show One color three color one color That is Massive right there. That is going to mark M Wow, man What a hit right there What a hit That's insane. We'll get that mag Pretty much right away. That is big time, dude big time No, come check this out. I think we just pulled the biggest hit of the night.  I think it's pretty fun. I'll take that for the card stand as well. Why would you want me to crease a redemption? I want to do that. I might have a book in it right there, too, dude Why would you want me to crease a redemption? Want to crease the redemption Lou Gehrig nice one there. That's onyx to 50 Roy Campanella the 259 There's Dylan Carlson 21 out of 75 for the Cardinals and that Chris Bryant to 49 are you talking about redeeming it? We don't typically do that Shelley. I would say just Google it like Google it or YouTube. It's probably your best deal It's pretty it's pretty self-explanatory gives you all the directions on the back. Um, I don't know Eric I don't know off the top of my head. We might get some more. Yeah, we got a booklet, dude geez man And a heck of a case dude Babe Ruth to 150 Trevor's story to 199 Juan Soto and Babe Ruth Kento Maeda 37 out of 75 Yadir Molina.  Oh my god. Oh My god, that's two one-of-ones for the angels Holy moly Mark M Grab the insurance, dude.  Thank you, sir.  I'm like speechless, dude That's unbelievable Yeah, that's pretty sick.  Do we have a booklet mag for that? We might have one Dude, that's that's incredible that is incredible right there. Oh My god, we'll get that we'll try to find a booklet mag for that because that is definitely I would say big enough That's that's insane, dude Dude, yeah, I'll show it again at the end At the end for you guys I don't know if we have any any left. I'll be honest dude. That's incredible. How about like How about that one spot the angel spot? Yeah, there you go See if you can get it into that and then I would say just late and stick or the every everyone on top Good beautiful I think that's worth it right there Babe Ruth the 299 Jose Ramirez the 125 Space base. We've got going to the Yankees Dave Winfield three of nine Nice one there Dude, it's unbelievable And Dustin Badroia For the Red Sox that is two of nine. No three of nine. That is silly right there That is absolutely that is just that is silly man Look at this. Look at the hits for the team, dude Dude mark Yeah, you gotta why please watch this man? Trey Turner to 125 Wanda Franco to 199 Like I got a straight-up email mark after this and be like you need to watch this Base say a Suzuki rookie. Yeah, I think this may have overtaken the best the best break of the night, dude That is Bryce Harper Ryan Howard Chase Utley for the Phillies right there congrats Philadelphia and Matt Chapman 24 out of 25 for the Blue Jays Yeah, I know the the FedEx signature like when what could be in here? Yeah Yeah, Sean's been here the entire time Yo, yes, he has actually Yachty to 99 Freddie Freeman to 59 Jackson satchel page Miguel Cabrera One out of 18 got going to Doug R and the Mariners to 199 She-Ride boom rookie on card auto Unfortunately, there is a little bit appealing on the bottom. We will send an empty box-and-wrapper with the The Mariners spot, so sorry about that Doug, but that was dude crazy craziness Yeah, Sean is still thawing out. He is Bertrick Clemente to 199. Trey Turner a 25 color match Torkelson rookie Nice one here going to the Mets 8 out of 27 Pete Alonso Derby defense Congrats Mets. There you go. Alex C and Boba Shet. Thanks. That's she appreciate you buddy for the Blue Jays Happy New Year. See you too, man Sean isn't moving up north. No, no way Sean would move up in a million years. Would I go up there for that? Yes, Mariners That was ridiculous Sean had had it. Oh, it's done. Get me home. I'll see break room. Yeah, true. It's always 80 and sunny You know it man Negative seven I was done Frank Thomas to 75 miggy to 259. There's base base base Got going to the Dodgers Max Muncie worth the weight three out of 18 baby Yeah, you are a baby.  I'm not only cold and Wonsoto that's going to the Nationals 14 out of 36 Three-year-old no reason for thicker Jack. I live in Florida I don't live there. And what are you three? ridiculous Hank Aaron to 259 Willie Mays to 299. I see why all those people are miserable Pace Torcal center Yes, we do Shelley we do go to the National there's a vertical Mente seven out of 27 game used for the Pirates Congrats and Luis Severino for the inks 48 out of 50 Nice seby got the inks. I'm still like in shock about these two minutes for one team. Dude. That's incredible man Sean John is being a baby Yeah, we have a booth we usually are in the breaker pavilion in the National You can have that cold That's not for your boy We're James Here at cold to 299 Chipper Jones to 150 base nice one here going to Texas We've got Corey Seeger 20 out of 27 Seeger stats whoo making us some merch for the National right now It says Hallie there we go and Kevin B. Gio 46 out of 48 I want a big gold late and change What are you three what are you three Vladimir Guerrero to 259 Lou Gehrig to 299 base base base We've got Matt Chapman almost perfect 10 out of 27 for the Blue Jays and Laz new by 30 out of 99 for the Cardinals, but we're gonna get in contact with you Tyler We're gonna get in contact with everybody on the card There is like a little like there's a typo on the card, so I don't know how Lane's gonna handle it That's gonna be out of my control, but yeah, we'll get we'll get in contact with you about how you guys want to handle that Shane boss the 125 you're right sg Buster Posey to 199 Wander rookie No, yeah, there's a wander redemption in here, too. Do you mind rob nagging that one too my bad? Got Hoseyle to bed to 36 and here you go. Congrats. Lauren CJ Abrams 18 out of 199 on card rookie auto There you go, buddy.  That is it Once the last group break spot of the night guys got one more Carlos Correa to 199 Johnny Bench to 259 base haven't seen him as a redemption. That's gonna go to the Yankees How about a Don Mattingly? cops triple threads autograph relic card nice one there for the inks and Tray Mancini That's gonna be 18 out of 36 Two boxes to go guys Again, sorry, we might finish this break a few minutes behind But I was just a little too much in shock from these two cards in front of me now It is late in sports cards comm hollow hollow. I'm gonna I'll drop you the What's it called really quick I'll drop you the not the link But what's a type in online link is in the bio to if you want to check that out? But here's the website. I'll pin it to you so I'm gonna go away Lived in Phoenix when you were younger. Yeah, Mike that it gets hot out there for sure man You got it appreciate you man Yeah, check it out. You could check it has a full description on it too You know how it works and everything what time it goes off that all that kind of good stuff Yachty to 299 Mariano Rivera to 125 base Got Otto Lopez pretty cool one there 19 out of 25 from the blue jays rookie patch auto That's Toronto, Jake W and Cody Belanger for the Dodgers Dwyer's Bregman to 299 Francisco Lindor to 150 base How talker it's gonna be one out of 27 first time star for the Astros and Brandon Marsh 65 out of 75 rookie Jersey auto going to the Angels Angels just gravy at this point dude like I'm gonna leave all man his auto triggers you Wyatt really still no wit Dustin That's crazy, dude. I wonder if he's The same print run is everything. I don't that's odd man Jared Kellnick to 199 Peter Lonzo to 99 base base base There's a hey Ryan Valade rookie Jersey auto for the Rockies Thank You Joe Joe took the last spots of the night. We're sold out on the night guys Thank You so much Alex Bregman one out of 27 show Joey Joey They order at most Hey, Bruce to 99 Vladdie to 299 CJ Abrams rookie. We've got Chris Bryant nice one there three of three going to the Rockies one color three color one color And the last of the break going to the Mariners. We've got a Jared Kellnick 55 out of 75 We'll do for the break y'all. Let's do a quick recap here Chris Bryant Rockies Alex Bregman Astros Kyle Tucker Astros Cody Ballinger Dodgers Trey Mancini Orioles Jose Altuve Astros Matt Chapman blue J's Kevin BGO blue J's Boba Shet blue J's Roberto Clemente Pirates Juan Soto Nationals Miguel Cabrera Tigers Triple Phillies Dustin Badroia Red Sox Chris Bryant Rockies Bryce Harper for the Phillies Clayton Kershaw Dodgers We had our autos now It's gonna be Jared Kellnick Mariners Ryan Valade Rockies Brandon Marsh angels auto Lopez blue J's Don Mattingly Yankees CJ Abrams Padres Lars New Park Cardinals Corey Seeger for the Rangers Louis Severino Yanks Max Muncie Dodgers Peter Lanzo Metz Matt Chapman blue J's Dave Winfield Yankees Kenta Maeda Twins Dylan Carlson for the Cardinals We had Wander Franco gold autograph card parallel Raise we had a 2199 Jayrod. It's going to the Mariners We had a trout one-of-one booklet laundry tag It's Shohei Otani white whale one-of-one for the Angels as well a heck of a break for the Angels men That will do it for the break. Yo, thanks again for the film my bed Next up we've got a Full case of triple threads


Okay, we are going to start in two minutes. Okay. Okay. Let's start. Good afternoon. Welcome. And thank you for coming. I'm pleased to introduce the engineer, Daniel Pope, who talks about PairGain Zero. Hi. I'm Dan. I am a reliability engineer by day. But for many years my hobby has been programming games. I remember my first computer was an Atari ST and I had ST basic and stuff and I immediately put that to one side because it came with loads of games. And so my interest in programming came from my love of games and I continued to program games in my spare time, particularly during two weeks of the year, which are Pi Week. So Pi Week is a week-long games programming contest where you are challenged to write a game from scratch in Python on a topic that is given to you at the moment the contest starts. So you have exactly one week to write a game and then you have to upload it. And I've taken part in Pi Week about ten times, but I've won it twice. So that kind of background was particularly of interest to Nicholas when he set up the Python UK education track. And he kept saying, well, Dan, you have to kind of get involved with this because teachers, we love this kind of stuff. So about, is it four years ago, the first five years ago, the first Python UK education track rolled around and we were challenged, we were put into groups and challenged to groups where teachers met developers and challenged to come up with some course material that the teachers could teach. And so from my Pi Week and Pi Game background, I dashed off the simplest possible Pi Game program which is about sort of 20 lines, import Pi Game in it, and one of the teachers said, no, that's too difficult. That can't work in a classroom because the amount of code that he would have to teach for a student to be, to get something productive by the end of the lesson was too much. So the best programmers in the class, the people who got it would race away and be bored and the people who didn't get it would not have got it by the end of the lesson. So that problem sat around with me in my brain for three or four years. And then in 2014, I think the October 2014 Pi Week, I sat down to write a game and the theme was one room. I thought I'm going to write this in a kind of way that I would write it if I was creating a framework for complete beginners to Pi Game. And then last year, I turned that into a library which is Pi Game Zero. So this is a library that takes all of the boilerplate out of Pi Game. Pi Game is a library for access to graphics and sound and input. But wrapping that with a kind of thin Python layer that lets you training wheels for Pi Game as it were. So you can get up speed faster. The teachers can teach like a couple of lines at a time and make sure the class is caught up. But then it is just Pi Game underneath. So you can throw away the training wheels at some point and migrate to Pi Game proper if you want. So I'm going to show Pi Game Zero today. I've written a blank file there. It's called demo.pi. The secret of Pi Game Zero is that it doesn't run with the standard Python interpreter. You run it with PGZ Run. So PGZ Run is all the clever machinery. A blank file is a valid Pi Game Zero program. It creates a blank window. But you can quit it, which is great because you can't do that with a blank file. So that proves you've got things installed. Then you can say def, draw, fill, move. So two lines of code. And I've got a blue screen. So let's write a little game. I'm going to... So that's a couple more lines. But that is using Pi Game Zero magic. This mouth refers to an image. I've got a directory called images. And that's where my image files are. So I don't need to do any faffing to load those, path manipulation. They are just available as strings. You can access them as objects in order to get the width and height, if you want. But the actor there has a width and height. It's a Pi Game rectangle, which is why I can position it by mid-bottom. It's got all of the Pi Game attributes, like left, right, X and Y. So I'm going to have another thing. It's going to be very topical. So I've got a pincho. These were drawn in Inkscape, by the way. And then exported as Pings. And Pi Game Zero can load Pings or JPEGs. So whatever file format you could... You should just be able to save something off the Internet, maybe, and use it immediately in the game. And then I draw a function called Update. So a couple more lines. So two lines at a time. That's what we're aiming for. So if I say if keyboard.left, I should have chosen a word that's easier to spell. And then I said these actors are... I'll just ret, so I could do if... So I think that program is easy enough to grasp. I think by moving all of the complexity out of the Pi Game program that you would write into Pi Game Zero, we've created something that is much simpler to get started on. Just at that level where you're transitioning from something like Scratch. So kids will do Scratch up to the age of 10, 9, like some subtle nods. And then in the UK curriculum, they have to transition to a textual programming language. But Scratch has the ability to create characters and move them around out of the box. So that stuff is very accessible. For Python programming, I think we're in a situation where the out-of-the-box experience is worse. I think if your basic programs are... What is your name? Hello name. That's a big gap from where you just were in Scratch to where you are in Python. So Pi Game Zero sort of fills that niche for getting up to speed, getting something graphical on the screen to keep kids engaged as their programming career continues. This was written in Python 3. I think that's important as well. So the background for Pi Game and Python 3 is sort of a bit incomplete. Teachers told me that they wanted just Python 3 stuff. They wanted to be able to teach one language. So the Python 2.3 split was a big problem. When this was written... I think this is still the case. There is no official release of Pi Game for Python 3. So part of this was actually finding ways to install Pi Game and Python 3. And that is all in the documentation. So there are ways of doing it. It works. But Pi Game is catching up actually. So there are now binary wills on Pi PI, but I think are for the pre-release tag. So you have to say pip, minus, minus pre or something. But you can install Pi Game. So I was going to show you some of the other things that Pi Game 0 can do. So draw and update are your basic bread and butter for creating games for animation. So draw will draw the screen. That will be called whenever Pi Game 0 wants to update. Draw the screen, refresh the screen. Update is called 60 times a second anyway. So if you don't define update, you can create games that are available. I will show you the click API. So all I needed to do was create a function on mouse down. And Pi Game 0 will call that function. If I wanted to know what button, what button was clicked, I could go button. I can do anything with a button. So you see I have got Pi Game 0 is adapting to the call back that I define. And I was demoing this to, I was sharing this around the internet with some of the teachers who have been involved in the Pi Game UK education track. And Dave had said it doesn't work. It's just not working. He had written that. And I was dismayed that the very first experience he had with this tool was something that just didn't work and didn't give me any feedback on why. So if you misspell a function, it's got a spell checker and will tell you that you might have misspelled things. I think that's the kind of philosophy of Pi Game 0 is that we've done a lot of work actually in sort of catching errors, re-raising them with better messages. Because that kind of feedback about if something breaks and it doesn't give you any information as to why, that is an obstacle to continuing your learning. So every time we could take something that the underlying Pi Game was doing and make it more explicit, we've done that. I think I will stop there and invite questions because the questions have been very good in the previous times I've taken this talk. And I'd rather sort of, I want to know what you want out of this tool. So any questions? Do you want a... Yeah, so I just wanted to ask if there is an included way for easy publishing of your game, especially for kids. Yeah, so because they won't go into different Python installation stuff. No, but Pi Game 0 was created with an understanding of the kind of portability problems that show up when you distribute games. So having done Pi Week a lot of times, every time you use OpenGL, for example, it will work perfectly on all of the machines that you develop on, and then somebody will run it and there's a driver problem. So Pi Game is ideal for the distribution of games because it just works. If it's there, it just works. It's CPU rendering, which is slow, but it's incredibly reliable. Also Pi Game 0 will catch problems with file names, for example. So if I rename, then it will give me an error that my game could possibly not be exchanged with somebody with a different file system that was case insensitive. So that kind of problem is to the best of my ability sort of dealt with by Pi Game 0. The actual sort of packaging of games and distributing them, I think, is a future problem, but something I think we would like to solve. Why, sorry. Yeah, it's a problem for everybody. Yes, so packaging. Yes, and distribution. Yes, I think that comes later. I think that's something that we should build. The Pi Game 0 distribution is just like a directory, really. So if you have Pi Game 0 installed, zipping up a directory and just sharing the images directory and the sounds directory and the files, and generally it's assumed there is one script. This is for programs that are simple enough to be in one module. Then that can be run on any computer with Pi Game 0. There is another project. I've got internet. I've been working on something called the Edu Bundle, which is an attempt to provide a redistributable sort of bundle for Python, for education, that has Pi Game 0, Pi Game, Pi QT, Nicholas's Mew editor available. So I think by pursuing all of these avenues, we can make games easier for, well, and Python easier for kids to use at school and at home. Yeah, what about networking? Because in games it's also interesting if you're, I don't know, your colleague from school can play your latest game. Yes, sorry. Nicholas is putting his hand up. So there's network 0 for that. We're going to answer more for that. So inspired by Dan's awesome work with Pi Game 0. As I mentioned in my keynote, other people have been doing something, something, zero libraries, following the same philosophy that Dan has. And Tim Golden, who's a Python core developer based in London, has created network 0. He tried out at the London Python Code Ojo, and we had an awful lot of fun breaking it. The important thing is that Tim has also been trying it out with teachers as well, and getting their feedback. And just to echo what Dan was saying, getting teachers involved in this is essential because they're the experts in dealing with children as developers. We can think what kids might want to do, but it's teachers who actually deal with them every day. But there's network 0. I can't see why network 0 couldn't work with Pi Game 0. Ben Nuttall of the Raspberry Pi Foundation created GPIO 0. And also the hashtag 0 all the things. So what you need to do is create a Pi Game 0 project that uses GPIO 0 on a Pi 0, Raspberry Pi 0, with network 0 as well. And then you've zeroed all the things, and you can legitimately use that hashtag. Hey, so we talked yesterday evening, and I just want to repeat this suggestion. You can actually bundle this thing with Pi 2 X to have a single executable file that doesn't need installation. I think that would be a good thing to have, but I have not written that yet. Yeah, of course, but I'm just saying that maybe that's a good thing to look into. And also, you could run the zip files directly, right? Yes, like zip app, yeah. Okay. Oh, thank you. Sorry, that wasn't really a question. Yeah, so I guess, as you suggest, speakers, I should mention that this is on Bitbucket G0, and so pull requests are accepted, and this is a community. Are you pointing? Okay, thumbs up, right, okay, yes. It's a community project, and it sort of relies on the feedback. I'm not a teacher. I am going on feedback from teachers, but I need the feedback of people who have tried teaching kids with this to improve it. And any time that you see an error message that is opaque or something doesn't work and doesn't give a trace back or doesn't give any indication as to why it's not working, that could be considered a bug. So please report it if nothing else. Okay, I know the question. So since arriving in Bilbao... Where am I looking? Sorry. Ah, right, right at the back, okay, underneath the light. Since arriving at Bilbao, I've discovered that my Spanish is exactly zero, and a lot of Spanish people's English is also zero. What options are there for internationalising so that an 11-year-old Spanish kid, for example, doesn't have to learn English to do on Mouse Down, et cetera? Yeah, I think it's probably difficult to conceive of a way that you could internationalise this without making incompatibility problems. I think also that English is the language of programming, and the Python libraries are... and the Python keywords are English. On the other hand, I think it's very reasonable that the documentation should be translated. So if anybody would like to contribute a translation for the documentation, or contribute any kind of tutorial or blog post, that would be appreciated. Okay, the last question. Thanks very much. This looks like it would be quite a nice way of building not just games but generic interfaces. For interaction with all kinds of things. How suited is it to playing the role of a kind of generic graphical interface builder? You can write full graphical interfaces in PyGame, and people have done it, but I think at that point you're probably best if you want to attack that kind of problem using PyGame itself. And there are libraries that do the GUI widgets for embedding in a PyGame game that sort of mimic the kind of platform widgets. But I think it's not... That kind of programming becomes more complicated than I think PyGame Zero is targeting. So I think if you want to do that... I certainly could see that if PyGame Zero was to include some GUI tools to share games, for example, to bundle them up to enter some details and an icon or something, then that could be done with a GUI that was written in PyGame but may not use PyGame Zero to do it. Okay, thank you Daniel for your interest, conference. And thank you very much. Okay, we are going to start in one minute. Okay, let's continue. I'm pleased to introduce the engineer Liana Bagratzi who talks about Learn Python the Fun Way. Hello everyone. Thank you all for coming to my talk this evening. Today I'm going to talk about one interesting type of tools that can be used in education. And I guess some of you definitely came here today to find out how to learn Python the Fun Way. Okay, let me get started then. First of all, a little bit about myself. My name is Liana Bagratzi. I am a software developer from a beautiful Russian city called St. Petersburg. I work for JetBrains. And as part of my work, I am involved in development of PyCharm ADU which is educational edition of PyCharm IDE specially designed for Python learners and educators. Because of my work in PyCharm ADU project, I am in constant search for interesting tools and ideas for learning and teaching programming languages. And I'd like to say that Python community does awesome job trying to make Python available for anyone and providing resources for those who want to learn it. Please raise your hands. Those who somehow involved in Python in education. So that's you who do this awesome job. But no offence, but going through these resources could be a rather boring process for some people, especially for kids. But what if we could forget that we're actually trying to learn something new and just have fun instead? What if we could continue improving our skills while doing something fun? And we could do this. Playing games has been proven to be one of the most effective ways for us to learn. First of all, it decreases the fear of failure.   And also, if you fail a test, it might have serious consequences and it might be rather disappointing. But if you fail a level in a game, there is nothing scary about it. You can just start again. In a game, we often get an instant reward. Once you have completed a level, you get an achievement. And it's nice to have a lot of achievements, isn't it? When we play a game, we usually try to win. And competition is the moving force of progress. And at last, games often provide good visualization, which makes it easier for us to master hard concepts. At this point, playing games seems to be a very good way for us to learn something new. And of course, I'm not the first person who had an idea to apply to programming. And today, I'm going to show you three projects that are my personal favorites, just to give you an idea of how it works. And I'm also going to tell you how you can help these projects other than donating. The first project is called Code Combat. In this game, you help a hero to achieve some goals on each level. It is insanely cool for children and people with no little programming experience. They say on their website that if you want to learn programming, you need to write a lot of code. And that's definitely true. But their job is to make sure that you're doing this with a smile on your face. I like these words, but let's take a look how they do that. So this is one of the levels in Code Combat. Our hero is stuck in a room with fireballs, and we need to survive. How can we accomplish it? Well, we have some equipment. It provides commands that our hero can do. For example, simple boots allow us to move to different directions. And later in the game, we will get some sort of advanced boots that will allow us to move to the specific coordinates. We also have a sword, but that's not a very good sword, actually, because you need to hit an enemy twice to kill it. When you first see some level, they already provide you with a code sample, and your job is to modify it. Sometimes you need to add some lines, and sometimes you need to modify conditions or something else. You can also run it and see what goes wrong. Let me show how it works. At first, we see that our hero dies because he moves only to the right. Then we fix our code and run it again. This time everything is okay. And yay, we get some XP and gems that can be spent to buy better equipment. I also like that they can in some way analyze your code.  If you are interested in this project, you're very likely, because there are plenty of ways for you to help it. This is by far the best contribution guide I've ever seen. It's a screenshot from Code Combat's GitHub Wiki, and they represent their contributors as game characters. For example, they call coders arch majors. The project is 100% open source, but it's written in CoffeeScript, so it's not that easy for Python developers to contribute with code. But you can actually complete all the levels with CoffeeScript too, so you can learn CoffeeScript with the Code Combat's help and then pay back to it by contributing your code. But you can also help in other ways. First of all, you can help with translation. Code Combat has translation to many languages, and this fact is pretty impressive because we don't have so many programming games that are translated into languages other than English. This fact... Okay. So there is still a lot of work for you to do. A lot of levels hasn't been translated yet. But the best part is that you can actually create new levels yourself. It's not as easy as I'd like it to be. They still have special editor for creating levels, and you can express your creativity and add some bonuses to your karma. The next project is called Coding Game, and it is known for contests that they organize. In these contests, you can compete with other developers in some sort of turn-based games where you need to write a successful strategy. If you manage to do this, the chance is high that you will get a good prize or even will be invited to a job interview. If anybody is interested, the next contest will be held in September, so you have enough time to prepare and sign up. But let's now take a look into their onboarding puzzle that explains to new players how the whole project works. Each puzzle has a goal. Sometimes they also give you nice synopsis with spaceships or something like that, and we also can see what our code actually does in this visualization window. The editor is prefueled with the code that retrieves all the needed information from the standard input, so you can concentrate on the code that really matters. Once you've done with the code, you can run provided test cases and see if your code works good or not. For these test cases, they show you all the input and the expected output, and you can also see what exactly goes on on visualization. I'd like now to show you how it works, but at first I want to explain what you need to do in this puzzle. You need to retrieve coordinates of your enemies from the standard input, and on each turn you decide what enemy you are going to shoot, but they actually already tell you that you need to select the closest enemy to survive. Okay, I've already wrote the correct solution, and let's run the provided test case. Yeah, it looks like we survived. Let's now spoil our code, and let's select the furthest enemy instead. Run it again, and we are dead because the very first spaceship got to us and we died. This project wouldn't be so cool if there were no community around it. It's really nice that you can view other people's solutions and learn from them, but they also have so-called community puzzles that you can find in the community puzzles category, and you can write your own puzzles. Maybe you can come up with the idea how to introduce the algorithm for finding the array maximum for people with some interesting story. Okay, the last project is called Check.io. It doesn't have that impressive visualization, but it still has the huge content base and the friendly community. The tasks here are divided into islands, and each task actually is called a mission. Each mission has three different states. Once you've done with solution, you can publish your code and see what other people think about it. And maybe you will be even lucky enough to get your code reviewed. Let's now dive into the mission called Medium. Your job here is to write a function called Check.io that returns the median of a list of numbers. Once we realized what we need to do, we can try to solve this task. Why not? And again, we see yet another version of text editor. This time the editor is rather limited. It has no code completion and instant error highlighting, which would be helpful. They also have little task description to window, but they can provide you nice hints. Check.io provides hints in the form of an actual conversation between two people where you ask questions and more experienced developer answers you. In some tasks, they also have nice visualization feature for you to test your code on the actual data. For example, in this case, you can change the data directly on this picture and they will show you with the orange line what median is and you can see if your code works. Let's now see how this visualization works. At first, we will try to check the solution that always returns the first element of a list. Then we magically type the correct solution and try it on different input data. Okay, let's change the data. Yes, it seems like it works. As I've already said, Check.io's text editor is rather limited, but the good news is that there is a plugin for PyCharm that allows you to complete Check.io missions. In addition to the ability to write solutions in PyCharm and post them directly to Check.io without copy pasting it back to the browser, you can view other people's solutions directly in PyCharm, change them and play with them. At first, all the missions available at Check.io were created by the team, but now anyone can create their own missions. In order to do that, you need to clone a GitHub repository, write your mission there and suggest it back to the Check.io team. To view your mission might become accepted and might become available for anyone. There is also initiative to translate Check.io to languages other than English. You can also propose your solution, your translation in form of full request. In conclusion, I'd like to say that even though there are a lot of great resources for learning Python, there is one interesting direction in educational tools that can actually change the way we learn. You've just seen three great projects that attempt to do that and I encourage you to try them and maybe to contribute to them. But I also want to know that it has been plenty of time since I proposed this talk and no great games have gained my attention since then. It means that there is a lot of space for creativity and for you to invent something cool in this area. For example, I definitely would enjoy playing a game that teaches me Django or Flask or NumPy. That's all. Thank you again for coming and don't hesitate to find me at PyCharmBoost. Okay. Someone wants to have a question. Can you talk about your idea because I was not aware about it. I think you better come to me at PyCharmBoost and I can make a demo for you. Okay, great. Thank you. With this, anything that you haven't talked about? You mean according to PyCharm, are you in gamification or just... Anything that's in line with your aims that you talked about about making this more fun and more accessible, more easy to learn especially? I think that I should do what I can do and I should implement these ideas into a PyCharm idea and I intend to do that. Okay, thank you for your answers and for your interest in this conference. Thank you again. Thank you. Beautiful is better than ugly. To be the first speaker, you don't have to, but I would like to start with you. We still have time. You are? Yeah? You're here? Very good. Thank you.


If you ever wondered why the water that comes out of your water dispenser is so much colder and the water that comes out of your tap, well here's why. It all starts with this little device right here, it's a water fill valve and if you notice there's one inlet and you might wonder where is that located out in my refrigerator. Well if you ever pull your refrigerator out to clean behind it, you notice a copper line or maybe a plastic line going into it and this is where it goes into. And if you happen to need ice, water will come out of here and go to fill the ice maker up but we're more interested in where does the cold water come from so when you take and push the lever here, you trip a switch which sends 120 volts down to this green cell right here, opens up, water from your house comes in through here, comes out here, goes down through a filter but still we haven't answered the question how does it get cold. Well to find out why I'm going to open up the refrigerator and I've removed some of the crisper shelves here and if you notice a coil down there, that's where the water is stored. Water comes in the bottom coil and it fills the coil up and it sits there and if your refrigerator is at 40 degrees then your water will be at 40 degrees so when you take and trip the lever here about water it just pushes water in the bottom one through our fill valve comes out the top goes down comes up through the freezer door and comes out and giving you that nice glass of cold water which you so much forward to


At what point do I recommend that you start a podcast? It's a great question. And here's what I would say about this. There are two situations. One situation is where you yourself are fascinated by podcasts, you yourself listen to podcasts and you just want to have a podcast yourself because you would feel proud of it and you would be excited to promote it because you yourself are a fan of listening to podcasts. So I think that's a very good reason to start a podcast.  The second reason to start a podcast is when you are already consistent with making videos, I'm particularly, I'm talking about, you know kind of teaching or talking content type of videos, the kinds of stuff I do where I kind of just turn on the camera and just start talking and teaching something or telling a story or something. If you're already consistent in doing that, you might as well take those videos and upload them as podcasts as well, audio podcasts as well because if you come to my podcasting how-to webinar, I show you exactly how I do that. It's that easy. I literally download the videos from YouTube and then drag that file onto my podcast hosting platform and they turn it into an audio and it's a podcast.  You might as well because people are looking for those topics using podcasts and they're probably gonna discover your topics just like they might discover you on YouTube. So those are the two reasons why, and of course besides uploading your YouTube videos as podcasts, sometimes you can record yourself, you know, using your phone as the easiest or using Zoom, if you wanna do a special episode or something, you just turn on Zoom or turn on your voice memo app and record something for your podcast. That's totally doable as well.