Python Bytes - #2 PyCon, awesome python, python developer job prospects, and more
Episode Date: November 14, 2016Topics covered in this episode: - T& Raphael Pierzina, on cookie cutter, pytest 3.0, and contributing to both: http://pythontesting.net/podcast/24-pytest-raphael-pierzina/ - T& Dave Hunt, r...ecorded. Hope to get that out this week. We talk about his work on Selenium, pytest-selenium, pytest-html, tox, and how Mozilla does some of it's testing with these tools. Extras Joke See the full show notes for this episode on the website at pythonbytes.fm/2
Transcript
Discussion (0)
Hello and welcome to episode 2 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 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 code, but it's actually mutating your
source code, all sorts of crazy stuff. They would kick those off to Celery queues
and then just wait for them to be finished.
Wow, 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.0.0 release,
but he claims that it's twice as fast as before.
Excellent.
Yeah, excellent.
And last up, 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. 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 US 2017 is open.
Last year, PyCon US 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 a message 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 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 we're gonna it's gonna be
you and me and um the uh got the podcast in it yeah i got the the podcast in it guys and the
partially derivative folks for the data science podcast angle yeah uh you know i just start
because of this i just started listening to the the um partially derivative and that's a pretty
neat podcast yeah those guys are good 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 at the end of the month. And so please don't hesitate.
The tutorial's coming up 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.
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 dash 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 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 really cool because you can go in and it's basically categorized by area.
So you can go in there as a section on
authentication libraries, data validation libraries,
date time, utilities, debugging tools,
machine learning, search.
It goes on and on and on.
And so if you're trying to discover the best library
in one of these areas,
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 that the same people?
I believe it's the same, but I'm not 100% sure.
Okay.
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 the for fun and profit type posts and testing, of course.
But this is about unit tests, 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 always, 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 dash dash durations,
you 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 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 they that features 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 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 python 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 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 UnitTest example using UnitTest. But the duration is just
through PyTest. But you can, I mean, you can use UnitTest code. You just run it with PyTest.
Right. 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 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 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 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 and 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 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. Yeah. Yeah.
And so they had a couple of things to back up 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 US.
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 full-time job
and doesn't want 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 a couple years ago,
a bunch of data mining off of meetup.com
and things like that.
So I think it's a good sign, yeah.
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's 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 i like the cutting edge stuff but i
also like the uh we're not doing it great interviews uh like i interviewed um i'm blanking
right now one of the interviews i did was with a startup and it was um they were just talking
about how we 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
if there's somebody they'd like me to interview or if they'd like to come on the show.
Yeah.
If you want to come talk about Python and testing,
I think maybe testing code might be the place to go.
Yeah, and even non-testing
like I'm trying to get David Hussman
he's from Dev Jam Studios
on and he talks about
dude's law and agile and
software development practices so
that'll be fun oh yeah I'm looking forward to that one too
hey you 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 new lead for PyVideo.
So PyVideo.org is this great catalog. They don't actually hold the videos, but a catalog of 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 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 in
contributing and so on. That's really great. I happen to put up some conference talks from NDC Oslo. So I'll link to those on there.
One that I did
and also link to one
about the mutation testing
that I mentioned earlier
in the show, actually.
Also, I just,
I'm doing 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 fun title of parsing horrible Things with 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 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.
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 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 Auchin, this is Michael Kennedy. Thank you for listening and sharing this podcast with
your friends and colleagues.