# TODO: Add Comments: 5 Tips for _Winning_ at Code Comments
Nik Kantar
This talk covers five unexpected pieces of advice for writing better code comments. From an editor change to some sound writing advice, it takes a brief journey into a few habits of successful commenters. Disclaimer: opinions ahead!
A Brief History of Fire Brigades
Jon Banafato
Publicly funded fire departments are critical to our society. We rely on them for fire prevention and fighting, and their influence has shaped our cities for centuries. It's time the software industry learned from history and created a public service of our own.
A Gentle Introduction to Linear Programming in Python
Bethany Poulin
Linear programming is a useful computational technique for finding minima or maxima of a complex system by breaking it into a series of linear equations which describe the systems. It has many practical applications in industry, medicine, agriculture and in retail environments. Together we will explore simple linear programming problems using Python and the module Pulp.
A Hands-On Guide to Building Interactive Command-Line Apps with cmd2
Todd Leonhardt, Kevin Van Brunt
Interactive command-line (CLI) applications are extremely popular in the DevOps and Security communities as well as for internal tooling and automation. Have you ever wanted to build an awesome CLI application using Python but don't know where to get started? This talk will show you how to use the cmd2 package to quickly and easily build feature-rich and user-friendly CLI apps in Python.
A Practical Introduction to Integer Linear Programming
Igor Ferst
Integer linear programming (ILP) is a powerful framework for solving optimization problems related to scheduling, resource allocation, vehicle routing, and many other areas. This talk will give a brief introduction to ILP and show how to solve a real-world vehicle routing problem using Google's open-source python library for ILP.
A/V Streaming Workflow in Python
Shishir Pokharel
A/V Streaming has been used widely but being able to manipulate the stream on your custom requirements has always been challenging. We discuss how we can overcome with this challenge and build custom streaming pipeline with the help of open source multimedia framework and Python libraries for Gst, Gib, and GObject.
Dane Hillard
pytest is a testing framework that makes writing and running Python tests simpler. Adopting new tooling in a large system is often a burden. How can you introduce pytest gradually with minimal pain?
Automated Discovery of Cancer Types from Genes
Shruthi Ravichandran
Cancer treatment often focuses on organ of origin, but different types can occur in one organ. Gene expression provides valuable clues of the cancer type, but studying data manually is difficult. Instead, we use variational autoencoding, a deep learning method, to derive 36-dimensional feature space from 5000-dimensional gene space and show its efficacy in classification and a TSNE visualization.
Becoming a Better Curator of Your Code
Ian Zelikman
Writing code that functions correctly is only part of the development process. The majority of our time is spent reading, maintaining and refactoring our code.
In this talk we will discuss how when we see our work as code curation we actually enable our job to be much easier and productive.
Big Data with Small Computers: Building a Hadoop Cluster with Raspberry Pis
Alexandria Kalika
The Hadoop ecosystem created a wide array of amazing tools and technologies that made processing of large amounts of data easier and more fun. In this talk I will go through how to use Raspberry Pi 2s to create a distributed cluster worthy of interesting data analysis. I will use Apache Spark and other open source, easy to obtain software and hardware for data insights.
Building Docs like Code: Continuous Integration for Documentation
Mason Egger
Project documentation is easy to neglect. Keep your docs inside your source repo and learn how to automatically build and publish beautiful docs on every commit. Viewers will leave with a new mindset on how to handle documentation, tooling for this process, and an easy-to-implement method to achieve this.
Deep Learning Like a Viking: Building Convolutional Neural Networks with Keras
Guy Royse
In this session, we are going to build a Convolution Neural Network to recognize hand-written runes from the Younger Futhark. We'll be using Keras to write easy to understand Python code that creates and trains the neural network to do this. We'll wire this up to a web application using Flask and some client-side JavaScript so you can write some runes yourself and see if it recognizes them.
Nikola Novakovic
Machine Learning is something you'll see referenced very frequently now in everything from marketing materials to sales pitches, and job postings. With so much hype it can be hard to distinguish what people mean when they say Machine Learning. In this talk we will demystify Machine Learning by understanding its core concepts and applying that knowledge to real world examples.
Distributed Deep Neural Network Training using MPI on Python
Arpan Jain, Kawthar Shafie Khorassani
Deep Learning(DL) has attracted a lot of attention in recent years, and python has been the front runner language when it comes to the framework and implementation. Training of DL models remains a challenge as it requires a huge amount of time and computational resources. We will discuss the distributed training of the Deep Neural Network using the MPI across multiple GPUs or CPUs.
Alexandru Barbur
This talk discusses deploying and running Django web applications in production using Twitter PEX.
Docker-Composing Your Way to a Better Development Environment
Ricardo Solano
Development environments can become cumbersome over time, with setup occasionally filling multiple pages of documentation and making onboarding new team members a difficult task. Whether you deploy your Python application using containers or not, Docker Compose is a great tool for defining development environments that closely mirror production and can be spun up with a single command.
Dynamic Data Pipelining with Luigi
Trey Hakanson
As the scale of modern data has grown, so has the need for tooling to handle its growing list of challenges. Whether performing reporting, bulk ingestion, or ETL processes, it is important to maintain flexibility and ensure proper monitoring. Luigi provides a robust toolkit to perform a wide variety of data pipelining tasks, and can be easily integrated into existing workflows with ease.
Explicit is Better than Implicit: Making Culture Visible with Team Charters
Christopher T. Miller
If you’ve ever joined a new team, you know that there are hidden rules for how the team operates: what they value in their day-today work, what is important to them.
Breaking news: teams are hard. We document our code... shouldn't we document our team's values and ideals?
Feature Engineering: An Apprentice’s Guide to the “Dark Art” of Machine Learning
Deborah Diller Harris
Why is feature engineering considered the "dark art" of machine learning? Transforming raw data into a form that your machine learning algorithm can utilize seems mysterious and downright frightening! Bring your wizard hat and join me as this machine learning apprentice shares her personal book of feature engineering incantations.
Find Your Feature Fit: How to Pick a Text Editor for Python Programming
Gregory M. Kapfhammer, Madelyn M. Kapfhammer
What is important to you when it comes to text editors? To find out, join us in comparing VS Code and Vim. From version control integration to source code highlighting, with auto-completion, testing, virtual environments, snippets, code navigation and linting in between, learn how VS Code and Vim handle each feature and decide for yourself what fits your programming preferences when using Python.
Gathering Insights from Audio Data
Ryan Bales
Data comes in many shapes and sizes. In this session, we’ll look into the process of converting audio files into valuable data.
Darlene Wong
Pytest is a widely-used, full-featured Python testing tool that helps you write better programs. Did you know that you can easily enhance and customize Pytest through the use of plugins? In this talk, you will learn all about some of the useful Pytest plugins that are available, and learn how to create your own plugins.
I Lost 25 Pounds Thanks to Python: Personal Data Analytics Using Pandas and Numpy
Jack Bennett
Python provides a great set of built-in tools and third-party libraries for data analysis. Modern personal devices like smart watches or phones generate streams of data about body metrics, location, movement, and more. I describe Python-based methods for extracting and analyzing data from personal smart devices. I applied these methods to track and change habits and behaviors to lose 25 pounds.
If Statements are a Code Smell
Aly Sivji
if
statements allow us to selectively execute code based on conditional logic. Overusing conditionals results in code that is hard to understand and difficult to modify. This talk will demonstrate how to refactor if
statements into polymorphic classes, resulting in cleaner program design. After this session, you will be able to implement complex conditional logic using simple Python classes.
Is This Your Card? Computer Vision for Playing Card Recognition
Steve Crow
Computer Vision aims to teach computers to interact with the visual world. It has applications navigation, automated inspection, assisting the visually impaired, and so much more. In this talk, I will explain and demonstrate how you can use Computer Vision to locate and identify a playing card in a live video feed.
Dustin Ingram
In this talk, we'll explore how maintaining a sense of fun and whimsy in science has a profound effect on discovery, innovation and progress.
Learn How Computers Work Between Silicon and Assembly: Build a CPU with Python
Zak Kohler
We will build a CPU focused on transparency, interactivity, and modularity. Our CPU has a configurable architecture and machine language. Yes, you can invent your own assembly instructors to add functionality. We will cover registers, data/address busses, memory (ROM/RAM), IO, and assemblers.
Leave Your Inhibitions at the Database Connection
Regina Compton
It is easy to cling to the familiar to avoid the unknown – even when unfamiliar approaches better serve your work. My talk explores this fact, specifically, by looking at the technical and emotional dimensions of my less-than-easy journey from writing raw SQL to using the Django ORM.
Lessons from Zero-Defect Software
Jason R. Coombs
Writing software with no defects is extremely difficult and expensive, but the lessons learned from such ambitious projects can inform our approach for a more practical development technique. This talk looks at how principles from zero-defect engineering, functional programming, and refactoring come together to produce robust, readable, and reliable code.
Greg Back
Applications rely on data, and relational databases are a convenient way to organize structured information. Object-relational mappers like SQLAlchemy and Django’s ORM are complex libraries, but they aren’t black magic. De-mystify some of the magic as we build the basics of an ORM in under an hour.
Python Improvements (or This Is Not Your Teacher's Python)
Travis Risner
This session covers improvements to the Python language with 3.6 an 3.7. We will discuss aspects such as f-strings, formal typing, the various kinds of tuples, more precise timing, better hashing, etc.
Quickly Build Your Own Personal Website with Python
Vince Salvino
Haven't gotten around to building that personal blog? How about a website for your side project? Python actually has a rich ecosystem of web development tools that are easy to learn and fun to use! Bring your laptop and follow along as we build a personal blog LIVE in this talk using the pip package: CodeRed CMS (based on Wagtail and Django).
Esther B. Gotfryd, MSN, NP-C
Do you sometimes feel like a pile of legacy code? Do you dread refactoring yourself into a "new hotness,” due to the insurmountable amount of work it may take? Do you want to break free, but are unsure of where to start? Look no further, as this session will embark on a journey to refactor you, one red-green test at a time, starting with the highest priority issues first.
Scraping Your Way to a Dataset
Alex Zharichenko
Large datasets are vital for the majority of analytic and machine learning tasks. But what happens when the data you need isn't available in some convenient and easily obtainable form? This talk will go through the process of data scraping to create a dataset that can be then used for various analytical or machine learning tasks.
Search Logs + Machine Learning = Auto-Tagged Inventory
John Berryman
Eventbrite is exploring a new machine learning approach that allows us to harvest data from customer search logs and automatically tag events based upon their content. The results have allowed us to provide users with a better inventory browsing experience.
Sipping the Nectar of Amazon from the Serverless Chalice
Ilya Gotfryd
It never seems to be the right time to enter the sweet world of microservices. Each time you use "serverless" in a conversation, it dies right there near the water-cooler. How do you produce a POC, tests, a build, and proper security if your teammates can’t come along? In this talk you will learn to: build, debug, validate, test, secure, and deploy with a build pipeline using a Python framework.
Andrew Knight
Python is such a popular language for good reason: Its principles are strong. However, if Python is “the second-best language for everything”… that means the first-best is often chosen instead. Oh no! How can Pythonistas survive a project or workplace without our favorite language? Take a deep breath, because I’ll show you how to apply things that make Python great to other software spaces.
The Blameless Post Mortem: How Embracing Failure Makes Us Better
Chris Wilcox
In today’s world of developing services we tend to move fast and with that comes mistakes. This talk will discuss using post-mortems to turn incidents into opportunities for improvement, instead of just an opportunity to assign blame.
Darshan Markandaiah
Python has many built in magic functions that are used internally by classes for certain actions. For example, adding two numbers calls the __add__
method and iterating over a list calls the __iter__
method. I will expand on this Duck Typing principle and enumerate over a range of magic methods that you can add to your classes to have a cleaner codebase.
Craig Maloney
Mediocre Programmers? What is that? Shouldn't we want to be great programmers instead? In this talk we'll discuss what it means to be a mediocre programmer. We'll consider the many pitfalls that may befall you on your journey, from self-doubt to burnout, and share tips for how to cope with the challenges of programming and when it might be time to try something new.
The Riddle of the Intersphinx: Configuration and Cross-Reference Composition
Brian Skinn
Sphinx is a documentation generator used by the core Python documentation and numerous other projects in the Python ecosystem. Sphinx supports cross-references between documentation sets via its ‘intersphinx’ extension; however, proper configuration is not always straightforward, and cross-references can be finicky to craft correctly. This talk aims to demystify these riddles of intersphinx usage.
Eric Appelt
Docstrings are a common convention in Python programming, but their value may be taken for granted. In the absence of docstrings, schools of thought on writing effective code involve using many comments or using few if any comments. I will argue that docstrings improve upon these approaches, and then explore how they can positively impact encapsulation, testing, documentation, and design.
Using Dash to Create Interactive Web Apps for Non-Technical Audiences
Joseph Willi
Have you ever struggled with finding ways to present data visualizations and/or results to non-technical audiences in a coherent and engaging manner? In this talk, I'll detail how I overcame such a challenge by using Dash to build an interactive app for firefighters to use during performance testing of their rescue equipment.
Matthew Brower, Krista Readout
Python and R are two of the most popular languages used for data analysis. They are often pitted against each other in pros and cons lists, where users feel forced to pick just one. Each has unique advantages, and it's now easier than ever to use them harmoniously. Python or R? Why not both?
What's the Buzz with Machine Learning
Allison Bolen
Honeybee colonies throughout North America have declined precipitously due to parasites, pesticides, and poor nutrition over the past two decades. Monitoring hive health autonomously assists beekeeper efforts. We developed a model which automatically detects events in bee hive weight data assisting data collection efforts improving data quality for future machine learning models to be developed.
Your Own Personal Bootcamp: How to Efficiently Learn Your Next Technology
Joe Erickson
Taking lessons from adult learning theory and from examples of hundreds of bootcamp students, this talk will walk through what I have learned about accelerated adult learning and tell you the what and the why around techniques that you can use to more efficiently pick up your next technology in record time.
John Roach
You might have overheard yet another acronym "gRPC" getting thrown when talking about a replacement of REST or when mentioning microservices. In this talk, we will be looking into what gRPC is, the reasons why you would use it, how you would use it with Python and talk about considerations for running gRPC services in production.
“Who’d I Lend That Book To?” Hard Questions Answered with Python
Daniel Lindeman
I love reading books, but I love lending them out even more! In order to keep track of my personal library, a daunting task indeed, I’ve employed Python, a Raspberry Pi, and an RFID reader. Take a tour through what it’s like working with hardware, Python, and putting it all together into a useful web application. This is a beginner friendly talk, so don’t worry if you’ve never worked with hardware