Programming Throwdown - Scientific Python
Episode Date: March 28, 2016This show covers Scientific Python: A platform for data analysis, visualization, and reporting built on top of python. Book of the Show Jason: Masterminds of Programming Patrick: Redshirts ... ★ Support this podcast on Patreon ★
Transcript
Discussion (0)
programming throwdown episode 52 scientific python take it away patrick virtual reality
when we're recording this podcast,
we're, I think, just after the Game Developers Conference,
and so there's been a lot of tech news buzz about virtual reality
and all the cool, awesome demos people have of their games and projects
that run in virtual reality.
So I thought this would be a good opportunity to talk about it.
Personally, I've never gotten the chance to use any of the new generation,
the Vive or the, I guess Sony has one now,
or the Oculus Rift.
But I hear it's a very awesome experience
and I'm starting to see videos
that make me excited to try it.
And I know virtual reality is always supposed
to have been the next big thing for a while now.
But I feel like it might actually happen this time.
Or maybe it'll just fizzle and then they'll give up on it forever.
Jason, have you tried, actually gotten to try any virtual reality headsets?
I have. I tried the Oculus.
It's pretty cool.
One of the big things that I think I'm still waiting for,
I mean, I'm obviously a huge gamer, right? And so the
gaming part of it, I think is cool. But what I really want is actually a way to like produce
content, VR content. I mean, right now, almost all the content is synthetic. It's all video games,
you know, rendered. But it'd be amazing if, you know, you could just, like, set up a bunch of cameras in your living room and then, you know, put your newborn baby or toddler or something in the living room and your parents could just kind of walk around.
Like, you know, your parents would be maybe in, you know, Australia or something, but they could walk around the living room doesn't that require either like a robot or
something like computational photography like i had you're taking a light field picture or
whatever some weird multi-camera pictures and then computationally adjusting for a virtual
camera location yeah i mean i mean what i'm... Like, what I envision is, like, you put a bunch of cameras in your living room,
and then they build, like, a 3D representation of the living room,
including, like, the table and everything.
Yeah, I don't really know much about how that would actually work.
But, yeah, I'm sorry I'm, like, kind of making up the technology,
but I just want the ability for the content to be real instead of synthetic so you
tried the oculus rift and one of the things about at least i think but currently about the oculus
rift is it tracks where your head is but you can't like like if you get up and walk forward
it doesn't know you walked forward uh right right okay and then the difference between the vive
and i had to look it up that's how how it was pronounced, like Vive, Vive.
The HTC Vive is it actually has cameras in the room
that track where you are.
So you can actually like lean, move left,
like strafe left to strafe right, walk forward.
Oh, really?
Yeah, and then like it puts up,
or at least in the demo I was seeing,
like it was putting up indications
when you got close to your actual wall.
Like you teach it the boundaries of your space. Oh, so you got close to your actual wall. You teach it the boundaries
of your space.
So you don't run into the wall.
Because you can't see. It's not augmented reality. It's actual virtual reality.
Right.
I think that's kind of cool, but
that's going to be a drastic change.
Because
I don't have as much time as I used to.
But I remember being able to play for
just hours and hours at a time.
But if you're standing up, obviously, like,
that will probably get tired because, let's face it,
I don't think most gamers are in shape.
I mean, you know, there are other games like there's, you know, DDR
where you have to, like, you know, like stomp on some foot pedals.
There's the Wii.
In the Wii, you kind of have to be standing.
So I do think that there have been in the past games
where you have to be active.
But do people play them in the same amount of hours
as like a Skyrim?
Oh, no, probably not, right?
I mean, maybe DDR, yeah,
like a very, very few amount of people
over i mean yeah ddr i mean i used to play ddr in college and yeah you really you realistically
can't play for more than an hour you're totally exhausted huh wait were you good i was decent
i mean given the amount of hours i played i I definitely wouldn't. Like, let me put it this way.
I didn't have DDR talent, but I played so much that I could eventually beat most of the songs on the hardest difficulty.
Oh, wait, on the hardest difficulty?
I don't think I even ever have played.
Like, I think I never lasted more than 10 seconds or whatever.
Remember Max 300?
No.
It was 300 beats per minute.
And it was the fastest song.
I mean, now they have Faster,
but at the time it was the fastest song on the machine,
on that version of the machine.
And I beat it on hard once.
It was sort of like my crowning DDR achievement.
But yeah, so I do this virtually. So will you be buying the oculus rift after your demo
um i definitely want to buy it yeah it is 700 so that's something to think about um
but i thought it was amazing um i played this game where you're in a turret and it was kind of
like perfect for the oculus rift because you know
you're sitting in this turret like this machine gun turret thing and it can't move it's just
stationary um and it's sort of like counter-strike like most shooting games you kind of imagine like
like like imagine like those time crisis and these games in the arcade where you have a gun and
you're pointing it at the screen and shooting, right?
But in this case, it's kind of like Counter-Strike where you look around and it shoots in the middle of the screen wherever that happens to be.
And so it's like a little bit of time kind of getting used to that.
But once I got used to it, it was awesome.
I mean, it was a great experience.
I definitely would get one.
If it was $300, I wouldn't even think about it.
But for $700, I wouldn't think about it.
I mean, this is another one of the controversial things,
is that you need a beefy PC to play it.
Yeah, that's true.
I actually just upgraded my computer, not with the intention of VR,
but just because it was getting so old it couldn't function
anymore and so it's uh just coincidence that i do actually have the right specs oh i do not
yeah you have to have a basically you have to have a brand new computer
yeah um the one cool so most of the demos seem to be first person but i saw a demo
from game developers conference for a third-person VR game where, like,
you know, you ever played, like, Metal Gear Solid,
where you're, like, as you move into different...
Is it Metal Gear Solid?
Yeah, where, like, you're in a scene,
almost like a security camera,
and then you move into the next scene,
and it kind of jumps, you know,
except that you could kind of move the camera around
with your head.
So your head was tracking the security camera or whatever, but was a fantasy game not a sci-fi game um and basically
like you could pure so your guy kind of starts on the left of the screen and then he kind of runs
in the room to the right and you kind of have to track over to the right so you can still see him
and i thought that was kind of a nifty excuse for like why you're not moving around.
Yeah, right, right.
That's cool.
Yeah, I wonder if, you know, if instead of you sort of,
like instead of the camera sort of being first person, as you said,
but instead like when you look around, you actually orbit.
So it's like if I turn my head to the left, the camera actually just like swivels out.
I wonder if that would be disorienting.
Yeah, it might be.
All right.
Well, I think we're on to the news.
Yeah, news. So the first news story I have is for all you students or teachers out there, I try and, you know, periodically give you good references for ways to sort of get some kind of free stuff.
And Amazon has something called AWS Educate.
In the past, we've done GitHub.
There's a bunch of amazing free stuff you can get through them.
We've done a variety of different sources.
This one's pretty cool.
It gives you $100 a year in free Amazon credit, which you can use to have a server running.
That's right, web services credit.
So you can use that to have your own server in the cloud running all day for a whole year for free.
If you're an educator, if you're a teacher or something like that, you actually get $200 to share amongst your
class. And it's really cool. I mean, you know, $100 actually goes a very long way in AWS.
As I said, you can have a server running for a whole year. You could also do like, there's
something called Common Crawl, which is a data set um that spans the entire
internet so we've talked about this in the past you can use common crawl to like see how many
times you know patrick shows up in the internet and just count all the all the patrick yes there's
a lot of patrick's they're not me so so i don't even think i rank you didn't search my full name
i don't think I rank in Google.
No, you don't have a Twitter account.
How can you, how can you rank?
Um, do you have a Facebook or no?
Does it count unused?
And I don't know the login and yeah, sort of.
You have a, you have a LinkedIn, right?
I applied to Facebook once and I thought it would be a good idea to have a Facebook account.
Oh, that seems, that seems like a good idea. Yeah. No, I, so i had one when they came out when you were still had to be at specific universities and i was still in university yeah that's right and then i was like nope i
actually don't want to relate to these people anymore so i closed it that was before like it
was anyone except college students um yeah and i think i'm remembering that correctly anyways and
then eventually like i went to recreate correctly anyways and then eventually like i
went to recreate it and it turned out like i never it's really hard to actually fully delete
your facebook account so it was like dormant or inactive or something and so it reactivated
and i never bothered deactivating it again so i but i never go on there i never got it got it i'm
an anti-social person you would not show up that often. I one time used Google+.
One time.
So scanning, you know, for all the Patricks and the whole internet,
you have to scan all, you know, I think it's like 200 terabytes of data.
And it only costs, I think, like $14.
So you can see how, like, you have incredible computational resources
at your disposal for free if you get this.
So it's called AWS Educate.
If you're a student or a teacher, definitely go here,
get your free credit, and check it out.
It's awesome.
Awesome.
MAME went open source, and the entire Internet said,
wait, wasn't it already open source?
Yeah, exactly.
But I think this is an interesting story, and I put it in here,
I guess partly because of that.
And I know, Jason, you may have more context for this,
but when you get a bunch of people together and write code,
there's actually a lot of legal implications,
whether you mean for there to be or not,
and who owns the code, who has a right to the code and these kinds of things are always very confusing and tricky
and the one i always remember isn't really related to code i'm trying to remember now i guess the guy
who helped design the stormtrooper helmet for the original star wars like it was unclear the manner
the contract and manner under which he got paid whether he retained
any licensing to the or any of the rights to stormtrooper helmets and so like he and lucas
film i guess or whoever owns the rights to star wars uh like went back and forth with several
lawsuits because he would make products or molds based off of those things that he made and claimed
he had ownership to be able to do that,
and they said he didn't.
It just reminds me how complicated.
Basically, if someone does work,
whether you pay them or not for you,
and produces something,
who owns the thing, any copies of the thing,
the likeness of the thing?
If you don't nail it down, it can get really confusing.
That is sort of related, I think, to what happened in Maine,
is that people developed under different assumptions different licenses and then to change it you
basically have to go back and get all of them to agree to it that's right and there there's there's
some parts of maim i think it's actually the software scaler if i remember correctly so i'm
a maim developer i've worked on it for a while actually just a short tangent i got a nasty gram from paypal today and they said that basically it was from their
brand integrity department and uh they so i have a donate page on meme hub which is a fork of name
that i maintain and uh meme hub comes with a fork of Mame that I maintain.
And Mame Hub comes with a bunch of servers and infrastructure and everything.
And so the donation is just kind of keep the lights on.
I don't actively work on it anymore, but there's still a community and they maintain themselves financially through the donations.
So PayPal basically said, look, anything having to do with emulators hurts our brand.
They don't want to be associated with it.
And so they put my account in this sort of restricted mode where I couldn't do anything until I removed the donate button from my website.
So, like, in the email, they said, it's not illegal, like, what you're doing.
We don't think it's illegal or anything.
We just don't want to be associated with it um but is this a recent change i just recently
figured out about you well i mean maim maim hub is reasonably popular i wouldn't say it's hugely
popular but um you know it's been going on maim hub's been going on for about six years and i've
had the donate button almost the entire time and uh you know i just got this nasty gram today and it's not like the volume of donations has
increased or anything so um weird anyway so um so the software scaler in maim uh is gpl licensed
the person who wrote it wanted to be gpl licensed and so i think even now today
that is still under a gpl license but everything else in maim has been moved to bsd and as patrick
said it literally came down to talking to every single contributor and getting them all to agree
to change a license and so it was free to download before but there were restrictions upon like
using it in commercial works and that's right it was not it was not to download before, but there were restrictions upon using it in commercial works.
That's right.
It was not allowed to be used in commercial works.
And that's why, kind of a funny story, if you have a PS1, actually or any PS, I guess,
there was a PS1 game called Atari Arcade Classics.
And if you plug a keyboard into your playstation and hit tab you'll actually
bring up the maim debug menu so it was like you know blatantly obvious that they were just forked
maiming they just built maim for the for the playstation um and and it turns out they did
they worked a special license out with the maim team and uh and so a lot of people felt
as if um having that license uh forced sony to um pay us like pay maim and and set up an agreement
to to have a commercial you know fork of maim but the reality is like MAME is a pretty complicated
beast. And so to do
something like compile MAME for the
PlayStation, you need a ton of expertise
and guidance and consulting.
And so
making the license commercially
compatible
doesn't mean that
the project won't get funded anymore.
So yeah. So you can do whatever you want with maim now commercially or otherwise and that's that's a cool thing
licenses confusing this is why lawyers make a lot of money that's right exactly and this is why uh
you should definitely if you have anything to do with licensing you should definitely have a lawyer
involved and i think there are which are called pro have a lawyer involved. And I think there are, what is it called, pro bono, like working for free.
I think there are, I've seen stuff before from lawyers willing to, you know,
help out with these kinds of open source things and questions around them.
Yep.
I may be making that up, but I've never tried to seek their services,
and I don't know if those are people who you'd want their services or not,
but I think I've seen it before, so it's always something to consider as well.
I would like to talk a little bit about, this is probably a little old by now,
but I'm still really excited about it.
And I actually tuned in and watched this.
I feel like it is going to be momentous if it isn't already,
which was AlphaGo playing the game of go against lee sadal uh which most
people agree has been dominant if not the world champion for like about a decade and will go down
as like a famous go player um and so alpha go playing him was a big deal they were playing
just so people know the context so alpha go is a machine learning an ai that was playing go against lee sadal who's a
human being who was arguably the one of the world uh one of the top world uh go players
and a computer was able to beat a person uh was it four games to one yep that's right so they
interestingly i don't know i meant to look this up
but i don't know if it's the rules of go or specifically here to avoid any uh funny business
that basically they said we'll play five games is best of five so three to win um but they said
even if a person or the computer reaches three games, they'll play all five regardless.
And so AlphaGo won the first three in a row,
securing its victory for the entire thing with a million dollars on the line,
which I think was put up by Google,
who owns DeepMind, who wrote the AlphaGo program.
But they donated a million dollars to charity,
but Lee Sedol would have won a million dollars if he had won.
But they won the first three, then Lee Sedol won the fourth one,
and Google won AlphaGo, won the fifth one.
Right.
And the interesting thing here, well, there's actually many interesting facts.
So one is that I tuned in live.
So it was live in Korea, which here on the West Coast was late late in the evening like 8 p.m 9 p.m
go games last a pretty long time apparently i was definitely up till 2 a.m yeah yeah um the
commentary they had i you know they did in america go isn't very big but everywhere else well in asia
i guess several countries in asia china korea and i think japan is pretty big
like really big um and so they're actually paid professionals playing uh go and so they had
commentators there they had like a press room around it and they had commentary in english
that i watched on the west coast and i i thought it was just awesome to like watch it live even
though it was kind of weird like seemed kind of nerdy but i feel like i've always read about kasparov and deep blue
and i felt like this was happening again and i wanted to like say i watched it live
yeah it was amazing um just a few like uh um things to note so so one so lisa at all he gave
a lot of commentary about um you know the games and everything. And a few things you mentioned, which I thought
were fascinating and make sense when you think about it, is humans, they pursue one initiative
at a time. So a human might concentrate on one area of the board, and there's sort of this agreement like i mean not not officially but
you know if i place a stone on the bottom left and there's some some some battle going on in
the bottom left of the board that's going to draw the attention of my opponent and he's going to
place a stone there and then we're going to have a little battle on the bottom left of the board.
But when you're playing against AlphaGo, it doesn't really care about what happened last move.
It just it looks at the current state of the board and says, what am I going to do now?
And and then when it when it's its turn again, it does that process again. It starts over, it looks at the current state of the board,
and says, like, what should I do now?
And so it might have two battles going simultaneously
on different ends of the board,
and it just alternates between the two.
And that was something that gave Lee Sedol incredible difficulty
was that, you know, when that sort of social contract was broken now he has to sort of
constantly keep shifting gears and he was actually i don't remember exactly what he said but it was
something to the effect of i really didn't enjoy playing these games i didn't see that comment
oh yeah yeah he said something like i really didn't enjoy playing these games
because of this
and the fact that it was just so mentally straining.
Interesting.
Yeah, it's super interesting.
I think we talked about the architecture of AlphaGo a little bit
in a previous podcast at some point when it was first kind of announced.
But, yeah, I mean, one of the things is it doing that, like,
as an exploit to humans right knowing that humans
would have trouble would be interesting i don't think they did that no i don't think so either
but yeah i mean people were saying that its moves were often very human-like if that makes sense i
don't know enough about go to be able to kind of understand what they're saying but i guess it
seemed like it was playing music humans could play but yeah like playing one side of the board and another because it sees more opportunity there like it isn't a
impolite thing to do per se but yeah it's very challenging because you're kind of not expecting
it to happen as a human that's right that's right i could see that super super super fascinating
um if you haven't uh you know although it was streamed live you know you can
still go and watch it um i think it's on youtube um definitely check it out so i mean it's it's
boring to watch it for six hours straight so don't do that and even though you already know
what's gonna happen because even if you watch the 15 minute like summary of a game they don't play
out the whole game and it's more of like a go strategy
commentary what they haven't done yet or i haven't seen is um and what i wanted to watch when it was
happening but i guess it would have spoiled it a little uh or maybe you couldn't have shown it to
like lisa doll for instance but would have been so alpha go has an assessment of how it thinks
it's doing right a very actual number as opposed to a human who just has a vague idea, I guess.
And I would have been curious to see, like, a meter,
you know, AlphaGo showing
what it currently believes its probability of winning is.
Oh, and see how that changes over time.
They did do that for the one game it lost.
They actually showed there's a certain move
that LisaDahl made. Or no, sorry. It made certain move that lisa doll made um or no sorry there's a
mistake right yeah that's right and it and it thought it was a good move for actually several
moves later and then eventually it realized that it wasn't a good move but it was too late
right so that would be interesting for me to see uh And then I guess there's two things I want to say.
One is first that AlphaGo cited Jason,
our wonderful co-host here on Programming Throwdown.
So you helped make history here.
Yeah, short story about that is
the DeepMind deep learning paper
started with a paper that played Atari before they moved on to Go.
And they used Atari to kind of prove out their algorithm.
And the Atari paper actually references a paper that has an algorithm called Hyperneet that I invented. So yeah, so this is one of the cool things
about going into academia is kind of being a part of that.
Dare I say the only cool thing?
Yeah, probably.
You know, it's, yeah.
So I mean, it's, I mean,
they've done just an incredible amount of work
over the past 10 years.
And a lot of those people actually have been doing neural network work.
Actually, David Silver, who's one of the heads of DeepMind, wrote a thing called NeuroGo, which is a neural network that plays Go back in around 2003.
And so he's been interested in neural networks that play Go for a very long time.
Interesting.
Yeah.
But one of the things that I find fascinating,
the second thing, aside from the congratulations to Jason
and beating the world champion,
which I want to know if your program could beat it.
No, I'm just kidding.
No, absolutely not.
Okay.
But the interesting thing is the rate of progress.
So like Jason was saying,
we've been working on Go for a while
as computer people, programmers, whatever.
Jason took a stab at it.
This guy's taking a stab at it.
And AlphaGo previously had beaten the European champion,
which I think was a news article we talked about before.
But in analysis of that game,
so that guy, I guess,
is approximately ranked about
a thousand um is what i've seen and lisa doll is ranked currently i think they were saying like
number two or three currently um and they were saying like analysis of that game they really
saw a lot of flaws in the way it played um and in between there and the fall and now here it was i guess late winter early not spring yet
but um when he played that improved so much that it went from being ranked you know maybe slightly
above a thousand to all the way about able to beat the world champion for a world champion caliber
person and that rate of acceleration a human could never ever play enough games or learn enough in that time period
i don't think um in order to be able to progress that quickly that's right that's right but you
know i mean oh sorry go ahead oh i was just going to say it's it's it's they have an incredible
amount of resources and and once they can get the computer kind of in the right direction now
it's the equivalent of thousands and thousands of human years of,
of,
of learning.
Yep.
And you know,
fascinating too is like,
even at the time,
you know,
I guess Facebook had announced also that it was working on go,
that it was beating amateurs and they thought about great things.
Google came out like saying,
Hey,
we beat the European champion.
And then now like,
you know,
basically you have
the equivalent i guess in some ways actually they did a lot of things to be there's a lot
of controversy around gary casper versus deep blue um and i think google tried to do a lot of stuff
to make sure there wouldn't be controversy if they won which they eventually did um yeah and
so i think you know i wonder in five years 10 years 20 years if we'll remember
having watched those games live yeah i mean i hope so i mean it is truly a historic moment a lot of
people are saying incredulous things that aren't true like we're gonna have terminator now i saw
those you know strong guys around the corner none of these things are true but it's still cool oh that's
an interesting point we could talk about that maybe we should have have we had an episode
about artificial intelligence i think we have one about machine learning yeah we should do an ai
episode that sounds like a good idea i'm sure i could find someone like the difference between
like what is strong ai and uh yeah like why alpha go won't be able to control a boston dynamics robot um we should we'll do
i promise you guys out there we'll do an ai episode and i'll find somebody cool to come on
the show oh that's it oh you know people though so i guess that could happen yeah we'll do it
we'll do it all right very awesome but yeah i hope we'll look back on this and you know remember oh
i remember the day that's right anyways yeah it's uh it is amazing yeah
it's a hugely forward time for cool book of the show book of the show my book the show is
masterminds of programming and so this book is um a collection of sort of interviews
with programming language inventors
and other people who are sort of pioneers
in programming
it's actually recommended by Tim
I'm not going to say your last name
but Tim thank you for the recommendation
and yeah it looks
like a phenomenal book. It's obviously very anecdotal by, by design. So, um, you know,
don't pick up this book if you're trying to learn C++ or something like that. It's not a good
reference, but, uh, I, it's a, it's a fascinating, uh, uh, fascinating read. And so highly recommend it my book is Red Shirts
by John Scalzi who
in an interview I guess
said he writes science fiction your
grandma might like to read I don't know that my
grandmother would care to read this book
but Red Shirts if you are
a Star Trek fan which I'm a pretty bad
Star Trek fan meaning not really
a Star Trek fan I don't not like I've just never
really gotten into it.
Yeah.
The more I thought about it,
I,
cause I,
I happened to somehow came up the fact that I don't know anything about
Star Trek.
And I realized I don't really know anything about Star Trek.
I still haven't seen all the Star Wars movies when it comes to like nerd
culture.
I actually rank pretty poorly.
The only thing I really have going for me is i'm
a gamer babylon 5 i've seen like one episode oh um what is the other one oh battlestar galactica
i've heard of it but that's oh oh jason i know this is kind of shameful kind of it was really
like a moment of self-actualization
when i realized that as far as from a cultural perspective the only nerd thing i've going for me
is is is gaming no you have a lot of nerd things dude you were like a really good chess player for
a while yeah i'm all i'm roping all that together. Yeah, yeah. So definitely the programming and the gaming, like board games, video games, card games.
Like that I'm just super into.
But yeah, movies, TV shows, you know, dress, like apparel and all of that.
I still have to catch on to all that.
Wait, you are nerdy with apparel or not?
Wait, I'm not sure what you mean.
So you dress well or just poorly
because dressing poorly is a nerdy thing to do uh that's true what i i guess what i want
like all right red shirts so those are reference to star trek and uh they kind of what happened
what would happen if people who were in a non-franchise infringing version of Star Trek realized that some of the stuff happening was ridiculous?
I think I stole that line from the book or a very similar line.
And kind of like, you know, why is it that the, you know, navigator for the entire spaceship goes down to the surface of the planet to investigate
a murder like why right that doesn't make sense and then also like people who go down to the
planet die like really really often uh and if you're wearing a red shirt you're almost guaranteed
to get killed oh right because they gave the extra the red shirt right well because the security team
i think is the people wearing the red shirts and so they're just kind of like yeah if you didn't have a name you were gonna die
and yeah anyway so there's all this you know like cheesy plot points and what happens if the people
kind of picked up that like wait a second uh this doesn't seem statistically likely um so it's a
really fun read it's it's it's a funny book uh i listen to it on audible
because i have a long commute i always do i always say i read the book but i really listen to it um
and this is read by recorded by will wheaton um which oh nice was who was on star trek that's
right and so wesley crusher was that's right wesley crusher and so it's kind of
even more interesting to hear him voicing this where it's not actually star trek right because
it can't be because they didn't have the license and so i and he's also just a funny person to
listen to so it was a really good fit for him to read this book um and so i like that so even if i
had read the book i might have still listened to it just to hear him do the like emoting of the ridiculousness of some of this stuff um
yeah yeah will wheaton by the way he has an amazing uh um channel on youtube where he covers
board games and video games i think it's called tabletop yeah it's called tabletop so um will whedon's uh is is awesome so yeah that sounds like an amazing audiobook and he
also records ready player one which is another book i've recommended and people have written
in and been like that is an amazing book um yep so i like and that has virtual reality in it
so uh yeah ready player one is it was amazing i read it based on your recommendation
and i absolutely did you did you read it or you listened to it i read it okay okay listening to
it is even i have a long i have a long commute but it is a shuttle i'm on a shuttle and so uh
you don't have headphones so i read anyways well others if you have long commutes well
if if given the choice I would draw the read
but if I have a long
drive then I would obviously
okay fair enough because you could do other stuff
you can be on your laptop yeah okay
or read okay fair enough
but you're missing out
anyways if others of you
audible is a sponsor of our
podcast and if you would like to have
a free one month trial
which means you can get a credit which is good for a book you can go to www.audibletrial.com
slash programming throwdown um and they'll get you set up and then we get a little bit of money
to help support the show uh and you can cancel it as soon as you pick out your book uh and then
they don't i think you require a credit card but once you cancel it as soon as you pick out your book. And then they don't... I think you require a credit card,
but once you cancel it, they won't charge your card.
And if you want to keep it going,
I actually pay out of my pocket for a monthly subscription,
one book a month.
And then they run a lot of sales and stuff.
And so this is just a PSA for all the people out there
with long commutes, because I really...
This does help me a lot.
The book I'm listening to now,
which I'll probably recommend next show,
I'm really into.
It actually sounds stupid,
but I want to get in my car so I can listen to it.
When someone else rides with me,
I have to take my kids to the sitters.
I'm like, oh, I can't listen to my book.
It really does help.
They run a lot of good sales and stuff,
so you can get even more than your one book
by buying other books for discounted prices um nice and so
for people like me who would rather read the book um if you go to programmingthrowdown.com
we have links to our book of the show and there's special links if you use our links
then amazon gives us a little kickback and we we also put that towards bandwidth and other infrastructure stuff.
And to finish out shilling for ways you can support the show,
which just listening to it and downloading
is also a good way to support the show,
telling your friends about it on that Facebook thing
that I'm not on.
Or I don't know if anyone's on Google Plus anymore.
Like you could do it on Google Plus.
I still see people adding me on Google Plus,
so I know you guys are out there
still using Google Plus.
Sorry if I don't ever respond
because I never check it.
But you can also support us on Patreon.
That's right.
We have a campaign going on there,
and you can get to it from our
programmingthrowdown.com.
And there, what happens is you can kind of sign up for like,
hey, every time there's an episode,
I want to give a few dollars per episode.
And that helps support the show as well.
Keeps it going.
That's right.
And thank you so much for your support.
That's sort of a big part of keeping this whole thing going.
We do have pretty high costs, a ton of bandwidth.
We use terabytes and terabytes of bandwidth.
Yep.
And we are working on it.
And several of you have written in with helpful suggestions and offers to help and stuff.
And if we haven't gotten back to you, sorry.
We actually are doing pretty good.
We keep sending the emails in.
But if we don't reply right away, we apologize.
We try to.
Yeah, definitely.
But some of them might slip through the cracks.
Yeah.
If you sent an email and we didn't reply, send another email like hey i'm mad at you yeah ping no don't don't
say i'm mad at you okay anyways tool of the show tool of the show my tool this show is laverna so
um a tool the show in the past um has been-Alt. And if you remember that episode,
NV-Alt is a way to keep notes.
And it actually, you can write notes in a markdown format
and it has a preview mode
where you can look at it in a pretty HTML rendering.
It lets you search through your notes.
I found it awesome. I came into a situation where
I needed something like NV-Alt, but it would also work on Windows and Linux. And NV-Alt is a OS X
only tool. So I found Laverna, which is extremely similar. It has a web interface actually no sorry it has a web interface but it also has a
native desktop interface
it has both
and same type of idea
where you connect it to your Dropbox
account and it stores all of
your notes on Dropbox
but it lets
you write in Markdown, has full text search
all that cool stuff that NVAult
has so if you like NVAlt and you want something where you can access your notes on your Linux box at home or what have you, check out Laverna.
It's pretty awesome.
So there are lots of tools and lots of ways of doing this.
But increasingly I'm intrigued by, I think it's Sandstorm.
Is that the people doing it the private
what cloud or whatever but basically like i haven't heard of this sandstorm yeah you can check
it out so i think it's basically kind of like docker but like for personal stuff as opposed to
like server stuff um okay and and they're getting they're moving along and i'm not exactly sure how
it all works but basically i think they're the closest the idea that like you describing this or whatever but i want i don't
want to necessarily run it in a server at home but i want like a server somewhere that i can pay to
just however much i need or don't need like an amazon web server small one or something where
like hey i want someone to host my notes and so like i can just install essentially a program
on my cloud server but it's my stuff my storage i manage it and like once i either buy the program
to install or it's open source like i don't have to worry about the service shutting down or not
working like it like my cloud it's my cloud right like it'd be like running a server at home to do
all that stuff only it's run somewhere else and there's like a, right? Like, it would be like running a server at home to do all that stuff,
only it's run somewhere else, and there's, like, a standard way of adding,
like, this sounds bad, like an app store,
of, like, adding apps to your cloud, right?
Oh, I see.
Do you kind of see what I'm saying?
Like, I feel like there's something there.
Yeah, I'm looking at the website now.
It's basically like a layer on top of AWS,
where instead of, like, AWS, for people to know,
it's just, like like they'll give you
a Linux machine and you can SSH into it and it's just sitting in the cloud.
It's always running.
And under the hood, if that physical machine dies, they can actually freeze your AWS instance
and then start it somewhere else.
And so from your perspective, you just have a machine somewhere out there that's always on and so but the issue is you need to be like
ssh into the machine you have to be kind of really low level this looks like it's just
a layer on top of that where it's like you can just have an application running in the cloud
right but in this idea about like having a standardized container as well, right, so that you can get to this kind of quote unquote app store where like, hey, someone releases, you know, there's exactly like in your note editing.
It's like, hey, I want to edit notes. I want to be able to go to the web and get to my notes.
I want to be able to, you know, have a client on my iPhone, on my Android phone, on my, you know, OSX box that edits the notes.
And they all go back to my cloud.
That way I don't have to worry about like, hey, what happens if this free service decides
to go down or start charging or whatever?
Like it's mine, right?
Like once I'm running this program, I control it.
Yeah, that makes sense.
And if I use up all my storage, I just get more, right?
Yeah, I don't know yeah very cool sandstorm that's
another i'll add it to the tool of the show sorry that was a sidetrack no i think it's awesome i'm
really glad i need to look into it more i haven't looked into it but i the idea is and like as i
read it and then it's like i don't know if what i took away from sandstorm is what it's actually for
but that's what stuck in my head and then i I've just been, like, having this idea in the back of my head.
Yeah, no, I mean, it's pretty much exactly what you described.
It looks very cool.
So I don't, yeah, so that was nothing about Laverna.
That could be my tool of the show.
I spent a lot of time talking about it.
I'll save my other one for next time.
So I don't know anything about Sandstorm,
but it's my tool of the show because it sounds awesome.
And it's free, and I normally do video games that you have to pay for.
It looks totally cool.
So my tool of the show is that you have to go do work and look up what Sandstorm is
and then tell me that I'm crazy or awesome.
All right.
Now you know what to do.
Email Patrick.
You can find his email from the website and tell him whether he's cool,
whether he, what was it?
No, you don't need to tell me.
I already know. I've been being told my whole life um today so on to the
uh scientific python scientific python um so you know we have a show on python um
since then we've done shows on matlab and r um and we're going to do a show on julia we've gotten
tons of requests on that and so i think it's good to talk about oh i want to say something on that
two things one a lot of people have written in for like follow-up shows like you know version
two and i think this kind of qualifies as that for python like yeah going more in depth so
so this is kind of the answer to that and we'll start with python um the second thing is like
oh you talk about like a lot of people writing about julia and um that's right and and one of
the things like programming thread and we do explore a lot of things but one of the things
i find most important is like critical mass of like community and how that like with this python discussion one of the nice things
about doing these things in python is python has critical mass like if you have a problem
chances are other people have also had the problem and so you'll be able to find your answer very
quickly that's right that's right so although we talk about other stuff because it's always good
to keep abreast of other situations and have other tools in your bag it is really nice to also pay attention to how much community there is behind a given thing yep and and especially you know by using scientific python
you're leveraging the general python community so if you you know i mean when you do any type of
scientific analysis you still have to do some integration work as well.
Or you can say like,
I need to open a file or.
Yeah.
Or,
or,
you know,
my,
my data is in HDF five format.
And so I need a loader for that or something.
Or I have to get my data from Hadoop or something.
Right.
And so,
so all of these things in general are much easier to do in Python than, say, like MATLAB or R or some other very specific kind of environment.
So, yes, so there's two main interfaces to doing scientific work in Python.
One is the command line. So keep in mind, so when I say scientific work,
I'm talking about, you know, analysis where you want to, yeah, you want, you have some data,
you slice the data one way, you get some results, you slice the data another way,
you get another result. And you're not really writing code that you're going to keep. I mean,
you're writing scripts and you might want to keep it mean you're writing scripts and and you might want
to keep it as a reference but it's really you're trying to um learn something about some data
and it usually involves very fast iteration trying many different things learning a lot
and then and hopefully it comes out plotting or something right that's right what comes out of it
is some kind of visualization or several visualizations. Or a table.
Yep.
So that can involve logs analysis too, right?
What is the most common time that people come to my website, right?
Yep.
Yeah, so scientific doesn't just mean collection of science experiments. That's a good point.
Yeah, totally, totally.
So this is where this sort of data scientist term comes from. It's
like, you know, your web logs can be sort of a medium by which you do this data science. And so
it's not, yeah, you're not talking about like protein analysis or something like that. Although
you could be. Yeah, I mean, it's greater scope than that.
So it includes that, but also looking at your website
and seeing how popular it is and things like that.
So one interface is the command line.
This is just where you type Python, you hit Enter,
and you get a prompt, and you can run all sorts of commands in there.
That is okay, but there's several others that are better.
So one is spider.
And this is...
And that's with a Y, spider with a Y.
Yep, spider with a Y.
And this is actually similar to MATLAB.
So if you're used to using MATLAB,
I actually just started using Spyder a week ago
Patrick mentioned it to me
last week and
I checked it out, it's amazing
it gives you a nice MATLAB interface
where you can see variables
that you've most recently
used, just like in MATLAB you can inspect
them and things like that
I'm good, I'm glad I didn't send you down a rabbit trail
no, it's totally awesome it runs on your spec them and things like that. I'm good. I'm glad I didn't send you down a rabbit trail.
No, it's totally awesome.
It runs on your desktop, just like
MATLAB. There's also
Jupyter, which used to be called
IPython Notebook.
Jupyter is very similar
to Mathematica Notebook, if you've
ever used that.
Mathematica is another scientific
computational platform. So, the idea with the Mathematica is another scientific computational platform. So the idea with the
Mathematica notebook and with Jupyter that's super awesome is, let's say you're doing some
data analysis and you have different stages. The first stage, you're loading in data. The
second stage, you're doing a bunch of transformations, right? And in the third stage, you're creating some visualization.
So going back to Patrick's example, the first stage, you're loading all of your web logs from Apache.
The second stage, you're computing some histogram, and it takes maybe an hour to compute a histogram and read all the logs.
It's a very popular website.
And then, sure.
And then the third stage, you're plotting it, right?
So let's say you plot it, and the plot is correct,
but it just doesn't look very good.
Like maybe you want the line to be blue or something.
You can actually rerun that third cell that generates the plot,
and it can take the results from the second cell.
So in other words, if you have your data broken up into these cells,
every time you finish one cell, it sort of freezes everything and says,
okay, I finished this cell, and the next time I need to run the cell after it,
I know what to do, like where to start.
And so you can tweak your plot 100 different times
without having to run your entire code base.
You can just run the plot part, which is really important.
The other important thing, I think, with the notebook style
that can be really cool is that people,
often with programs, you just see the output
right like you just see oh here's
my data set and here's the graph
and sometimes that's good and you
can get that from the notebook
but other times people want to see the process you went
through right or even intermediate
graphs like first the data looks
like this then I apply this filter and it
looks like that
and seeing you kind of do
that like seeing the steps you go through frozen and you know visible and then even interactive in
some ways is really useful yep and some of the cells don't even have to be python you can actually
have cells that are just text so you can have a cell doing all sorts of computation and then the
next cell just describes what happened in the previous cell and you can have a cell doing all sorts of computation, and then the next cell just describes
what happened in the previous cell.
And you can actually take your IPython notebook and send it to somebody, and now they have
your source code, potentially your data, and your documentation all in one file, which
is pretty cool.
So those are some of the interfaces.
Now, most scientific libraries or scientific platforms have a tensor library.
So what this means is, for people who don't know, a tensor is just a higher dimensional matrix.
So if you have sort of, let's say you have a point.
So a point has x, point has XYZ coordinates like some
point in 3d so that would be a vector that's also called a vector and so this
is one dimensional array of numbers XYZ right you can have a matrix which is two
dimensions so it has rows and columns and each element is a cell, kind of like Excel
spreadsheet is a matrix, right?
But then you might need three dimensions of numbers or four dimensions or five dimensions.
So these are called tensors.
And so there are libraries out there that do tensor operations very fast.
And this is often critical for any type of scientific computing.
So the most popular is NumPy.
NumPy is very similar to MATLAB.
So if you have experience using MATLAB,
or even if you have experience using R,
you'll be right at home with NumPy.
The thing to know about NumPpy is it's super fast and and it's fast because it you do operations on
matrices or vectors so in other words let's say i have two vectors two lists of numbers
i'll just call it list a and list b and i want to them, like I want to add each component of the list and produce a new list C.
So if I write a for loop in Python, I just say for, you know,
one to a million, C of I equals A of I
plus B of I. That's going to take a long time. I mean, that's going to take maybe a second.
Even for a million numbers, that's a long time.
If you have have you know
a gigabyte of data
it's going to take three days or something
it's going to take a super long time
but you don't have to do that
with numpy
if they're numpy arrays
you can literally just say c equals a plus b
and under the hood
it's going to turn that
into super super fast c code, it's going to turn that into super, super
fast C code that's
just going to blitz through that data. It's going to
use special
SIMD processors
on your computer. And I mean,
it's going to go from a second to
so fast you can't even measure it.
You know, like less than a millisecond.
So
although people say Python less than a millisecond.
Although people say Python is slow,
and they're right. Python is definitely much slower than C in general.
NumPy is just incredibly
fast. You should never
shy away from NumPy
or from scientific Python
for performance reasons.
To be a little more specific, fast is an arbitrary
word, but efficient efficient which would be like how many instructions it takes to do the same operation
and if you could do it in less then that would be better or quote-unquote faster but it still
might be i mean if you're using big data it could still take a long time that's true yep yeah totally
so maybe that's a little goofy, but fast here just
means like in Python, your CPU has to execute more instructions per line of Python than per line of
C as a vague general rule. Right, right. So NumPy is there. There's Theano, which is built on top of NumPy and gives you GPU support.
We'll talk
more about GPUs in the future.
I think there's a lot we could cover there.
But the short story is
that GPUs
and tensors go together really well.
GPUs
are meant to do matrix operations.
Exactly. Exactly. And so moving the triangles around is all about matrix multiplying. Yep. And so the ano will let you take
your NumPy code, which is already no fast, but it's running on your CPU. And it will let you run it on the GPU and that can give you pretty dramatic speedups.
Theano is a university project
and so documentation isn't great.
It has a lot of sort of legacy code that's kind of ugly.
So there's something called TensorFlow
which is a Google product.
It's totally free and it solves the same use case as Theano,
but it has amazing documentation, very well documented.
They have tutorials that are great for beginners.
And so if someone was starting a new project now,
I would definitely tell them to use TensorFlow.
TensorFlow, go ahead.
So TensorFlow, like you said, has a lot of
matrix operations and stuff, but I always
see...
Yeah, so is it
machine learning also, right? So machine learning
also gets into using a lot of matrices
and matrix
operations. Is TensorFlow designed to
kind of handle that, or it handles both, like it's
more generic? I haven't actually looked into it.
Sure. It's more generic.
They do have
libraries for machine learning.
Even Theano has
some
functions that are
very specific
to machine learning.
But you can use TensorFlow
for anything.
Those are victim machine learning. But you can use TensorFlow for anything. So those are sort of the tensor libraries that would give you kind of that MATLAB
or R kind of like performance. So some more scientific libraries to sort of help
manipulate these matrices and these tensors in more complex ways. The most popular is SciPy.
SciPy is also built on top of NumPy. It gives you things like integration. So if you have some
distribution and you want to integrate it, you can do that. It does optimization. So if you have a set of points and you want to fit a curve to those points
and you want to minimize the distance from the points to the curve,
so you want that curve to be as close as possible to going through those points,
it can do that.
It has a bunch of signal processing, like low-pass filter, high-pass filter, FFTs.
It has a ton of these different
systems.
Well, confusingly, some of those are in NumPy, but NumPy and SciPy are kind of joined at
the hip, or at least in my mind.
I don't know what the exact difference is.
Yeah, that is kind of confusing.
But search is your friend.
Yeah, that's true.
Definitely, yeah, you'll have to do a lot of Googling.
That is one nice thing I would say.
That's one sort of con of scientific Python is that because it's fragmented, there isn't
just sort of one body that's saying, okay, here's how we're going to lay everything out.
So it does take a little bit of googling to sort of get your hands wet.
But yes, SciPy has all sorts of statistics.
If you want to draw from like a Poisson distribution,
you want 100 numbers drawn from a Poisson distribution,
there's just a one-liner that just gives that to you.
It can give you CCFs of distributions.
Anything statistics related you need SciPy can do it.
It also has good linear or sparse linear algebra libraries.
So there are times where, let's say for example, going back to the visiting your website.
Let's say you have some array where every second,
what the array contain a number of how many people visit your website that second.
Well, a lot of those are going to be zero,
depending on your website.
But if your website isn't uber popular,
a lot of those values will be zero.
And so storing all these zeros or doing anything
with all these zeros is going to be very expensive.
So SciPy actually has a sparse linear algebra library.
So it only stores the non-zeros.
And when it does operations, it kind of understands sort of that structure.
So if you add two arrays, it will only add the non-zeros, things like that.
And this becomes critical in some branches of science because the matrices grow really, really big.
So the thing I always remember about Sparse,
which is an interesting way,
is if you think about Conway's Game of Life,
and if you think about playing it
on basically an arbitrarily large board,
how would you represent,
like how would you perform the operations?
I don't know.
A lot of early programming courses kind of take you through implementing conway's game of life and you typically just
use an array of arrays or a two-dimensional array um and you kind of do it but what would
happen if the board was really really really big uh how would you do it efficiently right
and that's always kind of one of the things that in my mind is a way i can relate that because a
lot of the science is out of reach for me so
and it's just as Jason said
you basically only track
and operate on the places which
are non-zero
and the zeros just aren't even represented
explicitly
yep
so
another thing is pandas
pandas is pretty cool.
If you've ever used R, you know what a data frame is.
If not, I can't explain it.
A data frame is, think of it like a SQL database in memory.
If you've ever taken a SQL class, I think we actually covered SQL on a previous show.
In SQL, you might do something like select the username where the age is 18 and up.
What you end up with is a list of all your 18 years and older users.
Obviously, it's super cool, but there's many times where you don't want to be using
SQL.
You don't want to have to query your SQL database every time you want some data just because
they have a nice interface, right?
Because you have to go out to the network to get that data.
It's kind of painful.
So maybe an easy thing would be if you could have a SQL database,
but it's just sitting in your memory.
And when you do that select, it's just instantaneous,
or just very quick, because it's just really
doing an in-memory lookup.
And so that's what Pandas does.
So with Pandas, you load your data into a data frame.
And then you can do what's called pivoting which is similar to doing
kind of like select statements and you can slice and erase your data very quickly
the handle is also the handle's reading and writing in post formats so once you
have your data in a data frame you can write it out to HF5, you can write
it out to SQL scripts, to CSV, and it goes the other way too.
You can take a whole SQL database that you serialized to CSV, to SQL, and you can read
it into a data frame using Pandas.
So Pandas, if you're doing any type of data analysis, it's absolutely essential, and it's very well done.
This last one is kind of specific. It's PyMC.
And this is for Bayesian models.
We talked about accept-read-exampling. We've talked about some other Bayesian methods in the past.
So PyMC basically just makes it super easy and it's pretty cool how it works.
One thing you can do is, let's say you want to do some analysis on a bowling tie.
So if you had a race, you'd just say, numpy,
give me a random number between 1 and 6.
And it says 2.
That doesn't really tell you anything.
You just want your number.
See, that's what you want to know.
That's sort of if you roll two dice.
But what that distribution looks like.
If you roll two dice, how often do you get 6 as the sum?
6 versus 2, right? You could actually, in my PC, you can say x equals, you know, random
number from 1 to 6 plus random number from 1 to 6. And then you can say it is the distribution
of x. And it will just, you know, run a bunch of simulations,
and just show you what that looks like.
So it's just super easy.
You don't have to have to build a lot of simulations.
You don't have to deal with running the same thing
parallel and all the time.
It does all that for you.
You just write a bunch of equation equations
and random numbers,
and then at the end you just say,
show me a few different ways
that this answer exists.
And it just does magic magic.
Magic.
Magic.
Almost always the output of all of this analysis
is some sort of visualization.
We already kind of said that.
So one of the tools that's used to generate those visualizations is matplotlib it has almost identical as far as i know function parameters as matlab and so you can you know plot a graph
set the color set the weight of the line set how you want the points used or drawn. And it's not particularly fast, so if you have like a dynamic signal,
you wouldn't want to, you know, plot it over and over again.
It's kind of slow for doing that, but for plotting the results of a whole bunch of computation
like we've been talking about in this context, it works really well.
Yeah, you're totally right.
Another cool visualization tool is panoramics. Yeah, you're totally right.
Another cool visualization tool is Panoramics.
So Panoramics is a little bit different.
It's not a library, so it's not like while you're writing code you just make a call to
Panoramics.
It doesn't really work that way.
Instead what you do is you export your data using something like pandas and then you have a panoramic service that's running and you point it to your data and then it
will give you a bunch of visualizations so the drawback is you can't just make a
call into it it's not lightweight but on the flip side it's very very full
featured so you actually if you specify the type of your data,
so if you say, for example, these are lat-long,
latitude, longitude points,
then it will actually generate a map using, I guess, Google Maps or something.
It will actually generate a map, and it will put hot areas on the map
where you have a lot of points and cold areas where you don't,
things like
that um it'll generate a bunch of different charts and and ways to slice and dice the data
it's really cool um so i highly recommend it well that's all i got for uh scientific python
yeah so um you know if you uh one thing to keep in mind is no matter what you choose to do with
respect to you know programming or engineering you'll eventually have to do this i mean if you
build a website you're eventually going to have to count how many people visit your website i mean
if you're building it and trying to grow it um no matter what you do, you're going to need to do some type of analysis.
And so if you take a bit of time to learn scientific Python and this kind of stack, it'll be just incredibly valuable for anything that you want to do in the future.
And as Jason pointed out, often, and it's not always the case, but in my experience, often these are the things you want to know how to do quickly because this is throwaway code like it's code you write
once and do the analysis and then you kind of next time you need to do the analysis it will
have changed differently enough significantly enough that you likely can't just run the same
thing again at least that's been my experience and And that comes down to a judgment call between writing something that you plan to maintain
and that you want to be, let's call it well-written,
and it's going to stay for a while,
and something that you mean to build to produce an output
and then destroy the process or whatever.
Yeah, you're totally right.
So yeah, I mean, getting more adept at this
increases like your productivity dramatically yep well thanks y'all for listening yeah thank
you for the feedback um we hope to do more interviews a lot of the feedback we've gotten
recently has been you know the interviews are great and and we appreciate that uh we we are
listening and so um you know we can so we could do an interview this month,
and nor would we want to do an interview every single month.
But actually, we've had a lot of fun doing interviews,
and we hope to have an interview lined up next month.
That's right.
And people have written in and kind of said,
like, oh, more technical, or, oh, I like it. That's less technical.
But I mean, I think I've listened to other interview podcasts and things on the Internet and people get very technical or whatever.
And that's cool.
But I feel like we bring our own brand of interviewing by kind of keeping it light, but also technical.
Right.
And hopefully these are the kind of conversations that I have with Jason, the kind of conversations I have at work.
So maybe you enjoy that.
Maybe you would be like, dude, it'd be cool to work with Patrick and Jason.
Or maybe you're like, no, I hate these guys.
Like, they must not get any work done.
You're probably right.
Or if you're in school and you're like, you know, hey,
what is it like to, you know, kind of be on a team of programming aside from
a team doing programming aside from the actual programming?
Hopefully we bring that to your lives.
Yeah, absolutely. a team doing programming aside from the actual programming hopefully we bring that to your lives yeah absolutely i mean one thing that's kind of obvious and and and uh um obvious to people who have been in industry a while is that what your job is uh is definitely not what you expect it
to be when you're in college and i mean this is true of any job i mean look at say basketball player um a basketball player spends a ton of time doing like autographs you know agents
uh you know uh doing all these different like book signing or you know t-shirt signings all
this stuff and even more than that and like a lot of time just practicing right so you think
of a basketball player it's just playing the game like that you see on tv but in reality they play practice games they do all that stuff
you said they talk strategy you're right but even when they're playing basketball they're not playing
the kind of basketball you typically think about that's right exactly and so so uh hopefully we
give you a taste of sort of what we do day to day. And that kind of kind of helps to helps you to understand sort of what you're in for once you once you do a program, if you're not already doing it for a career. this is a while ago, tell me that they listen to the podcast and they think it's awesome because it's like a conversation with me,
but they don't have to participate.
That's funny.
Okay.
So if you're listening,
you know who you are.
I don't know if that's a backhanded compliment.
No, I think they said
it's something they like listening to in the background
because it's just kind of casual and they know me
and they know my taste and they know where I'm going to go
nice
that's awesome
hello mysterious co-worker
keep sending us emails with the feedback
and everything we do appreciate it
as Patrick said we've answered hopefully all of them
if not send us another one
another email.
And we look forward to hearing what you think about this episode.
All right.
Until next time.
Cool.
See you later.
The intro music is Axo by Binar Pilot.
Programming Throwdown is distributed under a Creative Commons Attribution Share Alike 2.0 license.
You're free to share, copy, distribute, transmit the work,
to remix, adapt the work,
but you must provide an attribution to Patrick and I
and sharealike in kind.