Accepted General Sessions

How Unreliable Computers Can Usually Agree (Sort Of): A Brief Tour of the Raft Algorithm

Laura Hampton

This talk will describe the difficulties in reliably replicating data across multiple machines, and explain how the Raft algorithm nevertheless provides reasonable guarantees that they are all storing the same data. It will cover proposed solutions to the consensus problem, and why they work (or don't). Attendees will come away with general knowledge of how the Raft algorithm works.

Saturday 11:05 a.m.–11:30 a.m. in Mystic Theatre

Why does Python need security transparency?

Steve Dower

Imagine you could run one single command on one computer at the NSA. You would probably run "python" to use its OS and network features undetected, just like real attackers do. If someone did it on your network, would you notice? PEP 551 makes it so that admins can audit Python and detect malicious use on their systems. This session will look at why we need it and how to use it.

Saturday 11:35 a.m.–noon in Mystic Theatre

Loop better: a deeper look at iteration in Python

Trey Hunner

What's the difference between an iterable, an iterator, and a generator? Do you know how to create infinitely long iterables? Come to this talk to learn some of Python's slightly more advanced looping techniques.

Saturday 1:30 p.m.–1:55 p.m. in Mystic Theatre

I Finished the Beginner Tutorial, Now What?

Kelsey Karin Hawley

You've written "Hello World." You've finished the beginner code tutorial. What's next? In this talk I'll summarize tips and resources to give you the next step based on three common learning styles as well as resources to get connected with mentors and other learners. Attendees will be empowered to take their knowledge beyond the tutorial and into practice.

Saturday 2 p.m.–2:25 p.m. in Mystic Theatre

Async for the Python 2 Programmer

Henry Chen

An exciting new feature in Python 3 is more support for asynchronous programming via the async/await syntax and the asyncio library. However the sheer amount of novelty can be difficult to digest for someone coming from Python 2. To remedy this, we will motivate async with familiar Python 2 concepts and build upon them to arrive at the Python 3 formulation.

Saturday 2:30 p.m.–2:55 p.m. in Mystic Theatre

Python (and Fortran and C) as used in large-scale number crunching and scientific programming

Catherine Moroney

The combination of Python (and a bit of Fortran and C) is incredibly powerful and can be used to great effect in scientific programming and massive-scale number-crunching. The key is using the best parts of each language and getting the mixture just right. I have seen our legacy code shrink by a factor of 10 in size and still be stable and fast enough for production work.

Saturday 3 p.m.–3:45 p.m. in Mystic Theatre

Stumbling Through Django and How Not To

Melanie Crutchfield

Are you a beginner worried about starting your first Django project? It can be so intimidating! Add in costly mistakes and you’ll find yourself scrapping your project and starting over like I did. Twice. (Okay, fine. Three times.) Come to this talk for a handful of tips, and a lot of high-fives.

Saturday 4:15 p.m.–4:40 p.m. in Mystic Theatre

What is this machine learning thing, anyway?

George Brocklehurst

From self driving cars, to trippy psychedelic images, to beating world class players at board games—machine learning is all over the place. But, err, what is it? This talk will introduce you to the basics of machine learning in a no-nonsense, practical way, without a lot of mathematical notation.

Saturday 4:45 p.m.–5:10 p.m. in Mystic Theatre

5 Leadership Skills Every Engineer Needs

Kathleen Vignos

Through surveys, coaching, and discussions by the “water cooler,” we hear the same refrain from software engineers. What do I need to do now to set myself up for success later? How can I be a more effective teammate? How do I provide good estimates, manage my time, and develop leadership qualities? You’ll walk away from this talk with tips and tools you can use.

Saturday 5:15 p.m.–5:40 p.m. in Mystic Theatre

Colossal Cave Adventure in Python

Christopher Swenson

Colossal Cave, also known as Adventure or ADVENT, is the original text adventure. It was written in FORTRAN IV and there is practically no way to run the original program without translating it. We'll explore software archeology to write a Python interpreter to run the FORTRAN code as-is, without translating it. Come learn about pre-ASCII and 36-bit integers and writing interpreters in Python!

Saturday 5:45 p.m.–6:10 p.m. in Mystic Theatre

Call C code quickly and compatibly with CFFI

Zack Voase

Get started calling C/C++ code from Python using CFFI. You'll learn the basics of speeding up critical parts of your program with native code and interacting with system libraries, all with minimal configuration overhead. The libraries produced will work in CPython and PyPy, and across Python 2 and 3.

Sunday 11:05 a.m.–11:30 a.m. in Mystic Theatre

A Young Twitter Bot's Illustrated Primer (ebook)

Benno Rice

Twitter bots are fun, especially the ones that generate amusingly random content based off other sources. But what's the best way to generate the content for your Twitter bot? Join me for a quick run through Markov chains, neural networks and other methods for generating the best word soup for your bot.

Sunday 11:35 a.m.–noon in Mystic Theatre

Mypy-thon gives you wings!

Henry Tanner

This talk will outline best practices for using Mypy - a tool for enforcing static-type-annotations across your python project.

Sunday 1:30 p.m.–1:55 p.m. in Mystic Theatre

Obeying the Testing Goat: Building a test loving culture at your company

Julia Duimovich

To test or not to test– that is not really a question. We all know it’s important. But how do you make it happen? Learn to herd coworkers in the right direction with pain-reducing test infrastructure, planning for tests during the architectural process & acknowledgment of places where testing isn’t the way.

Sunday 2 p.m.–2:25 p.m. in Mystic Theatre

Nutshell in a Python: Adapting patterns from shell scripts

Brett Smith

Shell scripts are great for high-level tool orchestration. Python is great at parsing and traversing complex data. What do you write when you need both features equally? This talk will give you simple techniques to get shell-like features in Python, helping you write process pipelines, detect errors in them, and report those errors nicely.

Sunday 2:30 p.m.–2:55 p.m. in Mystic Theatre

Accessibility Matters: Creating a Better Web

Lindsey Dragun

Accessibility is an afterthought to many, but to those with issues navigating the web it's very important. We will go over examples of accessibility on the web, short and long term solutions, and talk about why accessibility matters to a variety of users. The audience should leave with the ability to spot some accessibility issues and the knowledge of how to fix them.

Sunday 3 p.m.–3:25 p.m. in Mystic Theatre

Search-First Writing for Developers

Heidi Waterhouse

If people can't use your software, you have already failed as a developer. This talk digs in to how optimizing for search and using the existing technical assistance forums can put your product ahead of the pack.

Sunday 4 p.m.–4:25 p.m. in Mystic Theatre

On Quiet Developers

Seán Hanson

OSS contributions have become a de facto metric for hiring engineers. Yet, marginalized developers are largely invisible in the OSS community. I’ll identify reasons one might be a “quiet developer”, and speak to how we can hire and empower these people while redefining community engagement entirely.

Sunday 4:30 p.m.–4:55 p.m. in Mystic Theatre

import madness # how to implement mergesort from scratch using only import statements

George London

You should never do it, but it’s possible to implement an entire mergesort algorithm in Python from scratch using only import statements. By walking you through how it’s done, I’ll trick you into understanding what actually happens when you import in Python and teach you how to banish ImportErrors.

Sunday 5 p.m.–5:25 p.m. in Mystic Theatre

Running Vintage Software: PyPI's Aging Codebase.

Ernest W. Durbin III

The Python Package Index, lovingly known as The Cheeseshop to some, has grown enormously since it's introduction in 2002. As a critical piece of the Python Community's infrastructure, it has suffered many growing pains over the years. Let's review the recent history of PyPI, lessons learned, and techniques applied to keep it running.

Sunday 5:30 p.m.–5:55 p.m. in Mystic Theatre