Talks List

Advanced Pickle Security


It's no secret Python's `pickle` module is unsafe. It's also very popular, especially in the scientific Python community. Many of its users actually have pretty good reasons to use it, so just telling them not to isn't very helpful. This talk explores how Pickles are unsafe, advanced exploitation techniques, and how we can make Pickles safer without giving up on its useful properties.

Saturday noon–12:30 p.m. in Hays Cape

A Hands-On Guide to Teaching Programming with GitHub, Travis CI, and Python

Gregory M. Kapfhammer

Have you ever wanted to teach a room full of students or your colleagues? It turns out that it is difficult to setup the infrastructure needed to deliver source code and documentation and then assess submissions! Suitable for full-time educators and industrialists who instruct their colleagues, this talk explains how you can teach programming using GitHub Classroom, Travis CI, and Python.

Saturday 10:30 a.m.–11 a.m. in Cartoon 2

An Intuitive Grasp of RegEx’s in Python

Tom Fetherston

Regular expressions are used to define search patterns. Python provides regular expressions via the built in ‘re’ module, but they are hard to read, write, and understand. This talk will give you two tools conquer regex’s, a mental model, (demonstrated with props), of how they work, and a mini-language, “Simple Regex Language”, to create readable regex’s that easily translate into Python regex's.

Sunday 12:45 p.m.–1:15 p.m. in Cartoon 2

An Only One Step Ahead Guide for Machine Learning Projects

Chang Hsin Lee

There is a lot of hype around machine learning, but completing a project at work seems to be much harder than what online tutorials had advertised. In this talk, I will provide a few tips for different stages of a machine learning project like recognizing pitfalls, that I wished I knew when first navigating through my projects as a junior in the field.

Saturday 4:30 p.m.–5 p.m. in Cartoon 1

A Son, a Father, and a Computer - How I'm Using Tech to Ease the Suffering of my Dying Father

Greg Svoboda

My father is dying. He has ALS (Amyotrophic Lateral Sclerosis), of which there is no cure. Feeling powerless in the face of disease, I set out to do what I could: Build tech to ease his suffering, to help him feel more connected with his loved ones, and to share what I'm building for free. This is my story.

Sunday 2:15 p.m.–2:45 p.m. in Cartoon 1

Auditing Your Site for Accessibility: Now What?

Kat Passen

Web accessibility is important - about 1 in 5 people in the United States have some kind of disability, and not including them limits your reach. But once you've heard about the basics, how do you get started? In this talk, I'll walk you through the process of finding issues in your site, and discuss processes to fix them.

Sunday 1:30 p.m.–2 p.m. in Hays Cape

Automated Regression Testing with Splinter and Jupyter

Jace Browning

So you wrote a bunch of great unit tests but your site is still broken? Maybe it’s time to start investing in a suite of end-to-end regression tests. In this talk we'll explore practical examples of developing automated tests using Selenium (via Splinter) and exploratory testing using Jupyter sessions.

Saturday 4:30 p.m.–5 p.m. in Cartoon 2

Bit Splotches: Dot Matrix Printing with Python

Thomas Winningham

Earlier this year, in the spring of 2018, I bought a printer made in the late 80's in the parking lot of a Rax Roast Beef restaurant for $20. This started a nostalgic journey assisted by NumPy matrix slices and a can of WD-40. This talk will cover how I used Python to overcome three decades of history to get it printing again.

Sunday 3:15 p.m.–4 p.m. in Hays Cape

Build GUIs with Python and Glade

Terry Howald

Python is a great asset to have in a developer's toolkit of languages. Although considered a scripting language, Python can create graphical user interfaces (GUIs) for your applications. GUI controls can be laid out programmatically or organized using a rapid application development (RAD) tool such as Glade. Come see how to build GUIs with Python and Glade.

Sunday 1:30 p.m.–2 p.m. in Barbie Tootle

Building a Twitter Metadata Scraper: Learnings from Working with a New Twitter API

Elizabeth Wehner

BuzzFeed identified a need for Twitter to scrape our metadata more frequently, and worked with Twitter to build a new API that is currently in beta testing. In this talk I will go through the process of building a "Twitter Scraper" that accesses this new API. I will highlight various challenges encountered along the way, and show how I ultimately solved these problems.

Saturday 3:45 p.m.–4:15 p.m. in Barbie Tootle

Cheating on Your Math Homework with SymPy

John Cassidy

I'd like to give a talk on the SymPy. It's probably the least well-known of the SciPy packages (so it's time to show it some love). It's a symbolic computation/Computer Algebra system in the same vein as Mathematica or Maple.

Sunday 3:15 p.m.–4 p.m. in Cartoon 2

Community - From the Inside Out

Yarko Tymciurak

_I came for the language, but I stayed for the Community_ --Brett Cannon, Pycon 2014 Why? What draws us to community? What makes a great Community? How do we contribute? I'll share some insights, some science, and some surprisingly broad principles. I'll share what contributes, what parts are similar to coding practices, and some ways you can contribute to a great Community feeling.

Sunday 12:45 p.m.–1:15 p.m. in Hays Cape

Containers Without the Magic

Vince Salvino

If you've ever seen a talk on containers or Docker, it usually goes something like this: A "hello world" app is deployed and massively scaled up using some kind of magic framework or API. Nothing short of a magic trick, we usually feel impressed but have no idea what just happened. This talk is an intro to containers as explained by a Python dev for Python devs, without the magic tricks.

Sunday 2:15 p.m.–2:45 p.m. in Cartoon 2

Conversational Interfaces for Chatbots and Artificial Intelligence

Don Holloway

Attendees will see concepts for conversational interfaces used to create chatbots, and python libraries and code used to create them. Conversational interfaces are increasingly becoming a preferred way for users to engage with information, offering a more personalized user experience. The ability to understand user’s intent and take action makes it a good match for AI.

Saturday 4:30 p.m.–5 p.m. in Barbie Tootle

Creating an IoT Baseball Scoreboard with Python

Christian Wyglendowski

This talk covers the intersection of hardware, software, peanuts and cracker jacks. I'll share how I built an IoT baseball scoreboard using readily available hardware and software written in Python. I hope anyone who attends this talk will be entertained, learn some new things and leave feeling empowered to make their own IoT (field of) dreams come true.

Sunday 4:15 p.m.–4:45 p.m. in Hays Cape

CSS as a Service: Maintaining Style

Shay Howe

We often build multiple websites and applications that share the same styles across multiple code bases (style guides/pattern libraries). Maintaining these styles becomes quite a task, and causes increasing frustration overtime. Fortunately it doesn’t have to be this way, and in this talk for designers and engineers, we’ll discuss how.

Sunday 2:15 p.m.–2:45 p.m. in Hays Cape

Customizing Sphinx: Simple, Normal, and Hard

Paul Everitt

Many Python projects use Sphinx for documentation, so much so that Sphinx is like Python’s secret weapon. It’s a powerful, mature system for generating static content -- not just docs, but blogs and regular websites. Sphinx can also be customized and extended in various ways, and here the trip gets wild and wooly. This talk takes a look at themes and extensions.

Saturday noon–12:30 p.m. in Barbie Tootle

Distributed Software (with Python)

Alexandru Barbur

A whirlwind tour of several aspects of distributed software design with examples and use cases tailored to Python development. Topics include code layout, serialization, networking, and more.

Sunday 3:15 p.m.–4 p.m. in Barbie Tootle

Duck Typing Is For The Birds

Brad Hurley

This talk is intended to be an introduction to implementing static typing into your python code. I will present information on how to implement static typing into new and existing code bases. Talk about the reasons why someone would want to implement static types and why I was against it only one year ago.

Sunday 2:15 p.m.–2:45 p.m. in Barbie Tootle

Easier Classes: Python Classes Without All the Cruft

Trey Hunner

In this talk we'll take a look at how to cut down on the boilerplate required in making a well-behaved Python class. We'll first see how to make classes with proper string representations, comparability, iterability, and immutability. Then we'll dive into helper tools built-in to the standard library and available in third-party libraries.

Saturday 10:30 a.m.–11 a.m. in Cartoon 1

Egad! How Do We Start Writing (Better) Tests?

Andrew Knight

Some have never automated tests and can’t check themselves before they wreck themselves. Others have 1000s of tests that are flaky, duplicative, and slow. Wa-do-we-do? GOOD testing is hard but not impossible. Start with proven advice from this talk!

Saturday 3:45 p.m.–4:15 p.m. in Cartoon 2

Exploration of Neural-Gestural Interfaces for the Control of Robots

Rebecca Oet, Melissa Kazazic

As technology improves at a rapid rate, experimentation in the ways in which people interact with machines and computers becomes more significant. Most tools for communication are limiting as they only interact with a user on a basic level, usually on a two-dimensional plane. However, by taking advantage of new technology new interfaces can be designed in order to better interact with machines.

Saturday noon–12:30 p.m. in Cartoon 2

From Support to Engineering and Beyond: What to Take with You, and What to Leave Behind

Adrienne Lowe

Saturday Keynote

Saturday 9:15 a.m.–10 a.m. in Cartoon 1, Cartoon 2

Generating Music with Python and FoxDot

Jessica Garson

Learn how to make music with Python and FoxDot. We’ll go through how to make a song in this live coded adventure. This talk is suited well for all audiences.

Saturday 3 p.m.–3:30 p.m. in Cartoon 2

Give Feedback Fearlessly

Aisha Blake

Constructive feedback can be difficult to receive gracefully and even harder to give effectively. In this session, we’ll discuss why peer-to-peer feedback is necessary for a healthy team dynamic, introduce techniques for sharing feedback with team members, and work through example scenarios.

Saturday 2 p.m.–2:45 p.m. in Barbie Tootle

Going Passwordless

Jon Banafato

Passwords suck. They're often weak and reused, making them one of the least secure parts of web applications. This is such a problem that entire industries of password managers and two-factor authentication products have popped up as extra layers of security. To really address this issue and make our users and products more secure, we need a more fundamental change.

Saturday 3:45 p.m.–4:15 p.m. in Cartoon 1

Go with the Flow: Automating Your Workflows with Airflow

Leo Guinan

We all have workflows in our daily lives. From simple ones in our personal lives, to terribly complex ones in our daily work, we could all benefit from automating these workflows. Airflow is the mechanism with which we can do this. In this talk, we will explore what Airflow is, and how we can leverage it to automate some of the tedium out of our daily lives.

Saturday 11:15 a.m.–11:45 a.m. in Cartoon 1

Guide to Software Engineering for Visually Impaired

Abrar Sheikh

We will look into a day in the life of a Software Engineer with limited vision to Understand their difficulties at work and how they can overcome those difficulties to become successful in their role.

Saturday 10:30 a.m.–11 a.m. in Hays Cape

How I Learned to Code with My Dad

Alexander Preston, Hank Preston

I’m nine years old, and I want to be a video game developer. I learned about coding by watching my dad and asking questions. To me coding is like a “sport” and I think lots of kids would like to code if they had a chance to learn and build things. I’d like to tell you how I got started, and show some of the projects I’ve built. Then you can have ideas on how to help other kids get started.

Sunday 1:30 p.m.–2 p.m. in Cartoon 1

How to Build a Plan to Migrate to Python 3

Philip Semanchuk

Python 2 will no longer be supported past 2020, yet many organizations still haven't made the switch to Python 3. This talk is for anyone facing a 2-to-3 migration that they'd like to feel more confident about. Attendees will leave with the outline of a migration plan, some suggested focus areas, a knowledge of helpful tools, and links to resources they can use after the talk.

Saturday 2 p.m.–2:45 p.m. in Hays Cape

Inside the Cheeseshop: How Python Packaging Works

Dustin Ingram

This talk will identify the key tools one might encounter when trying to distribute Python software, what they are used for, why they exist, and their history (including where their weird names come from). In addition, we'll see how they all work together, what it takes to make them work, and what the future has in store for Python packaging.

Saturday 3 p.m.–3:30 p.m. in Barbie Tootle

Large-Scale Recommendation System with Python and Spark

Phil Anderson

New product discovery is an established activity within brick-and-mortar grocery stores, but is still ripe for experimentation within an online setting. In this talk, we discuss a customer-level product recommendation system we developed for the Kroger Company, using Python, Apache Spark, and Apache Airflow.

Saturday noon–12:30 p.m. in Cartoon 1

Making Games

Piper Thunstrom

Games make an excellent hack space for learning computer science topics, but they have their own language you’ll want to learn. Learn what an application loop is and how they look in practice. Get a crash course in 2d computer graphics. See a handful of examples of how to build games with multiple transitions. See a handful of anti-patterns. Get a quick summary of the game libraries.

Saturday 2 p.m.–2:45 p.m. in Cartoon 2

Now is better than Never: What the Zen of Python can teach us about Data Ethics

Lorena Mesa

We Pythonistas welcome newcomers with the wisdom of Tim Peter's "import this". The Zen of Python gives us general aphorisms on how to write Python and how to be a good Pythonista by offering loose guidelines that promotes discussion. What lessons can it teach us about Data Ethics? As data practitioners Now is Better than Never to define what our community will and won't do as it comes to data.

Sunday 11:40 a.m.–12:30 p.m. in Cartoon 1, Cartoon 2

Oh the Places You'll Go to Find Memory Leaks

Ilya Gotfryd

Memory use in long running processes is one of those problems that is a non-issue... until you've completely run out of memory. Now that you have hit the proverbial brick wall, how do you recover? In this talk, you'll learn about: memory profiling tools, utilizing Elasticsearch to track memory use on a live system, memory management of tiny objects, and other insights along the way.

Sunday 4:15 p.m.–4:45 p.m. in Barbie Tootle

Pandas on Jupyter: Improving Your Data Analysis Workflow

Nick Macro

Python, and more specifically, Jupyter Notebooks enable data analysis workflows to be reproducible without very much overhead. This talk will discuss how to use Jupyter Notebooks and the python ecosystem to incrementally improve the reproducibility, efficiency, and depth of your existing analysis workflow.

Sunday 4:15 p.m.–4:45 p.m. in Cartoon 1

Penetration Testing The Dev Interview: Attacks to Ace Interviews and Defenses to Build Better Teams

Wes Winham

The developer hiring process is vulnerable. Let’s attack it! We’ll draw on both the computer security penetration testing toolkit and from lessons learned the hard way across my decade of startup hiring. We'll break down the typical developer interview process. Then, we'll use the lens of social engineering and cognitive bias to identify specific tactics for acing interviews.

Sunday 12:45 p.m.–1:15 p.m. in Cartoon 1

Playtime in the Dunders: Mastering Python with Misfit Objects

Eric Appelt

In this talk, we will engage in imaginative play with the python language by deliberately misusing the python special methods (dunders) to construct objects with very odd behavior. While such objects may be unsuitable for any "serious" programming, having fun observing their behavior can help to provide a much richer understanding of the python language and interpreter.

Saturday 11:15 a.m.–11:45 a.m. in Hays Cape

Python in Serverless Architectures

Daniel Lindeman

Serverless architectures are all the rage right now, but why? The cost savings? The developer story? Because it's shiny and new? In this talk I will start with a basic Flask App and show the process of migrating to a serverless architecture on AWS using the Serverless framework. Along the way, we'll also highlight some of the tradeoffs developers make when choosing a serverless architecture.

Sunday 1:30 p.m.–2 p.m. in Cartoon 2

Python, Robotics, OpenCV and Vision

Robert Seward

This talk explores mentoring a FIRST FRC Robotics Team. - FIRST stands for For Inspiration and Recognition of Science and Technology. - FRC = FIRST Robotics Challenge - Specifically it gives an overview of using Python to teach students how to integrate Computer Vision capabilities into our FRC robot. Along the way we touch on all the juicy technical details.

Sunday 12:45 p.m.–1:15 p.m. in Barbie Tootle

Reproducible Environments for Reproducible Results

Dana Walker, Bihan Zhang

Trustworthy results require reproducibility. Publishing code is necessary but not sufficient for complete reproducibility. Complex programs often depend on external code. This talk will introduce you to several ways to manage your software dependencies and data to pass reproducible software environments to peer-reviewers.

Saturday 10:30 a.m.–11 a.m. in Barbie Tootle

Saturday Lightning Talks

Dave Forgac

A series of 5-minute talks!

Saturday 5:15 p.m.–6:30 p.m. in Cartoon 1, Cartoon 2

Saturday Welcome

Dave Forgac

Welcome to PyOhio!

Saturday 9 a.m.–9:15 a.m. in Cartoon 1, Cartoon 2

Serverless Anywhere, Including On-Prem

Don Schenck

Cloud functions -- or "Serverless" -- allows you to put functions into play without the typical deployment effort. While the major cloud providers have their own FaaS, OpenWhisk -- an open source solution -- allows you to run function on any cloud, including on premises. Come see how you can run Python functions on your own terms.

Saturday 3:45 p.m.–4:15 p.m. in Hays Cape

Smart and Simple Data Driven Hydroponic Sensing Applications Using Python, Flask & Raspberry Pi

Bethany Poulin

The brilliantly conceived and executed Raspberry Pi platform is a wonderful tool for developing simple, cost effective, self-contained sensor-driven applications using Python, Flask and a little bit of ingenuity. This presentation is aimed at beginning to mid-level hobbyist with modest python skills or serious python programmers interested in hydroponics sensors.

Saturday 11:15 a.m.–11:45 a.m. in Cartoon 2

Software Engineering For Beginners: A Jr. Developer's Guide

Kojo Idrissa

Speaking English alone won't make you a journalist or author. The same is true of Python and becoming a professional developer or open source contributor. Many people are 'learning to code' to switch careers, but overlooking the other skills they'll need. New developers will learn the when, why, and how of those other skills, while experienced devs can use this as a roadmap for mentoring.

Saturday 2 p.m.–2:45 p.m. in Cartoon 1

Solving an NP-Hard Problem for Fun and Profit

Raymond Chandler III

You've just been given a task by your client. The problem seems simple at first, but after some research you find out that your problem is not just hard, it's NP-Hard! At first, a solution appears impossible but you're not to be stopped! You're a programmer! You got this! You have the Python! But... now what? How do you solve it?

Sunday 4:15 p.m.–4:45 p.m. in Cartoon 2

Sunday Lightning Talks

Dave Forgac

A series of 5-minute talks!

Sunday 5 p.m.–6 p.m. in Cartoon 1, Cartoon 2

Sunday Welcome

Dave Forgac

Welcome back to PyOhio!

Sunday 11:30 a.m.–11:40 a.m. in Cartoon 1, Cartoon 2

The Modern Command-Line Tool Stack: Pipenv, Click, and Friends

Matt Behrens

Until recently, I was still writing Python command-line tools like it's the mid-00s. In this talk, you'll learn about the tools I found to modernize development, installation, and isolation as well as the libraries that make building CLIs and working with the OS easy. We'll cover Pipenv and how best to use it with setuptools, as well as Click and other libraries useful for this task.

Saturday 11:15 a.m.–11:45 a.m. in Barbie Tootle

Tracking the International Space Station in Django with Redis-Queue and RQ Scheduler

Samuel Agnew

Have you ever looked up at the sky and wondered if the International Space Station was flying by at that moment? In this live coding adventure we will cover the basics of scheduling tasks with RQ in Django by building a web app that sends you text message notifications whenever the ISS passes by your location. Technologies covered will be the ISS Open Notify API, Twilio SMS, RQ, and RQ Scheduler.

Saturday 4:30 p.m.–5 p.m. in Hays Cape

Useful Python Libraries for Network Engineers

Hank Preston

Python has quickly become THE language for network automation and programmability due to it’s combined simplicity and power. If you are a network engineer looking to get started with automation and Python, it can be tough to now where to start. This session proposes the modules and libraries every engineer should have in their tool bag.

Sunday 3:15 p.m.–4 p.m. in Cartoon 1

You Can Do Deep Learning!

William Horton

When I started learning web dev, I dove into building my first Rails app. I didn’t know how it all worked, but after hours of hacking I had a blogging app running. I imagine many share a similar learning experience. Similarly, you don’t need a PhD to do deep learning, you can get started with Python skills and open-source frameworks. It can be fun and rewarding, and inspire you to dive deeper.

Saturday 3 p.m.–3:30 p.m. in Cartoon 1

You Don't Need That!

Christopher Neugebauer

Not every design pattern makes sense in Python. This talk builds up design patterns commonly used in enterprise languages, and shows the features in Python that make these approaches unnecessary.

Saturday 3 p.m.–3:30 p.m. in Hays Cape