1 00:00:00,25 --> 00:00:06,346 [MUSIC]. 2 00:00:06,346 --> 00:00:09,701 Well, I had planned to use a fabulous clip from The Big Bang Theory and have 3 00:00:09,701 --> 00:00:14,427 Sheldon Cooper explain the rules to Rock-paper-scissors-lizard-Spock. 4 00:00:14,427 --> 00:00:18,284 But unfortunately, the Copyright Police told me that was a very bad idea. 5 00:00:18,284 --> 00:00:23,916 So, since my wife thinks that I'm already a lot like Sheldon, I'm going to take my 6 00:00:23,916 --> 00:00:29,372 crack at explaining the rules to Rock-paper-scissors-lizard-Spock ala 7 00:00:29,372 --> 00:00:34,968 Sheldon Cooper. Let's do this. 8 00:00:34,968 --> 00:00:37,823 It's very simple. Scissors cuts paper. 9 00:00:37,823 --> 00:00:40,433 Paper covers rock. Rock crushes lizard. 10 00:00:40,433 --> 00:00:43,625 Lizard poisons Spock. Spock smashes scissors. 11 00:00:43,625 --> 00:00:47,84 Scissors decapitates lizard. The lizard eats paper. 12 00:00:47,84 --> 00:00:49,597 Paper disproves Spock. Spock vaporizes rock. 13 00:00:49,597 --> 00:00:52,738 And as it always has been, rock crushes scissors. 14 00:00:52,738 --> 00:00:58,528 Yeah. Well, I hope you enjoyed that. 15 00:00:58,528 --> 00:01:02,599 our mini-project for the end of week one and the first one that you'll turn in for 16 00:01:02,599 --> 00:01:06,430 a grade, is Rock-paper-scissors-lizard-Spock. 17 00:01:06,430 --> 00:01:09,664 Now, when we were brainstorming on kind of what kind of mini-projects we should 18 00:01:09,664 --> 00:01:14,210 use for this class, our first inclination was to do something on income taxes. 19 00:01:14,210 --> 00:01:17,744 So, I kind of bounced this idea off of my focus group at home consisting of my 20 00:01:17,744 --> 00:01:21,684 three kids, and their reaction was, incomes taxes? 21 00:01:21,684 --> 00:01:23,490 Yuck. Who want to do income taxes? 22 00:01:23,490 --> 00:01:26,540 So, we watch a lot of Big Bang Theory at home. 23 00:01:26,540 --> 00:01:28,740 And so, they came up with the idea, hey, yeah, let's do something on 24 00:01:28,740 --> 00:01:33,30 Rock-paper-scissors-lizard-Spock. So, that's where the idea came from. 25 00:01:33,30 --> 00:01:34,970 In this video, I'm going to do two things. 26 00:01:34,970 --> 00:01:37,408 I'm going to start off by walking you through the rules for 27 00:01:37,408 --> 00:01:39,669 rock-paper-scissors. And then later, 28 00:01:39,669 --> 00:01:43,21 Rock-paper-scissors-lizard-Spock. And I'll show you kind of a clever idea 29 00:01:43,21 --> 00:01:47,770 for how to determine who wins the game of Rock-paper-scissors-lizard-Spock. 30 00:01:47,770 --> 00:01:51,136 And in the second part of the video, I'll walk you through the mini-project, and 31 00:01:51,136 --> 00:01:54,451 then in particular, I'll show you how you can get help if you're having trouble 32 00:01:54,451 --> 00:01:59,300 actually completing the mini-project. We've got kind of some nice support 33 00:01:59,300 --> 00:02:03,3 structures in place in the class, and I'll shown, show you how to use those. 34 00:02:03,3 --> 00:02:05,511 And if you get stuck, you should come back and look at this video because it 35 00:02:05,511 --> 00:02:08,540 will give you some nice hints about how to proceed. 36 00:02:08,540 --> 00:02:15,690 Okay, let's go on and get started. Alright, let's go through the rules of 37 00:02:15,690 --> 00:02:18,486 Rock-paper-scissor-lizard-Spock a little slower. 38 00:02:18,486 --> 00:02:21,660 So, this is just a variant of rock-paper-scissors. 39 00:02:21,660 --> 00:02:26,530 You have rock, paper, and scissors. So, rock smashes scissors. 40 00:02:26,530 --> 00:02:29,808 Scissors cuts paper. Paper covers rock. 41 00:02:29,808 --> 00:02:32,216 The problem with playing rock-paper-scissors is that you tie a lot 42 00:02:32,216 --> 00:02:34,968 and, you know, if you play friends where they kind of know your patterns, they 43 00:02:34,968 --> 00:02:39,696 may, you may tie more than half the time. So, one way to avoid having lots of ties 44 00:02:39,696 --> 00:02:44,423 is to add more items. So, with this variance you add in Lizard 45 00:02:44,423 --> 00:02:48,739 and you add in Spock. And this little poem over here is 46 00:02:48,739 --> 00:02:53,224 actually what Sheldon recites on the Big Bang Theory to describe it, and my kids 47 00:02:53,224 --> 00:02:58,92 love it when I do this. but I don't expect you to actually 48 00:02:58,92 --> 00:03:01,0 program these roles in your first project. 49 00:03:01,0 --> 00:03:05,110 I'm going to tell you a simpler way using surprise, surprise, modular arithmetic. 50 00:03:05,110 --> 00:03:08,470 So over here, I have the Rock-paper-scissor-lizard-Spock wheel, 51 00:03:08,470 --> 00:03:13,35 and in fact, it's really the rock-Spock-paper-lizard-scissors wheel. 52 00:03:13,35 --> 00:03:16,390 And the way to remember this is you put Spock next to rock and lizard next to 53 00:03:16,390 --> 00:03:19,552 scissors. Now why is this wheel useful? 54 00:03:19,552 --> 00:03:23,29 It's because I can figure out who I win and lose to based on where I sit on the 55 00:03:23,29 --> 00:03:28,40 wheel. So, let's consider Spock. 56 00:03:28,40 --> 00:03:31,62 Spock always beats his counterclockwise opponents. 57 00:03:31,62 --> 00:03:33,968 Spock vaporizes rocks. Spock smashes scissors. 58 00:03:33,968 --> 00:03:36,830 But he always loses to his clockwise opponents. 59 00:03:36,830 --> 00:03:40,709 Paper disproves Spock. Lizard poisons Spock. 60 00:03:40,709 --> 00:03:43,280 In fact, this holds for every item on the wheel. 61 00:03:43,280 --> 00:03:47,240 So, if you want to go through and figure out who wins at rock-paper-scissors, we 62 00:03:47,240 --> 00:03:50,780 can take the numbers for each of the items[UNKNOWN] we can look at their 63 00:03:50,780 --> 00:03:55,460 difference. So, we could take paper minus Spock. 64 00:03:55,460 --> 00:03:58,121 Okay. Paper appears to run clockwise, so 2 65 00:03:58,121 --> 00:04:03,610 minus 1 is positive, it's 1, therefore paper beats Spock, okay? 66 00:04:03,610 --> 00:04:07,278 Lizard, 3 minus 1 is 2, it's actually clockwise. 67 00:04:07,278 --> 00:04:12,854 What about let's see, we have scissors minus Spock, so we have 4 minus 1, that's 68 00:04:12,854 --> 00:04:15,690 3. Well let's see, 3 has gone far enough 69 00:04:15,690 --> 00:04:18,268 around that we're actually kind of counterclockwise. 70 00:04:18,268 --> 00:04:26,206 In fact, we have plus rock, rock is 4, so we have 0 minus 1 that's negative 1. 71 00:04:26,206 --> 00:04:29,894 Hm, gosh what do we do there? we could use modular arithmetic 72 00:04:29,894 --> 00:04:33,320 remainders, remainders. We could go through and take minus 1 73 00:04:33,320 --> 00:04:35,988 remainder 5. Remember when I talked about whenever you 74 00:04:35,988 --> 00:04:38,827 have a negative number, you're taking the remainder. 75 00:04:38,827 --> 00:04:41,929 You just think about adding the number you're taking the remainder with as many 76 00:04:41,929 --> 00:04:45,280 times as it takes to get it in the range between 0 and 5. 77 00:04:45,280 --> 00:04:49,160 So here, we take negative one, we add 5 to it, we get 4. 78 00:04:49,160 --> 00:04:52,373 So, the rule is really that if you take the first item minus the second, if the 79 00:04:52,373 --> 00:04:55,410 difference is 1 or 2, the first item wins. 80 00:04:55,410 --> 00:04:59,60 If the difference is 3 or 4, the second item wins. 81 00:04:59,60 --> 00:05:02,70 So, we'll, we'll go and see that in the program template in a second. 82 00:05:02,70 --> 00:05:05,78 But this is a simpler way to actually program[UNKNOWN]. 83 00:05:05,78 --> 00:05:08,152 All you're going to need to do is build an else, else if, if else if, else 84 00:05:08,152 --> 00:05:11,470 clause, and use a little modular arithmetic. 85 00:05:11,470 --> 00:05:18,10 So, let's move onto the program template and I'll kind of, will be more tangible. 86 00:05:18,10 --> 00:05:19,551 Alright. Let's walk through building 87 00:05:19,551 --> 00:05:23,360 Rock-paper-scissors-lizard-Spock. You should understand the rules from now. 88 00:05:23,360 --> 00:05:27,845 So, let's go out to the home page and we'll click on the Mini-projects link, 89 00:05:27,845 --> 00:05:33,240 scroll down and we'll go to Rock-paper-scissors-lizard-Spock. 90 00:05:33,240 --> 00:05:37,56 So, just like for Mini-project 0, we have a description of the mini-project, it has 91 00:05:37,56 --> 00:05:40,289 some kind of an overview here, kind of the same thing we talked about in the 92 00:05:40,289 --> 00:05:45,685 previous segment. And then it has a very detailed 93 00:05:45,685 --> 00:05:51,120 step-by-step walkthrough of implementing Rock-paper-scissors-lizard-Spock. 94 00:05:51,120 --> 00:05:55,140 Please read this, this gives you important hints on how to implement the 95 00:05:55,140 --> 00:05:58,608 project. for example, it mentions when you're 96 00:05:58,608 --> 00:06:02,748 doing, generating random numbers, you use random.randrange, so read that, it'll 97 00:06:02,748 --> 00:06:08,26 give you lots of nice hints on there. notice it also includes what the output 98 00:06:08,26 --> 00:06:11,560 of the program should like, okay? So, if you're curious kind of what it 99 00:06:11,560 --> 00:06:14,880 should produce, it should produce something in this format. 100 00:06:14,880 --> 00:06:18,528 it includes a grading rubric that discusses kind of how to handle 101 00:06:18,528 --> 00:06:22,880 deviations and then gives you items for how to evaluate if your implementation is 102 00:06:22,880 --> 00:06:27,788 correct or not. So, it's important that you familiarize 103 00:06:27,788 --> 00:06:30,410 yourself with this. One important point here. 104 00:06:30,410 --> 00:06:33,889 The first rubric item says you need to use CodeSkulptor. 105 00:06:33,889 --> 00:06:37,770 Don't try to cut and paste your code into the Submission box. 106 00:06:37,770 --> 00:06:40,350 I know it's tempting because you want to use a tool like Idle, well, you can 107 00:06:40,350 --> 00:06:43,829 kind of get by with it for this project. But in the future, you're going to need 108 00:06:43,829 --> 00:06:46,469 to be using CodeSkulptor because a lot of the interactivity is going to take place 109 00:06:46,469 --> 00:06:48,909 inside the web browser and it's not going to be able to be implemented inside 110 00:06:48,909 --> 00:06:54,180 Idle. so just get used to it now. 111 00:06:54,180 --> 00:06:57,188 If you use CodeSkulptor, it's going to make your assessment much more reliable 112 00:06:57,188 --> 00:07:01,295 and much more easy. when you're ready to start writing code, 113 00:07:01,295 --> 00:07:04,320 you can scroll up here. We have a template. 114 00:07:04,320 --> 00:07:07,830 Every mini-project has a template. We can click on this. 115 00:07:07,830 --> 00:07:10,324 And this pops up basically in CodeSkulptor you already know which 116 00:07:10,324 --> 00:07:13,520 contains, could contain the starting point for your project. 117 00:07:13,520 --> 00:07:17,330 really if you look at the project, there's really 3 things you need to do. 118 00:07:17,330 --> 00:07:22,16 You need to implement a function number to name, a function name to number, and a 119 00:07:22,16 --> 00:07:25,662 function rpsls. So, you kind of have to fill in these 120 00:07:25,662 --> 00:07:30,256 comments with Python code. at the bottom, there are 5 calls to rpsls 121 00:07:30,256 --> 00:07:36,490 that will essentially test if your implementation is correct or not. 122 00:07:36,490 --> 00:07:41,630 So, when you run your code, you should expect to see some text appear over here. 123 00:07:41,630 --> 00:07:47,250 We've actually echoed that text right here for you. 124 00:07:47,250 --> 00:07:50,950 I'll also show it to you in the video, so you can actually see it in action. 125 00:07:50,950 --> 00:07:54,902 This is my implementation of Rock-paper-scissors-lizard-Spock. 126 00:07:54,902 --> 00:07:59,719 you can see, you might ask well where are my definitions of these functions. 127 00:07:59,719 --> 00:08:03,837 I've used the function, basically a kind of a feature of CodeSkulptor called code 128 00:08:03,837 --> 00:08:06,953 folding. If you right Click on this little column 129 00:08:06,953 --> 00:08:10,980 here, you can actually either fold up and hide code or expose code. 130 00:08:10,980 --> 00:08:15,420 I've actually hid the definitions of number to name, name to number, and 131 00:08:15,420 --> 00:08:19,65 rpsls. If I run this, what you can see here is 132 00:08:19,65 --> 00:08:22,810 the textual output. So, I notice a couple of things about 133 00:08:22,810 --> 00:08:26,346 this that using random numbers, I can make kind of a different response for the 134 00:08:26,346 --> 00:08:29,778 computer on each particular individual game here so I didn't always choose the 135 00:08:29,778 --> 00:08:34,674 same value for the computer. And then if I run this again, I see 136 00:08:34,674 --> 00:08:39,25 different choices for the computer. Notice the players choices are always the 137 00:08:39,25 --> 00:08:42,644 same for every single run and that's because we have these five values here. 138 00:08:42,644 --> 00:08:46,180 so this is a kind of a, kind of a way to get you started on doing 139 00:08:46,180 --> 00:08:51,160 Rock-paper-scissors-lizard-Spock. Now, what I'll do next is I'l walk you 140 00:08:51,160 --> 00:08:55,9 through how to get help if you get stuck implementing the mini-project. 141 00:08:59,260 --> 00:09:03,260 Okay, you're working on your mini-project and you get stuck, it's going to happen. 142 00:09:03,260 --> 00:09:07,182 So, what do you do to get through and finish off the mini-project? 143 00:09:07,182 --> 00:09:11,150 Well, the first thing you can do is, if you're confused about some particular 144 00:09:11,150 --> 00:09:17,30 Python concept, go back and take a look at the appropriate class video. 145 00:09:17,30 --> 00:09:20,687 For example, if you don't understand how conditionals work, take a look at Scott's 146 00:09:20,687 --> 00:09:24,936 video on conditionals. we tried to include in the videos all the 147 00:09:24,936 --> 00:09:30,194 concepts that you need to finish that particular week's mini-project. 148 00:09:30,194 --> 00:09:33,46 Okay, they didn't get you unstuck, alright? 149 00:09:33,46 --> 00:09:36,766 Go back and look at the mini-project description again. 150 00:09:36,766 --> 00:09:40,190 In particular, take a look at the development process. 151 00:09:40,190 --> 00:09:44,672 There are lots of details here about how to actually implement the project. 152 00:09:44,672 --> 00:09:49,44 if you're not following the development process, it's easy to get lost. 153 00:09:49,44 --> 00:09:51,978 so if your having trouble, go back and take a deep look at it. 154 00:09:51,978 --> 00:09:55,395 Okay, that still doesn't help you. You're still confused, don't understand 155 00:09:55,395 --> 00:09:57,924 what to do. You have a tremendous resource available 156 00:09:57,924 --> 00:10:00,8 here. And this is something that only happens 157 00:10:00,8 --> 00:10:03,959 in really large classes. You have the discussion forums. 158 00:10:03,959 --> 00:10:06,992 So, we spent a lot of time in designing the discussion forums. 159 00:10:06,992 --> 00:10:11,22 So, in particular, we have forums for mini-projects and we have a forum for 160 00:10:11,22 --> 00:10:17,248 Rock-paper-scissors-lizard-Spock. And I've already got a couple of, got a, 161 00:10:17,248 --> 00:10:20,304 got a post it here and we'll talk about it in just a second. 162 00:10:20,304 --> 00:10:23,432 But when your peers start working on this project, there are going to be literally 163 00:10:23,432 --> 00:10:26,644 tens of thousands of people trying to do this project. 164 00:10:26,644 --> 00:10:30,133 There will be a blizzard of posts. Lots of posts here on all kinds of topics 165 00:10:30,133 --> 00:10:34,620 related to probably something that you're having trouble with. 166 00:10:34,620 --> 00:10:37,216 So, spend some time in the forums, there's a great search feature here, 167 00:10:37,216 --> 00:10:40,799 we've got a Search box right here. Kind of use the Search box and try to 168 00:10:40,799 --> 00:10:44,56 locate the existing thread that answers your question. 169 00:10:44,56 --> 00:10:47,644 if it's kind of close but not exact, you might actually add another post to that, 170 00:10:47,644 --> 00:10:52,370 or if you know something, how to answer a question, add something there. 171 00:10:52,370 --> 00:10:55,96 You are going to see that most of the threads get lots of posts in them from 172 00:10:55,96 --> 00:10:58,420 people either asking more questions or trying to help. 173 00:10:58,420 --> 00:11:01,684 One nice thing about previous sessions is we have people that are actually fairly 174 00:11:01,684 --> 00:11:04,996 experienced with Python here, that really want to help everybody else learn how to 175 00:11:04,996 --> 00:11:09,89 program in Python. if it turns out that nobody has asked 176 00:11:09,89 --> 00:11:12,232 your question, start a new thread, okay? Be polite. 177 00:11:12,232 --> 00:11:15,352 what'll happen is typically, it won't take too long, maybe 5, 10 minutes at 178 00:11:15,352 --> 00:11:19,580 most and you'll get a few people that are trying to ask your question. 179 00:11:19,580 --> 00:11:22,364 Now, one thing is the class has an Autocode so you can't post the link to 180 00:11:22,364 --> 00:11:25,436 your working or almost working mini project, so you may need to use questions 181 00:11:25,436 --> 00:11:30,270 along the lines of I don't understand how conditionals work. 182 00:11:30,270 --> 00:11:33,486 Or maybe show a little, small portion of your code and say, this particular code, 183 00:11:33,486 --> 00:11:37,183 piece of code doesn't work. if you're stuck and you really don't know 184 00:11:37,183 --> 00:11:39,793 what to do, I'm going to show you one more thing that you can do, and this is 185 00:11:39,793 --> 00:11:42,628 something that's unique to this class and we're going to do our best to help you 186 00:11:42,628 --> 00:11:46,470 out with. So, give me a second and I'll show you 187 00:11:46,470 --> 00:11:53,123 kind of your, your method of last resort. Alright, you've consulted the forums and 188 00:11:53,123 --> 00:11:57,632 you're still stuck. We've still got more help for you. 189 00:11:57,632 --> 00:12:01,328 the next thing I suggest you do is, inside CodeSkulptor, there's a button up 190 00:12:01,328 --> 00:12:05,890 here that says Tips. This links to a particular thread inside 191 00:12:05,890 --> 00:12:11,545 the current week's mini-project forum. So, here we're in the forum for 192 00:12:11,545 --> 00:12:15,998 Rock-paper-scissors-lizard-Spock and I've created a thread called Code Clinic tips 193 00:12:15,998 --> 00:12:19,655 for RPSLS. So, in this thread, I've essentially 194 00:12:19,655 --> 00:12:23,742 posted some information about students' errors and things to help with solving 195 00:12:23,742 --> 00:12:29,40 this particular week's mini-project. for this session, what we're going to do 196 00:12:29,40 --> 00:12:32,485 is we're going to always start off with some essentially testing functions to 197 00:12:32,485 --> 00:12:35,559 help you make sure that the helper functions you're building for your 198 00:12:35,559 --> 00:12:40,540 mini-project are correct. So, remember, you have to implement name 199 00:12:40,540 --> 00:12:43,952 to number and number to name. We've put out here two CodeSkulptor URLs 200 00:12:43,952 --> 00:12:46,704 that you can use to test to see if your implementations of those functions are 201 00:12:46,704 --> 00:12:50,954 correct. So for example, I click on this, it pops 202 00:12:50,954 --> 00:12:55,634 up a CodeSkulptor URL, which has a place for you to pa, paste in your definition 203 00:12:55,634 --> 00:13:00,878 of name to number. And then, it has some test calls to name 204 00:13:00,878 --> 00:13:05,560 to number with appropriate input data. And it tells you what should come out of 205 00:13:05,560 --> 00:13:08,770 that, what the output format should look like. 206 00:13:08,770 --> 00:13:11,312 So, if your implementation of name and number is correct and you paste it in 207 00:13:11,312 --> 00:13:14,194 here, you should see something like this coming out. 208 00:13:14,194 --> 00:13:17,74 This basically gives you a way to check and see if your helper function is 209 00:13:17,74 --> 00:13:20,519 written correctly. If it passes this test, there's a good 210 00:13:20,519 --> 00:13:25,969 chance that implementation is correct. there's also one here for number to name. 211 00:13:27,70 --> 00:13:31,860 the thread also includes observations from previous iterations of the class. 212 00:13:31,860 --> 00:13:35,947 Here's some examples of kind of common errors that I've observed in working with 213 00:13:35,947 --> 00:13:39,850 students things like always capitalize Spock. 214 00:13:39,850 --> 00:13:44,430 Python is sensitive to case. there's one thing I mention here. 215 00:13:44,430 --> 00:13:48,390 What's this thing called a Code Clinic? So, how did I get all these observations? 216 00:13:48,390 --> 00:13:52,95 I, the other instructors and the community TAs have a special e-mail 217 00:13:52,95 --> 00:13:56,385 address that we've set up where you can, as a matter of last resort, send request 218 00:13:56,385 --> 00:14:00,300 for help. For this session, it's 219 00:14:00,300 --> 00:14:04,778 interactivepython@online.rice.edu. Send e-mail to this, we have a 220 00:14:04,778 --> 00:14:09,500 professional help desk that's actually helping us. 221 00:14:09,500 --> 00:14:12,730 You should get an automatic response. If the Code Clinic is over loaded you'll 222 00:14:12,730 --> 00:14:16,796 get a response saying, it's going to take a long time, you may not get a response. 223 00:14:16,796 --> 00:14:18,284 your e-mail will actually be sent to one of the instructors or one of the 224 00:14:18,284 --> 00:14:20,78 community TAs, and they'll have a chance to help you. 225 00:14:20,78 --> 00:14:25,1 Now, this class is going to have many tens of thousands of students. 226 00:14:25,1 --> 00:14:29,403 If you're all trying to do the project at once and there's maybe a dozen of us 227 00:14:29,403 --> 00:14:33,663 trying to answer e-mail, this is only going to work if you use this under the 228 00:14:33,663 --> 00:14:40,90 following circumstances. You've tried all the other ways I've 229 00:14:40,90 --> 00:14:43,840 discussed of help, of trying to seek help. 230 00:14:43,840 --> 00:14:47,200 You only send us an e-mail with a CodeSkulptor URL that's relevant to the 231 00:14:47,200 --> 00:14:51,65 current week's mini-project. This is not a way to get questions 232 00:14:51,65 --> 00:14:55,366 answered about concepts about the class. Post that in the forum, we're going to 233 00:14:55,366 --> 00:14:58,580 ignore all other requests. But if you're stuck, and you think, man, 234 00:14:58,580 --> 00:15:01,340 I know I'm just like just like one little change away from getting the mini-project 235 00:15:01,340 --> 00:15:03,860 done and you're getting frustrated, send it here, we're going to do our best to 236 00:15:03,860 --> 00:15:08,22 help. what will happen is at the end of the 237 00:15:08,22 --> 00:15:11,439 day, we'll try to send you back maybe a modified CodeSkulptor URL that will point 238 00:15:11,439 --> 00:15:16,492 out where your error was, or give you a hand in terms of trying to do it. 239 00:15:16,492 --> 00:15:19,263 it may turn out there are too many requests. 240 00:15:19,263 --> 00:15:22,366 And so, this is something we're doing our best at here. 241 00:15:22,366 --> 00:15:25,838 my wife actually spent so much time in the Code Clinic last time, my wife 242 00:15:25,838 --> 00:15:29,144 actually got me a custom t-shirt for this. 243 00:15:29,144 --> 00:15:32,530 we're going to do our best to help every single one of you. 244 00:15:32,530 --> 00:15:35,573 And so, please be patient with us. Especially on this first first couple of 245 00:15:35,573 --> 00:15:37,692 mini-projects if we get overwhelmed in there. 246 00:15:37,692 --> 00:15:41,861 We've got better technology this time but we're going to do our best. 247 00:15:41,861 --> 00:15:44,640 But again, only use it for code that's sick. 248 00:15:44,640 --> 00:15:47,767 If your code is feeling ill, and not doing very well, send us a URL, we'll 249 00:15:47,767 --> 00:15:52,570 take a shot at helping fix it. Okay, good luck on the mini-project. 250 00:15:52,570 --> 00:15:55,773 You can do it.