PyCon 2018: Highlights
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.
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.
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.
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.
My favourite talk of the year! Why will anyone migrate a 40+ years old text based game written in Fortran to a browser?
Because we can, and I want to add that, this passion has moved mankind forward.
David is a renowned Python developer and parser/tokenization is one of my more-intested topics.
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.
AKA how Facebook added Python 3 compatibility to their codebase. As a summary, here’s how they did it:
- Add linter dictating all files should have those four future imports, so Python 2 code will have some language features in Python 3.
- Have some of the key dependencies sorted out(thrift).
- Add Python 3 support in their build system(This is a huge and painful one).
- Force Python 3 compliance by adding new linter and unittests.
- Act like an authority so others will follow(Python Foundation is a good name!).
- 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.
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.
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.
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?
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.
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.
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 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.
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.