PyCon AU 2019
2019-08-02..2019-08-06
Sydney, Australia
PyCon AU ·
[PyCon AU 2010, PyCon AU 2015 OpenStack Miniconf, PyCon AU 2016, PyCon AU 2016 Science and Data Miniconf, PyCon AU 2017, PyCon AU 2019, PyCon AU 2023, PyCon AU 2024, PyCon AU 2025, PyCon AU 2026]
| title | author | length |
|---|---|---|
| Rust's Recipes for Code and Community | E. Dunham | 35m |
Three years of embedded work on Rust and Servo yield concrete practices: an explicit code of conduct shaping contributor quality, an RFC process with a 10‑day… | ||
| You don't always need NumPy | Sam Hames | 32m |
Claim: many non-numeric parts of a workflow are faster to build and more robust with standard Python or small focused tools than forcing everything into NumPy… | ||
| Opening Doors with JSON Web Tokens | Ben Dechrai | 41m |
Shows a practical replacement for internet‑connected locks: an identity provider issues an RSA‑signed JSON Web Token to an Android app, the app writes the… | ||
| New Phone, Who Dis?: Human Authentication in the Digital Age | Yaakov Smith | 27m |
Claims that NSW digital driver’s licence is more secure than plastic get tested with actual tools: the app is decompiled app and its QR payload is inspected… | ||
| Extracting tabular data from PDFs with Camelot & Excalibur | Vinayak Mehta | 27m |
Camelot and Excalibur claim to turn messy PDF pages into usable tables by combining PDFMiner text boxes with Ghostscript + OpenCV image processing; they ship a… | ||
| Web Accessibility In Django | Parth Shandilya | 23m |
Parth Shandilya
Many developers want to build accessible applications,but don't know where to start. This talk will cover common accessibility issues and how… | ||
| Using Dash by Plotly for Interactive Visualisation of Crime Data | Leo Broska | 29m |
Uses Dash and plotly express with pandas and Flask to build an interactive homicide dashboard from a public CSV, wiring dropdowns to graphs via Dash callbacks… | ||
| Automagically marking Python course work and assessments in seconds! | Dave Bracken | 29m |
Courseware uses the CodeRunner plug-in in Moodle plus a separate job engine sandbox to package student submissions, run tests and return marks — not minutes… | ||
| What makes Micro:bits different? | Jack Reichelt | 29m |
Micro:bits are tiny MicroPython devices with LEDs, two buttons, compass, accelerometer, Bluetooth, an edge connector and a built‑in radio; they run at ~16 MHz… | ||
| Building, designing, teaching and training simulation environments for Machine Learning | Paris Buttfield-Addison | 30m |
Simulation uses Unity + Unity ML‑Agents as glue to Python/TensorFlow to train controllers inside a game engine. Builds include a racetrack with a camera‑front… | ||
| Forklifting Django: Migrating A Complex Django App To Kubernetes | Noah Kantrowitz | 30m |
A Django monolith with Celery, Channels, Postgres, Redis and RabbitMQ gets lifted into Kubernetes using multi-stage Docker builds and initial manual YAML then… | ||
| Stealing Chrome cookies without a password | Alex | 28m |
New technique claims full-steal of Chrome session cookies without password or root when arbitrary code execution exists on the machine. It uses headless Chrome… | ||
| Concept to Classroom: Creating fun differentiated programming projects | Renee Noble | 30m |
Explains a concrete 5‑step method for classroom projects, including a Minimum Viable Projects approach, a quantifying concept calculator and a workbook flow… | ||
| Best Practices for Cryptography In Python | Paul Kehrer | 31m |
Secure cryptography is possible in Python but only with tradeoffs: built-in pow() and big ints leak timing and memory, Python lacks direct control of caches… | ||
| Safely eval Python syntax using the AST module | Tim Savage | 28m |
Claims a safe eval pipeline that parses user Python into the AST module, rejects disallowed node types by whitelist nodes, limits call targets (only specific… | ||
| Using Python, Flask and Docker To Teach Web Pentesting | Zain Afzal, Carey Li | 30m |
Course infrastructure hosts 65 independent Dockerized sites for about 70 students, built with Python, Flask, Postgres, Docker and cookiecutter and orchestrated… | ||
| Using Python to make learning Python better | Ben Taylor | 37m |
Claims that everyday educators can write small Python tools to improve learning with concrete examples: a simple prior knowledge script using print input and… | ||
| Data Sharing in Modern Australia | Justin Warren | 20m |
Australia is reshaping privacy law and the talk lists concrete statutes like Privacy Act 1988 and the Telecommunications (Interception and Access) Act, then… | ||
| Securing your AWS Identity Management pipeline with PyTest | Sean Johnson | 21m |
A reproducible pipeline validates AWS IAM policies before deployment by building a programmatic spec from scraped AWS docs and running checks against Terraform… | ||
| Forecasting Australia's 2019 Election with PyMC3 | Martin Burgess | 29m |
Builds a probabilistic pipeline that turns polls into a two‑party preferred margin then into seats using historical seat‑vote data and Bayesian inference with… | ||
| cuDF: RAPIDS GPU-Accelerated Dataframe Library | Mark Harris | 31m |
cuDF is a pandas-like GPU dataframe with a CUDA C++ core and a Python API that delivers concrete performance: microbenchmarks show 30–60× speedups on… | ||
| How to lose a container in 10 minutes | Sarah Young | 32m |
Claim: spinning up containers and k8s clusters and leaving them exposed will get them pwned quickly. Experiment actually spins real containers on a cloud host… | ||
| Understanding GPUs | Varun Nayyar | 30m |
Shows concrete tradeoffs and numbers: using torch and tensorflow maps deep nets to GPUs so forward/backward passes go from weeks to hours (one example cuts a… | ||
| Threat Modeling the Death Star | Mario Areias | 29m |
Argues that attack trees make threat modeling concrete and engaging by enumerating attacker personas, branching real attack paths and deriving mitigations… | ||
| Pony, Cat, and Paw: Getting Started with the Open Source Menagerie | Tobias Kunze | 29m |
Django has about 1,300 open tickets and roughly 500 tickets marked has_patch so find an unassigned ticket or revive a closed PR, click “assign to” with your… | ||
| Using Python, Django, and ruthlessness to protect people from social media harassment. | Tom Eastman | 24m |
A small Django web app called secateur integrates with the Twitter API using OAuth and Python to block harassers and their followers temporarily (options like… | ||
| Flying by the seat of our pants - our journey of teaching python using drones | Kylie Mathers | 33m |
Grade ten students install the Pi parrot library via terminal, run a fragile "hello anyone home" connection test, then build functions to make drones do square… | ||
| 3D Rendering with Python | Andrew B. Williams | 25m |
Creates interactive 3D scenes with VPython and GlowScript so code controls the physics not a black‑box renderer. Shows a bouncing ball in a few lines with… | ||
| How to get everyone to get on board with software security: practical tips and suggestions. | Tennessee J Leeuwenburg | 31m |
Claims concrete wins: someone forces deep test coverage in a legacy app at the cost of a three‑month delay to a massive project and it pays off; small… | ||
| Learn to control your brain: Brain Computer Interfacing with Python | Johan van der Meer | 31m |
Shows a working neurofeedback pipeline that captures EEG over Lab Streaming Layer, filters in Python and returns real‑time audio/visual feedback; offline… | ||
| The Unspeakable Horror of Discovering You Didn't Write Tests | Melanie Crutchfield | 30m |
A real project called Five Up starts with zero tests and the claim is simple: add tests and stop breaking things. The workflow uses Pytest, Pytest‑cov and… | ||
| Machine Learning and Cyber Security - Detecting malicious URLs in the haystack | Veatrissa L. | 21m |
Claims a workable ML pipeline that flags malicious URLs using open datasets and common tooling: training on Alexa top 1M as benign and PhishTank as malicious… | ||
| Just Add Await: Retrofitting Async Into Django | Andrew Godwin | 01h 10m |
Moves from claim to implementation: adds ASGI support landed to Django, builds heavy glue like sync_to_async shims and a thread-local / executor layer to run… | ||
| Creating Lasting Change | Aurynn Shaw | 52m |
Claim: entrenched contempt culture blocks adoption because business cares about predictability and risk not novelty. The talk names tools—Puppet, SaltStack… | ||
| WASM matter? | Russell Keith-Magee | 30m |
WASM is a compact binary format that ships pre-parsed code so browsers start faster and JITs get exact types: a hand‑made add compiles to 41‑byte example.wasm… | ||
| Lessons learned building Python microservices | Richard Jones | 33m |
Dozens of microservices on Kubernetes in Java and Python talk to an InfiniMix legacy DB and serve 800 branch terminals; contracts are enforced with pact… | ||
| Building a Sustainable Python Package Index | Dustin Ingram | 24m |
PyPI is the canonical but wild west package registry that actually runs on Python 3, Pyramid, Postgres, Redis, Kubernetes with a CDN fronting almost… | ||
| Tunnel Snakes Rule! Bringing the many worlds of Python together to monitor Melbourne's biggest infra | Evan Brumley | 29m |
Claim: a production system ingests 150–200 sensors sending half‑second telemetry and survives a peak of ~1 billion records/month. Built components include… | ||
| Making Acquaintances with Exotic Encodings | Trapsilo Bumi | 28m |
Claims that Unicode isn’t universal: many sites and emails still use legacy sets like ISO-8859-1, Windows-1252, Shift_JIS, Big5 or GB2312, while UTF-8… | ||
| Goodbye Print Statements, Hello Debugger! | Nina Zakharenko | 29m |
Major claim: replacing print statements with debuggers speeds development. Demonstrations use a small Flask app hit by curl that drops into breakpoint() in… | ||
| Post-mortems: Building better software together. | Thomi Richards | 31m |
Argues for post-mortems that identify what prevented safe probing and accurate sensing rather than chasing a single root cause, and shows a concrete process… | ||
| Pretty vector graphics - Playing with SVG in Python | Amanda J Hogan | 30m |
Generates SVG by building text rather than using high-level libraries, with string manipulation to produce lines, rectangles, circles, arcs and complex paths… | ||
| Using comedy as an excuse to play with python-programmed microcontrollers | Anthony I. Joseph, Debbie Zukerman | 21m |
Recreates multiple stage props with actual parts and outcomes: CircuitPython on Adafruit Circuit Playground and Adafruit Flora, NeoPixels, servos, soldered LED… | ||
| Logging Rethought 2: The Actions of Frank Taylor Jr. | Markus Holtermann | 30m |
Argues that switching to structured, JSON logs and attaching a per-request trace id via middleware lets engineers reconstruct failures across services; shows… | ||
| Python Applications in Infrastructure Planning and Civil Engineering | Ben Chu | 22m |
A bot and pipeline turn alignment shapefiles and national address data into automated risk reports, producing HTML, CSV and shapefiles and stored in PostGIS… | ||
| Sufficiently Advanced Testing | Zac Hatfield-Dodds | 01h 07m |
Covers concrete techniques and working demos: Hypothesis minimization that automatically shrinks failing cases to a tiny repro, implementations of fuzzing… | ||
| Anatomy of a Browser | Erin Zimmer | 27m |
Browsers convert HTML into pixels by running tokenization and parsing once per document (the tokenizer is a finite state machine) to build the DOM and CSSOM… | ||
| Saturday Lightning Talks | Sam Bishop, Veronica Hanus, Genevieve Buckley, William Brown, Rowena Stewart | 01h 00m |
Procedural world building shows a Blender pipeline, Eska climate model and numpy stumbles with eight stars failing to render, while a lightning demo recreates… | ||
| Tracing, Profiling & Debugging in Production (eBPF) | Trent Lloyd | 31m |
Live-attach profilers let you inspect running Python with no restart: py-spy (ptrace-based, samples ~100 Hz) produces interactive SVG flame graphs and shows… | ||
| How I migrated a huge OSS project to use pytest | Craig de Stigter | 28m |
A Python script performs syntax-aware automated refactors with Bowler to convert GDAL’s old test framework to pytest, producing a final pull request of 118,000… | ||
| Profiling Pathogens with (micro) Python | Andrew Leech | 29m |
Planet Innovation with Lumos Diagnostics builds a battery-powered camera reader for lateral flow assays that produces numerical results identical to the PC app… | ||
| When software and law are the same thing | Brenda Wallace | 30m |
An experiment encodes statutes as executable Python, stores them versioned in git, publishes them GPL and serves them hosted as an API with machine-checkable… | ||
| You might not need gender! | Opal Symes | 32m |
Argues that many systems simply don’t need gender and when they do need it designers must say exactly which legal or UX purpose they serve. Gives concrete… | ||
| The real costs of Open Source Sustainability | VM Brasseur | 41m |
Claim: funding alone does not make open source sustainable. Evidence: the 2016 roads and bridges report triggers many new funding platforms — Tidelift, GitHub… | ||
| Not a long time ago, in a galaxy not very far away, an astronomer and a computer scientist walk into | Georgios Bekiaris | 28m |
A C++ galaxy-kinematic fitter is ported to Python with most model code in pure Python and critical inner loops as either C++ extensions or Numba/CuPy GPU… | ||
| It's Pythons All The Way Down: Python Types & Metaclasses Made Simple | Mark Smith | 01h 10m |
Explains how Python implements types and classes, shows type(...) as a class factory to make classes dynamically, demos descriptors with… | ||
| Shipping your first Python package and automating future publishing | Chris Wilcox | 24m |
Promises clear steps to get a package on PyPI in minutes and to stop doing it manually forever, showing concrete commands to build sdist and wheels, upload to… | ||
| What PHP learned from Python | Adam Harvey | 30m |
Compares concrete moves: Python 2→3 breaks (string/iterator API changes, removal of helper names) slow adoption over seven years with many users stuck on… | ||
| Insights into Social Media Data using Entropy Theory | Mars Geldard | 29m |
Applies entropy measurements toTwitter streams and claims entropy spikes precede engagement spikes while entropy falls predict imminent collapse, with the most… | ||
| A Programmer's Guide to Public Speaking | Donna Zhou | 28m |
Claims that public speaking is a solvable engineering problem and gives concrete patterns and drills: using analogies to the human operating system, recycling… | ||
| Fantastic Blocks And Where To Hide Them | Christopher Neugebauer | 29m |
Claims that Python lacks anonymous blocks are backed by history: a 2005 PEP to pass thunks is rejected, the with statement is chosen instead, and async/await… | ||
| It's dark and my lights aren't working (an asyncio success story) | Jim Mussared | 32m |
Invests years to make home lighting “smart,” builds a Python-based hub around ZigBee gear (Digi XBee, TI CC2531) and MicroPython devices, reverse‑engineers… | ||
| Changing what’s normal: how to transfer concepts between groups | Maia Sauren | 26m |
Offers concrete tactics and outcomes: frames change with the Overton window, cites the I immunized campaign and its 77% positive versus 16.8% negative survey… | ||
| The Antipodes | Brandon Rhodes | 40m |
Ancient Greeks conjecture the existence of antipodes using symmetry and a four‑zone climate model, but that model wrongly predicts an impassable equatorial… | ||
| Devpi for teams | Graham Williamson | 31m |
devpi is a local PyPI mirror and private index that caches packages (default recheck ~30 minutes), hosts uploaded release files and transparent proxy cache… | ||
| What not to do, and how to do it | Jakub Nabaglo | 26m |
Explains concrete behaviors: locals() vs globals() — locals returns a snapshot that doesn’t update fast locals while globals returns the module dict; uses… | ||
| Python Oddities Explained | Trey Hunner | 27m |
Covers concrete behaviors: Python 3 only scope rules (for-loops leak loop variable, comprehensions do not), assignment versus mutation (assignments make… | ||
| The universe as balls and springs: molecular dynamics in Python | Lily Wang | 31m |
Shows a working pipeline: setup, run, analyze. Uses OpenMM to run short molecular dynamics (1000 steps ≈ 2×10^−12 s per demo; full runs at ~200 ns), analyzes… | ||
| Teaching Python with tiny, occult pandas | Bruce Fuda | 33m |
Curriculum is refactored from 27 loose topics into four defined courses with real examples: data pipelines using pandas on 20 gigabyte datasets, web projects… | ||
| "Git hook[ed]” on images & up your documentation game | Veronica Hanus | 28m |
Argues that committing images with code makes visual history searchable and speeds onboarding, shows a working workflow that auto-takes screenshots on commit… | ||
| No time to idle about: Profiling import time in Python | Daniel Porteous | 27m |
Python 3.7 exposes per-module timings via the -X importtime runtime flag and that data can be parsed, turned into a tree/graph, and visualised with… | ||
| Instant-feedback, instant-debugging Python coding | Robert Lechte | 28m |
A working prototype runs code after every keystroke and places per-line program state next to the source, eliminating print statements, logs and context… | ||
| Micropython Gotchas | Michał Gałka | 27m |
A thermal printer project runs on a Pycom LoPy (ESP32) with 512 KB RAM and 4 MB flash but fails on an esp8266 ~25KB RAM because bytecode compilation consumes… | ||
| Volumetric Performance Capture and Playback: A Workflow with Python | Luke Miller | 27m |
Python glues a physical rig of eight Android phones to a processing pipeline that actually produces playable volumetric shorts: a Flask web API coordinates… | ||
| Conference Close | 10m | |
Contains concrete wrap of the event: 692 registrations, 121 speakers, 25 lightning talks, 63 videos online, on-site childcare numbers, sprint times and coffee… | ||
| Orchestrating complex (not complicated) tasks using AWS serverless and Python | Michael Kelly | 29m |
Claims Step Functions are the most powerful cheapest and complete solution for orchestrating serverless work using AWS Step Functions with AWS Lambda and… | ||
| Environment Variables: how software impacts climate change | Merrin Macleod | 31m |
Software and infrastructure decisions have measurable climate impact: IT totals 2% of global emissions, Sydney grid electricity is about 700 g CO2/kWh, a 1 kW… | ||
| Education Seminar Student Showcase | Eliza Lee, Joshua Whitmore, Rohan van Klinken, Stephan Kashkarov, Anna Brew, Pinak Limaye, Kaya Dahlke, Angus Atkinson, Yve Nichols-Evans | 01h 17m |
Eight student projects: a Twitter‑bot that classifies tweets and auto‑replies with dog images but replies repeatedly and looks like a spam bot; a Flask backend… | ||
| Building an interactive training environment using JupyterHub | Graham Dumpleton | 31m |
Claims that JupyterHub can spawn non‑notebook apps and that a browser‑based training lab was built and runs reliably. Uses container images with workshop… | ||
| Let's Build a Symbolic Analyser And Automatically Find Bugs | Jon Manning | 30m |
Shows how to build a Python symbolic analyser using Z3 to prove reachability, generate concrete inputs for each satisfiable path, and automatically find… | ||
| Sunday Lightning Talks | Brenda Wallace, Jacob Ross, Eric Huang, Amber Brown, Peter Hall, Michael Farrell, Rhydwyn McGuire | 01h 06m |
A fast tour of concrete claims and builds: a demo runs on Rigetti Aspen cloud and shows Bell‑state experiments on a real QPU; an argument for PEP 594 removing… | ||
| The New COBOL | Benno Rice | 26m |
COBOL remains a living spec (2018 spec) running billions of lines on mainframes, with real features like screen sections for record‑oriented forms and limits… | ||
| Extending MicroPython: Using C for good! | Matt Trentini | 01h 04m |
Claims that MicroPython performance improves by selectively dropping into C are shown end to end: a Project Nayuki QR implementation is ported, Python… | ||
| nothing matches | ||