Programming Throwdown - Scientific Python

Episode Date: March 28, 2016

This 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)
Starting point is 00:00:00 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,
Starting point is 00:00:46 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.
Starting point is 00:01:06 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,
Starting point is 00:01:41 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.
Starting point is 00:02:36 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.
Starting point is 00:03:11 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
Starting point is 00:03:26 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.
Starting point is 00:03:42 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.
Starting point is 00:04:04 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
Starting point is 00:04:25 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?
Starting point is 00:05:03 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.
Starting point is 00:05:23 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?
Starting point is 00:06:06 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,
Starting point is 00:06:32 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,
Starting point is 00:07:06 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
Starting point is 00:07:21 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,
Starting point is 00:07:55 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.
Starting point is 00:08:29 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.
Starting point is 00:08:59 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.
Starting point is 00:09:47 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
Starting point is 00:10:14 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.
Starting point is 00:10:48 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.
Starting point is 00:11:15 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,
Starting point is 00:11:34 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
Starting point is 00:12:13 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,
Starting point is 00:12:34 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
Starting point is 00:13:13 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.
Starting point is 00:13:58 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
Starting point is 00:14:45 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.
Starting point is 00:15:22 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
Starting point is 00:16:09 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
Starting point is 00:16:32 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,
Starting point is 00:17:04 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
Starting point is 00:17:39 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,
Starting point is 00:18:31 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.
Starting point is 00:18:53 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
Starting point is 00:19:35 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
Starting point is 00:20:32 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,
Starting point is 00:21:13 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.
Starting point is 00:21:48 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
Starting point is 00:22:16 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
Starting point is 00:23:02 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.
Starting point is 00:23:35 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,
Starting point is 00:24:10 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.
Starting point is 00:24:52 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.
Starting point is 00:25:22 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.
Starting point is 00:25:41 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.
Starting point is 00:25:55 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
Starting point is 00:26:26 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,
Starting point is 00:27:05 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.
Starting point is 00:27:19 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
Starting point is 00:27:35 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
Starting point is 00:28:16 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
Starting point is 00:29:11 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
Starting point is 00:29:36 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
Starting point is 00:30:00 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
Starting point is 00:30:12 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
Starting point is 00:30:44 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?
Starting point is 00:31:20 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
Starting point is 00:32:11 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
Starting point is 00:33:01 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
Starting point is 00:33:54 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
Starting point is 00:34:30 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
Starting point is 00:34:46 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.
Starting point is 00:35:14 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,
Starting point is 00:35:28 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
Starting point is 00:35:46 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.
Starting point is 00:36:19 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.
Starting point is 00:36:36 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.
Starting point is 00:36:53 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.
Starting point is 00:37:06 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.
Starting point is 00:37:23 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.
Starting point is 00:38:01 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
Starting point is 00:38:34 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.
Starting point is 00:38:59 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
Starting point is 00:39:40 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?
Starting point is 00:40:13 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.
Starting point is 00:40:30 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.
Starting point is 00:41:17 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?
Starting point is 00:41:44 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.
Starting point is 00:42:13 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
Starting point is 00:42:31 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
Starting point is 00:42:52 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
Starting point is 00:43:38 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,
Starting point is 00:44:27 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.
Starting point is 00:44:36 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,
Starting point is 00:45:17 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?
Starting point is 00:45:51 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.
Starting point is 00:46:27 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...
Starting point is 00:46:53 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
Starting point is 00:47:12 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.
Starting point is 00:47:28 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
Starting point is 00:47:43 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.
Starting point is 00:48:23 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,
Starting point is 00:48:58 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
Starting point is 00:49:26 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
Starting point is 00:49:42 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
Starting point is 00:50:13 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
Starting point is 00:50:52 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.
Starting point is 00:51:31 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,
Starting point is 00:52:12 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
Starting point is 00:52:34 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
Starting point is 00:52:50 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.
Starting point is 00:53:08 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
Starting point is 00:53:24 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.
Starting point is 00:54:11 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.
Starting point is 00:54:47 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.
Starting point is 00:55:18 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
Starting point is 00:55:36 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.
Starting point is 00:55:52 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
Starting point is 00:56:13 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.
Starting point is 00:57:04 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.
Starting point is 00:57:19 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,
Starting point is 00:57:53 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,
Starting point is 00:58:27 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.
Starting point is 00:58:53 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,
Starting point is 00:59:20 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
Starting point is 00:59:48 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
Starting point is 01:00:04 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
Starting point is 01:00:48 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,
Starting point is 01:01:11 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
Starting point is 01:01:46 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.
Starting point is 01:02:35 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.
Starting point is 01:02:59 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.
Starting point is 01:03:35 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.
Starting point is 01:03:51 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,
Starting point is 01:04:30 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
Starting point is 01:04:55 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,
Starting point is 01:05:32 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
Starting point is 01:06:16 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,
Starting point is 01:07:11 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
Starting point is 01:07:43 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.
Starting point is 01:08:10 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.
Starting point is 01:08:32 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
Starting point is 01:09:17 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.
Starting point is 01:10:17 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
Starting point is 01:10:33 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.
Starting point is 01:10:51 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,
Starting point is 01:11:09 but you must provide an attribution to Patrick and I and sharealike in kind.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.