10 year anniversary event with Robert Smallshire
Details
It's ten years since the Gothenburg Python User Group was founded and we will celebrate this at a special meeting with a guest speaker.
Robert Smallshire is coming down from Oslo to give us a presentation. HiQ is sponsoring the meeting by hosting us in their office and providing sandwiches and drinks. Praqma is paying for the costs of bringing in the speaker, and for the cake. Many thanks to all the sponsors, we hope that many GothPy members, past and present, will also come!
Agenda:
17:30 mingle and sandwiches
18:00 introductions
18:15 Robert Smallshire's talk
19:30 (ish) mingle and cake
20:30 close
Talk Title: Coroutine Concurrency in Python 3 with asyncio
Coroutines are an old idea undergoing a resurgence in popularity, as they facilitate highly concurrent applications without recourse to the complications and intricacies of threads and locks. After many years of third-party support for coroutine-based concurrency in Python, the popular Python language has recently introduced first-class support with many new language features together with a supporting standard library called asyncio.
Coroutines are threads-of-execution implemented via resumable functions which, when combined with a suitable scheduler, can be used to support concurrency in the style of cooperative multitasking which can be simpler to reason about, and easier to debug, than the alternatives.
In the first part of this session I'll demonstrate the simplicity and essential qualities of coroutine-based concurrency by building a simple concurrency framework from scratch, in Python 3. This efficiently removes any notion that there is any hidden magic in how coroutines work in practice. I'll then, by a series of simple, mechanical transformations, convert our home-grown example into real Python 3 code using the recently introduced async and await language features, together with the asyncio library. In the final part of the talk we explore some of the abstractions Python 3 builds on top of coroutines such as futures, tasks, transports and asynchronous streams, and demonstrate how to use these in a practical application.
This session can serve as an introduction to coroutine-based concurrency for those new to the idea irrespective of programming language, and window into how asynchronous programming in Python works in theory and in practice. Around 80% of the session is code and live demonstration, with 20% supporting material.
About the speaker:
Robert Smallshire is an author with Pluralsight, and founder of Sixty North, a software product and consulting business in Norway. Robert has worked in senior architecture and technical management roles for software companies in the energy sector processing the masses of information flowing from today's digital oil fields. He has designed, and implemented effective architectures for sophisticated scientific and enterprise software in Python, C++, and C#. Robert is a regular speaker at conferences, meetups and corporate software events where he can be found speaking about topics as diverse as behavioral microeconomics in software development to implementing web services on 8-bit microcontrollers. He is organizer of the Oslo Python group and holds a Ph.D. in a natural science.
