I’ll be giving a talk on Trio at PyCon Japan in September. The event organizers haven’t posted talk info yet, so I’ll copy it here.
Inside a companion robot: Productive concurrency with Trio async-await
abstract
Robots are born of concurrency– yet concurrent programming is notoriously hard. Here’s how dread was transformed into productivity and fun thanks to a thoughtfully designed async-await library called Trio.
description
Concurrency matters in the physical world– just ask a companion robot possessing 15 degrees of freedom, 50 sensors, and animal-like behavior. As a small team including animators and casual programmers, how would you manage the complexity of gluing the system together while delivering high level functionality and features? How would you avoid wasted months debugging race conditions and deadlocks, or fretting the pitfalls of parallel task communication and error handling? What if you were given only one core of a modest CPU? And how would you enable rapid real-time visualizations of the system with zero impact on production performance?
I’ll present the early-adopting, daring answer embraced for LOVOT: Python , the Trio async-await library , and
If you appreciate the difficulties of concurrent programming, have battled real threads and lost, had a rough experience with asyncio or other async framework, or are simply interested in seeing what’s possible when a great solution meets an interesting application– I hope you will gain from the talk.
Covered items will include: an overview of Trio’s structured concurrency and why Python is at the forefront of concurrency programming; highlights of how it’s been applied to the LOVOT companion robot; Trio tooling strengths; an interactive web canvas server for embedded systems based on the Processing API; a look at utilities built on Trio; troublesome points to watch out for; and a review of useful escape hatches.