PyCon 2017: Highlights

2017-05-23 09:59

PyCon 2017 closes yesterday, I had spent the last two days watching some of the sessions on youtube and here are my recommendations.

Disclaimer: Of course, the following paragraphs are just my personal thoughts. I might find some sessions boring while you may not, and I might have learnt something out of a session while you find it useless. For the record, I consider myself to be an intermediate user of Python and specialised in web application development.

Al Sweigart: Yes, It's Time to Learn Regular Expressions

There's nothing new there. On the contrary, I bumped into this 2015 article about re this morning and I recommend read this one instead, if you know what is re and have used this python module before.

Amjith Ramanujam: Awesome Command line tools

This is a good talk. I knew the underneath library(prompt_toolkit), but I've never seen it in action. It looks great: the API is clean, the feature is really lines of code away and in general works.

BTW, xonsh looks wonderful.

Andrew T Baker: 5 ways to deploy your Python web app in 2017

The five tools introduced in this video are ngrok, Heroku, Zappa, GCP's Virtual Machine and docker. So in general if you know most of them, you can skip it.

Asheesh Laroia, Philip James: Type uWSGI; press enter; what happens

Basic server tuning for uwsgi. If you are a uwsgi user/web app developer, I'll recommend watch this video. Asheesh gave five reasons why we should use uwsgi instead of other default servers(like default HTTP server provided by python):

  1. Neat code reloading. It is very easy to upgrade application code without affecting running service.
  2. Tunability. So we can properly allocate specific system resources for the application.
  3. Security. Though I think comparing that with Django's runserver is a weak argument.
  4. Can use config files. Though again I think is a weak argument.
  5. Rich features. So you can remove nginx, celery, or memcache from your stack.

Ashwini Oruganti, Mark Williams: Designing secure APIs with state machines

Not super helpful if you know what state machine is and you've used it before. Or else you could take your time to watch this session, good explanation and worth the time.

Barry Warsaw: Aiosmtpd: A better asyncio based SMTP server

I had learned the trick of defining a somehow magic method inside of a Handler class from SimpleHTTPServer.py back in python2 years, and I love it. This aiosmtpd is a pet project by this well-known python core developer, and I'm looking forward to a chance to read its source code and get something new out of it.

Well, this is not a great, super useful talk, but still it worths the time.

Benny Bauer: Python in the Serverless Era

Pretty much intro level, if you know what serverless is, you can skip it.

Brett Cannon: What's new in Python 3.6

Another favourite video of mine. I liked his style of addressing things.

BTW, and we definintely need this BTW here: PEP 498 is GREAT!

Cory Benfield: Requests Under The Hood

This talk is given by one of the maintainers of the requests library. Behind every great fortune, there is a crime, and I believe behind every great open source project, there are countless corner cases behind it. The open source project is great because it had shouldered the burden, so you do not have to consider all the corner cases and write ugly code.

BTW, I really like this talk show.

Joe Jevnik: Title Available On Request: An Introduction to Lazy Evaluation

This is some good introduction about lazy evaluation. I knew I could do that with decorators(discussed in Pro Python) but I didn't know we could also do it with lambda, which is pretty easy, though it is slow from a performance point of view, but we are using lazy evaluation and normally we would spend most of our time in some heavy lifting and we could disregard the overhead.

Jukka Lehtosalo, David Fisher: Static Types for Python

This one is for mypy, I knew Dropbox has been working on this but I've never seen it in action. I now consider at least it could be a tool to debug code and I've installed mypy locally. If you, like me, have never seen mypy in action, you won't waste your time watching this.

Jukka talked about some internals(ast analysis) of mypy, and since I don't really care about how it is done, I skipped that part.

Lisa Guo, Hui Ding: Python@Instagram

Best video of this PyCon! Talked in depth about many interesting things at Instagram, how they upgraded their code base to Python 3 and mentioned many pitfalls. This is a highly useful video if you would like to migrate some of your python 2 code to python 3.

Mary Nagle: Piecing it Together: A beginner's guide to application configuration

I thought it is a talk about configuration management, but it is not. Intro level again, and I recommend skip it.

Miguel Grinberg: Asynchronous Python for the Complete Beginner

Well, if you've never see async and await in action before, you could take a look and that's that.

Raymond Hettinger: Modern Python Dictionaries: A confluence of a dozen great ideas

Well, in terms of PyCon, you always HAVE TO WATCH Raymond's video. By the time I was writing this article, his video has 4.8k views and is the most viewed video in PyCon 2017 on youtube.

Yeah, that's it. I won't go into more details about this video. Go watch it.

Sep Dehpour: Magic Method, on the wall, who, now, is the fairest one of all

If you know what magic method is and you've used it before, you can skip this session. This is just an introduction to the magic methods and I would say some of the code in the session are considered bad practices. So even though you find things in this session fascinating, please do not use them in your production code.

I've used the idea of overloading some magic methods to add `+` and `-` to some of my self-defined objects and it looked great back then. But were I to implement them again I would probably rather add some more explicit methods for the same purpose.