#216: Digging into Visual Studio Code Transcript
00:00 Michael Kennedy: One of the questions I often ask at the end of the show is, "When you write some Python code, what editor do you use?" Increasingly, the most common answer is Visual Studio Code. Despite its Windows only namesake, Visual Studio Code is cross-platform, has been gaining a lot of traction in the Python space. I was at the Microsoft BUILD conference, immediately after PyCon, this May. There I got a chance to sit down with Dan Taylor, from the VS Code team, to discuss what they'd been up to with VS Code and Python. This is Talk Python to Me, Episode 216, recorded May 8, 2019. Welcome to Talk Python to Me, a weekly podcast on Python. The language, the libraries, the ecosystem, and the personalities. This is your host, Michael Kennedy. Follow me on Twitter, where I'm @mkennedy. Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter Via @talkPython. This episode is sponsored by Linode and Backlog. Please check out what they're offering during their segments. It really helps support the show. Dan, welcome to Talk Python.
01:12 Dan Taylor: Hi, it's great to be here.
01:13 Michael Kennedy: Hi, it's great to have you on the show, and we get one of these special opportunities to do an in-person recording with each other, right? Before we get into the normal flow, I just want to, you know, say hey, we're here at Microsoft BUILD, recording live. Not in a live audience, but in person and sort of on the floor here, so it's really, really cool. It's great to be here and we're going to talk a bit about that. Also about PyCon, but let's start at the beginning. Start with your story, how'd you get into programming in Python?
01:37 Dan Taylor: Programming, I've kind of had a computer, 386 computers, since I was like five years old at my house, right? And so I was always doing a lot of like batch file stuff and DOS and things like that, but...
01:47 Michael Kennedy: I remember batch files, that used to feel like pretty awesome programming stuff, right? You'd be able to make the computer do its magic at startup, right? You could mess with AUTOEXEC.BAT and all that stuff.
01:56 Dan Taylor: Yeah, yeah, and then if you get really into it, doing an if statement in batch file programming is like really, really hard, but I'd make a little text adventure game, something like that.
02:05 Michael Kennedy: Oh, my gosh, that's awesome.
02:06 Dan Taylor: Yeah, but I think, oddly enough, when I really got into programming was with Visual Basic 6. I was sitting in grade school just like during reading time, just reading a VB6 book that I'd printed out, and everyone's looking at me going like what is this guy doing?
02:18 Michael Kennedy: That's awesome. I remember printing out the source code for Notepad, I think, in C++, and reading it and trying to understand it way back in the day. That's pretty cool. You know, VB6 is, that was a special time, actually. You could really build some cool UI's, super quick, with VB6, that drag-and-drop stuff, and I feel like we kind of don't really have that anymore.
02:39 Dan Taylor: Yeah, I mean that's really what got me hooked into programming, that you could kind of, like I could see something, I could just double click, and it really gave me this... You know, it's that game of where you get that five minutes to success, and you just want to like keep playing the game until you build up stuff. I built all sorts of different programs up. I mean, some of the Visual programming stuff is starting to come back with like EduBlocks, and MakeCode, and some of those things, and I think that kind of stuff can really like maybe get more young people into programming, just like that was kind of the ah-hah moment for me, you know, that sort of stuff.
03:07 Michael Kennedy: Yeah, I definitely think that's... I think it's a little bit missing. I think a lot of the cool frameworks that were really good and that kind of outgrew it, a little bit and become a little more pro, which is fine, but it also means those simple, easy steps into super quick UI's is gone. I mean VB6 is good, Windows forms is actually not bad, but it kind of became WPF, which is super hard. Not super hard, but relatively, for just jumping into it. There's AnVil, which is kind of a cool web front end thing, and Python. But, yeah, there's not too many of 'em. Anyway, so that was sort of the getting started point, but that's not Python, right, that's VB6.
03:40 Dan Taylor: I think the first time I used Python, I was working at Autodesk, and I was working on some of the graphic stuff, and there it was all just building UI's in Python, and using SWIG to interact with C++, and stuff like that. And then I just kind of like took that back to school with me, to school projects, where professors were kind of saying you know, hey, you should use a real programming language so that you can learn real programming, and I'm what are you talking about? You know this is real programming, I just built all this stuff with it. And now you got all these big companies doing... You know, you got sites like Instagram and Pinterest, all built with Python.
04:10 Michael Kennedy: I mean, YouTube gets a million requests per second, is that not real enough?
04:13 Dan Taylor: Well, yeah, yeah, exactly. So it's interesting, how our perspective changes on that stuff over time.
04:17 Michael Kennedy: You know, it makes me crazy when people call Python a scripting language. You know, you're like oh, is that your favorite scripting language? I'm like whoa.
04:25 Dan Taylor: Well it's great at scripting. You know?
04:26 Michael Kennedy: Exactly.
04:27 Dan Taylor: It's also great at a lot of other stuff, too.
04:29 Michael Kennedy: You can build real things with it. So, you were talking about Autodesk. Was that building stuff that was like embedded into some of those apps, or was it like workflow between the apps? What kind of stuff was there?
04:37 Dan Taylor: Well, I was working on a product that I don't remember exactly what it was called but it was doing literalzation of cars and things like that. The UI, that team had decided to use Python for the UI with WX wigits. And then they would call down in the C++ layer to do a lot of the 3D graphics. But I did a lot of the scene manipulation and things like that with Python. So there was some vector math and sort of all sorts of stuff that was in Python. So it was this weird, you know, you could do a lot of things in Python and then all of a sudden you're in this big C++ world and stuff like that.
05:06 Michael Kennedy: Yeah, that sounds really cool though. The 3D stuff is always so interesting but it's pretty challenging to work in. I built a couple from scratch 3D simulators in OpenGL and I always thought, the first half, and it used to be so fun in the second half. I'm like, why can't I see the thing though? 'Cause I have the clock wise where it says anti- clock wise.
05:24 Dan Taylor: Can you do the thing with your fingers where you got three axes? I have this book real time rendering where I'm just staring up in the room trying to figure out what direction things are pointed at. It's kind of crazy.
05:35 Michael Kennedy: It's totally crazy. Lets talk a little bit about what you do day to day. You work at Microsoft, what do you do there?
05:40 Dan Taylor: So I'm a principal PM Manager for Python Developer Tools team. I have a small team of PM's and we work on Python, the Visual Studio Code, Python Visual Studio, and then also Python and Azure.
05:51 Michael Kennedy: That's pretty awesome.
05:53 Dan Taylor: That's a pretty big set of different things. But yeah we do quite a bit.
05:55 Michael Kennedy: Yeah, and it's growing, right?
05:56 Dan Taylor: Yep, it's growing. When I started the team it was just me and one other PM. And I was working with Brett Cannon. And now Brett Cannon's managing a team. And I managed to do well with Python and Microsoft
06:09 Michael Kennedy: Yeah, that's super exciting. So you work with a lot of the folks at Microsoft that also have been on the show, yeah?
06:16 Dan Taylor: Been on the show and out there in the community working on the core Python developers. We got a couple of like Brett and Steve on our team, yeah.
06:23 Michael Kennedy: Cool, yeah, I think it's going to be a pretty interesting perspective that you have coming from Microsoft customers and developers and intersecting here with Python. I feel like you might get a little more Visability into what Python at Enterprise or large corporate places kind of looks like. What are your thoughts there?
06:44 Dan Taylor: Yeah its an interesting spectrum. I work with a lot more indiVidual developers working in Python land than I do in other places. But then also here with .NET and the other programming languages we talk to a lot more big enterprises. But we also here from the big enterprises doing Python that we have all these challenges and concerns around performance and scale and compliance and security. And like all these different things that when you're just sitting down there trying to like hey how do I learn programming and make hello world, these two worlds are very at odds with each other. And it's interesting watching sort of the core development team on Python trying to naVigate and negotiate the different pressures and stuff like that that are coming from two directions. How do we enable it to meet all these enterprise needs while still keeping it fun, easy to use, really productive and not adding a whole bunch of stuff that's getting in my way?
07:37 Michael Kennedy: Yeah, don't over professionalize the Python. You know one of the things I go on a lot about is how Python is a full spectrum language. You don't have to take the complexity at the beginning. You can be productive with Python with a partial understanding of what it is, what it can do. But you don't outgrow it so much like say VB6 for example, like you said earlier.
07:58 Dan Taylor: Yeah, yeah, yeah. And Python is kind of my go-to for anytime I want to do something, my first answer is can I do this with Python? But in terms of managing the complexity I think, I forget the name of that backslash operator that gives you the sort of positional arguments and stuff like that. That's an interesting one where you can add that and you can use it. And it allows you to interface with CAPI's and things like that. But hopefully, most people never have to see that.
08:21 Michael Kennedy: Yeah, exactly. You could go your whole life as a developer not knowing that there's a syntax for key word only arguments. And now there's a syntax for positional only arguments. You don't need to know. Cool so we were both just at PyCon. And we quickly got on a plane and flew to Seattle to go to BUILD. What were your thoughts on, I guess, PyCon first?
08:43 Dan Taylor: PyCon's just such an amazing event. And I don't think I've been to another even that's quite like it. It really is, Earnest was on the stage talking about how this PyCon means community to a lot of people. And just seeing that community and it's such a diverse and inclusive place. Last year was my first PyCon and after I left I was sort of like, I think I'll keep coming back here even if I wasn't working on Python or working at Microsoft.
09:09 Michael Kennedy: Yeah, that's super cool. I feel like its my geek holiday, my geek getaway.
09:13 Dan Taylor: Yeah, and then there's all the people you see through all the different events that throughout the year and all things, so. It's great that Microsoft is there and we're able to help sponsor it. We're the keystone sponsor of the event. So it was great to have the big presence there and just see a lot of people coming up and talking to us.
09:33 Michael Kennedy: Yeah, that's super. And you guys had a cool hands on thing where people could get a little robot or something> what was that about?
09:39 Dan Taylor: Yeah so we had hands on lab using VS Code and Azure functions and some of our cognitive serVices. And you get a little lunch box kit which has some circuits and some things like that. And then you can actually get a workshop with the Adafruit team that came over with their lunch boxes and walked people through a sample lab.
09:58 Michael Kennedy: Yeah, that's really cool. Nina's got a bunch of cool embedded wearable stuff going on and it's like right up her alley.
10:15 Dan Taylor: Yeah, she loved that stuff. And she did a keynote on Python hardware and it was just awesome. And I really loved how she said that the hardware really makes people more interested in programming. And women in particular it makes them more likely to stick with programming in tech.
10:21 Michael Kennedy: Yeah there was some super interesting results coming from the BBC microbit study done in the UK a couple of years ago. Just how much more likely people were to go into STEM or care about it.
10:31 Dan Taylor: It just makes it real, right? It's like sort of like what we were talking about earlier. It's sort of you see that, hey I can do something, I can make these lights flash. I can make noises, you know what I mean? And it makes you want to keep playing the game, right?
10:40 Michael Kennedy: Yeah absolutely. And you get those quick wins and things like circuit Python and stuff make it way easier than embedded C.
10:46 Dan Taylor: Yeah, no back slashes.
10:50 Michael Kennedy: Yeah, right on. Lets start talking a little bit about VS Code. When did VS Code come out?
10:54 Dan Taylor: It came out in 2015, I don't remember the exact month, but 2015, so not too long ago.
10:59 Michael Kennedy: Yeah not too long ago. And originally it wasn't necessarily supporting Python right out of the box, right?
11:04 Dan Taylor: So when it came out it was...
11:06 Michael Kennedy: What was the original goal or idea behind it?
11:09 Dan Taylor: The original pitch was a free open-source cross-platform editor with support for Node.js and Javascript with built-in debugging and source control. So it's still like an editor, plus a little bit of extra functionality.
11:28 Michael Kennedy: It seems to me like it's original zen was just like, we're going to try to be as minimal as possible while proViding you real tooling. Like editors and auto-complete but try to be the least amount of that, that we can still get away with. That was my perception from the outside.
11:44 Dan Taylor: Certainly, you see a lot of people using things like Vim or Notepad++ and stuff like that. And you can see a lot of people just want you know, let me just open the code and start working with it and then start from there and then add on the debugging and functionality sort of on top of that. And then shortly after that, they didn't have extensions when they first released it and now everyone is like, ya know. It got quite a good reception when they first put it out there. And then everyone's asking for extensions and so, once they put the extensions out there, that's when other languages really started coming up like Python.
12:17 Michael Kennedy: Yeah, I feel like that kind of made it blowup.
12:19 Dan Taylor: Yeah, it really opened the doors and the extensions is really what a lot of people say they love about VS Code, today. That its just got so many extensions out there and so many people building them and creating on them. That's even how Python got it's roots. Don Jayamanne from Australia just built a Python extension and put it out there. And it sort of took off on the marketplace.
12:40 Michael Kennedy: Oh, that's super cool. And I had him on the show quite awhile ago. And we were remarking about how insanely popular that extension was. This was before he worked with you and at Microsoft it was just his thing. And I think we were like, wow, there's a million downloads or 500 thousand downloads or something like that.
12:58 Dan Taylor: Yeah, and that number just keeps increasing all the time. So even a year ago, there was 6 million downloads and now there's 44 million.
13:06 Michael Kennedy: Yeah, I looked today it's like 44 million. And what's pretty impressive to me is projects that come from Microsoft traditionally has been pretty heavy in the C#, C++ side of things. If you pull up the most popular plugins or extensions you don't see C# and then like ASP.NET extensions and then somewhere down the list, Python. Python is the number one most popular extension.
13:34 Dan Taylor: Yeah and that's something that really got me excited to move over to the Python team at Microsoft about two years ago. I had been walking around saying, why aren't we doing more with Python? Come on we should be doing more, we are the Python team but we should be doing more. And then someone said, hey we hired Don and we're going to put a team on it, you want to do this? And I was like, I got to jump on that.
13:53 Michael Kennedy: Got get involved with that. That's awesome.
13:54 Dan Taylor: Its just so much fun working on this team.
13:57 Michael Kennedy: That's super cool. Yeah, I did some other looking around and the second and third most popular extensions are ES Lint as number two and C++ as number three. And there are only half as many, there's still 20 million, but there's still significant enough.
14:10 Dan Taylor: One thing I will say about the download count is every time a person updates the extension those count as new downloads. So they've added the install counts on their marketplace just full disclosure
14:18 Michael Kennedy: I see.
14:20 Dan Taylor: We push out a little updates every now and then so some of those can...
14:23 Michael Kennedy: So the more active teams can get a little better, get a little ahead?
14:26 Dan Taylor: Yeah exactly, so.
14:27 Michael Kennedy: That's still pretty good though.
14:28 Dan Taylor: But yeah, we're still number one by installs as well.
14:30 Michael Kennedy: VS Code's a Electron JS app, right?
14:32 Dan Taylor: Mm hmm.
14:33 Michael Kennedy: Maybe tell people quickly who was on there. Like there's all sorts of folks who listen. What is that? That's kind of a fairly new and unusual way to build an app. But it's definitely taking off like Slack and some other functionalities as well.
14:45 Dan Taylor: I'll do it the best justice I can being a program manager. But Electron is the framework for building Javascript apps on the desktop. And I think that's what really enabled us to create something that was cross-platform right out of the gate without too much dealing with weird low-level C platform code.
15:03 Michael Kennedy: Chrome is already cross-platform. Node is cross-platform and then HTML and CSS, right?
15:07 Dan Taylor: Yeah, it made so much sense for us. We had this online editor called Monaco, which was created by Erich Gamma, one of the gang of four.
15:16 Michael Kennedy: The original design patterns from early 90's.
15:19 Dan Taylor: Yeah, and he had built this on an editor that we had been using in Microsoft or similar online source controls some online editing experience in Azure. And so, they were just able to say like hey we got this online editor we got Electron let's build VS Code. And it really actually got put together relatively quickly and we just put it out there.
15:41 Michael Kennedy: This portion of Talk Python To Me is brought to you by Linode. Are you looking for hosting that's fast, simple, and incredibly affordable? Well, look past that book store and check out Linode at talkpython.fm/linode. That's L-I-N-O-D-E. Plans start at just $5 a month for a dedicated server with a gig of RAM. We have 10 data centers across the globe so no matter where you are or where your user are, there's a data center for you. Whether you want to run Python web app, host a private git server, or just a file server, you'll get native SSD's on all the Machines, a newly upgraded 200 gigabit network, 24/7 friendly support even on holidays and a 7 day money back guarantee. Need a little help with your infrastructure? They even offer professional serVices to help you with architecture, migrations and more. Do you want a dedicated server for free for the next four months? Just Visit talkpython.fm/linode. One thing that's a little interesting is you guys also have, well not you indiVidually, you as Microsoft, you have Atom after you've acquired Github, right. Which is also Electron JS. It's kind of interesting. What's the story with those two? Are they both going forward or...
16:51 Dan Taylor: Yes, so, Nat Freedman when he became the CEO of Github we did an AMA on Reddit and this question came up. I loved his answer, he said, "As long as people want to keep using Atom, we'll still work on Atom and put it out there".
17:04 Michael Kennedy: Yeah I know some people using Atom and they're doing cool stuff with it. So, that's pretty awesome. Yeah, it's kind of interesting how things have shifted. How's the whole Github acquisition changed people's perspective for you all working on the team, or has it?
17:19 Dan Taylor: They're still kind of managed as this different company, have their own CEO, stuff like that. And I can only speak for my own experience, but my experience is that we're just more likely to recommend using Github in places rather than haVing to maybe come up with our own solution or have two implementations sometimes. It makes it a lot easier to just say, well just use Github.
17:38 Michael Kennedy: [ Michael] Yeah, well, I think people are starting to say that anyway.
17:41 Dan Taylor: Yeah, we're already kind of going in that direction.
17:44 Michael Kennedy: And before there was any word of you all buying Github, it was still like, clearly the momentum. The blackhole of open-source in a positive way, was Github just sucking everything in, right?
17:57 Dan Taylor: Yeah and I was so excited when I opened my phone up and pulled up my stock ticker. I'm like what? Github's amazing.
18:07 Michael Kennedy: What is this news event what is this? I think it's positive. I know there was a little bit of surprise, some trepidation in the opensource space when it first hit and there were people talking about moVing to Bitbucket or other places. But I don't really see that manifesting. What I thought was super interesting was actually looking at some of the reasons behind it. It looked like it was really in the end of pretty positive outcome for both Github and you guys.
18:31 Dan Taylor: The thing that, and I can just react to what I read. There's always a negative reaction somewhere to anything you do as a large company. There's always somebody not happy. But what I was really encouraged by was that people were out there saying, no this is terrible this is eVil. And then other people that weren't from Microsoft were like arguing with those people saying, hey this is actually good where Microsoft is. They love opensource. And there's other companies that could have bought them that could have been much worse. And really have the resources to make sure that Github thrives and it continues to be the big platform for doing opensource. Especially, VS Code actually I think is the biggest opensource project on Github when we made that acquisition, so. It was already a platform that we were really well invested in just as indiVidual developers.
19:19 Michael Kennedy: So you kind of bought your source control proVider. [ Michael] How interesting. Okay, cool. Lets focus a little bit on the growth of VS Code, I guess. I was really surprised, like we talked about the origins a little bit. 2015 so it came out and then the extensions and what not. Did it surprise you? Did you guys do a backflip of joy when you saw the Stack Overflow survey showing VS Code the number one editor out there in terms of usage?
19:50 Dan Taylor: Yeah, I was very happy to see that. I still don't really understand what that means in terms of, like wow. Its actually, the majority of developers use Visual Studio Code if you look at that survey. And I just can't comprehend that. I feel honored to work on it.
20:07 Michael Kennedy: That's actually pretty awesome, right? Yeah, one thing I would like to ask you and I run opinions and I don't think its crazy or anything. Why would Microsoft work on this? You're not selling it, right? You just go get it, it's free. What value do you guys have in it other than goodwill and we want it to exist, or whatever?
20:27 Dan Taylor: So this question comes up all the time. People always ask this. And I don't know if you know about Microsoft. But we have always had a really giant developer tools diVision and we've always given developer tools away for free. Like Visual Studio, it's a paid product, but actually the majority of people use the free community edition for something like that. But before Visual Studio Code, there's a lot that if you're an opensource developer using Python or Node or something like that, we didn't really have much that was relevant to you from Microsoft because a lot of our stuff was Windows only.
20:58 Michael Kennedy: Right, you had Visual Studio. And Python Tools for Visual Studio but like you said, that's Windows only. And that creates a lot of friction already.
21:06 Dan Taylor: For us, the benefit to Microsoft is that if you use Visual Studio Code and you like your experience there, maybe you'll consider some of our other stuff? And it really comes down to that. Otherwise, not really thinking about us. We're not in the conversation.
21:24 Michael Kennedy: That would have been my guess of what you were trying to get out of it. But I wanted to see it from your perspective. If you have interesting Azure plugins like push a button here and it's on our Kerbenetes serVice, right?
21:34 Dan Taylor: Yeah exactly.
21:34 Michael Kennedy: It's right there next to them. Then all of a sudden, there's your sort of implicit upsale or whatever.
21:42 Dan Taylor: Yeah and we sort of leave that option on the table. You can choose to use that if you want. It does also allow us to create a really good developer experience with our Azure plugins. Because we can sort of, its sort of like the vertical stack integrated but also choose your own pieces, whatever.
21:55 Michael Kennedy: Yeah that's I suppose in addition to being the upsale button. The people who already choose Azure or other tooling from you guys you can proVide them the best possible experience cross-platform for your own stuff.
22:07 Dan Taylor: Especially if we believe that we have the best developer tools that you can use.
22:10 Michael Kennedy: Yeah, you've definitely made some great ones over the years, so that's pretty cool. And I guess, lets touch on some of the features. I feel like you all have been on a bit of a tear with doing some cool stuff. Almost all of the announcements and what not have been sort of put off or held until here at BUILD. That's your big developer conference. That's like Apple's WWDC or Google IO.
22:37 Dan Taylor: Its our superbowl.
22:40 Michael Kennedy: Yeah, exactly. Yeah, it's a big deal. But the VS Code team announced some pretty cool stuff at PyCon in honor of PyCon being the biggest eco-system there.
22:50 Dan Taylor: Just last week at PyCon at the expo open we pushed the buttons and unveiled our Visual Studio Code remote development features. And we brought that to PyCon because it was Python developers who were the most passionate about it. And actually, at PyCon last year that's what everyone was asking us for. So we really said hey we got to pull this one early 'cause we want to go talk to the that were asking for it. And if you don't know, with Python, a lot of people develop inside of Docker containers or remote VM's, or have access to giant data sets. And then also a lot of people on Windows using Windows Subsystem for Linux. And their tools are just not really able to work in those environments.
23:29 Michael Kennedy: Yeah, and Windows Subsystem for Linux even though its in the same OS, its kind of isolated in certain ways, right?
23:34 Dan Taylor: There's no UI so you can't really type code on the command line and have a UI pop up until now.
23:38 Michael Kennedy: Until now. Yeah, so this is a pretty big deal. And I feel like it addresses one of the things that was here a lot. And a lot of people say to me and its totally fine. Its not the way that I see the world but its the way they see. They say, look I am a lot of times going to be remoted. I'm stationed to a server. Or, I'll be dropped into some environment like Docker or whatever where I don't have my fancy tools be that PyCharm, VS Code or whatever. So my thinking is, I'm going to just work in Vi or EMacs because I have it everywhere.
24:18 Dan Taylor: Yeah, I think SSH development is probably the number one driver of Vi usage.
24:24 Michael Kennedy: Yeah, exactly. And its a totally valid perspective. I find its not the trade off I make but its fine. But I feel like this feature kind said look you can have proper tooling all the time over SSH and other things. So maybe tell us a little bit. Its really broken into three parts right. You talked about WSL, Windows Subsystem for Linux, Docker containers and then remote SSH type of development.
24:53 Dan Taylor: Let me just take a step back and talk about the concept. 'Cause a lot of people we show this too, it takes little bit for it to click because its a little bit of a different way of using VS Code. So the user interface of VS Code run on your local Machine but there's a remote server that actually hosts the backend of VS Code.
25:10 Michael Kennedy: Like a language server and all that kind of business?
25:14 Dan Taylor: Not just a language server. But the Python extension for example runs on that remote environment. The C++ extension, the file system and source control. VS Code was always a client/server model between the UI and the backend. What we do is we just took that server and then move it off the local Machine.
25:31 Michael Kennedy: You hid it further away.
25:32 Dan Taylor: Further away, exactly. So you get an experience that's just like local development. You're typing in, the UI's nice and responsive. But as you're typing in, its literally editing directly the files in the remote system. So you can do debugging. You can get your and auto completions. Anything that you have... With the Python extension we didn't even have to really make many changes it just worked. All the features that we had on there just lit up in this remote environment.
25:57 Michael Kennedy: That's cool because where its running is actually where its interacting, right. Its on your remote SSH Machine and so you didn't have to teach it how to find that thing it was just already there.
26:08 Dan Taylor: Yeah, you just open it and we automatically copy over the server and start it. You actually don't need any files locally to use it. It just sort of, its like the Vi experience but you get all of the...
26:18 Michael Kennedy: The debugging and code navigation and all that.
26:21 Dan Taylor: Yeah, and people ask like okay how do I set up remote debugging. And we say, well it's not really remote debugging. You're remote editting but it's local debugging kind of. So it takes a little bit for it to click but its really powerful and its really cool.
26:34 Michael Kennedy: Yeah I'm definitely looking forward to checking it out. There's, certainly the SSH side of things is where its interesting for me, you know. The Windows Subsystem for Linux, I carry on my fruity laptop so it doesn't matter that much to me. But if I worked on Windows that would be cool. Containers, I think containers are pretty interesting as well.
26:54 Dan Taylor: So the thing I like to say about containers is that if you think about your developer onboarding guide at your company, and it's got like this wiki with all these steps. And usually the new developer's first job is to go through the onboarding guide and find all the broken stuff and fix it.
27:09 Michael Kennedy: Install this database server. Oh you got to set this setting so it works.
27:12 Dan Taylor: Yeah, install Python on your path but if you had one, remove that. Or like this version of Node, that version of Node. And the cool part is that with the container, development environment you can just kind of clone the repo, open it with VS Code and it just sort of, all your developer dependencies are just defined there for you. And it just starts them up and you can have that environment that you can start working with and everyone gets sort of the same whether they're on Windows or Mac.
27:36 Michael Kennedy: That's pretty cool. You definitely get the closer to what you're actually running debugging and development experience. Well there's the close sort of production but also just reproducible so that everyones got the same thing.
27:40 Dan Taylor: Well there's the close sort of production but also just reproducible so that everyones got the same thing.
27:48 Michael Kennedy: Yeah, big teams are always a pain to kind of figure out why. I'm checking it, doesn't work for that person but it does for this other person. Yeah, that's no fun. Cool, so, this is in the insider build right. I have VS Code and I heard that announcement and I checked for updates and I didn't get any updates. And I go, oh well. What's the story with the insider build and how do I get it at a normal install and start to see it?
28:09 Dan Taylor: VS Code insider is our daily developer build VS Code that comes out everyday. And once a month the insiders build gets promoted to the thing that gets released. The VS Code team use it themselves for building VS Code so it is relatively stable. And if it breaks, they fix it quite quickly. Sometimes overnight because they got a team that's working on it. So yeah, its a side by side install. You can go to code.visualstudio.com/insiders its the insiders build so. It'll be available and stable within the next couple of weeks.
28:40 Michael Kennedy: Yeah and it'll probably come out about the time we actually release the episode. So the magic of time shifting.
28:45 Dan Taylor: Yeah so the remote extensions are on the marketplace. Today they only install on insiders but very soon you can just go to your extensions tab and install the remote development extensions. And you'll get all the features that we were talking about.
28:57 Michael Kennedy: Cool so I want to have this ability on my server. Its Ubuntu running in the cloud. I SSH to it, like what do I do?
29:03 Dan Taylor: If you already have a public private key setup with that SSH server, VS Code just uses your ssh configuration on the machine. So you install the remote ssh extension. Go to the ssh panel and you'll see that server listed and then you just click open new window in VS Code and it will just start up a new version of VS Code and run in that remote context. So install some stuff and then all of a sudden it will just connect. And you can VS Code as if you're on that machine.
29:29 Michael Kennedy: That's pretty cool. So I don't need to at least manual go and change my server to make that happen. The first run it goes, ssh in there. And goes oh it looks like your missing the server sites we'll drop that in and then get started?
29:42 Dan Taylor: And then you can start coding. And you can open folders on that remote Machine and create new files and just start pluggin away. And then you can install, usually though the one time step is you actually need to install the extensions you want to use on that remote server. So you'd go in and install the Python extension for examples that you get Python support.
30:00 Michael Kennedy: I see, okay. That's pretty interesting. What's the security story? Ssh often means production on our servers that are sensitive. You don't want people just to do anything there. And I guess its already protected with your certificates and ssh, but anything to be aware of?
30:14 Dan Taylor: Yeah so I mean the one thing that does come up is sometimes people have a 2FA prompter challenge that they need to enter in order to really authenticate in that environment. So if you're in that situation there's a setting you can turn on that will bring up the terminal so you can type in an additional password or key if you need to, yeah.
30:29 Michael Kennedy: And how do I interact with files? Is there a way to explore the file system and find the files I'm looking for? Or do a project? Like, what is it...
30:39 Dan Taylor: Yeah so when you open VS Code, you get the open a new file window. The default experience. But then you can open the terminal and you ls and cd around. You can also open a folder and then you'll actually get a little browse window to browse the file system over there. And then, if you hit click or home/my projects, and you open that, you'll be able to see in the file explorer in the left hand side.
31:03 Michael Kennedy: You have the directory tree.
31:04 Dan Taylor: You'll see the directory tree, all the files in there and stuff like that.
31:07 Michael Kennedy: Alright.
31:08 Dan Taylor: A couple of ways to explore.
31:10 Michael Kennedy: Yeah, that's pretty cool. So you mentioned Windows Subsystem for Linux, WSL. Maybe people don't know about that. But there also was a pretty big announcement here I think around that as well, right. That that's like proper Linux, not some kind of emulator or something.
31:22 Dan Taylor: [Micheal] Yeah, so the way WSL started it was a Linux kernel or Ubuntu image that you can run an it was, they sort of shimmed out all the sys calls to Windows kernel. That's pretty neat but the file system performance was a little bit poor with that. These two things weren't meant to necessarily talk like that. So at BUILD we announced a new version of WSL that's more like a very lightweight vm. Where it runs a full Linux kernell and its like 20 times faster in a lot of cases.
31:46 Michael Kennedy: Oh, that's pretty cool.
31:48 Dan Taylor: You don't have that interlop between the two operating systems.
31:52 Michael Kennedy: Yeah, what are some of the use cases people have for using it? Why would they use it?
32:00 Dan Taylor: Interestingly most Python developers roughly 50% of them are on Windows. But a lot of them also deploy to Linux environments.
32:08 Michael Kennedy: Dev on Windows, push to Linux.
32:12 Dan Taylor: Yeah have Linux servers. So a lot of their tool chain is in Linux. And you want ls and grep and sed and all that stuff. You want to be able to just kind of use that right. So it's really give me a good bash experience where I can install all the things I need. I can install Python and all that stuff. But still be able to use the UI or the user interface in Windows.
32:37 Michael Kennedy: Okay, yeah that's pretty cool. Steve Dower, one of your coworkers, gave a really cool presentation at PyCon that was titled something like, "Python on Windows is okay actually". And it was a really nice talk. People should definitely go check it out. But some of the cool things he talked about was I guess, 60 ish percent of Python developers are using Windows. It's quite a high number of how many people are actually using Windows. But he made the point that if you look around the room there's the conference reality and there's real reality of sort of tooling, technology distribution. And conference reality says most people have Macs. A few of them have Linux and there's a couple of people with a surface or whatever running Windows. But generally its the Posix side of the world. But if you actually look at the stats he talked about why is that. Why aren't more of the Windows developers at PyCon and feeling like they're part of the community not just using the tooling but actually part of the Python community. I don't know he had some pretty interesting ideas and solutions he threw out there. But what do you think about that?
33:51 Dan Taylor: I definitely agree with the stats and all that. His talks about the... There's a lot of, maybe, hidden people out there who are just trying to learn Python or trying to get their job done. They're all just struggling to use the tools. And we're doing as much as we can from Microsoft to make Python easy to use on Windows. But then it's up to kind of the package authors to think hey it's not just here's my Mac, Linux instructions I need to actually test this on Windows and make sure it works on Windows. Because there's a lot of people who maybe can't afford to fly to conferences or who aren't kind of up in all the high-tech stuff that we all live and breath in everyday.
34:24 Michael Kennedy: Or maybe they didn't choose Python. Maybe their job chose Python for them. Like they got a job to work as a Java developer then somebody said, we need you to maintain this Python project because, you know... So whoever was working on it has moved on and now someone's got to take it over so you took it over. And they are now working with these packages and they didn't necessarily decide to start in that place, right. That's a different perspective I think.
34:56 Dan Taylor: It's possible. And there's also a lot of, just think about a lot of people use Python for information work. Like sort of I'm trying to crunch some numbers at my insurance company and I'm using Windows desktop to do a lot of that stuff Python might be something that... Especially these days, a lot of people are using Python just to get their jobs done. Maybe they're not primarily programmers...
35:21 Michael Kennedy: Right, I think that's a really big source of the growth of Python. Its not like more websites are being built in Python necessarily. Its that Python is becoming the tool that people who are not developers are using.
35:33 Dan Taylor: I think its growing in both, right?
35:38 Michael Kennedy: Yeah, I agree.
35:39 Dan Taylor: Its both becoming really advanced capable language for things like data science and machine learning, as well as still easy to approach for that person that's just trying to get their job done and trying to compute some numbers. And maybe script a few things to make their lives easier.
35:56 Michael Kennedy: Right, absolutely. I was talking at a dinner last night with some folks who were not super familiar with Python. They had been doing more Javascript. They knew of Python. They were asking me why do you think Python has become the defacto language for data science? And I'll put that question to you, like what do you think?
36:15 Dan Taylor: My simple reaction when I heard it was a popular language for data science is like, well of course. You got like the maps and the array slices and all that stuff. And I just remember with Python I could always do something with just a few lines of code. Maybe like 80 lines of code that would take me 1000 lines of code in another language. And I'm just like, wow, I can't believe I did all that. And when you put that together with something like data science plus the really good notation for manipulating arrays and stuff like that, I think it just makes sense. And then you have libraries like Pandas and Numpy that came along and actually made it so you could work with larger data sets relatively efficiently. And express a lot of stuff that other languages don't really have.
36:47 Michael Kennedy: And Tensorflow and Numpy in it has the performance of C basically. Or GPU's. But you don't have to write C directly program.
36:54 Dan Taylor: Data scientist aren't necessarily like super top programmers either. They don't know, necessarily, all the best engineering best practices. So haVing a language that's really approachable for them I think really helps.
37:07 Michael Kennedy: I was thinking a language that's simple to get started. You can kind of get your stuff going but you don't run out of speed. You've got all these libraries. I think its pretty interesting that it's kind of taking over that space. But the think about why that is. I think there's a few things that happened. Like the creation of iPython notebooks, for example. And some of the tooling but also just the language.
37:28 Dan Taylor: Before I joined the Python team at Microsoft there is an instance where we're trying to crunch some data. And this guy who just came out of school like brought in Jupyter notebooks and Pandas and all this stuff. And I was like, whoa, Python has changed a lot since I last used it. In fact, people are excited about the language again.
37:48 Michael Kennedy: Yeah, that's super cool. It's got so many interesting use cases. And different people use it so differently. Like my first reaction to I need to write some code is not fire up Jupyter and create a notebook. And its like, I'm going to create a project with test and coverage and these files and architecture and layers. And its totally valid. Its just different use cases.
38:09 Dan Taylor: Yeah, I like that acceptance of kind of even if you're not doing Python correctly, its still fine. To me, there's no correct way of using Python. The way to use it is the one that gets your job done as quickly as possible.
38:20 Michael Kennedy: Yeah, yeah, for sure. So there's a couple of other things I want to talk to you about VS Code that I think is pretty awesome. We talked about Machine Learning and AI. So I guess I'll start with that one. So lets talk about intellicode. So we have auto complete in general. We have intellisense, its kind of like Microsoft's terminology for this auto complete idea, right?
38:37 Dan Taylor: Mm hmm.
38:41 Michael Kennedy: And then intellicode is something different, right?
38:50 Dan Taylor: Back at the Euro PyCon conference last year we launched the intellicode extension in VS Code and it only supported Python. So what intellicode its Machine Learning, AI assisted auto completions. So we start with a bunch of opensource data bases. We find what are the common code patterns. And then we build this model. And then if you install the intellicode extension, you get that model. And then as you're typing, it will predict based on your current codes context what the most likely auto completion is.
39:13 Michael Kennedy: That's super cool. Traditional autocomplete is alphabetical, probably.
39:16 Dan Taylor: Top five.
39:18 Michael Kennedy: Yeah, but it doesn't really know. It just says these are the attributes of this object or this module, or whatever. Here they are, we're going to try to help you, right. Maybe substring search. AE it'll have like argument exception will show up 'cause it puts those together or something. But it doesn't say, well it looks like you're in the context of a with statement. You've opened a file and this is the file pointer thing. So if I say .read, you probably want to read from it or write from it. Versus, I don't know, whatever else, right?
39:45 Dan Taylor: Yeah, exactly.
39:45 Michael Kennedy: That's pretty awesome.
39:50 Dan Taylor: If you actually look at the intellicode extension page, there's an animated image of one of the TesonFlow 1.0 getting started examples. And then it just predicts every single dot. The right thing to press and you press enter and it just works.
40:04 Michael Kennedy: That's pretty insane. So its kind of like that game you can play. Like if you start to text something on your iPhone or whatever where they suggest a few words. And if you just keep...
40:10 Dan Taylor: Keep pressing it... It's like that.
40:12 Michael Kennedy: Right. Honey, I'm going to be late from work. But I'm stopping by the store to get milk. It's like how did that happen? But whoops, I wrote it in a Tensorflow program instead.
40:23 Dan Taylor: Yeah, exactly
40:23 Michael Kennedy: Okay, so I can just go get that now. That's been out for a while?
40:28 Dan Taylor: Yeah, its been out. And so we first launched a preview of that at EuroPython. And we just GA'd intellicode today. And initially for VS Code it was just Python. And now we've added Typescript, Javascript and a few other languages there.
40:37 Michael Kennedy: Yeah, so how does it know. When you said that you went through Github and stuff. What's the story? It analyzes the usage of packages or what they do?
40:48 Dan Taylor: I don't know the specifics of the model. That's kind of our data science team figured it out. But it looks at the usages around where your current code is. So it looks around the surrounding area to see what code if being used around that. And then based on patterns its seeing on Github the model's able to infer what comes next. Its one of those things where its just sort of like all these layers and things like that. You don't know exactly how it works, right.
41:12 Michael Kennedy: Its AI, right?
41:12 Dan Taylor: Yeah. Tell me what you want not what you want me to do.
41:15 Michael Kennedy: Exactly, don't ask how I did it. I'll just tell you what you need. So I think its interesting that even 20 years ago people were saying oh no there's not going to be programmers anymore. Its just going to be sort of business people dragging boxes around. And maybe the AI stuff is going to come along. I feel like that's absolutely not the case these days. There's plenty more code to be written. But stories like this, or tools like this, where its like assisting...
41:36 Dan Taylor: Its an accelerator...
41:39 Michael Kennedy: Its an accelerator, right. I feel like software developments both gotten easier and harder over the last 10 or 20 years. 20 years ago, the tools were way less good. There was no Stack Overflow. The internet was not much help. Or even at some point it didn't exist. You had to gofer around or whatever. So the types of things we try to solve with software. Like we didn't have the cloud, for example. They were smaller. It was harder to solve them, but we tried. We knew they were hard so we attempted smaller problems. Now we attempt to solve bigger problems but we have better tools. I feel like there's this kind of tension. Its sort of about as hard as it used to be but we can do way more. What do you think?
42:21 Dan Taylor: Yeah, certainly you used to be able to print out a book on programming or whatever. You know, have that reference guide beside your desk and that's just not possible today. And I actually think about, when I think about the technology becoming harder, I think about things like containers. It allows me to get all these benefits but then oh my gosh its so much harder to work with.
42:40 Michael Kennedy: Now I got to know about Docker files and I also got to know about Linux and Windows or Linux and Mac maybe and like...
42:46 Dan Taylor: And things like React, for example, where its like, wow its a super great but you got a npm and babel and and Nginx. And like what is happening.
42:52 Michael Kennedy: Right, where's my Javascript source equals or whatever.
42:58 Dan Taylor: Yeah so I think the key is if you can sort of get passed the tooling complexity and get to that, once you sort of get in that flow of okay I got everything setup and its working, you can really do some awesome stuff. But then I think its really hard for beginners to get into that because there's like this learning curve. I've got to learn the last 20 years of advancement and technology.
43:16 Michael Kennedy: This portion of Talk Python To Me is sponsored by Backlog from Newlab. Developers know the importance of organization and efficiency when it comes to collaborating on a team. And Backlog is the perfect collaborative task management software for your team. With Backlog, you can create tasks, track bugs, make changes, give feedback, and have team conversations right next to your code. Track progress with features like Gant and Burndown charts. You document your processes right along side your wikis. You can innovate with the tools used everyday like Slack, Jira, and Google Sheets. You could automatically resister issues from email or web form submissions. Take your work on the go by using their top rated mobile apps available on Android and iOS. Try Backlog for your team for free for 30 days using our special URL at talkpython.fm/backlog. That's talkPython.fm/backlog. The less other one I had set up about two. The other one that I thought was pretty cool that I wanted for a long time in editing is something called live-share, I think. I've done a lot of like, "Hey let's work on this together". So I'm going to set up a Zoom meeting and I'll share my screen. Or Skype and well share the screen or who knows how this is going to happen. But it probably involves sharing a screen and who's typing right now? Oh, I need to type now. Let me switch back to your computer and you share your screen and, yeah.
44:33 Dan Taylor: Or go up two lines there, nope, one character over. No, that one, this one.
44:37 Michael Kennedy: And that's to the point when you're like, why are they not showing line numbers in their editor, come on.
44:41 Dan Taylor: Yeah, yeah. I could just say line 132 and we'll be done. But no, up, up, up.
44:45 Michael Kennedy: Yeah, exactly. So this live share stuff is pretty cool and it's kind of like that, right?
44:49 Dan Taylor: Yeah, the way it works is somebody can start a live share session. So first of all, you install the VS live share extension or both Visual Studio and Visual Studio Code. You start a collaboration session, you invite someone to join. And then, when they join, they're sort of connected into your development environment. They can see all the files you have open. If they start typing, they'll get intellisense. They can collaboratively debug with you. You can choose to follow each other or go explore the code base kind of on your own and come back and sort of like, click the follow button and things like that.
45:20 Michael Kennedy: Is that a VS Code only thing or does that work with other stuff?
45:22 Dan Taylor: It works with Visual Studio as well. The full Visual Studio. So I get this question all the time. Can I collaborate it? Can I have a Windows Machine and have a Mac join that? Yes you can collaborate across platforms and machines and stuff like that. So the cool thing, it really helps you if you can have someone come in and look at the code and then they can just type in the code that they want to write, you know what I mean? And you can have multiple people join in at that. It's really cool. I just used it the other day with a coworker when I was building my demos for PyCon and BUILD. And I was just like, wow this is...
45:59 Michael Kennedy: Yeah, that sounds pretty cool. Can you do it, is like pretty useful for code review? Or something like that? If you want to kind of explore around, okay. Yeah, that sounds like a pretty cool feature, definitely. So, we're getting pretty short on time. So I guess let me just ask you a few sort of closing out questions. One of the things that was cool at PyCon and I think would be cool to see show up over here at this conference is the sprints. At the end, last couple of days of PyCon there's a few other days where folks who are maybe working on Flask or SQLAlchemy stick around and collaboratively...
46:24 Dan Taylor: Jam on it.
46:27 Michael Kennedy: Jam on it, right. Jam on it, maybe even learn how to become a contributor to that project or whatever. It'd be cool if you guys did something like that here.
46:33 Dan Taylor: This is the first time someone's brought it up actually. I think you're right, it's a cool idea. I'll recommend it.
46:38 Michael Kennedy: Yeah. But one thing I, ya know, I give you guys props. One thing that was really cool here is out on the expo floor there's like, I don't know, maybe 20, 30, 40 computers. And it said this section is reserved for students. And any student that walked by could sit down and start working on some projects using the computers there for, I think it was some IoT or robotics stuff going on. But I feel like that's super cool and other conferences should adopt that. Like at PyCon, there's some stuff like that. But its usually in a back room closed off and you don't know about it in advance and sign up for it. Its not like it was happening in public and all the other students would happen upon it.
47:13 Dan Taylor: Yeah, they started doing the mentor sprints this year at PyCon...
47:15 Michael Kennedy: Yeah, that's really cool.
47:17 Dan Taylor: The students thing was new this year. I just love it I think its a great idea. Anything we can do to get people learning, programming at a younger age, helps us all move forward quicker. But also, I think it does a lot to increase that diversity. People can kind of stumble upon it when they're young and go, oh this is cool, I like this.
47:37 Michael Kennedy: Yeah, its super cool. And programming is usually pretty easy with a few little sharp edges. Like, why does this not work? Why can't I get over this? And if someones there to just go, like the mentored sprints...
47:48 Dan Taylor: Just click this button here.
47:49 Michael Kennedy: Yeah, like, oh you got to run this command first. Or, you didn't activate your virtual environment or whatever, right. Then it'd be smooth just a little bit of initial help, I think would be great. Yeah, pretty cool. So what's your favorite thing here at BUILD? Your favorite announcement or thing that came out around conference?
48:05 Dan Taylor: I think the WSL 2 was definitely a highlight. Good for files and some performance, things like that. The new Windows terminal, right?
48:09 Michael Kennedy: Yeah, we haven't talked about that. And I haven't had a chance to look at it. But it, tell us about it. It sounds like command prompt got better.
48:16 Dan Taylor: And actually, they've put the code up on Github. It's opensource but its like tabbed. It looks a lot nicer. Its got full unicode support and you can kind of switch between WSL or Windows command prompt.
48:24 Michael Kennedy: So this is not Powershell. But like the traditional cmd one is now better. Is that what it is?
48:36 Dan Taylor: Yes, it might super Powershell too..
48:37 Michael Kennedy: yeah, yeah, sure.
48:39 Dan Taylor: The one thing we also announced are cloud hosted development environments. Where its a preView right now. You have to sign up for it. But I'm really excited to see where that goes.
48:50 Michael Kennedy: What does that mean? You get remote terminal? Or is it just VS Code?
48:54 Dan Taylor: Well, the thing about the VS Code remote but then somebody else spins up the server for you as well that you can just right click a button and get your environment precreated, preprovissioned in the cloud and just start working with it. So I'm really excited to see where that goes. If that sounds interesting to anyone, you can definitely sign up for the preview and check it out.
49:10 Michael Kennedy: That's cool. Does that work in a web browser? Or does it require something like VS Code?
49:14 Dan Taylor: Both.
49:14 Michael Kennedy: Cool.
49:16 Dan Taylor: VS Code, I mean there's so many things we can announce. The browser based offering as well.
49:19 Michael Kennedy: Okay, yeah, that's pretty cool. So, the reason I ask is a lot of times people are trying to teach classes or run stuff especially around schools and students, and they just have a Chromebook. And it's like, can you do Python on a Chromebook? How do you do that? So these sorts of environments that work in the browser are really awesome. 'Cause then it makes it possible for all these kids to do programming.
49:38 Dan Taylor: Yeah, I love it from the getting started angle as well as say I've got a super big powerful development environment that's been up a bunch of them all the time and I just want to move from this one to that one, to this one, to that one. So a really large scale, that's in the larger companies. That's another area where that's really interesting.
49:54 Michael Kennedy: Okay, yeah, super cool. Well then, I think that might use up all our time. But, not all the questions I had for you. So, I'll ask you the final two questions before we wrap it up. Kind of know the answer to the first one, I'm guessing, but I'll ask it just for. If you want to write some Python code what editor do you use?
50:11 Dan Taylor: ObViously, Visual Studio Code.
50:12 Michael Kennedy: Yeah, right on, okay. And notable Python package.
50:16 Dan Taylor: So I just started playing with this today. I have a BUILD talk later today but I've started using Textblob for doing sentiment analysis.
50:22 Michael Kennedy: Oh yeah, Textblob is cool. I just came across it as well.
50:25 Dan Taylor: Yeah, 'cause it's the easiest way to do sentiment analysis. And I just came across Textblob and I'm like, wow this code fits in one tweet. I can build a Flask API that returns positive or negative sentiment within a few lines of code. This is pretty awesome.
50:37 Michael Kennedy: Yeah, that's cool. Accept, people who don't know, Textblob is like a simplified layer on top of an NLTK. And you can do all sorts of cool stuff like here's a document and ask it for the sentences, ask it for the nouns, ask it for the sentiment of phrases, and the number like the unique words. A lot of cool things that are real simple, right?
50:56 Dan Taylor: Mm hmm, yeah, exactly. I just started playing with it and it's been fun.
50:59 Michael Kennedy: Right one. All right, well. Final call action. People maybe want to check out some of the things you talked about like the insider remote Visual Studio Code stuff, or something like that, how do they get started?
51:09 Dan Taylor: So check out our Python blog, aka.ms/pythonblog. So we post all of our updates there, monthly releases about the VS Code and all that stuff. So if you just want to keep up to date with what we're doing check that out.
51:15 Michael Kennedy: All right. And well, Dan, thanks for being on the show.
51:21 Dan Taylor: It's my pleasure.
51:23 Michael Kennedy: In person even.
51:24 Dan Taylor: Yeah, this was awesome, thanks.
51:26 Michael Kennedy: Yeah, see ya. This has been another episode of Talk Python to Me. Our guest on this episode was Dan Taylor. He's been brought to you by Linode and Backlog. Linode is your go to hosting for whatever you're building with Python. Get four months free at talkpython.fm/linode. That's L-I-N-O-D-E. With Backlog, you can create tasks, track bugs, make changes, give feedback, and have team conversations right next to your code. Try Backlog for your team for free for 30 days using the special URL talkpython.fm/backlog. Want to level up your Python? If you're just getting started, try my Python Jumpstart by Building 10 Apps course. Or, if you're looking for something more advanced, check out our new Acing course, that digs into all the different types of acing programming you can do in Python. And of course, if you're interested in more than one of these, be sure to check out our Everything Bundle. It's like subscription that never expires. Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You could also find the iTunes feed at /itunes. The Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm. This is your host Michael Kennedy. Thanks so much for listening. I really appreciate it. And get out there and write some Python code.