The Python Podcast.__init__

The Python Podcast.__init__

By Tobias MaceyTechnologyEducation
Download on the App Store

The Python Podcast.__init__ episodes

  • Make Your Code More Readable With The Magic Of Refactoring Using Sourcery
    Summary

    Writing code that is easy to read and understand will have a lasting impact on you and your teammates over the life of a project. Sometimes it can be difficult to identify opportunities for simplifying a block of code, especially if you are early in your journey as a developer. If you work with senior engineers they can help by pointing out ways to refactor your code to be more readable, but they aren’t always available. Brendan Maginnis and Nick Thapen created Sourcery to act as a full time pair programmer sitting in your editor of choice, offering suggestions and automatically refactoring your Python code. In this episode they share their journey of building a tool to automatically find opportunities for refactoring in your code, including how it works under the hood, the types of refactoring that it supports currently, and how you can start using it in your own work today. It always pays to keep your tool box organized and your tools sharp and Sourcery is definitely worth adding to your repertoire.

    Announcements
    • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
    • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
    • We’ve all been asked to help with an ad-hoc request for data by the sales and marketing team. Then it becomes a critical report that they need updated every week or every day. Then what do you do? Send a CSV via email? Write some Python scripts to automate it? But what about incremental sync, API quotas, error handling, and all of the other details that eat up your time? Today, there is a better way. With Census, just write SQL or plug in your dbt models and start syncing your cloud warehouse to SaaS applications like Salesforce, Marketo, Hubspot, and many more. Go to pythonpodcast.com/census today to get a free 14-day trial.
    • Your host as usual is Tobias Macey and today I’m interviewing Nick Thapen and Brendan Maginnis about Sourcery, an advanced refactoring engine that cleans up your code as you work
    • Interview
      • Introductions
      • How did you get introduced to Python?
      • Can you start by giving an overview of what Sourcery is?
      • What was your motivation for building a system for performing automated refactoring?
        • What are your goals and priorities with Sourcery?
        • There are a number of services that aim to automate portions of the developer workflow, such as code completions, quality checks, refactoring, etc. What was lacking in the existing tooling that made Sourcery a necessary project?
          • How does Sourcery compare with some of the other services that offer AI or ML powered assistance? (e.g. Kite, Tab9, Codata(?))
          • What was your reasoning for focusing solely on Python for your refactoring, rather than trying to support multiple language targets?
          • Can you give some examples of the types of refactoring that you are able to automate?
          • Can you describe how Sourcery is implemented?
            • What are some of the ways that the system has changed or evolved in design and/or scope?
            • What are some examples of the types of refactorings that Sourcery is ill-suited for and which still require manual intervention?
            • What is involved in adding support for a new editor?
              • How much variation is there in terms of implementation or available functionality across editors?
              • How has the introduction of the Language Server Protocol influenced your approach to editor integration?
              • What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on Sourcery?
              • When is Sourcery the wrong choice?
              • What do you have planned for the future of Sourcery
              • Keep In Touch
                • Nick
                  • LinkedIn
                  • @nthapen on Twitter
                  • Brendan
                    • LinkedIn
                    • @brendan_m6s on Twitter
                    • brendanator on GitHub
                    • Picks
                      • Tobias
                        • The Croods: New Age
                        • Nick
                          • The Magicians TV Series
                          • Brendan
                            • David Copperfield by Charles Dickens
                            • Closing Announcements
                              • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                              • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                              • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                              • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                              • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                              • Links
                                • Sourcery
                                • IBM RPG
                                • Delphi
                                • Java
                                • Scala
                                • PyTorch
                                  • Podcast Episode
                                  • NLP == Natural Language Processing
                                  • Tensorflow
                                  • Language Server Protocol
                                  • Kent Beck
                                  • Martin Fowler
                                  • MyPy
                                  • Clojure
                                  • Lisp
                                  • Abstract Syntax Tree
                                  • ASTroid
                                    • Podcast Episode
                                    • Rope
                                    • Sans I/O
                                    • pre-commit framework
                                      • Podcast Episode
                                      • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                        1 hr 1 min
                                      • Be Data Driven At Any Scale With Superset
                                        Summary

                                        Becoming data driven is the stated goal of a large and growing number of organizations. In order to achieve that mission they need a reliable and scalable method of accessing and analyzing the data that they have. While business intelligence solutions have been around for ages, they don’t all work well with the systems that we rely on today and a majority of them are not open source. Superset is a Python powered platform for exploring your data and building rich interactive dashboards that gets the information that your organization needs in front of the people that need it. In this episode Maxime Beauchemin, the creator of Superset, shares how the project got started and why it has become such a widely used and popular option for exploring and sharing data at companies of all sizes. He also explains how it functions, how you can customize it to fit your specific needs, and how to get it up and running in your own environment.

                                        Announcements
                                        • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                        • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                        • We’ve all been asked to help with an ad-hoc request for data by the sales and marketing team. Then it becomes a critical report that they need updated every week or every day. Then what do you do? Send a CSV via email? Write some Python scripts to automate it? But what about incremental sync, API quotas, error handling, and all of the other details that eat up your time? Today, there is a better way. With Census, just write SQL or plug in your dbt models and start syncing your cloud warehouse to SaaS applications like Salesforce, Marketo, Hubspot, and many more. Go to pythonpodcast.com/census today to get a free 14-day trial.
                                        • Your host as usual is Tobias Macey and today I’m interviewing Max Beauchemin about Superset, an open source platform for data exploration and visualization
                                        • Interview
                                          • Introductions
                                          • How did you get introduced to Python?
                                          • Can you start by giving an overview of what Superset is and what it might be used for?
                                            • What problem were you trying to solve when you created it?
                                            • What tools or platforms did you consider before deciding to build something new?
                                            • There are a few different ways that someone might categorize Superset, such as business intelligence, data exploration, dashboarding, data visualization. How would you characterize it and how it fits in the current state of the industry and ecosystem?
                                            • What are some of the lessons that you have learned from your work on Airflow that you applied to Superset?
                                            • Can you give an overview of how Superset is implemented?
                                              • How have the goals, design and architecture evolved since you first began working on it?
                                              • Given its origin as a hackathon project the choice of Python seems natural. What are some of the challenges that choice has posed over the life of the project?
                                                • If you were to start the whole project over today what might you do differently?
                                                • Can you describe what’s involved in getting started with a new setup of Superset?
                                                  • What are the available interfaces and integration points for someone who wants to extend it or add new functionality?
                                                  • What are some of the most often overlooked, misunderstood, or underused capabilities of Superset?
                                                  • One of the perennial challenges with a tool that allows users to build data visualizations is the potential to build dashboards or charts that are visually appealing but ultimately meaningless or wrong. How much guidance does Superset provide in helping to select a useful representation of the data?
                                                  • In addition to being the original author and a project maintainer you have also started a company to offer Superset as a service. What are your goals with that business and what is the opportunity that it provides?
                                                  • What are some of the most interesting, innovative, or unexpected ways that you have seen Superset used?
                                                  • What are the most interesting, unexpected, or challenging lessons that you have learned while building and growing the Superset project and community?
                                                  • When is Superset the wrong choice?
                                                  • What do you have planned for the future of Superset and Preset?
                                                  • Keep In Touch
                                                    • LinkedIn
                                                    • @mistercrunch on Twitter
                                                    • mistercrunch on GitHub
                                                    • Picks
                                                      • Tobias
                                                        • SOPS
                                                        • Max
                                                          • Frank Zappa Documentary
                                                          • Accelerate: The Science of Lean Software and DevOps
                                                          • Closing Announcements
                                                            • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                            • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                            • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                            • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                            • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                            • Links
                                                              • Superset
                                                              • Preset
                                                                • Blog
                                                                • Airflow
                                                                  • Podcast Episode
                                                                  • AirBnB
                                                                  • Lyft
                                                                  • Django
                                                                  • Flask
                                                                  • CRUD == Create, Read, Update, Delete
                                                                  • Business Intelligence
                                                                  • Apache Druid
                                                                  • Presto
                                                                  • Trino (formerly known as Presto SQL)
                                                                  • Redash
                                                                    • Podcast Episode
                                                                    • Looker
                                                                      • Data Engineering Podcast Episode
                                                                      • Metabase
                                                                        • Data Engineering Podcast Episode
                                                                        • Flask App Builder
                                                                        • React Redux
                                                                        • Typescript
                                                                        • GraphQL
                                                                        • Celery
                                                                        • Redis
                                                                        • RabbitMQ
                                                                        • S3
                                                                        • AirBnB Superset Blog Post
                                                                        • D3
                                                                        • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                          48 min
                                                                        • Practical Advice On Using Python To Power A Business
                                                                          Summary

                                                                          Python is a language that is used in almost every imaginable context and by people from an amazing range of backgrounds. A lot of the people who use it wouldn’t even call themselves programmers, because that is not the primary focus of their job. In this episode Chris Moffitt shares his experience writing Python as a business user. In order to share his insights and help others who have run up against the limits of Excel he maintains the site Practical Business Python where he publishes articles that help introduce newcomers to Python and explain how to perform tasks such as building reports, automating Excel files, and doing data analysis. This is a great conversation that illustrates how useful it is to learn Python even if you never intend to write software professionally.

                                                                          Announcements
                                                                          • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                          • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                          • We’ve all been asked to help with an ad-hoc request for data by the sales and marketing team. Then it becomes a critical report that they need updated every week or every day. Then what do you do? Send a CSV via email? Write some Python scripts to automate it? But what about incremental sync, API quotas, error handling, and all of the other details that eat up your time? Today, there is a better way. With Census, just write SQL or plug in your dbt models and start syncing your cloud warehouse to SaaS applications like Salesforce, Marketo, Hubspot, and many more. Go to pythonpodcast.com/census today to get a free 14-day trial.
                                                                          • Your host as usual is Tobias Macey and today I’m interviewing Chris Moffitt about how Python is used to help manage business needs and processes and his work to share advice on this topic at Practical Business Python
                                                                          • Interview
                                                                            • Introductions
                                                                            • How did you get introduced to Python?
                                                                            • Can you start by giving an overview of your mission at Practical Business Python?
                                                                              • What was your inspiration for starting the site and what keeps you motivated?
                                                                              • What are some of the kinds of problems that a business user is looking to solve for themselves?
                                                                              • Why is Python a viable tool for a business user to become familiar with?
                                                                              • How would you characterize the difference between the ways that a software engineer and a business user approach Python?
                                                                              • What do you see as the tipping point of complexity or time investment past which a business user will pass a given project on to a software engineer?
                                                                              • How much familiarity with adjacent concerns such as version control, software design, etc. do you consider useful for a business user?
                                                                              • What are some of the ways that you use Python in your day-to-day?
                                                                              • What are some of the onramps for integrating Python into a user’s workflow?
                                                                              • What are some common stumbling blocks that business users run into when getting started with Python?
                                                                              • What are some of the most interesting, innovative, or impressive ways that you have seen Python employed by business users?
                                                                              • What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on the Practical Business Python site?
                                                                              • What are some cases where you would advocate for a tool other than Python for a business use case?
                                                                              • What do you have planned for the future of the site?
                                                                              • Keep In Touch
                                                                                • LinkedIn
                                                                                • chris1610 on GitHub
                                                                                • @chris1610 on Twitter
                                                                                • Picks
                                                                                  • Tobias
                                                                                    • The Data Science Roundup Newsletter
                                                                                    • This Week In Data Newsletter
                                                                                    • Chris Moffitt
                                                                                      • Line Of Duty BBC Series
                                                                                      • Out Of The Dark by David Weber
                                                                                      • Closing Announcements
                                                                                        • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                        • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                        • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                        • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                        • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                        • Links
                                                                                          • Practical Business Python blog
                                                                                          • Electrical Engineering
                                                                                          • Unix
                                                                                          • Perl
                                                                                          • Data Science
                                                                                          • Django
                                                                                          • Raspberry Pi
                                                                                          • Pandas
                                                                                          • Excel
                                                                                          • VBA == Visual Basic for Applications
                                                                                          • VSCode
                                                                                          • Excel PowerFX
                                                                                          • Pathlib
                                                                                          • Conda
                                                                                          • Python Wheels
                                                                                          • PEP 582
                                                                                          • SAP
                                                                                          • Salesforce
                                                                                          • Tableau
                                                                                          • Prophet library for timeseries forecasting
                                                                                          • Talk Python Course Moving From Excel To Python
                                                                                          • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                            50 min
                                                                                          • Analyzing The Ecosystem of Python Data Companies With Tony Liu
                                                                                            Summary

                                                                                            There are a large and growing number of businesses built by and for data science and machine learning teams that rely on Python. Tony Liu is a venture investor who is following that market closely and betting on its continued success. In this episode he shares his own journey into the role of an investor and discusses what he is most excited about in the industry. He also explains what he looks at when investing in a business and gives advice on what potential founders and early employees of startups should be thinking about when starting on that journey.

                                                                                            Announcements
                                                                                            • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                            • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                            • Your host as usual is Tobias Macey and today I’m interviewing Tony Liu about his perspectives on the landscape of Python in the data ecosystem from his role as an investor
                                                                                            • Interview
                                                                                              • Introductions
                                                                                              • How did you get introduced to Python?
                                                                                              • Can you start by sharing your background in the data ecosystem?
                                                                                              • What led you to your current role as a venture investor?
                                                                                                • What is your current area of focus in your investments?
                                                                                                • What do you see as the major strengths of Python in the current landscape for data and analytics?
                                                                                                  • What are the areas where the ecosystem is still lacking?
                                                                                                  • Where are you seeing growth in the space and what do you see as the motivating factors?
                                                                                                  • As an investor, what are the qualities that you look for in a startup that is trying to compete in the data ecosystem?
                                                                                                    • What is your process for learning about and identifying companies that demonstrate the potential to succeed?
                                                                                                    • Do you focus on a particular problem domain and research a grouping of companies that are focused on that problem, or do you start from a given company to determine where to place your bets?
                                                                                                    • How has COVID changed the competitive landscape?
                                                                                                    • Can you share some of the companies that you have invested in?
                                                                                                      • What was noteable about their respective businesses that provided you with the confidence that they were worth investing in?
                                                                                                      • What are some of the most interesting, unexpected, or challenging lessons that you have learned from your experience as a venture investor?
                                                                                                      • What are some of the companies that you are keeping a close eye on, whether as potential investments or as competitors to your existing portfolio?
                                                                                                      • What are some of the problem spaces that you would like to see companies try to tackle?
                                                                                                      • What advice do you have for engineers who might be considering building a new business?
                                                                                                        • Do you have any advice for engineers who are working at a startup as to how best to compete in the current market?
                                                                                                        • Keep In Touch
                                                                                                          • LinkedIn
                                                                                                          • Picks
                                                                                                            • Tobias
                                                                                                              • The Sleepover movie
                                                                                                              • What do ya do with a Bernie Sanders? music video
                                                                                                              • Tony
                                                                                                                • Uncut Gems
                                                                                                                • Closing Announcements
                                                                                                                  • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                                                  • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                                                  • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                                                  • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                                                  • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                                                  • Links
                                                                                                                    • Costanoa Ventures
                                                                                                                    • Sports Analytics
                                                                                                                    • Turo
                                                                                                                    • Databricks
                                                                                                                    • Koalas
                                                                                                                    • DataRobot
                                                                                                                    • Faust
                                                                                                                      • Podcast Episode
                                                                                                                      • Oozie
                                                                                                                      • Azkaban
                                                                                                                      • Airflow
                                                                                                                        • Podcast Episode
                                                                                                                        • Prefect
                                                                                                                          • Data Engineering Podcast Episode
                                                                                                                          • Dagster
                                                                                                                            • Podcast Episode
                                                                                                                            • Data Engineering Podcast Episode
                                                                                                                            • Kubeflow
                                                                                                                            • MLFlow
                                                                                                                            • Metaflow
                                                                                                                              • Podcast Episode
                                                                                                                              • Pandas
                                                                                                                                • Podcast Episode
                                                                                                                                • Spark
                                                                                                                                  • Data Engineering Podcast Episode
                                                                                                                                  • DBT
                                                                                                                                    • Data Engineering Podcast Episode
                                                                                                                                    • SnowflakeDB
                                                                                                                                      • Data Engineering Podcast Episode
                                                                                                                                      • Coiled
                                                                                                                                        • Podcast Episode
                                                                                                                                        • Noteable
                                                                                                                                        • Dask
                                                                                                                                          • Data Engineering Podcast Episode
                                                                                                                                          • Data Engineering Podcast Episode About Notebooks at Netflix
                                                                                                                                          • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                            40 min
                                                                                                                                          • Go From Notebook To Pipeline For Your Data Science Projects With Orchest
                                                                                                                                            Summary

                                                                                                                                            Jupyter notebooks are a dominant tool for data scientists, but they lack a number of conveniences for building reusable and maintainable systems. For machine learning projects in particular there is a need for being able to pivot from exploring a particular dataset or problem to integrating that solution into a larger workflow. Rick Lamers and Yannick Perrenet were tired of struggling with one-off solutions when they created the Orchest platform. In this episode they explain how Orchest allows you to turn your notebooks into executable components that are integrated into a graph of execution for running end-to-end machine learning workflows.

                                                                                                                                            Announcements
                                                                                                                                            • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                            • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                            • Your host as usual is Tobias Macey and today I’m interviewing Rick Lamers and Yannick Perrenet about Orchest, a development environment designed for building data science pipelines from notebooks and scripts.
                                                                                                                                            • Interview
                                                                                                                                              • Introductions
                                                                                                                                              • How did you get introduced to Python?
                                                                                                                                              • Can you start by giving an overview of what Orchest is and the story behind it?
                                                                                                                                              • Who are the users that you are building Orchest for and what are their biggest challenges?
                                                                                                                                                • What are some examples of the types of tools or workflows that they are using now?
                                                                                                                                                • What are some of the other tools or strategies in the data science ecosystem that Orchest might replace? (e.g. MLFlow, Metaflow, etc.)
                                                                                                                                                • What problems does Orchest solve?
                                                                                                                                                • Can you describe how Orchest is implemented?
                                                                                                                                                  • How have the design and goals of the project changed since you first started working on it?
                                                                                                                                                  • What is the workflow for someone who is using Orchest?
                                                                                                                                                  • What are some of the sharp edges that they might run into?
                                                                                                                                                  • What is the deployable unit once a pipeline has been created?
                                                                                                                                                    • How do you handle verification and promotion of pipelines across staging and production environments?
                                                                                                                                                    • What are the interfaces available for integrating with or extending Orchest?
                                                                                                                                                      • How might an organization incorporate a pipeline defined in Orchest with the rest of their data orchestration workflows?
                                                                                                                                                      • How are you approaching governance and sustainability of the Orchest project?
                                                                                                                                                      • What are the most interesting, innovative, or unexpected ways that you have seen Orchest used?
                                                                                                                                                      • What are the most interesting, unexpected, or challenging lessons that you have learned while building Orchest?
                                                                                                                                                      • When is Orchest the wrong choice?
                                                                                                                                                      • What do you have planned for the future of the project and company?
                                                                                                                                                      • Keep In Touch
                                                                                                                                                        • Rick
                                                                                                                                                          • ricklamers on GitHub
                                                                                                                                                          • LinkedIn
                                                                                                                                                          • @RickLamers on Twitter
                                                                                                                                                          • Yannick
                                                                                                                                                            • yannickperrenet on GitHub
                                                                                                                                                            • LinkedIn
                                                                                                                                                            • Picks
                                                                                                                                                              • Tobias
                                                                                                                                                                • Fresh Bagels
                                                                                                                                                                • Rick
                                                                                                                                                                  • Vaex
                                                                                                                                                                  • Yannick
                                                                                                                                                                    • Cookiecutter
                                                                                                                                                                    • Pyenv
                                                                                                                                                                    • Links
                                                                                                                                                                      • Orchest
                                                                                                                                                                      • Geoffrey Hinton
                                                                                                                                                                      • Yann LeCun
                                                                                                                                                                      • CoffeeScript
                                                                                                                                                                      • Vim
                                                                                                                                                                      • GAN == Generative Adversarial Network
                                                                                                                                                                      • Git
                                                                                                                                                                      • SQL
                                                                                                                                                                      • BigQuery
                                                                                                                                                                      • Software Carpentry
                                                                                                                                                                        • Podcast Episode
                                                                                                                                                                        • Google Colab
                                                                                                                                                                        • Airflow
                                                                                                                                                                          • Podcast Episode
                                                                                                                                                                          • Kedro
                                                                                                                                                                            • Data Engineering Podcast Episode
                                                                                                                                                                            • nbdev
                                                                                                                                                                              • Podcast Episode
                                                                                                                                                                              • Papermill
                                                                                                                                                                                • Data Engineering Podcast Episode
                                                                                                                                                                                • MLFlow
                                                                                                                                                                                • Metaflow
                                                                                                                                                                                  • Podcast Episode
                                                                                                                                                                                  • DVC
                                                                                                                                                                                    • Podcast Episode
                                                                                                                                                                                    • Andrew Ng
                                                                                                                                                                                    • Kubeflow
                                                                                                                                                                                    • Lua
                                                                                                                                                                                    • Caddy
                                                                                                                                                                                    • Traefik
                                                                                                                                                                                    • DAG == Directed Acyclic Graph
                                                                                                                                                                                    • Jupyter Enterprise Gateway
                                                                                                                                                                                    • Streamlit
                                                                                                                                                                                    • Kubernetes
                                                                                                                                                                                    • Dagster
                                                                                                                                                                                      • Podcast.__init__ Episode
                                                                                                                                                                                      • Data Engineering Podcast Episode
                                                                                                                                                                                      • DBT
                                                                                                                                                                                        • Data Engineering Podcast Episode
                                                                                                                                                                                        • GitLab
                                                                                                                                                                                        • Spark
                                                                                                                                                                                        • ETL
                                                                                                                                                                                        • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                          45 min
                                                                                                                                                                                        • Write Your Python Scripts In A Flow Based Visual Editor With Ryven
                                                                                                                                                                                          Summary

                                                                                                                                                                                          When you are writing a script it can become unwieldy to understand how the logic and data are flowing through the program. To make this easier to follow you can use a flow-based approach to building your programs. Leonn Thomm created the Ryven project as an environment for visually constructing a flow-based program. In this episode he shares his inspiration for creating the Ryven project, how it changes the way you think about program design, how Ryven is implemented, and how to get started with it for your own programs.

                                                                                                                                                                                          Announcements
                                                                                                                                                                                          • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                                                                          • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                                                                          • Your host as usual is Tobias Macey and today I’m interviewing Leon Thomm about Ryven, a flow-based visual scripting environment for Python
                                                                                                                                                                                          • Interview
                                                                                                                                                                                            • Introductions
                                                                                                                                                                                            • How did you get introduced to Python?
                                                                                                                                                                                            • Can you start by giving an overview of what Ryven is and what inspired you to create it?
                                                                                                                                                                                            • What is flow-based visual scripting?
                                                                                                                                                                                            • What are other popular flow-based visual scripting systems out there and have they been inspiring to the project?
                                                                                                                                                                                              • What problem(s) do these try to solve?
                                                                                                                                                                                              • What are some of the places where you are drawing inspiration for Ryven?
                                                                                                                                                                                              • What are the kinds of projects that someone might build with Ryven?
                                                                                                                                                                                              • How are you using Ryven in your personal projects?
                                                                                                                                                                                              • How does structuring a project as a set of nodes in a flow graph influence the way that you think about how to design the solution to a problem?
                                                                                                                                                                                              • Can you describe how Ryven is implemented?
                                                                                                                                                                                                • How has the design or goals of the project changed or evolved since you first began working on it?
                                                                                                                                                                                                • For someone who wants to use Ryven to build a project can you describe their workflow?
                                                                                                                                                                                                • How do you handle things like code quality and tests for a Ryven project?
                                                                                                                                                                                                • How do you manage collaboration for a Ryven project? (e.g. version control)
                                                                                                                                                                                                • What are some of the most interesting, innovative, or unexpected ways that you have seen Ryven used?
                                                                                                                                                                                                • What are the most interesting, unexpected, or challenging lessons that you have learned while building Ryven?
                                                                                                                                                                                                • When is Ryven the wrong choice?
                                                                                                                                                                                                • What do you have planned for the future of the project?
                                                                                                                                                                                                • Keep In Touch
                                                                                                                                                                                                  • leon-thomm on GitHub
                                                                                                                                                                                                  • Picks
                                                                                                                                                                                                    • Tobias
                                                                                                                                                                                                      • PyInfra
                                                                                                                                                                                                      • Leon
                                                                                                                                                                                                        • A Universe from Nothing! by Lawrence M. Krauss
                                                                                                                                                                                                        • Links
                                                                                                                                                                                                          • Ryven
                                                                                                                                                                                                          • Switzerland
                                                                                                                                                                                                          • Qt C++ framework
                                                                                                                                                                                                          • Flow-based Scripting
                                                                                                                                                                                                          • Unreal Engine
                                                                                                                                                                                                          • Node-RED
                                                                                                                                                                                                          • IFTTT == IF This Then That
                                                                                                                                                                                                          • DAG == Directed Acyclic Graph
                                                                                                                                                                                                          • Mind Map
                                                                                                                                                                                                          • Literate Programming
                                                                                                                                                                                                          • nbdev
                                                                                                                                                                                                            • Podcast Episode
                                                                                                                                                                                                            • Org Mode
                                                                                                                                                                                                            • OpenCV
                                                                                                                                                                                                            • scikit-learn
                                                                                                                                                                                                            • Unreal Python
                                                                                                                                                                                                            • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                                              48 min
                                                                                                                                                                                                            • CrossHair: Your Automatic Pair Programmer
                                                                                                                                                                                                              Summary

                                                                                                                                                                                                              One of the perennial challenges in software engineering is to reduce the opportunity for bugs to creep into the system. Some of the tools in our arsenal that help in this endeavor include rich type systems, static analysis, writing tests, well defined interfaces, and linting. Phillip Schanely created the CrossHair project in order to add another ally in the fight against broken code. It sits somewhere between type systems, automated test generation, and static analysis. In this episode he explains his motivation for creating it, how he uses it for his own projects, and how to start incorporating it into yours. He also discusses the utility of writing contracts for your functions, and the differences between property based testing and SMT solvers. This is an interesting and informative conversation about some of the more nuanced aspects of how to write well-behaved programs.

                                                                                                                                                                                                              Announcements
                                                                                                                                                                                                              • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                                                                                              • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                                                                                              • Your host as usual is Tobias Macey and today I’m interviewing Phillip Schanely about CrossHair, an analysis tool for Python that blurs the line between testing and type systems.
                                                                                                                                                                                                              • Interview
                                                                                                                                                                                                                • Introductions
                                                                                                                                                                                                                • How did you get introduced to Python?
                                                                                                                                                                                                                • Can you start by giving an overview of what the CrossHair project is and how it got started?
                                                                                                                                                                                                                • What are some examples of the types of tools that CrossHair might augment or replace? (e.g. Pydantic, Doctest, etc.)
                                                                                                                                                                                                                • What are the categories of bugs or problems in your code that CrossHair can help to identify or discover?
                                                                                                                                                                                                                • Can you explain the benefits of implementing contracts in your software?
                                                                                                                                                                                                                • What are the limitations of contract implementations?
                                                                                                                                                                                                                • What are the available interfaces for creating and validating contracts?
                                                                                                                                                                                                                • How does the use of contracts in your software influence the overall design of the system?
                                                                                                                                                                                                                • How does CrossHair compare to type systems in terms of use cases or capabilities?
                                                                                                                                                                                                                • Can you describe how CrossHair is implemented?
                                                                                                                                                                                                                  • How has the design or goal of CrossHair changed or evolved since you first began working on it?
                                                                                                                                                                                                                  • What are some of the other projects that you have gained inspiration or ideas from while working on CrossHair? (inside or outside of the Python ecosystem)
                                                                                                                                                                                                                  • For someone who wants to get started with CrossHair, can you talk through the developer workflow?
                                                                                                                                                                                                                  • I noticed that you recently added support for validating the functional equivalency of different method implementations. What was the inspiration for that capability?
                                                                                                                                                                                                                    • What kinds of use cases does that enable?
                                                                                                                                                                                                                    • How much of CrossHair are you able to dogfood while developing CrossHair?
                                                                                                                                                                                                                    • What are some of the most interesting, innovative, or unexpected ways that you have seen CrossHair used?
                                                                                                                                                                                                                    • What are the most interesting, unexpected, or challenging lessons that you have learned while working on CrossHair?
                                                                                                                                                                                                                    • When is CrossHair the wrong choice?
                                                                                                                                                                                                                    • What do you have planned for the future of the project?
                                                                                                                                                                                                                    • Keep In Touch
                                                                                                                                                                                                                      • pschanely on GitHub
                                                                                                                                                                                                                      • @pschanely on Twitter
                                                                                                                                                                                                                      • LinkedIn
                                                                                                                                                                                                                      • Picks
                                                                                                                                                                                                                        • Tobias
                                                                                                                                                                                                                          • The War With Grandpa
                                                                                                                                                                                                                          • Phillip
                                                                                                                                                                                                                            • Hammock chairs! (affiliate link)
                                                                                                                                                                                                                            • Closing Announcements
                                                                                                                                                                                                                              • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                                                                                                                                                              • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                                                                                                                                                              • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                                                                                                                                                              • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                                                                                                                                                              • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                                                                                                                                                              • Links
                                                                                                                                                                                                                                • CrossHair
                                                                                                                                                                                                                                • NLTK == Natural Language ToolKit
                                                                                                                                                                                                                                • ACL2
                                                                                                                                                                                                                                • Liquid Haskell
                                                                                                                                                                                                                                • SMT Solver
                                                                                                                                                                                                                                • Doctest
                                                                                                                                                                                                                                • Property Based Testing
                                                                                                                                                                                                                                • Hypothesis
                                                                                                                                                                                                                                  • Podcast Episode
                                                                                                                                                                                                                                  • Halting Problem
                                                                                                                                                                                                                                  • Pydantic
                                                                                                                                                                                                                                  • PEP 316
                                                                                                                                                                                                                                  • icontract
                                                                                                                                                                                                                                  • Eiffel programming language
                                                                                                                                                                                                                                  • Design By Contract
                                                                                                                                                                                                                                  • Metamorphic Testing
                                                                                                                                                                                                                                  • Higher Order Types
                                                                                                                                                                                                                                  • Fuzz Testing
                                                                                                                                                                                                                                  • The Fuzzing Book
                                                                                                                                                                                                                                  • Python Audit Hooks
                                                                                                                                                                                                                                  • GitHub Scientist
                                                                                                                                                                                                                                    • Laboratory Python implementation of GitHub Scientist
                                                                                                                                                                                                                                      • Podcast Episode
                                                                                                                                                                                                                                      • Taint Analysis
                                                                                                                                                                                                                                      • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                                                                        43 min
                                                                                                                                                                                                                                      • Giving Your Data Science Projects And Teams A Home At DagsHub
                                                                                                                                                                                                                                        Summary

                                                                                                                                                                                                                                        Collaborating on software projects is largely a solved problem, with a variety of hosted or self-managed platforms to choose from. For data science projects, collaboration is still an open question. There are a number of projects that aim to bring collaboration to data science, but they are all solving a different aspect of the problem. Dean Pleban and Guy Smoilovsky created DagsHub to give individuals and teams a place to store and version their code, data, and models. In this episode they explain how DagsHub is designed to make it easier to create and track machine learning experiments, and serve as a way to promote collaboration on open source data science projects.

                                                                                                                                                                                                                                        Announcements
                                                                                                                                                                                                                                        • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                                                                                                                        • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                                                                                                                        • Your host as usual is Tobias Macey and today I’m interviewing Dean Pleban and Guy Smoilovsky about DagsHub, a platform to track experiments, and version data, models & pipelines for your data science and machine learning projects.
                                                                                                                                                                                                                                        • Interview
                                                                                                                                                                                                                                          • Introduction
                                                                                                                                                                                                                                          • How did you first get introduced to Python?
                                                                                                                                                                                                                                          • Can you start by describing what the DagsHub platform is and why you built it?
                                                                                                                                                                                                                                          • There are a number of projects and platforms that aim to support collaboration among data scientists. What are the distinguishing features of DagsHub and how does it compare to the other options in the ecosystem?
                                                                                                                                                                                                                                            • What are the biggest opportunities for improvement that you still see in the space of collaboration on data projects?
                                                                                                                                                                                                                                            • What do you see as the biggest points of friction for building experiments and managing source data collaboratively?
                                                                                                                                                                                                                                            • Can you describe how the DagsHub platform is implemented?
                                                                                                                                                                                                                                              • How have the design and goals of the system changed or evolved since you first began working on it?
                                                                                                                                                                                                                                              • How has your own understanding and practices of working on data science/ML projects changed changed?
                                                                                                                                                                                                                                              • GitHub has a number of convenience features beyond just storing a git repository. What are the capabilities that you are focusing on to add value to the data science workflow within DagsHub?
                                                                                                                                                                                                                                              • How are you approaching the bootstrapping problem of building a critical mass of users to be able to generate a beneficial network effect?
                                                                                                                                                                                                                                              • Are there any conventions that make it easier or more familiar for newcomers to a given project? (e.g. code layout, data labeling/tagging formats, etc.)
                                                                                                                                                                                                                                              • What are your recommendations for managing onwership/licensing of data assets in public projects?
                                                                                                                                                                                                                                              • What are some of the most interesting, innovative, or unexpected ways that you have seen DagsHub used?
                                                                                                                                                                                                                                              • What are the most interesting, unexpected, or challenging lessons that you have learned while building DagsHub?
                                                                                                                                                                                                                                              • When is DagsHub the wrong choice?
                                                                                                                                                                                                                                              • What do you have planned for the future of the platform and business?
                                                                                                                                                                                                                                              • Keep In Touch

                                                                                                                                                                                                                                                Follow us on Twitter or LinkedIn, join our Discord, sign up to DAGsHub

                                                                                                                                                                                                                                                • @DeanPlbn
                                                                                                                                                                                                                                                • @Guy_T_Sky
                                                                                                                                                                                                                                                • @TheRealDAGsHub
                                                                                                                                                                                                                                                • DagsHub Discord
                                                                                                                                                                                                                                                • Picks
                                                                                                                                                                                                                                                  • Tobias
                                                                                                                                                                                                                                                    • The Remarkable Journey of Prince Jen by Lloyd Alexander
                                                                                                                                                                                                                                                    • Dean
                                                                                                                                                                                                                                                      • Quantum Computing Since Democritus by Scott Aaronson
                                                                                                                                                                                                                                                      • The Expanse TV Series
                                                                                                                                                                                                                                                      • Guy
                                                                                                                                                                                                                                                        • Try to consume only the very best of available content, not the things that are coming out right now.
                                                                                                                                                                                                                                                        • Applies to textbooks, TV shows, movies
                                                                                                                                                                                                                                                        • Less Wrong blog
                                                                                                                                                                                                                                                        • Slate Star Codex \ Astral Codex Ten
                                                                                                                                                                                                                                                        • Avatar: The Last Airbender
                                                                                                                                                                                                                                                        • 3 Blue 1 Brown YouTube Channel
                                                                                                                                                                                                                                                        • Haskell
                                                                                                                                                                                                                                                        • Clojure
                                                                                                                                                                                                                                                        • Closing Announcements
                                                                                                                                                                                                                                                          • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                                                                                                                                                                                          • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                                                                                                                                                                                          • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                                                                                                                                                                                          • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                                                                                                                                                                                          • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                                                                                                                                                                                          • Links
                                                                                                                                                                                                                                                            • DagsHub
                                                                                                                                                                                                                                                            • DVC
                                                                                                                                                                                                                                                              • Podcast Episode
                                                                                                                                                                                                                                                              • Data Science Cookiecutter
                                                                                                                                                                                                                                                              • Jupyter Notebooks
                                                                                                                                                                                                                                                              • Papers With Code
                                                                                                                                                                                                                                                              • Connected Papers
                                                                                                                                                                                                                                                              • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                                                                                                1 hr
                                                                                                                                                                                                                                                              • Exploring Literate Programming For Python Projects With nbdev
                                                                                                                                                                                                                                                                Summary

                                                                                                                                                                                                                                                                Creating well designed software is largely a problem of context and understanding. The majority of programming environments rely on documentation, tests, and code being logically separated despite being contextually linked. In order to weave all of these concerns together there have been many efforts to create a literate programming environment. In this episode Jeremy Howard of fast.ai fame and Hamel Husain of GitHub share the work they have done on nbdev. The explain how it allows you to weave together documentation, code, and tests in the same context so that it is more natural to explore and build understanding when working on a project. It is built on top of the Jupyter environment, allowing you to take advantage of the other great elements of that ecosystem, and it provides a number of excellent out of the box features to reduce the friction in adopting good project hygiene, including continuous integration and well designed documentation sites. Regardless of whether you have been programming for 5 days, 5 years, or 5 decades you should take a look at nbdev to experience a different way of looking at your code.

                                                                                                                                                                                                                                                                Announcements
                                                                                                                                                                                                                                                                • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                                                                                                                                                • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                                                                                                                                                • Your host as usual is Tobias Macey and today I’m interviewing Jeremy Howard and Hamel Husain about nbdev, a library for turning Jupyter notebooks into Python libraries.
                                                                                                                                                                                                                                                                • Interview
                                                                                                                                                                                                                                                                  • Introductions
                                                                                                                                                                                                                                                                  • How did you get introduced to Python?
                                                                                                                                                                                                                                                                  • Can you start by describing what nbdev is and the goals of the project?
                                                                                                                                                                                                                                                                    • What is the story behind how and why it got started?
                                                                                                                                                                                                                                                                    • Who is the target audience for the nbdev project?
                                                                                                                                                                                                                                                                      • How does that focus influence the features and design of nbdev?
                                                                                                                                                                                                                                                                      • What do you see as the primary challenges of building and collaborating on projects written in notebooks?
                                                                                                                                                                                                                                                                      • What are some of the other projects that are working to simplify or improve the experience of using notebooks?
                                                                                                                                                                                                                                                                        • How does nbdev compare to or complement those other tools?
                                                                                                                                                                                                                                                                        • Can you describe how nbdev is implemented?
                                                                                                                                                                                                                                                                          • How has the design and goals of the project evolved since it was first started?
                                                                                                                                                                                                                                                                          • What is the workflow of someone who is using nbdev?
                                                                                                                                                                                                                                                                            • At what point in the lifecycle of a notebook oriented project should someone start integrating nbdev?
                                                                                                                                                                                                                                                                            • How does nbdev scale when working on a project that spans multiple notebooks/modules?
                                                                                                                                                                                                                                                                            • How does working in a notebook environment change your approach to software development and project design?
                                                                                                                                                                                                                                                                            • What are the most interesting, innovative, or unexpected ways that you have seen nbdev used?
                                                                                                                                                                                                                                                                            • What are the most interesting, unexpected, or challenging lessons that you have learned from working on nbdev?
                                                                                                                                                                                                                                                                            • When is nbdev the wrong choice?
                                                                                                                                                                                                                                                                            • What do you have planned for the future of the project?
                                                                                                                                                                                                                                                                            • Keep In Touch
                                                                                                                                                                                                                                                                              • Jeremy
                                                                                                                                                                                                                                                                                • LinkedIn
                                                                                                                                                                                                                                                                                • @jeremyphoward on Twitter
                                                                                                                                                                                                                                                                                • jph00 on GitHub
                                                                                                                                                                                                                                                                                • Hamel
                                                                                                                                                                                                                                                                                  • hamelsmu on GitHub
                                                                                                                                                                                                                                                                                  • Website
                                                                                                                                                                                                                                                                                  • @HamelHusain on Twitter
                                                                                                                                                                                                                                                                                  • LinkedIn
                                                                                                                                                                                                                                                                                  • Picks
                                                                                                                                                                                                                                                                                    • Tobias
                                                                                                                                                                                                                                                                                      • Rivals! Frenemies Who Changed The World
                                                                                                                                                                                                                                                                                      • Jeremy
                                                                                                                                                                                                                                                                                        • Chess
                                                                                                                                                                                                                                                                                        • Hamel
                                                                                                                                                                                                                                                                                          • Moonwalking With Einstein by Joshua Foer (affiliate link)
                                                                                                                                                                                                                                                                                          • Closing Announcements
                                                                                                                                                                                                                                                                                            • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                                                                                                                                                                                                                            • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                                                                                                                                                                                                                            • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                                                                                                                                                                                                                            • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                                                                                                                                                                                                                            • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                                                                                                                                                                                                                            • Links
                                                                                                                                                                                                                                                                                              • nbdev
                                                                                                                                                                                                                                                                                              • fast.ai
                                                                                                                                                                                                                                                                                              • GitHub
                                                                                                                                                                                                                                                                                              • Perl
                                                                                                                                                                                                                                                                                              • Fastmail
                                                                                                                                                                                                                                                                                              • R Studio
                                                                                                                                                                                                                                                                                              • R Markdown
                                                                                                                                                                                                                                                                                              • Literate Programming
                                                                                                                                                                                                                                                                                              • fastcore
                                                                                                                                                                                                                                                                                              • JupyterLab
                                                                                                                                                                                                                                                                                              • nteract
                                                                                                                                                                                                                                                                                              • Jupyter Voilà
                                                                                                                                                                                                                                                                                              • GitHub Actions
                                                                                                                                                                                                                                                                                              • Sphinx
                                                                                                                                                                                                                                                                                              • Google Colab
                                                                                                                                                                                                                                                                                              • Working In Public by Nadia Eghbal (affiliate link)
                                                                                                                                                                                                                                                                                              • Jekyll
                                                                                                                                                                                                                                                                                              • Hugo
                                                                                                                                                                                                                                                                                              • Cython
                                                                                                                                                                                                                                                                                                • Podcast Episode
                                                                                                                                                                                                                                                                                                • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                                                                                                                                  52 min
                                                                                                                                                                                                                                                                                                • Making The Sans I/O Ideal A Reality For The Websockets Library
                                                                                                                                                                                                                                                                                                  Summary

                                                                                                                                                                                                                                                                                                  Working with network protocols is a common need for software projects, particularly in the current age of the internet. As a result, there are a multitude of libraries that provide interfaces to the various protocols. The problem is that implementing a network protocol properly and handling all of the edge cases is hard, and most of the available libraries are bound to a particular I/O paradigm which prevents them from being widely reused. To address this shortcoming there has been a movement towards "sans I/O" implementations that provide the business logic for a given protocol while remaining agnostic to whether you are using async I/O, Twisted, threads, etc. In this episode Aymeric Augustin shares his experience of refactoring his popular websockets library to be I/O agnostic, including the challenges involved in how to design the interfaces, the benefits it provides in simplifying the tests, and the work needed to add back support for async I/O and other runtimes. This is a great conversation about what is involved in making an ideal a reality.

                                                                                                                                                                                                                                                                                                  Announcements
                                                                                                                                                                                                                                                                                                  • Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
                                                                                                                                                                                                                                                                                                  • When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
                                                                                                                                                                                                                                                                                                  • Your host as usual is Tobias Macey and today I’m interviewing Aymeric Augustin about his work on the websockets library and the work involved in making it sans I/O
                                                                                                                                                                                                                                                                                                  • Interview
                                                                                                                                                                                                                                                                                                    • Introductions
                                                                                                                                                                                                                                                                                                    • How did you get introduced to Python?
                                                                                                                                                                                                                                                                                                    • Can you start by giving an overview of your work on the websockets library and how the project got started?
                                                                                                                                                                                                                                                                                                    • What does "sans I/O" mean and what are the goals associated with it?
                                                                                                                                                                                                                                                                                                    • Can you share the history of your work on the websockets project?
                                                                                                                                                                                                                                                                                                      • What was your motivation for starting down the path of rearchitecting a project that is already production ready?
                                                                                                                                                                                                                                                                                                      • Can you talk through how the websockets library is architected currently?
                                                                                                                                                                                                                                                                                                        • How has the design of the project evolved since you first began working on it?
                                                                                                                                                                                                                                                                                                        • At a high level, what were the changes required to make it functionally sans i/o?
                                                                                                                                                                                                                                                                                                        • What do you see as the primary challenges associated with making network related libraries sans i/o?
                                                                                                                                                                                                                                                                                                        • In your experience of porting websockets to be purely protocol oriented, what are the technical and design challenges that you faced?
                                                                                                                                                                                                                                                                                                        • One of the goals of the Sans I/O approach is to support reusability and composability of network protocol implementations. What has your experience been as to the viability of those goals in practice?
                                                                                                                                                                                                                                                                                                        • What is your current perspective on the cost/benefit of the sans i/o conversion?
                                                                                                                                                                                                                                                                                                        • Who are the primary consumers of the websockets library?
                                                                                                                                                                                                                                                                                                          • How do you foresee the target audience changing once you have completed extracting the protocol logic?
                                                                                                                                                                                                                                                                                                          • What are some of the most interesting, innovative, or unexpected ways that you have seen the websockets project used?
                                                                                                                                                                                                                                                                                                          • What are the most interesting, unexpected, or challenging lessons that you have learned while working on the websockets project and sans i/o conversion?
                                                                                                                                                                                                                                                                                                          • What do you have planned for the future of the project?
                                                                                                                                                                                                                                                                                                          • Keep In Touch
                                                                                                                                                                                                                                                                                                            • LinkedIn
                                                                                                                                                                                                                                                                                                            • @aymericaugustin on Twitter
                                                                                                                                                                                                                                                                                                            • Website
                                                                                                                                                                                                                                                                                                            • Picks
                                                                                                                                                                                                                                                                                                              • Tobias
                                                                                                                                                                                                                                                                                                                • Jigsaw Puzzles
                                                                                                                                                                                                                                                                                                                • Aymeric
                                                                                                                                                                                                                                                                                                                  • Inside Qonto interview
                                                                                                                                                                                                                                                                                                                  • Closing Announcements
                                                                                                                                                                                                                                                                                                                    • Thank you for listening! Don’t forget to check out our other show, the Data Engineering Podcast for the latest on modern data management.
                                                                                                                                                                                                                                                                                                                    • Visit the site to subscribe to the show, sign up for the mailing list, and read the show notes.
                                                                                                                                                                                                                                                                                                                    • If you’ve learned something or tried out a project from the show then tell us about it! Email [email protected]) with your story.
                                                                                                                                                                                                                                                                                                                    • To help other people find the show please leave a review on iTunes and tell your friends and co-workers
                                                                                                                                                                                                                                                                                                                    • Join the community in the new Zulip chat workspace at pythonpodcast.com/chat
                                                                                                                                                                                                                                                                                                                    • Links
                                                                                                                                                                                                                                                                                                                      • Sans I/O: When The Rubber Meets The Road
                                                                                                                                                                                                                                                                                                                      • Websockets library
                                                                                                                                                                                                                                                                                                                      • Websockets Protocol
                                                                                                                                                                                                                                                                                                                      • Qonto
                                                                                                                                                                                                                                                                                                                      • Tulip
                                                                                                                                                                                                                                                                                                                      • Asyncio
                                                                                                                                                                                                                                                                                                                      • CERN Particle Accelerator
                                                                                                                                                                                                                                                                                                                      • Sans I/O
                                                                                                                                                                                                                                                                                                                      • Cory Benfield
                                                                                                                                                                                                                                                                                                                      • HTTP/2
                                                                                                                                                                                                                                                                                                                      • Twisted
                                                                                                                                                                                                                                                                                                                      • Curio
                                                                                                                                                                                                                                                                                                                      • Trio
                                                                                                                                                                                                                                                                                                                      • Inversion of Control
                                                                                                                                                                                                                                                                                                                      • ohneio helper library for implementing sans I/O network protocols
                                                                                                                                                                                                                                                                                                                      • SOCKS Proxy
                                                                                                                                                                                                                                                                                                                      • Sanic
                                                                                                                                                                                                                                                                                                                      • The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

                                                                                                                                                                                                                                                                                                                        39 min

                                                                                                                                                                                                                                                                                                                      About The Python Podcast.__init__

                                                                                                                                                                                                                                                                                                                      From the publisher's feed

                                                                                                                                                                                                                                                                                                                      The podcast about Python and the people who make it great

                                                                                                                                                                                                                                                                                                                      More shows like The Python Podcast.__init__

                                                                                                                                                                                                                                                                                                                      Freakonomics Radio by Freakonomics Radio + Stitcher

                                                                                                                                                                                                                                                                                                                      Freakonomics Radio

                                                                                                                                                                                                                                                                                                                      32,053 Listeners

                                                                                                                                                                                                                                                                                                                      Odd Lots by Bloomberg

                                                                                                                                                                                                                                                                                                                      Odd Lots

                                                                                                                                                                                                                                                                                                                      1,977 Listeners

                                                                                                                                                                                                                                                                                                                      The Changelog: Software Development, Open Source by Changelog Media

                                                                                                                                                                                                                                                                                                                      The Changelog: Software Development, Open Source

                                                                                                                                                                                                                                                                                                                      286 Listeners

                                                                                                                                                                                                                                                                                                                      Data Skeptic by Kyle Polich

                                                                                                                                                                                                                                                                                                                      Data Skeptic

                                                                                                                                                                                                                                                                                                                      476 Listeners

                                                                                                                                                                                                                                                                                                                      Software Engineering Daily by Software Engineering Daily

                                                                                                                                                                                                                                                                                                                      Software Engineering Daily

                                                                                                                                                                                                                                                                                                                      623 Listeners

                                                                                                                                                                                                                                                                                                                      Talk Python To Me by Michael Kennedy

                                                                                                                                                                                                                                                                                                                      Talk Python To Me

                                                                                                                                                                                                                                                                                                                      582 Listeners

                                                                                                                                                                                                                                                                                                                      Super Data Science: ML & AI Podcast with Jon Krohn by Jon Krohn

                                                                                                                                                                                                                                                                                                                      Super Data Science: ML & AI Podcast with Jon Krohn

                                                                                                                                                                                                                                                                                                                      305 Listeners

                                                                                                                                                                                                                                                                                                                      Python Bytes by Michael Kennedy and Calvin Hendryx-Parker

                                                                                                                                                                                                                                                                                                                      Python Bytes

                                                                                                                                                                                                                                                                                                                      213 Listeners

                                                                                                                                                                                                                                                                                                                      Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                                                                                                                                                                                                                                                                                                                      Syntax - Tasty Web Development Treats

                                                                                                                                                                                                                                                                                                                      985 Listeners

                                                                                                                                                                                                                                                                                                                      DataFramed by DataCamp

                                                                                                                                                                                                                                                                                                                      DataFramed

                                                                                                                                                                                                                                                                                                                      265 Listeners

                                                                                                                                                                                                                                                                                                                      Practical AI by Daniel Whitenack and Chris Benson

                                                                                                                                                                                                                                                                                                                      Practical AI

                                                                                                                                                                                                                                                                                                                      202 Listeners

                                                                                                                                                                                                                                                                                                                      The Intelligence from The Economist by The Economist

                                                                                                                                                                                                                                                                                                                      The Intelligence from The Economist

                                                                                                                                                                                                                                                                                                                      2,543 Listeners

                                                                                                                                                                                                                                                                                                                      The Real Python Podcast by Real Python

                                                                                                                                                                                                                                                                                                                      The Real Python Podcast

                                                                                                                                                                                                                                                                                                                      139 Listeners

                                                                                                                                                                                                                                                                                                                      声动早咖啡 by 声动活泼

                                                                                                                                                                                                                                                                                                                      声动早咖啡

                                                                                                                                                                                                                                                                                                                      305 Listeners

                                                                                                                                                                                                                                                                                                                      The Foreign Affairs Interview by Foreign Affairs Magazine

                                                                                                                                                                                                                                                                                                                      The Foreign Affairs Interview

                                                                                                                                                                                                                                                                                                                      474 Listeners