Hello and welcome to episode two of Python Bytes. Here we're going to cover the headlines for November 14th, 2016.
And I want to start not with a headline, but with a thank you. The reception to our first episode and the launch of this podcast has been really amazing.
There's been thousands of downloads and tons of feedback on Twitter about how you guys really appreciate the format.
You appreciate Brian and myself working together as a co-host and keeping it fun.
And so I just want to say thanks. Thanks for listening. Thanks for subscribing.
And I really like all the feedback on Twitter and it's been good.
So I'm going to start it off with the first headline is actually a few.
We had a few releases this past week that I thought were interesting.
Celery came out with a 4.0 release and it is a huge release.
I don't personally use Celery, but I know it's used a lot in Django and other projects.
And so check it out.
Yeah, basically the idea with Celery is there's a lot of long running tasks and you don't want to tie up your web apps.
While that's running, you'd like to kick them off to the background too.
It's a way to do sort of queue up offline asynchronous things to be scheduled and run in the background.
It's really excellent, especially for web apps, but for a lot of systems.
So that was my question. Can it be used for things other than web apps then?
Yes, it can. The one thing that comes to mind, although there's many, there's just the one that I think I remember hearing about is the mutation testing framework that Austin Bingham and a crew are working on.
I believe they would parse your code that's supposed to be tested and then they would come up with a bunch of tests that are supposed to be run over different.
It's not just executing your code, but it's actually mutating your source code and all sorts of crazy stuff.
They would kick those off to Celery queues and then just wait for them to be finished.
Okay, cool. I definitely have to check that out.
But this release is supposedly the last major release for 2x support.
It'll be 3.5 and above after this. So interesting.
That's actually super interesting. Yeah. And, you know, plus one. My vote is plus one for that. Well done.
Yeah. The next one is a little bit more. I think it may be a lot of IT people.
PSUtil is a tool for process monitoring, system utilization, things like that.
We actually use it at my job and it came out with a 5.5. It's interesting 5.0.0 release, but he claims that it's twice as fast as before.
So excellent. Yeah. Excellent.
And last up is a there's a bug fix release from pytest 304 and mostly bug fixes.
But one of the nice new features is they now report the teardown output on test failures.
They're already on test failures. It already reports the output for setup. So that's a nice completion.
Yeah. Very nice. And the whole testing thing is going to make an appearance later as well in the headlines.
So the first one that I have this one, I really want to encourage you to take action right away.
Registration for PyCon U.S.
2017 is open.
Last year, PyCon U.S.
in Portland was such a great event that was so much good energy.
I personally made so many good connections and just really, really enjoyed being there.
It was a few months before PyCon 2016 kicked off that people would send me messages and say,
Michael, I really want to go to PyCon, but I don't have a ticket. They're sold out.
Could you help me get in?
And there's, you know, once it's sold out, it's sold out.
So if they're still doing early bird registration, which means you get a little bit of a discount,
they've got like individual corporate and student levels with the discount and so on.
So get over there. It's us.pycon.org slash 2017 slash registration.
I can't say that enough, man. Register now if you can.
I tried last year. I waited too long and didn't get a ticket.
And it was really painful to live in the town where it's going on and not be able to go.
Yes. I'm sure that was really, really painful.
Super unfortunate.
So don't be in Brian's former self's boat. Get your tickets now.
And if that's not enough of an encouragement, we're having a podcast community booth, right, Brian?
Yeah, it's going to be great. It's going to be you and me and the...
We've got the podcast in it. Yeah, I've got the podcast in it, guys.
And the partially derivative folks for the data science podcast angle.
Yeah. You know, I just start because of this.
I just started listening to the partially derivative.
And that's a pretty neat podcast.
Yeah, those guys are good. Those guys are definitely good.
But it'll be good to meet everybody up and then everybody else can come by and say hi to us.
So that'll be good.
Yep. So go register straight away.
What's your second one, Brian?
Well, this is just a follow-up of that.
The PyCon tutorial proposals for this 2017 PyCon are due at the end of the month.
And so please don't hesitate.
The tutorial's coming up at the end of the month.
Proposals for talks and posters are due.
You've got until January 3rd, but I would recommend getting those early in because I've heard that if you get them in early,
sometimes you get some help if there's a few problems with it.
Have you given a talk at PyCon before?
Not a stand-up on stage talk.
Although last year, Tobias Macy and I did an open session for podcasts.
You know, we had about 25 or 30 people come and give their feedback where they'd like to see the direction of the podcast go.
And with us having five podcasts and hosts and so on featured there, I think we definitely need to plan an open session and some kind of little community event around the podcast while we're there.
So, you know, there's like an open session board.
And we'll let you know and keep your eye on that.
Okay.
Well, I think I'll submit a talk.
I think it'd be fun to talk there.
Yeah, I'm sure it would be.
Okay.
Michael, what's your number two?
You know, Python's pretty awesome, right?
Yeah, definitely.
It's pretty awesome.
So, somebody actually made a GitHub project that said that was basically classifying, enumerating the ways in which Python is awesome.
And it's simply called awesome-python.
And what it is, is it's a curated list of awesome Python frameworks, libraries, software, and resources.
You know, a lot of times people will ask me, they'll send me an email or hit me up on Twitter and say, hey, Michael, I'm trying to do like this thing.
And I know there's something like that in this other language.
But is there something like that in Python?
Should I build something like that?
And so on.
This is really cool because you can go in and it's basically categorized by area.
So, you can go in there as a section on like authentication libraries, data validation libraries, date time, utilities, debugging tools, machine learning, search.
Like, it goes on and on and on.
And so, if you're trying to discover the best library in one of these areas, you know, this is a pretty cool place to start.
So, it's on GitHub and I'll link it in the show notes.
Now, is it the same as the awesome Python newsletter?
Is it the same people?
I believe it's the same, but I'm not 100% sure.
Okay.
And I checked it out.
There's a ton of stuff there.
Yeah.
You definitely got to explore it.
Okay.
Well, next up, we've got a blog post called Timing Tests in Python for Fun and Profit.
And I'm a sucker for fun and profit type posts and testing, of course.
But this is about unit test.
And it talks about if you set up, if you've got, here's the problem.
You've got a whole bunch of tests running, all the dots flying by.
And one of them takes a while.
And you're trying to figure out which one's the slow one and basically timing your tests.
And he walks through a few solutions that would, through timing during setup and teardown.
And the final example, the final solution is pretty cool.
And it uses the test runner customization.
And I've never thought of a good reason to customize a test runner.
And this is a pretty cool solution.
However, I have to point out that that sort of timing is built into pytest.
So if you run the same code with a --durations, you have to put how many.
So equals zero is default times everything.
Or if you just want the slowest three, you can do durations equal three.
And it just spits that same information out for you already.
Okay.
That's cool.
And can you sort?
Can you say, like, show me the slowest one first or anything like that?
Or does it just give you output and you've got to parse it yourself?
It defaults to the slowest first.
It does sort them by slowest to fastest.
Yeah, that's really cool.
Because that's, I mean, that's the exact same reason why that feature's in place is to try to find your slow tests.
Yeah, because you want your test to run fast because you don't want to wait five minutes.
And if you can, it's probably a few of them that are causing the problem, right?
Yeah.
Well, I don't know.
I've got a lot of them that are long.
But the nice thing about the pytest, I'm not, one of the things I'm not sure about the example that was given in the blog post
was whether or not the setup and teardown are included.
And in the pytest durations, it shows, it splits out the setup and teardown and all the fixture code separate
so that you know exactly where the time is being spent.
Nice.
Do you have to use pytest for this?
Like, could you use unit test?
Well, the example in the blog post is a unit test example using unit test.
But the durations is just through pytest.
But you can, I mean, you can use unit test code.
You just run it with pytest.
Right.
Or just use the pytest runner against it because it'll run that as well.
Yeah.
Okay.
Fantastic.
Another one that I wanted to cover was this article that came out.
And it's a bit of a content marketing play by this, like, hiring company or this HR company.
But nonetheless, they put together a bunch of good research.
So I'm going to link to it anyway.
And it's called, why is Python so popular anyway?
So it goes through many different sources.
It goes through Stack Overflow.
It goes from something called Guru.
It goes through Indeed.
And it goes through all these different places.
And it talks about the areas where Python is being used, the areas where Python is growing in popularity.
It talks about the relative pay scale of people on different roles.
Like if you're a data scientist versus in DevOps versus a web developer doing Python, things like that.
So basically they say in 2015 and 2016, it's been really, from a hiring and job outlook perspective, big years for Python.
Right?
They said on Stack Overflow, it ranks the sixth most popular language in the world.
And on some others, it ranks even higher.
So, Brian, do people ask you about how to get into Python or get your advice on, like, what they should focus on?
No.
Mostly I'm trying to push people and tell everybody they should learn Python.
Yeah, it's like, you need to know Python.
You don't know it.
What's going on?
Yeah.
And actually there's a lot of people.
I have, well, a teenage daughter that's almost 20 and she's in college.
And all of her friends I try to encourage in the college, at least while they're in college, if not in high school, no matter what you're into, if you're going to do psychology or anything, learn a programming language.
And Python's a good one to learn as a corollary to any other thing you're studying.
Yeah, I totally agree.
I think the world needs more creators and fewer consumers.
Yeah.
And I think a little bit of programming skills lets you become a creator in whatever your specialty is, not necessarily programming.
One of the things I think is interesting is when people use the popularity of Stack Overflow for it.
And that is an interesting indicator.
But it also is like how much people are confused by the language.
That's an interesting point.
Yeah.
And so they had a couple of things to back up there, their article that I thought was interesting, worth pulling out.
So they said, according to Dice, Python is one of the hottest skills to have because demand is slightly outstripping supply.
And that's great.
We all want to work with Python and not some other language.
So this is really good news.
It's one of the highest programming languages in the U.S.
So in fact, it's number two.
The only one higher is Ruby.
So they say, according to two different sources, one being, I think Guru is like $103,000 a year.
And Indeed said $116,000 a year on average for a Python programmer.
And the only one higher was Ruby.
And I feel like that might be because Ruby is really focused in the Bay Area.
And so salaries are just naturally high there.
Could be wrong about that.
Like, for instance, Seattle and Portland are, which I'm more familiar with, the same goes here.
I was at the conference a couple weeks ago, PNSQC.
I was talking with a recruiter there because I'm actually looking for a Python person.
Or sometimes I am.
Anyway, they said Python and Ruby in the Portland and Seattle area are really hard to fill.
And I'm not sure if it's just the lack of people or if everybody is already in a form.
full-time job and doesn't want to contract work.
I'm not sure.
It's really interesting.
I can tell you relative to other cities, Python is more popular as a percentage in Portland than it is in many other cities.
Based on some stuff I wrote up like a couple years ago, a bunch of like data mining off of meetup.com and things like that.
So I think it's a good sign.
I guess one last thing I'd like to add to this is if you are a Python developer and you're looking for work, don't limit yourself to just software places.
Because Python is a popular language for lots of other fields, there are a lot of companies that are not traditionally software companies that are looking for Python developers.
Yeah, that's a really good point.
Don't just go to the popular web properties that you know, right?
Look much more broadly.
Yeah.
All right.
Well, I think that wraps up the headlines for this week.
What's up with you?
Well, I'm getting back into more podcasting.
You're pushing me along.
It's good.
So last week I released the number 24 of Testing Code with Rafael Pierzina.
And that was a really good reception.
Good talk.
And then I also recorded an episode with Dave Hunt.
He works at Mozilla and he's a specialist in Python, pytest and Selenium.
And that was a really interesting conversation about what they do at Mozilla.
So hopefully I'll get that out this week.
Oh, that sounds really exciting.
I love these looks inside of what like cutting edge companies are doing.
You know, like how Mozilla is using Testing and Selenium and Python just sounds interesting to me.
Well, I like the cutting edge stuff, but I also like the we're not doing it great interviews.
Like I interviewed, I'm blanking right now.
One of the interviews I did was with a startup and it was, they were just talking about how
they just don't really do end to end complete testing that much.
And it works out okay sometimes.
Yeah.
But I've got holes in my schedule.
So I want people to hit me up for if there's somebody they'd like me to interview or if they'd
like to come on the show.
So just.
Yeah.
Do you want to come talk about Python and testing?
I think maybe testing code might be the place to go.
Yeah.
And even, even non-testing, like I'm, I'm trying to get David Hussman.
He's from Dev Jam Studios on and he talks about dude's law and agile and, and software development
practices.
So that'll be fun.
Oh yeah.
I'm looking forward to that one too.
Hey, you've, you've got some news a little bit, Michael.
I do.
So on episode 83 of Talk Python To Me, I had Paul Logsdon on.
He's the, the new lead for PyVideo.
So PyVideo.org is this great catalog.
They don't actually hold the videos, but a catalog of like links to sort of like Yahoo
of Python presentations and video resources, let's say, but everything there has to be free,
right?
It can't be like paid Python courses.
If you put a video there, it has to be freely and fully available.
So they've got over 5,000 videos there.
And apparently the show that I had got a couple of people interested and contributing and so
on.
That's really great.
I happened to put up some conference talks from NDC Oslo.
So I'll link to those on there.
One for that I did and also link to one that about the mutation testing that I mentioned earlier
in the show, actually.
I'm also, I just, I'm due to a bunch of work on bootstrap and sort of web design stuff for
my Python for entrepreneurs course.
And this week I'm going to release episode 85, a talk Python to me, which has the, the fun
title of parsing horrible things.
Python.
And that's Eric Rose.
So check that out as well.
Oh, that's awesome.
I always love your episodes.
Oh, thanks so much.
I think that's it for, for this week.
Once again, everybody, thank you for subscribing and listening to Python Bytes.
The reception for the first week was great.
Hopefully you enjoyed this episode.
If you have news you'd like us to feature, send it our way.
Thanks a lot.
Yeah.
Bye, Brian.
Bye, everyone.
Bye.
Thank you for listening to Python Bytes.
Follow the show on Twitter via at Python Bytes.
That's Python Bytes as in B-Y-T-E-S.
And get the full show notes at pythonbytes.fm.
If you have a news item you want featured, just visit pythonbytes.fm and send it our way.
We're always on the lookout for sharing something cool.
On behalf of myself and Brian Okken, this is Michael Kennedy.
Thank you for listening and sharing this podcast with your friends and colleagues.
Thanks.
Thank you.