Talks: Your app is async so take advantage of it for development!

Presented by:


Description

So your Python application is running under asyncio or similar framework-- congratulations! But what does that mean to you? More efficient use of compute resources? Simpler program structure and avoiding callbacks? It should mean even more. Cooperative multitasking opens new doors for inspecting the state of a program at runtime, which has valuable development uses.

This talk covers how Python's async is useful for "development views"-- visualizing and interacting with the state of your running app-- and gives some working examples that run concurrently and don't require intrusive changes to program structure:

  • remote REPL - open one or more interpreter sessions over HTTP to
    inspect and modify internal state of your app while it's running
  • graphical visualizations - view custom graphical representations of
    state remotely from a web browser. These are written alongside the
    code being visualized, and have zero overhead when not observed.
    Keyboard and mouse input is possible too.

What kind of visualizations? For a Python app embedded in a home robot, these might include a local map of obstacles; display of orientation, speed, power usage; low res. camera or depth camera feeds; representations of internal state machines deciding behavior; etc.