Parsing User Input with Python, any% Speedrun

21 October 2022

Over the summer of 2022.ev, scholar.social (a node of the Fediverse that has cultivated a community of teachers, instructors, librarians, and academics of all stripes) held their biannual online conference called Summer School (Winter School, of course, is the other one). Summer/Winter School is described as an interdisciplinary online conference where denizens of the Fediverse could present their work and hold classes, predicated upon the belief that knowledge should be free and accessible to everyone. I finally heard about this year's conference before the fact and, as luck would have it I had a proposal for a talk several years old that I hadn't had a chance to give anywhere. I sent my summary in and much to my surprise it was accepted.

One of the things about talks at Summer School is that they're not very long. They're not lightning talks but neither are they collegiate multi-hour classes. Most talks are around 15 minutes in length, with a few slightly longer. As a nod to this limitation I somewhat whimsically decided to reference the speedrunning community in the title of my talk, "any%" meaning that I was going to talk until either I'd covered everything in my talk or my alotted time ran out. As it turned out I did come in under time and could take a couple of questions at the end.

Please bear in mind, I am not an expert. I've only written from experience of the not-professional sort. I've yet to write an interpreter or compiler of any kind, so it's not that kind of parsing. I've yet to figure out a few other kinds (vis a vis, a command parser where the user basically tells the construct "Learn a new command, here's what I want you to trigger from the list of things you already have code for (like, use an API or two), and here are a couple of ways I can tell you to activate that function." I've seen a couple of Slack bots that can do that but I've yet to figure out how to write such a thing myself.)

Anyway, here is the recording of my talk.

And, here are my slides for the talk: