Coding 101 28 (Transcript)


Download and watch the episode here:
Coding 101 28

Shannon Morse: Today on Coding 101 it’s the wonderful world of CPAN!

Netcasts you love… From people you trust… This is TWiT! Bandwidth for This Week in Google is provided by CacheFly, at C-A-C-H-E-F-L-Y dot com.

Fr. Robert Ballecer, SJ: Welcome to Coding 101, the TWiT show where the transition happened way too fast, but we still let you into the world of the code monkey. I’m Friar Robert Ballecer.

Shannon: And I am Shannon Morse. For the next thirty minutes we’re going to get you all coded up and everything you need to know to be a Perl Code warrior.

Fr. Robert: Boom.

Shannon: I’m ready.

Fr. Robert: Shannon.

Shannon: Yes.

Fr. Robert: This is it.

Shannon: No!

Fr. Robert: This is the last episode.

Shannon: Wait, is it really?

Fr. Robert: I know, right?

Shannon: It’s been eight episodes?

Fr. Robert: You know, we keep running into this. We get to the end of the module and we regret our decisions to not just keep going with a single language. But it’s time. We have had eight episodes of Perl and now we need to move onto something else, but that also means that this is the episode where we blow their minds.

Shannon: Uh oh.

Fr. Robert: We have to give them something tempting.

Shannon: Blow their minds, I’m excited about that. Well first, I think we should do a little bit of review.

Fr. Robert: Yes.

Shannon: So we already learned how to do a GET edit on Perl script, and that ends up basically letting you see exactly what the entry form was, at the top, on the screen, on the little toolbar at the top. So if you don’t want that to show up you can always use POST, which is an alternative. I did a little script on my computer. So this is looks exactly the same as the last one that I did for GET, you just put in your favorite companion, and his or her name, so I’ll say, “yes, I do,” And then “Amy.” So this isn’t going to work because I don’t have it uploaded. And then if I look at the HTML, I’ll zoom in a little bit for you, okay so, this is just simple HTML up here; this is just the title of it: Doctor Who Companions, that’s my header. It asks for the user’s favorite companion in the form of a form. This is the action, the important part. I’m using POST instead of GET. So that is the little piece I add to my HTML file to make it work. Now over in my PYTHON file, which is right here; when I scroll down, the only difference that I had to make was right here. So I changed this to standard input, and I make sure that it reads the length of the content that was inputted into the file. And then everything else is exactly the same as I showed last week.

Fr. Robert: Right. So what it will allow you to do is get the information from the form, get it as a string, and turn it into something that is useable by the program. It takes the length of the string, because that’s actually very important…

Shannon: Yes

Fr. Robert: When you start playing around with what’s in there, and then it turns into a standard input so that Perl can understand what’s going on.

Shannon: Exactly

Fr. Robert: I love it; it’s so simple, really.

Shannon: It is. So I recently found something that was kind of interesting, I was searching through Duck Duck Go’s security settings, and we were on the Duck Duck Go’s search engine, which is a little different that Google because they say they don’t collect any of your information.

Fr. Robert: Right

Shannon: They use POST for all of their entries…

Fr. Robert: As they should, as they should.

Shannon: Right. I found that interesting because I was like, “Oh, I know what that is now.”

Fr. Robert: Again, let’s go over the reason why you would use POST and why you would use GET. POST is more secure, it’s not secure, but it’s more secure, than GET because all that information, that entire string, doesn’t go into the URL.

Shannon: Right.

Fr. Robert: It also means that you are not as leg limited, because the length of a URL can be as limited to as few as twenty four characters, which means you have to use multiple GETs to order to get the information off the form, also not advisable. But what GET does allow you to do is if, for example, I have something that I want people to be able to bookmark, you can bookmark a GET, you cannot bookmark a POST.

Shannon: Exactly.

Fr. Robert: So you have to know what each one is for, and what the strengths and the weaknesses are, and that’s what decides where you use each one.

Shannon: I like it. It’s very, very fun, and very interesting. Now we don’t have any user submitted ones this week, but I did want to remind everybody: If you’re interested, go over to Google Plus, and search in the communities for TWiT Coding 101 we have awesome examples over in there, and we have really, really growing community, over a thousand strong.

Fr. Robert: We do.

Shannon: And they are very, very helpful, if you have any questions or concerns, or you just want to share your own code. So definitely go to TWiT Coding 101 in the Google Plus community.

Fr. Robert: Alright. Now let’s take a trip to the Ivory Tower. Now we have been showing some very basic Perl commands.

Shannon: Yes.

Fr. Robert: How to take input in, how to print out, how to do regular expressions, how to use POST and GET so that you can use dynamically generate webpages from user input. Now we need to take it to the next level, and this is where we like to leave our users when they get to episodes seven and eight, which is something they can play with

Shannon: Oh boy.

Fr. Robert: So we’re talking about CPAN. C-P-A…

Shannon: Yeah! What is CPAN?

Fr. Robert: CPAN is the Comprehensive Perl Archive Network. Just like when we were talking about Python, we were talking about these modules that we can use, right?

Shannon: Yeah.

Fr. Robert: It’s always good.

Shannon: Okay. So this is different scripts that you can grab from?

Fr. Robert: Precisely. Right, you can integrate it into your program. And one of the advantages of using an object orientated language is the ability to take work that someone else has done, and to integrate it into your program. And the more advanced languages have better and better ways to do it. Well Perl is one of these languages that is built on this idea of…

Shannon: Yes!

Fr. Robert: I don’t want to reinvent the wheel…

Shannon: I don’t have to do anything, I’m lazy!

Fr. Robert: Well you have to do a little bit; you have to know how it works…

Shannon: Of course.

Fr. Robert: But at the same time, it means, like for example, if I want to integrate my software, the program that I’m writing; with someone’s weather application, okay, let’s say Google is running some weather stuff.

Shannon: Okay.

Fr. Robert: Well if they have a module in CPAN, because they know that Perl users are going to want to access their API, then I don’t have to do all that nitty gritty work of figuring what goes where and how do you call it, where does the data come from, no. That’s all figured out in the module, and basically all I have to know is what data I can push to it, and what data I get back from it. Nice, right?

Shannon: Oooh, I like it.

Fr. Robert: Yeah. So CPAN has over one hundred thousand…

Shannon: What?

Fr. Robert: I think the last count was one hundred thirty six thousand, something like that.

Shannon: That’s a lot.

Fr. Robert: Well there are a lot of programmers.

Shannon: So don’t expect to memorize them.

Fr. Robert: No, you’re not going to memorize them. But actually what we’re going to do is show you how you get into CPAN, we’re going to show you how to search for a module in CPAN, then we’re going to show you how to install it.

Shannon: Awesome.

Fr. Robert: It’s going to sound complicated, but honestly, it’s crazy, crazy easy. In fact, the method we’re going to show is probably at least an order of magnitude more difficult than the method you could use if you actually knew what the module name was.

Shannon: Oh, okay.

Fr. Robert: In fact, I think Patrick was showing me; he’s like, “Yeah, the way you showed me was long, that’s really long, I just do it like this.” But you know…

Shannon: So if you don’t know the name of any modules, you can use this form.

Fr. Robert: This is what we do, right.

Shannon: Okay.

Fr. Robert: Okay so the first thing we need to do we need to figure out how to get into CPAN. If you could do ahead and got to input ten, what I’ve done is dropped into…wrong one, that’s the wrong one. There we go.

Shannon: Oh it’s so pretty!

Fr. Robert: This, this is a standard command line. So this is for Windows, for you it would be Mac it would be the terminal, right?

Shannon: Right.

Fr. Robert: So all I really have to do is type: Perl dash MCPAN dash E dash shell. Looks like that. So I type this, and hit enter, remember I had Perl installed on this computer already; it’s going to drop me into the CPAN environment. Now a bit of warning: if you are running a Windows machine, the very first time you do this, it’s going to give you a warning, it’s going to say it’s missing modules, don’t worry about it; it’s going to download all the packages…

Shannon: That’s what mine is doing right now.

Fr. Robert: Exactly. Yeah, it will take a while; in fact go to Shannon’s computer right now, you can see what it looks like. So it’s going to download all these packages, and your computer will be ready to work with, in CPAN in probably three to four minutes.

Shannon: Well that’s cool. It’s nice that it’s just downloading all the necessary bits. I don’t have to press yes or anything.

Fr. Robert: It didn’t always do this, it wasn’t always like this. In the early versions of Perl for Windows, you had to go and download all the individual modules and install it.

Shannon: Eww.

Fr. Robert: That was a pain in the butt. This is much easier. Come back to my computer. Now we’re in CPAN. What we have to do is we need to search for some modules. Now let’s say I want to search for LWP modules. LWP is short for library in www in Perl. It’s a set of modules that allows you to access data in the World Wide Web. So what I want to do is I want to invoke the search function. I am going to put I space slash LWP, which tells me what kind of library I’m looking for, and I’m also going to put another slash because I say, “show me all the modules that you have for LWP.” And when I do this, it’s going to go through its database…

Shannon: Whoa.

Fr. Robert: And pull up all the modules for LWP it has.

Shannon: That’s a lot.

Fr. Robert: Which is a lot. And now what I could do is I could scroll through these, and then when I find the name, and oh, this is CASH, what does this do? I could look it up and find what that module does, specifically.

Shannon: Oh, that’s cool.

Fr. Robert: But in our particular case, we’re looking for a different module. We want to find a module that lets us play with weather. So I’m going to put: I space, and let’s see if I can remember the proper name for this module, it’s going to be weather, underground.

Shannon: Weather underground.

Fr. Robert: And it’s going to find one module.

Shannon: Ohhh, cool.

Fr. Robert: This is the module called Underground Weather and it’s going to show me the user ID, the person who uploaded it, it’s going to show me the version, and it’s going to show me the actual file name and it’s also going to tell me whether or not it’s been installed on my computer. It says it’s not. Now here’s the cool thing: now that I know it’s in the CPAN library, this is what I use to install it. Super, super complicated, you better write this down: install weather underground. I know that’s super complicated, right? Except if I spell it correctly then it totally works. Install, steal, oh my gosh, this has become typing 101. Weather underground. There we go. And now all it’s going to do is it’s going to install this, this module. This entire module it’s going to put it into my computer.

Shannon: I found it!

Fr. Robert: There you go. And once it’s done, let’s see if I can find it here. Once it’s done, it’s actually going to drop it into the Perl directory that I have here on my computer. For me it’s in, let’s see, Perl sixty four, it’s in CPAN, and it’s in BUILD, and as you can see it’s gone ahead, zoom in on that, already started to put those modules onto my computer so that I have access in Perl.

Shannon: Oh that is so cool.

Fr. Robert: Yeah, now the other thing…

Shannon: That’s easy!

Fr. Robert: The reason why you want to know the location is because most of the time if you go in here, they will give you the directions for accessing the module in here.

Shannon: Ah.

Fr. Robert: There will be a Read Me file, there will be a Start file, there will be some sort of instructions for what kinds of commands you can issue to the module, and what data you get back.

Shannon: That’s good. Cool. Okay.

Fr. Robert: Which is nice. So what I have just done is I have taken someone else’s work and I have dropped it onto my terminal so that I can use their programming to make something happen.

Shannon: That’s awesome.

Fr. Robert: Right. So…

Shannon: I love that people have already done this for us. Thank you! Thank you!

Fr. Robert: I know, right? Once again, that’s one of the advantages of programming in the here and the now.

Shannon: Yeah.

Fr. Robert: Just, even twenty years ago, you basically had to write everything from scratch, unless you found some repository. Well, with the advent of the internet, and with all these connected users, it’s now easy to say, “Hey, I just wrote a really cool module that takes x and does y with it. And I put it into a repository and anyone who needs that to happen can just load it into their install.”

Shannon: Now are there different modules other than LWP?

Fr. Robert: Oh yeah, oh no, there’s…that was one example, like weather…

Shannon: That was just like, one folder.

Fr. Robert: LWP is not a Weather Underground module. There are a lot of modules. So again, searching in here is not, it’s not like Google searching. You kind of have to know what…

Shannon: I wonder if there is an online database.

Fr. Robert: There is. There are actually several online databases.

Shannon: Oh good.

Fr. Robert: I can’t remember them off the top of my head but it’s really easy. All you have to do is put Perl Repository, and it will show you.

Shannon: Okay.

Fr. Robert: And then what you do is when you find the name of the module, search the CPAN archive to make sure it’s in there.

Shannon: Right.

Fr. Robert: And if it’s in there, install it.

Shannon: Ah, cool, awesome.

 Fr. Robert: Done. Easy cheesy. Now this is the time when we bring in our code warrior and since this is his last time, what we want him to do is we want him, now that we’ve shown them how to install a module onto their machine, to actually do something with that CPAN archive.

Shannon: Yeah!!

Fr. Robert: So we welcome back to the show, for maybe the last time for the near future…

Shannon: Noooo!!!

Fr. Robert: Mister Patrick Delahanty; Patrick, thank you so very much for coming back.

Patrick Delahanty: My pleasure.

Shannon: Yeah, what up?

Patrick: Hey.

Fr. Robert: Now Patrick, I know you have a much faster way to use CPAN; this is sort of the beginner’s guide to CPAN. But you’re going to show us what you can actually do with one of these downloaded modules.

Patrick: Yeah, now that you have the weather dominator installed, we can start dominating that weather.

Fr. Robert: Alright, show us.

Patrick: Okay. Well, I’ve wrote up an example and it’s the Coding 101 weather station.

Shannon: Ooh.

Patrick: And it’s a rather simple script; just enter with the postal code, so for Petaluma its nine four nine five two. And current weather, at Bright Star Weather Station in Petaluma, California is eighty-five point one degrees Fahrenheit and clear.

Shannon: Yeah, I can attest to that.

Fr. Robert: So this is this underground weather module that we just downloaded, where is it pulling this data from?

Patrick: It’s pulling it from Weather Underground, their website: w weather underground dot com, they have a module just to pull that data. So I can go through more examples here, and it will show what I did to the script. If we look at the weather in oh four oh seven three…

Fr. Robert: Maine.

Patrick: Oh, it’s clear there now. Earlier there was a thunderstorm.

Fr. Robert: How about San Francisco: nine four one one six.

Patrick: Nine four one one six; I wonder if…oh, it’s partly cloudy there.

Shannon: Oh, look at that.

Fr. Robert: Partly cloudy, and there is a chance of Guardians of the Galaxy. What is that? You pulled a picture from the movie?

Patrick: I have the background changed depending on what the weather is. So here it’s partly cloudy, so you get clouds. If we look at, let’s see, oh two one three four.

Fr. Robert: oh two one three four.

Patrick: Mostly cloudy, in Cambridge, Massachusetts.

Shannon: That’s cool, okay, so it works.

Patrick: And, I have another one: oh three five eight nine. Fog on Mount Washington.

Fr. Robert: Okay, so this is actually a great example of a module that’s very generic because I get it, you hit it, give it, you give it data, which is the postal code of the location. And it gives you back the weather at the location.

Shannon: What?

Patrick: Apparently there is a sharknado in New York City.

Fr. Robert: Oh my goodness.

Shannon: Oh, that’s great.

Patrick: So I can show off the code that I used to do all this: You get extra comments because it’s the last Perl module; I want to make sure everything is covered. People can find this under GitHub, later on. So…

Shannon: Your code is so pretty.

Patrick: I use the Perl CGI module that I introduced last week. This is just CPAN module but it’s pretty standard to be installed on most web servers. Now when I installed the Weather Underground module on my Mac here, it installed it in my own private directory. So I actually had to tell Perl to use any libraries it finds in the Perl five directory.

Fr. Robert: Right. And I already showed them where they would find that if they have a Windows machine. It’s going to be in the C drive, it’s going to be Perl C four, it’s going to be CPAN, it’s going to be BUILD and then you find the library.

Patrick: Right. Then I just set page titles to that if I wanted to change it to something else in the three places I use it, I didn’t have to do that. Then I have this (Unintelligible) just to print the top of the (Unintelligible) page. And we will go down to where that is, that’s just doing the content type, and then the head, it pulls the net page title.

Shannon: Oh, that’s nice.

Patrick: That’s just to get it out of the way. And then if you submitted the form via POST, display the weather. But, I started out down here with else, if it’s not a POST there was no form data submitted. So it just displays the sunny background, and then top of page, it does search box, and then the footer.

Shannon: Right.

Patrick: So it’s just displaying the title of the page, the search box, and then it closes off the HTML.

Shannon: And that only happens if they don’t put anything in.

Patrick: No, that’s if I go straight to the Perl script without submitting.

Shannon: Ah.

 Fr. Robert: If they try to Get it….

Shannon: If they like, bookmark it or something.

Patrick: If I go right there, I just get the blank page.

Shannon: Cool.

Patrick: No “oh, the weather is currently whatever.”

Shannon: Okay.

Patrick: So when I do a POST, that’s this part: if the request method equals POST, I look at the form submission, so I take the input from the CGI script, and I just pull out the zip code parameter, and I save that in this variable. Then I use the Perl module. And there were instructions that came with it that told me how to do it, so that came in very handy.

Shannon: Oh, cool.

Patrick: They had little examples, so I just copied the code and they had actually hard coded a place, but I put in my variable, because I wanted to be able to change this. So I have it set the place with the zip code and if I change this debug to a one, it displays all sorts of variables and information, which was useful when I built this to help debug the code. And if there’s an error…

Shannon: What is this “die?”

Patrick: That, if there’s a problem, if their site is down, it will die.

Shannon: Oh.

Patrick: And it will come up with an error: cannot create weather object.

Fr. Robert: What I like about this is you are also showing them you should always build “fail” into your code.

Patrick: Yes,

Fr. Robert: There should always be something that happens when it receives something unexpected. You did that with the L statement so that if someone tried to bookmark it, it will come back with a default screen, and you have done it here, if the service goes down.

Patrick: Yes.

Fr. Robert: Otherwise what will happen is the program will either spin its wheels or it will just give an unknown error to the user, and they get ticked off.

Patrick: So if you look at the next step, it gets the weather back, so it has this array ref, it’s just an array, or, it’s a variable but it fits an array that has the weather, and then it, there’s this one in the example that I used to help me code this because it listed all the variables it returns and all the values so it tells me it had temperature in Celsius and it had wind, it had moon rise, sunset, it has all sorts of information.

Shannon: Oh wow.

Fr. Robert: That you didn’t really want.

Patrick: I didn’t really need all that but it was there, so I could pull out the ones I wanted.  And so I did that down below where I set the place, which was, you’ll notice after I enter the zip code it said the name of the city. And then I get the temperature in Fahrenheit, Canadians could change that to Celsius, or any other country. And then the conditions; this is where it says “sunny” or “partly cloudy.” If you actually look at the Weather Underground site, and search for a place, Petaluma, this is where it would say “clear.”

Shannon: Ah, okay.

Patrick: And so, it’s just pulling the value. Go back to my code; and then down here I’m doing all the crazy stuff.

Shannon: Whoa.

Patrick: I made this special exception: if you enter the zip code one oh one oh one, it doesn’t care what the weather is, it just says, “oh no, it’s a sharknado,” and you’re in New York City.

Fr. Robert: That’s what we would call an Easter egg.

Patrick: Yes, exactly.

Fr. Robert: Something color coded to give you something strange.

Patrick: And then if the condition was fog or mist, I changed the background to “fog”

Shannon: That’s cool.

Patrick: And then text color, because it’s a light colored background, I want to make text black, so I used the hex code for black, as opposed to the sharknado and the thunderstorm ones, which are dark images, so I needed the light color. And so it does that for “partly cloudy” and “scattered storms,” the Guardians of the Galaxy image. But if it’s just cloudy, or overcast, it will use a different image. And then any of the rain ones, “shower,” “thunderstorm,” “rain,” will use that image. And then if it’s something else, it just assumes it’s sunny. So if it’s going to snow, you might want to put in something.

Shannon: Yeah.

Patrick: Right now, I don’t have that.

Shannon: So where did you put all these backgrounds? Like where are the actual files?

Patrick: Yeah, I was getting to that next.

Shannon: Oh okay.

Patrick: It prints, after it gets all this set, it prints the top of the page. And in that; I’ve got this thing down here; it sets a little style sheet in HTML, and it uses an image, and then this background variable.

Fr. Robert: That’s a variable, right.

Patrick: So that’s where I had fog, I had sharknado, I had rain…

Shannon: How cool.

Patrick: And it just pulls in the image from this directory on my web server. So I have all these images.

Fr. Robert: Now something that might be interesting to note for people who are going to start playing with this: notice how if you look at the original images as he’s doing each condition, he did put “guardians dot jpeg,” or “cloudy dot jpeg”

Shannon: Yeah, he actually put the variable.

Fr. Robert: He actually put “guardians” and then down below, the variable only replaces the first part of the file name, and it leaves dot jpeg. So that’s all you have to do, and it will adjust itself every time it makes a new selection.

Patrick: Now if I wanted to use a png, then I would have to go and include that part in the name, because they are all jpegs.

Fr. Robert: But in your instance, all your graphics were jpegs so you don’t have, the ending was the same so it’s not variable, and if it’s not variable why use a variable.

Shannon: You would have to mess with the code a lot if you wanted a dot png because then it would show up as dot png dot jpeg, wouldn’t it?

Patrick: Yes, unless I made the back grid variable elsewhere include either dot jpeg, dot gif, dot png, dot whatever.

Shannon: Right.

Fr. Robert: It’s just more work.

Shannon: Yeah.

Patrick: And so I just set the text color and I have the search form included.

Shannon: There’s the POST sign!

Patrick: Yes, there’s a POST and so this form can submit back to itself.

Shannon: Cool.

Patrick: Because it is displaying in HTML form within itself, so it just submits to its own place. And, so yeah it just works.

Fr. Robert: So Patrick, I could see someone who starts to play with CPAN modules kind of freaking out because once they have downloaded them they don’t know what to do with them. You know it seems really simple when you do it, when you go and download a module and use it, we can see your code, but what would you say is the key for someone getting a module and figuring out how to push data to it and how to get data from it?

Patrick: Well it really depends on the module because they all do different things. I mean you have modules to do just basic HTML things, you can make the headers of the page, or you have complicated modules that go and they can manipulate images for you, resize images. And you could post to Twitter, you could post to Facebook with some modules, so it depends on the module and you need to look at the documentation for the module to figure out how that works.

Shannon: Okay.

Patrick: And hopefully they have some good example code that you can at least try out and I did that, I just took the example and made sure that the module worked. I had actually tried a different module before this one, it was for Google Weather, and I put in the example code and it didn’t work. And after doing a little bit of research I discovered that Google had actually disabled their support for that. So that’s why it wasn’t working. It wasn’t my fault.

Fr. Robert: I have to say that’s one of the downsides of having these huge, huge networks is that the archive, there’s normally at least a decent percentage of those modules that no longer work. Either they haven’t been updated for the latest version of any particular programming language I’m using or the services on which they were built on have died, shut their doors. So you always have to test before you go for it.

Shannon: Make sure it’s not broken.

Patrick: I did want to point out, I saw somebody in the chat ask if the background dot jpeg was the entire variable, it’s actually just background. It realizes that period is not a valid character for variable name so it knows…

Fr. Robert: It takes the place of that.

Shannon: We got this really cute picture in the Google Plus community from programming dot com that says, “Please code as if the guy who ends up maintaining your code will be a violent psychopath that knows where you live.”

Fr. Robert: We call that comment; comment, comment, comment, comment. Put as many comments as you possibly can. Comment so much that it hurts. Comment so that people looking at your code will go “My gosh, why you are commenting so much?” Unless you hear that, it means you aren’t commenting enough.

Shannon: I love that, it’s so true.

Fr. Robert: Patrick Delahanty, we want to thank you so very much for sticking with us, for being our code warrior for the last eight weeks. It’s been a challenge; Perl is an interesting change.

Shannon: It’s a challenge.

 Fr. Robert: It is a challenge, because it doesn’t give you the warm fuzzy, like CSHARP did or Python, where you have, “This is MY Program.” Perl is all about building off integration with HTML, integration with other modules, integration with other languages, so…

Shannon: Which can be really cool because you are able to work with so many other coders on things like this.

Fr. Robert: I think the nest thing about Perl is that it shows you how interconnected the programming experience is. You can’t just code in one language anymore.

Shannon: Yeah.

 Fr. Robert: You kind of need them all.

Shannon: You need to know several. I’m so glad we’re doing this show.

Fr. Robert: Exactly. Well Patrick, if you could, please tell the folks where they can find you, we will bring you back at some point, until then we’re going to put you back in your dungeon. Back up in the TWiT brick house. So make it good, where can they find Patrick Delahanty?

Patrick: You follow me on Twitter at P Delahanty, and also my website is adequate dot com, it’s just a portal to everything else I do.

Shannon: Hey, I see people.

Patrick: Yeah, there’s Anime cons TV, there’s the Chibi Project, and all my other websites are linked from that one place. Yes, I did put a Dremel through a GameBoy.

Fr. Robert: Oh, by the way, I should mention this, it’s a good comment: coming from Dallas, directed at you, saying yeah if you put that many comments, also budget into your project time updating your comments as you update your code.

Shannon: Yeah.

Fr. Robert: That’s super frustrating. I love comments, but I hate people that have comments in there that no longer apply. Like they fixed the bug, so they don’t have to comment, but they still do, so you have to work around the comments why it is like blah.

Shannon: One thing I have noticed, too is read all of the comments and all of the code before you start messing with stuff, because sometimes people will put comments after the line that it’s included with, which is really confusing.

Fr. Robert: I used one module that had three hundred lines of comments, but they were all at the bottom, I was like, oh, seriously?

Patrick: It’s just poor design.

Fr. Robert: It’s lame, it’s lame, but I actually took the lines of comments and put them up where they were deserve to be, and uploaded it back into the repository. And he got mad at me, but eh, whatever.

Shannon: Oh, that’s funny.

Fr. Robert: I think that’s about it. I know that this is a lot of material, so if you want to find out exactly what we did, you can always find our code, our examples, our links, at our show page; where is that found?

Shannon: That’s over at TWIT dot TV slash coding one zero one. And you can find the link to the GET hub, where Padre has been updating it with all of our code, as well as show notes, and our actual shows.

Fr. Robert: Yes. We are still working on a better way to show off our code, we would really like everything on one page. I think that’s going to come with the new website redesign. So stay tuned. Also, as Shannon mentioned before, you have to join the G Plus community. It’s over a thousand users and growing; it’s a really good place to go if you are an expert, an intermediate or beginning programmer, because it is filled with people who will help. They are always helpful in there. Tell them what your problem is, tell them what language you are using, and I guarantee there will be some people who will have the answer.

Shannon: Our Google Plus community is Awesome! So we do have a profile, which is what he’s showing, and then there’s the community, you have to search inside of communities to find it, and I think it’s also like plus dot Google dot com slash communities slash TWiT coding one oh one, maybe? They always switch it up, it’s very hard to find it if you just type in a link. So, it’s easier to just search.

Fr. Robert: Woot! Woot! Also, you can find us on Twitter, that’s probably the best way to get a hold of us; we don’t do the email thing so well. You will find me at Padre, Twitter dot com slash Padre Estre, that’s at Padre Estre.

Shannon: And I’m at Snubbs.

Fr. Robert: Whoa! Where did you come from? I thought you were Skyping in?

Shannon: This is so weird.

Fr. Robert: Wait, where do they find you? At P Delahanty, on Twitter. There’s your empty desk. Until next time, I’m Father Robert Ballecer,

Shannon: I’m Shannon Morse!

Fr. Robert: End of line.