You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: transcripts/049.txt
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -306,19 +306,19 @@ For a free, no obligation 30 day trial just go to snap.ci/talkpython.
306
306
307
307
57:17 Yeah, very cool. Two other questions- if you are going to go write some Python code what editor do you open?
308
308
309
-
57:23 I am actually currently opening visual studio code, or VS code, I have very little allegiance to code editors, I totally jump around constantly, I learned Vim way back in my undergrad days, and used that for a long time, but I've tried Eclipse, I was a Text Mate user for quite a while until updates kind of dried up and then I ended up switching to Sublime, especially when Sublime 3 beta came out using Python 3, and i was like I can throw a couple of bucks this way to support someone going with Python 3, but then updates kind of slowed up a lot. And then, I used Atom for a while, from GitHUb, I was using that and I actually still do. I joined Microsoft and Microsoft released VS code and we actually announced-
309
+
57:23 I am actually currently opening Visual Studio Code, or VS Code, I have very little allegiance to code editors, I totally jump around constantly, I learned Vim way back in my undergrad days, and used that for a long time, but I've tried Eclipse, I was a Text Mate user for quite a while until updates kind of dried up and then I ended up switching to Sublime, especially when Sublime 3 beta came out using Python 3, and i was like I can throw a couple of bucks this way to support someone going with Python 3, but then updates kind of slowed up a lot. And then, I used Atom for a while, from GitHUb, I was using that and I actually still do. I joined Microsoft and Microsoft released VS Code and we actually announced-
310
310
311
311
58:16 Which is not the same thing as Visual Studio, right?
312
312
313
-
58:18 No, not at all. So, Visual Studio is an integrated development environment, right, it's a full fledged IDE, it does everything, and if you like IDEs it's actually really great. It is Windows only though, and it is an IDE and I am personally a code editor kind of guy, like I like separate tools like I will have a git bash open to do my own git work, I don't need an IDE to give me a fancy tree view of all my branches, for instance. I like having a separate code editor. And, VS code is more like Atom, then it is like Visual Studio, but it is from the same team, so it's from a team that's been doing code editing and IDE development for basically decades. So there is a lot of worth of knowledge there for the design of it. And, we have actually announced that my team, which is in charge of Python tools for visual studio was actually a really cool plugin which lets you do crazy stuff like the plug across Python, and C code and other stuff. We are actually in charge of adding Python to VS code.
313
+
58:18 No, not at all. So, Visual Studio is an integrated development environment, right, it's a full fledged IDE, it does everything, and if you like IDEs it's actually really great. It is Windows only though, and it is an IDE and I am personally a code editor kind of guy, like I like separate tools like I will have a git bash open to do my own git work, I don't need an IDE to give me a fancy tree view of all my branches, for instance. I like having a separate code editor. And, VS Code is more like Atom, then it is like Visual Studio, but it is from the same team, so it's from a team that's been doing code editing and IDE development for basically decades. So there is a lot of worth of knowledge there for the design of it. And, we have actually announced that my team, which is in charge of Python tools for visual studio was actually a really cool plugin which lets you do crazy stuff like the plug across Python, and C code and other stuff. We are actually in charge of adding Python to VS Code.
314
314
315
315
59:17 Oh that's cool to hear.
316
316
317
317
59:18 Yeah. We don't have a time line or anything like that but my manager announced it on hacker news, so I can talk about it publicly that we have been put in charge of doing that once we get around to it. pythonjobs@microsoft.com.
318
318
319
319
59:34 Very cool, there is a lot of stuff going on in Python around there, more than people might think, these days.
320
320
321
-
59:37 Yes. Exactly, so I am actually using VS code because I want to make sure |I fully understand it for one we do development with it and know where we need to add stuff in and be familiar with it, so that I can be either contributing to project or at least be an internal tester of all the stuff we have.
321
+
59:37 Yes. Exactly, so I am actually using VS Code because I want to make sure |I fully understand it for one we do development with it and know where we need to add stuff in and be familiar with it, so that I can be either contributing to project or at least be an internal tester of all the stuff we have.
322
322
323
323
59:52 Right, and adviser, very cool. So the other question is, on PyPi, there are many thousands of packages, everybody has their own sort of favorite that a lot of people don't have experience with. What is yours?
Copy file name to clipboardExpand all lines: transcripts/191.txt
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -298,7 +298,7 @@
298
298
299
299
01:05:50 Steve Dower: Yeah, Windows, Mac, Linux, having .NET core support for all of those platforms is... I feel like that's the limiting factor right now. Obviously it's Electron based so anywhere that can run, it'll work. But some big pieces, especially the Python support are running at .NET core, so that's about the limit. That's still a really big limit. Even got some old versions of Linux distros that we support because it works there where really most people would not dream of using them. But you can run VS Code there. It's a tool, it's got to run where people want to use it. We can't force you to upgrade your operating system just for the editor.
300
300
301
-
01:06:27 Michael Kennedy: Yeah, that's great. Alright, I definitely think there's a ton of energy around VS code, and I think that whole Python extension editor side of the story deserves like sort of mention in the Python's journey at Microsoft even though I didn't get it till the very end here. Then notable PyPI package?
301
+
01:06:27 Michael Kennedy: Yeah, that's great. Alright, I definitely think there's a ton of energy around VS Code, and I think that whole Python extension editor side of the story deserves like sort of mention in the Python's journey at Microsoft even though I didn't get it till the very end here. Then notable PyPI package?
302
302
303
303
01:06:44 Steve Dower: Yes, so one that I'm really excited about right now, the Azure machine learning team recently came out with their new product and the name is very similar to a lot of things we've had before. So it can be tricky to track through exactly what it is, but Azure Machine Learning Service is basically an entire service for being able to do your machine learning tasks. Everything from data cleaning to model management and deployment in a way that works really nicely, balanced between your local editor and running stuff and pushing stuff in the cloud. So it's got a whole lot of nice functionality for hey, run this job in a cluster that is this big, let me know when you're done. And run that training job and then store the model somewhere, you get good history of all the models that have ever been published. And that's one of the products that has come out with only support for Python. If you want to use that, you're using Python. There's actually no other options right now. So I'm excited about that. But one particular part of that package that's really cool is the Azure ML data prep package. So this is one part of it. But it's the part for, I have a file on disk or I have a set of files on disk that have some raw data in it and I need to pre-process. I need to clean, I need to extract data from certain columns and split them into more. I need to add more columns, I need to remove rows, I need to replace missing values. It's a library for doing that. It does a couple of really cool things. So if anyone's used flash fill in Excel, which is this cool feature. You can try, just put in a list of people's names, just first name, last name, however many names in one column and then start splitting them out manually. You put a few examples of like type the first name in the next column then the last name, and do that for two or three. And it will suggest splitting up every single row using those examples. And figure out how to do it. That's been in Excel for a while, it's also in this package. So you can take a raw data file that has, maybe it has the date and time in those same column and you say okay, here's a couple of examples of how I want it split up. Put the date here and the time in a separate column and it will figure out how to do that. And it will use those examples and then you can run it, stream it over a huge huge file that won't fit in memory and it will do it to the whole thing and write out a new file that's being pre-processed.
Copy file name to clipboardExpand all lines: transcripts/209.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@
8
8
9
9
00:02:09 Michael Kennedy: For sure. So am I. So before we get into all those topics though, maybe let's just sort of set the stage with you as a guest so folks know. Tell us what you do day-to-day maybe in your regular job in the opensource space. You've got a lot going on.
10
10
11
-
00:02:20 Brett Cannon: My job is actually divided into two sections. One is I am a Principal Software Engineering Manager now as of last month at Microsoft leading the dev team for the Python extension for VS code.
11
+
00:02:20 Brett Cannon: My job is actually divided into two sections. One is I am a Principal Software Engineering Manager now as of last month at Microsoft leading the dev team for the Python extension for VS Code.
12
12
13
13
00:02:36 Michael Kennedy: Right on. Congratulations. That's great.
14
14
@@ -320,7 +320,7 @@
320
320
321
321
00:51:16 Michael Kennedy: Yeah, yeah, of course. It definitely would, yeah.
322
322
323
-
00:51:17 Brett Cannon: Yeah, so I personally haven't bumped up against that. But the other thing I would say is Python's been successful at the corporate level for quite some time, I would argue, right? It's not like Instagram showed up yesterday, and Instagram is probably one of the largest single Python applications in turns of volume of users out there. So I don't think it's necessarily any different than any other growth we've seen in the community. I mean, from my perspective on the Python extension for VS code, for instance, I do see somewhat uptick in terms of people learning. And I definitely see that as increasing over the last year and a half since I've been leading that team. I haven't seen it shift and sort of, like, all these corporate people coming without this. I can't use this, blah blah blah.
323
+
00:51:17 Brett Cannon: Yeah, so I personally haven't bumped up against that. But the other thing I would say is Python's been successful at the corporate level for quite some time, I would argue, right? It's not like Instagram showed up yesterday, and Instagram is probably one of the largest single Python applications in turns of volume of users out there. So I don't think it's necessarily any different than any other growth we've seen in the community. I mean, from my perspective on the Python extension for VS Code, for instance, I do see somewhat uptick in terms of people learning. And I definitely see that as increasing over the last year and a half since I've been leading that team. I haven't seen it shift and sort of, like, all these corporate people coming without this. I can't use this, blah blah blah.
Copy file name to clipboardExpand all lines: transcripts/217.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -488,11 +488,11 @@
488
488
489
489
00:50:43 Michael Kennedy: That's that's a pretty good point. Alright, cool. Well, it's been a super interesting compare and contrast, the .py versus the notebooks, a way of working. But thanks for both of your sharing the stories. And let me ask you a quick question before we get out of here. Although I'm, especially Rong, I'm sure I'm going to be able to guess your answer here but... So, if you're going to write some Python code, what editor do you use?
490
490
491
-
00:51:06 Panelists: Video Studio Code. You guessed right. I said, if I'm writing some Python code, usually notebooks but I used to be a Vimer and now I use the Vim extension for VS code when I'm in an editor environment.
491
+
00:51:06 Panelists: Video Studio Code. You guessed right. I said, if I'm writing some Python code, usually notebooks but I used to be a Vimer and now I use the Vim extension for VS Code when I'm in an editor environment.
492
492
493
493
00:51:21 Michael Kennedy: That's cool. You kind of brought them together.
494
494
495
-
00:51:23 Panelists: It was just been great. Yeah it's nice. All the key mapping. I need my key... Yeah it's all in there. So when I can get that with the power VS code, I'm happy.
495
+
00:51:23 Panelists: It was just been great. Yeah it's nice. All the key mapping. I need my key... Yeah it's all in there. So when I can get that with the power VS Code, I'm happy.
496
496
497
497
00:51:33 Michael Kennedy: You'll be happy, awesome. And then, you know, there's so many packages out there that people might know about. So, you have you come across one that's like, oh, wow, this is really cool, people should check it out a notable PyPI package?
Copy file name to clipboardExpand all lines: transcripts/233.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@
66
66
67
67
00:10:29 Joseph Mancuso: So I'm taking a lot of those concepts and trying to come home and apply them to Masonite.
68
68
69
-
00:10:34 Michael Kennedy: Yeah, excellent. All right yeah, so let's dig into the Python web frameworks. So speaking of Masonite, if you go look at the usage stats, we've got 40% Django, 40% Flask, plus or minus a couple in there. A little bit down from there we've got like Pyramid, I think it's like 6% was the last usage I saw there. That rounds out a significant portion of what is Python and web frameworks. But we talked at the opening, it used to be well, Flask, Django, which are you? It's kind of what was the greeting or whatever amongst the Python web developers, right? The last two or three years, there have been so many different frameworks. We have Japronto, Sanic, Vibora, Starlette, Fast API, Hug Falcon, it's not even a super clear connection, API star for example. So there's Starlette and there's Fast API? So there's a handful of websites that actually use Starlette underneath. I think Responder from Kenneth Reitz for example is one of those. So there's just, there's like this layering on of what people's different ideas of the Python web world should look like. And how would you summarize that? Is that looking at trying to make type hints do interesting things? Is that Async? What are the trends that you're seeing in all of those or kind of in general there?
69
+
00:10:34 Michael Kennedy: Yeah, excellent. All right yeah, so let's dig into the Python web frameworks. So speaking of Masonite, if you go look at the usage stats, we've got 40% Django, 40% Flask, plus or minus a couple in there. A little bit down from there we've got like Pyramid, I think it's like 6% was the last usage I saw there. That rounds out a significant portion of what is Python and web frameworks. But we talked at the opening, it used to be well, Flask, Django, which are you? It's kind of what was the greeting or whatever amongst the Python web developers, right? The last two or three years, there have been so many different frameworks. We have Japronto, Sanic, Vibora, Starlette, FastAPI, Hug Falcon, it's not even a super clear connection, API star for example. So there's Starlette and there's FastAPI? So there's a handful of websites that actually use Starlette underneath. I think Responder from Kenneth Reitz for example is one of those. So there's just, there's like this layering on of what people's different ideas of the Python web world should look like. And how would you summarize that? Is that looking at trying to make type hints do interesting things? Is that Async? What are the trends that you're seeing in all of those or kind of in general there?
70
70
71
71
00:12:00 Joseph Mancuso: So this is mildly controversial and I actually argue a lot with the people inside the, well not argue, debate a lot with people inside the community of. The correct answer is that the trend is moving towards asynchronous frameworks itself, like the actual framework code is built around some kind of ASGI server or asynchronous server. That's the trend, I'm not entirely sure I agree with the trend because I feel like it forces a lot of people that are new to all of this to sort of see the trend and sort of prematurely optimize their application. So if their application is like a blog framework for example they're like yeah, this blog framework, I mean, sorry this blog application can handle 15,000 requests per second but does it need to? Does it really need to do that? I mean that is really cool, and especially if you try to load balance across two of these applications, you can handle like thousands and thousands of requests per second, but I feel like it's more of a premature optimization. And then when they use these frameworks like a lot of times, they have to start writing their code with the idea of it being also asynchronous as well. Like thread safe I believe it is and all that stuff. And they can't just take any ORM off the shell. They have to use a asynchronous compatible ORM. It basically narrows down a lot of your decision-making. If you need to create an API or something, some kind of small micro service, just hit API endpoints, get information from a database. That's 100% the way to go. If you're creating a bunch of micro services, maybe for a one monolithic application and that's 100% the way to go. But that's not the way I like to create my applications, right, yeah. So most people just want to create like a service, like a SaaS or something.
72
72
@@ -86,7 +86,7 @@
86
86
87
87
00:15:54 Joseph Mancuso: It's a tool that you should reach for if you need it, but it's not something that you should default to just because it handles more requests per second. That's my take on it.
88
88
89
-
00:16:01 Michael Kennedy: Cool, yeah so I do see a quite a number of those that I mentioned like Starlette and Sanic and whatnot focusing Fast API or whatever, focusing on this Async aspect. But another aspect that I see being used a lot is things like type annotations and some of the other Python 3 features to try to make some of those features help with the web framework for example. Does Masonite do any of that?
89
+
00:16:01 Michael Kennedy: Cool, yeah so I do see a quite a number of those that I mentioned like Starlette and Sanic and whatnot focusing FastAPI or whatever, focusing on this Async aspect. But another aspect that I see being used a lot is things like type annotations and some of the other Python 3 features to try to make some of those features help with the web framework for example. Does Masonite do any of that?
90
90
91
91
00:16:25 Joseph Mancuso: We'll probably talk about more of this when we get into the Masonite part but Masonite has something called an inversion of control container, an IoC container or a service container which utilizes type hints and the short answer and we'll do the long answer later. The short answer is basically in the controller code and the controller method, you can type hint a class and Masonite will inject that class for you.
0 commit comments