PyCon 2016, my third PyCon, was held in Oregon this year. Here are some themes I noticed, and some goodies worth your attention.
Docker, Docker, Docker
Docker was everywhere. Jérôme Petazzoni taught two full length tutorials, Introduction to Docker and containers and Deploying and scaling applications with Docker, Swarm, and a tiny bit of Python magic.
Dorian Pula's "Pythons in A Container - Lessons Learned Dockerizing Python Micro-Services" offered practical suggestions for life in the container. He walked through configuring, testing, deploying, and running webservices. (watch) (slides)
Both the tutorials I attended used Docker. Docker was a net positive, but not without cost. At the workshops I've taught, it's time consuming to set up 20-30 development environments. During the lecture you have to address the variations in each operating system. Docker provides a uniform environment and a simpler installation process.
Half the class was familiar with Docker, and half not. We had to spend class time on an introduction for new users. Some installations still needed troubleshooting. It's a promising approach and will get smoother as Docker improves its native distributions.
Add "serverless computing" to your buzzword dictionary if it isn't there yet. Amazon lambdas allow us to process computations on AWS without having to run an entire EC2 server instance. It scales easily, and you're charged only for compute time. Perfect for data pipelines.
Wordnik is on a quest to add missing words to its dictionary. Manuel Ebert of Summer.ai showed us how they're pulling it off. Summer.ai programmatically determins whether a candidate word was valid, then extracts a definition from usages in the wild. Without AWS lambdas it would have taken twelve years to process the material. More on Summer.ai's AWS setup here. (watch) (slides)
Internet of Things is Still a Big Thing
Internet of Things continues to be a theme, with several talks given. Two of the five companies on Startup Row were IoT products.
Paulus Schoutsen introduced Home Assistant in "Awaken your home: Python and the Internet of Things". Although there are more connected devices than ever, they often can't speak to each other. Home Assistent is an open source hub with adapters for many vendors. You can configure an event from one device to trigger a response from another. When you're returning home, your phone's GPS can trigger the lights and heat to turn on. Home Assistant runs locally, so you don't have to be concerned about private data being stored in the cloud. (watch) (slides)
What happens when services fail
In 2014, speakers were introducing microservices and asynchronous methods. Now that we've gone there, the discussion has shifted to what happens when they fail.
Dan Callahan's talk on "The New Mobile Web" had very little to do with Python. Mobile apps have raised our expectations for a fast and smooth user experience, even when the network is slow or unavailable. Service workers, push, and app manifests are going to help web apps catch up and provide a comparable experience. (watch) (notes)
Signal boost: get free SSL certificates from Let's Encrypt!
The Coolest Thing Ever award goes to Roxanne Johnson's Build Your Skills in Data Analysis, a choose-your-own-adventure zine. Print it out. If you want to learn about data munging, turn to page 3.
"Code Unto Others" by Nathaniel Manista and Augie Fackler has solid advice on making readable code. Ideally software describes itself to a reader the way you would describe it. "You don't get to have a one-on-one with all of [the future maintainers] and answer their questions." Most readability issues come from the code's structure, not the domain-specific details.
K. Lars Lohn's final keynote was captivating. Inspired by "Gödel, Escher, Bach", Lohn wove music, math, motorcyles, and storytelling. Watch it on as large a screen as you can. (watch)