Coding 101 28 (Transcript)
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.