PyCon 2018: Highlights

2018-06-14 23:34

Following last year’s Python 2017 Post, I went through nearly 70% of all Pycon 2018 videos on Youtube, here are some of my favourite sessions.

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 and DevOps. I deliberately skipped all data science sessions although I know they are really hot at the moment.

Allison Kaptur - Love your bugs

What is the distinction between a junior developer and a senior one? I believe the answer at least partly lies in experiences in handling different bugs. Senior devs know how to do things more effectively, because they have carefully or subconsciously avoided pitfalls. One way to learn these tricks is of course by making mistakes and learn from them, another way is to learn from fellow devs and gain your wisdom from other people’s failure. I had learned something from this session and I hope you will too.

Amanda Sopkin - Randomness in Python: Creating Chaos in an Ordered Machine/Controlled Environment

I consider this to be a good complimentary to a book that I’ve been reading: https://nostarch.com/seriouscrypto

BTW, after watching this talk, I upgraded my password generator to use secrets instead of random and I suggest you do the same if you have a similar setup.

Andrew Godwin - Taking Django Async

I might work on Django again after so many years, so I just mark this session for myself. But this is a good one, applying the very successful asyncio library to Django.

Christopher Swenson - Colossal Cave Adventure in Python… in the browser!

My favourite talk of the year! Why will anyone migrate a 40+ years old text based game written in Fortran to a browser?

Why not?

Because we can, and I want to add that, this passion has moved mankind forward.

Dan Callahan - Keynote

This is an interesting one because we are peeking into the future where everything can be written in javascript will be written in javascript. Why javascript? Because to this day, it is still the only scripting language supported by all the major browsers. Personally I really dislike javascript, but in this case, the preferences of a single person or a single company cannot change the world.

David Beazley - Reinventing the Parser Generator

David is a renowned Python developer and parser/tokenization is one of my more-intested topics.

Hillel Wayne - Beyond Unit Tests: Taking Your Testing to the Next Level

Good presenting style, good talk on the use of hypothesis library. I have seen Raymond Hettinger recommend using this library to run tests. I guess I’ll use it in my next project.

Jason Fried - Fighting the Good Fight: Python 3 in your organization

AKA how Facebook added Python 3 compatibility to their codebase. As a summary, here’s how they did it:

  1. Add linter dictating all files should have those four future imports, so Python 2 code will have some language features in Python 3.
  2. Have some of the key dependencies sorted out(thrift).
  3. Add Python 3 support in their build system(This is a huge and painful one).
  4. Force Python 3 compliance by adding new linter and unittests.
  5. Act like an authority so others will follow(Python Foundation is a good name!).
  6. Change their build system so Python 3 is the new default Python.

It is not well planned at first, but it turned out to be very tactic and very effective.

Jessica Garson - Making Music with FoxDot

This is one of the lightning talks, as far as I can tell she is not too technical(or she is too nervous to notice a simple path error). However, I love it because of the music and the possiblility that one can make it with several lines of Python.

Julie Lavoie - Beyond scraping: how to use machine learning when you’re not sure where to start

This is a good tutorial of machine learning, because it make sense to me. Many of the other tutorials just list steps that you can follow and achieve a good result, but they do not list all the mistakes that they’ve made during the process and that is not complete. I think this is a good one becauae Julie is not afraid to say that she had to apply some hacks(if statements to improve accuracy) and she had kept a good balance between practicality and accuracy.

Kenneth Reitz - Pipenv: The Future of Python Dependency Management

The future of Python development workflow is here. Please check it out, or at least go through the tutorial video on the pipenv documentation page.

By the way, when you start learning a programming language, you will know how to write code in it and how to use it effectively, but not until you see something sexy and really impress you, you are just a user of the language, not a lover or believer of the language. I have been impressed by a book and a library that makes me love the language. The book is Pro Django, and the library is requests(http://docs.python-requests.org/). Well, I think you already know that Kenneth is the author of requests, right?

Larry Hastings - Solve Your Problem With Sloppy Python

He has very bad taste for spaces in filenames but in general this is a good one in that, you always need a passion to automate the boring things in your daily life with some Python code, even it’s just sloppy ones.

Philip James, Asheesh Laroia - All in the timing: How side channel attacks work

The gzip-CSRF is a good story. Also, this reminds me of anther side channel attack that a man had done to recover his own reddit password, the story is here and it is a good one.

Raymond Hettinger - Dataclasses: The code generator to end all code generators

Not as fansinating as his talk last year but still a good one. I’ll recommend go through it or at least go through the PEP page here, for there’s a good chance that you may use it one day.

Sam Kitajima-Kimbrel - Bowerbirds of Technology: Architecture and Teams at Less-than-Google Scale

This is not a very technical one, and the idea is simple and it had been stated by Knuth a long time ago: premature optimization is the root of all evil. That’s why I would recommend watch this one, perhaps not from tip to toe, but at least get a look and feel of it.

Trey Hunner - Python 2 to 3: How to Upgrade and What Features to Start Using

Trey discussed some of the bling-bling features in Python 3, you know, luring us to upgrade to Python 3 from desolate Python 2 land. He also spent a lot of time talking about future and futurize, a library that’s similar to six but with better features. It’s a good library, and I had personally used that library to add Python 3 compatibility to an open source project with some promising results. From my personal experience, unlike Python 3.4- versions, Python 3.6 is really fast, and we should start migrating right now if you haven’t done it yet.

Zekun Li - There and Back Again: Disable and re-enable garbage collector at Instagram

Following last year’s highly regarded session about their migration to Python 3, Instagram engineering team have a new session this year about their work in Garbage collector and how their new API landed in Python 3.6. It’s a good one.