Coding 101 17 (Transcript)
Shannon
Morse: Today on Coding 101 we are
reviewing outputting lists. We’re going deeper into sorting, and, it’s tuples
time!
Netcasts you love, from people you trust. This is TWiT!
Bandwidth for Coding 101 is provided by Cachefly. At C-A-C-H-E-F-L-Y dot com.
Father
Robert Ballecer: This episode of Coding 101 is brought to you by Hover.com. Offers the
best way to buy and manage domain names. It’s simple, honest, and easy to use. For
ten percent off your first purchase, go to hover.com and enter promo code C101. And, by Lynda.com. Learn what you want, when you want, with access to over 2,400
high-quality online courses and training videos, all for one
low monthly price. To try it free for seven days, visit Lynda.com/c101.
That’s L-Y-N-D-A dot com slash C one zero one.
Fr. Robert: Welcome to Coding 101. It’s the show here on TWiT where we let you into the world of the elite code
monkey. I'm Father Robert Ballecer.
Shannon: And I’m Shannon Morse and for the next 30 minutes
we are going to get you all coded up on everything you need to know to be a
code warrior.
Fr. Robert: Shannon, it’s getting kind of sad, we’re getting
close to the end of the Python module, here, right?
Shannon: No, don’t remind me, man.
Fr. Robert: I know.
Shannon: Don’t remind me.
Fr. Robert: It was a good idea at first. I remember, we’ll say
we’ll do these eight-week modules. I’m getting into this language. I don’t want
to go anywhere.
Shannon: I know. I started learning things and then I’m
like, I don’t want to stop! Why do we gotta stop, man?
Fr. Robert: It’s true. It takes like four weeks just to get to
the mode where you’re like starting to absorb the knowledge.
Shannon: OK.
Fr. Robert: Speaking of absorbing the knowledge, we had some
decent lessons last week.
Shannon: Oh, my gosh!
Fr. Robert: Did we get something for Snubs compiled?
Shannon: We did. We reviewed everything that we absolutely
could, last week, and we also went through some sorting. We also did some sorts
of alphabetical lists, and then we outputted that list to a file. So, I have my
program this week—
Fr. Robert: Ooh.
Shannon: —right here. I’m gonna go ahead and open it for
you. This is my wedding RSVP list, so it’s the same one that you saw a couple
of weeks ago, basically has all the names, and then it outputs those into a
file. But they aren’t in alphabetical order, so that’s not gonna help my venue
very much—
Fr. Robert: Right, right.
Shannon: —so I hit Enter to continue and it alphabetizes
the list. At the very end you’ll see it says “Guests are now sorted
alphabetically in a new file. Press Enter to exit.” So I hit Exit and then I go
down here and there’s a new file called Shannon Write and this has my—
Fr. Robert: Bam!
Shannon: —list of people alphabetized. Now, they aren’t
separated right now. I know I need to add I think a splash N somewhere in
there, which I’ll figure out, but it does have the alphabetized list, so it
works!
Fr. Robert: So this—
Shannon: Dale helped me with this, thank you!
Fr. Robert: Exactly. This is what I like about this. So you’ve
got the raw code, I mean, you’ve got the function working.
Shannon: Yeah.
Fr. Robert: Now you can go back and say, you know what, I want
this to look pretty.
Shannon: I can make it look pretty.
Fr. Robert: I want it to be comma-delineated.
Shannon: I can add a whole bunch more guest if I wanted to
, because there’s no end to how many are in that range, so I can do as many as
I want to if I want.
Fr. Robert: Exactly.
Shannon: It’s fun!
Fr. Robert: And once you’ve got that, it’s the circle of life
in programming, once you have a way to pull data in from a disparate source, a
text file—
Shannon: Yes.
Fr. Robert: —process it in some way, and then push it back out
into, again, a text file, a disparate source I can push to something else, you
really do have a complete program.
Shannon: You do.
Fr. Robert: It actually does something useful.
Shannon: Something useful, and that’s totally why I love
doing this show. And I also wanted to show a couple of fan submission as well
that we got on the Google Plus community. The first one was from Daniel, we
showed his last week, so I’m not gonna show it again, but go over there and
download his example. This is a perfect
produce of what you can do by inputting information out of a couple of text
files, and then outputting it into a very organized text file that you can
actually use. Yay, usefulness! Now the other one I wanted to show is from
Darrel. So if I go back over to my file directory, so this one’s from Darrel,
he first has this interesting little memory database.
Fr. Robert: Whoa!
Shannon: Yeah, it’s so weird, it’s a text file. There’s a
bunch of information in here, OK? Isn’t that crazy?
Fr. Robert: Well, obviously he has a bit of extra Python
knowledge.
Shannon: All right, so I just made that into a text file so
I could download it, and then I created a Python file. So if I click on the
Python file, so basically what it’s taking me and doing—and this one does not
output into a text file—this one just takes information from memory. So it has
Padre, Shannon, Darrel, and Timmy, and it sorts them by name, by age, and by
ZIP code. And I love how he organized it in this code so that each one is
indented, so it’s a very nice, organized file of information and it kind gives
you a nice little spreadsheet, almost. So if I hit Enter to close, I’m gonna go
ahead and show you what his code looks like. So it’s a little bit advanced, but
he has a lot of notes in here, so read the notes. It’s very helpful. But
basically he has name.list.txt and then he has this list of people, their ages,
and then their ZIP code, whatever that might be.
Fr. Robert: Mmm-hmm.
Shannon: I think he’s from Europe, given the four digits in
the ZIP code. And then it outputs that information into the organized list for
you, by age, by ZIP code, and by name.
Fr. Robert: Fantastic!
Shannon: Yeah.
Fr. Robert: Now what I like about this, is, this is actually
touching on something that’s we’re going to be talking about today, when we get a bit deeper into lists and when
we get into tuples.
Shannon: Oh, boy!
Fr. Robert: Yeah, because remember the whole idea of having
something like a list, and the reason why it’s more useful than, say, just a variable,
like a variable test, is because it allows us to group together data, remember?
Shannon: Oh yeah, absolutely.
Fr. Robert: Super important, right?
Shannon: Yeah.
Fr. Robert: Yeah. It’s one thing to have each person in your
reception party have their own variable in order to be able to carry their
name, and one to carry their age, and one to carry their table.
Shannon: Yeah, of course.
Fr. Robert: But when we can actually start grouping together
useful information like name, and table, and age, or food preference, and we
make that all one so we can—
Shannon: Perfect!
Fr. Robert: Exactly.
Shannon: And then I could group them depending on who I’m
sending the information to. If it’s for my photographer, I’ll sort them by who
are family members, who I need to be photographed. If it’s to my venue, I could
sort them by what table numbers and what food group that they decided to
choose.
Fr. Robert: Yeah.
Shannon: All so fun.
Fr. Robert: Oh, by the way, we got Kyle Potts in the chat room
who’s saying Notepad to program? Actually, yes, this is one of the reasons why
we chose Python. The last language we did, C#, required a pretty complicated
developer environment.
Shannon: Yes.
Fr. Robert: Python is nice because you can use Notepad. You
can use V. You can use Emacs. Whatever
you want.
Shannon: That’s why I’ve been doing so far, and I just add
.py to the end and that’s how I save the file.
Fr. Robert: Yeah.
Shannon: It’s very easy for me to write into Notepad. The
only issue that I’ve come across a couple of times is whenever I have an error, it doesn’t tell you where that error is.
Fr. Robert: Yeah.
Shannon: Because it closes too fast for you. It errors out.
Fr. Robert: Yeah.
Shannon: So you’ll have to go back and figure out where
that error is yourself.
Fr. Robert: And the other thing about using just any sort of
text editors, remember that Python is extremely white-space sensitive.
Shannon: Yes.
Fr. Robert: It’s not like C#, where as long as you end the
line with the proper comma delineator, it’ll end the line and move on to the
next, Python looks at where things are indented, it looks at where things are
placed in the page, so if you do use a text editor that’s not Notepad or one of
the standards, just make sure that’s it’s not adding extra control characters
or spaces.
Shannon: Yeah. Absolutely. I ran
into that problem too.
Fr. Robert: Which is good, right?
Shannon: I should show you my code for my example, though.
Fr. Robert: Yes, please.
Shannon: Let me run over here, back to my folder, because I
did have a question for our audience. I wanted to find out what they thought of
my code. There we go, slash idle, all right. So here’s my code for my example
that I decided to show off. This is the wedding RSVP list. First I opened and
read the file, and then I sorted them right here, and this is just a simple
sort list, and at the very end I outputted that sorted list into a file. Now I know
that I have to add that slide, and I think it goes right here, but I’m pretty
sure maybe I need quotes here. I’ll have to look that up, I’ll have to research that.
Fr. Robert: We’ll fix it. We’ll make it right.
Shannon: So I want to ask you guys to fix that for me.
Fr. Robert: That’s a good homework. This’ll be in the Github, so go in there and fix Shannon’s code.
Shannon: Yes, it will be.
Fr. Robert: And also make it pretty.
Shannon: Yeah, make it pretty.
Fr. Robert: Menus and everything.
Shannon: I want to make it pretty.
Fr. Robert: Go ASCII crazy.
Shannon: Menus, really? ASCII?
Fr. Robert: Why not? They can do it.
Shannon: Do it.
Fr. Robert: They’re smart.
Shannon: Have fun.
Fr. Robert: Now, when we come back, we’re going to be getting
a little deep into some of those data thingies, structures—
Shannon: Like tuples?
Fr. Robert: —lists and tuples that we were talking about.
Shannon: Tuple-wares.
Fr. Robert: We’re gonna get into Tupperware, tuple-ware,
sorry. I always mess that up.
Shannon: Welcome to the tuple-ware party!
Fr. Robert: Exactly. It keeps your data fresh.
Shannon: [laughter]
Fr. Robert: No.
Shannon: No.
Fr. Robert: No.
Shannon: No. We hear a wa-wa from the audience.
Fr. Robert: Sad trombone. But you know what’s
not a sad trombone?
Shannon: What?
Fr. Robert: Hover.
Shannon: Oh.
Fr. Robert: Yeah, so one of the sponsors—
[sad trombone sound
effect]
Fr. Robert: Hover does not get sad trombone. What’s wrong with
you, Bryan?
Bryan: I’m totally on top of this.
Fr. Robert: You have way too many buttons. But seriously, we here
are all about the interwebs, right?
Shannon: Absolutely.
Fr. Robert: We like ourselves some interwebs.
Shannon: I love the interwebs.
Fr. Robert: And in order to have a presence—
Shannon: Interwebs citizen.
Fr. Robert: Yeah, exactly. We’re both citizens of the interwebs.
Shannon: Yes.
Fr. Robert: But you know what you need, like your passport, to
be traveling through the interwebs?
Shannon: Oh, what’s that?
Fr. Robert: A domain.
Shannon: Oh yeah, you need a domain.
Fr. Robert: Yeah. Now there are a lot of fly-by-night outfits.
You know them, I’m not gonna have to mention them. I don’t want to mention
them. But you really want someone who you can trust, before you trust them with
your domain. I mean this is your identity online. You want to make sure it’s
done right. Which is why were’ so happy to have Hover on Coding 101. Now, you
want to secure that domain. You want something catchy and memorable to
represent your online identity. Well, Hover gives you exactly what you need to
get that job done. You’ll find the perfect domain for your ideas so you can get
started working on it, and move on to the next thing on your to-do list. In
other words, don’t spend all your time figuring out how you’re gonna get that
domain you want, just go to Hover, buy it, be done, and start creating. Now
people love Hover. When you’re looking for the best place to register a domain
name, you ask the people who know a lot about domains. Like Stubs and myself.
Geeks, developers, designers, and programmers all love Hover because they know
that they’ll have the best tools and support. But you don’t have to be an
expert to get a domain. Their service is simple enough to use that you’ll be
comfortable figuring it out yourself, and the support team is always ready to
give you a hand. Now Hover takes all the hassle and friction out of registering
a domain. It gives you an easy-to-use, powerful tool to use to manage your
domain so that you can do it, well just in your pajamas. You can get the
perfect domain name and start building your web presence right away to take
control of what people find when they search for you or your online business.
Now, if you wanted to use Hover, it’s easy. All you have to do is search for a
few key words and Hover will show you the best available options and
suggestions. Hover has a clean and simple web site. In less than five minutes
you can find the domain name you want and get it up and running. And they got a
huge variety of domain extensions , like .com, .net, and country codes that
best suit your needs, so you can get just about anything. Now, here’s the big thing
for me. Hover is honest. They don’t believe in heavy-handed upselling. They’re
not gonna make you get this package or that package when you buy your domain.
They tell you what it’s gonna cost and that’s exactly how much it’s going to
cost. They include everything that you need with your domain, no more, and no
less. Plus, WHOIS privacy is included free on every domain that supports it.
Now if you ever need a hand, Hover is, well, just a phone call and an email
away. They’ve got the best customer support, hands down. They’re for its no-wait, no-hold, no-transfer phone service, and when you call
you actually get a real live person. How about that? Now what got me excited is
that Hover actually has a lot of the new key TLDs, including the .club. Now you
don’t have to settle for something that’s less than perfect anymore by adding a
dash or dropping a letter. For anyone who’s tried to register a domain nowadays
knows how difficult it is to get something in the .com, .net, or .org space.
You always have to find a freaky spelling. Well don’t do that! Instead, get a
.club. It’s perfect for any kind of club or social group. A country club, a
book club, a sports club, even Facebook groups. There are so many applications
for .club, and they’re descriptive. .Club has its meaning built into it. Which
means people will know what your web site is about. Your domain can be short by
eliminating that club from the actual domain name, and they’ve got a lot of
them available. You have a better chance of getting your name, so you can get
rid of all those dashes or words you didn’t want there in the first place. So
here’s what we want you to do. We want you to visit hover.com to register your domain
name, and get 10% off your first purchase. All you have to do is go to
hover.com and use our promo code: C101. That’s hover.com and our promo code C
one zero one. And we thank Hover for their support of Coding 101.
Shannon: Yay!
Fr. Robert: Woot! Yah-tah!
Shannon: Woo-hoo!
Fr. Robert: Now—
Shannon: Let’s do some more now.
Fr. Robert: Let’s do some more. So, we gotta talk a little something-something before we can get into tuples.
Shannon: A little something-something?
Fr. Robert: A little something-something.
Shannon: OK.
Fr. Robert: There are actually a few things that I
think we should probably review before we get into tuples. It’s always good to
go back over some of the material that we’ve covered, starting with, well, a question from Ted Bigham, who
asks, why do certain chipsets support certain languages? This was actually
something I found on Twitter. This is
actually a good question, right?
Shannon: That’s a really good question.
Fr. Robert: Right, you always hear about, oh,
well, use Python if you’re programming for the Raspberry Pi, and C#’s really
good for Windows on an X86. And he wanted to know, basically, well, do you have
to use C# if you’re on an X86 processor, do you have to use Python if you’re—
Shannon: Not necessarily.
Fr. Robert: Yeah, here’s the thing: It’s not bound
by the processor. The way that compilers or interpreters work, like the one
allows C# to work or the one that allows to Python to work, is it takes that
language, everything that we write, and it converts in into machine code. Normally, binaries or an executable.
Shannon: The ones and zeroes.
Fr. Robert: The ones and zeroes that the processor
can actually understand.
Shannon: Yes.
Fr. Robert: Or at least the operating system can
understand. So when we talk about a compiler or an IDE or an interpreter being
tied a specific processor, it’s not because that processor speaks Python, or
that processor speaks C#. It’s because the compiler has been designed so it
will convert the language into the machine code for that specific processor.
Shannon: Ah!
Fr. Robert: Does that make sense?
Shannon: Yeah, it does. That’s interesting.
Fr. Robert: We get a lot of people who are
confused about that, because they think that, you know, when I type in Print in
Python that it means the processor actually understands what Print is. It has
no clue. The interpreter for Python actually has to turn that into something
that the OS can read and then can push to the processor, the machine level.
Shannon: That would make sense, given the name of these things is compilers.
Fr. Robert: Yeah, it’s a little bit of basic
knowledge and Ted, thank you so very much for asking, because I think that’s
something that a lot of people were wondering about. Theoretically if you
wanted to, you could take something like C# and you could recompile the
compiler so that it would work on every type of processor. We just typically
don’t do that, because that’s boring.
Shannon: We won’t do that on this show.
Fr. Robert: We won’t do that on this show. All
right, now let’s get to a little something-something.
Shannon: Yes.
Fr. Robert: We know about lists. We’ve been
playing a lot with lists.
Shannon: Yes. I love lists.
Fr. Robert: Well, we have a way of printing from
lists, right? We’ve been using this. If you go ahead and go to my computer,
this is the method that we’ve been using to print. So we’ve got this list
called podcasters that’s filled with Leo, Lisa, Padre, Snubs, Bryan, OMGchad, and then 1234. That’s our newest podcaster.
Shannon: 1234, yeah, he’s great.
Fr. Robert: He’s awesome, he’s gonna take my
place. And then we’ve been using a “for loop,” right? We go through this list
and we say print the list and then the entry number in the list, and as it goes
from zero to seven, it will go through all the different entries within that
list, and you get this: Boom! It prints up everything that’s in the list. Right?
Shannon: Yes, exactly, from the very first one
all the way to the end.
Fr. Robert: All the way to the end. So this is
what we’ve been using when we’ve been wanting to print
from a list. This works, and this is good, and actually I like doing it this
way, because it does make you use for loops. But there’s actually an easier way
that I want to show you right now, and that’s to do this. Remember that a list
really just looks like a variable to Python. So I have the same thing; I have
my list with all those people, and instead of using a for loop I’m just gonna say print podcasters. I’m just gonna say print the list.
Now, you think you know what this is gonna look like?
Shannon: Will it look exactly the same?
Fr. Robert: Almost. It’ll look like this: So when
I print this…
Shannon: Oh, one line.
Fr. Robert: Yes, it’s got them all in one line. So
basically all it did was it did a dump of everything that was in the list.
Shannon: Right.
Fr. Robert: Right? So it will give you the same
results, and you’ll see what’s inside the list, but the format is slightly
different.
Shannon: Yeah, it even includes the brackets
and the little quotes.
Fr. Robert: Right, right. It’s literally printing
everything that’s in that list.
Shannon: Because it doesn’t know that that’s
actually telling you that it’s a range.
Fr. Robert: Right, it just dumping. It’s dumping
everything. So the list is a memory address. Saying print the list actually
just dumps that memory address on the screen. Whereas if we use the for loop, we’re pulling each individual element out of
each piece of that list and printing it to screen.
Shannon: Got it. That’s cool.
Fr. Robert: It’s kind of cool, right?
Shannon: Yeah. It looks a little easier, but
it’s not as pretty.
Fr. Robert: Exactly. It’s not as pretty, and also,
remember, the reason why we wanted you to do it with a for loop is because you could add things to that for loop to play with the
elements, right?
Shannon: Yes.
Fr. Robert: If I’m just printing out the memory
dump of the list, there’s not a whole lot I can do. I shows me what’s in there, but beyond that not really useful.
Shannon: Right, yeah.
Fr. Robert: Yeah, yeah. So that’s the second way
to do print. What we also wanted to do is we wanted to show you the way that
we’ve been doing sorts. So this is our sorts, right? We’ve got a list called SortMe, it’s filled with all these numbers. We’ve seen this example before. And then
I’m using a for loop to go ahead and print what’s in
that list, and then I run the .sort function. Remember this?
Shannon: Yes, I do.
Fr. Robert: So all we have to do is we do sort and
we add that function, we append it to the name of the list, and it will do a
destructive. It’s called an in-place sort. So it’s going to reorder the list
called SortMe with the reordered list.
Shannon: Oh, that’s weird.
Fr. Robert: Here’s what it looks like. The first
time it runs, it’s gonna print what was inside that list, what I gave it: 1,
23, 6, 4, 99. Right? So when I press Enter, it now
shows me, Oh! It’s all been sorted: 1, 4, 5, 23, 99.
Shannon: OK.
Fr. Robert: But here’s the thing: What I’ve just
done, is I’ve overwritten the list called SortMe.
It’s been destroyed. It’s been destroyed in favor of the list that is sorted.
Shannon: Oh!
Fr. Robert: It’s a destructive sort.
Shannon: That’s so weird!
Fr. Robert: Right, right. That’s good. Sometimes
it’s good. If you don’t care what’s going on with the original array, then
that’s great. But, we can do a non-destructive sort.
Shannon: Oh, lord, what is going on here?
Fr. Robert: All right, so, we’ve got the same
thing, we’ve got a list here called podcasters, filled with all those
podcasters—
Shannon: And then you just print that—
Fr. Robert: Right. Just gonna print it, to show
you what’s in there.
Shannon: Yeah.
Fr. Robert: Right? Now I’m gonna sort it, but I’m
gonna sort it two different ways. So, I’m gonna use not sort, but I’m gonna use
the function called sorted, and what I’m gonna do is I’m gonna say this new
list, called sortedpodcasters, will be equal to—so
it’s going to be filled with the value—of the list called podcasters, but
sorted.
Shannon: OK.
Fr. Robert: OK. The reason why we’re doing this is
it’s going to keep the original list while also giving me a sorted list.
Shannon: Ah, OK, so it’s not destroying it in
the process.
Fr. Robert: Right, this is not an in-place sort,
it’s not a destructive sort; it’s a sort that gets pushed into a new list. So
when I run this, I get this. That’s just a dump, right?
Shannon: Yes.
Fr. Robert: OK, so, go ahead and hit Enter. Now I
get two: I get the original list, which matched up to what you see at the top,
but I also get the sorted list, which is now sorted alphabetically, right?
Shannon: That’s cool!
Fr. Robert: Now the cool thing about this is I now
have two copies of that list, so if I ever wanted to go back and compare lists,
I could say I’ve got the pre-sort and the post-sort list.
Shannon: So I wanna run through the rest of your code for this, so I can see the differences.
Fr. Robert: All right. I gotta look over here. There we go, OK.
Shannon: OK, so first you have print podcasters—
Fr. Robert: Right.
Shannon: —and then you have print sortedpodcasters. Oh, yeah, that’s easy!
Fr. Robert: Very easy, right?
Shannon: OK. So the first time it prints the
podcasters, the original list, and then second time it prints sortedpodcasters, the new variable that you made.
Fr. Robert: And this is the key line right here.
So the key line is sortedpodcasters is equal to sorted(podcasters), right?
Shannon: Perfect. OK.
Fr. Robert: So what I’ve done is, I’m not changing the original list. The original list, called podcasters, stays
the same. But I’ve run the function called sorted on it, which doesn’t destroy
the original list, it just pushes those values to a
new list called sortedpodcasters.
Shannon: That’s awesome!
Fr. Robert: Yeah. It’s actually another way that
you can manipulate data. It’s very useful.
Shannon: Very easy.
Fr. Robert: All right, so, now, let’s do a little
something-something. In the previous example, what we did was we pushed the
sorted list into a new list, right?
Shannon: Yes.
Fr. Robert: Well there are going to be some cases
where you don’t want a brand new list. You just want it sorted at that moment
and then you don’t care about the sorted values anymore.
Shannon: Yeah.
Fr. Robert: In Python, you can actually do this: I
can use the sorted function and I can print it.
Shannon: Oh.
Fr. Robert: So what this does is—again, I’m always
using the same list here, people, the same list called podcasters—now I’m going
to print that list sorted.
Shannon: Print podcasters sorted. OK, cool.
Fr. Robert: What this will give me is this. So—
Shannon: Got it!
Fr. Robert: Right?
Shannon: That’s exactly what I thought it would
look like.
Fr. Robert: Exactly. Now the cool thing about that
is, I didn’t have to create another variable, I don’t
have to have another piece of memory that’s being used up by a list. This is
just printed. It just prints it, and after it’s done printing, it goes away.
Shannon: That’s cool. Nice and easy.
Fr. Robert: Nice and easy. Now let’s to get to
something that maybe people won’t feel is so easy. We’re talking about tuples.
Shannon: OK, tuples.
Fr. Robert: OK.
Shannon: So this is a real thing, you’re not
just making it up?
Fr. Robert: I’m not making this up. This is— I do wanna know who came up with the name, tuple.
Shannon: Tuples.
Fr. Robert: It’s kinda cool. I love it.
Shannon: It’s like quintuples.
Fr. Robert: Tuple. I like tupleware. Tupleware is my big fan.
Shannon: Tuplets.
Fr. Robert: So if you look at the screen, what we
have here is what a tuple looks like. A tuple almost looks like a list.
Shannon: Right.
Fr. Robert: There’s one subtle thing. Instead of a
bracket, I’m using a parentheses.
Shannon: Yeah.
Fr. Robert: Right?
Shannon: OK.
Fr. Robert: OK. Here’s the other thing about a
tuple. These are indelible. You cannot change them.
Shannon: Oh, OK.
Fr. Robert: A tuple is permanent. I create it.
Once you create that tuple, unless you wanna destroy
the record, you can’t change what’s in it.
Shannon: OK.
Fr. Robert: Which has its own uses, right? So
you’ve got semi-permanent information. In this particular example, I’ve created
three different tuples. So again, remember, every kind of variable, be it a
list, an array, or just a straight-up string, or an integer, looks the same in
Python. In this particular case, I’m creating a tuple called tuppy1—
Shannon: Tuppy1!
Fr. Robert: —and I’m filling with those six
numbers.
Shannon: OK.
Fr. Robert: In the second instance, I’m creating
tuppy2, and I’m filling it with these strings. In the third case, I’m creating
one called tuppy3, and notice how I didn’t use parentheses. Instead, I used a
semicolon at the end, right? Now, when I print this, it—exactly like you
think—it’s just gonna print exactly what was in those tuples.
Shannon: OK.
Fr. Robert: Easy, right?
Shannon: Yeah. Looks easy
enough.
Fr. Robert: Easy enough. OK, good. So that’s basic
tuples, and again, the reason we want to use this is anytime we have groups of
information that we want to stay together, that we don’t want to change.
Shannon: OK.
Fr. Robert: All right? We want to make them
permanent. All right, so now let’s go ahead and move from that to this.
Shannon: Oooh!
Fr. Robert: So, we know about lists.
Shannon: Yes, we do.
Fr. Robert: We know about tuples.
Shannon: Yes.
Fr. Robert: Now how about a list of tuples?
Shannon: Oh, boy.
Fr. Robert: This is actually perfect for you,
because when you start talking about your reservations, what are you gonna
have? You’re gonna have name, you’re gonna have age, you’re gonna have all the—
Well this is like a list of lists. But this is a list of tuples. Go ahead and
go back to my screen, Bryan, and let me show you what I’m talking about. I’m
creating a list called quintuples.
Shannon: OK.
Fr. Robert: I’m gonna fill it with three tuples.
Shannon: Oooh!
Fr. Robert: The first one is Padre, my name, TWiET, which is the name of the show I host, and 72, which
is my age. And then it’s filled with you Snubs, and you host Coding 101, filled
with your age, 22.
Shannon: Right, yeah.
Fr. Robert: And then it’s filled with Bryan, he
hosts KnowHow, and his age is 6.
Shannon: Obviously.
Fr. Robert: Right? Exactly. So what I’ve done is I’ve created the list that actually contains three tuples—
Shannon: Interesting.
Fr. Robert: —and the reason why I do this is to
show you, just we like we started at the beginning of the lesson, it’s really
easy to print what’s in here. All I have to do is say print the name of the list,
and list is twit_tuples. And if I go ahead and run
this, it’s just gonna print it out.
Shannon: OK.
Fr. Robert: Right?
Shannon: Yeah.
Fr. Robert: OK. So far,
interesting, not useful.
Shannon: Not useful at all, really.
Fr. Robert: Here’s where it gets useful. So—I’ve
got so many shells open right now—what I’m gonna do is I’m gonna sort it.
Shannon: Oooh.
Fr. Robert: So same thing. I’ve got, all this is just what you saw. It’s going to create a list filled with tuples, it’s going to create the tuples with name, show, and
age. But then it’s gonna do this. Remember the sorted function we just played
with?
Shannon: Yeah, yeah.
Fr. Robert: It’s gonna say print the sorted
version—
Shannon: Of twit_tuples.
Fr. Robert: —of twit_tuples.
Shannon: Oh, I’ve seen this! Key lambda!
Fr. Robert: Key—
Shannon: What is that?
Fr. Robert: This is where it gets useful. What we
are now doing is we can direct, using a key, how it sorts.
Shannon: Oh, that’s cool. So the user can input
something—
Fr. Robert: Well, no. Right here, I get to tell it
how it’s gonna sort. So I’m saying you’re gonna use the lambda key. And
actually it’s very easy if you just go to the Python documentations and you can
see all of the keys that you can possibly use. Go back to my code. It’s gonna
use the lambda key against twit[2], and what that’s
saying is, go to the third field. Because remember it starts at zero. So 0, 1,
2—
Shannon: 72, 22, and the 6.
Fr. Robert: Right. And it’s gonna say sort by the
third field.
Shannon: What?!
Fr. Robert: Which is age, so what it’s gonna do,
it’s gonna sort by age.
Shannon: That’s cool!
Fr. Robert: So if I run this, now it’s reordered
everything so that it sorts it by order of age, in descending order.
Shannon: Wow.
Fr. Robert: Yeah. And I can use that key on the second field, I can use it on the first field. This is where
sorts really become useful, because once I’ve got a collection of data, I can
say sort it by name. Now sort it by show. Now sort it by age. Now sort it by
ascending or descending order. And that’s all in the key.
Shannon: Wow, I can totally see how this would
be really, really useful for my list of people that are coming to the wedding.
Fr. Robert: Exactly. Because now
it extends what you can do. It’s not just, well, I sorted, that’s the
only thing I can do. Now, sort it up, sort it down, sort it by name, sort it by
age, sort it by the table you’ve put them on. As long as
you’ve put everything in the right list.
Shannon: I’m so glad you went over landis, because I was like, what
the— Like, why do you use that in code? I don’t understand.
Fr. Robert: Yeah, yeah. Well, this is all useful
information, but you know one of the things that we really wanted to do when we
come back, is we wanted to talk to our code warrior about how we get other
packages in the Python. We’ve taken you though some of the basics, but what
would be awesome is if he’ll show us how we can take pre-written packages and
use them to extend our programming masterstroke.
Shannon: Oooh!
Fr. Robert: But before that, you know what?
Shannon: I think there’s something that I want
to mention.
Fr. Robert: Yeah, yeah. What I’m feeling, I’m
feeling like this is all good, but I would love to learn more.
Shannon: You want to learn some more?
Fr. Robert: Yeah. We give people little bit and
pieces, but—
Shannon: We do.
Fr. Robert: —but let’s say I actually wanted to
learn Python from the beginning, the way it’s designed to be taught.
Shannon: I know the exact spot that you can go
to.
Fr. Robert: Where?
Shannon: Lynda.com.
Fr. Robert: Nice.
Shannon: Yeah. They’ve got over 2,400 courses, and they’re
adding new ones every single week. From people that are passionate in their fields of service. They do videos in everything from Python
to Java, to beginner programming, to IOS programming. Everything that you could
ever want, and ever need on that website is there. And there are courses for
everybody from beginners to intermediate to really, really advanced stuff, in
case you feel like, you know, I already know the beginner stuff, I can skip
this. And you can watch from your computer or your tablet or your mobile
device, in case you’re on the go all the time, like I am. I’m commuting every
single day. So I watch this stuff. Well I listen to it—excuse me—while I’m driving. I listen
to it on my way to work. Very, very easy, and very
fun. And these people really like to do these videos. So you’re not gonna
watch, you know, it’s not gonna be something that is home-made on Youtube, like you would find sometimes. Lynda.com helps you keep up to date with
software, learn brand new skills, and you can explore new hobbies with
easy-to-follow video tutorials. So whether you want to master the fundamentals
of programming or learn a new programming language, like Python, or build your
first IOS app, Lynda.com offers thousands of courses on a
variety of topics, so you can learn how to program software and applications,
with hundreds of courses on widely used programming languages, like PHP,
Objective-C, and Java. At Lynda.com, you can learn hundreds of courses on web
design and development skill, everything from the web fundamentals and mobile
development to responsive web design and user experience. Interested in
creating an app for multiple platforms? Well Lynda.com is the place to go. They
created a playlist for building a cross-platform mobile app that is available
now at L-Y-N-D-A dot com slash C one zero one. Yay! And Lynda.com just released
a course on getting up and running on asp.net, so you can explore asp.net,
including the structure behind robust asp.net applications and the tools that
you need to manage data, construct APIs, and establish real-time web connections.
You gotta check this out. Lynda.com works with
software companies to provide you updated training the same day new versions
hit the market, so you always have the very latest skills. And you can add certifications
to your LinkedIn profile, which is supercool if you're looking for a new job
and you need to have those kind of certifications for
that said job. So, it’s only 25 bucks a month for access to the entire
Lynda.com course library. Or for 37.50 a month you can subscribe to the premium
plan—that’s what I was doing for a long time—which includes exercise files that
let you follow along with the instructor’s project using the exact same project
assets that they do. Extremely helpful, especially if you’re more of a homework
person, like I am. So you can download everything you need right there. And you
can try Lynda.com right free for seven days. For a free trial you can visit
Lynda.com/c101 to access the entire library. That's over 2,400 courses, free,
for seven days! Do it now! That's L-Y-N-D-A dot com slash C one zero one. And
we thank Lynda.com for their support of Coding 101. Thank you, guys. We love
you.
Fr. Robert: Do it now!
Shannon: Do it now!
Fr. Robert: Now! Do it now! OK. Now, we also have people in the chatroom who are fighting over the pronunciation of tuple. It’s like gif and “jif.” Find the pronunciation that you like, and go with it.
Shannon: Yep, that’s right.
Fr. Robert: Now, Shannon, this is the time of the show when we bring in someone who
actually knows what he’s doing, right?
Shannon: I think we do. Who could it be?
Fr. Robert: Who could it be? Ladies and gentlemen, welcome back to the show our code
warrior, the man who knows, Mr. Dale Chase from Discovery Digital Networks. Dale, so good to see you again. How are you?
Shannon: What’s up, Dale?
Dale Chase: How you doing, guys?
Shannon: Doing awesome!
Dale: So
I’m the one who knows what he’s doing?
Fr. Robert: Yes! That’s how it works.
Shannon: You do! You always know what you’re doing.
Fr. Robert: Oh, by the way, so we gotta ask you, how do
you properly pronounce tuple?
Dale: How
do you properly pronounce—? I pronounce it “too-ple.”
Shannon: Toople. Interesting.
Fr. Robert: You know what? You can’t say toopleware.
Shannon: I think it’s one of those things were it depends on where you grew up
and the way that you grew up.
Fr. Robert: I like “tup-le.”
Shannon: Tuple, gif—
Fr. Robert: Tuple sounds cute. Toople sounds pretentious.
Dale: Toople is how they pronounce it in Brooklyn.
Fr. Robert: And if you mispronounce it in Brooklyn, they will break your knees. Now
Dale, everything that we’ve been doing in this module, seven weeks of this
module, has been based on the programming that you have been doing. You’ve been
giving us the master code every single week. It’s what we teach to, it’s what
we show the people, it’s the example that we give to every code monkey who
wants to get on his way—his or her way, sorry—
Shannon: Yes, that’s right.
Fr. Robert: —to code warrior stardom. But you wanted to do something a little
different today. It’s not really a coding project, it’s more of a knowledge project. You want to hit us with it?
Dale: Yeah,
yeah, yeah. Because a lot of the fun that I had
learning how to code was, like, grabbing packages that added functionality to
the language that I was working in, to help me have more fun with it. And
something that I had a lot of fun with early on was coding my own games. So I
thought it might be fun to show folks how to install a third-party package that
would allow them to have, like, 2-D, 3-D graphics
functionality.
Shannon: Oh, my God.
Dale: And
to mess around with that.
Fr. Robert: No, not interested in that at all.
Shannon: Are you kidding me? Padre! This is awesome.
Fr. Robert: Just break it down for a second. Because some people
may not understand exactly how significant that was. Most of us, if we
think about programming a video game, it’s a freaking nightmare, because I
don’t want to have to create all the code to make sprites—
Shannon: It sounds scary.
Fr. Robert: —and collision detection.
Shannon: But he said you can download that.
Fr. Robert: Exactly. What is this? Why would I be able to download this?
Dale: Yeah.
I actually haven’t had much experience with this particular package, I just thought it looked pretty cool. I’ve found, actually, a video on Youtube of someone actually creating a Minecraft clone using this library called pyglet.
Shannon: What?
Fr. Robert: You mean we could get away from Java?
Dale: Yeah.
Well, I mean, you know, it’s Python, so it’s like, it’s multiplatform but, you
know, certain things you have to consider, but I figured it would be a nice fun way to kind of continue to
learn Python within your own sort of environment.
Fr. Robert: Right.
Dale: Probably
not being able to do much more with it, you know, without going through a
fashion, you know, but nice to help you learn to continue programming, I think.
Fr. Robert: Dale, we’ve already talked about using functions that we haven’t written,
right? I mean, just bring them into your program so you can call on them. Or
even use them to build in functions in Python. We’ve also talked about using
the API from something like Youtube, so you could use
programming across the web. You could query them with queries and they bring
you back information, no matter what you’re doing as long as you’re following
the API standards. How is this different? I mean, this is not another function,
this is not an API, this is an entire package that you
bring into the programming environment.
Dale: Yeah,
this is pre-written source code, so that, you know, it makes creating shapes
and that sort of thing, and color, and streams and whatnot, just super easy, or
easier than doing it from a much lower level. This kind of gives you, this is
pre-written functions essentially, that gives you more
functionality in Python.
Fr. Robert: OK. I’m sold. So I love the fact that I can do this. Can you actually
show me what I would have to do to bring a package into my environment?
Dale: OK,
well, in this instance—and generally it’s pretty simple—in this instance we’re
just going to go to pyglet, p-y-g-l-e-t.org, and go
to their downloads page, and since we’re using Python 2.7, we are going to use
actually their alpha build here, from their latest repository version, because
we need it to run in 32-bit mode, and not 64. Or is it the other way around?
No, yeah, this runs in 64-bit mode, not 32. So I’m going to grab, here we are
here, this 1.2 alpha one here, and just download this.
Fr. Robert: You don’t have any reservations about using the alpha code?
Dale: Generally,
yeah, if this is not going to be something that we’re going to, you know, for
sale, kind of just something we’re going to have some fun with, and generally I
go with a stabler version, but since their stable
version only runs in 32-bit mode for Python 2.7, I’m going to go with this just
for the purpose of this demonstration.
Fr. Robert: Got it, got it.
Dale: So—
Fr. Robert: You downloaded it and—
Dale: Yeah,
so now I’ve got that downloaded, that’s in my downloads folder, so we’ll just
go, and yes I am doing this live, so I’m totally on the wild side right now.
Shannon: Oh, snap!
Dale: So
we’ll go to my downloads here, and that was—what was
that file?
Fr. Robert: Pyglet-1.2.alpha1.tar…
Dale: So
the first thing we have to do is, this is a compressed file, so the first thing
we have to do is unzip it, or uncompress it, and I’m
going to use a build-in command tar, and it takes a couple of arguments—
Shannon: We’re doing some command-line stuff.
Dale: So
this will just uncompress it and put it right back in
the folder where I just— Um… There we go. And so that
just—
Fr. Robert: So these are all the Python files that were inside that package? They’ve
just uncompressed.
Dale: Uncompressed
and kind of—
Shannon: For anyone that’s used the tar.gz, it’s pretty much like a zip, like a
zip file.
Fr. Robert: Yeah, you just find the right utility.
Dale: Exactly.
So, installing this is now is actually is relatively simple, if all goes as it
should. All I do now is go into that directory, that folder that was just
created, and the command that we want to run—on a UNIX system, you’ll probably
want to use another command, called sudo, to make
sure you are—
Fr. Robert: Administrator.
Dale: Exactly.
Running as an administrator to make sure it has all right privileges, and so
we’ll just go, sudo python setup.py, and then you wanna run the command install. You can also add to this if
you’re concerned about uninstalling it later. Actually I meant to have this
ready, but there’s another thing you can append here, called record, and then
some flags for that, that’ll let you put a text file in this folder, which
keeps a record of all the files that it’s putting in, and you can just
reference that when you want to uninstall it. But you can easily find
information on that, if you want to go that far. But simply just the
bare-bones, is just do “sudo python setup.py install”
and I’ll put in my password.
Shannon: His password is ilovecats.
Fr. Robert: 1234.
Dale: Close.
And now it’s installed.
Fr. Robert: And if you’ve ever played with a Linux system, or if you’ve ever played a
Raspberry Pi, you know what this is.
Shannon: Yeah. You know how to do this.
Fr. Robert: It’s compiling your library, and it’s giving you something you can
actually use.
Dale: Right.
And I can prove this—and hopefully I can prove this—so now if I go into
actually my Python interpreter, or the thing here, I just do, so we have our
import command that you’d see us use—
Fr. Robert: Right.
Dale: —in
a few episodes. So now I can do it live here, right, so I can say import pyglet, and if it’s in here, I will not get an error.
Fr. Robert: Cross fingers... Boom!
Shannon: It worked!
Fr. Robert: Yay! Take that, Murphy!
Dale: So
now I can go ahead and start using the library.
Fr. Robert: OK, so yeah, so this, thank you for showing this, because there are
going to be some people who freak out when they download this package, and
they’re not going to know how to use it.
Shannon: Like me!
Fr. Robert: Right. But now we know, we know how to unzip it, we know how to compile
it, we know how to make it ready for use. But how do I
go from doing that to being able to program my own game? Can you show me how I
use this library?
Dale: Yeah.
I can show you, I can grab a couple of the example files that they have, and
run them, and show you kind of how simple it is, to kind of just get in there.
Fr. Robert: Do that.
Dale: All
right. So if we go back to their site, they do have some documentation here.
Fr. Robert: You’re gonna need the documentation.
Dale: Yeah,
so within that they have some example files, and some things I guess to see if,
you know, it’ll work correctly. Some tests that it goes through.
Fr. Robert: Right, right.
Dale: So,
we’ll go ahead— I’m just gonna go ahead and unzip that normally.
Fr. Robert: Yeah, folks, and while Dale does this, this just shows you that if you
ever make a library for someone else to use, please document the heck out of
it.
Shannon: Yes, absolutely. There’s been numerous occasions
where I’ve tried to do some kind of hack or use open-source software where
there was no documentation.
Fr. Robert: Yeah, it’s like “Well I know how to use it, you should be able to figure it out.” It’s like, no. Assume people are stupid,
and document everything.
Shannon: Exactly.
Dale: All
right, so we’re gonna go into the docs here, let’s see…
Shannon: LS!
Dale: —so
there’s a, I think that’s a folder—
Shannon: Read me!
Dale: —right?
Fr. Robert: Yeah, yeah.
Dale: I’m
gonna open that up. OK, so, here we go, test.py in
here. So I’m gonna run this test up high, python test up high, and cross our
fingers again, and see what we get.
Shannon: Whoa!
Dale: All
right. So it’s running some tests here. And says, OK, so what’s going to happen now, it’s gonna create a small
window that will be opened, colored purple, and that’s the beginning of the
test. It looks like it opened up behind, but there it is.
Fr. Robert: Hi, test! So all that it’s doing is it’s
showing it can actually use your graphic subsystem.
Dale: Yeah,
yeah. And so now, if you wanna take a look, and it’s
gonna go on, you know, just doing some tests. A couple of these are kind of
interesting. I guess this creates two windows, I think. Or
just another one. So this is just gonna go on, but what we can do is
just look at the code.
Fr. Robert: Yeah, let’s check it out, see what exactly was
going on in there.
Dale: Yeah.
Yeah. And it looks like it’s got a bunch of dependencies in here.
Fr. Robert: Whoa!
Dale: Yeah.
So this is all—
Shannon: Oh, that looks easy!
Dale: Well,
yeah, this is just all the welcome and text. This is all the use stuff, it
looks like.
Fr. Robert: Right.
Shannon: It’s the man page.
Dale: Yeah,
so here we go. Here we get to some stuff here.
Fr. Robert: Yeah, so it’s importing the files from that library that it needs, and
then where does it actually start using it? So let me break that down for you.
So let’s say one of our code monkeys does all these steps and gets it properly
installed, has the libraries ready to use, and says I wanna create a box, a graphical box on my screen, how do I use this library to do it?
Where would I find that code?
Dale: Well
all right, let’s look at the documentation, because that’s really where all
this is. I mean, that’s, let’s see, let’s look specifically at something very
specific, one of these other things here. Graphics.
Fr. Robert: Yeah. OK, so what it’s doing is it’s defining
it, it’s using the define function to define certain function that you can use
once you’ve got this library imported. I like that.
Dale: Well
I think, yeah, I think these are just individual examples now, I think the test
that I ran was kind of an overall, you know, test your system kind of thing.
Now these are more specific examples that now we kind of look at exactly how this
library’s used. So, yeah, so this is kind of bringing in math, some things from
math, and then, so here we go, you’re importing pyglet,
and then, I guess from this other sub-thing, all of it, and I guess this is all
kind of set-up stuff.
Fr. Robert: Right.
Dale: Set
up window.
Fr. Robert: Right. Right.
Dale: So
now in here, that’s more window.
Fr. Robert: Well the important thing here is to remember that, again, this is
looking crazy, right? This is gonna kill some people.
Shannon: Yeah. Don’t expect me to this next week.
Fr. Robert: I don’t expect you to do this next week, but what we do expect is that
you understand that everything you see here, even for the functions that you
don’t understand what they do, you understand how they work. So it’s using just
the basics. You see for loops, you see variables here, you see mathematical
operations. And then all it’s done is it’s created
these functions that you can use, you can use in your program, to build on
programming that’s someone else has actually made for you. It’s, again, it
looks crazy. This looks like when we did the API, and people were freaking out.
It looks ridiculous, but it’s—
Shannon: Whoa!
Fr. Robert: Yeah. You get to do stuff like this.
Fr. Robert: That’s so cool!
Dale: Yeah,
so that’s what that does.
Fr. Robert: So Dale, what was the name of this again? It was pyglet,
you’re calling it?
Dale: Yes, pyglet.
Fr. Robert: We’ll make sure to give you links to pyglet in
the show notes so that you can download and install this library. We know that
it’s too much, and actually we designed it this way. The last two episodes of
any module is gonna be the blow-your-hair-back stuff.
Shannon: Crazy.
Fr. Robert: Right. But—
Shannon: This is the stuff for the experts.
Fr. Robert: That’s why in the ivory tower we gave you some additional basics. Go
ahead and play with tuplets, and yes I’m still
calling them tuplets. And if you are a more advanced
coder, go ahead and download that library and we wanna see what can do with it. Dale Chase, Discovery Digital Networks. You know,
Bryan, we’ve got a little something-something you can play while we say thank
you to our code warrior, right?
Shannon: Oh, no!
[music plays]
Fr. Robert: Bring the audio down on that a tiny bit. Dale, this is you in your other
life. You’re not just a programmer, you’re an artist, you’re a fantastic
artist, you do nerd-core. Can you tell the folks at
home where they can find you, where they can get your work?
Dale: Yeah,
you can get all my music for free right now, still, at dchase.bandcamp.com.
Fr. Robert: Oh, I’m sorry, I’m just grooving on it right now.
Dale: Yeah.
Fr. Robert: It’s kind of hard not to, like, listen, because it’s awesome.
Shannon: It’s a good song. I won’t lie, it’s a good song.
Fr. Robert: But can you just turn this up a little, Bryan?
[song plays louder]
Shannon: He’s so smooth!
Fr. Robert: I know.
Shannon: Got that smooth voice. It just sounds so good.
Fr. Robert: Wait, wait, wait. Hold on, here it comes.
Shannon: You don’t want to hear this part. OK, you can turn it off now.
Fr. Robert: All right, Dale, that’s awesome man. Thank you so very much again, for
bringing down the knowledge to our code monkeys.
Dale: No
doubt, guys. Thank you for having me on.
Shannon: Thank you, Dale.
Fr. Robert: I know next week is gonna be our last, (sniff), our last Python—
Shannon: Don’t say that!
Fr. Robert: —episode.
Shannon: No!
Fr. Robert: So you’re gonna give us something to blow their wigs back, right? We’re
going crazy, we’re going all out, just nuts.
Dale: Yeah,
I guess I’ll try to have some fun with pyglet and see
what I can show you guys.
Shannon: Yes!
Fr. Robert: Fanstastic. Dale Chase, Discovery Digital Networks, we love
you as always. Thank you for being our code warrior.
Dale: Catch
you guys.
Fr. Robert: All right.
Shannon: Peace.
Fr. Robert: Now folks, we know we gave you a lot of information, a lot, I mean,
seriously.
Shannon: Don’t we always?
Fr. Robert: A lot. Yeah, but that’s why’ve got show notes. Shannon, you want to tell
them about show notes?
Shannon: Sure. Twit.tv/code is where you can find all the notes, and we do upload
all of our code to the Github. There’s a link to the Github at twit.tv so you can find all of our code. You can
copy and paste it and run it on your own computers. So have fun.
Fr. Robert: That’s the best way to play, folks. You just gotta learn, you gotta poke, you gotta break it, and then fix it.
Shannon: That’s right.
Fr. Robert: And also don’t forget that you can subscribe to Coding 101 on iTunes if
you’re an iCoder. We want you to spread the work
about Coding 101 far and wide. We’re still gaining audience members by the
thousands on every episode, so—
Shannon: Yay! Thank you so much, everyone!
Fr. Robert: Thank you so very, very much. Make sure people know that they gotta learn about coding. Even if you don’t want to be a coder, you have to
understand how the tools that you use every day are programmed by geeks.
Shannon: I’ll be honest, it really does help when you understand, even just you look at coding you say, oh, that’s obviously C#.
It helps if you ever run into problems downloading something or exporting
document or whatever.
Fr. Robert: Totally. It absolutely does. Now, you know it’s not just iTunes and the
show notes page that you can find us on.
Shannon: No, we are on Youtube as well. Youtube.com/twitcoding101.And
you can go over there, subscribe to our channel, please do it, and also comment
below on whatever you like about the show. And I read all those comments, by
the way.
Fr. Robert: She does. She’s really good about it.
Shannon: I do.
Fr. Robert: You can also find us on G Plus. We’re actually almost at a thousand
members.
Shannon: Yoo-hoo!
Fr. Robert: Help us to get to a thousand members by the end of the Python module. We
just need, what was it, twelve?
Shannon: Twelve!
Fr. Robert: Give us twelve members!
Shannon: Oh my gosh!
Fr. Robert: Go on, go get twelve people to join the
community. Now this community isn’t just a place where we hang out. You’ll find
in there some really, really good programmers. In fact, I’m betting—
Shannon: That one at the top.
Fr. Robert: Yeah, look at that.
Shannon: He figured out how to download the daily, I think it was the Hubble
space telescope. Isn’t that cool?
Fr. Robert: I mean, talk about taking data from an external source and turning it
into something useful, boom! Folks, if you want to
know the more advanced techniques of the programming masters, be sure to join our G Plus group. Where can they find that,
Shannon?
Shannon: Gplus.to/twitcoding101. I think we also got the actual name now from
google, which is plus.google.com/twitcoding101.
Fr. Robert: That’s
right. And if you’re not into the G Plus group, you can always find us on
Twitter. I’m on twitter.com /PadreSJ.
That’s @PadreSJ.
Shannon: And I am @Snubs.
Fr. Robert: Yeah. And finally, don’t forget that you can watch us live each week,
Thursdays 1:30 p.m. Pacific Time, here at live.twit.tv.
Shannon: We’re live.
Fr. Robert: Yeah. Yeah.
Shannon: There’s
people out there.
Fr. Robert: There’s people out there. And in fact we can prove that there’s people out there by going into our chatroom.
Shannon: Hey guys!
What’s up?
Fr. Robert: Find them at irc.twit.tv. It’s one of the ways that we participate. You
see us pulling questions out of the chatroom.
Shannon: Absolutely.
Fr. Robert: It’s all TWiT love. Until next time, I’m
Father Robert Ballecer.
Shannon: I’m Shannon
Morse.
Fr. Robert: End of line!