AsyncIO + Music, Origins of Black, and Managing Python Releases
May 1, 2020
auto_awesome
Łukasz Langa, release manager for Python 3.8 and 3.9, discusses AsyncIO with Music at PyCon 2020. Topics include event loop comparisons, coroutines, uvloop, and origins of his code formatter, Black. He also shares insights on EdgeDB and transitioning back to Poland.
AsyncIO used in music creation with coroutines and event loop triggers for live music
Transition from Facebook to Edge DB for working on modern Python-based relational object database
Challenges and benefits of remote work, importance of work-life balance and supportive environment
Deep dives
Async IO and Python for Music Creation
Using async IO with music creation was discussed in the podcast, showing examples of using coroutines, gathering, the event loop, and events being triggered to create live music. Wukas Langa, the guest, demonstrated his talk on using async IO with music at Python 2020, highlighting the role of async IO in music production and live coding. The presentation included hardware involvement, real-time audio creation, and live coding, creating unique and intricate sounds through sequencing beats and musical elements.
Transition from Facebook to Edge DB
Wukas Langa transitioned from Facebook to Edge DB, where he works on a relational object database based on Postgres but offering a high-level query language and GraphQL integration. The database provides the guarantees of traditional relational databases with enhanced usability and query capabilities. After leaving Facebook, Wukas embarked on a journey from London back to Poland, deciding to focus on remote work and ultimately joining Edge DB to work on a modern Python-based product.
Challenges in Remote Work Transition
Wukas Langa discussed the challenges faced during his transition to remote work after leaving Facebook, emphasizing the difficulties in establishing a remote work environment due to timezone misalignments and company policies. Despite initial efforts to set up a remote gig with Facebook, corporate constraints led him to eventually quit and embark on a period of decompression and familial time. The transition to remote work highlighted the importance of work-life balance and a supportive work environment.
The Impact and Adoption of Black Format Tool
Wukas Langa reflected on the unexpected success and wide adoption of Black, a formatting tool he developed to address code consistency challenges. Black gained popularity among developers and projects, including prominent companies like Facebook and PyTest, due to its simple and opinionated approach to code formatting. The tool received positive feedback for streamlining coding processes, enhancing code consistency, and reducing manual formatting discussions, culminating in widespread adoption and the sponsorship of bug bounty programs to further refine the tool.
Importance of Practical Projects in Learning Python
Creating practical projects early on in the learning process helps in retaining knowledge and gaining practical experience. The speaker emphasizes the value of working on projects that solve real-world problems rather than just going through tutorials. Practical projects not only enhance learning but also lead to a deeper understanding of Python programming.
Significance of Backwards Compatibility in Python Development
Maintaining backwards compatibility is crucial in Python development to ensure existing code remains functional across versions. The speaker reflects on the importance of stability and gradual change, citing the decade of stability in Python 2.7 as a valuable period for developers. Considering the impact of changes on long-standing programs, the speaker advocates for a conservative approach to introducing modifications in Python 3 releases.
Want to learn more about AsyncIO in Python, with an example where you can see and hear events being triggered in real-time? This week we have Łukasz Langa on the show. Łukasz has created a talk for PyCon 2020 online about using AsyncIO with Music.
In his talk he shows live examples of coroutines, gathering, the event loop and events being triggered to create a piece of music. We also talk about his role as the release manager for Python 3.8 and 3.9. Łukasz provides background on the origins of his very popular, uncompromising code formatter, Black, and the types of problems it can solve inside of an organization.
Łukasz previously worked for Facebook, which is where he started Black. He talks about recently moving back to Poland. We discuss his current work for Edge DB, building a new generation object-relational database.
Topics:
00:00:00 – Introduction
00:01:32 – Łukasz’s background
00:03:22 – Leaving Facebook and moving back to Poland
00:05:26 – Starting work with EdgeDB
00:06:07 – What is Edge DB?
00:12:28 – AsyncIO + Music PyCon 2020 talk
00:18:56 – More AsyncIO resources
00:23:36 – Comparing the event loop to a game loop
00:27:12 – Coroutines and gather
00:30:00 – A conversation with Glyph
00:33:40 – Bigger ideas for the AsyncIO MIDI sequencer
00:35:41 – Using uvloop as a replacement for the built-in reference AsyncIO loop
00:39:13 – Thoughts on MIDI 2.0
00:46:30 – Origins of Black
00:53:51 – Black grows in popularity
00:58:35 – What is involved in being the Python 3.9 release manager?
01:02:22 – The Python language summit
01:07:44 – Is the beta on schedule?
01:09:27 – How did you get the role of Release Manager?
01:15:09 – What are you excited about in the world of Python?
01:19:02 – If you were learning Python from scratch, what would do differently?
01:22:18 – What is something you thought you knew about Python, but were wrong about?