Winamp Logo
The Python Podcast.__init__ Cover
The Python Podcast.__init__ Profile

The Python Podcast.__init__

English, Technology, 1 season, 389 episodes, 6 days, 8 hours, 9 minutes
About
The weekly podcast about the Python programming language, its ecosystem, and its community. Tune in for engaging, educational, and technical discussions about the broad range of industries, individuals, and applications that rely on Python.
Episode Artwork

Update Your Model's View Of The World In Real Time With Streaming Machine Learning Using River

Preamble This is a cross-over episode from our new show The Machine Learning Podcast, the show about going from idea to production with machine learning. Summary The majority of machine learning projects that you read about or work on are built around batch processes. The model is trained, and then validated, and then deployed, with each step being a discrete and isolated task. Unfortunately, the real world is rarely static, leading to concept drift and model failures. River is a framework for building streaming machine learning projects that can constantly adapt to new information. In this episode Max Halford explains how the project works, why you might (or might not) want to consider streaming ML, and how to get started building with River. Announcements Hello and welcome to the Machine Learning Podcast, the podcast about machine learning and how to bring it from idea to delivery. Building good ML models is hard, but testing them properly is even harder. At Deepchecks, they built an open-source testing framework that follows best practices, ensuring that your models behave as expected. Get started quickly using their built-in library of checks for testing and validating your model’s behavior and performance, and extend it to meet your specific needs as your model evolves. Accelerate your machine learning projects by building trust in your models and automating the testing that you used to do manually. Go to themachinelearningpodcast.com/deepchecks today to get started! Your host is Tobias Macey and today I’m interviewing Max Halford about River, a Python toolkit for streaming and online machine learning Interview Introduction How did you get involved in machine learning? Can you describe what River is and the story behind it? What is "online" machine learning? What are the practical differences with batch ML? Why is batch learning so predominant? What are the cases where someone would want/need to use online or streaming ML? The prevailing pattern for batch ML model lifecycles is to train, deploy, monitor, repeat. What does the ongoing maintenance for a streaming ML model look like? Concept drift is typically due to a discrepancy between the data used to train a model and the actual data being observed. How does the use of online learning affect the incidence of drift? Can you describe how the River framework is implemented? How have the design and goals of the project changed since you started working on it? How do the internal representations of the model differ from batch learning to allow for incremental updates to the model state? In the documentation you note the use of Python dictionaries for state management and the flexibility offered by that choice. What are the benefits and potential pitfalls of that decision? Can you describe the process of using River to design, implement, and validate a streaming ML model? What are the operational requirements for deploying and serving the model once it has been developed? What are some of the challenges that users of River might run into if they are coming from a batch learning background? What are the most interesting, innovative, or unexpected ways that you have seen River used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on River? When is River the wrong choice? What do you have planned for the future of River? Contact Info Email @halford_max on Twitter MaxHalford on GitHub Parting Question From your perspective, what is the biggest barrier to adoption of machine learning today? Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. Podcast.__init__ covers the Python language, its community, and the innovative ways it is being used. 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 Links River scikit-multiflow Federated Machine Learning Hogwild! Google Paper Chip Huyen concept drift blog post Dan Crenshaw Berkeley Clipper MLOps Robustness Principle NY Taxi Dataset RiverTorch River Public Roadmap Beaver tool for deploying online models Prodigy ML human in the loop labeling The intro and outro music is from Hitman’s Lovesong feat. Paola Graziano by The Freak Fandango Orchestra/CC BY-SA 3.0
12/12/20221 hour, 16 minutes, 22 seconds
Episode Artwork

Declarative Machine Learning For High Performance Deep Learning Models With Predibase

Preamble This is a cross-over episode from our new show The Machine Learning Podcast, the show about going from idea to production with machine learning. Summary Deep learning is a revolutionary category of machine learning that accelerates our ability to build powerful inference models. Along with that power comes a great deal of complexity in determining what neural architectures are best suited to a given task, engineering features, scaling computation, etc. Predibase is building on the successes of the Ludwig framework for declarative deep learning and Horovod for horizontally distributing model training. In this episode CTO and co-founder of Predibase, Travis Addair, explains how they are reducing the burden of model development even further with their managed service for declarative and low-code ML and how they are integrating with the growing ecosystem of solutions for the full ML lifecycle. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 is Tobias Macey and today I’m interviewing Travis Addair about Predibase, a low-code platform for building ML models in a declarative format Interview Introduction How did you get involved in machine learning? Can you describe what Predibase is and the story behind it? Who is your target audience and how does that focus influence your user experience and feature development priorities? How would you describe the semantic differences between your chosen terminology of "declarative ML" and the "autoML" nomenclature that many projects and products have adopted? Another platform that launched recently with a promise of "declarative ML" is Continual. How would you characterize your relative strengths? Can you describe how the Predibase platform is implemented? How have the design and goals of the product changed as you worked through the initial implementation and started working with early customers? The operational aspects of the ML lifecycle are still fairly nascent. How have you thought about the boundaries for your product to avoid getting drawn into scope creep while providing a happy path to delivery? Ludwig is a core element of your platform. What are the other capabilities that you are layering around and on top of it to build a differentiated product? In addition to the existing interfaces for Ludwig you created a new language in the form of PQL. What was the motivation for that decision? How did you approach the semantic and syntactic design of the dialect? What is your vision for PQL in the space of "declarative ML" that you are working to define? Can you describe the available workflows for an individual or team that is using Predibase for prototyping and validating an ML model? Once a model has been deemed satisfactory, what is the path to production? How are you approaching governance and sustainability of Ludwig and Horovod while balancing your reliance on them in Predibase? What are some of the notable investments/improvements that you have made in Ludwig during your work of building Predibase? What are the most interesting, innovative, or unexpected ways that you have seen Predibase used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Predibase? When is Predibase the wrong choice? What do you have planned for the future of Predibase? Contact Info LinkedIn tgaddair on GitHub @travisaddair on Twitter Parting Question From your perspective, what is the biggest barrier to adoption of machine learning today? Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Predibase Horovod Ludwig Podcast.__init__ Episode Support Vector Machine Hadoop Tensorflow Uber Michaelangelo AutoML Spark ML Lib Deep Learning PyTorch Continual Data Engineering Podcast Episode Overton Kubernetes Ray Nvidia Triton Whylogs Data Engineering Podcast Episode Weights and Biases MLFlow Comet Confusion Matrices dbt Data Engineering Podcast Episode Torchscript Self-supervised Learning The intro and outro music is from Hitman’s Lovesong feat. Paola Graziano by The Freak Fandango Orchestra/CC BY-SA 3.0
12/5/202259 minutes, 22 seconds
Episode Artwork

Build Better Machine Learning Models With Confidence By Adding Validation With Deepchecks

Preamble This is a cross-over episode from our new show The Machine Learning Podcast, the show about going from idea to production with machine learning. Summary Machine learning has the potential to transform industries and revolutionize business capabilities, but only if the models are reliable and robust. Because of the fundamental probabilistic nature of machine learning techniques it can be challenging to test and validate the generated models. The team at Deepchecks understands the widespread need to easily and repeatably check and verify the outputs of machine learning models and the complexity involved in making it a reality. In this episode Shir Chorev and Philip Tannor explain how they are addressing the problem with their open source deepchecks library and how you can start using it today to build trust in your machine learning applications. Announcements Hello and welcome to the Machine Learning Podcast, the podcast about machine learning and how to bring it from idea to delivery. Do you wish you could use artificial intelligence to drive your business the way Big Tech does, but don’t have a money printer? Graft is a cloud-native platform that aims to make the AI of the 1% accessible to the 99%. Wield the most advanced techniques for unlocking the value of data, including text, images, video, audio, and graphs. No machine learning skills required, no team to hire, and no infrastructure to build or maintain. For more information on Graft or to schedule a demo, visit themachinelearningpodcast.com/graft today and tell them Tobias sent you. Predibase is a low-code ML platform without low-code limits. Built on top of our open source foundations of Ludwig and Horovod, our platform allows you to train state-of-the-art ML and deep learning models on your datasets at scale. Our platform works on text, images, tabular, audio and multi-modal data using our novel compositional model architecture. We allow users to operationalize models on top of the modern data stack, through REST and PQL – an extension of SQL that puts predictive power in the hands of data practitioners. Go to themachinelearningpodcast.com/predibase today to learn more and try it out! Data powers machine learning, but poor data quality is the largest impediment to effective ML today. Galileo is a collaborative data bench for data scientists building Natural Language Processing (NLP) models to programmatically inspect, fix and track their data across the ML workflow (pre-training, post-training and post-production) – no more excel sheets or ad-hoc python scripts. Get meaningful gains in your model performance fast, dramatically reduce data labeling and procurement costs, while seeing 10x faster ML iterations. Galileo is offering listeners a free 30 day trial and a 30% discount on the product there after. This offer is available until Aug 31, so go to themachinelearningpodcast.com/galileo and request a demo today! Your host is Tobias Macey and today I’m interviewing Shir Chorev and Philip Tannor about Deepchecks, a Python package for comprehensively validating your machine learning models and data with minimal effort. Interview Introduction How did you get involved in machine learning? Can you describe what Deepchecks is and the story behind it? Who is the target audience for the project? What are the biggest challenges that these users face in bringing ML models from concept to production and how does DeepChecks address those problems? In the absence of DeepChecks how are practitioners solving the problems of model validation and comparison across iteratiosn? What are some of the other tools in this ecosystem and what are the differentiating features of DeepChecks? What are some examples of the kinds of tests that are useful for understanding the "correctness" of models? What are the methods by which ML engineers/data scientists/domain experts can define what "correctness" means in a given model or subject area? In software engineering the categories of tests are tiered as unit -> integration -> end-to-end. What are the relevant categories of tests that need to be built for validating the behavior of machine learning models? How do model monitoring utilities overlap with the kinds of tests that you are building with deepchecks? Can you describe how the DeepChecks package is implemented? How have the design and goals of the project changed or evolved from when you started working on it? What are the assumptions that you have built up from your own experiences that have been challenged by your early users and design partners? Can you describe the workflow for an individual or team using DeepChecks as part of their model training and deployment lifecycle? Test engineering is a deep discipline in its own right. How have you approached the user experience and API design to reduce the overhead for ML practitioners to adopt good practices? What are the interfaces available for creating reusable tests and composing test suites together? What are the additional services/capabilities that you are providing in your commercial offering? How are you managing the governance and sustainability of the OSS project and balancing that against the needs/priorities of the business? What are the most interesting, innovative, or unexpected ways that you have seen DeepChecks used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on DeepChecks? When is DeepChecks the wrong choice? What do you have planned for the future of DeepChecks? Contact Info Shir LinkedIn shir22 on GitHub Philip LinkedIn @philiptannor on Twitter Parting Question From your perspective, what is the biggest barrier to adoption of machine learning today? Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. Podcast.__init__ covers the Python language, its community, and the innovative ways it is being used. 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 Links DeepChecks Random Forest Talpiot Program SHAP Podcast.__init__ Episode Airflow Great Expectations Data Engineering Podcast Episode The intro and outro music is from Hitman’s Lovesong feat. Paola Graziano by The Freak Fandango Orchestra/CC BY-SA 3.0
11/28/202247 minutes, 36 seconds
Episode Artwork

Build A Full Stack ML Powered App In An Afternoon With Baseten

Preamble This is a cross-over episode from our new show The Machine Learning Podcast, the show about going from idea to production with machine learning. Summary Building an ML model is getting easier than ever, but it is still a challenge to get that model in front of the people that you built it for. Baseten is a platform that helps you quickly generate a full stack application powered by your model. You can easily create a web interface and APIs powered by the model you created, or a pre-trained model from their library. In this episode Tuhin Srivastava, co-founder of Basten, explains how the platform empowers data scientists and ML engineers to get their work in production without having to negotiate for help from their application development colleagues. Announcements Hello and welcome to the Machine Learning Podcast, the podcast about machine learning and how to bring it from idea to delivery. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 is Tobias Macey and today I’m interviewing Tuhin Srivastava about Baseten, an ML Application Builder for data science and machine learning teams Interview Introduction How did you get involved in machine learning? Can you describe what Baseten is and the story behind it? Who are the target users for Baseten and what problems are you solving for them? What are some of the typical technical requirements for an application that is powered by a machine learning model? In the absence of Baseten, what are some of the common utilities/patterns that teams might rely on? What kinds of challenges do teams run into when serving a model in the context of an application? There are a number of projects that aim to reduce the overhead of turning a model into a usable product (e.g. Streamlit, Hex, etc.). What is your assessment of the current ecosystem for lowering the barrier to product development for ML and data science teams? Can you describe how the Baseten platform is designed? How have the design and goals of the project changed or evolved since you started working on it? How do you handle sandboxing of arbitrary user-managed code to ensure security and stability of the platform? How did you approach the system design to allow for mapping application development paradigms into a structure that was accessible to ML professionals? Can you describe the workflow for building an ML powered application? What types of models do you support? (e.g. NLP, computer vision, timeseries, deep neural nets vs. linear regression, etc.) How do the monitoring requirements shift for these different model types? What other challenges are presented by these different model types? What are the limitations in size/complexity/operational requirements that you have to impose to ensure a stable platform? What is the process for deploying model updates? For organizations that are relying on Baseten as a prototyping platform, what are the options for taking a successful application and handing it off to a product team for further customization? What are the most interesting, innovative, or unexpected ways that you have seen Baseten used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Baseten? When is Baseten the wrong choice? What do you have planned for the future of Baseten? Contact Info @tuhinone on Twitter LinkedIn Parting Question From your perspective, what is the biggest barrier to adoption of machine learning today? Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. Podcast.__init__ covers the Python language, its community, and the innovative ways it is being used. 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 Links Baseten Gumroad scikit-learn Tensorflow Keras Streamlit Podcast.__init__ Episode Retool Hex Podcast.__init__ Episode Kubernetes React Monaco Huggingface Airtable Dall-E 2 GPT-3 Weights and Biases The intro and outro music is from Hitman’s Lovesong feat. Paola Graziano by The Freak Fandango Orchestra/CC BY-SA 3.0
11/21/202245 minutes, 22 seconds
Episode Artwork

Skip Straight To The Fun Part Of Your Project With PyScaffold

Summary Starting a new project is always exciting and full of possibility, until you have to set up all of the repetitive boilerplate. Fortunately there are useful project templates that eliminate that drudgery. PyScaffold goes above and beyond simple template repositories, and gives you a toolkit for different application types that are packed with best practices to make your life easier. In this episode Florian Wilhelm shares the story behind PyScaffold, how the templates are designed to reduce friction when getting a new project off the ground, and how you can extend it to suit your needs. Stop wasting time with boring boilerplate and get straight to the fun part with PyScaffold! 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Florian Wilhelm about PyScaffold, a Python project template generator with batteries included Interview Introductions How did you get introduced to Python? Can you describe what PyScaffold is and the story behind it? What is the main goal of the project? There are a huge number of templates and starter projects available (both in Python and other languages). What are the aspects of PyScaffold that might encourage someone to adopt it? What are the different types/categories of applications that you are focused on supporting with the scaffolding? For each category, what is your selection process for which dependencies to include? How do you approach the work of keeping the various components up to date with community "best practices"? Can you describe how PyScaffold is implemented? How have the design and goals of the project changed since you first started it? What is the user experience for someone bootstrapping a project with PyScaffold? How can you adapt an existing project into the structure of a pyscaffold template? Are there any facilities for updating a project started with PyScaffold to include patches/changes in the source template? What are the most interesting, innovative, or unexpected ways that you have seen PyScaffold used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on PyScaffold? When is PyScaffold the wrong choice? What do you have planned for the future of PyScaffold? Keep In Touch Website LinkedIn FlorianWilhelm on GitHub @florianwilhelm on Twitter Picks Tobias Daredevil TV series Florian The Peripheral Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links PyScaffold Innovex SAP Cookiecutter Pytest Podcast Episode Sphinx pre-commit Podcast Episode Black Flake8 Podcast Episode Poetry Setuptools mkdocs ReStructured Text Markdown Setuptools-SCM Hatch Flit Versioneer Gource git visualization MyPy Compiler Rust Cargo The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/7/202257 minutes, 46 seconds
Episode Artwork

Add Configuration Best Practices To Your Application In An Afternoon With Dynaconf

Summary Application configuration is a deceptively complex problem. Everyone who is building a project that gets used more than once will end up needing to add configuration to control aspects of behavior or manage connections to other systems and services. At first glance it seems simple, but can quickly become unwieldy. Bruno Rocha created Dynaconf in an effort to provide a simple interface with powerful capabilities for managing settings across environments with a set of strong opinions. In this episode he shares the story behind the project, how its design allows for adapting to various applications, and how you can start using it today for your own 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Bruno Rocha about Dynaconf, a powerful and flexible framework for managing your application’s configuration settings Interview Introductions How did you get introduced to Python? Can you describe what Dynaconf is and the story behind it? What are your main goals for Dynaconf? What kinds of projects (e.g. web, devops, ML, etc.) are you focused on supporting with Dynaconf? Settings management is a deceptively complex and detailed aspect of software engineering, with a lot of conflicting opinions about the "right way". What are the design philosophies that you lean on for Dynaconf? Many engineers end up building their own frameworks for managing settings as their use cases and environments get increasingly complicated. What are some of the ways that those efforts can go wrong or become unmaintainable? Can you describe how Dynaconf is implemented? How have the design and goals of the project evolved since you first started it? What is the workflow for getting started with Dynaconf on a new project? How does the usage scale with the complexity of the host project? What are some strategies that you recommend for integrating Dynaconf into an existing project that already has complex requirements for settings across multiple environments? Secrets management is one of the most frequently under- or over-engineered aspects of application configuration. What are some of the ways that you have worked to strike a balance of making the "right way" easy? What are some of the more advanced or under-utilized capabilities of Dynaconf? What are the most interesting, innovative, or unexpected ways that you have seen Dynaconf used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Dynaconf? When is Dynaconf the wrong choice? What do you have planned for the future of Dynaconf? Keep In Touch rochacbruno on GitHub @rochacbruno on Twitter Website LinkedIn Picks Tobias SOPS Bruno Severance tv series Learn Rust Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Dynaconf Dynaconf GitHub Org Ansible Bash Perl 12 Factor Applications TOML Hashicorp Vault Pydantic Airflow Hydroconf The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/30/20221 hour, 3 minutes, 59 seconds
Episode Artwork

Take A Tour Of The Hidden Language Of Hardware And How It Powers Your Code

Summary Software is eating the world, but that code has to have hardware to execute the instructions. Most people, and many software engineers, don’t have a proper understanding of how that hardware functions. Charles Petzold wrote the book "Code: The Hidden Language of Computer Hardware and Software" to make this a less opaque subject. In this episode he discusses what motivated him to revise that work in the second edition and the additional details that he packed in to explore the functioning of the CPU. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Charles Petzold about his work on the second edition of Code: The Hidden Language of Computer Hardware and Software Interview Introductions How did you get introduced to Python? Can you start by describing the focus and goal of "Code" and the story behind it? Who is the target audience for the book? The sequencing of the topics parallels the curriculum of a computer engineering course of study. Why do you think that it is useful/important for a general audience to understand the electrical engineering principles that underly modern computers? What was your process for determining how to segment the information that you wanted to address in the book to balance the pacing of the reader with the density of the information? Technical books are notoriously challenging to write due to the constantly changing subject matter. What are some of the ways that the first edition of "Code" was becoming outdated? What are the most notable changes in the foundational elements of computing that have happened in the time since the first edition was published? One of the concepts that I have found most helpful as a software engineer is that of "mechanical sympathy". What are some of the ways that a better understanding of computer hardware and electrical signal processing can influence and improve the way that an engineer writes code? What are some of the insights that you gained about your own use of computers and software while working on this book? What are the most interesting, unexpected, or challenging lessons that you have learned while writing "Code" and revising it for the second edition? Once the reader has finished with your book, what are some of the other references/resources that you recommend? Keep In Touch Website Picks Tobias The Imitation Game movie Charles The Annotated Turing book by Charles Petzold Confidence Man: The Making of Donald Trump and the Breaking of America by Maggie Haberman Links Code: The Hidden Language of Computer Hardware and Software Fortran PL/I BASIC C# Z80 Intel 8080 PC Magazine Assembly Language Logic Gates C Language ASCII == American Standard Code for Information Interchange SkiaSharp Algol Code first edition bibliography The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/23/202241 minutes, 49 seconds
Episode Artwork

Take Control Of Your Electrical Systems With The Open Source FlexMeasures Energy Management System

Summary The generation, distribution, and consumption of energy is one of the most critical pieces of infrastructure for the modern world. With the rise of renewable energy there is an accompanying need for systems that can respond in real-time to the availability and demand for electricity. FlexMeasures is an open source energy management system that is designed to integrate a variety of inputs intelligently allocate energy resources to reduce waste in your home or grid. In this episode Nicolas Höning explains how the project is implemented, how it is being used in his startup Seita, and how you can try it out for your own energy needs. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Nicolas Höning about FlexMeasures, an open source project designed to manage energy resources dynamically to improve efficiency Interview Introductions How did you get introduced to Python? Can you describe what FlexMeasures is and the story behind it? What are the primary goals/objectives of the project? The energy sector is huge. Where can FlexMeasures be used? Energy systems are typically governed by a marketplace system. What are the benefits that FlexMeasures can provide for each side of that market? How do renewable sources of energy confuse/complicate the role that the different stakeholders represent? What are the different points of interaction that producers/consumers might have with the FlexMeasures platform? What are some examples of the types of decisions/recommendations that FlexMeasures might generate and how to they manifest in the energy systems? What are the types of information that FlexMeasures relies on for driving those decisions? Can you describe how FlexMeasures is implemented? How have the design and goals of the system changed/evolved since you started working on it? What are the interfaces that you provide for integrating with and extending the functionality of a FlexMeasures installation? What are the operating scales that FlexMeasures is designed for? What are the most interesting, innovative, or unexpected ways that you have seen FlexMeasures used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on FlexMeasures? When is FlexMeasures the wrong choice? What do you have planned for the future of FlexMeasures? Keep In Touch Website @nhoening on Twitter LinkedIn Picks Tobias She-Hulk Nicholas Kleo on Netflix Altair Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links FlexMeasures: Github Linux Energy Foundation Mailing List Twitter EyeQuant Energy Management System OpenEMS ICT == Information and Communications Technology HomeAssistant Podcast Episode FlexMeasures HomeAssistant Plugin Universal Smart Energy Framework PostgreSQL Data Engineering Podcast Episode TimescaleDB Data Engineering Podcast Episode OpenWeatherMap Timely-Beliefs library Flask Click Pyomo scikit-learn sktime LF Energy Flake8 MyPy Podcast Episode Black Arima Model Random Forest The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/16/202249 minutes, 16 seconds
Episode Artwork

How And Why To Build Effective Teams As An Engineering Leader

Summary Your ability to build and maintain a software project is tempered by the strength of the team that you are working with. If you are in a position of leadership, then you are responsible for the growth and maintenance of that team. In this episode Jigar Desai, currently the SVP of engineering at Sisu Data, shares his experience as an engineering leader over the past several years and the useful insights he has gained into how to build effective engineering teams. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! The biggest challenge with modern data systems is understanding what data you have, where it is located, and who is using it. Select Star’s data discovery platform solves that out of the box, with a fully automated catalog that includes lineage from where the data originated, all the way to which dashboards rely on it and who is viewing them every day. Just connect it to your dbt, Snowflake, Tableau, Looker, or whatever you’re using and Select Star will set everything up in just a few hours. Go to pythonpodcast.com/selectstar today to double the length of your free trial and get a swag package when you convert to a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Jigar Desai about building effective engineering teams Interview Introductions How did you get introduced to Python? What have you found to be the central challenges involved in building an effective engineering team? What are the measures that you use to determine what "effective" means for a given team? how to establish mutual trust in an engineering team challenges introduced at different levels of team size/organizational complexity establishing and managing career ladders You have mostly worked in heavily tech-focused companies. How do industry verticals impact the ways that you think about formation and structure of engineering teams? What are some of the different roles that you might focus on hiring/team compositions in industries that aren’t purely software? (e.g. fintech, logistics, etc.) notable evolutions in engineering practices/paradigm shifts in the industry What are some of the predictions that you have about how the future of engineering will look? What impact do you think low-code/no-code solutions will have on the types of projects that code-first developers will be tasked with? What are the most interesting, innovative, or unexpected ways that you have seen organizational leaders address the work of building and scaling engineering capacity? What are the most interesting, unexpected, or challenging lessons that you have learned while working in engineering leadership? What are the most informative mistakes that you would like to share? What are some resources and reference material that you recommend for anyone responsible for the success of their engineering teams? Keep In Touch LinkedIn Picks Tobias Bullet Train movie Jigar Top Gun Maverick movie Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Sisu Data OpenStack Java The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/10/20221 hour, 4 minutes, 50 seconds
Episode Artwork

Complete Your Hardware "Weekend Projects" In An Actual Weekend With Belay

Summary Working on hardware projects often has significant friction involved when compared to pure software. Brian Pugh enjoys tinkering with microcontrollers, but his "weekend projects" often took longer than a weekend to complete, so he created Belay. In this episode he explains how Belay simplifies the interactions involved in developing for MicroPython boards and how you can use it to speed up your own experimentation. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! The biggest challenge with modern data systems is understanding what data you have, where it is located, and who is using it. Select Star’s data discovery platform solves that out of the box, with a fully automated catalog that includes lineage from where the data originated, all the way to which dashboards rely on it and who is viewing them every day. Just connect it to your dbt, Snowflake, Tableau, Looker, or whatever you’re using and Select Star will set everything up in just a few hours. Go to pythonpodcast.com/selectstar today to double the length of your free trial and get a swag package when you convert to a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Brian Pugh about Belay, a python library that enables the rapid development of projects that interact with hardware via a micropython-compatible board. Interview Introductions How did you get introduced to Python? Can you describe what Belay is and the story behind it? Who are the target users for Belay? What are some of the points of friction involved in developing for hardware projects? What are some of the features of Belay that make that a smoother process? What are some of the ways that simplifying the develop/debug cycles can improve the overall experience of developing for hardware platforms? What are some of the inherent limitations of constrained hardware that Belay is unable to paper over? Can you describe how Belay is implemented? What does the workflow look like when using Belay as compared to using MicroPython directly? What are some of the ways that you are using Belay in your own projects? What are the most interesting, innovative, or unexpected ways that you have seen Belay used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Belay? When is Belay the wrong choice? What do you have planned for the future of Belay? Keep In Touch BrianPugh on GitHub LinkedIn Picks Tobias Gunnar Computer Glasses Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Belay Geomagical PIC Microcontroller AVR Microcontroller Matlab MicroPython Podcast Episode CircuitPython Podcast Episode Celery Potentiometer Raspberry Pi Raspberry Pi Pico ADC Converter Thonny Podcast Episode Adafruit Pyboard Python Inspect Module Python Tokenize Magnetometer Project Lidar The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/3/202248 minutes, 29 seconds
Episode Artwork

Catching Up With Pyre, A Fast Type Checker For Python

Summary Static typing versus dynamic typing is one of the oldest debates in software development. In recent years a number of dynamic languages have worked toward a middle ground by adding support for type hints. Python’s type annotations have given rise to an ecosystem of tools that use that type information to validate the correctness of programs and help identify potential bugs. At Instagram they created the Pyre project with a focus on speed to allow for scaling to huge Python projects. In this episode Shannon Zhu discusses how it is implemented, how to use it in your development process, and how it compares to other type checkers in the Python ecosystem. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Shannon Zhu about Pyre, a type checker for Python 3 built from the ground up to support gradual typing and deliver responsive incremental checks Interview Introductions How did you get introduced to Python? Can you describe what Pyre is and the story behind it? There have been a number of tools created to support various aspects of typing for Python. How would you describe the various goals that they support and how Pyre fits in that ecosystem? What are the core goals and notable features of Pyre? Can you describe how Pyre is implemented? How have the design and goals of the project changed/evolved since you started working on it? What are the different ways that Pyre is used in the development workflow for a team or individual? What are some of the challenges/roadblocks that people run into when adopting type definitions in their Python projects? How has the evolution of type annotations and overall support for them affected your work on Pyre? As someone who is working closely with type systems, what are the strongest aspects of Python’s implementation and opportunities for improvement? What are the most interesting, innovative, or unexpected ways that you have seen Pyre used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pyre? When is Pyre the wrong choice? What do you have planned for the future of Pyre? Keep In Touch shannonzhu on GitHub Picks Tobias Lord Of The Rings: The Rings of Power on Amazon Video Shannon King’s Dilemma board game Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links PYre MyPy Podcast Episode PyRight PyType MonkeyType Podcast Episode Java C PEP 484 Flow Hack Continuous Integration OCaml PEP 675 – Arbitrary literal strings Gradual Typing AST == Abstract Syntax Tree Language Server Protocol Tensor Type Arithmetic PyCon: Securing Code With The Python Type System PyCon: Type Checked Python In The Real World PyCon: Łukasz Lange 2022 Keynote The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/19/202251 minutes, 45 seconds
Episode Artwork

Standardizing On Python For All Software Projects At Ascend.io

Summary Every software project is subject to a series of decisions and tradeoffs. One of the first decisions to make is which programming language to use. For companies where their product is software, this is a decision that can have significant impact on their overall success. In this episode Sean Knapp discusses the languages that his team at Ascend use for building a service that powers complex and business critical data workflows. He also explains his motivation to standardize on Python for all layers of their system to improve developer productivity. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Sean Knapp about his motivations and experiences standardizing on Python for development at Ascend Interview Introductions How did you get introduced to Python? Can you describe what Ascend is and the story behind it? How many engineers work at Ascend? What are their different areas of focus? What are your policies for selecting which technologies (e.g. languages, frameworks, dev tooling, deployment, etc.) are supported at Ascend? What does it mean for a technology to be supported? You recently started standardizing on Python as the default language for development. How has Python been used up to now? What other languages are in common use at Ascend? What are some of the challenges/difficulties that motivated you to establish this policy? What are some of the tradeoffs that you have seen in the adoption of Python in place of your other adopted languages? How are you managing ongoing maintenance of projects/products that are not written in Python? What are some of the potential pitfalls/risks that you are guarding against in your investment in Python? What are the most interesting, innovative, or unexpected ways that you have seen Python used where it was previously a different technology? What are the most interesting, unexpected, or challenging lessons that you have learned while working on aligning all of your development on a single language? When is Python the wrong choice? What do you have planned for the future of engineering practices at Ascend? Keep In Touch LinkedIn @seanknapp on Twitter Picks Tobias Delver Lens app for scanning Magic: The Gathering cards Sean Typer DuckDB Amp It Up book (affiliate link) Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Ascend Data Engineering Podcast Episode Perl Google Sawzall Technical Debt Ruby gRPC Go Language Java PySpark Apache Arrow Thrift SQL Scala Snowflake runtime for Python Snowpark Typer CLI framework Pydantic Podcast Episode Pulumi Podcast Episode PyInfra Podcast Episode Packer Plot.ly Dash DuckDB The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/13/202250 minutes, 25 seconds
Episode Artwork

Exploring The Process And Practice Of Building Better Software Through Code Reviews

Summary Writing code is only one piece of creating good software. Code reviews are an important step in the process of building applications that are maintainable and sustainable. In this episode On Freund shares his thoughts on the myriad purposes that code reviews serve, as well as exploring some of the patterns and anti-patterns that grow up around a seemingly simple process. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 On Freund about the intricacies and importance of code reviews Interview Introductions How did you get introduced to Python? Can you start by giving us your description of what a code review is? What is the purpose of the code review? At face value a code review appears to be a simple task. What are some of the subtleties that become evident with time and experience? What are some of the ways that code reviews can go wrong? What are some common anti-patterns that get applied to code reviews? What are the elements of code review that are useful to automate? What are some of the risks/bad habits that can result from overdoing automated checks/fixes or over-reliance on those tools in code reviews? identifying who can/should do a review for a piece of code how to use code reviews as a teaching tool for new/junior engineers how to use code reviews for avoiding siloed experience/promoting cross-training PR templates for capturing relevant context What are the most interesting, innovative, or unexpected ways that you have seen code reviews used? What are the most interesting, unexpected, or challenging lessons that you have learned while leading and supporting engineering teams? What are some resources that you recommend for anyone who wants to learn more about code review strategies and how to use them to scale their teams? Keep In Touch LinkedIn @onfreund on Twitter Picks Tobias The Girl Who Drank The Moon On Better Call Saul Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Wilco Code Review Home Assistant Podcast Episode Trunk-based Development Git Flow Pair Programming Feature Flags Podcast Episode KPI == Key Performance Indicator MIT Open Learning Engineering Handbook PEP Repository The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/5/202257 minutes, 24 seconds
Episode Artwork

Ship With Confidence By Automating Quality Assurance

Summary Quality assurance in the software industry has become a shared responsibility in most organizations. Given the rapid pace of development and delivery it can be challenging to ensure that your application is still working the way it’s supposed to with each release. In this episode Jonathon Wright discusses the role of quality assurance in modern software teams and how automation can help. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Jonathon Wright about the role of automation in your testing and QA strategies Interview Introductions How did you get introduced to Python? Can you share your relationship with software testing/QA and automation? What are the main categories of how companies and software teams address testing and validation of their applications? What are some of the notable tradeoffs/challenges among those approaches? With the increased adoption of agile practices and the "shift left" mentality of DevOps, who is responsible for software quality? What are some of the cases where a discrete QA role or team becomes necessary? (or is it always necessary?) With testing and validation being a shared responsibility, competing with other priorities, what role does automation play? What are some of the ways that automation manifests in software quality and testing? How is automation distinct from software tests and CI/CD? For teams who are investing in automation for their applications, what are the questions they should be asking to identify what solutions to adopt? (what are the decision points in the build vs. buy equation?) At what stage(s) of the software lifecycle does automation live? What is the process for identifying which capabilities and interactions to target during the initial application of automation for QA and validation? One of the perennial challenges with any software testing, particularly for anything in the UI, is that it is a constantly moving target. What are some of the patterns and techniques, both from a developer and tooling perspective, that increase the robustness of automated validation? What are the most interesting, innovative, or unexpected ways that you have seen automation used for QA? What are the most interesting, unexpected, or challenging lessons that you have learned while working on QA and automation? When is automation the wrong choice? What are some of the resources that you recommend for anyone who wants to learn more about this topic? Keep In Touch LinkedIn @Jonathon_Wright on Twitter Website Picks Tobias The Sandman Netflix series and Graphic Novels by Neil Gaimain Jonathon House of the Dragon HBO series Mystic Quest TV series It’s Always Sunny in Philadelphia Links Haskell Idris Esperanto Klingon Planguage Lisp Language TDD == Test Driven Development BDD == Behavior Driven Development Gherkin Format Integration Testing Chaos Engineering Gremlin Chaos Toolkit Podcast Episode Requirements Engineering Keysight QA Lead Podcast Cognitive Learning TED Talk OpenTelemetry Podcast Episode Quality Engineering Selenium Swagger XPath Regular Expression Test Guild The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/28/20221 hour, 9 minutes, 4 seconds
Episode Artwork

Remove Roadblocks And Let Your Developers Ship Faster With Self-Serve Infrastructure

Summary The goal of every software team is to get their code into production without breaking anything. This requires establishing a repeatable process that doesn’t introduce unnecessary roadblocks and friction. In this episode Ronak Rahman discusses the challenges that development teams encounter when trying to build and maintain velocity in their work, the role that access to infrastructure plays in that process, and how to build automation and guardrails for everyone to take part in the delivery process. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Ronak Rahman about how automating the path to production helps to build and maintain development velocity Interview Introductions How did you get introduced to Python? Can you describe what Quali is and the story behind it? What are the problems that you are trying to solve for software teams? How does Quali help to address those challenges? What are the bad habits that engineers fall into when they experience friction with getting their code into test and production environments? How do those habits contribute to negative feedback loops? What are signs that developers and managers need to watch for that signal the need for investment in developer experience improvements on the path to production? Can you describe what you have built at Quali and how it is implemented? How have the design and goals shifted/evolved from when you first started working on it? What are the positive and negative impacts that you have seen from the evolving set of options for application deployments? (e.g. K8s, containers, VMs, PaaS, FaaS, etc.) Can you describe how Quali fits into the workflow of software teams? Once a team has established patterns for deploying their software, what are some of the disruptions to their flow that they should guard against? What are the most interesting, innovative, or unexpected ways that you have seen Quali used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Quali? When is Quali the wrong choice? What do you have planned for the future of Quali? Keep In Touch @OfRonak on Twitter Picks Tobias The Terminal List on Amazon Ronak Midnight Gospel on Amazon Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Quali Torque Visual Studio Plugin Subversion IaC == Infrastructure as Code DevOps Terraform Pulumi Podcast Episode Cloudformation Flask The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/14/20221 hour, 1 minute, 48 seconds
Episode Artwork

The Benefits Of Python And Django For Going From Zero To MVP At Speed

Summary Every startup begins with an idea, but that won’t get you very far without testing the feasibility of that idea. A common practice is to build a Minimum Viable Product (MVP) that addresses the problem that you are trying to solve and working with early customers as they engage with that MVP. In this episode Tony Pavlovych shares his thoughts on Python’s strengths when building and launching that MVP and some of the potential pitfalls that businesses can run into on that path. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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 Pavlovych about Python’s strengths for startups and the steps to building an MVP (minimum viable product) Interview Introductions How did you get introduced to Python? Can you describe what PLANEKS is and the story behind it? One of the services that you offer is building an MVP. What are the goals and outcomes associated with an MVP? What is the process for identifying the product focus and feature scope? What are some of the common misconceptions about building and launching MVPs that you have dealt with in your work with customers? What are the common pitfalls that companies encounter when building and validating an MVP? Can you describe the set of tools and frameworks (e.g. Django, Poetry, cookiecutter, etc.) that you have invested in to reduce the overhead of starting and maintaining velocity on multiple projects? What are the configurations that are most critical to keep constant across projects to maintain familiarity and sanity for your developers? (e.g. linting rules, build toolchains, etc.) What are the architectural patterns that you have found most useful to make MVPs flexible for adaptation and extension? Once the MVP is built and launched, what are the next steps to validate the product and determine priorities? What benefits do you get from choosing Python as your language for building an MVP/launching a startup? What are the challenges/risks involved in that choice? What are the most interesting, unexpected, or challenging lessons that you have learned while working on MVPs for your clients at PLANEKS? When is an MVP the wrong choice? What are the developments in the Python and broader software ecosystem that you are most interested in for the work you are doing for your team and clients? Keep In Touch LinkedIn Picks Tobias datamodel-code-generator Tony Screw It, Let’s Do It by Richard Branson (affiliate link) Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links PLANEKS Minimum Viable Product Django Cookiecutter Django Boilerplate OCR == Optical Character Recognition Tesseract OCR framework The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/31/202247 minutes, 6 seconds
Episode Artwork

Powering The Next Generation Of Application Architectures With Web Assembly And The Fermyon Platform

Summary Application architectures have been in a constant state of evolution as new infrastructure capabilities are introduced. Virtualization, cloud, containers, mobile, and now web assembly have each introduced new options for how to build and deploy software. Recognizing the transformative potential of web assembly, Matt Butcher and his team at Fermyon are investing in tooling and services to improve the developer experience. In this episode he explains the opportunity that web assembly offers to all language communities, what they are building to power lightweight server-side microservices, and how Python developers can get started building and contributing to this nascent ecosystem. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Matt Butcher about Fermyon and the impact of WebAssembly on software architecture and deployment across language boundaries Interview Introductions How did you get introduced to Python? For anyone who isn’t familiar with WebAssembly can you give your elevator pitch for why it matters? What is the current state of language support for Python in the WASM ecosystem? Can you describe what Fermyon is and the story behind it? What are your goals with Fermyon and what are the products that you are building to support those goals? There has been a steady progression of technologies aimed at better ways to build, deploy, and manage software (e.g. virtualization, cloud, containers, etc.). What are the problems with the previous options and how does WASM address them? What are some examples of the types of applications/services that work well in a WASM environment? Can you describe how you have architected the Fermyon platform? How did you approach the design of the interfaces and tooling to support developer ergonomics? How have the design and goals of the platform changed or evolved since you started working on it? Can you describe what a typical workflow is for an application team that is using Spin/Fermyon to build and deploy a service? What are some of the architectural patterns that WASM/Fermyon encourage? What are some of the limitations that WASM imposes on services using it as a runtime? (e.g. system access, threading/multiprocessing, library support, C extensions, etc.) What are the new and emerging topics and capabilities in the WASM ecosystem that you are keeping track of? With Spin as the core building block of your platform, how are you approaching governance and sustainability of the open source project? What are your guiding principles for when a capability belongs in the OSS vs. commercial offerings? What are the most interesting, innovative, or unexpected ways that you have seen Fermyon used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Fermyon? When is Fermyon the wrong choice? What do you have planned for the future of Fermyon? Keep In Touch LinkedIn @technosophos on Twitter technosophos on GitHub Picks Tobias Thor: Love & Thunder movie Matt Remembrance of Earth’s Past trilogy ("Three Body Problem" is the first) by Cixin Liu Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Fermyon Our Python entry for the Wasm Language Matrix SingleStore’s WASI-Python Great notes about Wasm support in CPyton Pyodide for Python in the Browser SlashDot Web Assembly (WASM) Rust AssemblyScript Grain WASM language SingleStore Data Engineering Podcast Episode WASI PyO3 PyOxidizer RustPython Drupal OpenStack Deis Helm RedPanda Data Engineering Podcast Episode Envoy Proxy Fastly Functions as a Service CloudEvents Finicky Whiskers Fermyon Spin Nomad Tree Shaking Zappa Chalice OpenFaaS CNCF Bytecode Alliance Finicky Whiskers Minecraft Kotlin The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/25/20221 hour, 10 minutes, 39 seconds
Episode Artwork

Gain A Deeper Understanding Of What Your Code Is Doing And Where It Spends Its Time With VizTracer

Summary As your code scales beyond a trivial level of complexity and sophistication it becomes difficult or impossible to know everything that it is doing. The flow of logic and data through your software and which parts are taking the most time are impossible to understand without help from your tools. VizTracer is the tool that you will turn to when you need to know all of the execution paths that are being exercised and which of those paths are the most expensive. In this episode Tian Gao explains why he created VizTracer and how you can use it to gain a deeper familiarity with the code that you are responsible for maintaining. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Tian Gao about VizTracer, a low-overhead logging/debugging/profiling tool that can trace and visualize your python code execution Interview Introductions How did you get introduced to Python? Can you describe what VizTracer is and the story behind it? What are the main goals that you are focused on with VizTracer? What are some examples of the types of bugs that profiling can help diagnose? How does profiling work together with other debugging approaches? (e.g. logging, breakpoint debugging, etc.) There are a number of profiling utilities for Python. What feature or combination of features were missing that motivated you to create VizTracer? Can you describe how VizTracer is implemented? How have the design and goals changed since you started working on it? There are a number of styles of profiling, what was your process for deciding which approach to use? What are the most complex engineering tasks involved in building a profiling utility? Can you describe the process of using VizTracer to identify and debug errors and performance issues in a project? What are the options for using VizTracer in a production environment? What are the interfaces and extension points that you have built in to allow developers to customize VizTracer? What are some of the ways that you have used VizTracer while working on VizTracer? What are the most interesting, innovative, or unexpected ways that you have seen VizTracer used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on VizTracer? When is VizTracer the wrong choice? What do you have planned for the future of VizTracer? Keep In Touch gaogaotiantian on GitHub LinkedIn Picks Tobias Travelers show on Netflix Tian objprint Lincoln Lawyer bilibili – Tian’s coding sessions in Chinese Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Viztracer Python cProfile Sampling Profiler Perfetto Coverage.py Podcast Episode Python setxprofile hook Circular Buffer Catapult Trace Viewer py-spy psutil gdb Flame graph The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/17/202248 minutes, 33 seconds
Episode Artwork

Stream Processing In Real Time And At Scale In Pure Python With Bytewax

Summary Analysis of streaming data in real time has long been the domain of big data frameworks, predominantly written in Java. In order to take advantage of those capabilities from Python requires using client libraries that suffer from impedance mis-matches that make the work harder than necessary. Bytewax is a new open source platform for writing stream processing applications in pure Python that don’t have to be translated into foreign idioms. In this episode Bytewax founder Zander Matheson explains how the system works and how to get started with it today. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! The biggest challenge with modern data systems is understanding what data you have, where it is located, and who is using it. Select Star’s data discovery platform solves that out of the box, with a fully automated catalog that includes lineage from where the data originated, all the way to which dashboards rely on it and who is viewing them every day. Just connect it to your dbt, Snowflake, Tableau, Looker, or whatever you’re using and Select Star will set everything up in just a few hours. Go to pythonpodcast.com/selectstar today to double the length of your free trial and get a swag package when you convert to a paid plan. Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Zander Matheson about Bytewax, an open source Python framework for building highly scalable dataflows to process ANY data stream. Interview Introductions How did you get introduced to Python? Can you describe what Bytewax is and the story behind it? Who are the target users for Bytewax? What is the problem that you are trying to solve with Bytewax? What are the alternative systems/architectures that you might replace with Bytewax? Can you describe how Bytewax is implemented? What are the benefits of Timely Dataflow as a core building block for a system like Bytewax? How have the design and goals of the project changed/evolved since you first started working on it? What are the axes available for scaling Bytewax execution? How have you approached the design of the Bytewax API to make it accessible to a broader audience? Can you describe what is involved in building a project with Bytewax? What are some of the stream processing concepts that engineers are likely to run up against as they are experimenting and designing their code? What is your motivation for providing the core technology of your business as an open source engine? How are you approaching the balance of project governance and sustainability with opportunities for commercialization? What are the most interesting, innovative, or unexpected ways that you have seen Bytewax used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Bytewax? When is Bytewax the wrong choice? What do you have planned for the future of Bytewax? Keep In Touch Slack Twitter LinkedIn Picks Tobias Alta Racks Zander Atherton Bikes Links Bytewax GitHub Flink Data Engineering Podcast Episode Spark Streaming Kafka Connect Faust Podcast Episode Ray Podcast Episode Dask Data Engineering Podcast Episode Timely Dataflow PyO3 Materialize Data Engineering Podcast Episode HyperLogLog Python River Library Shannon Entropy Calculation The blog post using incremental shannon entropy NATS waxctl Prometheus Grafana Streamz The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/10/202242 minutes, 32 seconds
Episode Artwork

Tetra: A Full Stack Web Framework That Doesn't Make You Write Everything Twice

Summary Building a fully functional web application has been growing in complexity along with the growing popularity of javascript UI frameworks such as React, Vue, Angular, etc. Users have grown to expect interactive experiences with dynamic page updates, which leads to duplicated business logic and complex API contracts between the server-side application and the Javascript front-end. To reduce the friction involved in writing and maintaining a full application Sam Willis created Tetra, a framework built on top of Django that embeds the Javascript logic into the Python context where it is used. In this episode he explains his design goals for the project, how it has helped him build applications more rapidly, and how you can start using it to build your own projects today. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Sam Willis about Tetra, a full stack component framework for your Django applications Interview Introductions How did you get introduced to Python? Can you describe what Tetra is and the story behind it? What are the problems that you are aiming to solve with this project? What are some of the other ways that you have addressed those problems? What are the shortcomings that you encountered with those solutions? What was missing in the existing landscape of full-stack application development patterns that prompted you to build a new meta-framework? What are some of the sources of inspiration (positive and negative) that you looked to while deciding on the component selection and implementation strategy? Can you describe how Tetra is implemented? What are the core principles that you are relying on to drive your design of APIs and developer experience? What is the process for building a full component in Tetra? What are some of the application design challenges that are introduced by Combining the javascript and Django logic and attributes? (e.g. reusing JS logic/CSS styles across components) A perennial challenge with combining the syntax across multiple languages in a single file is editor support. How are you thinking about that with Tetra’s implementation? What is your grand vision for Tetra and how are you working to make it sustainable? What are the most interesting, innovative, or unexpected ways that you have seen Tetra used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Tetra? When is Tetra the wrong choice? What do you have planned for the future of Tetra? Keep In Touch @samwillis on Twitter Website LinkedIn samwillis on GitHub Picks Tobias The Machine Learning Podcast Sam Slow Horses TV Show Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links Tetra Framework Django PHP ASP Alpine.js HTMX Ruby Ruby on Rails Flutterbox Vue.js Laravel Livewire Python Import Hooks python-inline-source Tailwind CSS PostCSS Pickle Fernet esbuild Webpack Rich The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/3/202253 minutes, 6 seconds
Episode Artwork

Design Real-World Objects In Python With CadQuery

Summary Virtually everything that you interact with on a daily basis and many other things that make modern life possible were designed and modeled in software called CAD or Computer-Aided Design. These programs are advanced suites with graphical editing environments tailored to domain experts in areas such as mechanical engineering, electrical engineering, architecture, etc. While the UI-driven workflow is more accessible, it isn’t scalable which opens the door to code-driven workflows. In this episode Jeremy Wright discusses the design, uses, and benefits of the CadQuery framework for building 3D CAD models entirely in Python. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Jeremy Wright about CadQuery, an easy-to-use Python module for building parametric 3D CAD models Interview Introductions How did you get introduced to Python? Can you start by explaining what CAD is and some of the real-world applications of it? Can you describe what CadQuery is and the story behind it? How did you get involved with it and what keeps you motivated? What are the different methods that are in common use for building CAD models? Are there approaches that are more common for models used in different industries? What was missing in other projects for programmatically generating CAD models that motivated you to build CadQuery? Can you describe how the CadQuery library is implemented? How have the design and goals of the project changed or evolved since you started working on it? How would you characterize the rate of change/evolution in the CAD ecosystem, and how has that factored into your work on CadQuery? How did you approach the process of API design? How do you balance accessibility for non-professionals with domain-related nomenclature? Can you describe some example workflows for going from idea to finished product with CadQuery? How are you using CadQuery in your own work? What are the most interesting, innovative, or unexpected ways that you have seen CadQuery used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on CadQuery? When is CadQuery the wrong choice? What do you have planned for the future of CadQuery? Keep In Touch Discord Twitter GitHub GitLab Picks Tobias Doctor Strange: In The Multiverse of Madness Jeremy Star Trek: Strange New Worlds Closing Announcements Thank you for listening! Don’t forget to check out our other shows. The Data Engineering Podcast covers the latest on modern data management. The Machine Learning Podcast helps you go from idea to production with machine learning. 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 Links CadQuery CAD == Computer Assisted Design 3D Printer Jeremy’s CNC Router jQuery Blender Fusion 360 Open Cascade (OCCT) Fluent API FreeCAD KiCAD Semblage cq-editor jupyter-cadquery cq-kit FX Bricks Voxels cq_warehouse The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/27/202245 minutes, 4 seconds
Episode Artwork

Intelligent Dependency Resolution For Optimal Compatibility And Security With Project Thoth

Summary Building any software project is going to require relying on dependencies that you and your team didn’t write or maintain, and many of those will have dependencies of their own. This has led to a wide variety of potential and actual issues ranging from developer ergonomics to application security. In order to provide a higher degree of confidence in the optimal combinations of direct and transitive dependencies a team at Red Hat started Project Thoth. In this episode Fridolín Pokorný explains how the Thoth resolver uses multiple signals to find the best combination of dependency versions to ensure compatibility and avoid known security issues. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 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. And now you can launch a managed MySQL, Postgres, or Mongo database cluster in minutes to keep your critical data safe with automated backups and failover. 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! Need to automate your Python code in the cloud? Want to avoid the hassle of setting up and maintaining infrastructure? Shipyard is the premier orchestration platform built to help you quickly launch, monitor, and share python workflows in a matter of minutes with 0 changes to your code. Shipyard provides powerful features like webhooks, error-handling, monitoring, automatic containerization, syncing with Github, and more. Plus, it comes with over 70 open-source, low-code templates to help you quickly build solutions with the tools you already use. Go to dataengineeringpodcast.com/shipyard to get started automating with a free developer plan today! Your host as usual is Tobias Macey and today I’m interviewing Fridolín Pokorný about Project Thoth, a resolver service that computes the optimal combination of versions for your dependencies Interview Introductions How did you get introduced to Python? Can you describe what Project Thoth is and the story behind it? What are some examples of the types of problems that can be introduced by mismanaged dependency versions? The Python ecosystem has seen a number of dependency management tools introduced recently. What are the capabilities that Thoth offers that make it stand out? How does it compare to e.g. pip, Poetry, pip-tools, etc.? How do those other tools approach resolution of dependencies? Can you describe how Thoth is implemented? How have the scope and design of the project evolved since it was started? What are the sources of information that it relies on for generating the possible solution space? What are the algorithms that it relies on for finding an optimal combination of packages? Can you describe how Thoth fits into the workflow of a developer while selecting a set of dependencies and keeping them up to date over the life of a project? What are the opportunities for expanding Thoth’s application to other language ecosystems? What are the interfaces available for extending or integrating with Thoth? What are the most interesting, innovative, or unexpected ways that you have seen Thoth used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Thoth? When is Thoth the wrong choice? What do you have planned for the future of Thoth? Keep In Touch LinkedIn Website Picks Tobias Brass Against Fridolin micropipenv Links Redhat Emerging Technologies Group Project Thoth Thamos CLI PyPA Advisory Database Project2Vec Thoth Prescriptions Thoth: Egyptian God The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/15/202231 minutes, 31 seconds
Episode Artwork

Take A Deep Dive On How Code Completion Works And How To Customize It

Summary Most developers have encountered code completion systems and rely on them as part of their daily work. They allow you to stay in the flow of programming, but have you ever stopped to think about how they work? In this episode Meredydd Luff takes us behind the scenes to dig into the mechanics of code completion engines and how you can customize them to fit your particular use case. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Meredydd Luff about how code completion works and what it takes to build your own Interview Introductions How did you get introduced to Python? Most programmers are familiar with the idea of code completion, but can you just give the elevator pitch to get us all on the same page? You gave a presentation recently at PyCon about how to build a code completion system. What was your approach to identifying what fundamental concepts needed to be addressed and how to fit that lesson into the available time? In the presentation you mentioned that you had built a more full-featured completion engine into Anvil. Can you describe what possessed you to build your own code completion tool? What are the core components required to build a completion engine? What are the benefits that can be realized by customizing the completion engine for a given language or task? Can you describe the feature set and implementation details of the full-fledged completion engine that is available in Anvil? Beyond the toy example, there are a number of considerations to address if you want to make the completion engine "production grade". Can you talk through some of the obvious edge cases and how to solve for them? (e.g. handling parsing of incomplete code) What are the inputs that you use to build up the list of candidate tokens for completion? Once you have a functioning baseline for offering completions, what are some of the signals that you hook into for ranking suggestions? In your presentation you leaned on the machinery available in the Python standard library. What are some of the ways that you might think about generalizing across languages vs. coupling to a given language? What design/architectural advice do you have for compartmentalizing logic in a full-featured completion engine? What are some of the complexities that become a factor when you are trying to scale across an entire code base? Beyond just being able to parse and process a body of code, there is also the question of integrating with the development environment. What are some of the challenges that get introduced when trying to access the appropriate set(s) of files and code through the editor interface(s)? What are the most interesting, innovative, or unexpected ways that you have seen code completion applied to developer experience? What are the most interesting, unexpected, or challenging lessons that you have learned while working on code completion for Anvil? When is code completion more effort than it’s worth? What do you have planned for the future of the Anvil code completion functionality? Keep In Touch LinkedIn meredydd on GitHub @meredydd on Twitter Picks Tobias "Weird Al" Yankovic Meredydd TimescaleDB Data Engineering Podcast Episode Promscale 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 Links PyCon presentation about building a completion engine Anvil Podcast Episode Nano Language Server Protocol Jedi Podcast Episode Skulpt Parser Abstract Syntax Tree OpenAPI GitHub Copilot Halting Problem Parser Generator Python Language Grammar Definition Lezer Parser Generator Tree-sitter PyScript Grafana Tempo Tracing Service The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/30/20221 hour, 11 seconds
Episode Artwork

Hunting Black Swans With Bees: Catching Up With The Inimitable Russell Keith-Magee

Summary Russell Keith-Magee is an accomplished engineer and a fixture of the Python community. His work on the Beeware suite of projects is one of the most ambitious undertakings in the ecosystem and unfailingly forward-looking. With his recent transition to working for Anaconda he is now able to dedicate his full focus to the effort. In this episode he reflects on the journey that he has taken so far, how Beeware is helping to address some of the threats to Python’s long term viability, and how he envisions its future in light of the recent release of PyScript, an in-browser runtime for Python. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Russell Keith-Magee about the latest status of the Beeware project, the state of Python’s black swans, and how the PyScript project ties into his ambitions for world domination Interview Introductions How did you get introduced to Python? For anyone who hasn’t been graced with the BeeWare vision, can you give the elevator pitch of what it is and why it matters? At PyCon US 2019 you presented a keynote about the various potential threats to the Python language community and its future viability. With the clarity of 3 years hindsight, how has the landscape shifted? What is PyScript and how does it fit into the venn diagram of BeeWare’s objectives and the portents of black swan events (and what is your involvement with it)? How does it differ from the dozens of other "Python in the browser" and "Python transpiled to Javascript" projects that have sprouted over the years? Now that you have been granted the opportunity to dedicate your full attention to BeeWare and build a team to support it, what new potential does that unlock? What are the current areas of focus/challenges that you are spending your time on for the BeeWare project? What are some of the efforts in the BeeWare suite that proved to be dead-ends? What are the most interesting, innovative, or unexpected ways that you have seen the BeeWare suite/PyScript used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on BeeWare? When is BeeWare the wrong choice? What do you have planned for the future of BeeWare/PyScript/Python/world domination? Keep In Touch LinkedIn Website @freakboy3742 on Twitter Picks Tobias Joby Gorillapod Russell PyScript The Great TV Show Links Black Swans Episode BeeWare Episode BeeWare Django Cordova Black Swan Apple II Altair Briefcase Web Assembly (WASM) Gary Bernhardt PyScript Pyodide Toga Kotlin Swift Gaffer Tape Repl.it Brython Transcrypt Python Anywhere Batavia Anaconda Conda Voc Maestral Eddington GUI The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/24/202256 minutes, 11 seconds
Episode Artwork

Take Control Of Your Digital Photos By Running Your Own Smart Library Manager With LibrePhotos

Summary Digital cameras and the widespread availability of smartphones has allowed us all to generate massive libraries of personal photographs. Unfortunately, now we are all left to our own devices of how to manage them. While cloud services such as iPhotos and Google Photos are convenient, they aren’t always affordable and they put your pictures under the control of large companies with their own agendas. LibrePhotos is an open source and self-hosted alternative to these services that puts you in control of your digital memories. In this episode the maintainer of LibrePhotos, Niaz Faridani-Rad, explains how he got involved with the project, the capabilities that it offers for managing your image library, and how to get your own instance set up to take back control of your pictures. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! This episode is sponsored by Mergify. It’s an amazing tool to make you and your team way more productive with GitHub. Mergify is all about leveling up your pull requests with useful features that eliminate busy work. Automatic merges allow you define the conditions for acceptance and Mergify will take care of merging the pull request as soon as it’s ready. Automatic updates take care of merging your pull requests serially on top of each other, so there is no way to introduce a regression. With a merge queue you can merge your urgent pull request first, organize your Prs as you wish and Mergify will merge them in that order. Mergify’s backports feature will even copy the pull request into another branch once the pull request has been merged, shipping your bug fixes on multiple branches automatically. By saving time you and your team can focus on projects that matter. Mergify is coordinated with any CI and fully integrated into GitHub. They have a Startup Program that offers a 12 months credit to leverage Mergify (up to $21,000 of value). Start saving time; visit pythonpodcast.com/mergify today to sign up for a demo and get started! Or just click the link in the show notes. Your host as usual is Tobias Macey and today I’m interviewing Niaz Faridani-Rad about LibrePhotos, an open source, self-hosted application for managing your personal photo collection Interview Introductions How did you get introduced to Python? Can you describe what LibrePhotos is and the story behind it? What are the core objectives of the project? What kind of users are you focused on? What are some of the major features of LibrePhotos? There are a number of open source and commercial options for different photo oriented use cases. What are the main capabilities that influence someone’s decision to use one over the other? Many people’s baseline expectations will be around services such as Google Photos or iPhotos. What are some of the challenges that you face in trying to provide a comparable experience? One of the features that users rely on with these services is backup/disaster recovery of their photo library. What is the recommended approach for users of LibrePhotos? Can you describe how LibrePhotos is architected? How have the design and goals evolved since you first started working on it? How have recent advances in machine learning algorithms and related tooling improved the availability and quality of advanced features in LibrePhotos? How much improvement of accuracy in face/object recognition do you see as users invest in cataloging and organizing their collections? Is there a minimum quantity of images/iindividual people that are necessary to start using the ML powered features? What kinds of storage locations are supported? What are the interfaces available for extending/enhancing/integrating with LibrePhotos? What are the most interesting, innovative, or unexpected ways that you have seen LibrePhotos used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on LibrePhotos? When is LibrePhotos the wrong choice? What do you have planned for the future of LibrePhotos? Keep In Touch derneuere on GitHub @der_neuere on Twitter Website LinkedIn Picks Tobias Uncharted movie Niaz Steam Deck 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 Links LibrePhotos Self-hosted Sub-Reddit OwnPhotos Google Photos Google Takeout Digikam x265 HEIC Files RAW Image Format ImageMagick Panorama Photograph Lytro light field cameras rq asynchronous task library Typescript Redux Toolkit MobileNet v3 DLib ARM Processor Docker Compose LibrePhotos Comparison Page The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/16/202245 minutes, 14 seconds
Episode Artwork

Making Investment Data Easy To Access And Analyze With The OpenBB Terminal

Summary Investing effectively is largely a game of information access and analysis. This can involve a substantial amount of research and time spent on finding, validating, and acquiring different information sources. In order to reduce the barrier to entry and provide a powerful framework for amateur and professional investors alike Didier Rodrigues Lopes created the OpenBB Terminal. In this episode he explains how a pandemic project that started as an experiment has led to him founding a new company and dedicating his time to growing and improving the project and its community. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Didier Rodrigues Lopes about the OpenBB Terminal, a modern Python-based integrated environment for investment research Interview Introductions How did you get introduced to Python? Can you describe what OpenBB is and the story behind it? What is the problem that you are trying to address by creating the OpenBB project and providing it as open source? What are some of the use cases where someone might need to use this project? The elephant in the room for financial data research is the Bloomberg Terminal. What are the other tools or services available for that purpose? What are the differentiating features of the OpenBB Terminal? Can you describe how the OpenBB Terminal is implemented? How have the design and goals/scope of the project changed since you started working on it? Can you describe a typical workflow for someone who is using the OpenBB Terminal? How have you approached the user experience design, and what are you optimizing for? What kinds of utilities do you offer beyond raw data access? What are some examples of data sources that you rely on? What is involved in integrating a new data source? What are the extension points and integration capabilities for expanding the functionality of the tool? What are the most interesting, innovative, or unexpected ways that you have seen OpenBB Terminal used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on OpenBB Terminal? When is OpenBB Terminal the wrong choice? What do you have planned for the future of OpenBB Terminal? Keep In Touch DidierRLopes on GitHub LinkedIn @didier_lopes on Twitter Picks Tobias Vikings: Valhalla show on Netflix 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 Links OpenBB Matlab Papermill Bloomberg Terminal Robinhood Coinbase The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/10/202247 minutes, 13 seconds
Episode Artwork

Accelerate Your Machine Learning Experimentation With Automatic Checkpoints Using FLOR

Summary The experimentation phase of building a machine learning model requires a lot of trial and error. One of the limiting factors of how many experiments you can try is the length of time required to train the model which can be on the order of days or weeks. To reduce the time required to test different iterations Rolando Garcia Sanchez created FLOR which is a library that automatically checkpoints training epochs and instruments your code so that you can bypass early training cycles when you want to explore a different path in your algorithm. In this episode he explains how the tool works to speed up your experimentation phase and how to get started with it. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Rolando Garcia about FLOR, a suite of machine learning tools for hindsight logging that lets you speed up model experimentation by checkpointing training data Interview Introductions How did you get introduced to Python? Can you describe what FLOR is and the story behind it? What is the core problem that you are trying to solve for with FLOR? What are the fundamental challenges in model training and experimentation that make it necessary? How do machine learning reasearchers and engineers address this problem in the absence of something like FLOR? Can you describe how FLOR is implemented? What were the core engineering problems that you had to solve for while building it? What is the workflow for integrating FLOR into your model development process? What information are you capturing in the log structures and epoch checkpoints? How does FLOR use that data to prime the model training to a given state when backtracking and trying a different approach? How does the presence of FLOR change the costs of ML experimentation and what is the long-range impact of that shift? Once a model has been trained and optimized, what is the long-term utility of FLOR? What are the opportunities for supporting e.g. Horovod for distributed training of large models or with large datasets? What does the maintenance process for research-oriented OSS projects look like? What are the most interesting, innovative, or unexpected ways that you have seen FLOR used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on FLOR? When is FLOR the wrong choice? What do you have planned for the future of FLOR? Keep In Touch rlnsanz on GitHub @rogarcia_sanz on Twitter Picks Tobias The Batman Rolando Severance GitHub Codespaces 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 Links FLOR UC Berkeley Joe Hellerstein MLOps Data Engineering Podcast Episode RISE Lab AMP Lab Clipper Model Serving Ground Data Context Service Context: The Missing Piece Of The Machine Learning Lifecycle Airflow Copy on write ASTor Green Tree Snakes: Python AST Documentation MLFlow Amazon Sagemaker Cloudpickle Horovod Podcast Episode Ray Anyscale PyTorch Tensorflow The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/2/202246 minutes, 31 seconds
Episode Artwork

Automatically Enforce Software Structures With Powerful Code Modifications Powered By LibCST

Summary Programmers love to automate tedious processes, including refactoring your code. In order to support the creation of code modifications for your Python projects Jimmy Lai created LibCST. It provides a richly typed and high level API for creating and manipulating concrete syntax trees of your source code. In this episode Jimmy Lai and Zsolt Dollenstein explain how it works, some of the linting and automatic code modification utilities that you can build with it and how to get started with using it to maintain your own Python projects. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Zsolt Dollenstein and Jimmy Lai about LibCST, a concrete syntax tree parser and serializer library for Python Interview Introductions How did you get introduced to Python? Can you describe what LibCST is and the story behind it? How does a concrete syntax tree differ from an abstract syntax tree? What are some of the situations where the preservation of the exact structure is necessary? There are a few other libraries in Python for creating concrete syntax trees. What was missing in the available options that made it necessary to create LibCST? What are the use cases that LibCST is focused on supporting Can you describe how LibCST is implemented? How have the design and goals of the project changed or evolved since you started working on it? How might I use LibCST for something like restructuring a set of modules to move a function definition while maintaining proper imports? How do the capabilities of LibCST for codemodding compare to the Rope framework? What are some other workflows that someone might build with LibCST? What are some of the ways that LibCST is being used in your own work? What are the most interesting, innovative, or unexpected ways that you have seen LibCST used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on LibCST? When is LibCST the wrong choice? What do you have planned for the future of LibCST? Keep In Touch Zsolt zsol on GitHub LinkedIn Jimmy jimmylai on GitHub LinkedIn Picks Tobias Osprey Manta Backpack Zsolt Autotransform Glean Jimmy Paying down technical debt 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 Links LibCST Carta lib2to3 Abstract Syntax Tree Concrete Syntax Tree Pyre Parso Cython Podcast Episode mypyc Rope Flake8 Podcast Episode Pylint ESLint Fixit MonkeyType Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/25/202256 minutes, 47 seconds
Episode Artwork

Cloud Native Networking For Developers With The Gloo Platform

Summary Communication is a fundamental requirement for any program or application. As the friction involved in deploying code has gone down, the motivation for architecting your system as microservices goes up. This shifts the communication patterns in your software from function calls to network calls. In this episode Idit Levine explains how the Gloo platform that she and her team at Solo have created makes it easier for you to configure and monitor the network topologies for your microservice environments. She also discusses what developers need to know about networking in cloud native environments and how a combination of API gateways and service mesh technologies allow you to more rapidly iterate on your systems. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Idit Levine about what developers need to know about service-oriented networking and her work at Solo on the Gloo project Interview Introductions How did you get introduced to Python? Can you describe what Solo is and the story behind it? How much should developers need to know about the ways that their applications and services are communicating? What is the current state of networking for applications across physical, cloud, and containerized environments? How do service mesh features influence the architectural decisions that software teams make while building their applications? What operational capabilities do they unlock? What are the aspects of application networking that are simplified or enhanced by service mesh platforms? In what ways has service mesh introduced new complexity to operating software systems? How can developers mirror the network topologies for production environments while working on new features? What are the most interesting, innovative, or unexpected ways that you have seen Gloo used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Gloo? When is Gloo the wrong choice? What do you have planned for the future of Gloo? Keep In Touch LinkedIn @Idit_Levine on Twitter Picks Tobias Shadow and Bone on Netflix Idit Elizabeth Holmes HBO Documentary 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 Links Solo Computational Biology Microservices Kubernetes Service Mesh Istio LinkerD Envoy Proxy API Gateway CRD == Custom Resource Definition Gloo Edge Bazel Build System GraphQL mTLS GitOps Dagger WASM == Web Assembly Kubernetes Gateway API Consul Connect eBPF The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/19/202250 minutes, 33 seconds
Episode Artwork

Accelerate And Simplify Cloud Native Development For Kubernetes Environments With Gefyra

Summary Cloud native architectures have been gaining prominence for the past few years due to the rising popularity of Kubernetes. This introduces new complications to development workflows due to the need to integrate with multiple services as you build new components for your production systems. In order to reduce the friction involved in developing applications for cloud native environments Michael Schilonka created Gefyra. In this episode he explains how it connects your local machine to a running Kubernetes environment so that you can rapidly iterate on your software in the context of the whole system. He also shares how the Django Hurricane plugin lets your applications work closely with the Kubernetes process model. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Michael Schilonka about Gefyra and what is involved with developing applications for Kubernetes environments Interview Introductions How did you get introduced to Python? Can you describe what Gefyra is and the story behind it? What are the challenges that Kubernetes introduces to the development process? What are some of the strategies that developers might use for developing and testing applications that are deployed to Kubernetes environments? What are the use cases that Gefyra is focused on enabling? What are some of the other tools or platforms that Gefyra might replace or supplement? What are the services that need to be present in the K8s cluster to enable Gefyra’s functionality? Can you describe how Gefyra is implemented? How have the design and goals of the project changed since you first started working on it? What is the process for getting Gefyra set up between a K8s cluster and a developer’s laptop? Can you describe what the developer’s workflow looks like when using Gefyra? How do you avoid collisions/resource contention among a team of developers who are working on the same project? What are some of the ways that developing for Kubernetes influences the architectural and design decisions for a project? What are some of the additional practices or systems that you have found to be beneficial for accelerating development in cloud-native environments? What are the most interesting, innovative, or unexpected ways that you have seen Gefyra used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Gefyra? When is Gefyra the wrong choice? What do you have planned for the future of Gefyra? Keep In Touch LinkedIn Schille on GitHub Picks Tobias kubernetes.el – Kubernetes interface for Emacs Michael It’s fermentation friday, perfect for baking a sourdough bread or brewing beer Two of my favorit YouTube channels Kurzgesagt – In a Nutshell and LockPickingLawyer For entrepreneurial spirits: Reddit community research with (GummySearch)[https://gummysearch.com/]?utm_source=rss&utm_medium=rss Links Kopf framework PyOxidizer Tuna Wireguard-go https://k3d.io/?utm_source=rss&utm_medium=rss kind Django Hurricane Blueshoe Django Kubernetes K3d Telepresence Unikube Sidecar Pattern Docker-compose Kubernetes Patterns book O’Reilly Platform Amazon (affiliate link) CodeZero CoreDNS Nginx Cookiecutter Tornado Podcast Episode uWSGI Podcast Episode 12 Factor App Pycloak Keycloak Kubernetes Operator Kubernetes CRD (Custom Resource Definition The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/11/202238 minutes, 14 seconds
Episode Artwork

Building A Community And Technology Stack For Scalable Big Data Geoscience At Pangeo

Summary Science is founded on the collection and analysis of data. For disciplines that rely on data about the earth the ability to simulate and generate that data has been growing faster than the tools for analysis of that data can keep up with. In order to help scale that capacity for everyone working in geosciences the Pangeo project compiled a reference stack that combines powerful tools into an out-of-the-box solution for researchers to be productive in short order. In this episode Ryan Abernathy and Joe Hamman explain what the Pangeo project really is, how they have integrated a combination of XArray, Dask, and Jupyter to power these analytical workflows, and how it has helped to accelerate research on multidimensional geospatial datasets. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Ryan Abernathy and Joe Hamman about Pangeo, a community platform for Big Data geoscience Interview Introductions How did you get introduced to Python? Can you describe what Pangeo is and the story behind it? What is your role in the project/community and how did you get involved? What are the goals of the project and community? What are the areas of effort and how are they organized? What are the scientific domains that Pangeo is focused on supporting? What are the primary challenges associated with data management and analysis in these scientific communities? What are the forms that these data take and how have they been evolving? (e.g. formats/sources) What are some of the challenges introduced by the widespread adoption of cloud resources and the associated architectural patterns? Can you describe the technical components that fall under the Pangeo umbrella? How do they come together to form a functional workflow for geo sciences? How has the scope of the Pangeo project changed or evolved since it started? What are the most interesting, innovative, or unexpected ways that you have seen Pangeo used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pangeo? When is Pangeo the wrong choice? What do you have planned for the future of Pangeo? Keep In Touch Joe @HammanHydro on Twitter Ryan @rabernat on Twitter rabernat on GitHub Website Picks Tobias Mountain Biking Ryan Klara And The Sun by Kazuo Ishiguro Joe Range by David Epstein 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 Links Pangeo Pangeo Forge CarbonPlan M2LInES LEAP Columbia University XArray MIT MatLab PHP Ruby Java NumPy SciPy Matplotlib C Fortran Perl Dask Data Engineering Podcast Episode Jupyter IDL HDF5 Unidata NetCDF CF Metadata Conventions Intake Podcast Episode FSSpec Parquet Data Engineering Podcast Episode Zarr Data Engineering Podcast Pangeo Forge Airbyte Data Engineering Podcast Episode Fivetran Data Engineering Podcast Episode Stitch TileDB Data Engineering Podcast Episode Pythia The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/28/202252 minutes, 8 seconds
Episode Artwork

Automating Application Lifecycles For Developer Happiness At Wayfair

Summary A common piece of advice when starting anything new is to "begin with the end in mind". In order to help the engineers at Wayfair manage the complete lifecycle of their applications Joshua Woodward runs a team that provides tooling and assistance along every step of the journey. In this episode he shares some of the lessons and tactics that they have developed while assisting other engineering teams with starting, deploying, and sunsetting projects. This is an interesting look at the inner workings of large organizations and how they invest in the scaffolding that supports their myriad efforts. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Joshua Woodward about how the application lifecycle team at Wayfair uses Python to Interview Introductions Josh Woodward, for the past year have been managing the application lifecycle team at Wayfair. Prior to that, IC on python platforms team. Embed with teams looking to decouple from monolith. See pain points first hand. How did you get introduced to Python? High school physics class, TI84 Calculator, friend wrote a program to solve vector problems, I thought it was amazing. Used TI-Basic to solve specific physics problems for me. (Give fixed inputs, run through equation, get outputs) Approaching college, thinking about student loans. Heard about python and decided to give it a shot. Wrote program to simulate various payback / interest scenarios. Went to college for ME, switched to SE when I found out my dorm neighbors were using python to draw cool images with python + turtle Can you describe what the role of the application lifecycle team is and the story behind it? Story behind it: Around 2018, in a state where we had deploy congestion, challenging to iterate and ship changes. tech org invested in containerization and decoupling to directly combat this problem. Teams incentiviced to decouple. While on python platforms, the team had already been experimenting with code templating. Standard cookiecutter template for flask apps. Wayfair experimenting with Kubernetes late 2017. Spent 1 year embedding with 4 different teams to help knowledge transfer re: k8s, containers, application setup, python best practices, testing, linting, etc – through that we got a lot of great feedback on our tooling. Took senior engineers weeks to get something setup. Know who to contact, click the right buttons, file the right ticket Approach: Counted manual steps. Something like 60 distinct / atomic activities that had to be performed to get a "hello world" response from a basic flask app in production. Focus on reduce manual steps Released product (Mamba, on theme of snakes) Initially, supporting one main user story. User story: "As an engineer, I would like to create a production ready application in 10 minutes so that I can have a reliable and standardized application setup that follows best practices." grew out of python platforms, created own team with own scope, that was about 1.5 years ago. What is your team’s scope now? Team Scope is to facilitate the creation, maintenance, and decommissioning of decoupled applications at Wayfair. What are the interfaces that your team has to the rest of the organization? People Interfaces: We value getting feedback on our work to build strong products. Make assumptions, Willing to be wrong. Validate assumptions with customers. Software Interfaces: for mamba, CLI at first Backstage (open sourced from spotify) Lots of Github What is your method of determining what projects to work on? (See above). Known pain points. Intuition, Free day fridays. Being comfortable taking risk (using friday time). Vet solution with customers. How do you measure the impact of your work on the rest of the organization? We don’t force use of our products. Adoption of tooling. Number of microservices being spun up. Number of automated pull requests being created, merged. DORA metrics throughput (deployment frequency, lead time for changes) and stability (change failure rate, mean time to recovery) What is the role of Python in your work? we use it and love it! existing skillset from incubation phase within python platforms right tool for the job lightweight automation hitting lots of APIs define lots of user facing specifications (json, yaml) pydantic has been great for creating descriptive, human and machine specifications. open source (we rely on it, we also have some presence) cookiecutter -> columbo gitpython -> pygitops Can you tell me more about your application creation solution. Who can use it, and what does it actually do? Written in python, though it templates out code for any language. Runs automation to onboard an application to production git repo, build pipeline, calling out to various APIs to signal a new app is present Wayfair has a variety of applications (python, java, .net, php, javascript, some go) Team interested in integrating with our solution will create a github repository containing 1..* cookiecutter template(s) Provide a specification for what questions to ask users. Limitation with cookiecutter where the approach to ask questions isn’t dynamic. lack of validation. Pat Lannigan -> Columbo (open sourced). Python DSL to describe the set of questions to ask users. python fastapi application will have a completely different set of questions than a java library for example. You had mentioned that another part of your team scope is to facilitate the maintenance of applications. Can you tell me more about that? Reduce engineering toil around keeping applications up to date. Average engineer owns several, dozens of repos Create automated pull requests: Versioned dependencies (Renovate) Propagating platform changes (Gator) Ex1: python apps use "black" to format code and our python platform team would like to prescribe a line length. Our tooling can be used to declare desired changes. yaml specification -> pr automation at scale. Ex2: shared library, new version released, breaking interface change. Code instructions for performing AST manipulation and resolving breaking change for people. Shift from: "We need you to do this", "I am proactively letting you know that something needs to change, and I also made the change for you!" How do you actually go about creating automated pull requests? manual steps would involve cloning, checking out feature branch, applying code changes, staging / committing, pushing up branch, creating the PR gitpython is an existing and extremely powerful tool, but its api is fairly involved and (by design) doesn’t provide the type of high level abstractions that we need. created pygitops (open sourced), built completely on top of gitpython high level abstractions for the workflow I described. coolest / most pythonic part about it is the "feature branch" context manager. code changes are made in the context of a feature branch when you intentionally or accidentally leave the context of a feature branch, we want certain things to be true (default / main branch, clean workdir, no unstaged changes) when writing PR automation, don’t have to worry about this! Can you describe some of the more technical details about how your change propagation system (Gator) works? heavily inspired by kubernetes resource model (resources are defined via a declarative specification) Kubernetes itself ships with resources that implement behaviors of common resources (pods, services, etc) Gator’s execution model is broken up into two parts: what repos to act on (Source) what are the changes that need to be applied. (Output) Ex: Source to proxy github search. write github search query to get back list of repos Output to scan a repo for regex pattern at specified paths and replace with some fixed term. Very popular, engineers love find and replace. What are the most interesting, innovative, or unexpected ways that you have seen mamba / gator used? resource model of gator supports the idea of we don’t know, what we don’t know reference k8s, CRDs, resource model. container execution log4j identification and remidiation automate some of the work for identifying vulnerabilities java platform team was able to use java native tooling in the environment of their choosing to identify vulnerable apps. What are the most interesting, unexpected, or challenging lessons that you have learned while working on application lifecycle concerns? What do you have planned for the future of application lifecycle management/developer experience improvements at Wayfair? Hope to start open sourcing interesting aspects of our change propagation tool (Gator) As someone who maintains many open source projects, or even at the enterprise level, we think that some of our patterns and approaches can be shared! yaml -> code changes Keep In Touch Email Github Linkedin Picks Tobias Nocciolata hazelnut spread Joshua Cities Skylines Game Cities Skylines – Cities Planner Plays: Verde Beach Links pygitops columbo backstage renovate DORA metrics TI-84 Calculator TI BASIC Wayfair Python Platforms Team Podcast Episode Pydantic Podcast Episode Helm PyUp GitPython The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/20/202246 minutes, 11 seconds
Episode Artwork

Run Your Applications Reliably On Kubernetes Without Losing Sleep With Robusta

Summary Kubernetes is a framework that aims to simplify the work of running applications in production, but it forces you to adopt new patterns for debugging and resolving issues in your systems. Robusta is aimed at making that a more pleasant experience for developers and operators through pre-built automations, easy debugging, and a simple means of creating your own event-based workflows to find, fix, and alert on errors in production. In this episode Natan Yellin explains how the project got started, how it is architected and tested, and how you can start using it today to keep your Python projects running reliably. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan. Your host as usual is Tobias Macey and today I’m interviewing Natan Yellin about Robusta, Interview Introductions How did you get introduced to Python? Can you describe what Robusta is and the story behind it? What are some of the challenges that teams face when running their systems in Kubernetes? How does Robusta help address those difficulties? How does Robusta compare to e.g. Rookout? What are some of the ways that Robusta is able to provide specific insights for Python applications? Can you describe how Robusta is implemented? What are some of the most challenging engineering tasks that you have had to work through while building Robusta? How have the capabilities and components evolved from when you started working on it? What is the workflow for integrating Robusta into a Kubernetes environment and a team’s maintenance processes? What are some examples of the kinds of questions that Robusta can help answer out of the box? What are some tasks that Robusta facilitates which require manual exploration? What are the interfaces available for customizing and extending the functionality of Robusta? What is involved in adding a new automation capability to Robusta? How have you approached the design of the tool to make it ergonomic and intuitive so that it doesn’t contribute to the stresses of dealing with errors in production? Given that it is a tool to help resolve problems in production infrastructure, how have you worked to ensure its reliability and resilience? What is the governance and sustainability model for Robusta? What are the most interesting, innovative, or unexpected ways that you have seen Robusta used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Robusta? When is Robusta the wrong choice? What do you have planned for the future of Robusta? Keep In Touch LinkedIn @aantn on Twitter aantn on GitHub Website Picks Tobias Kubernetes: Up And Running (affiliate link) Natan Kubernetes for SysAdmins Youtube video by Kelsey Hightower Learn to delegate 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 Links Robusta GHOP Objective C Snyk Heroku Google AppEngine OOM Killer Bin Packing/Knapsack Problem Prometheus Kubernetes Pods PySpy tracemalloc Pyrasite VSCode Debugger Pydantic Podcast Episode Helm – Kubernetes package manager Why Profiler The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/14/202253 minutes, 43 seconds
Episode Artwork

Accelerate The Development And Delivery Of Your Machine Learning Applications Using Ray And Deploy It At Anyscale

Summary Building a machine learning application is inherently complex. Once it becomes necessary to scale the operation or training of the model, or introduce online re-training the process becomes even more challenging. In order to reduce the operational burden of AI developers Robert Nishihara helped to create the Ray framework that handles the distributed computing aspects of machine learning operations. To support the ongoing development and simplify adoption of Ray he co-founded Anyscale. In this episode he re-joins the show to share how the project, its community, and the ecosystem around it have grown and evolved over the intervening two years. He also explains how the techniques and adoption of machine learning have influenced the direction of the project. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Robert Nishihara about his work at Anyscale and the Ray distributed execution framework Interview Introductions How did you get introduced to Python? Can you describe what Anyscale is and the story behind it? How has the Ray project and ecosystem evolved since we last spoke? (2 years ago) How has the landscape of AI/ML technologies and techniques shifted in that time? What are the main areas where organizations are trying to apply ML/AI? What are some of the issues that teams encounter when trying to move from prototype to production with ML/AI applications? What are the features of Ray that help to mitigate those challenges? With the introduction of more widely available streaming/real-time technologies the viability of reinforcement learning has increased. What new challenges does that approach introduce? What are some of the operational complexities associated with managing a deployment of Ray? What are some of the specialized utilities that you have had to develop to maintain a large and multi-tenant platform for your customers? What is the governance model around the Ray project and how does the work at Anyscale influence the roadmap? What are the most interesting, innovative, or unexpected ways that you have seen Anyscale/Ray used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Ray and Anyscale? When is Anyscale/Ray the wrong choice? What do you have planned for the future of Anyscale/Ray? Keep In Touch robertnishihara on GitHub @robertnishihara on Twitter Website LinkedIn Picks Tobias The Edge Chronicles: Beyond The Deepwoods Robert Production RL Summit Project Hail Mary by Andy Weir 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 Links Ray Podcast Episode Anyscale UC Berkeley Matlab Deep Learning Pandas NumPy Horovod Podcast Episode XGBoost Modin Podcast Episode Dask Ray Datasets Reinforcement Learning Production Reinforcement Learning Summit AlphaGo Databricks Snowflake Data Engineering Podcast Episode TPU == Tensor Processing Unit Weights and Biases MLFlow RLLib Ray Serve The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/6/202245 minutes, 58 seconds
Episode Artwork

See The Structure Of Your Software At A Glance With Call Graphs From Code2Flow

Summary As software projects grow and change it can become difficult to keep track of all of the logical flows. By visualizing the interconnections of function definitions, classes, and their invocations you can speed up the time to comprehension for newcomers to a project, or help yourself remember what you worked on last month. In this episode Scott Rogowski shares his work on Code2Flow as a way to generate a call graph of your programs. He explains how it got started, how it works, and how you can start using it to understand your Python, Ruby, and PHP projects. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! Subsurface Live is the cloud data lake conference, a virtual conference where data engineers, data scientists, data architects, and data analysts can gather and hear about cloud data lakes and the data ecosystem. Subsurface Live Winter 2022 includes keynote talks from Bill Inmon, the father of the data warehouse, Author of Deep Work Cal Newport, and several more from companies such as Dremio, AWS, dbt, and more. Subsurface will also have many breakout sessions featuring Pandas creator Wes McKinney, Apache Superset & Airflow creator Maxime Beauchemin, and engineers from Apple, Uber, Adobe, Bloomberg, and more. Meet other data professionals and learn about the data technologies and practices helping companies meet their current and future data needs. Register today at pythonpodcast.com/subsurface Your host as usual is Tobias Macey and today I’m interviewing Scott Rogowski about Code2Flow, a utility for generating "pretty good" call graphs for dynamic languages Interview Introductions How did you get introduced to Python? Can you describe what Code2Flow is and the story behind it? What are some of the ways that a program’s call graph might be used? How does the visual representation generated by Code2Flow help with exploring the structure of a project? What are some of the alternative approaches/tools that might be used to gain similar insights? What do you see as the overlap in utility between Code2Flow and e.g. SourceGraph? Can you describe how the Code2Flow project is implemented? How have the design and goals of the project changed since you first began working on it? Given that Code2Flow is implemented in Python, how have you managed the parsing/processing of the other languages that you support? Visualizing a complex program can quickly become very messy. How have you approached the layout of the output to enhance comprehension? What are some of the situations where Code2Flow will be unable to provide a full picture of a program’s call graph? What are some of the pieces of information that are unavailable due to the static analysis approach that you have taken? Can you describe the process of applying Code2Flow to a project? Once the structure is on display, what are some next steps that an individual or team might take to analyze and act on the information? Given the static nature of the output, how might Code2Flow be incorporated in a CI/CD system to provide insight into the evolution of a projects structure? What are the most interesting, innovative, or unexpected ways that you have seen Code2Flow used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Code2Flow? When is Code2Flow the wrong choice? What do you have planned for the future of Code2Flow? Keep In Touch Website scottrogowski on GitHub Picks Tobias Taking Vacation Universal Studios, Florida Scott Service work 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 Links Code2Flow Colombia Mongita TI-83 Ruby PHP AST == Abstract Syntax Tree Graphviz Pylint Robert Frost The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/28/202245 minutes, 34 seconds
Episode Artwork

Scaling Knowledge Management For Technical Teams With Knowledge Repo

Summary One of the most persistent challenges faced by organizations of all sizes is the recording and distribution of institutional knowledge. In technical teams this is exacerbated by the need to incorporate technical review feedback and manage access to data before publishing. When faced with this problem as an early data scientist at AirBnB, Chetan Sharma helped create the Knowledge Repo project as a solution. In this episode he shares the story behind its creation and growth, how and why it was released as open source, and the features that make it a compelling option for your own team’s knowledge management journey. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Chetan Sharma about Knowledge Repo, an open source framework for managing documentation for technical users Interview Introductions How did you get introduced to Python? EE + CS/AI + Stats degrees Airbnb working on ML models Knowledge Repo itself Can you describe what Knowledge Repo is and the story behind it? We started seeing interviewees use ipython notebooks, thought they were great Wanted to push more people to use notebooks, but they weren’t very shareable, vettable Existing notebook hosting services weren’t very good, and weren’t built for people who aren’t data stakeholders. It was especially poor with images, annoying cell blocks Made a simple post processor to remove cell blocks, push the images to s3, and host on flask Once we were pushing notebooks into a Github repo for hosting on a flask app, so many things became possible Review cycles Shareability / collaboration features Indexing / searching Concurrently, great work was happening on developing internal R packages / python libraries to provide consistent, branded aesthetics What are some of the approaches that teams typically take for recording and sharing institutional knowledge? Copy and paste to google docs, slides Facebook was using facebook photo albums untrustworthy, not discoverable, divorced from the code What are the unique requirements that are introduced when attempting to record and distribute learnings related to data such as A/B experiments, analytical methods, data sets, etc.? Reproducibility is a big one Making sure the learnings are trustworthy (good data? no bugs?) Distributing widely, across the org and across time Experimentation Experimentation is at the end of a research-design-build-measure cycle, strategic analysis is often before Capturing all of the context Can you describe how the Knowledge Repo project is architected? Repositories: a store of posts, most commonly a github repo Markdown as original lingua franca, eventually a KR specific “KR post” concept (which is still basically markdown) Post processors Convert whatever upstream file to markdown / KR post (Jupyter notebook, R Markdown, markdown were the original ones) Handle images and other large assets, usually pushing them to cloud storage Evolved to handle PDFs, googledocs, keynotes What were the motivating factors for making it available as an open source project? It was such a common problem. Even incredibly sophisticated data teams at Uber, Facebook, etc. were begging us to share the system. What is the workflow for creating, sharing, and discovering information in an installation of Knowledge Repo? Create a github repo for hosting strategic analysis Use the KR script to create a stub/template for whatever format you’re working in Do your work in Jupyter, etc. Instead of using github scripts (git add) use knowledge scripts (knowledge add), which is basically the github scripts with postprocessors Do typical Github workflows See the result in the hosted knowledge repo app What are some of the options available for extending or customizing an installation of Knowledge Repo? More postprocessors! google docs, presentations, UX research, anything can be done in KR with a simple postprocessor to turn it to markdown/images/PDF Tying the system to your internal data tools. For example, an experimentation system like Eppo or whatever you use for marketing campaigns If you were to start over today, what are some of the ways that you might approach the solution to knowledge management differently? Think of it more holistically: What are the most interesting, innovative, or unexpected ways that you have seen Knowledge Repo used? UX research Writing up guide for acquihiring Demonstrating of capabilities, data framework What are the most interesting, unexpected, or challenging lessons that you have learned while working on Knowledge Repo? Strategic analysis needs to be elevated, this leads to paradigm changes Organization problems are helped by tools like KR: eg. promotions Meeting people’s tools/workflows where they are is powerful When is Knowledge Repo the wrong choice? Keep In Touch LinkedIn @chesharma87 Picks Tobias Learning Guitar Chetan Underrated cooking ingredients: chickpea flour, butter fried kimchi (in grilled cheese, nachos) 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 Links Eppo Data Engineering Podcast Episode Knowledge Repo IPython Jupyter Flask The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/21/202239 minutes, 34 seconds
Episode Artwork

Simplify And Scale Your Software Development Cycles By Putting On Pants (Build Tool)

Summary Software development is a complex undertaking due to the number of options available and choices to be made in every stage of the lifecycle. In order to make it more scaleable it is necessary to establish common practices and patterns and introduce strong opinions. One area that can have a huge impact on the productivity of the engineers engaged with a project is the tooling used for building, validating, and deploying changes introduced to the software. In this episode maintainers of the Pants build tool Eric Arellano, Stu Hood, and Andreas Stenius discuss the recent updates that add support for more languages, efforts made to simplify its adoption, and the growth of the community that uses it. They also explore how using Pants as the single entry point for all of your routine tasks allows you to spend your time on the decisions that matter. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! Building data integration workflows is time consuming and tedious, requiring an unpleasant amount of boilerplate code to do it right. Rivery is a managed platform for building our ELT pipelines that offers the industry’s first native integration with Python, allowing you to seamlessly load and export Pandas dataframes to and from all of your databases, services, and data warehouses with a few clicks and no extra code. Rivery is hosting a live demo of their first class Python support on February 22nd, and when you use the promo code "Python" during registration you will be entered to win a brand new series 7 apple watch. Go to pythonpodcast.com/rivery today to learn more and register. Your host as usual is Tobias Macey and today I’m interviewing Eric Arellano, Stu Hood, and Andreas Stenius about the Pants build tool and all of the work that has gone into it recently Interview Introductions How did you get introduced to Python? Can you describe what Pants is and the story behind it? What is the scope of concerns that Pants is focused on addressing? What are some of the notable changes in the project and its ecosystem over the past 1 1/2 years? How do you approach the work of defining the target scope of the Pants toolchain? What are some of your guiding principles to decide when a feature request belongs in the core vs as a plugin? What are some of the ergonomic improvements that you have added to simplify the work of getting started with Pants and adopting it across teams? What are some of the challenges that teams run into as they start to scale the size of their monorepos? (e.g. project design, boilerplate reduction, etc.) How are you managing the work of growing and supporting the community as you move beyond early adopters/experts into newcomers to Pants and programming? How are you handling support for multiple language ecosystems? What are some of the challenges involved with making Pants feel idiomatic for such a range of communities? How does the use of Python as the plugin/extension syntax work for teams that don’t use it as their primary language? What are the architectural changes that needed to be made for you to be capable of integrating with the different execution environments? How would you characterize the level of feature coverage across the different supported languages? Now that you have laid the foundation, how much effort is required to add new language targets? What are the most interesting, innovative, or unexpected ways that you have seen Pants used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pants? When is Pants the wrong choice? What do you have planned for the future of Pants? Keep In Touch Eric LinkedIn Eric-Arellano on GitHub @earellanoaz on Twitter Stu LinkedIn @stuhood on Twitter stuhood on GitHub Andreas @andreasstenius on Twitter kaos on GitHub Picks Tobias Last Kingdom on Netflix Eric Getting Curious Stu Checks and Balance Podcast Andreas The Pragmatic Programmer Links Pants Make Earthly Podcast Episode MyPy Podcast Episode PyRight Pylint Flake8 Podcast Episode Bazel pre-commit Podcast Episode Underpants library PyOxidizer Podcast Episode Eric PyCon Talk The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/14/202258 minutes, 14 seconds
Episode Artwork

Achieve Repeatable Builds Of Your Software On Any Machine With Earthly

Summary It doesn’t matter how amazing your application is if you are unable to deliver it to your users. Frustrated with the rampant complexity involved in building and deploying software Vlad A. Ionescu created the Earthly tool to reduce the toil involved in creating repeatable software builds. In this episode he explains the complexities that are inherent to building software projects and how he designed the syntax and structure of Earthly to make it easy to adopt for developers across all language environments. By adopting Earthly you can use the same techniques for building on your laptop and in your CI/CD pipelines. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Vlad A. Ionescu about Earthly, a syntax and runtime for software builds to reduce friction between development and delivery Interview Introductions How did you get introduced to Python? Can you describe what Earthly is and the story behind it? What are the core principles that engineers should consider when designing their build and delivery process? What are some of the common problems that engineers run into when they are designing their build process? What are some of the challenges that are unique to the Python ecosystem? What is the role of Earthly in the overall software lifecycle? What are the other tools/systems that a team is likely to use alongside Earthly? What are the components that Earthly might replace? How is Earthly implemented? What were the core design requirements when you first began working on it? How have the design and goals of Earthly changed or evolved as you have explored the problem further? What is the workflow for a Python developer to get started with Earthly? How can Earthly help with the challenge of managing Javascript and CSS assets for web application projects? What are some of the challenges (technical, conceptual, or organizational) that an engineer or team might encounter when adopting Earthly? What are some of the features or capabilities of Earthly that are overlooked or misunderstood that you think are worth exploring? What are the most interesting, innovative, or unexpected ways that you have seen Earthly used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Earthly? When is Earthly the wrong choice? What do you have planned for the future of Earthly? Keep In Touch LinkedIn @VladAIonescu on Twitter Website Picks Tobias Shape Up book Vlad High Output Management by Andy Grove 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 Links Earthly Bazel Pants Podcast Episode ARM AWS Graviton Apple M1 CPU Qemu Phoenix web framework for Elixir language The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/6/202254 minutes, 1 second
Episode Artwork

Building A Detailed View Of Your Software Delivery Process With The Eiffel Protocol

Summary The process of getting software delivered to an environment where users can interact with it requires many steps along the way. In some cases the journey can require a large number of interdependent workflows that need to be orchestrated across technical and organizational boundaries, making it difficult to know what the current status is. Faced with such a complex delivery workflow the engineers at Ericsson created a message based protocol and accompanying tooling to let the various actors in the process provide information about the events that happened across the different stages. In this episode Daniel Ståhl and Magnus Bäck explain how the Eiffel protocol allows you to build a tooling agnostic visibility layer for your software delivery process, letting you answer all of your questions about what is happening between writing a line of code and your users executing it. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Daniel Ståhl and Magnus Bäck about Eiffel, an open protocol for platform agnostic communication for CI/CD systems Interview Introductions How did you get introduced to Python? Can you describe what Eiffel is and the story behind it? What are the goals of the Eiffel protocol and ecosystem? What is the role of Python in the Eiffel ecosystem? What are some of the types of questions that someone might ask about their CI/CD workflow? How does Eiffel help to answer those questions? Who are the personas that you would expect to interact with an Eiffel system? Can you describe the core architectural elements required to integrate Eiffel into the software lifecycle? How have the design and goals of the Eiffel protocol/architecture changed or evolved since you first began working on it? What are some example workflows that an engineering/product team might build with Eiffel? What are some of the challenges that teams encounter when integrating Eiffel into their delivery process? What are the most interesting, innovative, or unexpected ways that you have seen Eiffel used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Eiffel? When is Eiffel the wrong choice? What do you have planned for the future of Eiffel? Keep In Touch Daniel d-stahl-ericsson on GitHub LinkedIn Magnus LinkedIn magnusbaeck on GitHub Picks Tobias Red Notice Daniel The Witcher Magnus Lego 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 Links Eiffel Ericsson Axis Communications Hudson CI framework Spinnaker Jenkins Tekton Gradle Artifactory JSON Schema RabbitMQ Prometheus Continuous Delivery Foundation CD Events XKCD Competing Standards Python Eiffel SDK Pydantic The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/31/202249 minutes, 54 seconds
Episode Artwork

Improve Your Productivity By Investing In Developer Experience Design For Your Projects

Summary When we are creating applications we spend a significant amount of effort on optimizing the experience of our end users to ensure that they are able to complete the tasks that the system is intended for. A similar effort that we should all consider is optimizing the developer experience for ourselves and other engineers who contribute to the projects that we work on. Adam Johnson recently wrote a book on how to improve the developer experience for Django projects and in this episode he shares some of the insights that he has gained through that project and his work with clients to help you improve the experience that you and your team have when collaborating on software development. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Adam Johnson about optimizing your developer experience Interview Introductions How did you get introduced to Python? Can you describe what you mean by the term "developer experience"? How does it compare to the concept of user experience design? What are the main goals that you aim for through improving DX? When considering DX, what are the categories of focus for improvement? (e.g. the experience of a given software project, the developer’s physical environment, their editing environment, etc.) What are some of the most high impact optimizations that a developer can make? What are some of the areas of focus that have the most variable impact on a developer’s experience of a project? What are some of the most helpful tools or practices that you rely on in your own projects? How does the size of a development team or the scale of an organization impact the decisions and benefits around DX improvements? One of the perennial challenges with selecting a given tool or architectural pattern is the continually changing landscape of software. How have your choices for DX strategies changed or evolved over the years? What are the most interesting, innovative, or unexpected developer experience tweaks that you have encountered? What are the most interesting, unexpected, or challenging lessons that you have learned while working on your book? What are some of the potential pitfalls that individuals and teams need to guard against in their quest to improve developer experience for their projects? What are some of the new tools or practices that you are considering incorporating into your own work? Keep In Touch @AdamChainz on Twitter Website adamchainz on GitHub Picks Tobias Eternals movie Adam Fan of Eternals, enjoyed Neil Gaiman series Also general MCU fan, watched it all in lockdown Moon Knight trailer 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 Links Boost Your Django DX Rust Ripgrep Factory Boy Mimesis Podcast Episode Language Server Protocol EditorConfig Starship Command Prompt Pre-Commit Podcast Episode Flake8 Podcast Episode DevDocs Dash library documentation search tool pyupgrade StandardJS Cython Podcast Episode The Phoenix Project The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/24/202242 minutes, 53 seconds
Episode Artwork

An Exploration Of Effective Pandas Practices With Matt Harrison

Summary Pandas has grown to be a ubiquitous tool for working with data at every stage. It has become so well known that many people learn Python solely for the purpose of using Pandas. With all of this activity and the long history of the project it can be easy to find misleading or outdated information about how to use it. In this episode Matt Harrison shares his work on the book "Effective Pandas" and some of the best practices and potential pitfalls that you should know for applying Pandas in your own work. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Matt Harrison about best practices for using Pandas for data exploration, manipulation, and analysis Interview Introductions How did you get introduced to Python? What motivated you to write a book about Pandas? There are a number of books available that cover some aspect of the Pandas framework or its application. What was missing from the available literature? Who is your target audience for this book? What are some of the most surprising things that you have learned about Pandas while working on this book? What are the sharp edges that you see newcomers to pandas run into most frequently? It is easy to use Pandas in a naive manner and get things done. What are some of the bad habits that you have seen people form in their work with Pandas? How and when do those habits become harmful? What are the most interesting, innovative, or unexpected ways that you have seen Pandas used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on this book? What are some of the projects that you are planning to work on in the near/medium term? Keep In Touch Website @__mharrison__ on Twitter Blog mattharrison on GitHub Picks Tobias MSR Snowshoes Matt Telemark Skiing 22 Designs 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 Links Effective Pandas Book (affiliate link with 20% discount code applied) Discount code INIT TCL Perl Pandas Podcast Episode Pandas Extension Arrays Podcast Episode Koalas Dask Data Engineering Podcast Episode Modin Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/15/202249 minutes, 57 seconds
Episode Artwork

Generate Your Text Files With Python Using Cog

Summary Developers hate wasting effort on manual processes when we can write code to do it instead. Cog is a tool to manage the work of automating the creation of text inside another file by executing arbitrary Python code. In this episode Ned Batchelder shares the story of why he created Cog in the first place, some of the interesting ways that he uses it in his daily work, and the unique challenges of maintaining a project with a small audience and a well defined scope. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Ned Batchelder about Cog, a tool for generating files or text from embedded Python logic Interview Introductions How did you get introduced to Python? Can you describe what Cog is and the story behind it? What are the use cases that you initially created Cog to address? What were the shortcomings or extraneous overhead that you encountered in tools such as Jinja, Mako, Genshi, etc. that led you to create a new tool? What was your path from a quick and dirty script that suited your own purposes to turning it into a niche open source project that was general and stable enough for the broader community? One of your claims to fame is your role as the maintainer for coverage.py. How has your experience managing such a widely used project translated to the relatively small and low traffic project like Cog? Can you describe how Cog is implemented? How did you approach the design of the syntactic elements for embedding Python code into a host file? What is the workflow for someone using Cog to generate all or parts of a file? How does the introduction of third party dependencies impact the viability and utility of Cog as compared to other templating systems? What are the most interesting, innovative, or unexpected ways that you have seen Cog used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Cog? When is Cog the wrong choice? What do you have planned for the future of Cog? Keep In Touch Website nedbat on GitHub @nedbat on Twitter LinkedIn Picks Tobias Samson Q9U Microphone Ned McFly Command Line History Tool Go for a walk 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 Links Cog Boston Python Lotus Lotus Notes Zope Cheetah Template Engine Coverage.py Podcast Episode Unix Philosophy Hungarian Notation Jupyter Notebooks GitHub Profile ReadMe Ned’s GitHub Profile Raw Markdown The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/13/202250 minutes, 32 seconds
Episode Artwork

A Friendly Approach To Regression Models For Programmers

Summary Statistical regression models are a staple of predictive forecasts in a wide range of applications. In this episode Matthew Rudd explains the various types of regression models, when to use them, and his work on the book "Regression: A Friendly Guide" to help programmers add regression techniques to their toolbox. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Matthew Rudd about the applications of statistical modeling and regression, and how to start using it for your work Interview Introductions How did you get introduced to Python? Can you start by describing some use cases for statistical regression? What was your motivation for writing a book to explain this family of algorithms to programmers? What are your goals for the book? Who is the target audience? What are some of the different categories of regression algorithms? What are some heuristics for identifying which regression to use? How have you approached the balance of using software principles for explaining the work of building the models with the mathematical underpinnings that make them work? What are some of the concepts that are most challenging for people who are first working with regression models? What are the most interesting, innovative, or unexpected ways that you have seen statistical regression models used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on your book? What are some of the resources that you recommend for folks who want to learn more about the inner workings and applications of regression models after they finish your book? Keep In Touch LinkedIn @MatthewBRudd on Twitter Picks Tobias The Argument podcast from the NY Times Matthew Primus Claypool Lennon Delirium South of Reality Links Regression: A Friendly Guide Sewanee University of the South Sewanee Data Lab Mark Lutz Python books Elements of Statistical Learning Linear Regression Logistic Regression Modeling Binary Data 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 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/2/202245 minutes, 15 seconds
Episode Artwork

Fast, Flexible, and Incremental Task Automation With doit

Summary Every software project needs a tool for managing the repetitive tasks that are involved in building, running, and deploying the code. Frustrated with the limitations of tools like Make, Scons, and others Eduardo Schettino created doit to handle task automation in his own work and released it as open source. In this episode he shares the story behind the project, how it is implemented under the hood, and how you can start using it in your own projects to save you time and effort. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Eduardo Schettino about Doit, a flexible and low overhead task automation tool Interview Introductions How did you get introduced to Python? Can you describe what doit is and the story behind it? What are the main goals and use cases of doit? Can you describe how you approached the implementation of Doit? How has the design changed or evolved since you first began working on it? The realm of task automation tools for developers is an exceedingly crowded one, with each tool prioritizing certain use cases. How would you characterize the position of doit in the current ecosystem? How does it compare to e.g. Click, Invoke, Typer, etc.? What is your guiding philosophy for when and how to add new features? You have been running the project for ~13 years now. How has the evolution of the Python language and ecosystem influenced your approach to the development and maintenance of doit? What is the workflow for getting started with doit and integrating it into your development process? For every project there are some tasks that are identical and some that are bespoke for that application. What are the options for maintaining a standard set of tasks across repositories and composing them with per-project activites? What are some of the useful patterns that you and the community have established for designing tasks and execution graphs? How do you use doit in your own work? What are the most interesting, innovative, or unexpected ways that you have seen doit used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on doit? When is doit the wrong choice? What do you have planned for the future of doit? Keep In Touch LinkedIn schettino72 on GitHub Picks Tobias The Matrix series Eduardo John Pilger 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 Links doit Zope Twisted Django Pyflakes scons Make Nikola Podcast Episode Nose Pytest Podcast Episode Click Typer Invoke Puppet Ansible Chef Sphinx Snakemake Airflow Luigi pytest-incremental import-deps dbm MetalK8s The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/27/202139 minutes, 27 seconds
Episode Artwork

The Technological, Business, and Sales Challenges Of Building The Ethical Ads Network

Summary Whether we like it or not, advertising is a common and effective way to make money on the internet. In order to support the work being done at Read The Docs they decided to include advertisements on the documentation sites they were hosting, but they didn’t want to alienate their users or collect unnecessary information. In this episode David Fischer explains how they built the Ethical Ads network to solve their problem, the technical and business challenges that are involved, and the open source application that they built to power their network. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 David Fischer about the Ethical Ads marketplace and the technology that runs Interview Introductions How did you get introduced to Python? Can you describe what the Ethical Ads project is and the story behind it? What are the technical and organizational requirements involved in running an ad network? How have you approached the problem of kickstarting the flywheel for the two-sided marketplace? What are some of the challenges that you face in building an accurate profile of your audience without using detailed tracking methods? What are the benefits that you see in focusing exclusively on developers in your publisher relationships? Can you describe the design and implementation of the ad server? How has the architecture evolved since you first began working on it? If you were to start over today what might you do differently? How have you approached scaling for performance and geographic distribution? What mechanisms do you use for tracking impressions/measuring ad effectiveness? How can advertisers experiment with A/B testing of ad copy? If someone wants to run their own advertisements with the ethical ads server, what is involved in getting it deployed and integrated into their sites? What are the integration and extension points available for customizing the behavior of the platform? What are some of the most notable lessons that you have learned about online advertising since you first started working on the Ethical Ads project? What are the most interesting, innovative, or unexpected ways that you have seen Ethical Ads used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the Ethical Ads platform? What do you have planned for the future of the Ethical Ads platform? Keep In Touch davidfischer on GitHub @djfische on Twitter LinkedIn Picks Tobias Ship It! Podcast David Local Python Meetup Click CLI framework useragents library TLD for parsing internet domains 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 Links Ethical Ads Network Ethical Ads Server San Diego Python Read The Docs Podcast Episode CodeFund CPM == Cost Per Mille The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/20/202155 minutes, 48 seconds
Episode Artwork

Accidentally Building A Business With Python At Listen Notes

Summary Podcasts are one of the few mediums in the internet era that are still distributed through an open ecosystem. This has a number of benefits, but it also brings the challenge of making it difficult to find the content that you are looking for. Frustrated by the inability to pick and choose single episodes across various shows for his listening Wenbin Fang started the Listen Notes project to fulfill his own needs. He ended up turning that project into his full time business which has grown into the most full featured podcast search engine on the market. In this episode he explains how he build the Listen Notes application using Python and Django, his work to turn it into a sustainable business, and the various ways that you can build other applications and experiences on top of his API. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Wenbin Fang about the technology powering the Listen Notes podcast discovery platform Interview Introductions How did you get introduced to Python? Can you describe what Listen Notes is and the story behind it? What are some of the main goals that listeners have when searching for a podcast? What are the challenges that they commonly encounter when looking for information in a podcast? What are the different sources of information that you can use to extract useful details about a podcast? How do you identify and prioritize new features or product enhancements? Can you describe how the Listen Notes platform is architected? How has it changed or evolved since you first began working on it? How did you approach the technology selection for the initial version of Listen Notes? If you were to start over today, what might you do differently? What are the technical challenges that are posed by the ecosystem around podcasts? What are the biggest changes that have happened in the methods of production and consumption for podcasts since you first became involved in the space? How do you approach the design and contracts of the Listen Notes web API given how core that is to your platform? What are the most complex or complicated engineering projects that you have done for Listen Notes? What are the pieces of the infrastructure for podcasts that you would like to see improved, changed, or replaced? What are some of the kinds of projects that developers can build with the Listen Notes API? What, if any, impact have the introduction of podcasts to closed platforms such as Spotify, Amazon Music, etc. had on your business? What are some of the most surprising things that you have learned about podcasts and their consumption while building Listen Notes? What are the most interesting, innovative, or unexpected ways that you have seen Listen Notes used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Listen Notes? What do you have planned for the future of Listen Notes? Keep In Touch Website LinkedIn wenbinf on GitHub @wenbinf on Twitter Picks Tobias Wheel of Time TV Series Wenbin Superhuman email client Links Listen Notes Graphviz NextDoor PostgreSQL Elasticsearch Redis RabbitMQ Celery ReactJS Django Bootstrap CSS Digital Ocean Tailwind CSS Entity Resolution Clickhouse Data Engineering Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/12/202143 minutes, 28 seconds
Episode Artwork

Making Orbital Mechanics More Accessible With Poliastro

Summary Outer space holds a deep fascination for people of all ages, and the key principle in its exploration both near and far is orbital mechanics. Poliastro is a pure Python package for exploring and simulating orbit calculations. In this episode Juan Luis Cano Rodriguez shares the story behind the project, how you can use it to learn more about space travel, and some of the interesting projects that have used it for planning planetary and interplanetary missions. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Juan Luis Cano Rodriguez about Poliastro, an open source library for interactive Astrodynamics and Orbital Mechanics, with a focus on ease of use, speed, and quick visualization. Interview Introductions How did you get introduced to Python? Can you describe what Poliastro is and the story behind it? What are some of the simulations that Poliastro is designed to be used for? How much knowledge of orbital mechanics is necessary to get started with Poliastro? Can you describe how the project is implemented? How have the goals and design of the project changed or evolved since you first started it? What are some of the design philosophies that you focus on to make the package accessible to the range of users that you support? Can you talk through the workflow of using Poliastro to do something like track the path of the ISS and its traversal of the debris field from the recent satellite destruction? What are some of the other libraries or frameworks that are commonly used with Poliastro? How are you using Poliastro in your own work? What are some overlooked or underused aspects of the project that you would like to highlight? What are the most interesting, innovative, or unexpected ways that you have seen Poliastro used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Poliastro? When is Poliastro the wrong choice? What do you have planned for the future of Poliastro? Keep In Touch LinkedIn GitHub Email Twitter Picks Tobias Josh Blue (comedian) Juan Luis DJ Cotts DJ Weaver 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 Links Poliastro Fortran 90 (if only this community existed back then! https://ondrejcertik.com/blog/2021/03/resurrecting-fortran/)?utm_source=rss&utm_medium=rss Satellogic Read the Docs Wolfram Alpha Mathematica SageMath 2-Body Problem AstroPy Podcast Episode Numba Import Linter Vallado "Fundamentals of Astrodynamics" International Space Station Starlink Satellites Planetary Ephemeritas Data Satellite Data Kerbal Space Program NumFOCUS Open Collective Python SGP4 Libre Space Foundation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/27/202158 minutes, 59 seconds
Episode Artwork

Build Better Analytics And Models With A Focus On The Data Experience

Summary A lot of time and energy goes into data analysis and machine learning projects to address various goals. Most of the effort is focused on the technical aspects and validating the results, but how much time do you spend on considering the experience of the people who are using the outputs of these projects? In this episode Benn Stancil explores the impact that our technical focus has on the perceived value of our work, and how taking the time to consider what the desired experience will be can lead us to approach our work more holistically and increase the satisfaction of everyone involved. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Benn Stancil about the perennial frustrations of working with data and thoughts on how to improve the experience Interview Introductions How did you get introduced to Python? Can you start by discussing your perspective on the most frustrating elements of working with data in an organization? How might that compound when working with machine learning? What are the sources of the disconnect between our level of technical sophistication and our ability to produce meaningful insights from our data? There have been a number of formulations about a "hierarchy of needs" pertaining to data. When the goal is to bring ML/AI methods to bear on an organization’s processes or products how can thinking about the intended experience act to improve the end result? What are some failure modes or suboptimal outcomes that might be expected when building from a tooling/technology/technique first mindset? What are some of the design elements that we can incorporate into our development environments/data infrastructure/data modeling that can incentivize a more experience driven process for building data products/analyses/ML models? How does the design and capabilities of the Mode platform allow teams to progress along the journey from data discovery to descriptive analytics, to ML experiments? What are the most interesting, innovative, or unexpected approaches that you have seen for encouraging the creation of positive data experiences? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Mode and data analysis? When is a data experience the wrong approach? What do you have planned for the future of Mode to support this ideal? Keep In Touch LinkedIn @bennstancil on Twitter Picks Tobias Venture Unlocked Podcast Benn Wrap Text by Bobby Pinero Counting Stuff by Randy Au Ray Data Co by Mr Ben Modern Data Democracy By JP Monteiro Bad Blood Podcast Bad Blood Book Links Mode Analytics Tidyverse Airflow Fivetran Data Engineering Podcast Episode dbt Data Engineering Podcast Episode Conway’s Law Cinchy Data Engineering Podcast Episode Reverse ETL The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/22/202159 minutes, 27 seconds
Episode Artwork

Declarative Deep Learning From Your Laptop To Production With Ludwig and Horovod

Summary Deep learning frameworks encourage you to focus on the structure of your model ahead of the data that you are working with. Ludwig is a tool that uses a data oriented approach to building and training deep learning models so that you can experiment faster based on the information that you actually have, rather than spending all of our time manipulating features to make them match your inputs. In this episode Travis Addair explains how Ludwig is designed to improve the adoption of deep learning for more companies and a wider range of users. He also explains how the Horovod framework plugs in easily to allow for scaling your training workflow from your laptop out to a massive cluster of servers and GPUs. The combination of these tools allows for a declarative workflow that starts off easy but gives you full control over the end result. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Travis Adair about building and training machine learning models with Ludwig and Horovod Interview Introductions How did you get introduced to Python? Can you describe what Horovod and Ludwig are? How do the projects work together? What was your path to being involved in those projects and what is your current role? There are a number of AutoML libraries available for frameworks such as scikit-learn, etc. What are the challenges that are introduced by applying that workflow to deep learning architectures? What are the use cases that Ludwig is designed to enable? Who are the target users of Ludwig? How do the workflows change/progress for the different personas? How is the underlying framework architected? What are the available extension points to provide a progressive exposure of complexity? How have the goals and design of the project changed or evolved as it has gained more widespread adoption beyond Uber? What was the motivation for migrating the core of Ludwig from Tensorflow to Pytorch? Can you describe the workflow of building a model definition with Ludwig? How much knowledge of neural network architectures and their relevant characteristics is necessary to use Ludwig effectively? What are the motivating factors for adding Horovod to the process? What is involved in moving from a single machine/single process training loop to a multi-core or multi-machine distributed training process? The combination of Ludwig and Horovod provide a shallower learning curve for building and scaling model training. What do you see as their potential impact on the availability and adoption of more sophisticated ML capabilities across organizations of varying scale? What do you see as other significant barriers to widespread use of ML functionality? What are the most interesting, innovative, or unexpected ways that you have seen Ludwig and/or Horovod used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Ludwig and Horovod? When is Ludwig and/or Horovod the wrong choice? What do you have planned for the future of both projects? Keep In Touch LinkedIn @TravisAddair on Twitter tgaddair on GitHub Picks Tobias Zeal and Ardor Travis Opeth Agaloch 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 Links Ludwig Horovod Predibase Uber Michelangelo Tensorflow PyTorch Podcast Episode Gradient Boosted Trees XGBoost CatBoost LightGBM PyCaret HyperBand scikit-optimize Keras Vision Transformer Architecture HuggingFace Jax DeepSpeed AllReduce Nvidia Collective Communications Library (NCCL) Training Epoch ElasticDL Raft Consensus Algorithm TorchScript Transfer Learning Gordon Bell Prize Anyscale Ray Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/22/20211 hour, 4 minutes, 48 seconds
Episode Artwork

Building Conversational AI to Augment Sales Teams at Structurely

Summary The true power of artificial intelligence is its ability to work collaboratively with humans. Nate Joens co-founded Structurely to create a conversational AI platform that augments human sales teams to help guide potential customers through the initial steps of the funnel. In this episode he discusses the technical and social considerations that need to be combined for a seamless conversational experience and how he and his team are tackling the problem. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Nate Joens about his work at Structurely to build conversational AI utilities that augment human sales interactions Interview Introductions How did you get introduced to Python? Can you describe what Structurely is and the story behind it? What are the elements that comprise a "conversational AI"? How is it distinct from the wave of chatbots that were popular in recent years? What lessons from that approach can we take forward into AI enabled conversational platforms? How are you applying AI to the sales process? How much domain expertise is necessary to make an effective and engaging conversational AI? (e.g. knowledge of sales techniques vs. knowledge of real estate, etc.) Can you describe how you have designed the Structurely platform? What are the biggest engineering challenges that you have had to work through? What challenges or complexities have been most persistent? What are the design complexities that you have to work through to make the AI accessible for end users? What are some of the advancements in AI/NLP/transfer learning that have been most beneficial for teams building conversational AI? What are the signals that you emphasize when monitoring the performance of your models? What is your approach for feeding real-world customer interactions back into your model development and training loop? What are the most active areas of research in conversational AI applications and techniques? What are the most interesting, innovative, or unexpected ways that you have seen Structurely and/or conversational AI used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on conversational AI at Structurely? When is conversational AI the wrong choice? What do you have planned for the future of Structurely? Keep In Touch @whonatejoens on Twitter LinkedIn Picks Tobias Vantage AWS Cost Management Nate VideoForm 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 Links Stucturely GIS Generative AI GPT-3 Sanky Diagram PyTorch Podcast Episode Allen Institute for AI F Score Snorkel Podcast Episode Few-Shot Learning Zero Shot Learning Voxable The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/6/202150 minutes, 59 seconds
Episode Artwork

Build Composable And Reusable Feature Engineering Pipelines with Feature-Engine

Summary Every machine learning model has to start with feature engineering. This is the process of combining input variables into a more meaningful signal for the problem that you are trying to solve. Many times this process can lead to duplicating code from previous projects, or introducing technical debt in the form of poorly maintained feature pipelines. In order to make the practice more manageable Soledad Galli created the feature-engine library. In this episode she explains how it has helped her and others build reusable transformations that can be applied in a composable manner with your scikit-learn projects. She also discusses the importance of understanding the data that you are working with and the domain in which your model will be used to ensure that you are selecting the right features. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Soledad Galli about feature-engine, a Python library to engineer features for use in machine learning models Interview Introductions How did you get introduced to Python? Can you describe what feature-engine is and the story behind it? What are the complexities that are inherent to feature engineering? What are the problems that are introduced due to incidental complexity and technical debt? What was missing in the available set of libraries/frameworks/toolkits for feature engineering that you are solving for with feature-engine? What are some examples of the types of domain knowledge that are needed to effectively build features for an ML model? Given the fact that features are constructed through methods such as normalizing data distributions, imputing missing values, combining attributes, etc. what are some of the potential risks that are introduced by incorrectly applied transformations or invalid assumptions about the impact of these manipulations? Can you describe how feature-engine is implemented? How have the design and goals of the project changed or evolved since you started working on it? What (if any) difference exists in the feature engineering process for frameworks like scikit-learn as compared to deep learning approaches using PyTorch, Tensorflow, etc.? Can you describe the workflow of identifying and generating useful features during model development? What are the tools that are available for testing and debugging of the feature pipelines? What do you see as the potential benefits or drawbacks of integrating feature-engine with a feature store such as Feast or Tecton? What are the most interesting, innovative, or unexpected ways that you have seen feature-engine used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on feature-engine? When is feature-engine the wrong choice? What do you have planned for the future of feature-engine? Keep In Touch LinkedIn @Soledad_Galli on Twitter solegalli on GitHub Picks Tobias Dune Movie Dune Series Soledad The Social Dilemma Don’t Be Evil by Rana Foroohar 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 Links feature-engine Feature Engineering Python Feature Engineering Cookbook scikit-learn Feature Stores Podcast Episode Pandas Podcast Episode PyTorch Podcast Episode Tensorflow Feast Tecton Data Engineering Podcast Episode Kaggle Dask Data Engineering Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/31/202153 minutes, 29 seconds
Episode Artwork

Speed Up Your Python Data Applications By Parallelizing Them With Bodo

Summary The speed of Python is a subject of constant debate, but there is no denying that for compute heavy work it is not the optimal tool. Rather than rewriting your data oriented applications, or having to rearchitect them, the team at Bodo wrote a compiler that will do the optimization for you. In this episode Ehsan Totoni explains how they are able to translate pure Python into massively parallel processes that are optimized for high performance compute systems. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Ehsan Totoni about Bodo, an inferential compiler for Python that automatically parallelizes your data oriented projects Interview Introductions How did you get introduced to Python? Can you describe what Bodo is and the story behind it? What are some of the use cases that it is being applied to? What are the motivating factors for something like Dask or Ray as compared to Bodo? What are the software patterns that contribute to slowdowns in data processing code? What are some of the ways that the compiler is able to optimize those operations? Can you describe how Bodo is implemented? How does Bodo process the Python code for compiling to the optimized form? What are the compilation techniques for understanding the semantics of the code being processed? How do you manage packages that rely on C extensions? What do you use as an intermediate representation for translating into the optimized output? What is the workflow for applying Bodo to a Python project? What debugging utilities does it provide for identifying any errors that occur due to the added parallelism? What kind of support does Bodo have for optimizing a machine learning project with Bodo? (e.g. using PyTorch/Tensorflow/MxNet/etc.) When working with a workflow orchestrator such as Dagster for Airflow, what would the integration process look like for being able to take advantage of the optimized Bodo output? What are the most interesting, innovative, or unexpected ways that you have seen Bodo used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Bodo? When is Bodo the wrong choice? What do you have planned for the future of Bodo? Keep In Touch LinkedIn @EhsanTn on Twitter ehsantn on GitHub Picks Tobias Paracord Crafts Ehsan [ 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 Links Bodo Data Engineering Podcast Episode University of Illinois Urbana-Champaign HPC MPI Elastic Fabric Adapter All-to-All Communication Dask Data Engineering Podcast Episode Ray Podcast Episode Pandas Extension Arrays Podcast Episode GeoPandas Numba LLVM scikit-learn Horovod Dagster Podcast.__init__ Episode Data Engineering Podcast Episode Airflow Podcast Episode IPython Parallel Parquet The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/25/202158 minutes, 6 seconds
Episode Artwork

An Exploration Of Financial Exchange Risk Management Strategies

Summary The world of finance has driven the development of many sophisticated techniques for data analysis. In this episode Paul Stafford shares his experiences working in the realm of risk management for financial exchanges. He discusses the types of risk that are involved, the statistical methods that he has found most useful for identifying strategies to mitigate that risk, and the software libraries that have helped him most in his work. Announcements Hello and welcome to the Data Engineering Podcast, the show about modern data management When you’re ready to build your next pipeline, or want to test out the projects you hear about on the show, you’ll need somewhere to deploy it, so check out our friends at Linode. With their managed Kubernetes platform it’s now even easier to deploy and scale your workflows, or try out the latest Helm charts from tools like Pulsar and Pachyderm. With simple pricing, fast networking, object storage, and worldwide data centers, you’ve got everything you need to run a bulletproof data platform. Go to dataengineeringpodcast.com/linode today 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 Paul Stafford about building risk models to guard against financial exchange rate volatility Interview Introductions How did you get introduced to Python? What are the principles involved in risk management, and how are statistical methods used? How did you get involved in financial markets? In what ways did your background in science and engineering prepare you for work in finance and risk management? What are the tools that you have found most useful in your career in finance? How have recent trends such as the widespread adoption of deep learning impacted the capabilities and risks present in foreign exchange strategies? What are the challenges that you face in obtaining and validating the input data that you are relying on for building financial and statistical models? How has the volatility of the pandemic impacted the robustness and resilience of your predictive capabilities? What are the areas where the available tools are typically insufficient? What are the most interesting, innovative, or unexpected strategies or techniques that you have seen applied to risk management? What are the most interesting, unexpected, or challenging lessons that you have learned while working in risk management? What are the economic and industry trends that you are keeping a close eye on for your work at Deaglo and your own personal projects? Keep In Touch LinkedIn Picks Tobias The Vault (movie) Paul Motorcycle Trip of the Grand Canyon Links Deaglo Partners, LLC. Value At Risk (VaR) Black-Scholes Equation Linear Algebra Principal Component Analysis Eigenvectors and Eigenvalues Markov Chain Monte Carlo Violin Plot Kurtosis PyMC3 Podcast Episode Bayesian Regression Constrained Optimization Ethereum Smart Contracts Behavioral Finance Black Swan by Nassim Nicholas Taleb (affiliate link) SciPy Convention RealPython 3Blue1Brown Sentiment Analysis The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/16/202134 minutes, 30 seconds
Episode Artwork

Build Better Machine Learning Models By Understanding Their Decisions With SHAP

Summary Machine learning and deep learning techniques are powerful tools for a large and growing number of applications. Unfortunately, it is difficult or impossible to understand the reasons for the answers that they give to the questions they are asked. In order to help shine some light on what information is being used to provide the outputs to your machine learning models Scott Lundberg created the SHAP project. In this episode he explains how it can be used to provide insight into which features are most impactful when generating an output, and how that insight can be applied to make more useful and informed design choices. This is a fascinating and important subject and this episode is an excellent exploration of how to start addressing the challenge of explainability. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Scott Lundberg about SHAP, a library that implements a game theoretic approach to explain the output of any machine learning model Interview Introductions How did you get introduced to Python? Can you describe what SHAP is and the story behind it? What are some of the contexts that create the need to explain the reasoning behind the outputs of an ML model? How do different types of models (deep learning, CNN/RNN, bayesian vs. frequentist, etc.) and different categories of ML (e.g. NLP, computer vision) influence the challenge of understanding the meaningful signals in their reasoning? Taking a step back, how do you define "explainability" when discussing inferences produced by ML models? What are the degrees of specificity/accuracy when seeking to understand the decision processes involved? Can you describe how SHAP is implemented? What are the signals that you are tracking to understand what features are being used to determine a given output? What are the assumptions that you had as you started this project that have been challenged or updated as you explored the problem in greater depth? Can you describe the workflow for someone using SHAP? What are the challenges faced by practitioners in interpreting the visualizations generated from SHAP? How much domain knowledge and context is necessary to use SHAP effectively? What are the ongoing areas of research around tracking of ML decision processes? How are you using SHAP in your own work? What are the most interesting, innovative, or unexpected ways that you have seen SHAP used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on SHAP? When is SHAP the wrong choice? What do you have planned for the future of SHAP? Keep In Touch slundberg on GitHub Website LinkedIn Picks Tobias Reminiscence Scott Augustine’s Confessions Links SHAP Microsoft Research Matlab Game Theory Computational Biology LIME Shapley Values Julia Language ResNet CNN == Convolutional Neural Network RNN == Recurrent Neural Network A* Algorithm CFPB == Consumer Financial Protection Bureau NP Hard Huggingface Right for the Right Reasons: Training Differentiable Models by Constraining their Explanations Numba Log Odds InterpretML Polyjuice The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/9/20211 hour, 4 minutes, 54 seconds
Episode Artwork

Accelerating Drug Discovery Using Machine Learning With TorchDrug

Summary Finding new and effective treatments for disease is a complex and time consuming endeavor, requiring a high degree of domain knowledge and specialized equipment. Combining his expertise in machine learning and graph algorithms with is interest in drug discovery Jian Tang created the TorchDrug project to help reduce the amount of time needed to find new candidate molecules for testing. In this episode he explains how the project is being used by machine learning researchers and biochemists to collaborate on finding effective treatments for real-world diseases. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Jian Tang about TorchDrug Interview Introductions How did you get introduced to Python? Can you describe what TorchDrug is and the story behind it? What are the goals of the TorchDrug project? Who are the target users of the project? What are the main ways that it is being used? What are the challenges faced by biologists and chemists working on development and discovery of pharmaceuticals? What are some of the other tools/techniques that they would use (in isolation or combination with TorchDrug)? Can you describe how TorchDrug is implemented? How have you approached the design of the project and its APIs to make it accessible to engineers that don’t possess domain expertise in drug discovery research? How do graph structures help when modeling and experimenting with chemical structures for drug discovery? What are the formats and sources of data that you are working with? What are some of the complexities/challenges that you have had to deal with to integrate with up or downstream systems to fit into the overall research process? Can you talk through the workflow of using TorchDrug to build and validate a model? What is involved in determining and codifying a goal state for the model to optimize for? What are the biggest open questions in the area of drug discovery and research? How is TorchDrug being used to assist in the exploration of those problems? What are the most interesting, unexpected, or challenging lessons that you have learned while working on TorchDrug? When is TorchDrug the wrong choice? What do you have planned for the future of TorchDrug? Keep In Touch tangjianpku on GitHub @tangjianpku on Twitter Website LinkedIn Picks Tobias Rope refactoring library Jian Attending conferences once the pandemic is over 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 TorchDrug Mila Yoshua Bengio Alphafold Few-shot learning Metalearning PyTorch Geometric DeepGraph Library NetworKit Podcast Episode graph-tool Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/30/202144 minutes, 30 seconds
Episode Artwork

An Exploration Of Automated Speech Recognition

Summary The overwhelming growth of smartphones, smart speakers, and spoken word content has corresponded with increasingly sophisticated machine learning models for recognizing speech content in audio data. Dylan Fox founded Assembly to provide access to the most advanced automated speech recognition models for developers to incorporate into their own products. In this episode he gives an overview of the current state of the art for automated speech recognition, the varying requirements for accuracy and speed of models depending on the context in which they are used, and what is required to build a special purpose model for your own ASR applications. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Dylan Fox about the challenges of training and deploying large models for automated speech recognition Interview Introductions How did you get introduced to Python? What is involved in building an ASR model? How does the complexity/difficulty compare to models for other data formats? (e.g. computer vision, NLP, NER, etc.) How have ASR models changed over the last 5, 10, 15 years? What are some other categories of ML applications that work with audio data? How does the level of complexity compare to ASR applications? What is the typical size of an ASR model that you are deploying at Assembly? What are the factors that contribute to the overall size of a given model? How does accuracy compare with model size? How does the size of a model contribute to the overall challenge of deploying/monitoring/scaling it in a production environment? How can startups effectively manage the time/cost that comes with training large models? What are some techniques that you use/attributes that you focus on for feature definitions in the source audio data? Can you describe the lifecycle stages of an ASR model at Assembly? What are the aspects of ASR which are still intractable or impractical to productionize? What are the most interesting, innovative, or unexpected ways that you have seen ASR technology used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on ASR? What are the trends in research or industry that you are keeping an eye on? Keep In Touch LinkedIn @YouveGotFox on Twitter Picks Tobias The Hitman’s Wife’s Bodyguard Dylan Inspiration 4 Documentary 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 Learn Python The Hard Way DeepSpeech Wav2Letter BERT GPT-3 Convolutional Neural Network (CNN) Recurrent Neural Network (RNN) Mycroft Podcast Episode CMU Sphinx Pocket Sphinx Gaussian Mixture Model (GMM) Hidden Markov Model (HMM) DeepSpeech Paper Transformer Architecture Audio Analytic Sound Recognition Podcast Episode Horovod distributed training library Knowledge Distillation Libre Speech Data Set Lambda Labs Wav2Vec The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/26/202154 minutes, 1 second
Episode Artwork

Experimenting With Reinforcement Learning Using MushroomRL

Summary Reinforcement learning is a branch of machine learning and AI that has a lot of promise for applications that need to evolve with changes to their inputs. To support the research happening in the field, including applications for robotics, Carlo D’Eramo and Davide Tateo created MushroomRL. In this episode they share how they have designed the project to be easy to work with, so that students can use it in their study, as well as extensible so that it can be used by businesses and industry professionals. They also discuss the strengths of reinforcement learning, how to design problems that can leverage its capabilities, and how to get started with MushroomRL for your own work. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Davide Tateo and Carlo D’Eramo about MushroomRL, a library for building reinforcement learning experiments Interview Introductions How did you get introduced to Python? Can you start by describing what reinforcement learning is and how it differs from other approaches for machine learning? What are some example use cases where reinforcement learning might be necessary? Can you describe what MushroomRL is and the story behind it? Who are the target users of the project? What are its main goals? What are your suggestions to other developers for implementing a succesful library? What are some of the core concepts that researchers and/or engineers need to understand to be able to effectively use reinforcement learning techniques? Can you describe how MushroomRL is architected? How have the goals and design of the project changed or evolved since you began working on it? What is the workflow for building and executing an experiment with MushroomRL? How do you track the states and outcomes of experiments? What are some of the considerations involved in designing an environment and reward functions for an agent to interact with? What are some of the open questions that are being explored in reinforcement learning? How are you using MushroomRL in your own research? What are the most interesting, innovative, or unexpected ways that you have seen MushroomRL used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on MushroomRL? When is MushroomRL the wrong choice? What do you have planned for the future of MushroomRL? How can the open-source community contribute to MushroomRL? What kind of support you are willing to provide to users? Keep In Touch Davide boris-il-forte on GitHub Website Carlo carloderamo on GitHub Website Picks Tobias Britannia TV Series Davide 1984 by George Orwell Carlo Twin Peaks TV Series 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 MushroomRL TU Darmstadt MuJoCo PyBullet iGibson Habitat OpenAI Gym PyTorch Podcast Episode RLLib Ray Podcast Episode OpenAI Baselines Stable Baselines ROS The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/19/202154 minutes, 18 seconds
Episode Artwork

Doing Dask Powered Data Science In The Saturn Cloud

Summary A perennial problem of doing data science is that it works great on your laptop, until it doesn’t. Another problem is being able to recreate your environment to collaborate on a problem with colleagues. Saturn Cloud aims to help with both of those problems by providing an easy to use platform for creating reproducible environments that you can use to build data science workflows and scale them easily with a managed Dask service. In this episode Julia Signall, head of open source at Saturn Cloud, explains how she is working with the product team and PyData community to reduce the points of friction that data scientists encounter as they are getting their work done. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Julia Signell about building distributed processing workflows in Python through the power of Dask Interview Introductions How did you get introduced to Python? Can you describe what you are building at Saturn Cloud? Who are your target users and how does that inform the features and priorities that you build into your platform? What are the road blocks that data scientists typically encounter when working on their laptop/workstation? How does open source factor into the Saturn product? What are some of the projects that you are collaborating with/contributing to as part of your work at Saturn? How has your experience at Anaconda informed your work at Saturn? Can you describe how the Saturn Cloud platform is architected? How has it changed or evolved since it was first launched? Can you describe the learning curve that data scientists go through when adopting Dask? What are some examples of projects or workflows that Dask enables which are not possible/practical to do locally? How would you characterize the overall awareness/adoption of Dask in the Python data science community? What are the most interesting, innovative, or unexpected ways that you have seen Saturn Cloud used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Saturn Cloud? When is Saturn Cloud the wrong choice? What do you have planned for the future of Saturn Cloud? Keep In Touch @jsignell on Twitter jsignell on GitHub Picks Tobias Peter Rabbit 2 Julia PawPaw Fruit 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 Saturn Cloud Dask Podcast Episode Pangeo XArray Conda Mamba Holoviz Dash Anaconda Podcast Episode Kubernetes Tornado Podcast Episode Prefect Podcast Episode Dagster Podcast Episode Airflow Ray Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/10/202138 minutes
Episode Artwork

Monitor The Health Of Your Machine Learning Products In Production With Evidently

Summary You’ve got a machine learning model trained and running in production, but that’s only half of the battle. Are you certain that it is still serving the predictions that you tested? Are the inputs within the range of tolerance that you designed? Monitoring machine learning products is an essential step of the story so that you know when it needs to be retrained against new data, or parameters need to be adjusted. In this episode Emeli Dral shares the work that she and her team at Evidently are doing to build an open source system for tracking and alerting on the health of your ML products in production. She discusses the ways that model drift can occur, the types of metrics that you need to track, and what to do when the health of your system is suffering. This is an important and complex aspect of the machine learning lifecycle, so give it a listen and then try out Evidently for your own projects. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Emeli Dral about monitoring machine learning models in production with Evidently Interview Introductions How did you get introduced to Python? Can you describe what Evidently is and the story behind it? What are the metrics that are useful for determining the performance and health of a machine learning model? What are the questions that you are trying to answer with those metrics? How does monitoring of machine learning models compare to monitoring of infrastructure or "traditional" software projects? What are the failure modes for a model? Can you describe the design and implementation of Evidently? How has the architecture changed or evolved since you started working on it? What categories of model is Evidently designed to work with? What are some strategies for making models conducive to monitoring? What is involved in monitoring a model on a continuous basis? What are some considerations when establishing useful thresholds for metrics to alert on? Once an alert has been triggered what is the process for resolving it? If the training process takes a long time, how can you mitigate the impact of a model failure until the new/updated version is deployed? What are the most interesting, innovative, or unexpected ways that you have seen Evidently used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Evidently? When is Evidently the wrong choice? What do you have planned for the future of Evidently? Keep In Touch LinkedIn @EmeliDral on Twitter emeli-dral on GitHub Picks Tobias The Suicide Squad Emeli Airflow Links Evidently AI Open Source Yandex Grafana The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/3/202150 minutes, 59 seconds
Episode Artwork

Making Automated Machine Learning More Accessible With EvalML

Summary Building a machine learning model is a process that requires a lot of iteration and trial and error. For certain classes of problem a large portion of the searching and tuning can be automated. This allows data scientists to focus their time on more complex or valuable projects, as well as opening the door for non-specialists to experiment with machine learning. Frustrated with some of the awkward or difficult to use tools for AutoML, Angela Lin and Jeremy Shih helped to create the EvalML framework. In this episode they share the use cases for automated machine learning, how they have designed the EvalML project to be approachable, and how you can use it for building and training your own models. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Angela Lin, Jeremy Shih about EvalML, an AutoML library which builds, optimizes, and evaluates machine learning pipelines Interview Introductions How did you get introduced to Python? Can you describe what EvalML is and the story behind it? What do we mean by the term AutoML? What are the kinds of problems that are best suited to applications of automated ML? What does the landscape for AutoML tools look like? What was missing in the available offerings that motivated you and your team to create EvalML? Who is the target audience for EvalML? How is the EvalML project implemented? How has the project changed or evolved since you first began working on it? What is the workflow for building a model with EvalML? Can you describe the preprocessing steps that are necessary and the input formats that it is expecting? What are the supported algorithms/model architectures? How does EvalML explore the search space for an optimal model? What decision functions does it employ to determine an appropriate stopping point? What is involved in operationalizing an AutoML pipeline? What are some challenges or edge cases that you see users of EvalML run into? What are the most interesting, innovative, or unexpected ways that you have seen EvalML used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on EvalML? When is EvalML the wrong choice? When is auto ML the wrong approach? What do you have planned for the future of EvalML? Keep In Touch Angela angela97lin on GitHub LinkedIn Jeremy jeremyliweishih on GitHub LinkedIn Picks Tobias Gloryhammer Angela Sarma mediterranean restaurant Jeremy Crucial Conversations by Stephen Covey (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 EvalML FeatureLabs Alteryx Scheme NetLogo Flask AutoML Woodwork FeatureTools Compose Random Forest XGBoost Prophet GreyKite Shap The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/25/202145 minutes, 53 seconds
Episode Artwork

Growing And Supporting The Data Science Community At Anaconda

Summary Data scientists are tasked with answering challenging questions using data that is often messy and incomplete. Anaconda is on a mission to make the lives of data professionals more manageable through creation and maintenance of high quality libraries and frameworks, the distribution of an easy to use Python distribution and package ecosystem, and high quality training material. In this episode Kevin Goldsmith, CTO of Anaconda, discusses the technical and social challenges faced by data scientists, the ways that the Python ecosystem has evolved to help address those difficulties, and how Anaconda is engaging with the community to provide high quality tools and education for this constantly changing practice. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Kevin Goldsmith about Anaconda’s contributions to the Python ecosystem for data science Interview Introductions How did you get introduced to Python? Can you start by describing what Anaconda focuses on solving for? What was your path into the CTO position? From your perspective as the CTO of Anaconda, what are the biggest challenges facing data scientists today? What is the breakdown between technical and organizational sources for those difficulties? How is the Anaconda product suite architected to help address some of those problems? Where are you spending your focus to allow Anaconda to address the current and future needs of data scientists? Python has been a dominant force in the data and analytics ecosystem for several years now. What do you see as the future of the space? (e.g. monoglot vs. polyglot workflows) What are the most interesting, innovative, or unexpected ways that you have seen the Anaconda platform used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Anaconda and data science tooling? Keep In Touch LinkedIn @KevinGoldsmith on Twitter Website Picks Tobias Perdido Street Station The Scar Iron Council Kevin Lego Typewriter 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 Anaconda Spotify Lisp Scheme C# Anaconda Nucleus PyData AnacondaCon Grid Computing PyTorch Podcast Episode Tensorflow Pyston Podcast Episode Dask Podcast Episode Numba Panel dashboard framework Datashader Jupyter R Julia AstroPy Podcast Episode Arrow Data Teams by Jesse Anderson Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/19/202155 minutes, 48 seconds
Episode Artwork

Network Analysis At The Speed Of C With The Power Of Python Using NetworKit

Summary Analysing networks is a growing area of research in academia and industry. In order to be able to answer questions about large or complex relationships it is necessary to have fast and efficient algorithms that can process the data quickly. In this episode Eugenio Angriman discusses his contributions to the NetworKit library to provide an accessible interface for these algorithms. He shares how he is using NetworKit for his own research, the challenges of working with large and complex networks, and the kinds of questions that can be answered with data that fits on your laptop. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Eugenio Angriman about NetworKit, an open-source toolkit for large-scale network analysis Interview Introductions How did you get introduced to Python? Can you describe what NetworKit is and the story behind it? A core focus of the project is for use with graphs containing millions to billions of nodes. What are some of the situations where you might encounter networks of that scale? There are a number of network analysis libraries in Python. How would you characterize NetworKit’s position in the ecosystem? What are the algorithmic challenges that graph structures pose when aiming for scalability and performance? How do you approach building efficient algorithms for complex network analysis? Can you describe how NetworKit is architected? What are the design principles that you focus on for the library? How have the design and goals of the project changed or evolved since you have been working on it? NetworKit’s code base has now a discrete size and several developers contributed to it. Are there any minimum quality requirements that new code needs to fulfill before it can be merged into NetworKit? How do you ensure that such requirements are met? What are some of the active areas of research for networked data analysis? How are you using NetworKit for your own work? What are kind of background knowledge in graph analysis is necessary for users of NetworKit? What are some of the underutilized or overlooked aspects of NetworKit that you think should be highlighted? What are the most interesting, innovative, or unexpected ways that you have seen NetworKit used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on NetworKit? When is NetworKit the wrong choice? What do you have planned for the future of NetworKit? Keep In Touch angriman on GitHub LinkedIn Picks Tobias Edgar Allen Poe NetworKit The Spinoza Problem 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 NetworKit Humboldt University Berlin graph-tool Podcast Episode NetworkX Adjacency List Cython Podcast Episode Node Embeddings Centrality Score NetworKit In The Cloud Gunrock Hornet The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/15/202137 minutes, 7 seconds
Episode Artwork

Delivering Deep Learning Powered Speech Recognition As A Service For Developers At AssemblyAI

Summary Building a software-as-a-service (SaaS) business is a fairly well understood pattern at this point. When the core of the service is a set of machine learning products it introduces a whole new set of challenges. In this episode Dylan Fox shares his experience building Assembly AI as a reliable and affordable option for automatic speech recognition that caters to a developer audience. He discusses the machine learning development and deployment processes that his team relies on, the scalability and performance considerations that deep learning models introduce, and the user experience design that goes into building for a developer audience. This is a fascinating conversation about a unique cross-section of considerations and how Dylan and his team are building an impressive and useful service. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Dylan Fox about AssemblyAI, a powerful and easy to use speech recognition API designed for developers Interview Introductions How did you get introduced to Python? Can you describe what Assembly AI is and the story behind it? Speech recognition is a service that is being added to every cloud platform, video service, and podcast product. What do you see as the motivating factors for the current growth in this industry? How would you characterize your overall position in the market? What are the core goals that you are focused on with AssemblyAI? Can you describe the different ways that you are using Python across the company? How is the AssemblyAI platform architected? What are the complexities that you have to work around to maintain high uptime for an API powered by a deep learning model? What are the scaling challenges that crop up, whether on the training or serving? What are the axes for improvement for a speech recognition model? How do you balance tradeoffs of speed and accuracy as you iterate on the model? What is your process for managing the deep learning workflow? How do you manage CI/CD for your deep learning models? What are the open areas of research in speech recognition? What are the most interesting, innovative, or unexpected ways that you have seen AssemblyAI used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on AssemblyAI? When is AssemblyAI the wrong choice? What do you have planned for the future of AssemblyAI? Keep In Touch LinkedIn @YouveGotFox on Twitter Picks Tobias H.P. Lovecraft Dylan Project Hail Mary by Andy Weir 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 AssemblyAI Two Scoops of Django Nuance Dragon Natural Speaking PyTorch Podcast Episode Tensorflow FastAPI Flask Tornado Podcast Episode Neural Magic Podcast Episode The Martian The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/4/202152 minutes, 20 seconds
Episode Artwork

Taking Aim At The Legacy Of SQL With The Preql Relational Language

Summary SQL has gone through many cycles of popularity and disfavor. Despite its longevity it is objectively challenging to work with in a collaborative and composable manner. In order to address these shortcomings and build a new interface for your database oriented workloads Erez Shinan created Preql. It is based on the same relational algebra that inspired SQL, but brings in more robust computer science principles to make it more manageable as you scale in complexity. In this episode he shares his motivation for creating the Preql project, how he has used Python to develop a new language for interacting with database engines, and the challenges of taking on the legacy of SQL as an individual. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Erez Shinan about Preql, an interpreted, relational programming language, that specializes in database queries Interview Introductions How did you get introduced to Python? Can you describe what Preql is and the story behind it? What are goals and target use cases for the project? There have been numerous projects that aim to make SQL more maintainable and composable. What is it about the language and syntax that makes it so challenging? How does Preql approach this problem that is different from other efforts? (e.g. ORMs, dbt-style Jinja, PyPika) How did you approach the design of the syntax to make it familiar to people who know SQL? Can you describe how Preql is implemented? How has the design and architecture changed or evolved since you began working on it? What is a typical workflow for someone using Preql to build a library of analytical queries? Beyond strict compilation to SQL, what are some of the other features that you have incorporated into Preql? How does a Preql program get executed against a target database, particularly when using capabilities that can’t be directly translated to SQL? ** What are the main difficulties / challenges of compiling to SQL ? What are some of the features or use cases that are not immediately obvious or prone to be overlooked that you think are worth mentioning? What are the most interesting, innovative, or unexpected ways that you have seen Preql used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Preql? When is Preql the wrong choice? What do you have planned for the future of Preql? Keep In Touch erezsh on GitHub erezsh on Twitter Picks Tobias Counterpart Erez Bansko, Bulgaria 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 Preql Lark Postgres Data Engineering Podcast Episode MySQL Relational Algebra Pandas Podcast Episode ORM == Object Relational Mapper dbt Data Engineering Podcast Episode PyPika GraphQL Julia runtype Rich terminal UI library prompt-toolkit DuckDB Askgit BigQuery Snowflake The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/28/202136 minutes, 38 seconds
Episode Artwork

Unleash The Power Of Dataframes At Any Scale With Modin

Summary When you start working on a data project there are always a variety of unknown factors that you have to explore. One of those is the volume of total data that you will eventually need to handle, and the speed and scale at which it will need to be processed. If you optimize for scale too early then it adds a high barrier to entry due to the complexities of distributed systems, but if you invest in a lot of engineering up front then it can be challenging to refactor for scale. Modin is a project that aims to remove that decision by letting you seamlessly replace your existing Pandas code and scale across CPU cores or across a cluster of machines. In this episode Devin Petersohn explains why he started working on solving this problem, how Modin is architected to allow for a smooth escalation from small to large volumes of data and compute, and how you can start using it today to accelerate your Pandas workflows. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Devin Petersohn about Modin, a Pandas compatible dataframe library for datasets from 1MB to 1TB+ Interview Introductions How did you get introduced to Python? Can you describe what Modin is and the story behind it? Why study dataframes? How do dataframes compare to databases? What can you do in a dataframe that you couldn’t in a database? What are your overall goals for the Modin project? Who are the target users of Modin and how does that influence your prioritization of features? What are some of the API inconsistencies that you have had to abstract and work around between Pandas, Ray, and Dask to give users a seamless experience? What are some of the considerations in terms of capabilities or user experience that will influence whether to use Ray or Dask as the execution engine? Can you describe how Modin is implemented? How has the constraint of replicating the Pandas API influenced your architectural choices? What are the most complex or challenging Pandas APIs to replicate in Modin? In addition to the core Pandas API you have also added experimental features such as SQL support and a spreadsheet interface. How have those capabilities affected the range of potential use cases and end users? What are some of the complexities that come from acting as a middleware between the Pandas API and the Ray and Dask frameworks? What are some of the initial ideas or assumptions that you had about the design or utility of Modin that have been challenged as you worked through building and releasing it? What are the most interesting, innovative, or unexpected ways that you have seen Modin used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Modin? When is Modin the wrong choice? What do you have planned for the future of Modin? Keep In Touch devin-petersohn on GitHub LinkedIn Picks Tobias xxh Devin Lux Podcast Episode 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 Modin UC Berkeley RISELAB XArray Pandas Podcast Episode Dask Podcast Episode Ray Podcast Episode Spark The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/22/202138 minutes, 53 seconds
Episode Artwork

Exploring The SpeechBrain Toolkit For Speech Processing

Summary With the rising availability of computation in everyday devices, there has been a corresponding increase in the appetite for voice as the primary interface. To accomodate this desire it is necessary for us to have high quality libraries for being able to process and generate audio data that can make sense of human speech. To facilitate research and industry applications for speech data Mirco Ravanelli and Peter Plantinga are building SpeechBrain. In this episode they explain how it works under the hood, the projects that they are using it for, and how you can get started with it today. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Mirco Ravanelli and Peter Plantinga about SpeechBrain, an open-source and all-in-one speech toolkit powered by PyTorch Interview Introductions How did you get introduced to Python? Can you describe what SpeechBrain is and the story behind it? What are the goals and target use cases of the SpeechBrain project? What are some of the ways that processing audio with a focus on speech differs from more general audio processing? What are some of the other libraries/frameworks/services that are available to work with speech data and what are the unique capabilities that SpeechBrain offers? How is SpeechBrain implemented? What was your decision process for determining which framework to build on top of? What are some of the original ideas and assumptions that you had for SpeechBrain which have been changed or invalidated as you worked through implementing it? Can you talk through the workflow of using SpeechBrain? What would be involved in developing a system to automate transcription with speaker recognition and diarization? In the documentation it mentions that SpeechBrain is built to be used for research purposes. What are some of the kinds of research that it is being used for? What are some of the features or capabilities of SpeechBrain which might be non-obvious that you would like to highlight? What are the most interesting, innovative, or unexpected ways that you have seen SpeechBrain used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on SpeechBrain? When is SpeechBrain the wrong choice? What do you have planned for the future of SpeechBrain? Keep In Touch Mirco mravanelli on GitHub LinkedIn @mirco_ravanelli on Twitter Peter pplantinga on GitHub @ComPeterScience on Twitter Website LinkedIn Picks Tobias x.ai 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 SpeechBrain Mila Speech Processing Speech Enhancement NumPy SciPy Theano PyTorch Podcast Episode Speech Recognition NeMo ESPNet Sequence to Sequence (Seq2Seq) HyperParameters TorchAudio PyTorch Lightning Keras HuggingFace Generative Adversarial Network Snorkel Data Engineering Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/14/202137 minutes, 26 seconds
Episode Artwork

Fast And Educational Exploration And Analysis Of Graph Data Structures With graph-tool

Summary If you are interested in a library for working with graph structures that will also help you learn more about the research and theory behind the algorithms then look no further than graph-tool. In this episode Tiago Peixoto shares his work on graph algorithms and networked data and how he has built graph-tool to help in that research. He explains how it is implemented, how it evolved from a simple command line tool to a full-fledged library, and the benefits that he has found from building a personal project in the open. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Tiago Peixoto about graph-tool, an efficient Python module for manipulation and statistical analysis of graphs Interview Introductions How did you get introduced to Python? Can you describe what graph-tool is and the story behind it? What are some scenarious where someone might encounter a graph oriented data set? In what ways are those graphs typically represented? In your experience, what is the overlap of people who are working with networked data, and the use of graph-native databases? (e.g. Neo4J, DGraph, etc.) What kinds of analysis or manipulation might someone need to perform on a graph structure? There are a few different tools in Python for working with networked data. How would you characterize the current ecosystem and why someone might choose graph-tool? Can you describe how graph-tool is implemented? How have the goals and design of the package changed or evolved since you first began working on it? Who are your target users and what are the guiding principles that you use to inform the API design for the package? How much knowledge of graph theory or algorithms are required to make effective use of graph-tool? Can you talk through an example workflow of using graph-tool to load, process, and analyze a graph? What are some of the overlooked or underutilized aspects of graph-tool that you think more people should know about? What are some systems/applications that you have seen which would be simplified by adopting a graph model for their data? What is your impression of the overall awareness of the benefits of graphs for simplifying aspects of data processing and analysis? What are some cases where a graph structure adds unnecessary complexity? What are the most interesting, innovative, or unexpected ways that you have seen graph-tool used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on graph-tool? When is graph-tool the wrong choice? What do you have planned for the future of graph-tool? Keep In Touch Website graph-tool Picks Tobias 97 Things Every Data Engineer Should Know 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 Central European University NetworkX GML GraphML Neo4J DGraph Data Engineering Podcast Episode NetworKit igraph Matplotlib C++ Templates Boost Graph Library OpenMP Maximum Matching The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/7/202141 minutes, 59 seconds
Episode Artwork

Lightening The Load For Deep Learning With Sparse Networks Using Neural Magic

Summary Deep learning has largely taken over the research and applications of artificial intelligence, with some truly impressive results. The challenge that it presents is that for reasonable speed and performance it requires specialized hardware, generally in the form of a dedicated GPU (Graphics Processing Unit). This raises the cost of the infrastructure, adds deployment complexity, and drastically increases the energy requirements for training and serving of models. To address these challenges Nir Shavit combined his experiences in multi-core computing and brain science to co-found Neural Magic where he is leading the efforts to build a set of tools that prune dense neural networks to allow them to execute on commodity CPU hardware. In this episode he explains how sparsification of deep learning models works, the potential that it unlocks for making machine learning and specialized AI more accessible, and how you can start using it today. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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 Nir Shavit about Neural Magic and the benefits of using sparsification techniques for deep learning models Interview Introductions How did you get introduced to Python? Can you describe what Neural Magic is and the story behind it? What are the attributes of deep learning architectures that influence the bias toward GPU hardware for training them? What are the mathematical aspects of neural networks that have biased the current generation of software tools toward that architectural style? How does sparsifying a network architecture allow for improved performance on commodity CPU architectures? What is involved in converting a dense neural network into a sparse network? Can you describe the components of the Neural Magic architecture and how they are used together to reduce the footprint of deep learning architectures and accelerate their performance on CPUs? What are some of the goals or design approaches that have changed or evolved since you first began working on the Neural Magic platform? For someone who has an existing model defined, what is the process to convert it to run with the DeepSparse engine? What are some of the options for applications of deep learning that are unlocked by enabling the models to train and run without GPU or other specialized hardware? The current set of components for Neural Magic is either open source or free to use. What is your long-term business model, and how are you approaching governance of the open source projects? What are the most interesting, innovative, or unexpected ways that you have seen Neural Magic and model sparsification used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Neural Magic? When is Neural Magic or sparse networks the wrong choice? What do you have planned for the future of Neural Magic? Keep In Touch Research Overview LinkedIn Picks Tobias The Tick TV show Nir Bauhaus documentary 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 Neural Magic MIT Computational Neurobiology 6.006 MIT Course FLOPS == FLoating point OPerations per Second Perceptron Convolutional Neural Network Lisp Quantization of ML YOLO ML Model Federated Learning Podcast Episode Reinforcement Learning GPT-3 OpenAI Transfer Learning Podcast Episode about Transfer Learning for NLP Tensor Columns Neural Magic DeepSparse Engine ONNX CUDA Sparse Zoo Tab9 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/30/202148 minutes, 32 seconds
Episode Artwork

Finding The Core Of Python For A Bright Future With Brett Cannon

Summary Brett Cannon has been a long-time contributor to the Python language and community in many ways. In this episode he shares some of his work and thoughts on modernizing the ecosystem around the language. This includes standards for packaging, discovering the true core of the language, and how to make it possible to target mobile and web platforms. Announcements Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science. 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! Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Brett Cannon about improvements in the packaging ecosystem, the promise of WebAssembly, and his recent explorations of CPython’s interpreter Interview Introductions How did you get introduced to Python? As a core contributor to CPython, a member of the steering Council, and the team lead for VSCode’s Python extension, what are your current areas of focus for the language? One of the PEPs that you were involved with recently introduced the pyproject.toml file for simplifying the work of building Python packages. Can you share some of the background behind that work and the goals that you had for it? Since its introduction a lot of people have co-opted that file for other project configuration. What was your reaction to that, and if you had foreseen that usage what might you have changed or added in the PEP to account for it? What are the long term impacts on the packaging ecosystem that you anticipate with the standardization efforts that are happening? Another area where there is a lot of attention right now is being able to target additional deployment environments such as the browser, with web assembly, and mobile devices, with projects like BriefCase and Kivy. You had a recent post where you posed some questions about the true nature of Python and the possibility of removing pieces of it to simplify building for these other runtimes. What is your personal sense of the minimal set of features that we need for something to still be Python? How have projects such as MicroPython and PyOdide influenced your thinking on the matter? You have also recently been writing a series of articles about the implementation details of different syntactic elements of Python. What was your inspiration for that? What are some of the interesting or surprising details that you encountered while unwrapping the way that the interpreter handles those syntactic elements? How have those explorations helped you in your efforts to identify the core of Python? Recent releases of Python have brought in some substantial changes to the interpreter and new language features (e.g. PEG parser, pattern matching). What are some of the other large initiatives that you are keeping track of? What are your personal goals for the near to medium term future of Python? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the Python language and related tooling? If you were to redesign Python today, what are some of the things that you would do differently? Keep In Touch brettcannon on GitHub @brettsky on Twitter Blog Picks Tobias Cold Brew Iced Tea Loki on Disney+ Brett Rich Textual The physics facts included in all of the Python 3.10 release announcements, e.g. you will never see a green star Links Brett’s Blog Python VSCode Extension Python Steering Council Python Package Authority UC Berkeley Vancouver, BC Squamish, Musquiam, Tsleil-waututh First Nations Pascal Python C O’Reilly PyCon US 2021 Steering Council Keynote Python Developer-In-Residence PSF Visionary Sponsorship Setuptools Pip Python Wheels PyPI PEP 518 PEP 517 PEP 621 pyproject.toml Flit Enscons PyPA Build PyOxidizer Pex Shiv cx_Freeze cibuildwheel Thomas Kluyver Poetry Vaults of Parnassus MicroPython Podcast Episode CircuitPython Podcast Episode Desugaring Python Blog Series JupyterHub PyOdide JupyterLite ANSI C99 PyPy Jython IPython ncurses Kivy Briefcase Toga PEP 401 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/23/20211 hour, 3 minutes, 18 seconds
Episode Artwork

Traversing The Challenges And Promise Of Graph Machine Learning

Summary The foundation of every ML model is the data that it is trained on. In many cases you will be working with tabular or unstructured information, but there is a growing trend toward networked, or graph data sets. Benedek Rozemberczki has focused his research and career around graph machine learning applications. In this episode he discusses the common sources of networked data, the challenges of working with graph data in machine learning projects, and describes the libraries that he has created to help him in his work. If you are dealing with connected data then this interview will provide a wealth of context and resources to improve your 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! Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Benedek Rozemberczki about his work on machine learning for graph data, including a variety of libraries to support his efforts Interview Introductions How did you get introduced to Python? Can you start by giving an overview of when you might want to do machine learning on networked/graph data? How do networked data sets change the way that you approach machine learning tasks? Can you describe the current state of the ecosystem for machine learning on graphs? You have created a number of libraries to address different aspects of machine learning on graphs. Can you list them and share some of the stories behind their creation? How do the different tools relate to each other? Can you talk through some of the structural and user experience design principles that you lean on when building these libraries? When you are working with networked data sets, what is your current workflow from idea to completion? What are the most difficult aspects of working with networked data sets for machine learning applications? What are the most interesting, innovative, or unexpected ways that you have seen graph ML used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on graph ML problems? What are some examples of when you would choose not to use some or all of your own libraries? What do you have planned for the future of your libraries/what new libraries do you anticipate needing to build? Keep In Touch benedekrozemberczki on GitHub @benrozemberczki on Twitter LinkedIn Picks Tobias Wrath of Man Benedek Hunt for the Wilderpeople Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges 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 Karate Club PyTorch Geometric Temporal AstraZeneca Budapest University of Edinburgh Matlab R Bipartite Graph Node Classification Graph Classification PyTorch Podcast Episode PyTorch Geometric DGL (Deep Graph Library) Parametric Machine Learning graph-tool Jax NetworkX Little Ball of Fur GCN == Graph Convolutional Network NetworKit Gensim Podcast Episode Nvidia cuGraph Random Walk scikit-learn MalNet Graph Representation Learning by William Hamilton The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/16/202147 minutes, 47 seconds
Episode Artwork

Keep Your Analytics Lint Free With SQLFluff

Summary The growth of analytics has accelerated the use of SQL as a first class language. It has also grown the amount of collaboration involved in writing and maintaining SQL queries. With collaboration comes the inevitable variation in how queries are written, both structurally and stylistically which can lead to a significant amount of wasted time and energy during code review and employee onboarding. Alan Cruickshank was feeling the pain of this wasted effort first-hand which led him down the path of creating SQLFluff as a linter and formatter to enforce consistency and find bugs in the SQL code that he and his team were working with. In this episode he shares the story of how SQLFluff evolved from a simple hackathon project to an open source linter that is used across a range of companies and fosters a growing community of users and contributors. He explains how it has grown to support multiple dialects of SQL, as well as integrating with projects like DBT to handle templated queries. This is a great conversation about the long detours that are sometimes necessary to reach your original destination and the powerful impact that good tooling can have on team productivity. 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 Alan Cruickshank about SQLFluff, a dialect-flexible and configurable SQL linter Interview Introductions How did you get introduced to Python? Can you describe what SQLFluff is and the story behind it? SQL is one of the oldest programming languages that is still in regular use. Why do you think that there are so few linters for it? Who are the target users of SQLFluff and how do those personas influence the design and user experience of the project? What are some of the characteristics of SQL and how it is used that contribute to readability/comprehension challenges? What are some of the additional difficulties that are introduced by templating in the queries? How is SQLFluff implemented? How have the goals and design of the project changed since you first began working on it? How do you handle support of varying SQL dialects without undue maintenance burdens? What are some of the stylistic elements and strategies for making SQL code more maintainable? What are some strategies for making queries self-documenting? What are some signs that you should document it anyway? What are some of the kinds of bugs that you are able to identify with SQLFluff? What are some of the resources/references that you relied on for identifying useful linting rules? What are some methods for measuring code quality in SQL? What are the most interesting, innovative, or unexpected ways that you have seen SQLFluff used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on SQLFluff? When is SQLFluff the wrong choice? What do you have planned for the future of SQLFluff? Keep In Touch alanmcruickshank on GitHub Website LinkedIn Picks Tobias The Nevers Alan Lost Connections: Uncovering the Real Causes of Depression – and the Unexpected Solutions by Johann Hari (affiliate link) The Wim Hof Method by Wim Hof 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 SQLFluff Tails.com Hypothesis Podcast Episode Project Euler Flake8 Podcast Episode Black dbt Data Engineering Podcast Episode Snowflake Data Engineering Podcast Episode BigQuery SQL Window Functions ANSI SQL PostgreSQL MS SQL Server Oracle DB Airflow SQL Subquery Common Table Expression (CTE) The Rise Of The Data Engineer blog post The Downfall Of The Data Engineer blog post Object-Relational Mapper (ORM) Tableau Fishtown Analytics SQL Styleguide Mozilla SQL Styleguide The Zen of Python dbt Packages yapf Set Theory Flake8 SQL Plugin The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/9/20211 hour, 13 minutes, 13 seconds
Episode Artwork

Exploring The Patterns And Practices For Deep Learning With Andrew Ferlitsch

Summary Deep learning is gaining an immense amount of popularity due to the incredible results that it is able to offer with comparatively little effort. Because of this there are a number of engineers who are trying their hand at building machine learning models with the wealth of frameworks that are available. Andrew Ferlitsch wrote a book to capture the useful patterns and best practices for building models with deep learning to make it more approachable for newcomers ot the field. In this episode he shares his deep expertise and extensive experience in building and teaching machine learning across many companies and industries. This is an entertaining and educational conversation about how to build maintainable models across a variety of applications. 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. Scaling your data infrastructure is hard. Maintaining data quality standards as you scale is harder. Databand solves this. Their Unified Data Observability platform gives data engineers visibility over their stack without changing existing pipeline code. Get end-to-end visibility on your pipelines, and identify the root cause of issues before bad data is delivered. Seamlessly integrate with over 20 tools like Apache Airflow, Spark, Snowflake, and more. Use customizable dashboards to see where pipelines are broken and how that impacts delivery downstream. Get alerts on leading indicators of pipeline failure. Open up your pipeline and see exactly which code strings are broken – so you can fix the issue immediately. Create more reliable data products. Go to pythonpodcast.com/databand today to start your free trial! Your host as usual is Tobias Macey and today I’m interviewing Andrew Ferlitsch about the patterns and practices for deep learning applications Interview Introductions How did you get introduced to Python? Can you start by describing the major elements of a model architecture? What is the relationship between the specific learning task being addressed and the architecture of the learning network? In your experience, what is the level of awareness of a typical ML engineer or data scientist with respect to the most current design patterns in deep learning? Your currently working on a book about deep learning patterns and practices. What was your motivation for starting that project? What are your goals for the book? How have advancements in the operability of machine learning influenced the ways that the models are designed and trained? How do recent approaches such as transfer learning impact the needs of the supporting tools and infrastructure? Can you describe the different design patterns that you cover in your book and the selection process for when and how to apply them? What are the aspects of bringing deep learning to production that continue to be a challenge? What are some of the emerging practices that you are optimistic about? What are some of the industry trends or areas of current research that you are most excited about? What are the most interesting, innovative, or unexpected patterns that you have encountered? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the book? What are some of the other resources that you recommend for listeners to learn more about how to build production ready models? Keep In Touch LinkedIn @AndrewFerlitsch on Twitter andrewferlitsch on GitHub Picks Tobias Designing Data Intensive Applications (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 Google Cloud AI Sharp Corporation Deep Learning Patterns and Practices (affiliate link) use the code podinit21 at checkout for 35% off all books at Manning! CID Bioscience Latent Space AI Winter Numerical Stability Surrogate Model GAN == Generative Adversarial Network Gradient Descent The Gang of 4 – Design Patterns: Elements of Reusable Object-Oriented Software (affiliate link) The Lottery Hypothesis Manning Publications (affiliate link) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/2/202144 minutes, 19 seconds
Episode Artwork

Automatically Generate Your Unit Tests From Scratch With Pynguin

Summary Unit tests are an important tool to ensure the proper functioning of your application, but writing them can be a chore. Stephan Lukasczyk wants to reduce the monotony of the process for Python developers. As part of his PhD research he created the Pynguin project to automate the creation of unit tests. In this episode he explains the complexity involved in generating useful tests for a dynamic language, how he has designed Pynguin to address the challenges, and how you can start using it today for your own work. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Stephan Lukasczyk about Pynguin, the PYthoN General UnIt test geNerator Interview Introductions How did you get introduced to Python? Can you describe what Pynguin is and the story behind it? What are the problems that Pynguin is designed to solve? What other projects are you drawing inspiration from? What are some of the use cases for automatic test generation? How is Pynguin implemented? What are the challenges that the dynamic nature of Python introduces? What are some of the packages and libraries that have been most helpful while building Pynguin? Can you talk through the workflow of using Pynguin to generate tests for a project? What are some of the limitations on what kinds of projects Pynguin can be used for? What are some design or implementation strategies in the code that you are generating tests for that will help make Pynguin’s job easier? Once a test suite has been created, what are the next steps? What are some of the initial assumptions or goals of the project that have been revised or challenged once you began implementing it? What are the most interesting, innovative, or unexpected ways that you have seen Pynguin used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Pynguin? When is Pynguin the wrong choice? What do you have planned for the future of Pynguin? Keep In Touch Related to Pynguin: best via GitHub Find me on Twitter Picks Tobias Concourse CI Stephan Cycling Take care of your health 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 Pynguin University of Passau Passau, Germany Evosuite Hypothesis Podcast Episode Astor Walrus Operator MyPy Podcast Episode Pytest Podcast Episode UnitTest Bytecode library Pytype Monkeytype Podcast Episode Atheris from Google – coverage-guided fuzzing Blog series about “Python behind the scenes”: Ten thousand meters by Victor Skvortsov The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/25/202157 minutes, 40 seconds
Episode Artwork

Leveling Up Natural Language Processing with Transfer Learning

Summary Natural language processing is a powerful tool for extracting insights from large volumes of text. With the growth of the internet and social platforms, and the increasing number of people and communities conducting their professional and personal activities online, the opportunities for NLP to create amazing insights and experiences are endless. In order to work with such a large and growing corpus it has become necessary to move beyond purely statistical methods and embrace the capabilities of deep learning, and transfer learning in particular. In this episode Paul Azunre shares his journey into the application and implementation of transfer learning for natural language processing. This is a fascinating look at the possibilities of emerging machine learning techniques for transforming the ways that we interact with technology. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Paul Azunre about using transfer learning for natural language processing Interview Introductions How did you get introduced to Python? Can you start by explaining what transfer learning is? How is transfer learning being applied to natural language processing? What motivated you to write a book about the application of transfer learning to NLP? What are some of the applications of NLP that are impractical on intractable without transfer learning? At a high level, what are the steps for building a new language model via transfer learning? There have been a number of base models created recently, such as BERT and ERNIE, ELMo, GPT-3, etc. What are the factors that need to be considered when selecting which model to build from? If there are multiple models that contain the seeds for different aspects of the end goal that you are trying to obtain, what is the feasibility of extracting the relevant capabilities from each of them and combining them in the final model? What are some of the tools or frameworks that you have found most useful while working with NLP and transfer learning? How would you characterize the current state of the ecosystem for transfer learning and deep learning techniques applied to NLP problems? What are the most interesting, innovative, or unexpected applications of transfer learning with NLP that you have seen? What are the most interesting, unexpected, or challenging lessons that you have learned while working on the book? When is transfer learning the wrong choice for an NLP project? What are the trends or techniques that you are most excited for? Keep In Touch LinkedIn Website @pazunre on Twitter Picks Tobias Infected Mushroom Paul Tenet 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 Transfer Learning for Natural Language Processing by Paul Azunre (affiliate link) Use the code podinit21 at checkout for 35% off all books at Manning! Low Resource Languages Fortran C++ MatLab MIT 6.003 Transfer Learning Computer Vision Deep Neural Network Convolutional Neural Network (CNN) Recurrent Neural Network (RNN) GLUE == General Lanuage Understanding Evaluation NLP SuperGLUE NLP Encoder Named Entity Recognition ImageNet Mathematical Optimization Gradient Descent Yonder AI ELMo language model from Allen NLP Ghana ArXiv BERT language model TF-IDF == Term Frequency – Inverse Document Frequency Word2Vec GPT-3 Ghana NLP Automatic Speech Recognition ULM Fit Keras Tensorflow Huggingface Transformers Multi-Task Learning Fast.ai OpenAI AWS SageMaker Kaggle Kernels Colab Notebooks Azure ML Studio BLEU Score Khaya application Android iOS The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/18/202146 minutes, 34 seconds
Episode Artwork

Federated Learning For All With Flower

Summary Machine learning is a tool that has typically been performed on large volumes of data in one place. As more computing happens at the edge on mobile and low power devices, the learning is being federated which brings a new set of challenges. Daniel Beutel co-created the Flower framework to make federated learning more manageable. In this episode he shares his motivations for starting the project, how you can use it for your own work, and the unique challenges and benefits that this emerging model offers. This is a great exploration of the federated learning space and a framework that makes it more approachable. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Daniel Beutel about Flower, a framework for building federated learning systems Interview Introductions How did you get introduced to Python? Can you start by describing what federated learning is? What is Flower and what’s the story behind it? What are the trade-offs between federated and centralized models of machine learning? What are some of the types of use cases or workloads that federated learning is used for? Federated learning appears to be a growing area of interest. How would you characterize the current state of the ecosystem? What are the most complex or challenging aspects of federating model training? How does Flower simplify the process of distributing the model training process? Can you describe how Flower is implemented? How have the goals and/or design of Flower changed or evolved since you first began working on it? One of the design principles that you list is "understandability". What are some of the ways that that manifests in the project? It also mentions extensibility. What are the interfaces that Flower exposes for integration or extending its capabilities? For someone who has an existing project that runs in a centralized manner, what are some indicators that a federated approach would be beneficial? What is involved in translating the existing project to run in a federated fashion using Flower? What is involved in building a production ready system with Flower? How does your work at Adap inform the design and product direction for Flower? What are some of the most interesting, innovative, or unexpected ways that you have seen Flower used? What are the most interesting, unexpected, or challenging lessons that you have learned from your work on and with Flower? When is Flower the wrong choice? What do you have planned for the future of the project? Keep In Touch LinkedIn danieljanes on GitHub @daniel_janes on Twitter Picks Tobias Rummy Card Game Daniel Stand Up Paddling 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 Flower Adap Hyperparameter Optimization Federated Learning University of Oxford University of Cambridge Nvidia Jetson PyTorch Podcast Episode Tensorflow Lite Tensorflow Federated PySyft Flower Summit Jax CNN == Convolutional Neural Network Keras gRPC MQTT NumPy NDArray AWS Device Farm Ray Framework Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/11/20211 hour, 1 minute, 28 seconds
Episode Artwork

Data Exploration and Visualization Made Effortless with Lux

Summary Data exploration is an important step in any analysis or machine learning project. Visualizing the data that you are working with makes that exploration faster and more effective, but having to remember and write all of the code to build a scatter plot or histogram is tedious and time consuming. In order to eliminate that friction Doris Lee helped create the Lux project, which wraps your Pandas data frame and automatically generates a set of visualizations without you having to lift a finger. In this episode she explains how Lux works under the hood, what inspired her to create it in the first place, and how it can help you create a better end result. The Lux project is a valuable addition to the toolbox of anyone who is doing data wrangling with Pandas. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Doris Lee about Lux, a Python library that facilitates fast and easy data exploration by automating the visualization and data analysis process Interview Introductions How did you get introduced to Python? Can you start by describing what Lux is and how the project got started? What is the role of visualization in a data science workflow? What are the challenges that data scientists face in the exploratory phase of their analysis? There are a wide variety of data visualization tools in the Python ecosystem with differing areas of focus. What is the role of Lux in that ecosystem? How does Lux compare to tools such as scikit-yb? What is the workflow for someone using Lux in their analysis and what problems does it solve for them? Can you talk through how Lux is architected? How have the goals and design of Lux changed or evolved since you first began working on it? Data visualization is a broad field. How do you determine which kinds of charts or plots are best suited to a particular data set or exploration? What are some of the capabilities of Lux that are often overlooked or underutilized? How has Lux impacted your own work in data analysis/data science? What are some of the other gaps that you see in the available tooling for data science? What are some of the most interesting, innovative, or unexpected ways that you have seen Lux used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on and with Lux? When is Lux the wrong choice? What do you have planned for the future of the project? Keep In Touch dorisjlee on GitHub Website LinkedIn Picks Tobias Pirates of the Carribean movies Doris Snake Wrangling for Kids 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 Lux UC Berkeley RISE Lab School of Information Pandas Podcast Episode Bokeh Podcast Episode Seaborn Altair Podcast Episode Matplotlib Grammar of Graphics Plotly Scikit YellowBrick Podcast Episode D3.js Vega Numpy xarray Tensorflow Jupyter Widget Chloropleth Map G10 Countries Ray Podcast Episode Modin Dask Data Engineering Podcast Episode Podcast Interview About Coiled The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/4/202151 minutes, 5 seconds
Episode Artwork

Extensible Open Source Authorization For Your Applications With Oso

Summary Any project that is used by more than one person will eventually need to handle permissions for each of those users. It is certainly possible to write that logic yourself, but you’ll almost certainly do it wrong at least once. Rather than waste your time fighting with bugs in your authorization code it makes sense to use a well-maintained library that has already made and fixed all of the mistakes so that you don’t have to. In this episode Sam Scott shares the Oso framework to give you a clean separation between your authorization policies and your application code. He explains how you can call a simple function to ask if something is allowed, and then manage the complex rules that match your particular needs as a separate concern. He describes the motivation for building a domain specific language based on logic programming for policy definitions, how it integrates with the host language (such as Python), and how you can start using it in your own applications today. This is a must listen even if you never use the project because it is a great exploration of all of the incidental complexity that is involved in permissions management. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Sam Scott about Oso, an open source library for managing authorization in your applications Interview Introductions How did you get introduced to Python? Can you start by describing what Oso is and the story behind it? What was missing from the ecosystem of authorization libraries/frameworks that motivated you to create a new one? What are some of the most common mistakes that you see developers make when implementing authorization logic? At a high level, what is the process of using Oso to add access control policies to a piece of software? What is the motivation for using a DSL for defining policies as opposed to writing those definitions in pure Python? How have you approached the design of the policy language, particularly deciding what constraints to impose? What other policy frameworks or dialects have you drawn inspiration from? How is the Oso framework implemented? How have the goals and design of Oso changed or evolved since you first began working on it? What are some useful design patterns for integrating Oso into an application? How does the type of application (e.g. web app vs. system daemon, etc.) affect the ways that Oso is used? Given that Oso supports multiple language runtimes, what is involved in defining and enforcing policies that span multiple processes? (e.g. Python backend and Javascript frontend, Python microservice communicating with Go microservice, etc.) What are some of the common mistakes or areas of confusion for users who are getting started with Oso and Polar? What are some of the capabilities of Oso that are often overlooked or misunderstood? I noticed that you’re backed by some venture firms. What is your current product vision and how does that relate to your current open source goals? What are some of the most interesting, innovative, or unexpected ways that you have seen Oso used? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on and with oso? When is Oso the wrong choice? What do you have planned for the future of the project? Keep In Touch LinkedIn samscott89 on GitHub @samososos on Twitter Picks Tobias Chaos Walking Sam Hades video game 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 Oso Oso Authorization Academy Number Theory Sage Math RBAC == Role-Based Access Control ABAC == Attribute-Based Access Control Polar Policy Language Prolog Logic Programming Open Policy Agent AWS IAM XACML Google Zanzibar Rust Web Assembly (Wasm) OAuth Scopes The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/27/202151 minutes, 49 seconds
Episode Artwork

Teaching Geeks The Value And Skills Of Public Speaking

Summary Being able to present your ideas is one of the most valuable and powerful skills to have as a professional, regardless of your industry. For software engineers it is especially important to be able to communicate clearly and effectively because of the detail-oriented nature of the work. Unfortunately, many people who work in software are more comfortable in front of the keyboard than a crowd. In this episode Neil Thompson shares his story of being an accidental public speaker and how he is helping other engineers start down the road of being effective presenters. He discusses the benefits for your career, how to build the skills, and how to find opportunities to practice them. Even if you never want to speak at a conference, it’s still worth your while to listen to Neil’s advice and find ways to level up your presentation and speaking skills. 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. Are you bored with writing scripts to move data into SaaS tools like Salesforce, Marketo, or Facebook Ads? Hightouch is the easiest way to sync data into the platforms that your business teams rely on. The data you’re looking for is already in your data warehouse and BI tools. Connect your warehouse to Hightouch, paste a SQL query, and use their visual mapper to specify how data should appear in your SaaS systems. No more scripts, just SQL. Supercharge your business teams with customer data using Hightouch for Reverse ETL today. Get started for free at pythonpodcast.com/hightouch. Your host as usual is Tobias Macey and today I’m interviewing Neil Thompson about the value of public speaking skills as a developer and how to gain them Interview Introductions How did you get into engineering? Can you start by discussing the different types of public speaking that we are talking about and some of the different venues where it might take place? How did you get into public speaking? What are some of the ways that our speaking abilities can impact the value that we provide and the trajectory of our career as engineers? What were some of the methods and resources that you used to improve your own public speaking skills? What are the common mistakes that people make when speaking to a group? What are some of the non-obvious ways that speaking skills can be useful as an engineer? What was your approach to learning how to be an effective speaker? What are some of the mis-steps or dead ends that you encountered? What are the different skills or capabilities that are necessary for being an effective presenter? What are some ways that engineers can practice their presentation skills? How do different audiences/venues influence the approach that you take to how to prepare for a presentation? How has your experience in public speaking factored into the work you do for your podcast? What are some of the most interesting, innovative, or unexpected presentations or speaking techniques that you have seen or used/created? What are the most interesting, unexpected, or challenging lessons that you have learned from speaking and teaching others to speak in a professional context? What resources do you recommend for engineers who want to improve their speaking and presenting skills? Keep In Touch LinkedIn @neil_i_thompson on Twitter Picks Tobias Falcon and the Winter Soldier Neil Teach The Geek To Speak 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 Materials Science Toastmasters Teach The Geek To Speak Teach The Geek Podcast Developer Advocate The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/20/202142 minutes, 54 seconds
Episode Artwork

Let The Robots Do The Work Using Robotic Process Automation with Robocorp

Summary One of the great promises of computers is that they will make our work faster and easier, so why do we all spend so much time manually copying data from websites, or entering information into web forms, or any of the other tedious tasks that take up our time? As developers our first inclination is to "just write a script" to automate things, but how do you share that with your non-technical co-workers? In this episode Antti Karjalainen, CEO and co-founder of Robocorp, explains how Robotic Process Automation (RPA) can help us all cut down on time-wasting tasks and let the computers do what they’re supposed to. He shares how he got involved in the RPA industry, his work with Robot Framework and RPA framework, how to build and distribute bots, and how to decide if a task is worth automating. If you’re sick of spending your time on mind-numbing copy and paste then give this episode a listen and then let the robots do the work for you. 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. Software is read more than it is written, so complex and poorly organized logic slows down everyone who has to work with it. Sourcery makes those problems a thing of the past, giving you automatic refactoring recommendations in your IDE or text editor while you write (I even have it working in Emacs). It isn’t just another linting tool that nags you about issues. It’s like pair programming with a senior engineer, finding and applying structural improvements to your functions so that you can write cleaner code faster. Best of all, listeners of Podcast.__init__ get 6 months of their Pro tier for free if you go to pythonpodcast.com/sourcery today and use the promo code INIT when you sign up. Your host as usual is Tobias Macey and today I’m interviewing Antti Karjalainen about the RPA Framework for automating your daily tasks and his work at Robocorp to manage your robots in production Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what Robotic Process Automation is? What are some of the ways that RPA might be used? What are the advantages over writing a custom library or script in Python to automate a given task? How does the functionality of RPA compare to automation services like Zapier, IFTTT, etc.? What are you building at Robocorp and what was your motivation for starting the business? Who is your target customer and how does that inform the products that you are building? Can you give an overview of the state of the ecosystem for RPA tools and products and how Robocorp and RPA framework fit within it? How does the RPA Framework relate to Robot Framework? What are some of the challenges that developers and end users often run into when trying to build, use, or implement an RPA system? How is the RPA framework itself implemented? How has the design of the project evolved since you first began working on it? Can you talk through an example workflow for building a robot? Once you have built a robot, what are some of the considerations for local execution or deploying it to a production environment? How can you chain together multiple robots? What is involved in extending the set of operations available in the framework? What are the available integration points for plugging a robot written with RPA Framework into another Python project? What are the dividing lines between RPA Framework and Robocorp? How are you handling the governance of the open source project? What are some of the most interesting, innovative, or unexpected ways that you have seen RPA Framework and the Robocorp platform used? What are the most interesting, unexpected, or challenging lessons that you have learned while building and growing RPA Framework and the Robocorp business? When is RPA and RPA Framework the wrong choice for automation? What do you have planned for the future of the framework and business? Keep In Touch aikarjal on GitHub @aikarjal on Twitter LinkedIn Picks Tobias WandaVision Antti Tenet 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 Robocorp RPA Framework RCC Robotic Process Automation Zapier IFTTT (If This Then That) Robot Framework Selenium Playwright Conda Micro Mamba PyOxidizer Podcast Episode XKCD "Is It Worth The Time?" XKCD Automation Curve The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/13/202145 minutes, 33 seconds
Episode Artwork

Keep Your Code Clean And Maintainable Using Static Analysis With Flake8

Summary When you are writing code it is all to easy to introduce subtle bugs or leave behind unused code. Unused variables, unused imports, overly complex logic, etc. If you are careful and diligent you can find these problems yourself, but isn’t that what computers are supposed to help you with? Thankfully Python has a wealth of tools that will work with you to keep your code clean and maintainable. In this episode Anthony Sottile explores Flake8, one of the most popular options for identifying those problematic lines of code. He shares how he became involved in the project and took over as maintainer and explains the different categories of code quality tooling and how Flake8 compares to other static analyzers. He also discusses the ecosystem of plugins that have grown up around it, including some detailed examples of how you can write your own (and why you might want to). 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 Anthony Sottile about Flake8 Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what Flake8 is and how you got involved with the project? There are a variety of tools available for checking or enforcing code quality. How would you characterize Flake8 in comparison to the other options? What do you see as the motivating factors for individuals or teams to integrate static analysis/linting in their toolchain and workflow? What are some of the challenges that might prevent someone from adopting something like Flake8? How can developers add Flake8 to an existing project without spending hours or days fixing all of the violations? Can you describe the overall design and implementation of Flake8? How has the design and goals of the project changed or evolved? There are a wide array of plugins for Flake8. What is involved in adding new functionality or linting rules? What capabilities does Flake8 provide that make it a viable platform for building plugins? What are some of the limitations of Flake8 as a platform? What do you see as the factors that have contributed to the widespread usage of Flake8 and the large number of available plugins? What challenges does that pose as a maintainer of Flake8? What are some of the other tools that you see developers use alongside Flake8 to help manage code quality and style enforcement? What are some of the most interesting, innovative, or unexpected ways that you have seen Flake8 and its plugin ecosystem used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on Flake8? When is Flake8 the wrong choice? What do you have planned for the future of Flake8? Keep In Touch @codewithanthony on Twitter asottile on GitHub LinkedIn Picks Tobias SEVENEVES by Neal Stephenson Anthony pre-commit CI 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 Flake8 PyFlakes PyCodestyle McCabe pre-commit Podcast Episode PEP 484 MyPy Pylance Pyright Pylint Black yapf autopep8 pyupgrade isort reorder-python-imports Static Analysis pydocstyle autoflake pyproject.toml Abstract Syntax Tree Concrete Syntax Tree Dagster The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/6/202149 minutes, 31 seconds
Episode Artwork

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
3/30/20211 hour, 58 seconds
Episode Artwork

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
3/22/202147 minutes, 33 seconds
Episode Artwork

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
3/16/202149 minutes, 30 seconds
Episode Artwork

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
3/9/202139 minutes, 30 seconds
Episode Artwork

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
3/2/202144 minutes, 24 seconds
Episode Artwork

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
2/23/202147 minutes, 21 seconds
Episode Artwork

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
2/16/202142 minutes, 53 seconds
Episode Artwork

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
2/9/202159 minutes, 20 seconds
Episode Artwork

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
2/2/202151 minutes, 38 seconds
Episode Artwork

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
1/26/202138 minutes, 4 seconds
Episode Artwork

Driving Toward A Faster Python Interpreter With Pyston

Summary One of the common complaints about Python is that it is slow. There are languages and runtimes that can execute code faster, but they are not as easy to be productive with, so many people are willing to make that tradeoff. There are some use cases, however, that truly need the benefit of faster execution. To address this problem Kevin Modzelewski helped to create the Pyston intepreter that is focused on speeding up unmodified Python code. In this episode he shares the history of the project, discusses his current efforts to optimize a fork of the CPython interpreter, and his goals for building a business to support the ongoing work to make Python faster for everyone. This is an interesting look at the opportunities that exist in the Python ecosystem and the work being done to address some of them. 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 Kevin Modzelewski about his work on Pyston, an interpreter for Python focused on compatibility and speed. Interview Introductions How did you get introduced to Python? Can you start by describing what Pyston is and how it got started? Can you share some of the history of the project and the recent changes? What is your motivation for focusing on Pyston and Python optimization? What are the use cases that you are primarily focused on with Pyston? Why do you think Python needs another performance project? Can you describe the technical implementation of Pyston? How has the project evolved since you first began working on it? What are the biggest challenges that you face in maintaining compatibility with CPython? How does the approach to Pyston compare to projects like PyPy and Pyjion? How are you approaching sustainability and governance of the project? What are some of the most interesting, innovative, or unexpected uses for Pyston that you have seen? What have you found to be the most interesting, unexpected, or challenging lessons that you have learned while working on Pyston? When is Pyston the wrong choice? What do you have planned for the future of the project? Keep In Touch kmod on GitHub Blog LinkedIn Picks Tobias Last Week In AWS Newsletter Kevin Meditation Calm App Headspace Links Pyston Discord Chat Dropbox CPython PyPy Pyjion Podcast Episode Jython hpy Podcast Episode JIT Compiler Python Software Foundation Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/19/202144 minutes, 6 seconds
Episode Artwork

Project Scaffolding That Evolves With Your Software Using Copier

Summary Every software project has a certain amount of boilerplate to handle things like linting rules, test configuration, and packaging. Rather than recreate everything manually every time you start a new project you can use a utility to generate all of the necessary scaffolding from a template. This allows you to extract best practices and team standards into a reusable project that will save you time. The Copier project is one such utility that goes above and beyond the bare minimum by supporting project evolution, letting you bring in the changes to the source template after you already have a project that you have dedicated significant work on. In this episode Jairo Llopis explains how the Copier project works under the hood and the advanced capabilities that it provides, including managing the full lifecycle of a project, composing together multiple project templates, and how you can start using it for your own work today. 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 Jairo Llopis about Copier, a library for managing project templates Interview Introductions How did you get introduced to Python? Can you start by describing what the Copier project is? How did you get involved in the project? Can you share some of the history of the project? What do you see as the most common uses for a project templating tool? There are a variety of different tools for scaffolding projects across a wide range of languages. What are the distinguishing features of Copier that might lead someone to choose it over the alternatives? Can you describe how the Copier project is implemented? How has the design and feature set evolved over time? What is the workflow for someone building a template with Copier? What are some of the edge cases or complexities that they might run into? What are the options for extensibility or integration with Copier? What are some of the capabilities or use cases for Copier that are often overlooked? What are some of the most interesting, innovative, or unexpected ways that you have seen Copier used? What are the most interesting, unexpected, or challenging lessons that you have learned while working on and with Copier? When is Copier the wrong choice? What do you have planned for the future of the project? Keep In Touch Yajo on GitHub __yajo on Twitter Website Picks Tobias Playing Cards Jairo Mozilla Hubs Links Copier Tecnativa Odoo Open Source ERP Cookiecutter Yeoman Jinja Cookiecutter, Yeoman, and Copier Blog Post doodba-copier-template Copier Templates A Story of Duplicate Code Traefik The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/12/202157 minutes, 56 seconds
Episode Artwork

How Python's Evolution Impacts Your Fluency With Luciano Ramalho

Summary On its surface Python is a simple language which is what has contributed to its rise in popularity. As you move to intermediate and advanced usage you will find a number of interesting and elegant design elements that will let you build scalable and maintainable systems and design friendly interfaces. Luciano Ramalho is best known as the author of Fluent Python which has quickly become a leading resource for Python developers to increase their facility with the language. In this episode he shares his journey with Python and his perspective on how the recent changes to the interpreter and ecosystem are influencing who is adopting it and how it is being used. Luciano has an interesting perspective on how the feedback loop between the community and the language is driving the curent and future priorities of the features that are added. 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 Luciano Ramalho about the recent and upcoming changes in the Python language Interview Introductions How did you get introduced to Python? Can you start by giving an overview of the role that Python has played in your career? What other languages do you work with on a regular basis? How has that experience influenced the ways that you use Python? What do you see as the biggest changes that have been added to Python in recent years? How have the changes in Python changed the way that you approach program design? How has your work on Fluent Python influenced your perspective on the language and its utility? What do you find to be the most confusing aspects of Python, whether for newcomers or experienced developers? How would you characterize the types of features that have been added to Python in recent years? What, if any, trends have you observed in the types of features that are proposed and included in Python and what do you see as the motivating factors for them? What changes to the language are you tracking? Which are you personally invested in? What new features or capabilities would you like to see included in Python? Keep In Touch @ramalhoorg on Twitter ramalho on GitHub LinkedIn Picks Tobias Magic: The Gathering: Arena Luciano The Queen’s Gambit 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 Fluent Python Library and Information Sciences Thoughtworks São Paulo, Brazil Perl PHP Object Oriented Programming Dunder Methods Python Essential Reference Python In A Nutshell Python Typing Module Pytype Pyre MyPy AsyncIO Typing Protocols Duck Typing Static Typing Where Possible, Dynamic Typing Where Needed TypeScript Ruby 3 Type Annotations C# Go Language KotlinJS Matrix Multiplication Operator Walrus Operator == Assignment Expressions CPython PEG Parser Podcast Episode PEP 3099: Things that will Not Change in Python 3000 Elixir Pattern Matching Erlang Prolog Python Pattern Matching PEP SWIG Symbolic Computation Python Descriptors Beeware The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/5/20211 hour, 13 seconds
Episode Artwork

Making Content Management A Smooth Experience With A Headless CMS

Summary Building a web application requires integrating a number of separate concerns into a single experience. One of the common requirements is a content management system to allow product owners and marketers to make the changes needed for them to do their jobs. Rather than spend the time and focus of your developers to build the end to end system a growing trend is to use a headless CMS. In this episode Jake Lumetta shares why he decided to spend his time and energy on building a headless CMS as a service, when and why you might want to use one, and how to integrate it into your applications so that you can focus on the rest of your application. 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! Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Jake Lumetta about Butter CMS and the role of a headless CMS in the modern web ecosystem. Interview Introductions How did you get introduced to Python? Can you start by describing what a headless CMS is? How does the use case and user experience differ from working with a traditional CMS (e.g. WordPress, etc.)? How does a headless CMS compare to using a framework such as Django CMS or Wagtail? Can you describe what you have built at ButterCMS? What was your motivation for starting a business to provide a CMS as a service? How would you characterize the current state of the CMS ecosystem? How does ButterCMS compare to the available open source and commercial options? What are the trends in the web ecosystem that have made a headless CMS necessary or useful? What types of information are people managing in a CMS? How are people integrating headless CMS systems into their Python applications? Can you describe the architecture for Butter? How has the system changed or evolved since you first began working on it? What was your decision process for determining what language(s) and technology stack to use for building the platform? What are the aspects of building and maintaining a CMS that are most complex? What are some of the most interesting, innovative, or unexpected ways that you have seen ButterCMS used? What have you found to be the most interesting, unexpected, or challenging lessons that you have learned while building ButterCMS? When is ButterCMS the wrong choice? What do you have planned for the future of ButterCMS? Keep In Touch LinkedIn @jakelumetta on Twitter Picks Tobias The Arrow TV Show Jake Ghost In The Wires by Kevin Mitnick 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 ButterCMS Hiring: Dir of Engineering PHP Django MVC == Model, View, Controller Headless CMS WordPress Django CMS Wagtail Podcast Episode SEO == Search Engine Optimization JAM (Javascript, APIs, and Markup) Stack Netlify Vercel Cloudflare Pages Vue.js React.js Django Rest Framework Fastly CDN == Content Delivery Network AWS Cloudfront Ionic React Native The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/28/202048 minutes, 50 seconds
Episode Artwork

Turning Notebooks Into Collaborative And Dynamic Data Applications With Hex

Summary Notebooks have been a useful tool for analytics, exploratory programming, and shareable data science for years, and their popularity is continuing to grow. Despite their widespread use, there are still a number of challenges that inhibit collaboration and use by non-technical stakeholders. Barry McCardel and his team at Hex have built a platform to make collaboration on Jupyter notebooks a first class experience, as well as allowing notebooks to be parameterized and exposing the logic through interactive web applications. In this episode Barry shares his perspective on the state of the notebook ecosystem, why it is such as powerful tool for computing and analytics, and how he has built a successful business around improving the end to end experience of working with notebooks. This was a great conversation about an important piece of the toolkit for every analyst and data scientist. 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Barry McCardel about Hex, a managed platform to turn your notebooks into collaborative, interactive data apps and stories Interview Introductions How did you get introduced to Python? Can you start by describing what you have built at Hex and your motivation for starting the business? Who are the primary users of the Hex platform? How has that focus influenced your product direction and the features that you prioritize? What are the biggest roadblocks that you see data analysts and data consumers running into? How have those roadblocks shifted in recent years? What is it about the concept of a notebook that has caused them to see such a massive rise in usage and popularity? What are the barriers to productivity and accessibility that still exist in the notebook ecosystem? What are the pieces for working in and with notebooks that are still missing? What does Hex add to the experience of working with notebooks? Can you describe how the Hex platform implemented? How has the design of the platform changed or evolved since you first began working on it? Where does Hex sit in the lifecycle of notebook creation and usage? How does it compare to other services built to support users of notebooks such as Zepl, Saturn Cloud, Noteable, etc.? You focus on the Jupyter platform, but there are a number of other notebook frameworks that have sprung up in recent years. What do you see as being the relative strengths of the available options? What are the trends in the tooling, capabilities, and use cases for notebooks that you are keeping an eye on? What are the most interesting, innovative, or unexpected ways that you have seen the Hex platform used? What are the most interesting, unexpected, or challenging lessons that you have learned while building Hex? When is Hex the wrong choice? What do you have planned for the future of the Hex business and product? Keep In Touch LinkedIn @TheRealBarryM on Twitter Picks Tobias Flakehell DC Extended Universe Movies Barry Wingspan 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 Hex Palantir IPython Podcast Episode Jupyter Mathematica IDE == Integrated Development Environment nbconvert Observable Javascript Notebooks React BlueprintJS Papermill Streamlit Podcast Episode Shiny Redshift Snowflake Data Engineering Podcast Episode BigQuery PostgreSQL Data Engineering Podcast Episode Noteable Saturn Cloud Zepl Zeplin Notebooks JupyterHub Binder Kubeflow The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/21/202042 minutes, 39 seconds
Episode Artwork

Add Anomaly Detection To Your Time Series Data With Luminaire

Summary When working with data it’s important to understand when it is correct. If there is a time dimension, then it can be difficult to know when variation is normal. Anomaly detection is a useful tool to address these challenges, but a difficult one to do well. In this episode Smit Shah and Sayan Chakraborty share the work they have done on Luminaire to make anomaly detection easier to work with. They explain the complexities inherent to working with time series data, the strategies that they have incorporated into Luminaire, and how they are using it in their data pipelines to identify errors early. If you are working with any kind of time series then it’s worth giving Luminaure a look. 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! Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Smit Shah and Sayan Chakraborty about Luminaire, a machine learning based package for anomaly detection on timeseries data Interview Introductions How did you get introduced to Python? Can you start by describing what Luminaire is and how the project got started? Where does the name come from? How does Luminaire compare to other frameworks for working with timeseries data such as Prophet? What are the main use cases that Luminaire is powering at Zillow? What are some of the complexities inherent to anomaly detection that are non-obvious at first glance? How are you addressing those challenges in Luminaire? Can you describe how Luminaire is implemented? How has the design of the project evolved since it was first started? What was the motivation for releasing Luminaire as open source? For someone who is using Luminaire, what is the process for training and deploying a model with it? What are some common ways that it is used within a larger system? How do sustained anomalies such as the current pandemic affect the work of identifying other sources of meaningful outliers? What are some of the most interesting, innovative, or unexpected ways that you have seen Luminaire being used? What are some of the most interesting, unexpected, or challening lessons that you have learned while building and using Luminaire? When is Luminaire the wrong choice? What do you have planned for the future of the project? Keep In Touch Smit LinkedIn shahsmit14 on GitHub Sayan LinkedIn Website @tweettosayan on Twitter Picks Tobias Flakehell Smit Apache Ranger Sayan Prediction Machines: The Simple Economics Of Artificial Intelligence 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 Luminaire Zillow Anomaly Detection Facebook Prophet IEEE Big Data Conference Unsupervised Learning ARIMA (Autoregressive Integrated Moving Average) Model Airflow The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/15/202054 minutes, 23 seconds
Episode Artwork

Building Big Data Pipelines For Audio With Klio

Summary Technologies for building data pipelines have been around for decades, with many mature options for a variety of workloads. However, most of those tools are focused on processing of text based data, both structured and unstructured. For projects that need to manage large numbers of binary and audio files the list of options is much shorter. In this episode Lynn Root shares the work that she and her team at Spotify have done on the Klio project to make that list a bit longer. She discusses the problems that are specific to working with binary data, how the Klio project is architected to allow for scalable and efficient processing of massive numbers of audio files, why it was released as open source, and how you can start using it today for your own projects. If you are struggling with ad-hoc infrastructure and a medley of tools that have been cobbled together for analyzing large or numerous binary assets then this is definitely a tool worth testing out. 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Lynn Root about Klio, an open source pipeline for processing audio and binary data Interview Introductions How did you get introduced to Python? Can you start by describing what Klio is and how it got started? What are some of the challenges that are unique to processing audio data as compared to text? What use cases does Klio enable? What are some of the alternative options available for working with binary data? What capabilities were lacking in other solutions that made it worthwhile to build a new system from scratch? Can you describe the design and architecture of Klio? What was the motivation for implementing Klio as a Python framework, rather than building on top of the Scio project? How much of a challenge has it been to interface to the Beam framework from Python? (Java <-> Python impedance mismatch) One of the interesting optimizations in Klio is the option for bottom up execution of a job to avoid processing a given file unless absolutely necessary. What are some of the other useful or interesting capabilities that are built into Klio? What was the motivation and process for releasing Klio as open source? For someone who is building a pipeline with Klio, can you talk through the workflow? What are the extension and integration points that are exposed? How does Klio handle third party dependencies for a given job? What are some of the challenges, misunderstandings, or edge cases that users of Klio should be aware of? What are some of the most interesting, unexpected, or challenging lessons that you have learned while building and growing the Klio project? What are some of the most interesting, innovative, or unexpected ways that you have seen Klio used? What do you have planned for the future of the project? Keep In Touch GitHub Twitter LinkedIn Picks Tobias PSF Fundraiser Lynn Roam note-taking tool 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 Klio Announcement Blog Post Docs GitHub Spotify PyLadies SF Luigi RAML ramlfications Interrogate Apache Beam Librosa PyAudio Pillow Podcast Episode FFMPeg ImageMagick Music Information Retrieval Machine Hearing Data Engineering Podcast Episode Scio Microsoft Azure Google Cloud Platform Google Cloud Dataflow Protocol Buffers Apache Spark PySpark DAG == Directed Acyclic Graph ISMIR Conference Digital Signal Processing (DSP) Python Pickle Research paper on separating vocals from instrumentals of a song New York Times: Why songs of the summer sound the same Microsoft’s Rocket Platform for video analytics The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/7/202053 minutes, 36 seconds
Episode Artwork

Open Sourcing The Anvil Full Stack Python Web App Platform

Summary Building a complete web application requires expertise in a wide range of disciplines. As a result it is often the work of a whole team of engineers to get a new project from idea to production. Meredydd Luff and his co-founder built the Anvil platform to make it possible to build full stack applications entirely in Python. In this episode he explains why they released the application server as open source, how you can use it to run your own projects for free, and why developer tooling is the sweet spot for an open source business model. He also shares his vision for how the end-to-end experience of building for the web should look, and some of the innovative projects and companies that were made possible by the reduced friction that the Anvil platform provides. Give it a listen today to gain some perspective on what it could be like to build a web app. 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Meredydd Luff about the process and motivations for releasing the Anvil platform as open source Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what Anvil is and some of the story behind it? What is new or different in Anvil since we last spoke in June of 2019? What are the most common or most impressive use cases for Anvil that you have seen? On your website you mention Anvil being used for deploying models and productionizing notebooks. How does Anvil help in those use cases? How much of the adoption of Anvil do you attribute to the use of Skulpt and providing a way to write Python for the browser? What are some of the complications that users might run into when trying to integrate with the broader Javascript ecosystem? How does the release of the Anvil App Server affect your business model? How does the workflow for users of the Anvil platform change if they decide to run their own instance? What is involved in getting it deployed to production? What other tools or companies did you look to for positive and negative examples of how to run a successful business based on open source? What was your motivation for open sourcing the core runtime of Anvil? What was involved in getting the code cleaned up and ready for a public release? What are the other ways that your business relies on or contributes to the open source ecosystem? What do you see as the primary threats to open source business models? What are some of the most interesting, unexpected, or challenging lessons that you have learned while building and growing Anvil? What do you have planned for the future of the platform and business? Keep In Touch LinkedIn @meredydd on Twitter meredydd on GitHub Picks Tobias Magic: The Gathering Meredydd Anvil Advent Calendar Anvil Podcast 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 Anvil Podcast Episode Visual Basic Skulpt Streamlit Podcast Episode Plot.ly Dash Anvil Uplink DOM == Document Object Model SQLAlchemy Brython Transcrypt Podcast Episode Comparison of Python in the browser implementations Blog post about Anvil object serializer Create React App Webpack Jetbrains Traefik Let’s Encrypt Corey Quinn WebAssembly PyOdide The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/1/202051 minutes, 23 seconds
Episode Artwork

Pants Has Got Your Python Monorepo Covered

Summary In a software project writing code is just one step of the overall lifecycle. There are many repetitive steps such as linting, running tests, and packaging that need to be run for each project that you maintain. In order to reduce the overhead of these repeat tasks, and to simplify the process of integrating code across multiple systems the use of monorepos has been growing in popularity. The Pants build tool is purpose built for addressing all of the drudgery and for working with monorepos of all sizes. In this episode core maintainers Eric Arellano and Stu Hood explain how the Pants project works, the benefits of automatic dependency inference, and how you can start using it in your own projects today. They also share useful tips for how to organize your projects, and how the plugin oriented architecture adds flexibility for you to customize Pants to your specific needs. 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! Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Feature flagging is a simple concept that enables you to ship faster, test in production, and do easy rollbacks without redeploying code. Teams using feature flags release new software with less risk, and release more often. ConfigCat is a feature flag service that lets you easily add flags to your Python code, and 9 other platforms. By adopting ConfigCat you and your manager can track and toggle your feature flags from their visual dashboard without redeploying any code or configuration, including granular targeting rules. You can roll out new features to a subset or your users for beta testing or canary deployments. With their simple API, clear documentation, and pricing that is independent of your team size you can get your first feature flags added in minutes without breaking the bank. Go to pythonpodcast.com/configcat today to get 35% off any paid plan with code PYTHONPODCAST or try out their free forever plan. Your host as usual is Tobias Macey and today I’m interviewing Eric Arellano and Stu Hood about Pants, a flexible build system that works well with monorepos. Interview Introductions How did you get introduced to Python? Can you start by describing what Pants is and how it got started? What’s the story behind the name? What is a monorepo and why might I want one? What are the challenges caused by working with a monorepo? Why are monorepos so uncommon in Python projects? What is the workflow for a developer or team who is managing a project with Pants? How does Pants integrate with the broader ecosystem of Python tools for dependency management and packaging (e.g. Poetry, Pip, pip-tools, Flit, Twine, Pex, Shiv, etc.)? What is involved in setting up Pants for working with a new Python project? What complications might developers encounter when trying to implement Pants in an existing project? How is Pants itself implemented? How have the design, goals, or architecture evolved since Pants was first created? What are the major changes in the v2 release? What was the motivation for the major overhaul of the project? How do you recommend developers lay out their projects to work well with Python? How can I handle code shared between different modules or packages, and reducing the third party dependencies that are built into the respective packages? What are some of the most interesting, unexpected, or innovative ways that you have seen Pants used? What have you found to be the most interesting, unexpected, or challenging aspects of working on Pants? What are the cases where Pants is the wrong choice? What do you have planned for the future of the pants project? Keep In Touch Eric LinkedIn Eric-Arellano on GitHub @EArellanoAZ on Twitter Stu stuhood on GitHub @stuhood on Twitter LinkedIn Picks Tobias Cursed TV show Eric Turtle Graphics Stu Faster Than Lime blog Links Pants Foursquare Twitter Toolchain Bazel build tool Ant build tool Monorepo isort Tox Poetry distutils setuptools mypy Bandit Flake8 Sample Python Pants Project gRPC Protocol Buffers Rust GIL == Global Interpreter Lock PEP 420 Blog post about using Pants to migrate from Python 2 to 3 Pex Shiv PyOxidizer The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/23/202051 minutes, 38 seconds
Episode Artwork

Scale Your Data Science Teams With Machine Learning Operations Principles

Summary Building a machine learning model is a process that requires well curated and cleaned data and a lot of experimentation. Doing it repeatably and at scale with a team requires a way to share your discoveries with your teammates. This has led to a new set of operational ML platforms. In this episode Michael Del Balso shares the lessons that he learned from building the platform at Uber for putting machine learning into production. He also explains how the feature store is becoming the core abstraction for data teams to collaborate on building machine learning models. If you are struggling to get your models into production, or scale your data science throughput, then this interview is worth a listen. 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Python has become the default language for working with data, whether as a data scientist, data engineer, data analyst, or machine learning engineer. Springboard has launched their School of Data to help you get a career in the field through a comprehensive set of programs that are 100% online and tailored to fit your busy schedule. With a network of expert mentors who are available to coach you during weekly 1:1 video calls, a tuition-back guarantee that means you don’t pay until you get a job, resume preparation, and interview assistance there’s no reason to wait. Springboard is offering up to 20 scholarships of $500 towards the tuition cost, exclusively to listeners of this show. Go to pythonpodcast.com/springboard today to learn more and give your career a boost to the next level. Your host as usual is Tobias Macey and today I’m interviewing Mike Del Balso about what is involved in operationalizing machine learning, and his work at Tecton to provide that platform as a service Interview Introductions How did you get introduced to Python? Can you start by describing what is encompassed by the term "Operational ML"? What other approaches are there to building and managing machine learning projects? How do these approaches differ from operational ML in terms of the use cases that they enable or the scenarios where they can be employed? How would you characterize the current level of maturity for the average organization or enterprise in terms of their capacity for delivering ML projects? What are the necessary components for an operational ML platform? You helped to build the Michelangelo platform at Uber. How did you determine what capabilities were necessary to provide a unified approach for building and deploying models? How did your work on Michelangelo inform your work on Tecton? How does the use of a feature store influence the structure and workflow of a data team? In addition to the feature store, what are the other necessary components of a full pipeline for identifying, training, and deploying machine learning models? Once a model is in production, what signals or metrics do you track to feed into the next iteration of model development? One of the common challenges in data science and machine learning is managing collaboration. How do tools such as feature stores or the Michelangelo platform address that problem? What are the most interesting, unexpected, or challenging lessons that you have learned while building operational ML platforms? What advice or recommendations do you have for teams who are trying to work with machine learning? What do you have planned for the future of Tecton? Keep In Touch LinkedIn Picks Tobias Sandman graphic novel series by Neil Gaiman Mike At Home: A Short History of Private Life by Bill Bryson 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 Tecton Michelangelo sklearn Pandas Data Engineering Podcast Episode About StreamSQL Feature Store Master Data Management Amundsen Data Engineering Podcast Episode Jupyter Algorithmia Unix philosophy Feast feature store Kubeflow Andreesen Horowitz Post On Emerging Data Architectures What is a feature store? post on the Tecton blog The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/17/202051 minutes, 58 seconds
Episode Artwork

Making The Case For A (Semi) Formal Specification Of CPython

Summary The CPython implementation has grown and evolved significantly over the past ~25 years. In that time there have been many other projects to create compatible runtimes for your Python code. One of the challenges for these other projects is the lack of a fully documented specification of how and why everything works the way that it does. In the most recent Python language summit Mark Shannon proposed implementing a formal specification for CPython, and in this episode he shares his reasoning for why that would be helpful and what is involved in making it 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Your host as usual is Tobias Macey and today I’m interviewing Mark Shannon about his efforts to create a formal specification for the CPython interpreter Interview Introductions How did you get introduced to Python? Can you start by describing the current state of how the Python language and the CPython runtime are defined? What is your motivation in advocating for a specification? After ~25 years of the language, why is now the time to pursue this effort? How does the history of the language and the scope of the ecosystem and community impact the effort required to make this a reality? What is involved in creating the specification and where would it be located once complete? What are some examples of languages that are formally specified? What are the possible benefits of creating a specification for the CPython virtual machine? What is the distinction between a specification for the VM as opposed to a specification for the language? What are some potential downsides to having a (semi-)formal specification become part of the definition of the interpreter? Can you describe the process of doing the work to create the specification? How are you approaching the actual definition of the specification (e.g. prose vs programmatic)? What are the tradeoffs of prose vs. an executable specification (e.g. TLA+, Alloy)? How does this work tie into your goals of improving the speed of the CPython interpreter? What are some of the most interesting, unexpected, or challenging aspects of your efforts to bring this specification to CPython? How can the community contribute to this effort? Keep In Touch markshannon on GitHub Website Picks Tobias American Gods book and TV series Mark Roadside Picnic In Death (VR game) –On Steam 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 CPython PyPy PEP 380 yield from Language Summit RustPython Jython C++ ML programming language Java Python Formal Semantics git repository CPython PEG Parser Episode with Pablo Galindo and Lysandros Nikolaou IETF RFCs The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/10/202036 minutes, 41 seconds
Episode Artwork

Bringing Artificial Intelligence Projects From Idea To Production

Summary Artificial intelligence applications can provide dramatic benefits to a business, but only if you can bring them from idea to production. Henrik Landgren was behind the original efforts at Spotify to leverage data for new product features, and in his current role he works on an AI system to evaluate new businesses to invest in. In this episode he shares advice on how to identify opportunities for leveraging AI to improve your business, the capabilities necessary to enable aa successful project, and some of the pitfalls to watch out for. If you are curious about how to get started with AI, or what to consider as you build a project, then this is definitely worth a listen. 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! Do you want to get better at Python? Now is an excellent time to take an online course. Whether you’re just learning Python or you’re looking for deep dives on topics like APIs, memory mangement, async and await, and more, our friends at Talk Python Training have a top-notch course for you. If you’re just getting started, be sure to check out the Python for Absolute Beginners course. It’s like the first year of computer science that you never took compressed into 10 fun hours of Python coding and problem solving. Go to pythonpodcast.com/talkpython today and get 10% off the course that will help you find your next level. That’s pythonpodcast.com/talkpython, and don’t forget to thank them for supporting the show. Equalum’s end to end data ingestion platform is relied upon by enterprises across industries to seamlessly stream data to operational, real-time analytics and machine learning environments. Equalum combines streaming Change Data Capture, replication, complex transformations, batch processing and full data management using a no-code UI. Equalum also leverages open source data frameworks by orchestrating Apache Spark, Kafka and others under the hood. Tool consolidation and linear scalability without the legacy platform price tag. Go to pythonpodcast.com/equalum today to start a free 2 week test run of their platform, and don’t forget to tell them that we sent you. Your host as usual is Tobias Macey and today I’m interviewing Henrik Landgren about his experiences building AI platforms to transform business capabilities. Interview Introductions How did you get introduced to Python? Can you start by sharing your thoughts on when, where, and how AI/ML are useful tools for a business? What has been your experience in building AI platforms? For organizations who are considering investing in AI capabilities, what are some alternative strategies that they might consider first? What are the cases where AI is likely to be a wasted effort, or will fail to create a return on investment? In order to be succesful in bringing AI products to production, what are the foundational capabilities that are necessary? What have you found to be a useful composition of roles and skills for building AI products? There are various statistics that all point to a remarkably low success rate for bringing AI into production. What are some of the pitfalls that organizations and engineers should be aware of when undertaking such a project? What is your strategy for identifying opportunities for a successful AI product? Once you have determined the possible utility for such a project, how do you approach the work of making it a reality? What are the common factors in what you built at Spotify and EQT ventures? Where do the two efforts diverge? Your work on Motherbrain is interesting because of the fact that it is dealing in what seems to be intangible or unpredictable forces. What kinds of input are you relying on to generate useful predictions? What are some of the most interesting, innovative, or unexpected uses of AI that you have seen? What are some of the biggest failures of AI that you are aware of? In your work at Spotify and EQT ventures, what are the most interesting, unexpected, or challenging lessons that you have learned? What advice or recommendations do you have for anyone who wants to learn more about the potential for AI and the work involved in bringing it to production? Keep In Touch LinkedIn @hlandgren on Twitter Picks Tobias Whale bat Henrik Observable Dataform Data Engineering Podcast Episode 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 EQT Ventures Stockholm Sweden Motherbrain Accenture Spotify Basic C# ASP.NET Javascript Hadoop McKinsey Deep Learning Data Engineer Data Scientist Machine Learning Engineer Discover Weekly Spotify Playlist GPT-3 Deep Fakes DBT Data Engineering Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/3/202047 minutes, 49 seconds
Episode Artwork

Power Up Your Java Using Python With JPype

Summary Python and Java are two of the most popular programming languages in the world, and have both been around for over 20 years. In that time there have been numerous attempts to provide interoperability between them, with varying methods and levels of success. One such project is JPype, which allows you to use Java classes in your Python code. In this episode the current lead developer, Karl Nelson, explains why he chose it as his preferred tool for combining these ecosystems, how he and his team are using it, and when and how you might want to use it for your own projects. He also discusses the work he has done to enable use of JPype on Android, and what is in store for the future of the project. If you have ever wanted to use a library or module from Java, but the rest of your project is already in Python, then this episode is definitely worth a listen. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Karl Nelson about JPype, a language bridge that lets you use Java classes in your Python programs Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what JPype is? What was your motivation for becoming such a regular contributor to the project? Why might someone want to be able to call into the Java ecosystem from a Python program? There have been a number of other projects aiming to combine the capabilities of Java and Python, such as Jython and PyJNIus. What are the relative tradeoffs between the different options? Many of those other projects have stalled or stopped altogether. What about JPype has allowed it to survive for so long? Can you explain how JPype is implemented? How has the design and implementation of the project evolved since it was first implemented? How do the relative language versions influence the compatibility of programs on either side of the bridge? What is involved in creating a project that uses JPype? How are dependencies, packaging, distribution, etc. handled across the Java and Python portions of the code? What are some of the ways that JPype can be used for Android applications? What are some of the sharp edges or pitfalls that users of JPype should be aware of? What are some of the most interesting, innovative, or unexpected ways that you have seen JPype used? What have you found to be the most interesting or challenging aspects of building JPype? When is JPype the wrong choice? What is in store for the future of the project? Keep In Touch Thrameos on GitHub LinkedIn Picks Tobias Hiking All Trails The Hiking Project Karl Summoner’s Rift Links JPype Java Overview of Python to Java bridges Lawrence Livermore National Lab GTK– Gnome Perl C++ Matlab Java Native Interface (JNI) SciPy NumPy Matplotlib Jython PyJNIus Py4J Jep Ruby Reflection Ivy Maven JDBC Kivy Android Python Slots PyPy Java ASM Arrow Columnar Memory Format Protocol Buffers GraalVM The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/26/202048 minutes, 39 seconds
Episode Artwork

The Journey To Replace Python's Parser And What It Means For The Future

Summary The release of Python 3.9 introduced a new parser that paves the way for brand new features. Every programming language has its own specific syntax for representing the logic that you are trying to express. The way that the rules of the language are defined and validated is with a grammar definition, which in turn is processed by a parser. The parser that the Python language has relied on for the past 25 years has begun to show its age through mounting technical debt and a lack of flexibility in defining new syntax. In this episode Pablo Galindo and Lysandros Nikolaou explain how, together with Python’s creator Guido van Rossum, they replaced the original parser implementation with one that is more flexible and maintainable, why now was the time to make the change, and how it will influence the future evolution of the language. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Pablo Galindo and Lysandros Nikolaou about their work on replacing the parser in CPython and what that means for the language Interview Introductions How did you get introduced to Python? Can you start by discussing the role of the parser in the lifecycle of a Python program? What were the limitations of the previous parser, and how did that contribute to complexity and technical debt in the CPython runtime? What are the options for styles of parsers, and what are the benefits of using a PEG style grammar? How does the new parser impact the approachability of the CPython code for new contributors? What was the process for reimplementing the parser and guarding against regressions in the syntax? As developers switch to the 3.9 release, what potential edge cases/bugs might they see from introducing the new parser? What new syntax options does this parser provide for the Python language? Are there any specific features that are planned for implementation in the 3.10 release that are enabled by the new parser grammar? As the language evolves due to new capabilities offered by the updated parser, how will that impact other implementations such as PyPy? What were the most interesting, unexpected, or challenging aspects of this project? What other aspects of the CPython code do you think should be reconsidered or reimplemented in light of the changes in computing and the usage of the language? Keep In Touch Pablo pablogsal on GitHub @pyblogsal on Twitter LinkedIn Lysandros LinkedIn lysnikolaou on GitHub @lysnikolaou on Twitter Picks Tobias Annual Python Developer Survey Jessica Jones TV show Pablo Raised By Wolves TV Series Lysandros Afterlife TV show Links PEP 617 – New PEG Parser for CPython Podcast Episode About Parsers CPython Bloomberg PEG Parsers Seafair LL(1) Parsers Łukasz Langa Parser Generator Concrete Syntax Tree Abstract Syntax Tree PyPy RustPython Podcast Episode IronPython Structural Pattern Matching – PEP 622 Pylint ASTroid Podcast Episode Hy Podcast Episode Walrus Operator/Assignment Expressions C99 Reference Counting Cycle Hunting/Generational Garbage Collection The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/19/20201 hour, 5 minutes, 48 seconds
Episode Artwork

Cloud Native Application Delivery Using GitOps

Summary The way that applications are being built and delivered has changed dramatically in recent years with the growing trend toward cloud native software. As part of this movement toward the infrastructure and orchestration that powers your project being defined in software, a new approach to operations is gaining prominence. Commonly called GitOps, the main principle is that all of your automation code lives in version control and is executed automatically as changes are merged. In this episode Victor Farcic shares details on how that workflow brings together developers and operations engineers, the challenges that it poses, and how it influences the architecture of your software. This was an interesting look at an emerging pattern in the development and release cycle of modern applications. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Tree Schema is a data catalog that is making metadata management accessible to everyone. With Tree Schema you can create your data catalog and have it fully populated in under five minutes when using one of the many automated adapters that can connect directly to your data stores. Tree Schema includes essential cataloging features such as first class support for both tabular and unstructured data, data lineage, rich text documentation, asset tagging and more. Built from the ground up with a focus on the intersection of people and data, your entire team will find it easier to foster collaboration around your data. With the most transparent pricing in the industry – $99/mo for your entire company – and a money-back guarantee for excellent service, you’ll love Tree Schema as much as you love your data. Go to pythonpodcast.com/treeschema today to get your first month free, and mention this podcast to get %50 off your first three months after the trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Victor Farcic about using GitOps practices to manage your application and your infrastructure in the same workflow Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what GitOps is? What are the architectural or design elements that developers need to incorporate to make their applications work well in a GitOps workflow? What are some of the tools that facilitate a GitOps approach to managing applications and their target environments? What are some useful strategies for managing local developer environments to maintain parity with how production deployments are architected? As developers acquire more resonsibility for building the automation to provision the production environment for their applications, what are some of the operations principles that they need to understand? What are some of the development principles that operators and systems administrators need to acquire to be effective in contributing to an environment that is managed by GitOps? What are the areas for collaboration and dividing lines of responsibility between developers and platform engineers in a GitOps environment? Beyond the application development and deployment, what are some of the additional concerns that need to be built into an application in order for it to be manageable and maintainable once it is in production? What are some of the organizational principles that contribute to a successful implementation of GitOps? What are some of the most interesting, innovative, or unexpected ways that you have seen GitOps employed? What have you found to be the most challenging aspects of creating a scalable and maintainable GitOps practice? When is GitOps the wrong choice, and what are the alternatives? What resources do you recommend for anyone who wants to dig deeper into this subject? Keep In Touch LinkedIn Blog @vfarcic on Twitter Picks Tobias Pulumi Podcast Episode Victor Loki Links GitOps CodeFresh Kubernetes DevOps Paradox Podcast Perl Cloud Native ArgoCD Flux Observability Prometheus Helm KNative MiniKube Viktor’s Udemy Books and Courses Viktor’s YouTube channel The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/12/202053 minutes, 43 seconds
Episode Artwork

Threading The Needle Of Interesting And Informative While You Learn To Code

Summary Learning to code is a neverending journey, which is why it’s important to find a way to stay motivated. A common refrain is to just find a project that you’re interested in building and use that goal to keep you on track. The problem with that advice is that as a new programmer, you don’t have the knowledge required to know which projects are reasonable, which are difficult, and which are effectively impossible. Steven Lott has been sharing his programming expertise as a consultant, author, and trainer for years. In this episode he shares his insights on how to help readers, students, and colleagues interested enough to learn the fundamentals without losing sight of the long term gains. He also uses his own difficulties in learning to maintain, repair, and captain his sailboat as relatable examples of the learning process and how the lessons he has learned can be translated to the process of learning a new technology or skill. This was a great conversation about the various aspects of how to learn, how to stay motivated, and how to help newcomers bridge the gap between what they want to create and what is within their grasp. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at pythonpodcast.com/datadog. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Steven F. Lott about finding a project that you care about to aid in learning to program Interview Introductions How did you get introduced to Python? Can you start by outlining your experiences working with and teaching Python? Does your day-to-day experience at work suggest ways to help newcomers learn about Python? How have your experiences as an author influenced your perspective on how to help newcomers become motivated to learn programming? One of the common pieces of advice that I and others have given to people learning Python or other languages is to find a project that they want to build, but that’s not necessarily a practical approach. What are some of the difficulties that might come of that approach? What are some strategies that you have tried for helping learners identify what kinds of project are possible and practical? Beyond the difficulty of understanding what is possible and what is going to require a dedicated team of engineers to even attempt, there is the question of remaining motivated for long enough to follow through on a project in the face of syntax errors and design challenges. What can language developers and ecosystems do to improve the newcomer experience in exploring possibilities? How can we make syntax errors educational and recoverable, rather than needing accrued knowledge, or hours of web searches? As an author, there are complementary goals that may lead to conflict in the form of wanting to provide structured guidance and progression while allowing for creativity and experimentation. How have you approached those objectives in your books? What are some of the projects that have motivated you to learn new skills? What advice do you have for anyone who is working on or considering writing a book to teach a technical skill? What advice do you have for anyone who is trying to learn programming or acquire a skill in a new language, platform, or framework? Why are both of you movie picks black and white? Are you a film noir fan? Keep In Touch Website Blog LinkedIn slott56 on GitHub @s_lott on Twitter Picks Tobias The Hobbit Trilogy: Extended Edition (affiliate link) The Lord Of The Rings Trilogy: Extended Edition (affiliate link) Steven Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb The General 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 Modern Python Cookbook Packt Publishing Eiffel Modula 3 COBOL Stack Overflow Capital One The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/6/202056 minutes, 29 seconds
Episode Artwork

Solving Python Package Creation For End User Applications With PyOxidizer

Summary Python is a powerful and expressive programming language with a vast ecosystem of incredible applications. Unfortunately, it has always been challenging to share those applications with non-technical end users. Gregory Szorc set out to solve the problem of how to put your code on someone else’s computer and have it run without having to rely on extra systems such as virtualenvs or Docker. In this episode he shares his work on PyOxidizer and how it allows you to build a self-contained Python runtime along with statically linked dependencies and the software that you want to run. He also digs into some of the edge cases in the Python language and its ecosystem that make this a challenging problem to solve, and some of the lessons that he has learned in the process. PyOxidizer is an exciting step forward in the evolution of packaging and distribution for the Python language and community. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at pythonpodcast.com/datadog. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Gregory Szorc about his work on PyOxidizer, a revolutionary new approach to building and distributing self-contained Python applications Interview Introductions How did you get introduced to Python? Can you start by giving an overview on the shortcomings of the current state of the art for distributing Python projects, both for deployment and end-user consumption? What is PyOxidizer and what motivated you to create it? How does PyOxidizer differ from projects such as CxFreeze, Py2Exe, or Shiv? What are the characteristics of CPython and the packaging ecosystem that make it so challenging to easily distribute self-contained applications? For someone using PyOxidizer, what is their workflow for building an executable that they can share with end users? What are some of the edge cases or special considerations that they need to be aware of? How is PyOxidizer implemented? How has the design or direction evolved since you first began working on it? From your experience in working on PyOxidizer, what changes would you like to see in the Python language or the CPython reference implementation? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on PyOxidizer? What do you have planned for the future of PyOxidizer? What are the ways that listeners can contribute to PyOxidizer? Keep In Touch Website indygreg on GitHub Picks Tobias Carlos Santana Gregory Home Air Quality Monitor 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 PyOxidizer Mercurial Podcast Episode Mozilla Virtualenv Pip Docker Py2Exe CXFreeze Beeware Shiv FPM Python Build Standalone Importlib Rust Russell Keith-Magee Black Swans Keynote Followup Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/29/202049 minutes, 39 seconds
Episode Artwork

Flexible Network Security Detection And Response With Grapl

Summary Servers and services that have any exposure to the public internet are under a constant barrage of attacks. Network security engineers are tasked with discovering and addressing any potential breaches to their systems, which is a never-ending task as attackers continually evolve their tactics. In order to gain better visibility into complex exploits Colin O’Brien built the Grapl platform, using graph database technology to more easily discover relationships between activities within and across servers. In this episode he shares his motivations for creating a new system to discover potential security breaches, how its design simplifies the work of identifying complex attacks without relying on brittle rules, and how you can start using it to monitor your own systems today. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at pythonpodcast.com/datadog. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Colin O’Brien about Grapl, an open source platform for detection and response of system security incidents Interview Introductions How did you get introduced to Python? Can you start by describing what Grapl is and the problem that you are trying to solve with it? What was your original motivation to create it? What were the existing options for security detection and response, and how is Grapl differentiated from them? Who is the target audience for the Grapl project? How is the Grapl system architected? How has the design of the system evolved since you first began working on it? How much effort would it be to separate the Grapl architecture from AWS to migrate it to other environments? What have you found to be the benefits of splitting the implementation of the system between Rust for the system and Python for the exploration? What challenges have you faced as a result of working across those languages? What data sources does Grapl use to build its graph of events within a system? Can you talk through the overall workflow for someone using Grapl? What are some examples of the types of exploits that you can identify with Grapl? What are some of the most interesting, unexpected, or innovative ways that you have seen Grapl used? What are some of the most interesting, unexpected, or challenging lessons that you have learned while building it? When is Grapl the wrong choice? What do you have planned for the future of Grapl? Keep In Touch insanitybit on GitHub LinkedIn @InsanityBit on Twitter Picks Tobias Artemis Fowl book series by Eoin Colfer Artemis Fowl Movie Colin PyO3 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 Grapl Grapl Security SIEM == Security Information and Event Management Rapid7 Metasploit Insight IDR Erlang DGraph Splunk Elasticsearch AWS Lambda Sysdig Sysmon AWS CloudTrail Guard Duty OpenFaaS AWS SQS DynamoDB PyO3 Dropper Malware SSH Session Hijacking Vagrant The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/22/202053 minutes, 32 seconds
Episode Artwork

Simplified Data Extraction And Analysis For Current Events With Newspaper

Summary News media is an important source of information for understanding the context of the world. To make it easier to access and process the contents of news sites Lucas Ou-Yang built the Newspaper library that aids in automatic retrieval of articles and prepare it for analysis. In this episode he shares how the project got started, how it is implemented, and how you can get started with it today. He also discusses how recent improvements in the utility and ease of use of deep learning libraries open new possibilities for future iterations of the project. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at pythonpodcast.com/datadog. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Lucas Ou-Yang about Newspaper, a framework for easily extracting and processing online articles. Interview Introductions How did you get introduced to Python? Can you start by describing what the Newspaper project is and your motivations for creating it? What are the main use cases that Newspaper is built for? What are some libraries or tools that Newspaper might replace? What are the common structures in news sites that allow you to abstract across them for content extraction? What are some ways of determining whether a site will be a good candidate for using with Newspaper? Can you talk through the developer workflow of someone using Newspaper? What are some of the other libraries or tools that are commonly used alongside Newspaper? How is Newspaper implemented? How has the design of he project evolved since you first began working on it? What are some of the most complex or challenging aspects of building an automated article extraction tool? What are some of the most interesting, unexpected, or innovative projects that you have seen built with Newspaper? What keeps you interested in the ongoing support and maintenance of the project? What do you have planned for the future of Newspaper? Keep In Touch LinkedIn @LucasOuYang on Twitter Website codelucas on GitHub Picks Tobias Million Bazillion Podcast Lucas Hackers and Painters: Big Ideas from the Computer Age by Paul Graham 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 Newspaper Los Angeles Reddit Django NLP == Natural Language Processing Web Scraping Podcast Episode Requests Wintria Python Goose Diffbot Heuristics Stop Words RSS SpaCy Podcast Episode Gensim Podcast Episode PyTorch Podcast Episode NLTK LXML Beautiful Soup The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/15/202043 minutes, 27 seconds
Episode Artwork

Digging Into Dagster: An Opinionated Open Source Framework For Data Orchestration

Summary Data applications are complex and continually evolving, often requiring collaboration across multiple teams. In order to keep everyone on the same page a high level abstraction is needed to facilitate a cross-cutting view of the data orchestration across integration, transformation, analytics, and machine learning. Dagster is an innovative new framework that leans on the power and flexibility of Python to provide an extensible interface to the complete lifecycle of data projects. In this episode Nick Schrock explains how he designed the Dagster project to allow for integration with the entire data ecosystem while providing an opinionated structure for connecting the different stages of computation. He also discusses how he is working to grow an open ecosystem around the Dagster project, and his thoughts on building a sustainable business on top of it without compromising the integrity of the community. This was a great conversation about playing the long game when building a business while providing a valuable utility to a complex problem domain. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at pythonpodcast.com/datadog. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Nick Schrock about Dagster, an open source data orchestrator for powering data engineering, analytics, and machine learning Interview Introductions How did you get introduced to Python? Can you start by describing what Dagster is and how it got started? What are the most common difficulties that organizations face when working with data projects? How does Dagster help in addressing those challenges? There are a number of workflow orchestration platforms, spanning a few generations of tooling. What do you see as the defining characteristics of the various options, and how does Dagster fit in that ecosystem? What are the assumptions that you made at the start of building Dagster and how have they been challenged, updated, or invalidated over the past year of working with end users? How are the internals of Dagster implemented? How has the design changed or evolved since you first began working on it? For someone who is building on top of Dagster, what is their workflow from first steps through to production? What are your guiding principles for desigining the user facing API? What are the available extension points for Dagster? What was your reason for implementing Dagster as a Python framework? With the benefit of hindsight, would you make the same decision today? What are some of the most interesting, innovative, or unexpected ways that you have seen Dagster used? What are the most interesting, unexpected, or challenging lessons that you have learned while building Dagster and working to grow its ecosystem? When is Dagster the wrong choice? As you continue to build Dagster, what is your vision for it and its ecosystem? What are the next steps that you are taking to achieve that vision? Keep In Touch @schrockn on Twitter schrockn on GitHub LinkedIn Picks Tobias Caddy web server Nick Black code formatter 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 Dagster Elementl IronPython Fluent Python GraphQL Maslow’s Hierarchy of Needs Hierarchy of Data Needs DAG == Directed Acyclic Graph Informatica Airflow Luigi Dagster Config Schema Dask Data Engineering Podcast Episode Coiled Episode gRPC MyPy Podcast Episode Data Lineage Pandas Podcast Episode Amundsen Podcast Episode DataHub Podcast Episode Gatsby.js Panama Papers Mode Analytics Podcast Episode Papermill Podcast Episode DBT Podcast Episode Databricks Tobias’ Dagster Repository The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/7/202059 minutes, 28 seconds
Episode Artwork

When, Why, and How To Use Web Scraping In A Nutshell

Summary The internet is a rich source of information, but a majority of it isn’t accessible programmatically through APIs or databases. To address that shortcoming there are a variety of web scraping frameworks that aid in extracting structured data from web pages. In this episode Attila Tóth shares the challenges of web data extraction, the ways that you can use it, and how Scrapy and ScrapingHub can help you with your 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Attila Tóth about doing data extraction with web scraping. Interview Introductions How did you get introduced to Python? Can you start by explaining what web scraping is and when you might want to use it? How did you first get started with web scraping? There are a number of options for web scraping tools in Python, as well as other languages. What are the characteristics of the Scrapy project and community that have made it stand out and retain such widespread popularity? One of the perpetual questions with web scraping is that of copyright and content ownership. What should we all be aware of when scraping a given website? What are some of the most challenging aspects of crawling and scraping the web? What are some of the features of Scrapy that aid in those challenges? Once you have retrieved the content from a site, what are some of the considerations for storing and processing the data that we should be thinking about? How can we guard against a scraper breaking due to changes in the layout of a site, or simple updates that weren’t accounted for in the initial implementation? What are some of the most complicated aspects of scaling web scrapers? For someone who is interested in using Scrapy, what are some of the common pitfalls that they should be aware of? What are some of the most interesting, innovative, or unexpected projects that are built with Scrapy and ScrapingHub? What are the most interesting, unexpected, or challenging lessons that you have learned while working with web scrapers and ScrapingHub? What resources would you recommend to anyone who is looking to learn more about web scraping? Keep In Touch LinkedIn Picks Tobias Gov’t Mule Attila Awesome Web Scraping Awesome Scrapy 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 Web Scraping ScrapingHub Java Android Scrapy JSoup HTMLUnit Selenium Pandas robots.txt Puppeteer Splash The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/1/202041 minutes, 51 seconds
Episode Artwork

Working In The Code Mines: Mining Software Repositories With PyDriller

Summary A large portion of the software industry has standardized on Git as the version control sytem of choice. But have you thought about all of the information that you are generating with your branches, commits, and code changes? Davide Spadini created the PyDriller framework to simplify the work of mining software repositories to perform research on the technical and social aspects of software engineering. In this episode he shares some of the insights that you can gain by exploring the history of your code, the complexities of building a framework to interact with Git, and some of the interesting ways that PyDriller can be used to inform your own development practices. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Davide Spadini about PyDriller, a framework for mining software repositories Interview Introductions How did you get introduced to Python? Can you start by describing what PyDriller is and how the project got started? How is Pydriller different from other Git frameworks? What kinds of information can you discover by mining a software repository? Where and how might the collected information be used? What are the limitations of the capabilities offered by Git for investigating the repository? What are the additional metrics that you are able to extract using PyDriller? Can you describe how PyDriller itself is implemented? How has the project evolved since you first began working on it? I noticed that for testing PyDriller you crafted a set of repositories to serve as test cases. What has been the most complex or challenging aspect of writing meaningful tests to ensure a reasonable coverage of this problem domain? What would be required to add support for other version control systems? How have you used PyDriller in your own research? What are some of the most interesting, unexpected, or innovative ways that you have seen PyDriller used? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on and with PyDriller? What do you have planned for the future of PyDriller? Keep In Touch Website ishepard on GitHub @DavideSpadini on Twitter Picks Tobias pre-commit Davide Fall guys 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 PyDriller Delft Git GitPython PyGit2 RepoDriller Mining Software Repositories Conference Lizard Hadoop Mercurial Podcast Episode Subversion CVS Neo4J GraphRepo The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/25/202040 minutes, 3 seconds
Episode Artwork

Building The Open Data Ecosystem For Music And More At Metabrainz

Summary The Musicbrainz project was an early entry in the movement to build an open data ecosystem. In recent years, the Metabrainz Foundation has fostered a growing ecosystem of projects to support the contribution of, and access to, metadata, listening habits, and review of music. The majority of those projects are written in Python, and in this episode Param Singh explains how they are built, how they fit together, and how they support the goals of the Metabrains Foundation. This was an interesting exporation of the work involved in building an ecosystem of open data, the challenges of making it sustainable, and the benefits of building for the long term rather than trying to achieve a quick win. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! Before you put your code into production you need to make sure that it passes all of the tests, that it has been packaged with all of the dependencies, and that you haven’t introduced any security issues. Instead of running all of that on your laptop, let Codefresh handle it automatically with their continuous integration and continuous delivery platform. Built for the modern era of cloud-native computing, they make publishing to Kubernetes, serverless platforms, and virtual machines fast and seamless. With a growing library of pre-made steps, a flexible pipeline definition, and unlimited scale Codefresh lets you ship faster and safer than ever. Go to pythonpodcast.com/codefresh today to get unlimited builds on your free account. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Param Singh about the ways that Python is being used across the various Metabrainz projects Interview Introductions How did you get introduced to Python? Can you start by giving an overview of what the Metabrainz organization is and the various projects that it encompasses? What are the motivations for creating those projects and some of the origin story for Metabrainz? The Musicbrainz server is the longest running project and is written in Perl. What was the reason for switching to Python for all of the other *brainz projects? How does the MetaBrainz Foundation sustain itself? Where do the funds come from? How do you determine where and how to allocate the funding that you receive? Which of the *brainz projects is the most complex or challenging to build, whether due to technical or sociological reasons? How do you source and manage the information that powers all of the Metabrainz projects? How is development of the various projects organized? How does that influence the amount of code sharing that is possible between them? Of the projects that you have been involved in, how are they architected? What are the main ways that the projects differ in how they are implemented? What are some of the ways that you are using Python in support of the various projects that you work on? What are some of the most interesting, innovative, or unexpected ways that you have seen the projects or data built by Metabrainz being used? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working as a contributor and maintainer of the Metabrainz projects? What is in store for the future of the existing Metabrainz projects? What are the next domains that are being considered for building a Metabrainz platform for? Keep In Touch LinkedIn paramsingh on GitHub Website Picks Tobias Beets music library organizer Podcast Episode Param Prateek Kuhad Links Metabrainz Musicbrainz Listenbrainz Acousticbrainz Bookbrainz Critiquebrainz Picard Stripe The Himalayas Dublin Ireland XKCD Import Antigravity Antigravity Python Module Last.fm Google Summer of Code CDDB Perl Flask SQLAlchemy 3rd anniversary cake Redis PostgreSQL RabbitMQ Spark Music Technology Group Splunk Artist Origins Map on ListenBrainz The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/17/202048 minutes, 6 seconds
Episode Artwork

Growing Dask To Make Scaling Python Data Science Easier At Coiled

Summary Python is a leading choice for data science due to the immense number of libraries and frameworks readily available to support it, but it is still difficult to scale. Dask is a framework designed to transparently run your data analysis across multiple CPU cores and multiple servers. Using Dask lifts a limitation for scaling your analytical workloads, but brings with it the complexity of server administration, deployment, and security. In this episode Matthew Rocklin and Hugo Bowne-Anderson discuss their recently formed company Coiled and how they are working to make use and maintenance of Dask in production. The share the goals for the business, their approach to building a profitable company based on open source, and the difficulties they face while growing a new team during a global pandemic. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Matthew Rocklin and Hugo Bowne-Anderson about their work building a business around the Dask ecosystem at Coiled Interview Introductions How did you get introduced to Python? Can you give a quick overview of what Dask is and your motivations for creating it? How has Dask changed or evolved in the past 3 1/2 years since we last talked about it? How has the rest of the ecosystem changed in that time? After working on Dask for the past few years, what led you to the decision to build a business around it? What are the sharp edges of programming for Dask that users are looking for help on solving? What are the difficulties that users face in deploying and maintaining a production installation of Dask? What are the limitations of Dask when scaling both up and down? What are you building at Coiled to improve the user experience for users of Python and Dask? What are your thoughts on the pros and cons of orienting your messaging around the scalability of Python, as opposed to focusing on a specific industry or problem domain? What are the challenges that you are facing in managing the tensions between the open source and proprietary work that you are doing? How are you handling the ongoing governance of the Dask project? What are some of the most interesting, unexpected, or challenging lessons that you have learned while building and launching a company based on an open source project? What do you have planned for the future of both Coiled and Dask? Keep In Touch Matt Website @mrocklin on Twitter mrocklin on GitHub Hugo LinkedIn @hugobowne on Twitter Website Picks Tobias The Hobbit Audiobook Audible Free Trial (affiliate link) Matt Prefect Hugo Race After Technology by Ruha Benjamin Ruha Benjamin on deep learning: Computational depth without sociological depth is ‘superficial learning’ 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 Sign up for the Coiled Beta! Coiled Dask Data Engineering Podcast Interview About Dask PyData NumPy SciPy Cell Biology Datacamp Dataframed Matthew Rocklin on Podcast.__init__ about functional programming with Toolz IPython Notebook PyTorch Podcast Episode Airflow Prefect XGBoost Tornado Coiled Blog Post About The Goals of Dask Spark AsyncIO Concurrent.futures Pangeo Xarray RAPIDS Nvidia Cuda Prefect Data Engineering Podcast Episode Celery Life Sciences Tensorflow Snorkel Data Engineering Podcast Episode Dagster Data Engineering Podcast Episode DevOps Docker Kubernetes Metaflow Podcast Episode Ray Podcast Episode Anyscale Yarn Gartner Hype Cycle Travis Oliphant Postgres Amazon ECS Django Django Allauth Quansight Wes McKinney Podcast Interview Ursa Labs The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/10/202052 minutes, 7 seconds
Episode Artwork

Supporting The Full Lifecycle Of Machine Learning Projects With Metaflow

Summary Netflix uses machine learning to power every aspect of their business. To do this effectively they have had to build extensive expertise and tooling to support their engineers. In this episode Savin Goyal discusses the work that he and his team are doing on the open source machine learning operations platform Metaflow. He shares the inspiration for building an opinionated framework for the full lifecycle of machine learning projects, how it is implemented, and how they have designed it to be extensible to allow for easy adoption by users inside and outside of Netflix. This was a great conversation about the challenges of building machine learning projects and the work being done to make it more achievable. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Savin Goyal about Netflix’s infrastructure for machine learning Interview Introductions How did you get introduced to Python? Can you start by describing the work you are doing at Netflix to support their machine learning workloads? How are you addressing the impedance mismatch of machine learning/data science work between local experimentation and production deployment? What was the motivation for building Metaflow? How does Metaflow compare to other tools in the ecosystem such as MLFlow? What was missing in the other available tools that made Metaflow necessary? workflow for someone using Metaflow How do you approach the design of the developer interface to make it approachable to machine learning engineers? level of coupling with overall Netflix data stack How is Metaflow implemented? How has the architecture and design of the system evolved since you first began working on it? supporting infrastructure/integration points motivation/benefits of releasing it as open source What are some of the most interesting, unexpected, or challenging lessons that you have learned while building infrastructure and tooling for machine learning? When is Metaflow the wrong choice? What do you have planned for the future of Metaflow and Keep In Touch LinkedIn @savingoyal on Twitter savingoyal on GitHub Picks Tobias vdist Savin Reparing Vintage Watches 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 Metaflow OCaml EC2 S3 Data Lake PyTorch Tensorflow Netflix Data Stack Spinnaker Chaos Engineering Chaos Toolkit Podcast Episode Chaos Monkey Netflix Simian Army Netflix Titus AWS Batch Netflix Meson Dataflow Programming DAG == Directed Acyclic Graph MLFlow DVC (Data Version Control) Podcast Episode CML (Continuous Machine Learning) AWS Step Functions The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/4/202044 minutes, 45 seconds
Episode Artwork

Learning To Program By Building Tiny Python Projects

Summary One of the best methods for learning programming is to just build a project and see how things work first-hand. With that in mind, Ken Youens-Clark wrote a whole book of Tiny Python Projects that you can use to get started on your journey. In this episode he shares his inspiration for the book, his thoughts on the benefits of teaching testing principles and the use of linting and formatting tools, as well as the benefits of trying variations on a working program to see how it behaves. This was a great conversation about useful strategies for supporting new programmers in their efforts to learn a valuable skill. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Ken Youens-Clark about his book Tiny Python Projects Interview Introductions How did you get introduced to Python? What is your goal with your book of Tiny Python Projects? What motivated you to start writing it? Who is the target audience that you wrote the book for? One of the notable aspects of the book is the fact that you introduce linting and testing in the first chapter. Why is that a useful subject for the first steps of someone getting started in Python? What are some of the problems that users experience if they are introduced to these tools after they have already established a set of habits? How did you approach the structure of the book to be approachable by newcomers to Python? What was your process for deciding on the scope of the information to include in the book? What are some of the challenges that you faced in identifying self-contained projects that could fit into a single chapter? As a book that is intended to serve as a learning resource, what was your process for soliciting feedback to determine if your tone and structure is effective in teaching the reader? What elements of the Python language and ecosystem did you consciously leave out to avoid overwhelming the readers? What are some of the most interesting, unexpected, or challenging lessons that you learned while working on the book? What are your thoughts on useful resources and next steps for readers who are interested in progressing in their use of Python? Keep In Touch kyclark on GitHub Website @kycl4rk on Twitter Picks Tobias Marvel Cinematic Universe Ken Parks & Recreation TV Show 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 Tiny Python Projects University of Arizona BioInformatics Perl BioPython Podcast Episode Seq Podcast Episode Pytest Podcast Episode Windows Subsystem for Linux Pylint Podcast Episode YAPF Black Python Formatter Mad Libs Boolean Algebra Object Oriented Programming Delphi OmniGraffle Kent Beck Test Driven Development Clojure Regular Expression The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/28/202054 minutes, 59 seconds
Episode Artwork

Idiomatic Functional Programming With DRY Python

Summary Python is an intuitive and flexible language, but that versatility can also lead to problematic designs if you’re not careful. Nikita Sobolev is the CTO of Wemake Services where he works on open source projects that encourage clean coding practices and maintainable architectures. In this episode he discusses his work on the DRY Python set of libraries and how they provide an accessible interface to functional programming patterns while maintaining an idiomatic Python interface. He also shares the story behind the wemake Python styleguide plugin for Flake8 and the benefits of strict linting rules to engender good development habits. This was a great conversation about useful practices to build software that will be easy and fun to work on. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Nikita Sobolev about his work with DRY Python and Wemake Services Interview Introductions How did you get introduced to Python? Can you start by sharing your overarching philosophies or design aesthetics for writing maintainable software? What is your process for starting a new project, beginning at the design phase? What are some of the challenges or shortcomings that you see in the "default" way that most developers write Python? What is DRY Python is and how does it help in addressing those concerns? What was your motivation for creating these projects? There are a number of different projects that are being built under the DRY Python umbrella. Can you list the ones that are currently active and outline how they fit together? What are some of the initial challenges that newcomers to the DRY Python libraries encounter? How do you approach the design of the API and developer experience to make these development approaches more accessible? What have you seen in terms of real world impact on the maintainability and extensibility of projects that you have built on top of the DRY Python components? In addition to DRY Python you are also involved with development of the wemake-python-styleguide. Can you describe that projects goal and how it got started? If you make the linting too restrictive then developers are likely to just ignore or disable it. What have you found to be the right balance to which rules will fail a build and which are just informational? Why do you push the responsibility for things like formatting onto the developer, rather than an autoformatter such as YAPF or Black? What are some of the other supporting technologies that you rely on during your development workflow? What are some of the elements that you think are missing in the common toolbox for Python developers? What tools are we lacking entirely? What are the cases where DRY Python is the wrong choice? What are your goals and plans for the future of DRY Python and the various Wemake libraries? Keep In Touch Blog sobolevn on GitHub Picks Tobias The Map To Everywhere Nikita Russian Python Week 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 DRY Python Wemake Services wemake-python-styleguide Turbogears 2 Dotenv Linter Returns Wemake Python Package Cookiecutter Template Test Driven Development Requirements Analysis RESTs Django Rest Framework Classes Monads Functors Scala Kotlin Haskell Punq dependency injection library Flake8 Wemake Django Template Flake8 Baseline isort Nitpick Mypy Darglint Poetry Pip Dependency Resolver Podcast Episode Hypothesis Podcast Episode Schemathesis Pytest Auto Hypothesis Typescript Rust Elixir Zio Scala GitHub Sponsors Do Not Log blog post The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/21/202047 minutes, 42 seconds
Episode Artwork

The Past, Present, And Future Of The FLUFL: Barry Warsaw Shares His History With Python

Summary Barry Warsaw has been a member of the Python community since the very beginning. His contributions to the growth of the language and its ecosystem are innumerable and diverse, earning him the title of Friendly Language Uncle For Life. In this episode he reminisces on his experiences as a core developer, a member of the Python Steering Committee, and his roles at Canonical and LinkedIn supporting the use of Python at those companies. In order to know where you are going it is always important to understand where you have been and this was a great conversation to get a sense of the history of how Python has gotten to where it is today. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This episode of Python Podcast is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Barry Warsaw about his role in the Python community, past, present, and future. Interview Introductions How did you get introduced to Python? For anyone who isn’t familiar with you, how would you characterize your role in the Python language and community? What have been your main areas of focus in your role as a core developer? What are some of the other forms that your contributions to the language and community have taken? What are the contributions to Python that you are most proud of? Looking back at the past 25 years of Python, what do you find most interesting/surprising/exciting? How has the focus of the community changed or evolved since you first began using it? What are you currently focused on in your role in the steering council? What are the aspects of the language and community that you think need greater attention? What are the core strengths of the language and community that you believe will carry it through the next 25 years? In your current and previous roles you acted as a guiding force for Python. What are the main use cases for Python at LinkedIn? What kinds of projects are you involved with to support the other engineers in their use of Python? How much of an impact has the invisible hand of the PSU had on the overall trajectory of Python? Outside of Python, what are the programming languages or communities that you look to for inspiration? What are your personal goals for the future of Python? Keep In Touch Website warsaw on GitHub warsaw on GitLab Blog @pumpichank on Twitter Picks Tobias Hanna TV Series Barry Midnight Gospel The Expanse TV Series Audio Books Free 30 Day Audible Trial (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 FLUFL PEP 401 Python Steering Council The PEP Talk episode Usenet BBS == Bulletin Board System comp.lang.python NIST == National Institute of Standards and Technology CNRI == Corporation for National Research Initiatives BayPIGgies Tcl/Tk PEP 572 := The Walrus Operator "The Grand Renaming" IETF == Internet Engineering Task Force RFC WebAssembly Python Software Foundation Podcast Episode Python Black Swans keynote by Russell Keith-Magee Followup Podcast Episode Ewa Jodlowska Canonical Launchpad Mypy Podcast Episode Python Type Annotations Iris Event Paging System OnCall Pager Rotation System Shiv PyOxidizer Rust Flake8 isort Black Sphinx Read The Docs Podcast Episode Sybil Manuel Doctest Pytest Coverage.py Cargo package system Tai Chi Python Core Mentorship The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/13/202051 minutes, 40 seconds
Episode Artwork

Pure Python Configuration Management With PyInfra

Summary Building and managing servers is a challenging task. Configuration management tools provide a framework for handling the various tasks involved, but many of them require learning a specific syntax and toolchain. PyInfra is a configuration management framework that embraces the familiarity of Pure Python, allowing you to build your own integrations easily and package it all up using the same tools that you rely on for your applications. In this episode Nick Barrett explains why he built it, how it is implemented, and the ways that you can start using it today. He also shares his vision for the future of the project and you can get involved. If you are tired of writing mountains of YAML to set up your servers then give PyInfra a try today. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! This portion of Podcast.__init__ is brought to you by Datadog. Do you have an app in production that is slower than you like? Is its performance all over the place (sometimes fast, sometimes slow)? Do you know why? With Datadog, you will. You can troubleshoot your app’s performance with Datadog’s end-to-end tracing and in one click correlate those Python traces with related logs and metrics. Use their detailed flame graphs to identify bottlenecks and latency in that app of yours. Start tracking the performance of your apps with a free trial at datadog.com/pythonpodcast. If you sign up for a trial and install the agent, Datadog will send you a free t-shirt. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Nick Barrett about PyInfra, a pure Python framework for agentless configuration management Interview Introductions How did you get introduced to Python? Can you start by describing what PyInfra is and its origin story? There are a number of options for configuration management of various levels of complexity and language options. What are the features of PyInfra that might lead someone to choose it over other systems? What do you see as the major pain points in dealing with infrastructure today? For someone who is using PyInfra to manage their servers, what is the workflow for building and testing deployments? How do you handle enforcement of idempotency in the operations being performed? Can you describe how PyInfra is implemented? How has its design or focus evolved since you first began working on it? What are some of the initial assumptions that you had at the outset which have been challenged or updated as it has grown? The library of available operations seems to have a good baseline for deploying and managing services. What is involved in extending or adding operations to PyInfra? With the focus of the project being on its use of pure Python and the easy integration of external libraries, how do you handle execution of python functions on remote hosts that requires external dependencies? What are some of the other options for interfacing with or extending PyInfra? What are some of the edge cases or points of confusion that users of PyInfra should be aware of? What has been the community response from developers who first encounter and trial PyInfra? What have you found to be the most interesting, unexpected, or challenging aspects of building and maintaining PyInfra? When is PyInfra the wrong choice for managing infrastructure? What do you have planned for the future of the project? Keep In Touch Fizzadar on GitHub Website @Fizzadar on Twitter LinkedIn Picks Tobias My Spy Nick Das Keyboard Ultimate Korean Short Ribs Kimchi Fried Rice Links PyInfra Oxygem WordPress Lua Gary’s Mod Java Ansible SaltStack Chef Puppet EC2 Boto 3 Hashicorp Vault Vagrant Docker Testinfra SaltStack Testinfra Plugin Dockerfile Idempotence Nginx POSIX gevent Jinja2 Click Zero Tier BSD AST Module RedBaron The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/6/202043 minutes, 8 seconds
Episode Artwork

Build Your Own Domain Specific Language in Python With textX

Summary Programming languages are a powerful tool and can be used to create all manner of applications, however sometimes their syntax is more cumbersome than necessary. For some industries or subject areas there is already an agreed upon set of concepts that can be used to express your logic. For those cases you can create a Domain Specific Language, or DSL to make it easier to write programs that can express the necessary logic with a custom syntax. In this episode Igor Dejanović shares his work on textX and how you can use it to build your own DSLs with Python. He explains his motivations for creating it, how it compares to other tools in the Python ecosystem for building parsers, and how you can use it to build your own custom languages. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For more opportunities to stay up to date, gain new skills, and learn from your peers there are a growing number of virtual events that you can attend from the comfort and safety of your home. Go to pythonpodcast.com/conferences to check out the upcoming events being offered by our partners and get registered today! Your host as usual is Tobias Macey and today I’m interviewing Igor Dejanović about textX, a meta-language for building domain specific languges in Python Interview Introductions How did you get introduced to Python? Can you start by describing what a domain specific language is and some examples of when you might need one? What is textX and what was your motivation for creating it? There are a number of other libraries in the Python ecosystem for building parsers, and for creating DSLs. What are the features of textX that might lead someone to choose it over the other options? What are some of the challenges that face language designers when constructing the syntax of their DSL? Beyond being able to parse and process an arbitrary syntax, there are other concerns for consumers of the definition in terms of tooling. How does textX provide support to those end users? How is textX implemented? How has the design or goals of textX changed since you first began working on it? What is the workflow for someone using textX to build their own DSL? Once they have defined the grammar, how do they distribute the generated interpreter for others to use? What are some of the common challenges that users of textX face when trying to define their DSL? What are some of the cases where a PEG parser is unable to unambiguously process a defined grammar? What are some of the most interesting/innovative/unexpected ways that you have seen textX used? What have you found to be the most interesting, unexpected, or challenging lessons that you have learned while building and maintaining textX and its associated projects? While preparing for this interview I noticed that you have another parser library in the form of Parglare. How has your experience working with textX informed your designs of that project? What lessons have you taken back from Parglare into textX? When is textX the wrong choice, and someone might be better served by another DSL library, different style of parser, or just hand-crafting a simple parser with a regex? What do you have planned for the future of textX? Keep In Touch Website igordejanovic on GitHub @dejanovicigor on Twitter Picks Tobias wemake-python-styleguide Igor Interactive Fiction genre Awesome Interactive Fiction The Interactive Fiction Database TADS Inform 7 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 textX U of Novi Sad Serbia DSL course Secondary Notation Django Xtext Eclipse PLY SLY PyParsing Lark PEG Grammar Language Workbench Language Server Protocol Visual Studio Code textX-LS Arpeggio Parser Context-Free Grammar pyTabs Guitar Tablatures Parglare GLR parsing TEP 1 Evennia Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/30/202054 minutes, 18 seconds
Episode Artwork

Adding Observability To Your Python Applications With OpenTelemetry

Summary Once you release an application into production it can be difficult to understand all of the ways that it is interacting with the systems that it integrates with. The OpenTracing project and its accompanying ecosystem of technologies aims to make observability of your systems more accessible. In this episode Austin Parker and Alex Boten explain how the correlation of tracing and metrics collection improves visibility of how your software is behaving, how you can use the Python SDK to automatically instrument your applications, and their vision for the future of observability as the OpenTelemetry standard gains broader adoption. 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 $60 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 Austin Parker and Alex Boten about the OpenTelemetry project and its efforts to standardize the collection and analysis of observability data for your applications Interview Introductions How did you get introduced to Python? Can you start by describing what OpenTelemetry is and some of the story behind it? How do you define observability and in what ways is it separate from the "traditional" approach to monitoring? What are the goals of the OpenTelemetry project? For someone who wants to begin using OpenTelemetry clients in their Python application, what is the process of integrating it into their application? How does the definition and adoption of a cross-language standard for telemetry data benefit the broader software community? How do you avoid the trap of limiting the whole ecosystem to the lowest common denominator? What types of information are you focused on collecting and analyzing to gain insights into the behavior of applications and systems? What are some of the challenges that are commonly faced in interpreting the collected data? With so many implementations of the specification, how are you addressing issues of feature parity? For the Python SDK, how is it implemented? What are some of the initial designs or assumptions that have had to be revised or reconsidered as it gains adoption? What is your approach to integration with the broader ecosystem of tools and frameworks in the Python community? What are some of the interesting or unexpected challenges that you have faced or lessons that you have learned while working on instrumentation of Python projects? Once an application is instrumented, what are the options for delivering and storing the collected data? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on and with the OpenTelemetry ecosystem? What are some of the most interesting, innovative, or unexpected ways that you have seen components in the OpenTelemetry ecosystem used? When is OpenTelemetry the wrong choice? What is in store for the future of the OpenTelemetry project? Keep In Touch Austin @austinlparker on Twitter austinlparker on GitHub Alex LinkedIn @codeboten on Twitter codeboten on GitHub Picks Tobias Pulumi Podcast Episode Austin Helm 3 Alex Algorithms To Live By: The Computer Science Of Everyday Decisions by Brian Christian and Tom Griffiths 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 OpenTelemetry Lightstep OpenTracing OpenCensus Distributed Tracing Jaeger Zipkin Observability Kubernetes Spring Flask gRPC Structlog Filebeat W3C Trace Context OpenTelemetry Python SDK OpenTelemetry Django OpenTelemetry Flask OpenTelemetry Collector OTLP == Open Telemetry Protocol The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/23/202053 minutes, 44 seconds
Episode Artwork

Build A Personal Knowledge Store With Topic Modeling In Contextualize

Summary Our thought patterns are rarely linear or hierarchical, instead following threads of related topics in unpredictable directions. Topic modeling is an approach to knowledge management which allows for forming a graph of associations to make capturing and organizing your thoughts more natural. In this episode Brett Kromkamp shares his work on the Contextualize project and how you can use it for building your own topic models. He explains why he wrote a new topic modeling engine, how it is architected, and how it compares to other systems for organizing information. Once you are done listening you can take Contextualize for a test run for free with his hosted instance. 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 $60 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 Brett Kromkamp about Contextualise, a topic modeling application that helps you build a mind map for information-heavy projects Interview Introductions How did you get introduced to Python? Can you start by describing what Contextualize is and some of the types of projects that it can be used for? What was your motivation for creating it? How do you use topic maps in your own work and creative endeavors? The space of personal note-taking and knowledge management is vast and varied. What does Contextualize do well that you have been unable to find or implement in other tools? For someone using Contextualize, what does that workflow look like? How are you approaching integration with different creative contexts (e.g. text editors, graphics editors, word processing, etc.)? Can you describe how Contextualize is implemented? How has the design evolved since you first began working on it? In the documentation for Contextualize it mentions that this is the latest in a string of topic mapping platforms that you have built. What are some of the lessons that you have learned from previous efforts that have influenced the design of this one? One of the challenges with many knowledge management tools is that they are proscriptive in how to work with them. In what ways has your own preference for how to interact with information influenced the direction of Contextualize? Being an open source application, how has its exposure to the public directed your software and user design? How do you approach the challenge of reducing friction in adding content and relations while allowing for flexibility and context management? What are some of the projects that you are using Contextualize for? What are your thoughts on the utility of something like Contextualize for capturing and organizing the collective knowledge of a team of collaborators, whether in a work or casual context? What have you found to be the most interesting, complex, or complicated aspects of building a topic mapping platform? When is Contextualize the wrong choice? What do you have planned for the future of the project? Keep In Touch Website @brettkromkamp on Twitter brettkromkamp on GitHub Picks Tobias Pydantic Podcast Episode MyPy Podcast Episode Brett Black Lives Matter 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 Contextualise GitHub Repository Norway IBM Rexx Java Semantic Web Topic Map ISO standard for topic maps RDF Spain Knowledge Management Graph Database Worldbuilding Roam Research TopicDB Twitter Bootstrap Hypergraph Digital Gardening Notion TiddlyWiki The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/15/202058 minutes, 6 seconds
Episode Artwork

Open Source Product Analytics With PostHog

Summary You spend a lot of time and energy on building a great application, but do you know how it’s actually being used? Using a product analytics tool lets you gain visibility into what your users find helpful so that you can prioritize feature development and optimize customer experience. In this episode PostHog CTO Tim Glaser shares his experience building an open source product analytics platform to make it easier and more accessible to understand your product. He shares the story of how and why PostHog was created, how to incorporate it into your projects, the benefits of providing it as open source, and how it is implemented. If you are tired of fighting with your user analytics tools, or unwilling to entrust your data to a third party, then have a listen and then test out PostHog for yourself. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show because you love Python and want to keep your skills up to date, and machine learning is finding its way into every aspect of software engineering. Springboard has partnered with us to help you take the next step in your career by offering a scholarship to their Machine Learning Engineering career track program. In this online, project-based course every student is paired with a Machine Learning expert who provides unlimited 1:1 mentorship support throughout the program via video conferences. You’ll build up your portfolio of machine learning projects and gain hands-on experience in writing machine learning algorithms, deploying models into production, and managing the lifecycle of a deep learning prototype. Springboard offers a job guarantee, meaning that you don’t have to pay for the program until you get a job in the space. Podcast.__init__ is exclusively offering listeners 20 scholarships of $500 to eligible applicants. It only takes 10 minutes and there’s no obligation. Go to pythonpodcast.com/springboard and apply today! Make sure to use the code AISPRINGBOARD when you enroll. Your host as usual is Tobias Macey and today I’m interviewing Tim Glaser about PostHog, an open source platform for product analytics Interview Introductions How did you get introduced to Python? Can you start by describing what PostHog is and what motivated you to build it? What are the goals of PostHog and who are the target audience? In the description of PostHog it mentions being a product focused analytics platform, as opposed to session based. What are the meaningful differences between the two? Customer analytics is a rather crowded market, with a large number of both commercial and open source offerings (e.g. Google Analytics, Heap, Matomo, Snowplow, etc.). How does PostHog fit in that landscape and what are the differentiating factors that would lead someone to select it over the alternativs? For anyone interested in using PostHog, do you offer a migration path from other platforms? necessary features for a customer analytics tool privacy and security issues around analytics How is PostHog implemented and how has its design evolved since you first began building it? reason for choosing Python benefits of Django thoughts on introducing Channels option to include it as a pluggable Django app integration points data lake integration challenges of providing understandable statistics and exposing options for detailed analysis Having data about how users are interacting with your site or application is interesting, but how does it help in determining the useful actions to drive success? business model and project governance What are the most complex, complicated, or misunderstood aspects of building a product analytics platform? What have you found to be the most interesting, unexpected, or challenging lessons that you have learned in the process of building PostHog? When is PostHog the wrong choice? What do you have planned for the future of PostHog? Keep In Touch timgl on GitHub LinkedIn @timgl on Twitter Picks Tobias Hitchhiker’s Guide To The Galaxy Tim Triumph Of The City by Edward Glaeser 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 PostHog MixPanel Amplitude Heap Data Engineering Podcast Episode Snowplow Data Engineering Podcast Episode Looker Data Engineering Podcast Episode SnowflakeDB Data Engineering Podcast Episode Tableau DOM == Document Object Model for web pages Django Django Rest Framework React.js Kea state management for React.js Redux TypeScript Django Stubs Django Channels Sentry Podcast Episode Pluggable Django App PostgreSQL ELT Data Lake Optimizely Feature Flags Podcast Episode PostHog Roadmap PostHog Employee Handbook Matomo (formerly Piwik) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/8/202049 minutes, 8 seconds
Episode Artwork

Extending The Life Of Python 2 Projects With Tauthon

Summary The divide between Python 2 and 3 lasted a long time, and in recent years all of the new features were added to version 3. To help bridge the gap and extend the viability of version 2 Naftali Harris created Tauthon, a fork of Python 2 that backports features from Python 3. In this episode he explains his motivation for creating it, the process of maintaining it and backporting features, and the ways that it is being used by developers who are unable to make the leap. This was an interesting look at how things might have been if the elusive Python 2.8 had been created as a more gentle transition. 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 $60 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show! You listen to this show because you love Python and want to keep your skills up to date, and machine learning is finding its way into every aspect of software engineering. Springboard has partnered with us to help you take the next step in your career by offering a scholarship to their Machine Learning Engineering career track program. In this online, project-based course every student is paired with a Machine Learning expert who provides unlimited 1:1 mentorship support throughout the program via video conferences. You’ll build up your portfolio of machine learning projects and gain hands-on experience in writing machine learning algorithms, deploying models into production, and managing the lifecycle of a deep learning prototype. Springboard offers a job guarantee, meaning that you don’t have to pay for the program until you get a job in the space. Podcast.__init__ is exclusively offering listeners 20 scholarships of $500 to eligible applicants. It only takes 10 minutes and there’s no obligation. Go to pythonpodcast.com/springboard and apply today! Make sure to use the code AISPRINGBOARD when you enroll. Your host as usual is Tobias Macey and today I’m interviewing Naftali Harris about his work on Tauthon, a fork of Python 2 that backports features from Python 3 Interview Introductions How did you get introduced to Python? Can you start by describing what Tauthon is and your motivations for creating it? What’s the story behind the name? What types of applications and environments are you using Tauthon in? How much adoption of Tauthon have you seen? What are some of the different ways that your users are employing it? Is this the missing "2.8" release? In other words, is this intended to be a bridge for simplifying the migration of existing Python 2 code to Python 3, or as an extended support window for Python 2? What features have you backported from Python 3? What is your process for identifying and prioritizing features to bring into Tauthon? What is your workflow for implementing the backported functionality in Tauthon? What are some of the cases where you have had to compromise on the functionality or syntax of a feature that you have backported in order to fit into Python 2? What is your governing philosophy for how to manage syntax or behavior differences between Python 2 and 3? What have been the most challenging features to backport and maintain? What are some of the ways that Tauthon might break existing Python 2 code? What is the story for compatibility with libraries that are Python 3 only? What have you seen in terms of adoption of Tauthon? Do you have any sense of the commonalities among those users? What are some of the ecosystem challenges that faces users of Tauthon? (e.g. Pip support, package compatibility, etc.) What are some of the most interesting, unexpected, or challenging lessons that you have learned in the process of creating and maintaining Tauthon? What are your long-term plans for Tauthon, and how have they changed since you first started working on it? Keep In Touch Website @naftaliharris on Twitter naftaliharris on GitHub Picks Tobias Dagster PyCon 2020 Online Naftali Sentilink Timsort Tim Peters Links Tauthon Function Annotations Tau Nick Coghlan MyPy Podcast Episode Matrix Multiplier Operator Python 3.9 PEG Parser lazysorted nonlocal keyword Valgrind The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/2/202033 minutes, 7 seconds
Episode Artwork

Dependency Management Improvements In Pip's Resolver

Summary Dependency management in Python has taken a long and winding path, which has led to the current dominance of Pip. One of the remaining shortcomings is the lack of a robust mechanism for resolving the package and version constraints that are necessary to produce a working system. Thankfully, the Python Software Foundation has funded an effort to upgrade the dependency resolution algorithm and user experience of Pip. In this episode the engineers working on these improvements, Pradyun Gedam, Tzu-Ping Chung, and Paul Moore, discuss the history of Pip, the challenges of dependency management in Python, and the benefits that surrounding projects will gain from a more robust resolution algorithm. This is an exciting development for the Python ecosystem, so listen now and then provide feedback on how the new resolver is working for you. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show because you love Python and want to keep your skills up to date, and machine learning is finding its way into every aspect of software engineering. Springboard has partnered with us to help you take the next step in your career by offering a scholarship to their Machine Learning Engineering career track program. In this online, project-based course every student is paired with a Machine Learning expert who provides unlimited 1:1 mentorship support throughout the program via video conferences. You’ll build up your portfolio of machine learning projects and gain hands-on experience in writing machine learning algorithms, deploying models into production, and managing the lifecycle of a deep learning prototype. Springboard offers a job guarantee, meaning that you don’t have to pay for the program until you get a job in the space. Podcast.__init__ is exclusively offering listeners 20 scholarships of $500 to eligible applicants. It only takes 10 minutes and there’s no obligation. Go to pythonpodcast.com/springboard and apply today! Make sure to use the code AISPRINGBOARD when you enroll. Your host as usual is Tobias Macey and today I’m interviewing Tzu-ping Chung, Pradyun Gedam, and Paul Moore about their work to improve the dependency resolution capabilities of Pip and its user experience Interview Introductions How did you get introduced to Python? Can you start by describing the focus of the work that you are doing? What is the scope of the work, and what is the established criteria for when it is considered complete? What is your history with working on the Pip source code and what interests you most about this project? What are the main sources or manifestations of technical debt that exist in Pip as of today? How does it currently handle dependency resolution? What are some of the workarounds that developers have had to resort to in the absence of a robust dependency resolver in Pip? How is the new dependency resolver implemented? How has your initial design evolved or shifted as you have gotten further along in its implementation? What are the pieces of information that the resolver will rely on for determining which packages and versions to install? (e.g. will it install setuptools > 45.x in a Python 2 virtualenv?) What are the new capabilities in Pip that will be enabled by this upgrade to the dependency resolver? What projects or features in the encompassing ecosystem will be unblocked with the introduction of this upgrade? What are some of the changes that users will need to make to adopt the updated Pip? How do you anticipate the changes in Pip impacting the viability or adoption of Python and its ecosystem within different communities or industries? What are some of the additional changes or improvements that you would like to see in Pip or other core elements of the Python landscape? What are some of the most interesting, unexpected, or challenging lessons that you have learned while working on these updates to Pip? Keep In Touch Pradyun Website pradyunsg on GitHub @pradyunsg on Twitter Paul pfmoore on GitHub Tzu-Ping uranusjr on GitHub Website @uranusjr on Twitter Picks Tzu-ping Python Launcher Joe Abercrombie author The Shattered Sea Trilogy Anime PipX Standalone Paul pipx Black nox tox scoop Neil Gaiman Good Omens Book TV Series Pradyun because my picks can be anything — things that have kept me sane in this lockdown world Music: Chris Daughtry Video Game: Parkitect Tobias Language Server Protocol Emacs lsp-mode 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 Pip Podcast interview with Donald Stufft Macdown Taiwan Pipenv PyPI Podcast Episode TOML Python Package Metadata Standards iBook G4 Acorn Computer distutils easy_install Python Eggs setuptools Python Wheels CPAN Conda Inside The Cheeseshop Google Summer of Code Zazo PEP517 pip-tools Poetry resolvelib SAT Solver Trove Classifiers PyPA pyproject.toml The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/25/20201 hour, 16 minutes, 31 seconds
Episode Artwork

Easy Data Validation For Your Python Projects With Pydantic

Summary One of the most common causes of bugs is incorrect data being passed throughout your program. Pydantic is a library that provides runtime checking and validation of the information that you rely on in your code. In this episode Samuel Colvin explains why he created it, the interesting and useful ways that it can be used, and how to integrate it into your own projects. If you are tired of unhelpful errors due to bad data then listen now and try it out today. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show because you love Python and want to keep your skills up to date. Machine learning is finding its way into every aspect of software engineering. Springboard has partnered with us to help you take the next step in your career by offering a scholarship to their Machine Learning Engineering career track program. In this online, project-based course every student is paired with a Machine Learning expert who provides unlimited 1:1 mentorship support throughout the program via video conferences. You’ll build up your portfolio of machine learning projects and gain hands-on experience in writing machine learning algorithms, deploying models into production, and managing the lifecycle of a deep learning prototype. Springboard offers a job guarantee, meaning that you don’t have to pay for the program until you get a job in the space. Podcast.__init__ is exclusively offering listeners 20 scholarships of $500 to eligible applicants. It only takes 10 minutes and there’s no obligation. Go to pythonpodcast.com/springboard and apply today! Make sure to use the code AISPRINGBOARD when you enroll. Your host as usual is Tobias Macey and today I’m interviewing Samuel Colvin about Pydantic, a library for enforcing type hints at runtime Interview Introductions How did you get introduced to Python? Can you start by describing what Pydantic is and what motivated you to create it? What are the main use cases that benefit from Pydantic? There are a number of libraries in the Python ecosystem to handle various conventions or "best practices" for settings management. How does pydantic fit in that category and why might someone choose to use it over the other options? There are also a number of libraries for defining data schemas or validation such as Marshmallow and Cerberus. How does Pydantic compare to the available options for those cases? What are some of the challenges, whether technical or conceptual, that you face in building a library to address both of these areas? The 3.7 release of Python added built in support for dataclasses as a means of building containers for data with type validation. What are the tradeoffs of pydantic vs the built in dataclass functionality? How much overhead does pydantic add for doing runtime validation of the modelled data? In the documentation there is a nuanced point that you make about parsing vs validation and your choices as to what to support in pydantic. Why is that a necessary distinction to make? What are the limitations in terms of usage that you are accepting by choosing to allow for implicit conversion or potentially silent loss of precision in the parsed data? What are the benefits of punting on the strict validation of data out of the box? What has been your design philosophy for constructing the user facing API? How is Pydantic implemented and how has the overall architecture evolved since you first began working on it? What have you found to be the most challenging aspects of building a library for managing the consistency of data structures in a dynamic language? What are some of the strengths and weaknesses of Python’s type system? What is the workflow for a developer who is using Pydantic in their code? What are some of the pitfalls or edge cases that they might run into? What is involved in integrating with other libraries/frameworks such as Django for web development or Dagster for building data pipelines? What are some of the more advanced capabilities or use cases of Pydantic that are less obvious? What are some of the features or capabilities of Pydantic that are often overlooked which you think should be used more frequently? What are some of the most interesting, innovative, or unexpected ways that you have seen Pydantic used? What are some of the most interesting, challenging, or unexpected lessons that you have learned through your work on or with Pydantic? When is Pydantic the wrong choice? What do you have planned for the future of the project? Keep In Touch samuelcolvin on GitHub Website LinkedIn @samuel_colvin on Twitter Picks Tobias Devil Sticks Samuel Flash Boys by Michael Lewis Algorithms To Live By by Brian Christian and Tom Griffiths NGrok.com 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 Pydantic Matlab C# FastAPI Podcast Episode Marshmallow Podcast Episode Cerberus 12 Factor App Django Python Type Hints Cython Podcast Episode MyPy Podcast Episode Duck Typing Haskell Higher Order Types PyCharm Pydantic Plugin Django Rest Framework Avro Parquet Dagster Data Engineering Podcast Episode Starlette Flask Ludwig Deep Pavlov Fast MRI Reagent Pynt Open Source Has Failed article The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/18/202047 minutes, 14 seconds
Episode Artwork

Managing Distributed Teams In The Age Of Remote Work

Summary More of us are working remotely than ever before, many with no prior experience with a remote work environment. In this episode Quinn Slack discusses his thoughts and experience of running Sourcegraph as a fully distributed company. He covers the lessons that he has learned in moving from partially to fully remote, the practices that have worked well in managing a distributed workforce, and the challenges that he has faced in the process. If you are struggling with your remote work situation then this conversation has some useful tips and references for further reading to help you be successful in the current 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You monitor your website to make sure that you’re the first to know when something goes wrong, but what about your data? Tidy Data is the DataOps monitoring platform that you’ve been missing. With real time alerts for problems in your databases, ETL pipelines, or data warehouse, and integrations with Slack, Pagerduty, and custom webhooks you can fix the errors before they become a problem. Go to pythonpodcast.com/tidydata today and get started for free with no credit card required. Your host as usual is Tobias Macey and today I’m interviewing Quinn Slack about his experience managing a fully remote company and useful tips for remote work Interview Introductions How did you get introduced to Python? Can you start by giving an overview of the team structure at Sourcegraph? You recently moved to being fully remote. What was the motivating factor and how has it changed your personal workflow? What is your prior history with working remote? team practices for visibility of progress impact of remote teams on how code is written and organized reducing review burden by writing clearer code structuring meetings when remote points of friction for remote developer teams benefits of being fully remote incentivizing documentation compensation structure Keep In Touch LinkedIn @sqs on Twitter sqs on GitHub Picks Tobias Joplin App Quinn Skunkworks by Ben Rich 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 Sourcegraph Quinn’s Python Search Engine Sourcegraph Employee Handbook Gitlab Gitlab Handbook Zapier Zapier Guide To Remote Work Automattic Automattic Blog On Distributed Work Comments Showing Intent The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/11/202048 minutes, 45 seconds
Episode Artwork

Maintainable Infrastructure As Code In Pure Python With Pulumi

Summary After you write your application, you need a way to make it available to your users. These days, that usually means deploying it to a cloud provider, whether that’s a virtual server, a serverless platform, or a Kubernetes cluster. To manage the increasingly dynamic and flexible options for running software in production, we have turned to building infrastructure as code. Pulumi is an open source framework that lets you use your favorite language to build scalable and maintainable systems out of cloud infrastructure. In this episode Luke Hoban, CTO of Pulumi, explains how it differs from other frameworks for interacting with infrastructure platforms, the benefits of using a full programming language for treating infrastructure as code, and how you can get started with it today. If you are getting frustrated with switching contexts when working between the application you are building and the systems that it runs on, then listen now and then give Pulumi a try. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You monitor your website to make sure that you’re the first to know when something goes wrong, but what about your data? Tidy Data is the DataOps monitoring platform that you’ve been missing. With real time alerts for problems in your databases, ETL pipelines, or data warehouse, and integrations with Slack, Pagerduty, and custom webhooks you can fix the errors before they become a problem. Go to pythonpodcast.com/tidydata today and get started for free with no credit card required. Your host as usual is Tobias Macey and today I’m interviewing Luke Hoban about building and maintaining infrastructure as code with Pulumi Interview Introductions How did you get introduced to Python? Can you start by describing the concept of "infrastructure as code"? What is Pulumi and what is the story behind it? Where does the name come from? How does Pulumi compare to other infrastructure as code frameworks, such as Terraform? What are some of the common challenges in managing infrastructure as code? How does use of a full programming language help in addressing those challenges? What are some of the dangers of using a full language to manage infrastructure? How does Pulumi work to avoid those dangers? Why is maintaining a record of the provisioned state of your infrastructure necessary, as opposed to relying on the state contained by the infrastructure provider? What are some of the design principles and constraints that developers should be considering as they architect their infrastructure with Pulumi? Can you describe how Pulumi is implemented? How does Pulumi manage support for multiple languages while maintaining feature parity across them? How do you manage testing and validation of the different providers? The strength of any tool is largely measured in the ecosystem that exists around it, which is one of the reasons that Terraform has been so successful. How are you approaching the problem of bootstrapping the community and prioritizing platform support? Can you talk through the workflow of working with Pulumi to build and maintain a proper infrastructure? What are some of the ways to approach testing of infrastructure code? What does the CI/CD lifecycle for infrastructure look like? What are the limitations of infrastructure as code? How do configuration management tools fit with frameworks such as Pulumi? The core framework of Pulumi is open source, and your business model is focused around a managed platform for tracking state. How are you approaching governance of the project to ensure its continued viability and growth? What are some of the most interesting, innovative, or unexpected design patterns that you have seen your users include in their infrastructure projects? When is Pulumi the wrong choice? What do you have planned for the future of Pulumi? Keep In Touch LinkedIn lukehoban on GitHub @lukehoban on Twitter Picks Tobias Bookshelf App Luke GoBinaries.com 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 Pulumi Terraform IronPython HCL == Hashicorp Config Language Kubernetes TypeScript DevOps CloudFormation ARM == Azure Resource Manager AWSx GCP == Google Cloud Platform Pulumi SaaS SaltStack Podcast Episode Ansible Elastic Beanstalk The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/4/20201 hour, 54 seconds
Episode Artwork

Teaching Python Machine Learning

Summary Python has become a major player in the machine learning industry, with a variety of widely used frameworks. In addition to the technical resources that make it easy to build powerful models, there is also a sizable library of educational resources to help you get up to speed. Sebastian Raschka’s contribution of the Python Machine Learning book has come to be widely regarded as one of the best references for newcomers to the field. In this episode he shares his experiences as an author, his views on why Python is the right language for building machine learning applications, and the insights that he has gained from teaching and contributing to the field. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. 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 Sebastian Raschka about his experiences writing the popular Python Machine Learning book Interview Introductions How did you get introduced to Python? How did you get started in machine learning? What were the concepts that you found most difficult in your career with statistics and machine learning? One of your notable contributions to the field is your book "Python Machine Learning". What inspired you to write the initial version? How did you approach the challenge of striking the right balance of depth, breadth, and accessibility for the content? What was your process for determining which aspects of machine learning to include? You have made 3 editions of the book from 2015 through December of 2019. In what ways has the book changed? What are the biggest changes to the ecosystem and approaches to ML in that timeframe? What are the fundamental challenges of developing machine learning projects that continue to present themselves? What new difficulties have arisen with the introduction of new technologies and the rise of deep learning? What are some of the ways that the Python language lends itself to analytical work? What are its shortcomings and how has the community worked around them? What do you see as the biggest risks to the popularity of Python in the data and analytics space? What are some of the common pitfalls that your readers and students face while learning about different aspects of machine learning? What are some of the industries that can benefit most from applications of machine learning? What are you most excited about in the applications or capabilities of machine learning? What are you most worried about? Keep In Touch Website @rasbt on Twitter rasbt on GitHub LinkedIn Picks Tobias Trolls World Tour Sebastian FFMPeg Normalize 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 Python Machine Learning (Packt) Buy On Amazon (affiliate link) UW Madison Pascal Delphi R Perl Bioinformatics Seq Podcast Episode BioPython Podcast Episode CodeCademy Udacity CS101 Andrew Ng Coursera Support-Vector Machine Bayesian Statistics Matlab scikit-learn NumPy Pandas Podcast Episode Sebastian’s Blog Perceptron Heatmaps In R The Hundred Page Machine Learning Book by Andriy Burkov ImageNet Random Forest Logistic Regression XGBoost Theano Generative Adversarial Networks Is This Person Real / This Person Does Not Exist Reinforcement Learning AlphaGo AlphaStar Ray RLlib Open AI Google DeepMind Google Colab CUDA Julia Sebastian Raschka, Joshua Patterson, and Corey Nolet (2020). Machine Learning in Python: Main developments and technology trends in data science, machine learning, and artificial intelligence. Information 2020, 11, 193 Swift Language Swift for TensorFlow Matplotlib Differential Privacy PrivacyNet YouTube recordings of Stat453: Introduction to Deep Learning and Generative Models (Spring 2020) ffmpeg-normalize The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/28/202049 minutes, 24 seconds
Episode Artwork

Build The Next Generation Of Python Web Applications With FastAPI

Summary Python has an embarrasment of riches when it comes to web frameworks, each with their own particular strengths. FastAPI is a new entrant that has been quickly gaining popularity as a performant and easy to use toolchain for building RESTful web services. In this episode Sebastián Ramirez shares the story of the frustrations that led him to create a new framework, how he put in the extra effort to make the developer experience as smooth and painless as possible, and how he embraces extensability with lightweight dependency injection and a straightforward plugin interface. If you are starting a new web application today then FastAPI should be at the top of your list. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. 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 Sebastián Ramirez about FastAPI, a framework for building production ready APIs in Python 3 Interview Introductions How did you get introduced to Python? Can you start by describing what FastAPI is? What are the main frustrations that you ran into with other frameworks that motivated you to create an entirely new one? What are some of the main use cases that FastAPI is designed for? Many web frameworks focus on managing the end-to-end functionality of a website, including the UI. Why did you focus on just API capabilities? What are the benefits of building an API only framework? If you wanted to integrate a presentation layer, what would be involved in that effort? What API formats does FastAPI support? What would be involved in adding support for additional specifications such as GraphQL or JSON-LD? There are a huge number of web frameworks available just in the Python ecosystem. How does FastAPI fit into that landscape and why might someone choose it over the other options? Can you share your design philosophy for the project? What are your main sources of inspiration for the framework? You have also built the Typer CLI library which you refer to as the little sibling of FastAPI. How have your experiences building these two projects influenced their counterpart’s evolution? What are the benefits of incorporating type annotations into a web framework and in what ways do they manifest in its functionality? What is the workflow for a developer building a complex application in FastAPI? Can you describe how FastAPI itself is architected and how its design has evolved since you first began working on it? What are the extension points that are available for someone to build plugins for FastAPI? What are some of the challenges that you have faced in building an async framework that is leveraging the new ASGI specification? What are some sharp edges that users should keep an eye out for? What are some unique or underutilized features of FastAPI that users might not be aware of? What are some of the most interesting, unexpected, or innovative ways that you have seen FastAPI used? When is FastAPI the wrong choice? What are some of the most interesting, unexpected, or challenging lessons that you have learned in the process of building and maintaining FastAPI? What do you have planned for the future of the project? Keep In Touch @tiangolo on Twitter. @tiangolo on GitHub. Picks Tobias Once Upon A Time TV Show Sebastián Cloud Atlas Movie Isaac Asimov’s robot short stories Python devtools debug function async compatible requests with HTTPX RescueTime for automatic time tracking Joplin for Notes 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 FastAPI Typer Typer CLI FastAPI Alternatives, Inspiration and Comparisons Explosion’s spaCy Explosion’s Prodigy Starlette Pydantic Uvicorn Hypercorn fastapi-utils Class Based Views GrahQL Ariadne Coronavirus Tracker API Terminals from browser: termpair XPublish Uber’s Ludwig Netflix Dispatch Colombia Berlin Germany Explosion AI Python Type Annotations Django Rest Framework Flask Swagger/OpenAPI Sanic NodeJS JSON Schema OAuth2 Swagger UI ReDoc React VueJS Angular REST == REpresentational State Transfer JSON-LD Go Language Hug API framework Click CLI Framework Flask Blueprints Tom Christie Podcast Interview Dependency Injection ASGI Podcast Episode WSGI Thread Local Variables Context Vars OAUTH2 Scopes PipX XArray JAM Stack NextJS Hugo GatsbyJS FastAPI Project Templates The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/20/202058 minutes, 34 seconds
Episode Artwork

Distributed Computing In Python Made Easy With Ray

Summary Distributed computing is a powerful tool for increasing the speed and performance of your applications, but it is also a complex and difficult undertaking. While performing research for his PhD, Robert Nishihara ran up against this reality. Rather than cobbling together another single purpose system, he built what ultimately became Ray to make scaling Python projects to multiple cores and across machines easy. In this episode he explains how Ray allows you to scale your code easily, how to use it in your own projects, and his ambitions to power the next wave of distributed systems at Anyscale. If you are running into scaling limitations in your Python projects for machine learning, scientific computing, or anything else, then give this a listen and then try it out! 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. 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 Robert Nishihara about Ray, a framework for building and running distributed applications and machine learning Interview Introductions How did you get introduced to Python? Can you start by describing what Ray is and how the project got started? How did the environment of the RISE lab factor into the early design and development of Ray? What are some of the main use cases that you were initially targeting with Ray? Now that it has been publicly available for some time, what are some of the ways that it is being used which you didn’t originally anticipate? What are the limitations for the types of workloads that can be run with Ray, or any edge cases that developers should be aware of? For someone who is building on top of ray, what is involved in either converting an existing application to take advantage of Ray’s parallelism, or creating a greenfield project with it? Can you describe how Ray itself is implemented and how it has evolved since you first began working on it? How does the clustering and task distriubtion mechanism in Ray work? How does the increased parallelism that Ray offers help with machine learning workloads? Are there any types of ML/AI that are easier to do in this context? What are some of the additional layers or libraries that have been built on top of the functionality of Ray? What are some of the most interesting, challenging, or complex aspects of building and maintaining Ray? You and your co-founders recently announced the formation of Anyscale to support the future development of Ray. What is your business model and how are you approaching the governance of Ray and its ecosystem? What are some of the most interesting or unexpected projects that you have seen built with Ray? What are some cases where Ray is the wrong choice? What do you have planned for the future of Ray and Anyscale? Keep In Touch Website @robertnishihara on Twitter robertnishihara on GitHub Picks Tobias D&D Castle Ravenloft board game One Deck Dungeon Robert The Everything Store 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 Ray Anyscale UC Berkeley RISELab MATLAB Deep Learning Theano Tensorflow PyTorch Podcast Episode Philip Moritz Reinforcement Learning Hyperparameter Tuning IPython Parallel AMPLab Apache Spark Data Engineering Podcast Episode Actor Model Horovod(?) Flink Data Engineering Podcast Episode Spark Streaming Dask Data Engineering Podcast Episode gRPC Tune Rust C++ C Apache Arrow Wes McKinney Podcast Interview DataBricks MongoDB Elastic Data Engineering Podcast Episode Confluent Embarassingly Parallel Ant Financial Flame Graph The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/14/202040 minutes, 59 seconds
Episode Artwork

Building The Seq Language For Bioinformatics

Summary Bioinformatics is a complex and computationally demanding domain. The intuitive syntax of Python and extensive set of libraries make it a great language for bioinformatics projects, but it is hampered by the need for computational efficiency. Ariya Shajii created the Seq language to bridge the divide between the performance of languages like C and C++ and the ecosystem of Python with built-in support for commonly used genomics algorithms. In this episode he describes his motivation for creating a new language, how it is implemented, and how it is being used in the life sciences. If you are interested in experimenting with sequencing data then give this a listen and then give Seq a try! 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on great conferences. And now, the events are coming to you, with no travel necessary! We have partnered with organizations such as ODSC, and Data Council. Upcoming events include the Observe 20/20 virtual conference on April 6th and ODSC East which has also gone virtual starting April 16th. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Ariya Shajii about Seq, a programming language built for bioinformatics and inspired by Python Interview Introductions How did you get introduced to Python? Can you start by describing what Seq is and your motivation for creating it? What was lacking in other languages or libraries for your use case that is made easier by creating a custom language? If someone is already working in Python, possibly using BioPython, what might motivate them to consider migrating their work to Seq? Can you give an impression of the scope and nature of the tasks or projects that a biologist or geneticist might build with Seq? What was your process for identifying and prioritizing features and algorithms that would be beneficial to the target audience? For someone using Seq can you describe their workflow and how it might differ from performing the same task in Python? How is Seq implemented? What are some of the features that are included to simplify the work of bioinformatics? What was your process of designing the language and runtime? How has the scope or direction of the project evolved since it was first conceived? What impact do you anticipate Seq having on the domain of bioinformatics and genomics? What have you found to be the most interesting, unexpected, and/or challenging aspects of building a language for this problem domain? What is in store for the future of Seq? Keep In Touch arshajii on GitHub Website Picks Tobias Board Games Labyrinth Boardgame Board Game Geek Ariya Breakthrough documentary 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 Seq MIT CSAIL Bioinformatics LLVM Intermediate Representation MatLab Moore’s Law BioPython Smith Waterman Algorithm Hamming Distance Pattern Matching in Functional Programming SIMD == Single Instruction Multiple Data Computational Genomics Phylogenetics Sequence Read Archive public data set Google Cloud Life Sciences The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/7/202036 minutes, 25 seconds
Episode Artwork

An Open Source Toolchain For Natural Language Processing From Explosion AI

Summary The state of the art in natural language processing is a constantly moving target. With the rise of deep learning, previously cutting edge techniques have given way to robust language models. Through it all the team at Explosion AI have built a strong presence with the trifecta of SpaCy, Thinc, and Prodigy to support fast and flexible data labeling to feed deep learning models and performant and scalable text processing. In this episode founder and open source author Matthew Honnibal shares his experience growing a business around cutting edge open source libraries for the machine learning developent process. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on great conferences. And now, the events are coming to you, with no travel necessary! We have partnered with organizations such as ODSC, and Data Council. Upcoming events include the Observe 20/20 virtual conference on April 6th and ODSC East which has also gone virtual starting April 16th. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Matthew Honnibal about the Thinc and Prodigy tools and an update on SpaCy Interview Introductions How did you get introduced to Python? Can you start by giving an overview of your mission at Explosion? We spoke previously about your work on SpaCy. What has changed in the past 3 1/2 years? How have recent innovations in language models such as BERT and GPT-2 influenced the direction or implementation of the project? When I last looked SpaCy only supported English and German, but you have added several new languages. What are the most challenging aspects of building the additional models? What would be required for supporting symbolic or right-to-left languages? How has the ecosystem for language processing in Python shifted or evolved since you first introduced SpaCy? Another project that you have released is Prodigy to support labelling of datasets. Can you talk through the motivation for creating it and describe the workflow for someone using it? What was lacking in the other annotation tools that you have worked with that you are trying to solve for in Prodigy? What are some of the most challenging or problematic aspects of labelling data sets for use in machine learning projects? What is a typical scale of data that can be reasonably handled by an individual or small team working with Prodigy? At what point do you find that it makes sense to use a labeling service rather than generating the labels yourself? Your most recent project is Thinc for building and using deep learning models. What was the motivation for creating it and what problem does it solve in the ecosystem? How does its design and usage compare to other deep learning frameworks such as PyTorch and Tensorflow? How does it compare to projects such as Keras that abstract across those frameworks? How do the SpaCy, Prodigy, and Thinc libraries work together? What are some of the biggest challenges that you are facing in building open source tools to meet the needs of data scientists and machine learning engineers? What are some of the most interesting or impressive projects that you have seen built with the tools your team is creating? What do you have planned for the future of Explosion, SpaCy, Prodigy, and Thinc? Keep In Touch LinkedIn @honnibal on Twitter honnibal on GitHub Picks Tobias Onward movie Matthew Coronavirus Preparedness Ray 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 Explosion AI SpaCy Podcast Episode Thinc Prodigy Natural Language Processing Perl NLTK GPU == Graphics Processing Unit TPU == Tensor Processing Unit Transfer Learning Airflow Luigi Perceptron PyTorch Tensorflow Functional Programming MxNet Keras Cuda C Language Continuous Integration Blackstone Allen AI Institute SciSpaCy Holmes Sense2Vec FastAPI The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/30/202051 minutes, 19 seconds
Episode Artwork

A Flexible Open Source ERP Framework To Run Your Business

Summary Running a successful business requires some method of organizing the information about all of the processes and activity that take place. Tryton is an open source, modular ERP framework that is built for the flexibility needed to fit your organization, rather than requiring you to model your workflows to match the software. In this episode core developers Nicolas Évrard and Cédric Krier are joined by avid user Jonathan Levy to discuss the history of the project, how it is being used, and the myriad ways that you can adapt it to suit your needs. If you are struggling to keep a consistent view of your business and ensure that all of the necessary workflows are being observed then listen now and give Tryton a try. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Nicolas Évrard, Cédric Krier, and Jonathan Levy about Tryton Interview Introductions How did you get introduced to Python? Can you start by describing what Tryton is and how it got started? What kinds of businesses is Tryton most suited to? What kinds of businesses is Tryton not a good fit for? Within a business, who are the primary users of Tryton? Can you talk through a typical workflow for interacting with Tryton? What are some of the most complex or challenging aspects of modeling a business while maintaining a high degree of customizability? Can you describe how Tryton is architected and how its design has evolved since it was first started? If you were to start over today, what would you do differently? There are a number of plugins for Tryton. What kinds of functionality can be customized using the available interfaces? What is the process for building a custom module for Tryton? How do you manage sustainability of the Tryton project? Given the criticality of the Tryton platform, how do you approach ongoing stability and security of the project? What is involved in deploying and maintaining an installation of Tryton? What are some of the most interesting, innovative, or unexpected ways that you have seen Tryton used? What is in store for the future of Tryton? Keep In Touch Nicolas nicoe on GitHub @nicoe on Twitter Cédric @cedrickrier on Twitter cedk on GitHub Jonathan LinkedIn Picks Tobias Audio Books Audible free trial (Affiliate Link) Overdrive – ebooks and audiobooks from your local library Public Domain Audiobooks Nicolas Civilization VI FreeCiv The 3 Body Problem Cédric Valérian and Laureline Jonathan Roil.com Links Tryton B2CK Tryton Foundation Advocate Consulting Legal Group Scheme Lisp Belgium EuroPython Conference Plone Zope VBA (Visual Basic for Applications) Django Odoo ERP == Enterprise Resource Planning Small/Medium Enterprise (SME) GTK (Gnome ToolKit) 3-Tier Application Cookiecutter Tryton Module Cookiecutter Tryton Repository Docker GNU Health Nereid The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/23/20201 hour, 7 minutes, 33 seconds
Episode Artwork

Getting A Handle On Portable C Extensions With hpy

Summary One of the driving factors of Python’s success is the ability for developers to integrate with performant languages such as C and C++. The challenge is that the interface for those extensions is specific to the main implementation of the language. This contributes to difficulties in building alternative runtimes that can support important packages such as NumPy. To address this situation a team of developers are working to create the hpy project, a new interface for extension developers that is standardized and provides a uniform target for multiple runtimes. In this episode Antonio Cuni discusses the motivations for creating hpy, how it benefits the whole ecosystem, and ways to contribute to the effort. This is an exciting development that has the potential to unlock a new wave of innovation in the ways that you can run your Python 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! As a developer, maintaining a state of flow is key to your productivity. Don’t let something as simple as the wrong function ruin your day. Kite is the smartest completions engine available for Python, featuring a machine learning model trained by the brightest stars of GitHub. Featuring ranked suggestions sorted by relevance, offering up to full lines of code, and a programming copilot that offers up the documentation you need right when you need it. Get Kite for free today at getkite.com with integrations for top editors, including Atom, VS Code, PyCharm, Spyder, Vim, and Sublime. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Antonio Cuni about hpy, a project aiming to reimagine the C API for Python Interview Introductions How did you get introduced to Python? Can you start by describing what the hpy project is and how it got started? What are the goals for the project? Who else is involved? How much engagement have you had with CPython core contributors or the steering council? Who are the consumers of the current C API for the CPython implementation? What are some of the pain points or shortcomings for those consumers? What impact does that have for users of a given library that leverages C extensions? Can you talk through the structure of the hpy project? What are some of the design challenges that you are facing for determining the external API? What is involved in integrating the hpy interface into alternate runtimes such as PyPy or RustPython? What is the potential or observed performance impact for libraries that currently rely on the existing C API? How has the vision and scope of this project been updated as you have gotten further along in the implementation? What are the downstream impacts that you anticipate in projects such as PyPy and Cython? What have you found to be the most challenging or contentious aspects of implementing hpy so far? What are some of the most interesting/unexpected/useful lessons that you have learned while working on hpy? What do you have planned for the near to medium term for hpy? Keep In Touch antocuni on GitHub Website @antocuni on Twitter Picks Tobias Poetry Antonio Collapse: How Societies Choose To Fail Or Succeed by Jared Diamond Links hpy PyPy Alex Martelli Podcast Interview Python C Extensions EuroPython Victor Stinner Cython Podcast Episode Armin Rigo NumPy ultrajson GIL == Global Interpreter Lock RustPython Podcast Episode GraalPython hpy-rust The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/16/202035 minutes, 14 seconds
Episode Artwork

Open Source Machine Learning On Quantum Computers With Xanadu AI

Summary Quantum computers promise the ability to execute calculations at speeds several orders of magnitude faster than what we are used to. Machine learning and artificial intelligence algorithms require fast computation to churn through complex data sets. At Xanadu AI they are building libraries to bring these two worlds together. In this episode Josh Izaac shares his work on the Strawberry Fields and Penny Lane projects that provide both high and low level interfaces to quantum hardware for machine learning and deep neural networks. If you are itching to get your hands on the coolest combination of technologies, then listen now and then try it out for yourself. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, fast object storage, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! As a developer, maintaining a state of flow is key to your productivity. Don’t let something as simple as the wrong function ruin your day. Kite is the smartest completions engine available for Python, featuring a machine learning model trained by the brightest stars of GitHub. Featuring ranked suggestions sorted by relevance, offering up to full lines of code, and a programming copilot that offers up the documentation you need right when you need it. Get Kite for free today at getkite.com with integrations for top editors, including Atom, VS Code, PyCharm, Spyder, Vim, and Sublime. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Josh Izaac about how the work that he is doing at Xanadu AI to make it easier to build applications for quantum processors Interview Introductions How did you get introduced to Python? Can you start by describing what you are working on at Xanadu AI? How do the specifics of your quantum hardware influence the way in which developers need to build their algorithms? (e.g. as compared to DWave) What are some of the underlying principles that developers need to understand in order to take full advantage of the capabilities provided by quantum processors? Can you outline the different components and libraries that you are building to simplify the work of building machine learning/AI projects for quantum processors? What’s the story behind all of the Beatles references? How do the different libraries fit together? What are some of the workloads and use cases that you and your customers are focused on? What are some of the most challenging aspects of designing a library that is accessible to developers while being able to take advantage of the underlying hardware? How does the workflow for machine learning on quantum computers differ from what is being done in classical environments? Given the magnitude of computational power and data processing that can be achieved in a quantum processor it seems that there is a potential for small bugs to have disproportionately large impacts. How can developers identify and mitigate potential sources of error in their algorithms? For someone who is building an application or algorithm to be executed on a Xanadu processor, what does their workflow look like? What are some of the common errors or misconceptions that you have seen in customer code? Can you describe the design and implementation of the Penny Lane and Strawberry Fields libraries and how they have evolved since you first began working on them? What are some of the most ambitious or exciting use cases for quantum systems that you have seen? How are you using the computational capabilities of your platform to feed back into the research and design of successive generations of hardware? What are some useful heuristics for determining whether it is worthwhile to build for a quantum processor rather than leveraging classical hardware? What are some of the most interesting/unexpected/useful lessons that you have learned while working on quantum algorithms and the libraries to support them? What is in store for the future of the Xanadu software ecosystem? What are your predictions for the near to medium term of quantum computing? Keep In Touch josh146 on GitHub Website LinkedIn Picks Tobias Knives Out movie Josh Baking Sourdough Bread 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 Xanadu AI Strawberry Fields PennyLane Quantum Physics ASIC == Application Specific Integrated Circuit FPGA == Field Programmable Gate Array GPU == Graphics Processing Unit Quantum Photonics Qubit Trapped Ions Quantum Optics Coherent Light Heisenberg’s Uncertainty Principle Wave/Particle Duality Continuous Variable Quantum Computation NetworkX Tensorflow The Walrus Rigetti Computing PyTorch Podcast Episode The Walrus Operator (Assignment Expressions) Fortran NumPy SciPy IPython Podcast Episode Jax Quantum Machine Learning Xanadu User Discussion Forum The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/10/202057 minutes, 21 seconds
Episode Artwork

The Advanced Python Task Scheduler

Summary Most long-running programs have a need for executing periodic tasks. APScheduler is a mature and open source library that provides all of the features that you need in a task scheduler. In this episode the author, Alex Grönholm, explains how it works, why he created it, and how you can use it in your own applications. He also digs into his plans for the next major release and the forces that are shaping the improved feature set. Spare yourself the pain of triggering events at just the right time and let APScheduler do it for you. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Alex Grönholm about APScheduler, a library for scheduling tasks in your Python projects Interview Introductions How did you get introduced to Python? Can you start by describing what APScheduler is and the main use cases that APScheduler is designed for? What was your movitvation for creating it? What is the workflow for integrating APScheduler into an application? In the documentation it says not to run more than one instance of the scheduler, what are some strategies for scaling schedulers? What are some common architectures for applications that take advantage of APScheduler? What are some potential pitfalls that developers should be aware of? Can you describe how APScheduler is implemented and how its design has evolved since you first began working on it? What have you found to be the most complex or challenging aspects of building or using a scheduling framework? What are some of the most interesting/innovative/unexpected ways that you have seen APScheduler used? What are some of the features or capabilities that you have consciously left out? What design strategies or features of APScheduler are often overlooked or underappreciated? What are some of the most useful or interesting lessons that you have learned while building and maintaining APScheduler? When is APScheduler the wrong choice for managing task execution? What do you have planned for the future of the project? Keep In Touch agronholm on GitHub Picks Tobias The Data Exchange Podcast Alex Tenacity Links APScheduler PHP Java ECMAScript Celery ERP == Enterprise Resource Planning Cron Daemon RPyC Zookeeper Data Engineering Podcast Episode RethinkDB Daylight Saving Time Falsehoods Programmers Believe About Time PyTZ Celery Beats Asphalt Framework Podcast Episode AnyIO Twisted Podcast Episode Py2EXE PyInstaller The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/2/202033 minutes, 15 seconds
Episode Artwork

Reducing The Friction Of Embedded Software Development With PlatformIO

Summary Embedded software development is a challenging endeavor due to a fragmented ecosystem of tools. Ivan Kravets experienced the pain of programming for different hardware platforms when embroiled in a home automation project. As a result he built the PlatformIO ecosystem to reduce the friction encountered by engineers working with multiple microcontroller architectures. In this episode he describes the complexities associated with targeting multiple platforms, the tools that PlatformIO offers to simplify the workflow, and how it fits into the development process. If you are feeling the pain of working with different editing environments and build toolchains for various microcontroller vendors then give this interview a listen and then try it out for yourself. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Ivan Kravets about PlatformIO, an open source ecosystem for IoT development including a cross-platform IDE, unified debugger, remote unit testing, and firmware updates. Interview Introductions How did you get introduced to Python? Can you start by describing what PlatformIO is? What was your motivation for creating it? What are the aspects of embedded development that keep you interested and engaged in this space? What are some of the types of projects that someone might use PlatformIO to build? What are some of the common challenges that a developer might encounter when working on embedded systems? What are the additional complexities that get introduced as more hardware targets get added to a project? What is the workflow for someone using PlatformIO for embedded systems development? What are the different elements of PlatformIO and how do they simplify the work of building embedded systems projects? How is PlatformIO implemented and how has the system design evolved since you first began working on it? What was your reason for selecting Python as the implementation language? If you were to start over today what would you do differently? How has the embedded hardware and software landscape changed since you first started work on PlatformIO? How has that impacted your product direction? How do developers handle testing and validation of their applications? How does PlatformIO help with updating deployed devices with new firmware? What have been some of the most interesting/unexpected/innovative projects that you have seen built with PlatformIO? What have been some of the most interesting/unexpected/challenging aspects of building and maintaining PlatformIO? How are you approaching sustainability of the project and business? What do you have planned for the future of PlatformIO? Keep In Touch LinkedIn Website ivankravets on GitHub @ikravets on Twitter Picks Tobias UMass Amherst Making Electricity From Thin Air Ivan Don’t focus on the money side of your project, just focus on building a great product. 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 PlatformIO Ukraine Home Automation Home Assistant Podcast Episode Twisted Podcast Episode Zigbee Radio Serial I/O RS-232 ARM CPU Architecture RISC-V AVR Microcontrollers Arduino Texas Instruments Launchpad Eclipse IDE MCU == MicroController Unit VSCode PlatformIO Extension SCons Make Raspberry Pi ESP8266 Marlin 3D Printer Firmware ESP Home Zephyr Realtime Operating System Western Digital The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/25/202046 minutes, 49 seconds
Episode Artwork

APIs, Sustainable Open Source and The Async Web With Tom Christie

Summary Tom Christie is probably best known as the creator of Django REST Framework, but his contributions to the state the web in Python extend well beyond that. In this episode he shares his story of getting involved in web development, his work on various projects to power the asynchronous web in Python, and his efforts to make his open source contributions sustainable. This was an excellent conversation about the state of asynchronous frameworks for Python and the challenges of making a career out of open source. 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 200 Gbit/s private networking, node balancers, a 40 Gbit/s public network, and a brand new managed Kubernetes platform, all controlled by a convenient API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they’ve got dedicated CPU and GPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Tom Christie about the Encode organization and the work he is doing to drive the state of the art in async for Python Interview Introductions How did you get introduced to Python? Can you start by describing what the Encode organization is and how it came to be? What are some of the other approaches to funding and sustainability that you have tried in the past? What are the benefits to the developers provided by an organization which you were unable to achieve through those other means? What benefits are realized by your sponsors as compared to other funding arrangements? What projects are part of the Encode organization? How do you determine fund allocation for projects and participants in the organization? What is the process for becoming a member of the Encode organization and what benefits and responsibilities does that entail? A large number of the projects that are part of the organization are focused on various aspects of asynchronous programming in Python. Is that intentional, or just an accident of your own focus and network? For those who are familiar with Python web programming in the context of WSGI, what are some of the practices that they need to unlearn in an async world, and what are some new capabilities that they should be aware of? Beyond Encode and your recent work on projects such as Starlette you are also well known as the creator of Django Rest Framework. How has your experience building and growing that project influenced your current focus on a technical, community, and professional level? Now that Python 2 is officially unsupported and asynchronous capabilities are part of the core language, what future directions do you foresee for the community and ecosystem? What are some areas of potential focus that you think are worth more attention and energy? What do you have planned for the future of Encode, your own projects, and your overall engagement with the Python ecosystem? Keep In Touch Website tomchristie on Github @_tomchristie on Twitter Picks Tobias Maleficent: Mistress of Evil Abominable Tom The Lobster The Master And His Emissary by Ian McGilchrist 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 Encode Django Rest Framework Starlette Zope Django Django Piston Django Tastypie Andrew Godwin ASGI Django Channels Podcast Episode Flask Pyramid Sentry Podcast Episode Tidelift Uvicorn HTTPX Tidelift Open Collective Stripe Github Sponsors Python Software Foundation Podcast Episode Firebase Databases ORM HTTP3 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/18/202043 minutes, 45 seconds
Episode Artwork

Learning To Program Python By Building Video Games With Arcade

Summary Video games have been a vehicle for learning to program since the early days of computing. Continuing in that tradition, Paul Craven created the Arcade library as a modern alternative to PyGame for use in his classroom. In this episode he explains his motivations for starting a new framework for video game development, his view on the benefits of games in computer education, and how his students and the broader community are using it to build interesting and creative projects. If you are looking for a way to get new programmers engaged, or just want to experiment with building your own games, then this is the conversation for you. Give it a listen and then give Arcade a try for yourself. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Paul Craven about Arcade, an easy-to-learn Python library for creating 2D video games Interview Introductions How did you get introduced to Python? Can you start by describing what Arcade is? What inspired you to begin working on it? Who is your primary audience? As an educator, what have you found to be most effective about using games as a vehicle for teaching programming? What elements of programming or computer science do you have difficulty in addressing within the context of a video game? For someone who wants to move on from working on games to something like web development or data analytics, what elements of software design and structure are easily translated to other domains? Can you describe how Arcade is implemented and how the architecture has evolved since you first began working on it? If you were to start over today, what would you do differently? What have you found to be the most interesting/unexpected/challenging aspects of building and maintaining Arcade? What are some of the most interesting/innovative/unexpected ways that you have seen Arcade used? When is Arcade the wrong platform, or at what point does someone need to move on from Arcade? What do you have planned for the future of Arcade? Keep In Touch @professorcraven on Twitter pvcraven on GitHub Faculty Page Picks Tobias Ori And The Blind Forest Paul Fahrenheit 451 by Ray Bradbury “Mistakes can be profited by Man, when i was young I showed my ignorance in people’s faces. They beat me with sticks. By the time I was forty my blunt instrument had been honed to a fine cutting point for me. If you hide your ignorance, no one will hit you and you’ll never learn.” 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 Arcade Simpson College PyGame SDL OpenGL Unity Unreal Engine GoDot Automate The Boring Stuff With Python Minesweeper Pyglet Spatial Hashing Tiled Map Editor Python Type Hints F Strings Data Classes PyMunk FFMPEG PyWeek Podcast Episode Python Discord Arcade Enhancement Requests The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/11/202041 minutes, 42 seconds
Episode Artwork

Build Your Own Personal Data Repository With Nostalgia

Summary The companies that we entrust our personal data to are using that information to gain extensive insights into our lives and habits while not always making those findings accessible to us. Pascal van Kooten decided that he wanted to have the same capabilities to mine his personal data, so he created the Nostalgia project to integrate his various data sources and query across them. In this episode he shares his motivation for creating the project, how he is using it in his day-to-day, and how he is planning to evolve it in the future. If you’re interested in learning more about yourself and your habits using the personal data that you share with the various services you use then listen now to learn more. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Pascal van Kooten about his nostalgia project, a nascent framework for taking control of your personal data Interview Introductions How did you get introduced to Python? Can you start by describing your mission with the nostalgia project? How did the topic of personal data management come to be a focus for you? What other options exist for users to be able to collect and manage their own data? What capabilities were lacking in those options that made you feel the need to build Nostalgia? What is your target audience for this set of projects? How are you using Nostalgia in your own life? What are some of the insights that you have been able to gain as a result of integrating your data with Nostalgia? Can you describe the current architecture of the Nostalgia platform and how it has evolved since you began work on it? What are some of the assumptions that you are using to direct the focus of your development and interaction design? What are the minimum number of data sources needed to make this useful? What are some of the challenges that you are facing in collating and integrating different data sources? What are some of the drawbacks of using something like Nostalgia for managing your personal data? What are some of the most interesting/challenging/unexpected aspects of your work on Nostalgia so far? What do you have planned for the future of the project? Keep In Touch Website LinkedIn @kootenpv on Twitter kootenpv on GitHub Picks Tobias Jumanji: The Next Level Jumanji Pascal Bup 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 timeliner qs_ledger Nostalgia Shrynk Whereami R Language Duck Duck Go Caddy Perkeep Dark Programming Language Pandas Podcast Episode Neo4J Pandas Extension Arrays Podcast Episode Parquet Data Engineering Podcast Episode ElectronJS Zincbase The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/4/202032 minutes, 57 seconds
Episode Artwork

Simplifying Social Login For Your Web Applications

Summary A standard feature in most modern web applications is the ability to log in or register using accounts that you already own on other sites such as Google, Facebook, or Twitter. Building your own integrations for each service can be complex and time consuming, distracting you from the features that you and your users actually care about. Fortunately the Python social auth library makes it easy to support third party authentication with a large and growing number of services with minimal effort. In this episode Matías Aguirre discusses his motivation for creating the library, how he has designed it to allow for flexibility and ease of use, and the benefits of delegating identity and authentication to third parties rather than managing passwords yourself. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Matías Aguirre about Python social auth and the complexities of third-party authentication Interview Introductions How did you get introduced to Python? Can you start by describing what the Python social auth project is and your motivation for starting it? Why might someone want to integrate with or rely on a third-party identity provider in their projects? What are some of the tradeoffs or drawbacks of implementing Can you describe the current architecture of the library and how it has evolved since you first began working on it? There are a number of pre-built integrations with different web frameworks in the social auth github organization, but Django is the only one that has seen any commits recently. What are the contributing factors for that state of affairs? There are a number of authentication protocols that you support. What are the common capabilities that they each support and what are some of the more challenging differences between them? How have you implemented the interface for plugging different authentication mechanisms to allow for the variation between them while keeping the library code maintainable? What is involved in adding support for a new authentication provider or protocol? Many times authorization and authentication are conflated or used interchangeably. How does Python social auth address those concerns and what are the limitations of different mechanisms for defining permissions? For someone who is using Python social auth, what is the workflow for integrating it with their application as a consumer? What are some of the most interesting/unexpected/innovative ways that you have seen Python social auth used? What are some of the most interesting/useful/unexpected lessons that you have learned in the process of building and maintaining Python social auth? When is Python social auth more effort than it’s worth? What do you have planned for the future of the project? Keep In Touch omab on GitHub Website @linuxaddict on Twitter LinkedIn Picks Tobias Joker movie Matías Sanic asynchronous web framework Star Trek Picard TV series 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 Python Social Auth Uruguay Django Ruby on Rails MonkeyLearn Social Authentication Django Social Auth Salted and hashed passwords Magic Link Authentication OAuth OpenID SAML FastAPI Sanic ASGI WSGI AsyncIO The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/27/202034 minutes, 5 seconds
Episode Artwork

Building A Business On Building Data Driven Businesses

Summary In order for an organization to be data driven they need easy access to their data and a simple way of sharing it. Arik Fraimovich built Redash as a way to address that need by connecting to any data source and building attractive dashboards on top of them. In this episode he shares the origin story of the project, his experiences running a business based on open source, and the challenges of working with data effectively. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Arik Fraimovich about Redash, an open source business intelligence platform that helps you make sense of your data. Interview Introductions How did you get introduced to Python? Can you start by describing what Redash is and its origin story? What are the primary ways that it is used? The business intelligence market is quite mature and has many commercial and open source projects to choose from. What are the aspects of Redash that have allowed you to be successful? What would you consider to be your closest competitors? What was your background with data before starting on Redash? What are some of the most notable lessons that you have learned about business intelligence since starting the project? How has the landscape for business intelligence and data analysis changed since you began the project? Beyond just accessing data, Redash focuses on enabling visualization of the results. What types of visualizations do you support and how do you support users in choosing the most effective ways to represent the information? What are some of the common challenges that your users and customers encounter when communicating with data? One of the critical aspects of enabling data access in an organization is the ability to collaborate on asking and answering questions. How do you approach that challenge in Redash? How is Redash implemented and how has the overall design and architecture evolved since you first started working on it? How do you manage the complexity of supporting so many different data sources? If you were to start over today, what would you do differently? Beyond the code of Redash, you also have a business around providing it as a hosted service. What are some of the most interesting, challenging, or unexpected lessons that you have learned in the process of building and growing that service? How do you approach the direction and governance of the open source project and balance that against the wants and needs of the community? What are some of the most interesting, innovative, or unexpected ways that you have seen Redash used? When is Redash the wrong platform to use? What do you have planned for the future of the Redash business and project? Keep In Touch arikfr on GitHub Website @arikfr on Twitter Picks Tobias Data Engineering Podcast Arik Peewee ORM Amazon ECS 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 Redash Google App Engine EverythingMe RedShift Metabase Data Engineering Podcast Interview Apache Superset Elasticsearch Data Engineering Podcast Interview Tableau Looker Data Engineering Podcast Interview PowerBI Data Warehouse Data Lake Athena Spark Data Engineering Podcast Interview Redash Funnel Visualization Stephen Few Flask SQLAlchemy Redis PostgreSQL Data Engineering Podcast Interview Celery RQ Tornado Django ORM AngularJS ReactJS NodeJS Redash Query Results Data Source IBM DB2 Retool Forest Admin Grafana The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/20/202041 minutes, 26 seconds
Episode Artwork

Using Deliberate Practice To Level Up Your Python

Summary An effective strategy for teaching and learning is to rely on well structured exercises and collaboration for practicing the material. In this episode long time Python trainer Reuven Lerner reflects on the lessons that he has learned in the 5 years since his first appearance on the show, how his teaching has evolved, and the ways that he has incorporated more hands-on experiences into his lessons. This was a great conversation about the benefits of being deliberate in your approach to ongoing education in the field of technology, as well as having some helpful references for ways to keep your own skills sharp. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m pleased to welcome back Reuven Lerner to talk about the benefits of deliberate practice for learning and improving programming skills Interview Introductions How did you get introduced to Python? In your first appearance on the show back in episode 2 we talked about your experience as a Python trainer. How has your teaching style evolved in the past 5 years? How has the focus and scope of your training changed in that time period? What have you found to be some of the most helpful and effective tactics in your training? From the learner perspective, what are some strategies that you recommend for retaining information, particularly in the context of gaining technical knowledge? In-person training vs. real-time online training vs. recorded videos, advantages and disadvantages of each. Blended learning, in which we combine aspects of the above Beyond in-person training, what are your preferred methods for learning and maintaining new skills? What is deliberate practice and how does it differ from the habits that many of us might default to? What are some of the resources that you provide for students of your trainings for practicing? What are some of the outside resources which you have found most useful or effective? Keep In Touch Website Blog @reuvenmlerner on Twitter Picks Tobias The Manager’s Path by Camille Fournier Reuven Lab Rats: How Silicon Valley Made Work Miserable For The Rest Of Us by Dan Lyons Links Deliberate Practice Reuven On Episode 2 CGI == Common Gateway Interface Language Phrasebook Jupyter Notebook Walrus Operator PyCon 2019 Presentation Python Bytes List Comprehension Weekly Python Exercise Python Morsels PyBites Practice Your Python Python Workout book by Reuven Lerner PyTest Brian Okken The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/13/202048 minutes, 39 seconds
Episode Artwork

Checking Up On Python's Role in DevOps

Summary Python has been part of the standard toolkit for systems administrators since it was created. In recent years there has been a shift in how servers are deployed and managed, and how code gets released due to the rise of cloud computing and the accompanying DevOps movement. The increased need for automation and speed of iteration has been a perfect use case for Python, cementing its position as a powerful tool for operations. In this episode Moshe Zadka reflects on his experiences using Python in a DevOps context and the book that he wrote on the subject. He also discusses the difference in what aspects of the language are useful as an introduction for system operators and where they can continue their learning. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Moshe Zadke about his recent book DevOps In Python Interview Introductions How did you get introduced to Python? How did you gain experience in managing systems with Python? What is DevOps? What makes Python a good fit for managing systems? What is unique to the devops/sysadmin domain in terms of what software is used and what aspects of the language are useful? What are the main ways that Python is used for managing servers and infrastructure? What are some of the most notable changes in the ways that Python is used for server administration over the past several years? How has Python3 impacted the lives of operators? What was your motivation for writing a book about Python focused specifically on DevOps and server automation? What are some of the tools that have been replaced in your own workflow over the years? Keep In Touch Website LinkedIn @moshezadka on Twitter Picks Tobias SaltStack Podcast Episode Moshe Automat Podcast Episode 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 DevOps In Python SurveyMonkey Twisted Episode DevOps B=hive CI/CD Amoeba OS Python OS module Requests Canary Deployments Post Mortem Bash Shell Z Shell Linux Unix AWS Boto3 GitHub GitLab Debian Ubuntu CentOS Pip Poetry Pipenv pip-tools dh-virtualenv Docker Hyneck Schlaweck Presentation On Building Docker Images Ansible SaltStack Chef Puppet The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/6/202033 minutes, 35 seconds
Episode Artwork

Python's Built In IDE Isn't Just Sitting IDLE

Summary One of the first challenges that new programmers are faced with is figuring out what editing environment to use. For the past 20 years, Python has had an easy answer to that question in the form of IDLE. In this episode Tal Einat helps us explore its history, the ways it is used, how it was built, and what is in store for its future. Even if you have never used the IDLE editor yourself, it is still an important piece of Python’s strength and history, and this conversation helps to highlight why that is. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Corinium Global Intelligence, ODSC, and Data Council. Upcoming events include the Software Architecture Conference in NYC, Strata Data in San Jose, and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Tal Einat about the IDLE editor for Python, it’s history, and what is in store for its future Interview Introductions How did you get introduced to Python? For anyone who hasn’t used it, can you start by explaining what IDLE is? IDLE has been part of the standard library for Python for quite some time now. What was the motivation for adding it to the core of Python? How has the evolution of our computing environment changed the motivation for maintaining IDLE and the use cases that it is most beneficial for? What are the benefits of including a basic editor in the default distribution of Python? What are some of the ways in which it is often used? What are the limiting factors that lead users to other IDEs or text editors? What role do you think IDLE has played in the growth of Python? What was your motivation for getting involved as a Python contributor and working on the implementation of IDLE? How is IDLE implemented and what are some of the ways that it has evolved since its initial introduction? How well has the code for IDLE aged as new features and capabilities are added to the language? What are some of the integration points available for extending IDLE? What are some of the most interesting or innovative ways that you have seen IDLE used and extended? What is planned for the future of the IDLE module? Keep In Touch LinkedIn @TalEinat on Twitter taleinat on GitHub Picks Tobias Mr. Robot Tal Captain Fantastic The Lesson To Unlearn article by Paul Graham 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 IDLE FullProof Israel Mandatory Military Service Eric Idle Monty Python Visual Studio IDLE-fork Vi Emacs Sublime Text Visual Studio Code REPL == Read Eval Print Loop Tcl/Tk Tkinter RPC == Remote Procedure Call IDLEx VPython Podcast Episode Python Turtle SVN (Subversion) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/23/201936 minutes, 33 seconds
Episode Artwork

Riding The Rising Tides Of Python

Summary The past two decades have seen massive growth in the language, community, and ecosystem of Python. The career of Pete Fein has occurred during that same period and his use of the language has paralleled some of the major shifts in focus that have occurred. In this episode he shares his experiences moving from a trader writing scripts, through the rise of the web, to the current renaissance in data. He also discusses how his engagement with the community has evolved, why he hasn’t needed to use any other languages in his career, and what he is keeping an eye on for the future. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Pete Fein about his voyage on the rising tide of Python Interview Introductions How did you get introduced to Python? I understand that you have used Python exclusively in your professional life. What other languages have you been exposed to and taken inspiration from? What are some of the projects that you have been involved with which you are most proud of? How has the community and your involvement with it changed over the years? In your experience, how has the growth in the size and breadth of the community impacted its accessibility to newcomers? You have been using Python and participating in the community for quite some time now, and there have been significant changes in both within that period. What are some of the most significant technological shifts that you have noticed and been a part of? How have those shifts influenced the direction of your career? As you have moved through the different phases of your career with different areas of focus, what are some of the aspects of the work which have remained constant? What have been the biggest differences across the different problem domains? What are some of the aspects of the language or its ecosystem which you feel are lacking or don’t get enough attention? What are some of the industry trends which you are keeping a close eye on and how do you anticipate them influencing the direction of the community and your career in the upcoming years? Keep In Touch Consulting Website Personal Website @wearpants on Twitter LinkedIn wearpants on GitHub Picks Tobias Matomo Analytics Pete FastAPI PyDantic 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 Chicago Scheme Structure and Interpretation of Computer Programs David Beazley Podcast Episode Twiggy logging library Jesse Noller Log4J Debian RedHat StructLog Elliot Podcast Episode Logbook Armin Ronacher Podcast Episode Pittsburgh Python Meetup Boltons library Elixir ChiPy Chicago Python user group Subversion Ruby On Rails Django Data Engineering Data Engineering Podcast Internet of Things Pittsburgh Artificial Pancreas Project Eric Holscher Read The Docs Podcast Episode Circuit Playground Express CircuitPython Podcast Episode Rust Language PyOhio PyGotham The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/16/201944 minutes, 16 seconds
Episode Artwork

Debugging Python Projects With PySnooper

Summary Debugging is a painful but necessary practice in software development. The tools that are available in Python range from the built-in debugger, to tools integrated with your coding environment, to the trusty print function. In this episode Ram Rachum describes his work on PySnooper and how it can be used to speed up your problem solving in complex or legacy applications. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, or running your build servers, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media and the Python Software Foundation. Upcoming events include the Software Architecture Conference in NYC and PyCon US in Pittsburgh. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Ram Rachum about PySnooper, an alternative approach to debugging your python projects Interview Introductions How did you get introduced to Python? How do developers normally debug their code, and what need does PySnooper address that isn’t addressed by the established methods? What is the workflow for using PySnooper for investigating or debugging a project? (This will probably be answered in the answer to the question above) What are some of the pieces of information that it surfaces and how do they aid the developer in directing their investigation? What were some of the projects that you were testing it with and how did they influence the direction that you took PySnooper? Can you describe how PySnooper is implemented and some of the ways that it has evolved since you first began working on it? What are some of the initial goals that you had for the project which you have since abandoned as either not useful or too challenging to implement? What are some of the edge cases or technical challenges that you have encountered while working on PySnooper, either in Python itself or in the tool? There is another project called Snoop which builds on top of your work on PySnooper to add some extra functionality and developer ergonomics. What, if anything, was your reaction to it and how has it influenced your work on PySnooper? One of the notable aspects of your work on PySnooper is the amount of attention that it garnered shortly after you published it. How has that visibility affected the long-term popularity and use of PySnooper? What have been some of the most interesting, unexpected, or difficult aspects of creating, maintaining, and promoting PySnooper? What do you have planned for the future of the project? Keep In Touch cool-RR on GitHub Personal Website Consulting Website Picks Tobias PyCon US Call for proposals Registration Ram Nonviolent communication Links PySnooper Ram’s Python workshops The PyWeb-IL meetup BlueVine’s career page Submit your CV to Ram’s email mailto:[email protected] Tel Aviv Israel Paul Graham Y Combinator startup accelerator Wing IDE PyCharm sys.settrace Python f_trace coverage.py Podcast.init Interview PEP == Python Enhancement Proposal Podcast Episode snoop project Alex Hall pdb pudb pdb++ The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/9/201945 minutes, 30 seconds
Episode Artwork

Making Complex Software Fun And Flexible With Plugin Oriented Programming

Summary Starting a new project is always exciting because the scope is easy to understand and adding new features is fun and easy. As it grows, the rate of change slows down and the amount of communication necessary to introduce new engineers to the code increases along with the complexity. Thomas Hatch, CTO and creator of SaltStack, didn’t want to accept that as an inevitable fact of software, so he created a new paradigm and a proof-of-concept framework to experiment with it. In this episode he shares his thoughts and findings on the topic of plugin oriented programming as a way to build and scale complex projects while keeping them fun and flexible. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Thomas Hatch about his work on the POP library and how he is using plugin oriented programming in his work at SaltStack Interview Introductions How did you get introduced to Python? Can you start by giving your definition of Plugin Oriented Programming and your thoughts on what benefits it provides? You created the POP library as a framework for enabling developers to incorporate this pattern into their own projects. What capabilities does that framework provide and what was your motivation for creating it? How has your work on Salt influenced your thinking on how to implement plugins for software projects? How does POP fit into the future of the SaltStack project? What are some of the advanced patterns or paradigms that the POP model allows for? Can you describe how the POP library itself is implemented and some of the ways that its design has evolved since you first began experimenting with it? What are some of the languages or libraries that you have looked at for inspiration in your design and philosophy around this development pattern? For someone who is building a project on top of POP what does their workflow look like and what are some of the up-front design considerations they should be thinking of? How do you define and validate the contract exposed by or expected from a plugin subsystem? One of the interesting capabilities that you highlight in the documentation is the concept of merging applications. What are your thoughts on the challenges that an engineer might face when merging library or microservice applications built with POP into a single deployable artifact? What would be involved in going the other direction to split a single application into independently runnable microservices? When extracting common functionality from a group of existing applications, what are the relative merits of creating a plugin sybsystem vs writing a library? How does the system design of a POP application impact the available range of communication patterns for software and the teams building it? What are some antipatterns that you anticipate for teams building their projects on top of POP? In the documentation you mention that POP is just an example implementation of the broader pattern and that you hope to see other languages and developer communities adopt it. What are some of the barriers to adoption that you foresee? What are some of the limitations of POP or cases where you would recommend against following this paradigm? What are some of the most interesting, innovative, or unexpected ways that you have seen POP used? What have been some of the most interesting, unexpected, or challenging aspects of building POP? What do you have planned for the future of the POP library, or any applications where you plan to employ this pattern? Keep In Touch thatch45 on GitHub @thatch45 on Twitter Picks Tobias The Man In The High Castle TV series Thomas Jack Ryan TV Series 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 Episode 1 POP SaltStack Ruby Microservices Linus Torvalds SaltConf SaltStack Thorium Salt Beacons Salt Reactors Salt Grains Idem AsyncIO Nim OCaml Julia LLVM Object Oriented Programming Go Language Rust RBAC == Role Based Access Control The Mythical Man Month Linux Kernel Heist Umbra Flow Programming Magic The Gathering The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/3/20191 hour, 2 minutes, 37 seconds
Episode Artwork

Faster And Safer Software Development With Feature Flags

Summary Any software project that is worked on or used by multiple people will inevitably reach a point where certain capabilities need to be turned on or off. In this episode Pete Hodgson shares his experience and insight into when, how, and why to use feature flags in your projects as a way to enable that practice. In addition to the simple on and off controls for certain logic paths, feature toggles also allow for more advanced patterns such as canary releases and A/B testing. This episode has something useful for anyone who works on software in any language. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Pete Hodgson about the concept of feature flags and how they can benefit your development workflow Interview Introductions How did you get introduced to Python? Can you start by describing what a feature flag is? What was your first experience with feature flags and how did it affect your approach to software development? What are some of the ways that feature flags are used? What are some antipatterns that you have seen for teams using feature flags? What are some of the alternative development practices that teams will employ to achieve the same or similar outcomes to what is possible with feature flags? Can you describe some of the different approaches to implementing feature flags in an application? What are some of the common pitfalls or edge cases that teams run into when building an in-house solution? What are some useful considerations when making a build vs. buy decision for a feature toggling service? What are some of the complexities that get introduced by feature flags for mantaining application code over the long run? What have you found to be useful or effective strategies for cataloging and documenting feature toggles in an application, particularly if they are long lived or for open source applications where there is no institutional context? Can you describe some of the lifecycle considerations for feature flags, and how the design, implementation, or use of them changes for short-lived vs long-lived use cases? What are some cases where the overhead of implementing and maintaining a feature flag infrastructure outweighs the potential benefit? What advice or references do you recommend for anyone who is interested in using feature flags for their own work? Keep In Touch Website @ph1 on Twitter moredip on GitHub Picks Tobias Circuit Playground Express CircuitPython Episode Pete Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim 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 Perl Ruby Django Feature Flag Pete’s Blog Post On Feature Flags Thoughtworks Continuous Delivery Continuous Delivery Book Trunk Based Development Branch By Abstraction Technical Debt Strategy Pattern Polymorphism The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/26/20191 hour, 1 minute, 28 seconds
Episode Artwork

From Simple Script To Beautiful Web Application With Streamlit

Summary Building well designed and easy to use web applications requires a significant amount of knowledge and experience across a range of domains. This can act as an impediment to engineers who primarily work in so-called back-end technologies such as machine learning and systems administration. In this episode Adrien Treuille describes how the Streamlit framework empowers anyone who is comfortable writing Python scripts to create beautiful applications to share their work and make it accessible to their colleagues and customers. If you have ever struggled with hacking together a simple web application to make a useful script self-service then give this episode a listen and then go experiment with how Streamlit can level up your work. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Having all of your logs and event data in one place makes your life easier when something breaks, unless that something is your Elastic Search cluster because it’s storing too much data. CHAOSSEARCH frees you from having to worry about data retention, unexpected failures, and expanding operating costs. They give you a fully managed service to search and analyze all of your logs in S3, entirely under your control, all for half the cost of running your own Elastic Search cluster or using a hosted platform. Try it out for yourself at pythonpodcast.com/chaossearch and don’t forget to thank them for supporting the show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Adrien Treuille about Streamlit, an open source app framework built for machine learning and data science teams Interview Introductions How did you get introduced to Python? Can you start by explaining what Streamlit is and its origin story? What are some of the types of applications that are commonly built by data teams and who are the typical consumers of those projects? What are some of the challenges or complications that are unique to this problem space? What are some of the complications or challenges that you have faced to integrate Streamlit with so many different machine learning frameworks? Can you describe the technical implementation of Streamlit and how it has evolved since you began working on it? How did you approach the design of the API and development workflow to tailor it for the needs and capabilities of machine learning engineers? If you were to start the project from scratch today what would you do differently? What is a typical workflow for someone working on a machine learning application and how does Streamlit fit in? What are some of the types of tools or processes that it replaces? What are some of the most interesting or unexpected ways that you have seen Streamlit used? What have you found to be some of the most challenging or unexpected aspects of building and evolving Streamlit? How do you see Python evolving in light of Streamlit and other work in the machine learning space? What do you have in store for the future of Streamlit or any adjacent products and services? How are you approaching the governance and sustainability of the Streamlit open source project? Keep In Touch Website LinkedIn @myelbows on Twitter treuille on GitHub Picks Tobias The Book Of Why by Judea Pearl Adrien No Self, No Problem by Anam Thubten 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 Streamlit Forum GitHub Twitter Carnegie Mellon University Google X Zoox IBM Cornell University NumPy SciPy Machine Learning Engineer Jupyter DeckGL Matplotlib Plotly Seaborn Altair PyTorch Tensorflow Protocol Buffers Streamlit for teams Heroku EC2 React JS Awesome Streamlit Flask Plotly Dash Voila NeurIPS The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/18/201949 minutes, 1 second
Episode Artwork

Automate Your Server Security With GrapheneX

Summary The internet is rife with bots and bad actors trying to compromise your servers. To counteract these threats it is necessary to diligently harden your systems to improve server security. Unfortunately, the hardening process can be complex or confusing. In this week’s episode 18 year old Orhun Parmaksiz shares the story of how he and his friends created the GrapheneX framework to simplify the process of securing and maintaining your servers using the power and flexibility of Python. If you run your own software then this is definitely worth a listen. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Having all of your logs and event data in one place makes your life easier when something breaks, unless that something is your Elastic Search cluster because it’s storing too much data. CHAOSSEARCH frees you from having to worry about data retention, unexpected failures, and expanding operating costs. They give you a fully managed service to search and analyze all of your logs in S3, entirely under your control, all for half the cost of running your own Elastic Search cluster or using a hosted platform. Try it out for yourself at pythonpodcast.com/chaossearch and don’t forget to thank them for supporting the show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Orhun Parmaksiz about GrapheneX, a framework for simplifying the process of hardening your servers Interview Introductions How did you get introduced to Python? Can you start by explaining what we mean when we talk about hardening of servers? What are the common ways of hardening a system, which techniques can we use for this purpose? What are some of the high level categories of threats that operators should be considering? What is GrapheneX and what was your motivation for creating it? How does GrapheneX aid users in the process of increasing the security of their infrastructure? Is any extra operating system knowledge required for using GrapheneX? Can you talk through the workflow for someone using GrapheneX to harden their systems? What options does it support for managing deployment across a fleet of servers? Some security controls can actually prevent proper operation of the applications and services that are deployed on a server. How do you approach preventing those scenarios or educating the users in determining which controls are appropriate? Why did you choose Python for a project like GrapheneX? How is GrapheneX implemented? How has the design evolved since you first began working on it? If you were to start the project over today, what would you do differently? Do you accept contributions to the framework? If so, what kind of contributions are needed for improving GrapheneX? For someone who is interested in adding a new module to the framework, what is involved? What have you found to be the most interesting or challenging aspects of your work on GrapheneX? What, if any, aspects of server security have you consciously avoided implementing in GrapheneX? What are your future plans about the GrapheneX? Keep In Touch Orhun GitHub Twitter LinkedIn Picks Tobias Chess Orhun Creeping in My Soul by Cryoshell Gravity Hurts by Cryoshell 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 GrapheneX GitHub Website PyPI Twitter Trello Graphene New Modules for GNU/Linux & Windows (Issue) Flask Flask-SocketIO React trimstray/linux-hardening-checklist The Windows Server Hardening Checklist Firewall Windows Firewall Linux iptables PCI-DSS 2.2 requirement- server hardening standards CIS Benchmarks The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/11/201935 minutes, 41 seconds
Episode Artwork

Accelerating The Adoption Of Python At Wayfair

Summary Large companies often have a variety of programming languages and technologies being used across departments to keep the business running. Python has been gaining ground in these environments because of its flexibility, ease of use, and developer productivity. In order to accelerate the rate of adoption at Wayfair this week’s guest Jonathan Biddle started a team to work with other engineering groups on their projects and show them how best to take advantage of the benefits of Python. In this episode he explains their operating model, shares their success stories, and provides advice on the pitfalls to avoid if you want to follow in his footsteps. This is definitely worth a listen if you are using Python in your work or would like to aid in its adoption. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Having all of your logs and event data in one place makes your life easier when something breaks, unless that something is your Elastic Search cluster because it’s storing too much data. CHAOSSEARCH frees you from having to worry about data retention, unexpected failures, and expanding operating costs. They give you a fully managed service to search and analyze all of your logs in S3, entirely under your control, all for half the cost of running your own Elastic Search cluster or using a hosted platform. Try it out for yourself at pythonpodcast.com/chaossearch and don’t forget to thank them for supporting the show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Jonathan Biddle about his work to encourage and empower Wayfair engineers in their use of Python Interview Introductions How did you get introduced to Python? Can you start by describing the mission statement for you and your team at Wayfair? What is the origin story for how your group got started? How and where was Python being used within Wayfair at the time? What are the primary languages that are used throughout Wayfair? What is involved in the selection process for a language and technology stack for new projects within Wayfair? Can you describe how and why you work with different groups throughout Wayfair? What are some of the common misconceptions or barriers that you encounter when working with other engineering and product teams about how and where Python will be useful? How large is your team currently and what is the length of a typical engagement? How has the scale and scope of your work changed since your group was first formed? How many different product teams have you worked with at this point and what are some of the notable outcomes? What are some of the most challenging aspects, both technical and organizational, of educating other engineers on when and how to use Python? Can you share some examples of engagements that you would classify as a failure? What lessons have you learned from those situations? What advice do you have for other groups or organizations who may be considering or actively launching similar initiatives? Keep In Touch Website LinkedIn @jonbiddle on Twitter 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 Picks Tobias Learning Bayesian Statistics Podcast Jonathan PyDantic FastAPI MKDocs Links Wayfair Zope Django PHP Java Javascript .NET Kafka Jack Diederich – Stop Writing Classes The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/3/201942 minutes, 2 seconds
Episode Artwork

Building Quantum Computing Algorithms In Python

Summary Quantum computers are the biggest jump forward in processing power that the industry has seen in decades. As part of this revolution it is necessary to change our approach to algorithm design. D-Wave is one of the companies who are pushing the boundaries in quantum processing and they have created a Python SDK for experimenting with quantum algorithms. In this episode Alexander Condello explains what is involved in designing and implementing these algorithms, how the Ocean SDK helps you in that endeavor, and what types of problems are well suited to this approach. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Alex Condello about the Ocean SDK from D-Wave for building quantum algorithms in Python Interview Introductions How did you get introduced to Python? Can you start by giving a high-level overview of quantum computing? What is the Ocean SDK and how does it fit into the business model for D-Wave? What are some of the problem types that a quantum processor is uniquely well suited for? How does the overall system design for a quantum computer compare to that of the Von Neumann architecture that is common for the machines that we are all familiar with? What are some of the differences in algorithm design when programming for a quantum processor? Is there any specialized background knowledge that is necessary for making effective use of the QPU’s capabilities? What are some of the common difficulties that you have seen users struggle with? How does the Ocean SDK assist the developer in implementing and understanding the patterns necessary for Quantum algorithms? What was the motivation for choosing Python as the target language for an SDK to attract developers to experiment with quantum algorithms? Can you describe how the SDK is implemented and some of the integrations that are necessary for being able to operate on a quantum processor? What have you found to be some of the most interesting, challenging, or unexpected aspects of your work on the Ocean software stack? How do you handle the abstraction of the execution context to allow for replicating the program behavior on CPU/GPU vs QPU Is there any potential for quantum computing to impact research in previously intractable computer science research, such as the P vs NP problem? What are your current scaling limits in terms of providing compute to customers for their problems? What are some of the most interesting, innovative, or unexpected ways that you have seen developers use the Ocean SDK and quantum processors? What are you most excited for as you look to the future capabilities of quantum systems? What are some of the upcoming challenges that you anticipate for the quantum computing industry? Keep In Touch arcondello on GitHub Picks Tobias QuTip Podcast Interview Alex Cython Podcast Interview Links Ocean SDK D-Wave Quantum Computing Quantum Annealing Quantum Superposition Qubit D-Wave Leap Von Neumann Architecture Cuda Linear Programming D-Wave ML Papers D-Wave NetworkX Maximum Cut Problem Ising Problem Los Alamos National Laboratory Vertex Cover Problem D-Wave Hybrid The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/29/201936 minutes, 14 seconds
Episode Artwork

Illustrating The Landscape And Applications Of Deep Learning

Summary Deep learning is a phrase that is used more often as it continues to transform the standard approach to artificial intelligence and machine learning projects. Despite its ubiquity, it is often difficult to get a firm understanding of how it works and how it can be applied to a particular problem. In this episode Jon Krohn, author of Deep Learning Illustrated, shares the general concepts and useful applications of this technique, as well as sharing some of his practical experience in using it for his work. This is definitely a helpful episode for getting a better comprehension of the field of deep learning and when to reach for it in your own 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Jon Krohn about his recent book, deep learning illustrated Interview Introductions How did you get introduced to Python? Can you start by giving a brief description of what we’re talking about when we say deep learning and how you got involved with the field? How does your background in neuroscience factor into your work on designing and building deep learning models? What are some of the ways that you leverage deep learning techniques in your work? What was your motivation for writing a book on the subject? How did the idea of including illustrations come about and what benefit do they provide as compared to other books on this topic? While planning the contents of the book what was your thought process for determining the appropriate level of depth to cover? How would you characterize the target audience and what level of familiarity and proficiency in employing deep learning do you wish them to have at the end of the book? How did you determine what to include and what to leave out of the book? The sequencing of the book follows a useful progression from general background to specific uses and problem domains. What were some of the biggest challenges in determining which domains to highlight and how deep in each subtopic to go? Because of the continually evolving nature of the field of deep learning and the associated tools, how have you guarded against obsolescence in the content and structure of the book? Which libraries did you focus on for your examples and what was your selection process? Now that it is published, is there anything that you would have done differently? One of the critiques of deep learning is that the models are generally single purpose. How much flexibility and code reuse is possible when trying to repurpose one model pipeline for a slightly different dataset or use case? I understand that deployment and maintenance of models in production environments is also difficult. What has been your experience in that regard, and what recommendations do you have for practitioners to reduce their complexity? What is involved in actually creating and using a deep learning model? Can you go over the different types of neurons and the decision making that is required when selecting the network topology? In terms of the actual development process, what are some useful practices for organizing the code and data that goes into a model, given the need for iterative experimentation to achieve desired levels of accuracy? What is your personal workflow when building and testing a new model for a new use case? What are some of the limitations of deep learning and cases where you would recommend against using it? What are you most excited for in the field of deep learning and its applications? What are you most concerned by? Do you have any parting words or closing advice for listeners and potential readers? Keep In Touch Website @jonkrohnlearns on Twitter jonkrohn on GitHub Picks Tobias Spurious Correlations Jon Data Elixir Newsletter 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 Untapt Deep Learning Illustrated Pearson Columbia University New York City Data Science Academy NIH (National Institutes of Health) Oxford Uniersity Matlab R Language Neuroscience Artificial Neural Network Deep Learning Natural Language Processing Computer Vision Generative Adversarial Networks Deep Learning by Ian Goodfellow, et al. Hands On Machine Learning by Aurélien Géron O’Reilly Online Learning Transfer Learning Keras Tensorflow PyTorch Gary Marcus Judea Pearl Artificial General Intelligence Explainable AI Yuval Noah Harrari Sapiens Home Deus Wait But Why? The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/22/201956 minutes, 21 seconds
Episode Artwork

Andrew's Adventures In Coderland

Summary Software development is a unique profession in many ways, and it has given rise to its own subculture due to the unique sets of challenges that face developers. Andrew Smith is an author who is working on a book to share his experiences learning to program, and understand the impact that software is having on our world. In this episode he shares his thoughts on programmer culture, his experiences with Python and other language communities, and how learning to code has changed his views on the world. It was interesting getting an anthropological perspective from a relative newcomer to the world of software. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, Data Council in Barcelona, and the Data Orchestration Summit. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Andrew Smith about his anthropological study of software engineering culture in his upcoming book Adventures In Coderland. Interview Introductions How did you get introduced to Python? Can you start by describing the scope and intent of your work on Adventures In Coderland? What was your motivation for embarking on this particular project? Prior to the start of your research for this book, what was your level of familiarity with software development as a discipline and a cultural phenomenon? How are you approaching the research for this book and to what level of detail are you trying to address the problem space? What are some of the most striking contrasts that you have identified between software engineers and coding culture as it compares to that of a layperson? We met at the most recent PyCon US, which I understand you attended as a means of conducting research for your book. What are some of the notable aspects of the Python community that you discovered while you were attending? What are some of the other programming communities that you have engaged with? What are some of the differentiating factors that you have noticed between the communities that you have interacted with? What are some of the most surprising discoveries that you have made in the process of writing this book? What is your metric for determining when you have gathered enough raw material to complete the book? Now that you have delved into the peculiarities of "coderland", how has it changed your own outlook on both the software industry, and society at large? What advice do you have for the engineers who are listening as it pertains to your experiences in writing your book? Keep In Touch Website @wiresmith on Twitter Picks Tobias Throughline Podcast Andrew 20 Thousand Hertz Podcast 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 Linksj Adventures In Coderland https://us.pycon.org?utm_source=rss&utm_medium=rss Nicholas Tollervey 1843 Magazine The Economist Free Code Camp Code Golf Moon Dust book about the astronauts who first landed on the moon The Face magazine The Observer The Guardian Charlie Duke Totally Wired Code For America Supercollider programming environment SonicPi George Boole FMRI (Functional Magnetic Resonance Imaging) Ruby Language The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/14/20191 hour, 26 seconds
Episode Artwork

Network Automation At Enterprise Scale With Python

Summary Designing and maintaining enterprise networks and the associated hardware is a complex and time consuming task. Network automation tools allow network engineers to codify their workflows and make them repeatable. In this episode Antoine Fourmy describes his work on eNMS and how it can be used to automate enterprise grade networks. He explains how his background in telecom networking led him to build an open source platform for network engineers, how it is architected, and how you can use it for creating your own workflows. This is definitely worth listening to as a way to gain some appreciation for all of the work that goes on behind the scenes to make the internet possible. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, Alluxio, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, the Data Orchestration Summit, and Data Council in NYC. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Antoine Fourmy about eNMS, an enterprise-grade vendor-agnostic network automation platform. Interview Introductions How did you get introduced to Python? Can you start by explaining what eNMS is What was your motivation for creating it? Who are the target users of eNMS and how much background knowledge of network management is required to be effective with it? What are some of the alternative tools that exist in this space and why might a network operator choose to use eNMS in their place? What are some of the most challenging aspects of network creation and maintenance and how does eNMS assist with them? What are some of the mundane and/or error-prone tasks that can be replaced or automated with eNMS? What are some of the additional features that come into play for more complex networking tasks? Can you describe the system architecture of eNMS and how it has evolved since you first began working on it? eNMS is an impressive project that looks to have a substantial amount of polish. How large is the overall community of users and contributors? For someone who wants to get involved in contributing to eNMS what are some of the types of skills and background that would be helpful? What are some of the most innovative/unexpected ways that you have seen eNMS used? When is eNMS the wrong choice? What do you have planned for the future of the project? Keep In Touch Website LinkedIn afourmy on GitHub Picks Tobias Tedeschi Trucks Band Antoine CheckIO Podcast Episode 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 eNMS Orange Netmiko NAPALM Podcast Episode Paramiko Ansible Requests OpenNMS LibreNMS Ansible Tower Rundeck SaltStack Podcast Episode StackStorm Podcast Episode SaltStack Proxy Minions Hashicorp Vault VirtualBox Flask Django SQLAlchemy APScheduler Docker Podcast Episode Redis Celery The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/8/201934 minutes, 37 seconds
Episode Artwork

Building A Modern Discussion Forum In Python To Support Healthy Communities

Summary Building and sustaining a healthy community requires a substantial amount of effort, especially online. The design and user experience of the digital space can impact the overall interactions of the participants and guide them toward respectful conversation. In this episode Rafał Pitoń shares his experience building the Misago platform for creating community forums. He explains his motivation for creating the project, the lessons he has learned in the process, and how it is being used by himself and others. This was a great conversation about how technology is just a means, and not the end in itself. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the combined events of the Data Architecture Summit and Graphorum, Data Council in Barcelona, and the Data Orchestration Summit. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Rafał Pitoń about Misago, a fully featured modern forum application that is fast, scalable, and responsive Interview Introductions How did you get introduced to Python? Can you start by explaining what Misago is and your motivation for creating it? How does it compare to other modern forum options such as Discourse and Flarum? How did you generate and prioritize the set of features that you have implemented and what are the main capabilities that are still on your roadmap? Is Misago intended to be run in isolation, or does it allow for integrating into a larger Django project? Is there any support for multi-tenancy? How is Misago itself implemented and how has the architecture evolved since you first began working on it? If you were to start it today, what are some of the choices that you would make differently? What are the extension points that developers can hook into for adding custom functionality? In addition to the technical challenges, managing a forum involves a fair amount of social challenges. How does Misago help with management of a healthy community? How do different design elements factor into promoting healthy conversation and sustainable engagement? What are some of the aspects of community management and the accompanying platform features that enable them which aren’t initially obvious? For someone who wants to use Misago, what is involved in deploying and configuring it? What are some of the routine maintenance tasks that they should be aware of? What are some of the most interesting or unexpected ways that you have seen Misago used? What have you found to be the most interesting, unexpected, and challenging aspects of building and maintaining a forum platform? What do you have planned for the future of Misago? Keep In Touch rafalp on GitHub @RafalPiton on Twitter 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 Picks Tobias Fear Innoculum by Tool Rafał github.com/encode Ariadne GraphQL Library Links Misago Poland Mirumee Saleor Episode PHP Discourse Flarum MySQL PostgreSQL Data Engineering Podcast Interview jQuery DJango Rest Framework EmberJS MithrilJS AngularJS ReactJS PHPBB Celery GDPR == General Data Privacy Regulation Docker misago_docker VPS == Virtual Private Server Nginx Starlette Async API framework Ariadne GraphQL Library The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/1/201952 minutes, 22 seconds
Episode Artwork

Exploratory Data Analysis Made Easy At The Command Line

Summary There are countless tools and libraries in Python for data scientists to perform powerful analyses, but they often have a setup cost that acts as a barrier to ad-hoc exploration of data. Visidata is a command line application that eliminates the friction involved with starting the discovery process. In this episode Saul Pwanson explains his motivation for creating it, why a terminal environment is a useful place for this work, and how you can use Visidata for your own work. If you have ever avoided looking at a data set because you couldn’t be bothered with the boilerplate for a Jupyter notebook, then Visidata is the perfect addition to your toolbox. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Saul Pwanson about Visidata, a terminal oriented interactive multitool for tabular data Interview Introductions How did you get introduced to Python? Can you start by describing what Visidata is and how the project got started? What are the main use cases for Visidata? What are some tools that it has replaced in your workflow? Can you talk through a typical workflow for data exploration and analysis with Visidata? One of the capabilities that you mention on the website is quickly opening large files. What are some strategies that you have used to enable performant access for files that might crash a typical editor (e.g. Vim, Emacs)? Can you describe how Visidata is implemented and how it has evolved since you started working on it (including the upcoming 2.0 release)? What libraries or language features have proven most useful? Why did you choose to implement Visidata as a terminal only tool and what constraints does that bring with it? What are some of the most challenging aspects of building a terminal UI for data exploration and analysis? Because of its manifestation as a terminal/CLI application it relies heavily on keyboard bindings. How do you approach key assignments to ensure a consistent and intuitive user experience? What are some of the types of analysis that Visidata can be used for out of the box? What are some of the most interesting/unexpected/innovative ways that you have seen Visidata used? How much community adoption have you seen and how do you approach project governance as a solo developer? What do you have planned for the future of Visidata? Keep In Touch Website saulpw on GitHub @saulfp on Twitter LinkedIn Picks Tobias Data Is Plural newsletter Saul TMate Mosh – The Mobile Shell 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 Visidata F5 Networks HDF5 PyTables Podcast Interview vgit vping Jeremy Singer-Vine data.boston.gov Recurse Center Curses dateutil decorators Electron OpenRefine Tmux Visicalc Windows Subsystem For Linux Saul’s Lightning Talk The Book of Visidata Where In The World Is Carmen San Diego Oh My Zsh The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/23/201952 minutes, 50 seconds
Episode Artwork

Cultivating The Python Community In Argentina

Summary The Python community in Argentina is large and active, thanks largely to the motivated individuals who manage and organize it. In this episode Facundo Batista explains how he helped to found the Python user group for Argentina and the work that he does to make it accessible and welcoming. He discusses the challenges of encompassing such a large and distributed group, the types of events, resources, and projects that they build, and his own efforts to make information free and available. He is an impressive individual with a substantial list of accomplishments, as well as exhibiting the best of what the global Python community has to offer. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the O’Reilly AI conference, the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Facundo Batista about his experiences founding and fostering the Argentinian Python community, working as a core developer, and his career in Python Interview Introductions How did you get introduced to Python? What was your motivation for organizing a Python user group in Argentina? How does the geography and culture of Argentina influence the focus of the community? Argentina is a fairly large country. What is the reasoning for having the user group encompass the whole nation and how is it organized to provide access to everyone? What are some notable projects that have been built by or for members of PyAr? What are some of the challenges that you faced while building CDPedia and what aspects of it are you most proud of? How did you get started as a core developer? What areas of the language and runtime have you been most involved with? As a core developer, what are some of the most interesting/unexpected/challenging lessons that you have learned? What other languages do you currently use and what is it about Python that has motivated you to spend so much of your attention on it? What are some of the shortcomings in Python that you would like to see addressed in the future? Outside of CPython, what are some of the projects that you are most proud of? How has your involvement with core development and PyAr influenced your life and career? Keep In Touch @facundobatista on Twitter Blog Picks Tobias Dictionary of Difficult Words Facundo Fades 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 PyAr Argentina PyAr Mailing List PyAr Telegram PyCon Argentina Buenos Aires Cordoba Rosario Mendoza CDPedia PyCamp PSF == Python Software Foundation Wikipedia Internet Archive Decimal Module PEP 327 Tim Peters Canonical Tennis Fades The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/18/201941 minutes, 46 seconds
Episode Artwork

Python Powered Journalistic Freedom With SecureDrop

Summary The internet has made it easier than ever to share information, but at the same time it has increased our ability to track that information. In order to ensure that news agencies are able to accept truly anonymous material submissions from whistelblowers, the Freedom of the Press foundation has supported the ongoing development and maintenance of the SecureDrop platform. In this episode core developers of the project explain what it is, how it protects the privacy and identity of journalistic sources, and some of the challenges associated with ensuring its security. This was an interesting look at the amount of effort that is required to avoid tracking in the modern era. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the O’Reilly AI conference, the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Jen Helsby and Kushal Das about SecureDrop, a secure platform for submitting and receiving documents anonymously Interview Introductions How did you get introduced to Python? Can you start by describing what SecureDrop is and how it got started? How did you get involved in the project? Can you give some background on where and why it is useful? For someone using a running instance, what does their workflow look like? What are some of the ways that you minimize user experience hurdles to prevent them from circumventing the security through laziness or apathy? I was a bit surprised to see the references to the messaging system that is included. Why is that an important feature? What form do the submissions generally take and what are the limits on formats that you can accept? How is the system itself architected and how has the design evolved since the first implementation? In terms of the security protocols and technologies that are implemented, what factors are you considering as you develop the project? What are the weak points or edge cases that could lead to compromise and how do you guard against them? In terms of the deployment and maintenance of a SecureDrop instance, how much technological sophistication is necessary for the organization running it, and how much effort do you put into simplifying it? What are some of the notable uses of a SecureDrop deployment and what motivates you to continue working on it? What are the most interesting/innovative/unexpected uses of SecureDrop that you have seen? How do you approach the sustainability of the platform? What have you found most challenging/interested/unexpected in your work on SecureDrop? What is in store for the future of the project? Keep In Touch Jen @redshiftzero on Twitter redshiftzero on GitHub Blog Kushal Website @kushaldas on Twitter kushaldas on GitHub Picks Tobias Laser Tag Kushal Permanent Record by Edward Snowden Jen Permanent Record by Edward Snowden 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 SecureDrop Aaron Swartz Freedom Of The Press Foundation SecureDrop Directory TOR Browser TOR == The Onion Router Tails OS Ubuntu IDS == Intrusion Detection System Ansible DEF CON Mozilla Open Source Support (MOSS) Testinfra Flask Molecule unit test library for Ansible Bandit Safety Qubes OS Qt The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/10/201938 minutes, 22 seconds
Episode Artwork

Combining Python And SQL To Build A PyData Warehouse

Summary The ecosystem of tools and libraries in Python for data manipulation and analytics is truly impressive, and continues to grow. There are, however, gaps in their utility that can be filled by the capabilities of a data warehouse. In this episode Robert Hodges discusses how the PyData suite of tools can be paired with a data warehouse for an analytics pipeline that is more robust than either can provide on their own. This is a great introduction to what differentiates a data warehouse from a relational database and ways that you can think differently about running your analytical workloads for larger volumes of data. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Taking a look at recent trends in the data science and analytics landscape, it’s becoming increasingly advantageous to have a deep understanding of both SQL and Python. A hybrid model of analytics can achieve a more harmonious relationship between the two languages. Read more about the Python and SQL Intersection in Analytics at mode.com/init. Specifically, we’re going to be focusing on their similarities, rather than their differences. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the O’Reilly AI conference, the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Robert Hodges about how the PyData ecosystem can play nicely with data warehouses Interview Introductions How did you get introduced to Python? To start with, can you give a quick overview of what a data warehouse is and how it differs from a "regular" database for anyone who isn’t familiar with them? What are the cases where a data warehouse would be preferable and when are they the wrong choice? What capabilities does a data warehouse add to the PyData ecosystem? For someone who doesn’t yet have a warehouse, what are some of the differentiating factors among the systems that are available? Once you have a data warehouse deployed, how does it get populated and how does Python fit into that workflow? For an analyst or data scientist, how might they interact with the data warehouse and what tools would they use to do so? What are some potential bottlenecks when dealing with the volumes of data that can be contained in a warehouse within Python? What are some ways that you have found to scale beyond those bottlenecks? How does the data warehouse fit into the workflow for a machine learning or artificial intelligence project? What are some of the limitations of data warehouses in the context of the Python ecosystem? What are some of the trends that you see going forward for the integration of the PyData stack with data warehouses? What are some challenges that you anticipate the industry running into in the process? What are some useful references that you would recommend for anyone who wants to dig deeper into this topic? Keep In Touch LinkedIn hodgesrm on GitHub Picks Tobias Foundations Of Architecting Data Solutions: Managing Successful Data Projects by Ted Malaska & Jonathan Seidman Robert Reading old academic papers such as CStore Python Machine Learning by Sebastian Raschka 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 Altinity Clickhouse Data Engineering Podcast Interview MySQL Data Warehouse Column Oriented Database SIMD == Single Instruction Multiple Data PostgreSQL Data Engineering Podcast Episode Microsoft SQL Server Pandas NumPy Tensorflow Jupyter Data Sampling Dask Data Engineering Podcast Ray Map/Reduce Vertica Sharding Hadoop SnowflakeDB Delta Lake Data Engineering Podcast Episode BigQuery RedShift Snowflake Data Sharing OracleDB Kubernetes DBT Data Engineering Podcast Episode CSV Parquet Data Engineering Podcast Episode Kafka UC Davis Web Scraping Clickhouse Python Driver SQLAlchemy Altinity Blog Post Materialized View PyTorch Podcast Interview scikit-learn Spark Data Engineering Podcast Interview BigQuery ML Apache Arrow Wes McKinney Podcast Interview User Defined Function KDB CStore Paper by Dr. Michael Stonebraker, et al Kinetica MapD/OmniSci The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/2/201943 minutes, 44 seconds
Episode Artwork

AI Driven Automated Code Review With DeepCode

Summary Software engineers are frequently faced with problems that have been fixed by other developers in different projects. The challenge is how and when to surface that information in a way that increases their efficiency and avoids wasted effort. DeepCode is an automated code review platform that was built to solve this problem by training a model on a massive array of open sourced code and the history of their bug and security fixes. In this episode their CEO Boris Paskalev explains how the company got started, how they build and maintain the models that provide suggestions for improving your code changes, and how it integrates into your workflow. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Council. Upcoming events include the O’Reilly AI conference, the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Your host as usual is Tobias Macey and today I’m interviewing Boris Paskalev about DeepCode, an automated code review platform for detecting security vulnerabilities in your projects Interview Introductions Can you start by explaining what DeepCode is and the story of how it got started? How is the DeepCode platform implemented? What are the current languages that you support and what was your guiding principle in selecting them? What languages are you targeting next? What is involved in maintaining support for languages as they release new versions with new features? How do you ensure that the recommendations that you are making are not using languages features that are not available in the runtimes that a given project is using? For someone who is using DeepCode, how does it fit into their workflow? Can you explain the process that you use for training your models? How do you curate and prepare the project sources that you use to power your models? How much domain expertise is necessary to identify the faults that you are trying to detect? What types of labelling do you perform to ensure that the resulting models are focusing on the proper aspects of the source repositories? How do you guard against false positives and false negatives in your analysis and recommendations? Does the code that you are analyzing and the resulting fixes act as a feedback mechanism for a reinforcement learning system to update your models? How do you guard against leaking intellectual property of your scanned code when surfacing recommendations? What have been some of the most interesting/unexpected/challenging aspects of building the DeepCode product? What do you have planned for the future of the platform and business? Keep In Touch LinkedIn Picks Tobias Redwall Series by Brian Jacques Boris Artifical Intelligence Get outside 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 DeepCode Zurich, Switzerland BigCode ETH Zurich Datalog F Strings Data Classes DeepCode Research The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/26/201933 minutes, 15 seconds
Episode Artwork

Security, UX, and Sustainability For The Python Package Index

Summary PyPI is a core component of the Python ecosystem that most developer’s have interacted with as either a producer or a consumer. But have you ever thought deeply about how it is implemented, who designs those interactions, and how it is secured? In this episode Nicole Harris and William Woodruff discuss their recent work to add new security capabilities and improve the overall accessibility and user experience. It is a worthwhile exercise to consider how much effort goes into making sure that we don’t have to think much about this piece of infrastructure that we all rely on. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence, and Data Counsil. Upcoming events include the O’Reilly AI conference, the Strata Data conference, the combined events of the Data Architecture Summit and Graphorum, and Data Council in Barcelona. Go to pythonpodcast.com/conferences to learn more about these and other events, and take advantage of our partner discounts to save money when you register today. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Nicole Harris and William Woodruff about the work they are doing on the PyPI service to improve the security and utility of the package repository that we all rely on Interview Introductions How did you get introduced to Python? Can you start by sharing how you each got involved in working on PyPI? What was the state of the system at the time that you first began working on it? Once you committed to working on PyPI how did you each approach the process of identifying and prioritizing the work that needed to be done? What were the most significant issues that you were faced with at the outset? How often have the issues that you each focused on overlapped at the cross section of UX and security? How do you balance the tradeoffs that exist at that boundary? What is the surface area of the domains that you are each working in? (e.g. web UI, system API, data integrity, platform support, etc.) What are some of the pain points or areas of confusion from a user perspective that you have dealt with in the process of improving the platform? What have been the most notable features or improvements that you have each introduced to PyPI? What were the biggest challenges with implementing or integrating those changes? How do you approach introducing changes to PyPI given the volume of traffic that it needs to support and the level of importance that it serves in the community? What are some examples of attack vectors that exist as a result of the nature of the PyPI platform and what are you most concerned by? How does poor accessibility or user experience impact the utility of PyPI and the community members who interact with it? What have you found to be the most interesting/challenging/unexpected aspects of working on Warehouse? What are some of the most useful lessons that you have learned in the process? What do you have planned for future improvements to the platform? How can the listeners get involved and help out? How was this work funded? Keep In Touch Nicole @nlhkabu on Twitter Website If you’re using CI to upload to PyPI and would like to speak with Nicole please book a time here If you’re using assistive technology and would like to speak with Nicole please book a time here William @8x5clPW2 Website Email Please get in touch if you’d like to work with Trail of Bits on your next security project! Picks Tobias The Expanse TV Series Nicole The Great Hack documentary William Abraham Lincoln Autobiography by Carl Sandburg Links PyPI Warehouse Issue Tracker Good First Issues PeopleDoc Trail of Bits OSQuery Django Ruby Python Software Foundation Python Packaging Working Group Podcast Episode Donald Stufft Podcast Episode UX (User Experience) Design OTF == Open Technology Fund Bootstrap TOTP WebauthN Yubikey Changeset Consulting Sumana Harihareswara WCAG (Web Content Accessibility Guidelines) 2.0 Macaroon Security Tokens Docker Compose MOSS = Mozilla Open Source Support The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/19/201951 minutes, 38 seconds
Episode Artwork

Learning To Program In Python With CodeGrades

Summary With the increasing role of software in our world there has been an accompanying focus on teaching people to program. There are numerous approaches that have been attempted to achieve this goal with varying levels of success. Nicholas Tollervey has begun a new effort that blends the approach adopted by musicians and martial artists that uses a series of grades to provide recognition for the achievements of students. In this episode he explains how he has structured the study groups, syllabus, and evaluations to help learners build projects based on their interests and guide their own education while incorporating useful skills that are necessary for a career in software. If you are interested in learning to program, teach others, or act as a mentor then give this a listen and then get in touch with Nicholas to help make this endeavor a success. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, Corinium Global Intelligence. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today Nicholas Tollervey is back to talk about his work on CodeGrades, a new effort that he is building to blend his backgrounds in music, education, and software to help teach kids of all ages how to program. Interview Introductions How did you get introduced to Python? Can you start by describing what CodeGrades is and what motivated you to start this project? How does it differ from other approaches to teaching software development that you have encountered? Is there a particular age or level of background knowledge that you are targeting with the curriculum that you are developing? What are the criteria that you are measuring against and how does that criteria change as you progress in grade levels? For someone who completes the full set of levels, what level of capability would you expect them to have as a developer? Given your affiliation with the Python community it is understandable that you would target that language initially. What would be involved in adapting the curriculum, mentorship, and assessments to other languages? In what other ways can this idea and platform be adapted to accomodate other engineering skills? (e.g. system administration, statistics, graphic design, etc.) What interesting/exciting/unexpected outcomes and lessons have you found while iterating on this idea? For engineers who would like to be involved in the CodeGrades platform, how can they contribute? What challenges do you anticipate as you continue to develop the curriculum and mentor networks? How do you envision the future of CodeGrades taking ship in the medium to long term? Keep In Touch ntoll on GitHub Website @ntoll on Twitter Picks Tobias Parsy Nevermoor: The Trials of Morrigan Crow Nicholas Kivy Wittgenstein: The Duty Of Genious The Hitchhiker’s Guide To The Galaxy by Douglas Adams Links CodeGrades Blog Post C# .NET London IronPython Musical Grades Autodidact Lambda School How To Draw An Owl Dunder (double underscore) methods Duck Typing Impostor Syndrome Django Girls Mu Editor Baroque Music Chamber Music PyData Adafruit CircuitPython Podcast Interview PyPortal Hypercard Pypercard Kivy Podcast Interview Alan Turing The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/12/20191 hour, 4 minutes, 2 seconds
Episode Artwork

Build Your Own Knowledge Graph With Zincbase

Summary Computers are excellent at following detailed instructions, but they have no capacity for understanding the information that they work with. Knowledge graphs are a way to approximate that capability by building connections between elements of data that allow us to discover new connections among disparate information sources that were previously uknown. In our day-to-day work we encounter many instances of knowledge graphs, but building them has long been a difficult endeavor. In order to make this technology more accessible Tom Grek built Zincbase. In this episode he explains his motivations for starting the project, how he uses it in his daily work, and how you can use it to create your own knowledge engine and begin discovering new insights of your own. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Tom Grek about knowledge graphs, when they’re useful, and his project Zincbase that makes them easier to build Interview Introductions How did you get introduced to Python? Can you start by explaining what a knowledge graph is and some of the ways that they are used? How did you first get involved in the space of knowledge graphs? You have built the Zincbase project for building and querying knowledge graphs. What was your motivation for creating this project and what are some of the other tools that are available to perform similar tasks? Can you describe how Zincbase is implemented and some of the ways that it has evolved since you first began working on it? What are some of the assumptions that you had at the outset of the project which have been challenged or updated in the process of working on and with it? What are some of the common challenges when building or using knowledge graphs? How has the domain of knowledge graphs changed in recent years as new approaches to entity resolution and data processing have been introduced? Can you talk through a use case and workflow for using Zincbase to design and populate a knowledge graph? What are some of the ways that you are using Zincbase in your own projects? What have you found to be the most challenging/interesting/unexpected lessons that you have learned in the process of building and maintaining Zincbase? What do you have planned for the future of the project? Keep In Touch tomgrek on GitHub Website @tomgrek on Twitter LinkedIn Picks Tobias Banana Blueberry Oat Bars Tom Pickled Habañero Links Zincbase Commodore 64 Electronic Engineering Artificial Intelligence Primer.ai Artificial General Intelligence Matlab IPython NumPy Excel Jupyter Pandas Knowledge Graph Data Engineering Podcast Episode About Enigma Knowledge Graph The Matrix Keanu Reeves Ontology Semantic Web Word2Vec SparQL Neo4J Graph Database Data Engineering Podcast Episode About DGraph AWS Neptune PostgreSQL Data Engineering Podcast Episode Dask Data Engineering Podcast Episode BBC Micro BASIC Prolog NLP ELMO BERT GPT-2 Winograd Schema Challenge PyTorch BigGraph Ampligraph SpaCy Podcast.__init__ Episode AI Winter PyTorch Podcast Episode scikit-learn NetworkX SciPy CircleCI Read The Docs Podcast Episode Project Gutenberg Allen NLP Doctest Reinforcement Learning Metacognition The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/5/201948 minutes, 44 seconds
Episode Artwork

Docker Best Practices For Python In Production

Summary Docker is a useful technology for packaging and deploying software to production environments, but it also introduces a different set of complexities that need to be understood. In this episode Itamar Turner-Trauring shares best practices for running Python workloads in production using Docker. He also explains some of the security implications to be aware of and digs into ways that you can optimize your build process to cut down on wasted developer time. If you are using Docker, thinking about using it, or just heard of it recently then it is worth your time to listen and learn about some of the cases you might not have considered. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! To connect with the startups that are shaping the future and take advantage of the opportunities that they provide, check out Angel List where you can invest in innovative business, find a job, or post a position of your own. Sign up today at pythonpodcast.com/angel and help support this show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Itamar Turner-Trauring about what you need to know about running Python workloads in Docker Interview Introductions How did you get introduced to Python? For anyone who is unfamiliar with it, can you describe what Docker is and the benefits that it can provide? What was your motivation for dedicating so much time and energy to the specific area of using Docker for Python production usage? What are some of the common issues that developers and operations engineers run into when dealing with Docker and its build system? What are some of the issues that are specific to Python that you have run into when using Docker? How does the ecosystem for Python in containers compare to other languages that you are familiar with? What are some of the security issues that engineers are likely to run into when using some of the advice and pre-existing containers that are publicly available? One of the issues that you call out is the speed of container builds. What are some of the contributing factors that lead to such slow packaging times? Can you talk through some of the aspects of multi-layer packages and useful ways to take proper advantage of them? There have been some recent projects that attempt to work around the shortcomings of the Dockerfile itself. What are your thoughts on that overall effort and any specific tools that you have experimented with? When is Docker the wrong choice for a production environment? What are some useful alternatives to Docker, for Python specifically and for software distribution in general that you have had good luck with? Keep In Touch Website @itamarst on Twitter itamarst on GitHub Picks Tobias Shazam Movie Itamar Veronica Mars Links Itamar’s Best Practices Guide Docker Zope GitLab CI Heresy In The Church Of Docker Poetry Pipenv Dockerfile 40 Years of DSL Disasters (Slides) Ubuntu Debian Docker Layers Bitnami Alpine Linuxhttps://alpinelinux.org?utm_source=rss&utm_medium=rss PodMan Nix Heroku Buildpacks Itamar’s Docker Template Hashicorp Packer Rkt Solaris Zones BSD Jails PyInstaller Snap FlatPak Conda The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/29/201944 minutes
Episode Artwork

Protecting The Future Of Python By Hunting Black Swans

Summary The Python language has seen exponential growth in popularity and usage over the past decade. This has been driven by industry trends such as the rise of data science and the continued growth of complex web applications. It is easy to think that there is no threat to the continued health of Python, its ecosystem, and its community, but there are always outside factors that may pose a threat in the long term. In this episode Russell Keith-Magee reprises his keynote from PyCon US in 2019 and shares his thoughts on potential black swan events and what we can do as engineers and as a community to guard against them. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to grow your professional network and find opportunities with the startups that are changing the world then Angel List is the place to go. Go to pythonpodcast.com/angel to sign up today. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Upcoming events include the O’Reilly AI Conference, the Strata Data Conference, and the combined events of the Data Architecture Summit and Graphorum. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Russell Keith-Magee about potential black swans for the Python language, ecosystem, and community and what we can do about them Interview Introductions How did you get introduced to Python? Can you start by explaining what a Black Swan is in the context of our conversation? You were the opening keynote for PyCon this year, where you talked about some of the potential challenges facing Python. What motivated you to choose this topic for your presentation? What effect did your talk have on the overall tone and focus of the conversations that you experienced during the rest of the conference? What were some of the most notable or memorable reactions or pieces of feedback that you heard? What are the biggest potential risks for the Python ecosystem that you have identified or discussed with others? What is your overall sentiment about the potential for the future of Python? As developers and technologists, does it really matter if Python continues to be a viable language? What is your personal wish list of new capabilities or new directions for the future of the Python language and ecosystem? For listeners to this podcast and members of the Python community, what are some of the ways that we can contribute to the long-term success of the language? Keep In Touch BeeWare freakboy3742 on GitHub @freakboy3742 on Twitter Website Picks Tobias Jethro Tull Russell pytest-tldr pdbpp Links PyCon 2019 Keynote Presentation Perth Western Australia Django BeeWare RedHat Emacs Vim Lisp Glyph Twisted Cal Henderson Flickr Slack Black Swan Animal Book Metaphor Nassim Nicholas Taleb PyCon US Ewa Jodlowska Python Software Foundation Podcast Interview Swift JavaScript Django Girls Briefcase packaging tool PyPy Web Assembly (WASM) COBOL Tidelift Cricket unit test runner The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/22/201954 minutes, 35 seconds
Episode Artwork

A Modern Open Source Project Management Platform

Summary Project management is a discipline that has been through many incarnations, spawning an entire industry of businesses and tools. The challenge is to build a platform that is sufficiently powerful and adaptable to fit the workflow of your teams, while remaining opinionated enough to be useful. It also helps to have an open and extensible platform that can be customized as needed. In this episode Pablo Ruiz Múzquiz explains the motivation for creating the open source tool Taiga, how it compares to the other options in the market, and how you can use it for your own projects. He also discusses the challenges inherent to project management tools, his philosophies on what makes a project successful, and how to manage your team workflows to be most effective. It was helpful learning from Pablo’s long experience in the software industry and managing teams of various sizes. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Pablo Ruiz Múzquiz about Taiga, a project management platform for agile developers & designers and project managers who want a beautiful tool that makes work truly enjoyable Interview Introductions How did you get introduced to Python? Can you start by explaining what Taiga is and the reason for building it? Project management platforms have been available for a long time. Can you describe how Taiga fits into that market and what makes it stand out? Can you describe how you view project management and some of the unique challenges that it poses when building a tool for it? How do the requirements differ between project management for software teams vs other disciplines? How is Taiga implemented and how has the system design evolved since it was first started? For someone who is using Taiga can you talk through the features of the platform and how it fits into a typical workflow? How do you maintain a balance between usability and structure in managing project workflows against flexibility and customization? Within an engineering team how do you view the responsibility for driving and maintaining the lifecycle of a project? What are the most common points of friction within a project management workflow and how are you working to address them in Taiga? Onboarding and discovery for a new contributor in a given project is often painful. What are some steps that a project manager or product team can take to make that process more palatable? How has the landscape of project management practices and tools changed since you first began working on Taiga and how has that influenced your roadmap? What have been the most challenging or difficult aspects of building and growing the Taiga project and community? What lessons have you learned in the process that have been particularly valuable or unexpected? What are some of the most interesting/unexpected/innovative ways that you have seen Taiga used? When is Taiga the wrong choice for a given project or team? What do you have planned for the future of Taiga? Added by Pablo Why did you choose AGPLv3 for a license? How can Taiga integrate itself with other platforms that are typically used by teams? Keep In Touch @diacritica on Twitter LinkedIn Website Picks Tobias Marchway Hydration Pack Pablo Archery 3D Archery Links Taiga Madrid, Spain Traditional Archery Kaleidos Perl Monty Python Blender Agile Project Management Redmine Trac Agile Manifesto REST Django AngularJS Django REST Framework Scrum Kanban Taiga Mobile App Webhooks AGPLv3 FOSDEM Iocaine The Princess Bride Taiga Tribe Fedora Atlassian Jira Trello The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/15/20191 hour, 9 minutes, 5 seconds
Episode Artwork

Domain Driven Design For Python

Summary When your software projects start to scale it becomes a greater challenge to understand and maintain all of the pieces. In this episode Henry Percival shares his experiences working with domain driven design in large Python projects. He explains how it is helpful, and how you can start using it for your own applications. This was an informative conversation about software architecture patterns for large organizations and how they can be used by Python developers. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Harry Percival about domain driven design and enterprise application architecture in Python Interview Introductions How did you get introduced to Python? Can you start by explaining what "application architecture" is and how it compares to the types of application designs that Python developers and teams typically rely on? how does it contrast with "enterprise architecture"? What are the influences that tend to lead engineers into sub-optimal architectures and how can they guard against them? One of the core concepts in this problem space is that of "domain driven design". Can you unpack that term and explain the benefits that it provides to software architecture? What are some of the other concepts that are common among application architecture patterns? What are some of the common points of confusion among engineers who are first working with DDD? Is there any particular size or scope of project and organization that merits the approach of domain driven design or is it applicable even at small scales of complexity and team size? Now that we’ve convinced everyone that they should be using DDD can you talk through the steps involved in identifying and encapsulating the various implementation details that they will need to work through? How does that process change when dealing with an existing application as opposed to a "greenfield" project? How do Python language constructs and libraries impact the approach to implementation of application architecture patterns as compared to more traditional "enterprise" languages such as Java and C#? What are some of the architectural anti-patterns to watch out for when implementing DDD? On any given team, who is responsible for identifying and ensuring adherence to proper architectural principles? Are there any publicly visible projects that implement DDD which listeners can look at and learn from? To help Python developers in their efforts to learn and implement DDD and other aspects of enterprise architecture you have been working on a book. Can you talk about your motivation for that undertaking, what listeners can expect to learn when the read it, and any challenges that you have encountered in the process? What are some trends in terms of system design and architecture, or technology influences, that you are keeping an eye on? Keep In Touch @hjwp on Twitter hjwp on GitHub Website LinkedIn Picks Tobias Dragon Pearl by Yoon Ha Lee Harry Tremé Why We Sleep: Unlocking The Power Of Sleep and Dreams by Matthew Walker PhD Links MADE Obey The Testing Goat Python Anywhere XP (eXtreme Programming) Django Dive Into Python Domain Driven Design Design Patterns Gang Of Four Book MVC (Model View Controller) Microservices µCon "Uncle" Bob Martin Clean Architecture book Python LEAP Book Dependency Injection Inversion Of Control Test Pyramid Gary Bernhardt Podcast Interview Functional Core, Imperative Shell Harry’s Blog The "Blue" Book by Eric Evans Gartner Hype Cycle The Clean Architecture In Python by Leonardo Giordani DRY Python The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/8/201955 minutes, 41 seconds
Episode Artwork

Open Source Automated Machine Learning With MindsDB

Summary Machine learning is growing in popularity and capability, but for a majority of people it is still a black box that we don’t fully understand. The team at MindsDB is working to change this state of affairs by creating an open source tool that is easy to use without a background in data science. By simplifying the training and use of neural networks, and making their logic explainable, they hope to bring AI capabilities to more people and organizations. In this interview George Hosu and Jorge Torres explain how MindsDB is built, how to use it for your own purposes, and how they view the current landscape of AI technologies. This is a great episode for anyone who is interested in experimenting with machine learning and artificial intelligence. Give it a listen and then try MindsDB for yourself. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing George Hosu and Jorge Torres about MindsDB, a framework for streamlining the use of neural networks Interview Introductions How did you get introduced to Python? Can you start by explaining what MindsDB is and the problem that it is trying to solve? What was the motivation for creating the project? Who is the target audience for MindsDB? Before we go deep into MindsDB can you explain what a neural network is for anyone who isn’t familiar with the term? For someone who is using MindsDB can you talk through their workflow? What are the types of data that are supported for building predictions using MindsDB? How much cleaning and preparation of the data is necessary before using it to generate a model? What are the lower and upper bounds for volume and variety of data that can be used to build an effective model in MindsDB? One of the interesting and useful features of MindsDB is the built in support for explaining the decisions reached by a model. How do you approach that challenge and what are the most difficult aspects? Once a model is generated, what is the output format and can it be used separately from MindsDB for embedding the prediction capabilities into other scripts or services? How is MindsDB implemented and how has the design changed since you first began working on it? What are some of the assumptions that you made going into this project which have had to be modified or updated as it gained users and features? What are the limitations of MindsDB and what are the cases where it is necessary to pass a task on to a data scientist? In your experience, what are the common barriers for individuals and organizations adopting machine learning as a tool for addressing their needs? What have been the most challenging, complex, or unexpected aspects of designing and building MindsDB? What do you have planned for the future of MindsDB? Keep In Touch George Blog George3d6 on GitHub @Cerebralab2 on Twitter LinkedIn Jorge LinkedIn MindsDB Website @mindsdb on Twitter mindsdb on GitHub Picks Tobias Bose QuietComfort 25 noise cancelling headphones George Open CourseWare – Brain And Cognitive Sciences Cerebralab Blog Jorge Lightwood MKDocs with Google Material Templates Links MindsDB GitHub 3Blue1Brown – Neural Networks Think Bayes Backpropagation Reverse Automatic Differentiation Ludwig deep learning toolbox Lightwood Tensorflow PyTorch Podcast Interview Aerospike scikit-learn The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/1/201958 minutes, 10 seconds
Episode Artwork

Behind The Scenes At The Python Software Foundation

Summary One of the secrets of the success of Python the language is the tireless efforts of the people who work with and for the Python Software Foundation. They have made it their mission to ensure the continued growth and success of the language and its community. In this episode Ewa Jodlowska, the executive director of the PSF, discusses the history of the foundation, the services and support that they provide to the community and language, and how you can help them succeed in their mission. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Ewa Jodlowska about the Python Software Foundation and the role that it serves in the language and community Interview Introductions How did you get introduced to Python? Can you start by explaining what the PSF is for anyone who isn’t familiar with it? How did you get involved with the PSF and what is your current role? What was the motivation for creating the PSF? What are the primary responsibilities of the PSF? How has the scope and scale of the responsibilities for the PSF shifted in the years since its foundation? What is the relationship between the PSF and the language core developers? What are some reasons that someone would want to become a member of the PSF and what is involved in gaining membership? What are the challenges confronted by you and the PSF, currently and in the recent past? What are you most worried about and most proud of in the PSF, the core language, or the community? What challenges or changes do you foresee for the PSF in the near to medium future? What are some of the most interesting/unexpected/challenging lessons that you have learned while working with the PSF? How are the PSF and the PSU (Python Secret Underground) related? Outside of the PSF, how can the community contribute to the health and longevity of the language, its ecosystem, and its community? Keep In Touch Ewa @ewa_jodlowska on Twitter Email The Python Software Foundation Website @thepsf on Twitter Blog Picks Tobias Russell Keith-Magee PyCon 2019 Keynote Ewa Donate To The PSF Links The PSF Informix PHP PyCon PyLadies PyPI Denmark PSF Mission Statement ChiPy Brett Cannon PyCon 2018 Keynote Mozilla Open Source Support Fund The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/24/201937 minutes, 31 seconds
Episode Artwork

Algorithmic Trading In Python Using Open Tools And Open Data

Summary Algorithmic trading is a field that has grown in recent years due to the availability of cheap computing and platforms that grant access to historical financial data. QuantConnect is a business that has focused on community engagement and open data access to grant opportunities for learning and growth to their users. In this episode CEO Jared Broad and senior engineer Alex Catarino explain how they have built an open source engine for testing and running algorithmic trading strategies in multiple languages, the challenges of collecting and serving currrent and historical financial data, and how they provide training and opportunity to their community members. If you are curious about the financial industry and want to try it out for yourself then be sure to listen to this episode and experiment with the QuantConnect platform for free. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. The Python Software Foundation is the lifeblood of the community, supporting all of us who want to run workshops and conferences, run development sprints or meetups, and ensuring that PyCon is a success every year. They have extended the deadline for their 2019 fundraiser until June 30th and they need help to make sure they reach their goal. Go to pythonpodcast.com/psf today to make a donation. If you’re listening to this after June 30th of 2019 then consider making a donation anyway! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Jared Broad and Alex Catarino about QuantConnect, a platform for building and testing algorithmic trading strategies on open data and cloud resources Interview Introductions How did you get introduced to Python? Can you start by explaining what QuantConnect is and how the business got started? What is your mission for the company? I know that there are a few other entrants in this market. Can you briefly outline how you compare to the other platforms and maybe characterize the state of the industry? What are the main ways that you and your customers use Python? For someone who is new to the space can you talk through what is involved in writing and testing a trading algorithm? Can you talk through how QuantConnect itself is architected and some of the products and components that comprise your overall platform? I noticed that your trading engine is open source. What was your motivation for making that freely available and how has it influenced your design and development of the project? I know that the core product is built in C# and offers a bridge to Python. Can you talk through how that is implemented? How do you address latency and performance when bridging those two runtimes given the time sensitivity of the problem domain? What are the benefits of using Python for algorithmic trading and what are its shortcomings? How useful and practical are machine learning techniques in this domain? Can you also talk through what Alpha Streams is, including what makes it unique and how it benefits the users of your platform? I appreciate the work that you are doing to foster a community around your platform. What are your strategies for building and supporting that interaction and how does it play into your product design? What are the categories of users who tend to join and engage with your community? What are some of the most interesting, innovative, or unexpected tactics that you have seen your users employ? For someone who is interested in getting started on QuantConnect what is the onboarding process like? What are some resources that you would recommend for someone who is interested in digging deeper into this domain? What are the trends in quantitative finance and algorithmic trading that you find most exciting and most concerning? What do you have planned for the future of QuantConnect? Keep In Touch Jared LinkedIn @jaredbroad on Twitter Alex AlexCatarino on GitHub LinkedIn @AlexCatx on Twitter QuantConnect @QuantConnect on Twitter Website Picks Tobias Good Omens book and miniseries Jared Chernobyl HBO Series Alex The 100 Links QuantConnect LEAN algorithm engine Alpha Streams Google Spanner PyCharm Visual Studio Code IronPython NumPy SymPy Pandas PythonNet Tensorflow Keras Udemy The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/17/201950 minutes, 43 seconds
Episode Artwork

Web Application Development Entirely In Python With Anvil

Summary The knowledge and effort required for building a fully functional web application has grown at an accelerated rate over the past several years. This introduces a barrier to entry that excludes large numbers of people who could otherwise be producing valuable and interesting services. To make the onramp easier Meredydd Luff and Ian Davies created Anvil, a platform for full stack web development in pure Python. In this episode Meredydd explains how the Anvil platform is built and how you can use it to build and deploy your own projects. He also shares some examples of people who were able to create profitable businesses themselves because of the reduced complexity. It was interesting to get Meredydd’s perspective on the state of the industry for web development and hear his vision of how Anvil is working to make it available for everyone. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. The Python Software Foundation is the lifeblood of the community, supporting all of us who want to run workshops and conferences, run development sprints or meetups, and ensuring that PyCon is a success every year. They have extended the deadline for their 2019 fundraiser until June 30th and they need help to make sure they reach their goal. Go to pythonpodcast.com/psf today to make a donation. If you’re listening to this after June 30th of 2019 then consider making a donation anyway! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Meredydd Luff about Anvil, platform for building full stack web applications entirely in Python Interview Introductions How did you get introduced to Python? Can you start by explaining what Anvil is and the story of how and why you created it? Web applications come in a vast array of styles. What are the primary formats of web applications that Anvil supports building and what are its limitations? Are there certain categories of users that tend to gravitate toward Anvil? How do you approach user experience design and overall usability given the varied backgrounds of your customers? For someone who wants to use Anvil can you talk through a typical workflow and highlight the different components of the platform? Can you describe how Anvil itself is implemented and how it has evolved since you first began working on it? For the javascript transpilation, are you using an existing project such as Transcrypt or PyJS, or did you develop your own? Given that the Python dependencies on your servers are managed by how, how do you approach version upgrades to avoid breaking your customer’s applications? What are the main assumptions that you had going into the project and how have those assumptions been challenged or updated in the process of growing the business? What have been some of the biggest challenges that you have faced in the process of building and growing Anvil? What are some of the edge cases that you have run into while developing Anvil? (e.g. browser APIs, javascript <-> Python impedance mismatch, etc.) Can you talk through how you manage deployments of your customer’s applications? What are some of the features of Anvil that are often overlooked, under-utilized, or misunderstood which you think users would benefit from knowing about? What are some of the most interesting/innovative/unexpected ways that you have seen Anvil used? What are the limitations of Anvil and when is it the wrong choice? What do you have planned for the future of Anvil? Keep In Touch @meredydd on Twitter LinkedIn Website meredydd on GitHub Picks Tobias Pipx Meredydd Skulpt Python in the Browser implementations generally Links Anvil Delphi Visual Basic Human-Computer Interaction Amazon RDS (Relational Database Service) Bokeh Podcast Interview Plotly Raspberry Jam by the Raspberry Pi Foundation PyCharm Websockets Skulpt Comparing implementations of Python in the Browser on Python Tips Brython The Matrix Pyodide How Skulpt works (PyCon 2017 Lightning Talk) How Anvil’s autocompleter works (PyCon UK 2017 Lightning Talk) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/10/201957 minutes, 30 seconds
Episode Artwork

Building A Business On Serverless Technology

Summary Serverless computing is a recent category of cloud service that provides new options for how we build and deploy applications. In this episode Raghu Murthy, founder of DataCoral, explains how he has built his entire business on these platforms. He explains how he approaches system architecture in a serverless world, the challenges that it introduces for local development and continuous integration, and how the landscape has grown and matured in recent years. If you are wondering how to incorporate serverless platforms in your projects then this is definitely worth your time to listen to. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. With such an intuitive tool it’s easy to make sure that everyone in the business is on the same page. Podcast.init listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Coming up this fall is the combined events of Graphorum and the Data Architecture Summit. The agendas have been announced and super early bird registration for up to $300 off is available until July 26th, with early bird pricing for up to $200 off through August 30th. Use the code BNLLC to get an additional 10% off any pass when you register. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. The Python Software Foundation is the lifeblood of the community, supporting all of us who want to run workshops and conferences, run development sprints or meetups, and ensuring that PyCon is a success every year. They have extended the deadline for their 2019 fundraiser until June 30th and they need help to make sure they reach their goal. Go to pythonpodcast.com/psf2019 today to make a donation. If you’re listening to this after June 30th of 2019 then consider making a donation anyway! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Raghu Murthy from DataCoral about his experience building and deploying a personalized SaaS platform on top of serverless technologies Interview Introductions How did you get introduced to Python? Can you start by giving a brief overview of DataCoral? Before we get too deep can you share your definition of what types of technologies fall under the umbrella of "serverless"? How are you using serverless technologies at DataCoral? How has your usage evolved as your business and the underlying technologies have evolved? How do serverless technologies impact your approach to application architecture? What are some of the main benefits for someone to target services such as Lambda? What is your litmus test for determining whether a given project would be a good fit for a Function as a Service platform? What are the most challenging aspects of running code on Lambda? What are some of the major design differences between running on Lambda vs the more familiar server-oriented paradigms? What are some of the other services that are most commonly used alongside Function as as Service (e.g. Lambda) to build full featured applications? With serverless function platforms there is the cold start problem, can you explain what that means and some application design patterns that can help mitigate it? When building on cloud-based technologies, especially proprietary ones, local development can be a challenge. How are you handling that issue at DataCoral? In addition to development this new deployment paradigm upends some of the traditional approaches to CI/CD. How are you approaching testing and deployment of your services? How do you identify and maintain dependency graphs between your various microservices? In addition to deployment, it is also necessary to track performance characteristics and error events across service boundaries. How are you managing observability and alerting in your product? What are you most excited for in the serverless space that listeners should know about? Keep In Touch LinkedIn Medium Picks Tobias Avengers Endgame Raghu Golden State Warriors Links DataCoral Data Engineering Podcast Interview Perl Airflow Podcast Interview Serverless Computing DynamoDB Aurora SNS SQS Lambda S3 API Gateway EMR Apache Hive AWS Glue RedShift SnowflakeDB Hadoop Function As A Service Distributed Systems Conway’s Law SRE == Site Reliability Engineer Rollbar AWS Batch The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/4/201947 minutes, 13 seconds
Episode Artwork

A Data Catalog For Your PyData Projects

Summary One of the biggest pain points when working with data is getting is dealing with the boilerplate code to load it into a usable format. Intake encapsulates all of that and puts it behind a single API. In this episode Martin Durant explains how to use the Intake data catalogs for encapsulating source information, how it simplifies data science workflows, and how to incorporate it into your projects. It is a lightweight way to enable collaboration between data engineers and data scientists in the PyData ecosystem. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Martin Durant about Intake, a lightweight package for finding, investigating, loading and disseminating data Interview Introductions How did you get introduced to Python? Can you start by explaining what Intake is and the story behind its creation? Can you outline some of the other projects and products that intersect with the functionality of Intake and describe where it fits in terms of use case and capabilities? (e.g. Quilt Data, Arrow, Data Retriever) Can you describe the workflows for using Intake, both from the data scientist and the data engineer perspective? One of the persistent challenges in working with data is that of cataloging and discovery of what already exists. In what ways does Intake address that problem? Does it have any facilities for capturing and exposing data lineage? For someone who needs to customize their usage of Intake, what are the extension points and what is involved in building a plugin? Can you describe how Intake is implemented and how it has evolved since it first started? What are some of the most challenging, complex, or novel aspects of the Intake implementation? Intake focuses primarily on integrating with the PyData ecosystem (e.g. NumPy, Pandas, SciPy, etc.). What are some other communities that are, or could be, benefiting from the work being done on Intake? What are some of the assumptions that are baked into Intake that would need to be modified to make it more broadly applicable? What are some of the assumptions that were made going into this project that have needed to be reconsidered after digging deeper into the problem space? What are some of the most interesting/unexpected/innovative ways that you have seen Intake leveraged? What are your plans for the future of Intake? Keep In Touch martindurant on GitHub Website @martin_durant_ on Twitter Picks Tobias Ubersuggest SEO tool Links Intake Anaconda Dask Data Engineering Podcast Interview Fast Parquet IDL Space Telescope Institute Blaze Quilt Data Podcast Interview Arrow Data Retriever Podcast Interview Parquet Data Engineering Podcast Interview DataFrame Apache Spark Dremio Data Engineering Podcast Interview Dat Project – distributed peer-to-peer data sharing Data Engineering Podcast Interview GeoPandas XArray Solr Streamz PyViz S3FS The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/27/201950 minutes, 1 second
Episode Artwork

Hardware Hacking Made Easy With CircuitPython

Summary Learning to program can be a frustrating process, because even the simplest code relies on a complex stack of other moving pieces to function. When working with a microcontroller you are in full control of everything so there are fewer concepts that need to be understood in order to build a functioning project. CircuitPython is a platform for beginner developers that provides easy to use abstractions for working with hardware devices. In this episode Scott Shawcroft explains how the project got started, how it relates to MicroPython, some of the cool ways that it is being used, and how you can get started with it today. If you are interested in playing with low cost devices without having to learn and use C then give this a listen and start tinkering! 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Scott Shawcroft about CircuitPython, the easiest way to program microcontrollers Interview Introductions How did you get introduced to Python? Can you start by explaining what CircuitPython is and how the project got started? I understand that you work at Adafruit and I know that a number of their products support CircuitPython. What other runtimes do you support? Microcontrollers have typically been the domain of C because of the resource and performance constraints. What are the benefits of using Python to program hardware devices? With the wide availability of powerful computing platforms, what are the benefits of experimenting with microcontrollers and their peripherals? I understand that CircuitPython is a friendly fork of MicroPython. What have you changed in your version? How do you structure your development to avoid conflicts with the upstream project? What are some changes that you have contributed back to MicroPython? What are some of the features of CircuitPython that make it easier for users to interact with sensors, motors, etc.? CircuitPython provides an easy on-ramp for experimenting with hardware projects. Is there a point where a user will outgrow it and need to move to a different language or framework? What are some of the most interesting/innovative/unexpected projects that you have seen people build using CircuitPython? Are there any cases of someone building and shipping a production grade project in CircuitPython? What have been some of the most interesting/challenging/unexpected aspects of building and maintaining CircuitPython? What is in store for the future of the project? Keep In Touch @tannewt on Twitter Website tannewt on GitHub Picks Tobias Wings Of Fire book series Scott Brandon Sanderson The Wheel Of Time Series Mist Born Links Adafruit CircuitPython MicroPython Podcast Interview Microcontroller Arduino Microsoft MakeCode NodeBots Espruino I2C Hackspace Magazine Adafruit Blinka learn.adafruit.com Scott Hanselman Blog Post Reflow Oven Adafruit Crickit – Creative Robotics Platform Adabox Moore’s Law SparkFun DigiKey The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/20/201954 minutes, 5 seconds
Episode Artwork

Building A Privacy Preserving Voice Assistant

Summary Being able to control a computer with your voice has rapidly moved from science fiction to science fact. Unfortunately, the majority of platforms that have been made available to consumers are controlled by large organizations with little incentive to respect users’ privacy. The team at Snips are building a platform that runs entirely off-line and on-device so that your information is always in your control. In this episode Adrien Ball explains how the Snips architecture works, the challenges of building a speech recognition and natural language understanding toolchain that works on limited resources, and how they are tackling issues around usability for casual consumers. If you have been interested in taking advantage of personal voice assistants, but wary of using commercially available options, this is definitely worth a listen. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Adrien Ball about SNIPS, a set of technologies to make voice controlled systems that respect user’s privacy Interview Introductions How did you get introduced to Python? Can you start by explaining what the Snips is and how it got started? For someone who wants to use Snips can you talk through the onboarding proces? One of the interesting features of your platform is the option for automated training data generation. Can you explain how that works? Can you describe the overall architecture of the Snips platform and how it has evolved since you first began working on it? Two of the main components that can be used independently are the ASR (Automated Speech Recognition) and NLU (Natural Language Understanding) engines. Each of those have a number of competitors in the market, both open source and commercial. How would you describe your overall position in the market for each of those projects? I know that one of the biggest challenges in conversational interfaces is maintaining context for multi-step interactions. How is that handled in Snips? For the NLU engine, you recently ported it from Python to Rust. What was your motivation for doing so and how would you characterize your experience between the two languages? Are you continuing to maintain both implementations and if so how are you maintaining feature parity? How do you approach the overall usability and user experience, particularly for non-technical end users? How is discoverability handled (e.g. finding out what capabilities/skills are available) One of the compelling aspects of Snips is the ability to deploy to a wide variety of devices, including offline support. Can you talk through that deployment process, both from a user perspective and how it is implemented under the covers? What is involved in updating deployed models and keeping track of which versions are deployed to which devices? What is involved in adding new capabilities or integrations to the Snips platform? What are the limitations of running everything offline and on-device? When is Snips the wrong choice? In the process of building and maintaining the various components of Snips, what have been some of the most useful/interesting/unexpected lessons that you have learned? What have been the most challenging aspects? What are some of the most interesting/innovative/unexpected ways that you have seen the Snips technologies used? What is in store for the future of Snips? Keep In Touch LinkedIn adrienball on GitHub @adrien_ball on Medium @adrien_ball on Twitter Picks Tobias Chrome OS Adrien Google I/O Facebook F8 User Privacy Links Snips 2048 Game Smart Cities Raspberry Pi WikiData MQTT Google Assistant Amazon Alexa Microsoft Cortana Mozilla Common Voice Rust Language Snips Hermes messaging library The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/13/201956 minutes, 27 seconds
Episode Artwork

Hacking The Government With The USDS

Summary The U.S. government has a vast quantity of software projects across the various agencies, and many of them would benefit from a modern approach to development and deployment. The U.S. Digital Services Agency has been tasked with making that happen. In this episode the current director of engineering for the USDS, David Holmes, explains how the agency operates, how they are using Python in their efforts to provide the greatest good to the largest number of people, and why you might want to get involved. Even if you don’t live in the U.S.A. this conversation is worth listening to so you can see an interesting model of how to improve government services for everyone. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing David Holmes about his work at the US Digital Services organization Interview Introductions How did you get introduced to Python? Can you start by explaining what the USDS is and how you got involved with it? The terminology that is used around "Tours of Service" is interesting. Can you explain what that entails? relocation what if you have a house and career? Can you explain the model of how the USDS works? What is involved in staffing a new project? What is your typical toolkit, and how does that vary with the specific departments that you are working with? What are some of the most interesting projects that you and the team at USDS have worked on? What are some of the most challenging projects that you have been involved with? What are some projects that you hope to be asked to work on? Keep In Touch davideholmes on GitHub Picks Tobias Captain Marvel movie David Avengers: Endgame Game Of Thrones television series Links US Digital Services US Digital Services Job Application US Digital Services Projects 18F The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/7/201934 minutes, 3 seconds
Episode Artwork

Probabilistic Modeling In Python (And What That Even Means)

Summary Most programming is deterministic, relying on concrete logic to determine the way that it operates. However, there are problems that require a way to work with uncertainty. PyMC3 is a library designed for building models to predict the likelihood of certain outcomes. In this episode Thomas Wiecki explains the use cases where Bayesian statistics are necessary, how PyMC3 is designed and implemented, and some great examples of how it is being used in real 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Thomas Wiecki about PyMC3, a project for probabilistic programming in Python Interview Introductions How did you get introduced to Python? Can you start by explaining what probabilistic programming is? What is the PyMC3 project and how did you get involved with it? The opening line for the project README is packed with a slew of terms that are rather opaque to the lay-person. Can you unpack that a bit and discuss some of the ways that PyMC3 is used in real-world projects? How much knowledge of statistical modeling and Bayesian statistics is necessary to make effective use of PyMC3? Can you talk through an example use case for PyMC3 to illustrate how you would use it in a project? How does it compare to the way that you would approach the same problem in a deterministic or frequentist modeling framework? Can you describe how PyMC3 is implemented? There are a number of other projects that build on top of PyMC3, what are some that you find particularly interesting or noteworthy? What do you find to be the most useful features of PyMC3 and what are some areas that you would like to see it improved? What have been the most interesting/unexpected/challenging lessons that you have learned in the process of building and maintaining PyMC3? What is in store for the future of PyMC3? Keep In Touch PyMC GitHub Discourse Forum Thomas twiecki on GitHub @twiecki on Twitter Website Picks Tobias Fantastic Beasts And Where To Find Them Fantastic Beasts: The Crimes Of Grindelwald Thomas Hyperion by Dan Simmons The Mind Illuminated Links PyMC3 Quantopian University of Tubingen MatLab Probabilistic Modeling Probability Distribution A/B Testing Bayesian Statistics Beta Distribution Bernoulli Distribution P-Value Hamiltonian Monte Carlo sampling algorithm Metropolis Hastings Inference Algorithm Theano Bayesian Methods For Hackers by Cameron Davidson-Pilon Bayesian Analysis With Python by Osvaldo Martin Tensorflow MXNet deep learning framework PyTorch Tensorflow Probability BAMBI package to build generalized linear models PMProphet PyMC3 implementation of Facebook’s Prophet for timeseries prediction Exoplanet BEAT (Bayesian Earthquake Analysis Tool) PyMC3 in Google Summer of Code The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/29/201954 minutes, 49 seconds
Episode Artwork

Exploring Indico: A Full Featured Event Management Platform

Summary Managing an event is rife with inherent complexity that scales as you move from scheduling a meeting to organizing a conference. Indico is a platform built at CERN to handle their efforts to organize events such as the Computing in High Energy Physics (CHEP) conference, and now it has grown to manage booking of meeting rooms. In this episode Adrian Mönnich, core developer on the Indico project, explains how it is architected to facilitate this use case, how it has evolved since its first incarnation two decades ago, and what he has learned while working on it. The Indico platform is definitely a feature rich and mature platform that is worth considering if you are responsible for organizing a conference or need a room booking system for your office. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Adrian Mönnich about Indico, the effortless open-source tool for event organisation, archival and collaboration Interview Introductions How did you get introduced to Python? Can you start by describing what Indico is and how the project got started? What are some other projects which target a similar use case and what were they lacking that led to Indico being necessary? Can you talk through an example workflow for setting up and managing an event in Indico? How does the lifecycle change when working with larger events, such as PyCon? Can you describe how Indico is architected and how its design has evolved since it was first built? What are some of the most complex or challenging portions of Indico to implement and maintain? There are a lot of areas for exercising constraint resolution algorithms. Can you talk through some of the business logic of how that operates? Most of Indico is highly configurable and flexible. How do you approach managing sane defaults to prevent users getting overwhelmed when onboarding? What is your approach to testing given how complex the project is? What are some of the most interesting or unexpected ways that you have seen Indico used? What are some of the most interesting/unexpected lessons that you have learned in the process of building Indico? What do you have planned for the future of the project? Keep In Touch Indico Website GitHub IRC Adrian ThiefMaster on GitHub Picks Tobias Mortal Engines movie Adrian Virtual Reality Portal VR Links Indico Tornado Podcast Interview CERN High Energy Physics CHEP (Computing in High Energy Physics) conference ZODB PostgreSQL Data Engineering Podcast Interview SQLAlchemy Flask WSGI == Web Server Gateway Interface Mako Templates Jinja ReactJS Stripe Paypal Indico Introduction Video Reveal.js Mod_Python Zope Doodle LDAP == Lightweight Directory Access Protocol Daylight Saving Time Indico User Guide Py.Test Podcast Episode Selenium Flask Plugin Engine CERN Indico Plugins Linux Plumber’s Conference Open SUSE F-Strings The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/22/201953 minutes, 46 seconds
Episode Artwork

Exploring Python's Internals By Rewriting Them In Rust

Summary The CPython interpreter has been the primary implementation of the Python runtime for over 20 years. In that time other options have been made available for different use cases. The most recent entry to that list is RustPython, written in the memory safe language Rust. One of the added benefits is the option to compile to WebAssembly, offering a browser-native Python runtime. In this episode core maintainers Windel Bouwman and Adam Kelly explain how the project got started, their experience working on it, and the plans for the future. Definitely worth a listen if you are curious about the inner workings of Python and how you can get involved in a relatively new project that is contributing to new options for running 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host is Tobias Macey and today I’m interviewing Adam Kelly and Windel Bouwman about RusPython, a project to implement a new Python interpreter in Rust Interview Introduction How did you get introduced to Python? Can you start by explaining what Rust is for anyone who isn’t familiar with it? How did RustPython got started and what are your goals for the project? Can you discuss what is involved in implementing a fully compliant Python interpreter? What are some of the challenges that you face in replicating the capabilities of the CPython interpreter? Are you attempting to maintain bug parity? How much of the stdlib needs to be reimplemented? Can you compare and contrast the benefits of Rust vs C? Will the end result be compatible with libraries that rely on C extensions such as NumPy? What is the current state of the project? What are some of the notable missing features? Can you talk through your vision of how the WebAssembly support will manifest and the types of applications that it will enable? How much effort have you put into size optimization for the webassembly target to reduce client-side load time? Are there any existing options for minification of Python code so that it can be delivered to users with less bandwidth? What have been some of the most interesting/challenging/unexpected aspects of implementing a Python runtime? What do you have planned for the future of the project? What are the risks that you anticipate which could derail the project before it becomes production ready? Contact Info Windel windelbouwman on GitHub Website @windelbouwman on Twitter @[email protected] on Mastodon Adam cthulahoops on GitHub @cthulahoops on Twitter Picks Tobias Oysterhead Adam FZF fuzzy finder Windel TQDM Python progress bar Links RustPython Windel Presentation EuroPython Rust C++ Rust Memory Safety MicroPython Podcast Episode PyPy Ouroboros – Pure Python standard library WebAssembly lalrpop – Rust parser generator Rust Crates PickItUp in-browser Python game engine QuickSilver Game Engine PEP 441 JIT (Just-In-Time) Compilation The intro and outro music is from The Hug by The Freak Fandango Orchestra / CC BY-SA
4/15/201940 minutes, 28 seconds
Episode Artwork

Version Control For Your Machine Learning Projects

Summary Version control has become table stakes for any software team, but for machine learning projects there has been no good answer for tracking all of the data that goes into building and training models, and the output of the models themselves. To address that need Dmitry Petrov built the Data Version Control project known as DVC. In this episode he explains how it simplifies communication between data scientists, reduces duplicated effort, and simplifies concerns around reproducing and rebuilding models at different stages of the projects lifecycle. If you work as part of a team that is building machine learning models or other data intensive analysis then make sure to give this a listen and then start using DVC today. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Bots and automation are taking over whole categories of online interaction. Discover.bot is an online community designed to ​serve as a platform-agnostic digital space for bot developers and enthusiasts of all skill levels to learn from one another, share their stories, and move the conversation forward together. They regularly publish guides and resources to help you learn about topics such as bot development, using them for business, and the latest in chatbot news. For newcomers to the space they have the Beginners Guide To Bots that will teach you the basics of how bots work, what they can do, and where they are developed and published. To help you choose the right framework and avoid the confusion about which NLU features and platform APIs you will need they have compiled a list of the major options and how they compare. Go to pythonpodcast.com/discoverbot today to get started and thank them for their support of the show. You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Your host as usual is Tobias Macey and today I’m interviewing Dmitry Petrov about DVC, an open source version control system for machine learning projects Interview Introductions How did you get introduced to Python? Can you start by explaining what DVC is and how it got started? How do the needs of machine learning projects differ from other software applications in terms of version control? Can you walk through the workflow of a project that uses DVC? What are some of the main ways that it differs from your experience building machine learning projects without DVC? In addition to the data that is used for training, the code that generates the model, and the end result there are other aspects such as the feature definitions and hyperparameters that are used. Can you discuss how those factor into the final model and any facilities in DVC to track the values used? In addition to version control for software applications, there are a number of other pieces of tooling that are useful for building and maintaining healthy projects such as linting and unit tests. What are some of the adjacent concerns that should be considered when building machine learning projects? What types of metrics do you track in DVC and how are they collected? Are there specific problem domains or model types that require tracking different metric formats? In the documentation it mentions that the data files live outside of git and can be managed in external storage systems. I’m wondering if there are any plans to integrate with systems such as Quilt or Pachyderm that provide versioning of data natively and what would be involved in adding that support? What was your motivation for implementing this system in Python? If you were to start over today what would you do differently? Being a venture backed startup that is producing open source products, what is the value equation that makes it worthwile for your investors? What have been some of the most interesting, challenging, or unexpected aspects of building DVC? What do you have planned for the future of DVC? Keep In Touch dmpetrov on GitHub Blog @fullstackml on Twitter LinkedIn Picks Tobias Otter.ai Dmitry Go outside and get some fresh air Links DVC Iterative.ai Linear Regression Logistic Regression C++ Perl Git Version Control System Uber Michaelangelo Domino Data Lab Git LFS AUC == Area Under Curve metric for evaluating machine learning model performance Wes McKinney Interview PyTorch Podcast Interview Tensorflow TensorBoard MLFlow Quilt Data Data Engineering Podcast Episode Pachyderm Data Engineering Podcast Episode Apache Airflow Podcast Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/8/201944 minutes, 39 seconds
Episode Artwork

Building Scalable Ecommerce Sites On Saleor

Summary Ecommerce is an industry that has largely faded into the background due to its ubiquity in recent years. Despite that, there are new trends emerging and room for innovation, which is what the team at Mirumee focuses on. To support their efforts, they build and maintain the open source Saleor framework for Django as a way to make the core concerns of online sales easy and painless. In this episode Mirek Mencel and Patryk Zawadzki discuss the projects that they work on, the current state of the ecommerce industry, how Saleor fits with their technical and business strategy, and their predictions for the near future of digital sales. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Check out the Practical AI podcast from our friends at Changelog Media to learn and stay up to date with what’s happening in AI You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Your host as usual is Tobias Macey and today I’m interviewing Mirek Mencel and Patryk Zawadzki about their work at Mirumee, building ecommerce applications in Python, based on their open source framework Saleor Interview Introductions How did you get introduced to Python? Can you start by describing the types of projects that you work on at Mirumee and how the company got started? There are a number of libraries and frameworks that you build and maintain. What is your motivation for providing these components freely and how does that play into your overall business strategy? The most substantial project that you maintain is Saleor. Can you describe what it is and the story behind its creation? How does it compare to other ecommerce implementations in the Python space? If someone is agnostic to language and web framework, what would make them choose Saleor over other options that would be available to them? What are some of the most challenging aspects of building a successful ecommerce platform? How do the technical needs of an ecommerce site differ as it grows from small to medium and large scale? Which components of an online store are often overlooked? One of the common features of ecommerce sites that can drive substantial revenue is a well-built recommender system. What are some best practice strategies that you have discovered during your client work? What are some projects that you have seen built with Saleor that were particular interesting, innovative, or unexpected? What are your predictions for the future of the ecommerce industry? What do you have planned for the future of the Saleor framework and the Mirumee business? Keep In Touch Mirumee Website Github @mirumeelabs on Twitter Mirek @mirekmencel on Twitter mirekm on GitHub Patryk patrys on GitHub @patrys on Twitter Website Picks Tobias Wreck It Ralph: Ralph Breaks The Internet Mirek A Guide To The Good Life: The Ancient Art Of Stoic Joy by William B. Irvine Patryk Release It: Design And Deploy Production Ready Software by Michael Nygard Links Mirumee Saleor Django PHP Pyramid web framework Pylons Magento eCommerce platform Ecommerce Satchmo Satchless Prices library for handling price data French National Assembly Django Oscar Podcast Interview David Winterbottom Ebay Amazon Etsy Shopify Ariadne GraphQL framework for Python Graphene GraphQL framework for Python Podcast Interview Apollo JavaScript GraphQL framework PWA == Progressive Web Apps SKU == Stock Keeping Unit Collective Intelligence Elasticsearch Data Engineering Podcast Interview A/B Testing Room Lab store built on Saleor Augmented Reality WebGL Saleor Cloud ASGI Podcast Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/1/201958 minutes, 2 seconds
Episode Artwork

A Quick Python Check-in With Naomi Ceder

Summary Naomi Ceder was fortunate enough to learn Python from Guido himself. Since then she has contributed books, code, and mentorship to the community. Currently she serves as the chair of the board to the Python Software Foundation, leads an engineering team, and has recently completed a new draft of the Quick Python Book. In this episode she shares her story, including a discussion of her experience as a technical author and a detailed account of the role that the PSF plays in supporting and growing the community. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Check out the Practical AI podcast from our friends at Changelog Media to learn and stay up to date with what’s happening in AI You listen to this show to learn and stay up to date with what’s happening in databases, streaming platforms, big data, and everything else you need to know about modern data management. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with organizations such as O’Reilly Media, Dataversity, and the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Your host as usual is Tobias Macey and today I’m interviewing Naomi Ceder about her career and contributions in the Python community Interview Introductions How did you get introduced to Python? How are you using Python in your current day-to-day? You have been working with Python for a long time at this point, and you have become very involved in supporting and growing the community. What is your motivation for dedicating so much of your time and energy into work that isn’t directly related to paying the bills? You have been the chair of the PSF for a few years now. What are your responsibilities in that position? What do you find to be the most under-rated, misunderstood, or overlooked activities of the PSF? How much of the success of the Python language and its community can be attributed to the presence and support of the PSF? In addition to the work you do with the PSF, other community activities, and your day job, you have also written the 2nd and 3rd editions of the Quick Python Book. Can you give a synopsis of what the book covers and the audience that it is intended for? In the process of writing the book and updating it between revisions, what are some of the features of the language or standard library that you discovered or learned more about which you have been able to use in your work? What are some of the other language communities that you have been involved with and what lessons have you learned from them that you would like to see reflected in Python? What are some of the other projects that you have been involved with that you are most proud of, whether technical or otherwise? What are you most excited about in the near to medium future? Keep In Touch @NaomiCeder on Twitter Web Quick Python Book Get 40% off everything at Manning with code podinit19 at checkout Enter to win a free copy Picks Tobias Inkscape vector graphics editor Naomi La Casa de las Flores (House of Flowers) (Netflix) Links The Quick Python Book Dick Blick Art Materials The PSF @ThePSF on Twitter Manning Publishers PEP8 ETL Collections Module Turtle Library PyCon Hatchery PyCon Charlas Podcast Episode The GIL The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/25/201938 minutes, 32 seconds
Episode Artwork

Wes McKinney's Career In Python For Data Analysis

Summary Python has become one of the dominant languages for data science and data analysis. Wes McKinney has been working for a decade to make tools that are easy and powerful, starting with the creation of Pandas, and eventually leading to his current work on Apache Arrow. In this episode he discusses his motivation for this work, what he sees as the current challenges to be overcome, and his hopes for the future of the industry. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Check out the Practical AI podcast from our friends at Changelog Media to learn and stay up to date with what’s happening in AI You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with O’Reilly Media for the Strata conference in San Francisco on March 25th and the Artificial Intelligence conference in NYC on April 15th. Here in Boston, starting on May 17th, you still have time to grab a ticket to the Enterprise Data World, and from April 30th to May 3rd is the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Your host as usual is Tobias Macey and today I’m interviewing Wes McKinney about his contributions to the Python community and his current projects to make data analytics easier for everyone Interview Introductions How did you get introduced to Python? You have spent a large portion of your career on building tools for data science and analytics in the Python ecosystem. What is your motivation for focusing on this problem domain? Having been an open source author and contributor for many years now, what are your current thoughts on paths to sustainability? What are some of the common challenges pertaining to data analysis that you have experienced in the various work environments and software projects that you have been involved in? What area(s) of data science and analytics do you find are not receiving the attention that they deserve? Recently there has been a lot of focus and excitement around the capabilities of neural networks and deep learning. In your experience, what are some of the shortcomings or blind spots to that class of approach that would be better served by other classes of solution? Your most recent work is focused on the Arrow project for improving interoperability across languages. What are some of the cases where a Python developer would want to incorporate capabilities from other runtimes? Do you think that we should be working to replicate some of those capabilities into the Python language and ecosystem, or is that wasted effort that would be better spent elsewhere? Now that Pandas has been in active use for over a decade and you have had the opportunity to get some space from it, what are your thoughts on its success? With the perspective that you have gained in that time, what would you do differently if you were starting over today? You are best known for being the creator of Pandas, but can you list some of the other achievements that you are most proud of? What projects are you most excited to be working on in the near to medium future? What are your grand ambitions for the future of the data science community, both in and outside of the Python ecosystem? Do you have any parting advice for active or aspiring data scientists, or resources that you would like to recommend? Keep In Touch wesm on GitHub Website @wesmckinn on Twitter Picks Tobias Roald Dahl Wes The Soul Of A New Machine by Tracy Kidder Links Ursa Labs Pandas Podcast Interview with Jeff Reback Pandas Extension Arrays Interview with Tom Augsburger AQR Capital Management Distributed Computing SQL Excel Duke University AppNexus Chang She Ibis Open Source Governance Apache Software Foundation Paul Graham Schlep Blindness Big Data File Formats Avro Parquet ORC Data Engineering Podcast Episode Apache Arrow Hadoop Spark Data Engineering Podcast Episode Apache Impala R Language Ruby Rust Pandas 2.0 Design Docs Apache Arrow and the 10 Things I Hate About Pandas GeoPandas Statsmodels Python For Data Analysis by Wes McKinney 2 Sigma R Studio The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/18/201951 minutes, 44 seconds
Episode Artwork

The Past, Present, and Future of Deep Learning In PyTorch

Summary The current buzz in data science and big data is around the promise of deep learning, especially when working with unstructured data. One of the most popular frameworks for building deep learning applications is PyTorch, in large part because of their focus on ease of use. In this episode Adam Paszke explains how he started the project, how it compares to other frameworks in the space such as Tensorflow and CNTK, and how it has evolved to support deploying models into production and on mobile devices. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. And for your tasks that need fast computation, such as training machine learning models, they just launched dedicated CPU instances. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 Check out the Practical AI podcast from our friends at Changelog Media to learn and stay up to date with what’s happening in AI You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with O’Reilly Media for the Strata conference in San Francisco on March 25th and the Artificial Intelligence conference in NYC on April 15th. Here in Boston, starting on May 17th, you still have time to grab a ticket to the Enterprise Data World, and from April 30th to May 3rd is the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Your host as usual is Tobias Macey and today I’m interviewing Adam Paszke about PyTorch, an open source deep learning platform that provides a seamless path from research prototyping to production deployment Interview Introductions How did you get introduced to Python? Can you start by explaining what deep learning is and how it relates to machine learning and artificial intelligence? Can you explain what PyTorch is and your motivation for creating it? Why was it important for PyTorch to be open source? There is currently a large and growing ecosystem of deep learning tools built for Python. Can you describe the current landscape and how PyTorch fits in relation to projects such as Tensorflow and CNTK? What are some of the ways that PyTorch is different from Tensorflow and CNTK, and what are the areas where these frameworks are converging? How much knowledge of machine learning, artificial intelligence, or neural network topologies are necessary to make use of PyTorch? What are some of the foundational topics that are most useful to know when getting started with PyTorch? Can you describe how PyTorch is architected/implemented and how it has evolved since you first began working on it? You recently reached the 1.0 milestone. Can you talk about the journey to that point and the goals that you set for the release? What are some of the other components of the Python ecosystem that are most commonly incorporated into projects based on PyTorch? What are some of the most novel, interesting, or unexpected uses of PyTorch that you have seen? What are some cases where PyTorch is the wrong choice for a problem? What is the process for incorporating these new techniques and discoveries into the PyTorch framework? What are the areas of active research that you are most excited about? What are some of the most interesting/useful/unexpected/challenging lessons that you have learned in the process of building and maintaining PyTorch? What do you have planned for the future of PyTorch? Keep In Touch apaszke on GitHub @apaszke on Twitter LinkedIn Picks Tobias Un Lun Dun by China Miéville Adam In Praise Of Copying by Marcus Boon Links PyTorch University of Warsaw Poland Polish Olympiad In Informatics Deep Learning Automatic Differentiation Torch 7 Lua Tensorflow CNTK Tensorflow 2 Caffe2 EPFL (Ecole polytechnique fédérale de Lausanne) Fast.ai TorchScript ONNX Transfer Learning C++ Reinforcement Learning NumPy SciPy MatPlotLib The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/10/201942 minutes, 12 seconds
Episode Artwork

How To Include Redis In Your Application Architecture

Summary The Redis database recently celebrated its 10th birthday. In that time it has earned a well-earned reputation for speed, reliability, and ease of use. Python developers are fortunate to have a well-built client in the form of redis-py to leverage it in their projects. In this episode Andy McCurdy and Dr. Christoph Zimmerman explain the ways that Redis can be used in your application architecture, how the Python client is built and maintained, and how to use it in your 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss out on this year’s conference season. We have partnered with O’Reilly Media for the Strata conference in San Francisco on March 25th and the Artificial Intelligence conference in NYC on April 15th. Here in Boston, starting on May 17th, you still have time to grab a ticket to the Enterprise Data World, and from April 30th to May 3rd is the Open Data Science Conference. Go to pythonpodcast.com/conferences to learn more and take advantage of our partner discounts when you register. Your host as usual is Tobias Macey and today I’m interviewing Andy McCurdy and Christoph Zimmerman about the Redis database, and some of the various ways that it is used by Python developers Interview Introductions How did you get introduced to Python? Can you start by explaining what Redis is and how you got involved in the project? How does the redis-py project relate to the Redis database and what motivated you to create the Python client? What are some of the main use cases that Redis enables? Can you describe how Redis-py is implemented and some of the primitives that it provides for building applications on top of? How do the release cycles of redis-py and the Redis database relate to each other? How closely does redis-py match the features of the Redis database? What are some of the convenience methods or features that you have added to make the client more Pythonic? Redis is often used as a key/value cache for web applications, in some cases replacing Memcached. What are the characteristics of Redis that lend themselves well to this purpose? What are some edge cases or gotchas that users should be aware of? What are some of the common points of confusion or difficulties when storing and retrieving values in Redis? What have been some of the most challenging aspects of building and maintaining the Redis Python client? What are some of the anti-patterns that you have seen around how developers build on top of Redis? What are some of the most interesting or unexpected ways that you have seen Redis used? What are some of the least used or most misunderstood features of Redis that you think developers should know about? What are some of the recent and near-future improvements or features in Redis that you are most excited by? Keep In Touch Andy @andymccurdy on Twitter andymccurdy on GitHub Christoph chrisAtRedis on GitHub LinkedIn Picks Tobias Rowan Atkinson Andy The Food Lab: Better Home Cooking Through Science by J. Kenji Lopez-Alt Dota 2 Auto Chess (Community Mod) Christoph IPA Infused With Grapefruit Juice redis-py Selenium Python client Daniel Suarez Influx Links redis-py Redis DB Redis Labs PHP Django Reflective Operating System Architectures TCL Perl Linux Memcached NextCloud C programming language uWSGI Flask Gevent PyPy re-json redis-graph Redis-search MongoDB Bloom Filter hiredis Redis Sentinel HA plugin Lua programming language OpenWRT LuCI MicroPython Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/4/20191 hour, 1 minute, 10 seconds
Episode Artwork

Marshmallow Data Validation Library

Summary Any time that your program needs to interact with other systems it will have to deal with serializing and deserializing data. To prevent duplicate code and provide validation of the data structures that your application is consuming Steven Loria created the Marshmallow library. In this episode he explains how it is built, how to use it for rendering data objects to various serialization formats, and some of the interesting and unique ways that it is incorporated into other 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) 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 You listen to this show to learn and stay up to date with the ways that Python is being used, including the latest in machine learning and data analysis. For even more opportunities to meet, listen, and learn from your peers you don’t want to miss the Strata conference in San Francisco on March 25th and the Artificial Intelligence conference in NYC on April 15th, both run by our friends at O’Reilly Media. Go to pythonpodcast.com/stratacon and pythonpodcast.com/aicon to register today and get 20% off Your host as usual is Tobias Macey and today I’m interviewing Steven Loria about Marshmallow, a Python serialization library that is agnostic to your framework and object mapper of choice Interview Introductions How did you get introduced to Python? Can you start by describing what Marshmallow is and the history of the project? What are some of the capabilities that make it unique from other similar projects in the Python ecosystem? What are some of the main use cases for schematized serialization and deserialization? Can you walk through how a user would get started with Marshmallow, particularly for complex or nested schemas? Can you describe how Marshmallow is implemented? How has that design evolved since you first began working on it? How have the changes in the Python language and ecosystem impacted the requirements and use cases for Marshmallow? What are some of the most interesting or unexpected ways that you have seen Marshmallow used? What have been some of the most interesting, complex, or challenging aspects of building the Marshmallow project and community? What are lessons you’ve learned from maintaining marshmallow? What have been some of the benefits and drawbacks of keeping Marshmallow agnostic to any frameworks or object mappers? What are some of the edge cases that users of Marshmallow should be aware of? What are some of the little-known features of Marshmallow that you find most useful? What do you have planned for the future of Marshmallow? Keep In Touch Email Website @sloria1 on Twitter Picks Tobias Sherlock BBC tv series Steven Greater Than Code podcast Links Marshmallow Butterfly Network Biology ORM (Object Relational Mapper) ODM (Object Document Mapper) Webargs Avro Swagger/OpenAPI REST (REpresentational State Transfer) JSON-Schema Environs Django Rest Framework WTForms DynamoDB MongoDB Etsy’s boundary-layer for building Airflow DAGs from config files Airflow Podcast Episode Toasted Marshmallow Lyft Blog Post The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/25/201934 minutes, 4 seconds
Episode Artwork

Unpacking The Python Toolkit For Chaos Engineering

Summary Chaos engineering is the practice of injecting failures into your production systems in a controlled manner to identify weaknesses in your applications. In order to build, run, and report on chaos experiments Sylvain Hellegouarch created the Chaos Toolkit. In this episode he explains his motivation for creating the toolkit, how to use it for improving the resiliency of your systems, and his plans for the future. He also discusses best practices for building, running, and learning from your own experiments. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Sylvain Hellegouarch about Chaos Toolkit, a framework for building and automating chaos engineering experiments Interview Introductions How did you get introduced to Python? Can you start by explaining what Chaos Engineering is? What is the Chaos Toolkit and what motivated you to create it? How does it compare to the Gremlin platform? What is the workflow for using Chos Toolkit to build and run an experiment? What are the best practices for building a useful experiment? Once you have an experiment created, how often should it be executed? When running an experiment, what are some strategies for identifying points of failure, particularly if they are unexpected? What kinds of reporting and statistics are captured during a test run? Can you describe how Chaos Toolkit is implemented and how it has evolved since you began working on it? What are some of the most challenging aspects of ensuring that the experiments run via the Chaos Toolkit are safe and have a reliable rollback available? What have been some of the most interesting/useful/unexpected lessons that you have learned in the process of building and maintaining the Chaos Toolkit project and community? What do you have planned for the future of the project? Keep In Touch lawouach on GitHub Blog @lawouach on Twitter LinkedIn Picks Tobias Time Trap Sylvain Playing Guitar Step away from the computer Links Chaos Toolkit Chaos IQ Gremlin chaos engineering service Russ Miles Chaos IQ co-founder Zope CherryPy minimalist Python web framework Cherrypy Essentials book Chaos Engineering Chaos Engineering Book DevOps SRE (Site Reliability Engineering) Dark Debt Netflix Simian Army Chaos Monkey Terraform Kubecon Istio service mesh Chaos Platform PyInstaller Composition vs Inheritance Open Chaos Initiative CNCF The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/18/201959 minutes, 39 seconds
Episode Artwork

Computational Musicology For Python Programmers

Summary Music is a part of every culture around the world and throughout history. Musicology is the study of that music from a structural and sociological perspective. Traditionally this research has been done in a manual and painstaking manner, but the advent of the computer age has enabled an increase of many orders of magnitude in the scope and scale of analysis that we can perform. The music21 project is a Python library for computer aided musicology that is written and used by MIT professor Michael Scott Cuthbert. In this episode he explains how the project was started, how he is using it personally, professionally, and in his lectures, as well as how you can use it for your own exploration of musical analysis. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Michael Cuthbert about music21, a toolkit for computer aided musicology Interview Introductions How did you get introduced to Python? Can you start by explaining what computational musicology is? What is music21 and what motivated you to create it? What are some of the use cases that music21 supports, and what are some common requests that you purposefully don’t support? How much knowledge of musical notation, structure, and theory is necessary to be able to work with music21? Can you talk through a typical workflow for doing analysis of one or more pieces of existing music? What are some of the common challenges that users encounter when working with it (either on the side of Python or musicology/musical theory)? What about for doing exploration of new musical works? As a professor at MIT, what are some of the ways that music21 has been incorporated into your classroom? What have they enjoyed most about it? How is music21 implemented, and how has its structure evolved since you first started it? What have been the most challenging aspects of building and maintaining the music21 project and community? What are some of the most interesting, unusual, or unexpected ways that you have seen music21 used? What are some analyses that you have performed which yielded unexpected results? What do you have planned for the future of music21? Beyond computational analysis of musical theory, what are some of the other ways that you are using Python in your academic and professional pursuits? Keep In Touch mscuthbert on GitHub @mscuthbert on Twitter Picks Tobias Mozart’s Requiem performed by Berlin Philharmonik and conducted by Claudio Abbado Michael von Karajan Institute – Karajan was a major conductor of the 60s — his Institute now sponsors research into new projects in music technology and are big advocates of using Python for their data analysis. Ruth Crawford Seeger, String Quartet (1931) performed by The Playground Ensemble Links music21 Studies in Western Music History: Quantitative and Computational Approaches to Music History on MIT Open Courseware MIT Perl National Bureau of Economic Research Zen of Python Musicology Matplotlib Orange Podcast Episode scikit-learn Abjad Python Package SciPy numpy Pandas Podcast Episode PyLevenshtein Levenshtein Distance PyGame AVL Tree Subversion (SVN) Bach Chorales Artusi.xyz Interactive Music Theory VexFlow MIT Digital Humanities NLTK Flask Fortran Django Humdrum The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/11/201947 minutes, 48 seconds
Episode Artwork

Classic Computer Science For Pythonistas

Summary Software development is a career that attracts people from all backgrounds, and Python in particular helps to make it an approachable occupation. Because of the variety of paths that can be taken it is becoming increasingly common for practitioners to bypass the traditional computer science education. In this episode David Kopec discusses some of the classic problems that he has found most useful to understand in his work as a professor and practitioner of software engineering. He shares his motivation for writing the book "Classic Computer Science Problems In Python", the practical approach that he took, and an overview of how the contents can be used in your day-to-day work. 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing David Kopec about his recent book "Classic Computer Science Problems In Python" Interview Introductions How did you get introduced to Python? Can you start by discussing your motivation for creating this book and the subject matter that it covers? How do you define a "classic" computer science problem and what was your criteria for selecting the specific cases that you included in the book? What are your favorite features of the Python language, and which of them did you learn as part of the process of writing the examples for this book? Which classes of problems have you found to be most difficult for your readers and students to master? Which do you consider to be most relevant/useful to professional software engineers? I was pleasantly surprised to see introductory aspects of artificial intelligence included in the subject matter that you covered. How did you approach the challenge of making the underlying principles accessible to readers who don’t necessarily have a background in the related fields of mathematics? What are some of the most interesting or unexpected changes that you had to make in the process of adapting your examples from Swift to Python in order to make them appropriately idiomatic? By aiming for an intermediate audience you free yourself of the need to incorporate fundamental aspects of programming, but there can be a wide variety of experiences at that level of experience. How did you approach the challenge of making the text accessible while still being accurate and engaging? What are some of the resources that you would recommend to readers who would like to continue learning about computer science after completing your book? Keep In Touch @davekopec on Twitter Website Book Discount And Giveaway Use code podinit19 to get 40% off all Manning products Picks Tobias Elementor David nesdev The Curse of Oak Island Links Classic Computer Science Problems in Python Classic Computer Science Problems in Swift Dart For Absolute Beginners Dart Swift Manning Publications Apress Python Data Classes Python Type Hints Recursion A* Search Algorithm Neural Network Champlain College Burlington, VT, USA HyperLoop Data Structures And Algorithms In Python by Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser MyPy Podcast Interview PyTorch Minimax Dartmouth College Big O Notation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/4/201947 minutes, 28 seconds
Episode Artwork

What You Need To Know About Open Source Licenses And Intellectual Property

Summary As a developer and user of open source code, you interact with software and digital media every day. What is often overlooked are the rights and responsibilities conveyed by the intellectual property that is implicit in all creative works. Software licenses are a complicated legal domain in their own right, and they can often conflict with each other when you factor in the web of dependencies that your project relies on. In this episode Luis Villa, Co-Founder of Tidelift, explains the catagories of software licenses, how to select the right one for your project, and what to be aware of when you contribute to someone else’s 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Luis Villa about software licensing and intellectual property rules that developers need to know Interview Introductions How did you get started as a programmer? Intellectual property law and licensing of software, data, and media are complicated topics that are often poorly understood by developers. Can you start off by giving an overview of categories of intellectual property that we should be thinking of? Most of us who have created or used software, whether it is open or closed source, have at some point come across various licenses. What may not be immediately obvious is that there are degrees of compatibility between these licenses. What are some guiding principles for determining which licenses are in conflict? In an organization, who is responsible for ensuring compliance with software and content licensing within a given project? When introducing new dependencies into a project or system what steps should be taken to evaluate license compatibility and compliance? When creating a new project, one of the steps in the process is to select a license. What are some useful guidelines or questions to determine which license to use? Another aspect of software licensing that developers might run into is when contributing to an open source project where a contributor license agreement might be necessary. What should we be thinking about when deciding whether to sign such an agreement? In addition to software libraries, developers might need to use content such as images, audio, or video in their projects which have their own copyright and licensing considerations. What are some of the things that we should be looking for in those situations? Another component of our systems that has grown in its importance with the rise of advanced analytics is data. We may need to use open data sources, pay for access to data repositories, or provide access to data that is under our control. What are some common approaches to licensing or terms of use for these contexts? What should we be wary of when using or providing data in our applications? How much of the work that you do at Tidelift is spent on educating developers and customers on the finer points of intellectual property management? What are some of the most common difficulties or points of confusion that you encounter? What are some useful resources that you would recommend to anyone who is interested in learning more about intellectual property and software licensing? Keep In Touch Website @luis_in_140 on Twitter LinkedIn Picks Tobias Spider Man: Into The Spiderverse Luis The Good Place Twitter and Teargas by Zeynep Tufecki Links Intellectual Property and Open Source: A Practical Guide To Protecting Code by Van Lindberg Tidelift BASIC Apple //e Copyright Trademark Patent Copyleft OSI Approved Licenses Permissive Licenses Strong and Weak Copyleft SSPL (Server Side Public License) OSI (Open Source Initiative) Contributor License Agreement FSF (Free Software Foundation) DCO (Developer Certificate of Origin) Creative Commons Noun Project Free Music Archive Wikimedia Commons TL;DR Legal The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/28/20191 hour, 2 minutes, 58 seconds
Episode Artwork

Counteracting Code Complexity With Wily

Summary As we build software projects, complexity and technical debt are bound to creep into our code. To counteract these tendencies it is necessary to calculate and track metrics that highlight areas of improvement so that they can be acted on. To aid in identifying areas of your application that are breeding grounds for incidental complexity Anthony Shaw created Wily. In this episode he explains how Wily traverses the history of your repository and computes code complexity metrics over time and how you can use that information to guide your refactoring efforts. Preface 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Anthony Shaw about Wily, a command-line application for tracking and reporting on complexity of Python tests and applications Interview Introductions How did you get introduced to Python? Can you start by describing what Wily is and what motivated you to create it? What is software complexity and why should developers care about it? What are some methods for measuring complexity? I know that Python has the McCabe tool, but what other methods are there for determining complexity, both in Python and for other languages? What kinds of useful signals can you derive from evaluating historical trends of complexity in a codebase? What are some other useful metrics for tracking and maintaining the health of a software project? Once you have established the points of complexity in your software, what are some strategies for remediating it? What are your favorite tools for refactoring? What are some of the aspects of developer-oriented tools that you have found to be most important in your own projects? What are your plans for the future of Wily, or any other tools that you have in mind to aid in producing healthy software? Keep In Touch anthonywritescode on GitHub @anthonypjshaw on Twitter Website Medium Picks Tobias Baobab Impractical Jokers Anthony Line Of Duty Fierce Girls Links Wily Dimension Data Pluralsight Real Python Seattle C# Cyclomatic Complexity McCabe Git C Assembly Halstead Radon The Zen Of Python Vocabulary Metric Java Anti Patterns God Object Pre-Commit Codeclimate Glom ASQ PyCharm PyDocStyle PyLint Black Sunburst Chart Visual Studio Code The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/21/201936 minutes, 17 seconds
Episode Artwork

Teaching Digital Archaeology With Jupyter Notebooks

Summary Computers have found their way into virtually every area of human endeavor, and archaeology is no exception. To aid his students in their exploration of digital archaeology Shawn Graham helped to create an online, digital textbook with accompanying interactive notebooks. In this episode he explains how computational practices are being applied to archaeological research, how the Online Digital Archaeology Textbook was created, and how you can use it to get involved in this fascinating area of research. Introduction 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 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And don’t forget to thank them for their continued support of this show! And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Shawn Graham about his work on the Online Digital Archaeology Textbook Interview Introductions How did you get introduced to Python? Can you start by explaining what digital archaeology is? To facilitate your teaching you have collaborated on the O-DATE textbook and associated Jupyter notebooks. Can you describe what that resource covers and how the project got started? What have you found to be the most critical lessons for your students to help them be effective archaeologists? What are the most useful aspects of leveraging computational techniques in an archaeological context? Can you describe some of the sources and formats of data that would commonly be encountered by digital archaeologists? The notebooks that accompany the text have a mixture of R and Python code. What are your personal guidelines for when to use each language? How have the skills and tools of software engineering influenced your views and approach to research and education in the realm of archaeology? What are some of the most novel or engaging ways that you have seen computers applied to the field of archaeology? What are your goals and aspirations for the O-DATE project? Keep In Touch Blog @electricarchaeo on Twitter Picks Tobias TaoTronics Noise Cancelling Earbuds Shawn Ian Rankin In A House Of Lies Links O-DATE Textbook Carleton University Ottawa Canada Simulation Modeling Agent Based Modeling NetLogo Complexity Theory Archaeology Digital Archaeology The Programming Historian University of Western Ontario Historical GIS ArcGIS QGIS Digital Humanities Project Jupyter Podcast Episode Binder – Service for hosting Jupyter notebooks E-Campus Ontario Graph Databases SparQL OpenContext.org TDAR (The Digital Archaeology Record) R Language R OpenSci Arrow Pandas Podcast Episode Neural Networks Generative Adversarial Networks Computer Vision Archaeogaming Alamagordo Atari Excavation Leiden University Interactive Pasts Conference Photogrammetry LIDAR Palmyran Arch Ben Marwick Matt Harris Jolene Smith Sara Perry Rachel Opitz Colleen Morgan Patrick Burns Ethan Watrall Andrew Reinhard Neha Gupta Katherine Cook Value Foundation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/14/201949 minutes, 35 seconds
Episode Artwork

Analyzing Satellite Image Data Using PyTroll

Summary Every day there are satellites collecting sensor readings and imagery of our Earth. To help make sense of that information, developers at the meteorological institutes of Sweden and Denmark worked together to build a collection of Python packages that simplify the work of downloading and processing satellite image data. In this episode one of the core developers of PyTroll explains how the project got started, how that data is being used by the scientific community, and how citizen scientists like you are getting involved. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Martin Raspaud about PyTroll, a suite of projects for processing earth observing satellite data Interview Introductions How did you get introduced to Python? Can you start by explaining what PyTroll is and how the overall project got started? What is the story behind the name? What are the main use cases for PyTroll? (e.g. types of analysis, research domains, etc.) What are the primary types of data that would be processed and analayzed with PyTroll? (e.g. images, sensor readings, etc.) When retrieving the data, are you communicating directly with the satellites, or are there facilities that fetch the information periodically which you can then interface with? How do you locate and select which satellites you wish to retrieve data from? What are the main components of PyTroll and how do they fit together? For someone processing satellite data with PyTroll, can you describe the workflow? What are some of the main data formats that are used by satellites? What tradeoffs are made between data density/expressiveness and bandwidth optimization? What are some of the common issues with data cleanliness or data integration challenges? Once the data has been retrieved, what are some of the types of analysis that would be performed with PyTroll? Are there other tools that would commonly be used in conjunction with PyTroll? What are some of the unique challenges posed by working with satellite observation data? How has the design and capability of the various PyTroll packages evolved since you first began working on it? What are some of the most interesting or unusual ways that you have seen PyTroll used? What are some of the lessons that you have learned while building PyTroll that you have found to be most useful or unexpected? What do you have planned for the future of PyTroll? Keep In Touch Martin mraspaud on GitHub @MartinRaspaud on Twitter Pytroll Website Slack Mailing List @PyTroll on Twitter Picks Tobias Tool A Perfect Circle Martin Vulfpeck Links PyTroll Swedish Meteorological and Hydrological Institute Common Lisp Danish Meteorological Institute Trolls in Scandinavian Lore NumPy KISS (Keep It Simple Stupid) Spectroscopy Radiance Polar Orbiting Satellite Geostationary Satellite EUMETSAT SatPy PyResample Cartographic Projection Proj4 GOES16 [GOES17](https://en.wikipedia.org/wiki/GOES-17?utmsource=rss&utmmedium=rss Dask Data Engineering Podcast Episode NetCDF HDF5 PySpectral PyCoast SupervisorD TrollCast European Space Agency The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/7/201943 minutes, 57 seconds
Episode Artwork

Building GraphQL APIs in Python Using Graphene with Syrus Akbary

Summary The web has spawned numerous methods for communicating between applications, including protocols such as SOAP, XML-RPC, and REST. One of the newest entrants is GraphQL which promises a simplified approach to client development and reduced network requests. To make implementing these APIs in Python easier, Syrus Akbary created the Graphene project. In this episode he explains the origin story of Graphene, how GraphQL compares to REST, how you can start using it in your applications, and how he is working to make his efforts sustainable. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Syrus Akbary about Graphene, a python library for building your APIs with GraphQL Interview Introductions How did you get introduced to Python? What is GraphQL and what is the benefit vs a REST-based API? How does it compare to specifications such as OpenAPI (formerly Swagger) or RAML? Can you explain what Graphene is and your motivation for building it? In addition to the Python implementation there is also a JavaScript library. Is that primarily for use as a client or can it also be used in Node for serving APIs? What is involved in building a GraphQL API? What does Graphene do to simplify this process? How is Graphene implemented and how has that evolved since you first started working on it? Is there a set of tests for verifying the compliance of Graphene or a specific API with the GraphQL specification? What are some of the most complex or confusing aspects of building a GraphQL API? What are some of the unique capabilities that are offered by building an application with GraphQL as the communication interface? While reading through documentation in preparation for our conversation I noticed the Quiver project. Can you explain what that is and how it fits with the other Graphene projects? What is it doing under the hood to optimize serving of the API? For someone who is interested in adding a GraphQL interface to an existing application, what would be involved? The documentation mentions creation of a schema, as well as defining queries. Is it possible for a client to craft queries that don’t match directly with those defined in the server layer? What are some of the most interesting or surprising uses of Graphene and GraphQL that you have seeen? What are some cases where it would be more practical to implement an API using REST instead of GraphQL? What are some references that you would recommend for anyone who wants to learn more about GraphQL and its ecosystem? What are your plans for the future of Graphene? Keep In Touch syrusakbary on GitHub Website @syrusakbary on Twitter Picks Tobias Audible Syrus Web Assembly Links Graphene GraphQL REST (REpresentational State Transfer OpenAPI RAML PHP Facebook Engineering Graphene-SQLAlchemy Graphene-Django GraphiQL PyJade Django Rest Framework How To GraphQL Python 3.7 Dataclasses Graphene GitHub Issue The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/31/201852 minutes, 48 seconds
Episode Artwork

AIORTC: An Asynchronous WebRTC Framework with Jeremy Lainé

Summary Real-time communication over the internet is an amazing feat of modern engineering. The protocol that powers a majority of video calling platforms is WebRTC. In this episode Jeremy Lainé explains why he wrote a Python implementation of this protocol in the form of AIORTC. He also discusses how it works, how you can use it in your own projects, and what he has planned for the future. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Jeremy Lainé about AIORTC, an asynchronous implementation of the WebRTC and ObjectRTC protocols in Python Interview Introductions How did you get introduced to Python? Can you start by explaining what the WebRTC and ObjectRTC protocols are? What are some of the main use cases for these protocols? What is AIORTC and what was your motivation for creating it? How does it compare to other implementations of the RTC protocols? Why do you think there haven’t been any other Python implementations? What are some of the benefits of having a Python implementation of the RTC protocol? How is AIORTC implemented? What have been some of the most difficult or challenging aspects of implementing a WebRTC compliant library? What are some of the most interesting or useful lessons that you have learned in the process? What is involved in building an application on top of AIORTC? What would be required to integrate AIORTC into an existing application built with something such as Flask or Django? What are some of the most interesting uses of AIORTC that you have seen? What are some of the projects that you would like to build with AIORTC? What are some cases where it would make more sense to use a different library or framework for your WebRTC projects? What are your plans for the future of AIORTC? Keep In Touch jlaine on GitHub Website @JeremyLaine on Twitter Picks Tobias Tengger Cavalry Jeremy PyAV Mike Boers Links AIORTC WebRTC Electrical Engineering [C](https://en.wikipedia.org/wiki/C(programminglanguage)?utmsource=rss&utmmedium=rss C++ PHP Ruby STUN (Session Traversal Utilities for NAT) TURN (Traversal Using Relays around NAT) ICE (Internet Connectivity Establishment) TLS (Transport Layer Security) RTP (Real-time Transport Protocol) Zencastr Jitsi RawRTC AsyncIO AIOICE Cryptography Podcast.init Episode OpenCV PyAV FFMPEG Edge Detection Asterisk Raspberry Pi Datagram Transport Security Mozilla Augmented Reality The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/24/201840 minutes, 50 seconds
Episode Artwork

Polyglot: Multi-Lingual Natural Language Processing with Rami Al-Rfou

Summary Using computers to analyze text can produce useful and inspirational insights. However, when working with multiple languages the capabilities of existing models are severely limited. In order to help overcome this limitation Rami Al-Rfou built Polyglot. In this episode he explains his motivation for creating a natural language processing library with support for a vast array of languages, how it works, and how you can start using it for your own projects. He also discusses current research on multi-lingual text analytics, how he plans to improve Polyglot in the future, and how it fits in the Python ecosystem. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Rami Al-Rfou about Polyglot, a natural language pipeline with support for an impressive amount of languages Interview Introductions How did you get introduced to Python? Can you start by describing what Polyglot is and your reasons for starting the project? What are the types of use cases that Polyglot enables which would be impractical with something such as NLTK or SpaCy? A majority of NLP libraries have a limited set of languages that they support. What is involved in adding support for a given language to a natural language tool? What is involved in adding a new language to Polyglot? Which families of languages are the most challenging to support? What types of operations are supported and how consistently are they supported across languages? How is Polyglot implemented? Is there any capacity for integrating Polyglot with other tools such as SpaCy or Gensim? How much domain knowledge is required to be able to effectively use Polyglot within an application? What are some of the most interesting or unique uses of Polyglot that you have seen? What have been some of the most complex or challenging aspects of building Polyglot? What do you have planned for the future of Polyglot? What are some areas of NLP research that you are excited for? Keep In Touch Picks Tobias Duolingo Rami The Wizard and the Prophet: Two Remarkable Scientists and Their Dueling Visions to Shape Tomorrow’s World by Charles C. Mann Links Polyglot Polyglot-NER Jordan NLP (Natural Language Processing) Stony Brook University Arabic Sentiment Analysis Assembly Language C .NET Stack Overflow Deep Learning Word Embedding Wikipedia Word2Vec NLTK (Python Natural Language Toolkit) SpaCy Podcast Episode Gensim Podcast Episode Morphology Morpheme Transfer Learning Read The Docs BERT (Bidirectional Encoder Representations from Transformers) FastText data.world Data Engineering Podcast Episode Quilt package management for data Data Engineering Podcast Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/17/201843 minutes, 41 seconds
Episode Artwork

Gnocchi: A Scalable Time Series Database For Your Metrics with Julien Danjou

Summary Do you know what your servers are doing? If you have a metrics system in place then the answer should be “yes”. One critical aspect of that platform is the timeseries database that allows you to store, aggregate, analyze, and query the various signals generated by your software and hardware. As the size and complexity of your systems scale, so does the volume of data that you need to manage which can put a strain on your metrics stack. Julien Danjou built Gnocchi during his time on the OpenStack project to provide a time oriented data store that would scale horizontally and still provide fast queries. In this episode he explains how the project got started, how it works, how it compares to the other options on the market, and how you can start using it today to get better visibility into your operations. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to pythonpodcast.com/linode to get a $20 credit and launch a new server in under a minute. And to keep track of how your team is progressing on building new features and squashing bugs, you need a project management system designed by software engineers, for software engineers. Clubhouse lets you craft a workflow that fits your style, including per-team tasks, cross-project epics, a large suite of pre-built integrations, and a simple API for crafting your own. Podcast.__init__ listeners get 2 months free on any plan by going to pythonpodcast.com/clubhouse today and signing up for a trial. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at pythonpodcast.com/chat Your host as usual is Tobias Macey and today I’m interviewing Julien Danjou about Gnocchi, an open source time series database built to handle large volumes of system metrics Interview Introductions How did you get introduced to Python? Can you start by describing what Gnocchi is and how the project got started? What was the motivation for moving Gnocchi out of the Openstack organization and into its own top level project? The space of time series databases and metrics as a service platforms are both fairly crowded. What are the unique features of Gnocchi that would lead someone to deploy it in place of other options? What are some of the tools and platforms that are popular today which hadn’t yet gained visibility when you first began working on Gnocchi? How is Gnocchi architected? How has the design changed since you first started working on it? What was the motivation for implementing it in Python and would you make the same choice today? One of the interesting features of Gnocchi is its support of resource history. Can you describe how that operates and the types of use cases that it enables? Does that factor into the multi-tenant architecture? What are some of the drawbacks of pre-aggregating metrics as they are being written into the storage layer (e.g. loss of fidelity)? Is it possible to maintain the raw measures after they are processed into aggregates? One of the challenging aspects of building a scalable metrics platform is support for high-cardinality data. What sort of labelling and tagging of metrics and measures is available in Gnocchi? For someone who wants to implement Gnocchi for their system metrics, what is involved in deploying, maintaining, and upgrading it? What are the available integration points for extending and customizing Gnocchi? Once metrics have been stored, aggregated, and indexed, what are the options for querying and analyzing the collected data? When is Gnocchi the wrong choice? What do you have planned for the future of Gnocchi? Keep In Touch jd on GitHub Website @juldanjou on Twitter Picks Tobias Marketplace Podcast Julien Mergify Links Gnocchi RedHat OpenStack Object Oriented Programming O’Reilly Debian Ceilometer Prometheus Time Series MySQL Gerrit Zuul Podcast Episode GitHub GitLab Graphite Podcast Episode DataDog RabbitMQ InfluxDB Ceph Podcast Episode S3 OpenStack Swift Cassandra Honeycomb Observability Service Podcast Episode AMQP Redis DSL (Domain Specific Language) Golang RBAC (Role-Based Access Control) CollectD StatsD Gnocchi Client Telegraf Grafana TimescaleDB Podcast Episode OpenStack Heat The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/10/201839 minutes, 16 seconds
Episode Artwork

Keeping Up With The Python Community For Fun And Profit with Dan Bader

Summary Keeping up with the work being done in the Python community can be a full time job, which is why Dan Bader has made it his! In this episode he discusses how he went from working as a software engineer, to offering training, to now managing both the Real Python and PyCoders properties. He also explains his strategies for tracking and curating the content that he produces and discovers, how he thinks about building products, and what he has learned in the process of running his businesses. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Dan Bader about finding, filtering, and creating resources for Python developers at Real Python, PyCoders, and his own trainings Interview Introductions How did you get introduced to Python? Let’s start by discussing your primary job these days and how you got to where you are. In the past year you have also taken over management of the Real Python site. How did that come about and what are your responsibilities? You just recently took over management of the PyCoders newsletter and website. Can you describe the events that led to that outcome and the responsibilities that came along with it? What are the synergies that exist between your various roles and projects? What are the areas of conflict? (e.g. time constraints, conflicts of interest, etc.) Between PyCoders, Real Python, your training materials, your Python tips newsletter, and your coaching you have a lot of incentive to keep up to date with everything happening in the Python ecosystem. What are your strategies for content discovery? With the diversity in use cases, geography, and contributors to the landscape of Python how do you work to counteract any bias or blindspots in your work? There is a constant stream of information about any number of topics and subtopics that involve the Python language and community. What is your process for filtering and curating the resources that are ultimately included in the various media properties that you oversee? In my experience with the podcast one of the most difficult aspects of maintaining relevance as a content creator is obtaining feedback from your audience. What do you do to foster engagement and facilitate conversations around the work that you do? You have also built a few different product offerings. Can you discuss the process involved in identifying the relevant opportunities and the creation and marketing of them? Creating, collecting, and curating content takes a significant investment of time and energy. What are your avenues for ensuring the sustainability of your various projects? What are your plans for the future growth and development of your media empire? As someone who is so deeply involved in the conversations flowing through and around Python, what do you see as being the greatest threats and opportunities for the language and its community? Keep In Touch @dbaderorg on Twitter Website dbader on GitHub Picks Tobias Data Engineering Podcast Dan Black code formatter Łukasz Langa Links Dan Bader Nerd Lettering Real Python PyCoders Computer Science Vancouver, BC Django Raymond Hettinger Data Science Flask Pythonista Cafe Python Tricks The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/3/201857 minutes, 56 seconds
Episode Artwork

Using Calibre To Keep Your Digital Library In Order with Kovid Goyal

Summary Digital books are convenient and useful ways to have easy access to large volumes of information. Unfortunately, keeping track of them all can be difficult as you gain more books from different sources. Keeping your reading device synchronized with the material that you want to read is also challenging. In this episode Kovid Goyal explains how he created the Calibre digital library manager to solve these problems for himself, how it grew to be the most popular application for organizing ebooks, and how it works under the covers. Calibre is an incredibly useful piece of software with a lot of hidden complexity and a great story behind it. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Kovid Goyal about Calibre, the powerful and free ebook management tool Interview Introductions How did you get introduced to Python? Can you start by explaining what Calibre is and how the project got started? How are you able to keep up to date with device support in Calibre, given the continual release of new devices and platforms that a user can read ebooks on? What are the main features of Calibre? What are some of the most interesting and most popular plugins that have been creatd for Calibre? Can you describe the software architecture for the project and how it has evolved since you first started working on it? You have been maintaining and improving Calibre for a long time now. What is your motivation to keep working on it? How has the focus of the project and the primary use cases changed over the years that you have been working on it? In addition to its longevity, Calibre has also become a de-facto standard for ebook management. What is your opinion as to why it has gained and kept its popularity? What are some of the competing options and how does Calibre differentiate from them? In addition to the myriad devices and platforms, there is a significant amount of complexity involved in supporting the different ebook formats. What have been the most challenging or complex aspects of managing and converting between the formats? One of the challenges around maintaining a private library of electronic resources is the prevalence of DRM restricted content available through major publishers and retailers. What are your thoughts on the current state of digital book marketplaces? What was your motivation for implementing Calibre in Python? If you were to start the project over today would you make the same choice? Are there any aspects of the project that you would implement differently if you were starting over? What are your plans for the future of Calibre? Keep In Touch kovidgoyal on GitHub Website Patreon Picks Tobias American Gods by Neil Gaiman Kovid Into Thin Air by John Krakauer About how an expedition to climb Everest went wrong. Wonderful account of the difficulties of high altitude mountaineering and the determination it needs. The Steerswoman’s Road by Rosemary Kirstein About the spirit of scientific enquiry in a fallen civilization on an alien planet with partial terraforming that is slowly failing. Links Calibre KDE Caltech Sony PRS500 Linux Kindle Kobo ePUB Calibre Recipes Rapydscrypt NG Goodreads Qt PyQt build-calibre Kitty DRM (Digital Rights Management) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/26/201843 minutes, 25 seconds
Episode Artwork

Entity Extraction, Document Processing, And Knowledge Graphs For Investigative Journalists with Friedrich Lindenberg

Summary Investigative reporters have a challenging task of identifying complex networks of people, places, and events gleaned from a mixed collection of sources. Turning those various documents, electronic records, and research into a searchable and actionable collection of facts is an interesting and difficult technical challenge. Friedrich Lindenberg created the Aleph project to address this issue and in this episode he explains how it works, why he built it, and how it is being used. He also discusses his hopes for the future of the project and other ways that the system could be used. Preface 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 check out Linode. With 200 Gbit/s private networking, scalable shared block storage, node balancers, and a 40 Gbit/s public network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode today to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Registration for PyCon US, the largest annual gathering across the community, is open now. Don’t forget to get your ticket and I’ll see you there! Your host as usual is Tobias Macey and today I’m interviewing Friedrich Lindenberg about Aleph, a tool to perform entity extraction across documents and structured data Interview Introductions How did you get introduced to Python? Can you start by explaining what Aleph is and how the project got started? What is investigative journalism? How does Aleph fit into their workflow? What are some other tools that would be used alongside Aleph? What are some ways that Aleph could be useful outside of investigative journalism? How is Aleph architected and how has it evolved since you first started working on it? What are the major components of Aleph? What are the types of documents and data formats that Aleph supports? Can you describe the steps involved in entity extraction? What are the most challenging aspects of identifying and resolving entities in the documents stored in Aleph? Can you describe the flow of data through the system from a document being uploaded through to it being displayed as part of a search query? What is involved in deploying and managing an installation of Aleph? What have been some of the most interesting or unexpected aspects of building Aleph? Are there any particularly noteworthy uses of Aleph that you are aware of? What are your plans for the future of Aleph? Keep In Touch Website @pudo on Twitter pudo on GitHub Picks Tobias Mechanical Soup Friedrich phonenumbers – because it’s useful pyicu – super nerdy but amazing sqlalchemy – my all-time favorite python package Links Aleph Organized Crime and Corruption Reporting Project OCR (Optical Character Recognition) Jorge Luis Borges Buenos Aires Investigative Journalism Azerbaijan Signal Open Corporates Open Refine Money Laundering E-Discovery CSV SQL Entity Extraction (Named Entity Recognition) Apache Tika Polyglot SpaCy Podcast.__init__ Episode LibreOffice Tesseract followthemoney Elasticsearch Knowledge Graph Neo4J Gephi Edward Snowden Document Cloud Overview Project Veracrypt Qubes OS I2 Analyst Notebook The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/19/201839 minutes, 12 seconds
Episode Artwork

Bringing Python To The Spanish Language Community with Maricela Sanchez

Summary The Python Community is large and growing, however a majority of articles, books, and presentations are still in English. To increase the accessibility for Spanish language speakers, Maricela Sanchez helped to create the Charlas track at PyCon US, and is an organizer for Python Day Mexico. In this episode she shares her motivations for getting involved in community building, her experiences working on Python Day Mexico and PyCon Charlas, and the lessons that she has learned in the process. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Maricela Sanchez Miranda about her work in organizing PyCon Charlas, the spanish language track at PyCon US, as well as Python Day Mexico Interview Introductions How did you get introduced to Python? Can you briefly describe PyCon Charlas and Python Day Mexico? What has been your motivation for getting involved with organizing these community events? What do you find to be the unique characteristics of the Python community in Mexico? What kind of feedback have you gotton from the Charlas track at PyCon? What are your goals for fostering these Spanish language events? What are some of the lessons that you have learned from PyCon Charlas that were useful in organizing Python Day Mexico? What have been the most challenging or complicated aspects of organizing Python Day Mexico? How many attendees do you anticipate? How has that affected your planning and preparation? Are there any aspects of the geography, infrastructure, or culture of Mexico that you have found to be either beneficial or challenging for organizing a conference? Do you anticipate PyCon Charlas and Python Day Mexico becoming annual events? What is your advice for anyone who is interested in organizing a conference in their own region or language? Keep In Touch mayela on GitHub @mayela0x14 on Twitter Picks Tobias CardLine Dinosaurs Maricela Links Python Day Mexico PyCon Charlas PyCon Hatchery PyCon Latin America Mexico City Guadalajara The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/29/201819 minutes, 28 seconds
Episode Artwork

Of Checklists, Ethics, and Data with Emily Miller and Peter Bull

Summary As data science becomes more widespread and has a bigger impact on the lives of people, it is important that those projects and products are built with a conscious consideration of ethics. Keeping ethical principles in mind throughout the lifecycle of a data project helps to reduce the overall effort of preventing negative outcomes from the use of the final product. Emily Miller and Peter Bull of Driven Data have created Deon to improve the communication and conversation around ethics among and between data teams. It is a Python project that generates a checklist of common concerns for data oriented projects at the various stages of the lifecycle where they should be considered. In this episode they discuss their motivation for creating the project, the challenges and benefits of maintaining such a checklist, and how you can start using it today. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Emily Miller and Peter Bull about Deon, an ethics checklist for data projects Interview Introductions How did you get introduced to Python? Can you start by describing what Deon is and your motivation for creating it? Why a checklist, specifically? What’s the advantage of this over an oath, for example? What is unique to data science in terms of the ethical concerns, as compared to traditional software engineering? What is the typical workflow for a team that is using Deon in their projects? Deon ships with a default checklist but allows for customization. What are some common addendums that you have seen? Have you received pushback on any of the default items? How does Deon simplify communication around ethics across team boundaries? What are some of the most often overlooked items? What are some of the most difficult ethical concerns to comply with for a typical data science project? How has Deon helped you at Driven Data? What are the customer facing impacts of embedding a discussion of ethics in the product development process? Some of the items on the default checklist coincide with regulatory requirements. Are there any cases where regulation is in conflict with an ethical concern that you would like to see practiced? What are your hopes for the future of the Deon project? Keep In Touch Emily LinkedIn ejm714 on GitHub Peter LinkedIn @pjbull on Twitter pjbull on GitHub Driven Data @drivendataorg on Twitter drivendataorg on GitHub Website Picks Tobias Richard Bond Glass Art Emily Tandem Coffee in Portland, Maine Peter The Model Bakery in Saint Helena and Napa, California Links Deon Driven Data International Development Brookings Institution Stata Econometrics Metis Bootcamp Pandas Podcast Episode C# .NET Podcast.__init__ Episode On Software Ethics Jupyter Notebook Podcast Episode Word2Vec cookiecutter data science Logistic Regression The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/22/201845 minutes, 16 seconds
Episode Artwork

How Python Is Used To Build A Startup At Wanderu with Chris Kirkos and Matt Warren

Summary The breadth of use cases that Python supports, coupled with the level of productivity that it provides through its ease of use have contributed to the incredible popularity of the language. To explore the ways that it can contribute to the success of a young and growing startup two of the lead engineers at Wanderu discuss their experiences in this episode. Matt Warren, the technical operations lead, explains the ways that he is using Python to build and scale the infrastructure that Wanderu relies on, as well as the ways that he deploys and runs the various Python applications that power the business. Chris Kirkos, the lead software architect, describes how the original Django application has grown into a suite of microservices, where they have opted to use a different language and why, and how Python is still being used for critical business needs. This is a great conversation for understanding the business impact of the Python language and ecosystem. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Matt Warren and Chris Kirkos and about the ways that they are using Python at Wanderu Interview Introductions How did you get introduced to Python? Can you start by describing what Wanderu does? How is the platform architected? What are the broad categories of problems that you are addressing with Python? What are the areas where you chose to use a different language or service? What ratio of new projects and features are implemented using Python? How much of that decision process is influenced by the fact that you already have so much pre-existing Python code? For the projects where you don’t choose Python, what are the reasons for going elsewhere? What are some of the limitations of Python that you have encountered while working at Wanderu? What are some of the places that you were surprised to find Python in use at Wanderu? What have you enjoyed most about working with Python? What are some of the sharp edges that you would like to see smoothed over in future versions of the language? What is the most challenging bug that you have dealt with at Wanderu that was attributable in some sense to the fact that the code was written in Python? If you were to start over today on any of the pieces of the Wanderu platform, are there any that you would write in a different language? Which libraries have been the most useful for your work at Wanderu? Which ones have caused you the most pain? Keep In Touch Matt @matthewwwarren on Twitter LinkedIn Chris LinkedIn Picks Tobias DataGrip Matt Chacarero Chris PDB IPDB PUDB VSCode Links Wanderu Northeastern University C++ Perl Microservices PostgreSQL Data Engineering Podcast Episode MongoDB Django Node.js Go-lang AWS ETL (Extract, Transform, and Load) Data Warehouse Graph Database Twisted Podcast Episode Gevent Scrapy Virtualenv Ruby Rbenv Boto3 PyMongo Ansible Pip TLS Cryptography Podcast Episode Setuptools Openstack Requests PyCountry SOAP (Simple Object Access Protocol) XML Jinja OpenSSL pytest Bandit Podcast Episode Gang of Four The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/15/201834 minutes, 22 seconds
Episode Artwork

Building A Game In Python At PyWeek with Daniel Pope

Summary Many people learn to program because of their interest in building their own video games. Once the necessary skills have been acquired, it is often the case that the original idea of creating a game is forgotten in favor of solving the problems we confront at work. Game jams are a great way to get inspired and motivated to finally write a game from scratch. This week Daniel Pope discusses the origin and format for PyWeek, his experience as a participant, and the landscape of options for building a game in Python. He also explains how you can register and compete in the next competition. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Daniel Pope about PyWeek, a one week challenge to build a game in Python Interview Introductions How did you get introduced to Python? Can you start by describing what PyWeek is and how the competition got started? What is your current role in relation to PyWeek and how did you get involved? What are the strengths of the Python lanaguage and ecosystem for developing a game? What are some of the common difficulties encountered by participants in the challenge? What are some of the most commonly used libraries and tools for creating and packaging the games? What are some shortcomings in the available tools or libraries for Python when it comes to game development? What are some examples of libraries or tools that were created and released as a result of a team’s efforts during PyWeek? How often do games that get started during PyWeek continue to be developed and improved? Have there ever been games that went on to be commercially viable? What are some of the most interesting or unusual games that you have seen submitted to PyWeek? Can you describe your experience as a competitor in PyWeek? How do you structure your time during the competition week to ensure that you can complete your game? What are the benefits and difficulties of the one week constraint for development? How has PyWeek changed over the years that you have been involved with it? What are your hopes for the competition as it continues into the future? Keep In Touch @lordmauve on Twitter Blog lordmauve on GitHub Picks Tobias The Architecht Show Dan Red Blob Games Designing Virtual Worlds by Richard Bartle Links PyWeek Two Sigma Game Jam Richard Jones PyGame Pyglet SDL PyGame Zero Cocos 2D Doctor Corovich’s Flying Atomic Squid Mortimer The Lepidopterist Ludum Dare The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/9/201830 minutes, 6 seconds
Episode Artwork

Managing Application Secrets with Brian Kelly

Summary Any application that communicates with other systems or services will at some point require a credential or sensitive piece of information to operate properly. The question then becomes how best to securely store, transmit, and use that information. The world of software secrets management is vast and complicated, so in this episode Brian Kelly, engineering manager at Conjur, aims to help you make sense of it. He explains the main factors for protecting sensitive information in your software development and deployment, ways that information might be leaked, and how to get the whole team on the same page. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Brian Kelly about how to store, deploy, and use sensitive information in your applications Interview Introductions How did you get introduced to Python? To begin with, how do you define a secret in the context of an application? What are the broad categories for solutions to secrets management? What are the different aspects of secrets management in the lifecycle of developing, deploying, and maintaining an application? How does the scale of a project or organization impact the strategies that are reasonable for secrets management? What are some of the most challenging aspects of secrets management at the different stages of usage? What are some of the common reasons that secrets management strategies fail? What are some of the vulnerabilities or attack vectors that development teams should be thinking about when working with credentials? What are your thoughts on versioning of secrets? Beyond storing and deploying sensitive information, what are some of the secondary concerns around secrets management that development teams should be thinking about? How does the use of multiple environments (e.g. dev, QA, production, etc.) affect the strategies used for secrets management? What are some of the most useful resources that you have found for anyone looking to learn more about this subject? Keep In Touch @brikelly on Twitter Blog brikelly on GitHub Picks Tobias The Inheritance Cycle Brian Donegal Ireland Links Conjur CyberArk Datawire Transpiler IDL CSRF (Cross-Site Request Forgery) Hashicorp Vault Continuous Integration Continuous Delivery TLS (Transport Layer Security) RBAC (Role Based Access Control) Terraform SQL Injection Secretless MFA Duo Security Kubernetes Summon OWASP Top 10 Configuration Management Puppet Chef Ansible SaltStack Immutable Infrastructure Conjur Blog Krebs On Security The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/2/201839 minutes, 3 seconds
Episode Artwork

Django, Channels, And The Asynchronous Web with Andrew Godwin

Summary Once upon a time the web was a simple place with one main protocol and a predictable sequence of request/response interactions with backend applications. This is the era when Django began, but in the intervening years there has been an explosion of complexity with new asynchronous protocols and single page Javascript applications. To help bridge the gap and bring the most popular Python web framework into the modern age Andrew Godwin created Channels. In this episode he explains how the first version of the asynchronous layer for Django applications was created, how it has changed in the jump to version 2, and where it will go in the future. Along the way he also discusses the challenges of async development, his work on designing ASGI as the spiritual successor to WSGI, and how you can start using all of this in your own projects today. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Andrew Godwin about Django Channels 2.x and the ASGI specification for modern, asynchronous web protocols Interview Introductions How did you get introduced to Python? Can you start with an overview of the problem that Channels is aiming to solve? Asynchronous frameworks have existed in Python for a long time. What are the tradeoffs in those frameworks that would lead someone to prefer the combination of Django and Channels? For someone who is familiar with traditional Django or working on an existing application, what are the steps involved in integrating Channels? Channels is a project that you have been working on for a significant amount of time and which you recently re-architected. What were the shortcomings in the 1.x release that necessitated such a major rewrite? How is the current system architected? What have you found to be the most challenging or confusing aspects of managing asynchronous web protocols both as an author of Channels/ASGI and someone building on top of them? While reading through the documentation there were mentions of the synchronous nature of the Django ORM. What are your thoughts on asynchronous database access and how important that is for future versions of Django and Channels? As part of your implementation of Channels 2.x you introduced a new protocol for asynchronous web applications in Python in the form of ASGI. How does this differ from the WSGI standard and what was your process for developing this specification? What are your hopes for what the Python community will do with ASGI? What are your plans for the future of Channels? What are some of the most interesting or unexpected uses of Channels and/or ASGI? Keep In Touch @andrewgodwin on Twitter Website andrewgodwin on GitHub Picks Tobias Nobody Listens To Paula Poundstone Andrew Literary Appreciation Of The Olson Timezones Database Links Channels ASGI Django South Django Migrations PHP Turbogears WSGI Websockets Eventlet HTTP WebRTC IPFS Twisted Tornado Podcast Episode Daphne Redis Uvicorn Heisenbugs Deadlock CherryPy Flask WSGI 2 Podcast Episode Starlette Django Rest Framework Thom Christie PEP Process Episode The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/24/201841 minutes, 46 seconds
Episode Artwork

The Business Of Technical Authoring With William Vincent

Summary There are many aspects of learning how to program and at least as many ways to go about it. This is multiplicative with the different problem domains and subject areas where software development is applied. In this episode William Vincent discusses his experiences learning how web development mid-career and then writing a series of books to make the learning curve for Django newcomers shallower. This includes his thoughts on the business aspects of technical writing and teaching, the challenges of keeping content up to date with the current state of software, and the ever-present lack of sufficient information for new programmers. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing William Vincent about his experience learning to code mid-career and then writing a series of books to bring you along on his journey from beginner to advanced Django developer Interview Introductions How did you get introduced to Python? How has your experience as someone who began working as a developer mid-career influenced your approach to software? How do you compare Python options for web development (Django/Flask) to others such as Ruby on Rails or Node/Express in the JavaScript world? What was your motivation for writing a beginner guide to Django? What was the most difficult aspect of determining the appropriate level of depth for the content? At what point did you decide to publish the tutorial you were compiling as a book? In the posts that you wrote about your experience authoring the books you give a detailed description of the economics of being an author. Can you discuss your thoughts on that? Focusing on a library or framework, such as Django, increases the maintenance burden of a book, versus one that is written about fundamental principles of computing. What are your thoughts on the tradeoffs involved in selecting a topic for a technical book? Challenges of creating useful intermediate content (lots of beginner tutorials and deep dives, not much in the middle) After your initial foray into technical authoring you decided to follow it with two more books. What other topics are you covering with those? Once you are finished with the third do you plan to continue writing, or will you shift your focus to something else? Translating content to reach a larger audience What advice would you give to someone who is considering writing a book of their own? What alternative avenues do you think would be more valuable for themselves and their audience? Alternative avenues for providing useful training to developers Keep In Touch Email wsvincent on GitHub Website Picks Tobias Practical AI William awesome-django The Digital Doctor by Robert Wachter Links Quizlet Django Learn Python The Hard Way Invent Your Own Computer Games with Python Ruby on Rails Node.js Express LearnBoost David Heinemeier Hanson Meteor.js Class-Based Views Rails Tutorial Leanpub Gumroad Stack Overflow Egghead.io Frontend Masters Gatsby.js Jekyll Pachyderm Data Engineering Podcast Pachyderm Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/17/201849 minutes, 38 seconds
Episode Artwork

Keep Your Code Clean Using pre-commit with Anthony Sottile

Summary Maintaining the health and well-being of your software is a never-ending responsibility. Automating away as much of it as possible makes that challenge more achievable. In this episode Anthony Sottile describes his work on the pre-commit framework to simplify the process of writing and distributing functions to make sure that you only commit code that meets your definition of clean. He explains how it supports tools and repositories written in multiple languages, enforces team standards, and how you can start using it today to ship better software. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Anthony Sottile about pre-commit, a framework for managing and maintaining hooks for multiple languages Interview Introductions How did you get introduced to Python? Can you start by describing what a pre-commit hook is and some of the ways that they are useful for developers? What was you motivation for creating a framework to manage your pre-commit hooks? How does it differ from other projects built to manage these hooks? What are the steps for getting someone started with pre-commit in a new project? Which other event hooks would be most useful to implement for maintaining the health of a repository? What types of operations are most useful for ensuring the health of a project? What types of routines should be avoided as a pre-commit step? Installing the hooks into a user’s local environment is a manual step, so how do you ensure that all of your developers are using the configured hooks? What factors have you found that lead to developers skipping or disabling hooks? How is pre-commit implemented and how has that design evolved from when you first started? What have been the most difficult aspects of supporting multiple languages and package managers? What would you do differently if you started over today? Would you still use Python? For someone who wants to write a plugin for pre-commit, what are the steps involved? What are some of the strangest or most unusual uses of pre-commit hooks that you have seen? What are your plans for the future of pre-commit? Keep In Touch asottile on GitHub @codewithanthony on Twitter anthonywritescode on twitch anthonywritescode on YouTube Picks Tobias Tag Anthony Yes Theory Links pre-commit List of hooks Lyft Careers Git Git hooks https://githooks.com/?utmsource=rss&utmmedium=rss Flake8 Make Tox Type Annotations xargs Bash shlex The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/10/201824 minutes, 52 seconds
Episode Artwork

Infection Monkey Vulnerability Scanner with Daniel Goldberg

Summary How secure are your servers? The best way to be sure that your systems aren’t being compromised is to do it yourself. In this episode Daniel Goldberg explains how you can use his project Infection Monkey to run a scan of your infrastructure to find and fix the vulnerabilities that can be taken advantage of. He also discusses his reasons for building it in Python, how it compares to other security scanners, and how you can get involved to keep making it better. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Daniel Goldberg about Infection Monkey, an open source system breach simulation tool for evaluating the security of your network Interview Introductions How did you get introduced to Python? What is infection monkey and what was the reason for building it? What was the reasoning for building it in Python? If you were to start over today what would you do differently? Penetration testing is typically an endeavor that requires a significant amount of knowledge and experience of security practices. What have been some of the most difficult aspects of building an automated vulnerability testing system? How does a deployed instance keep up to date with recent exploits and attack vectors? How does Infection Monkey compare to other tools such as Nessus and Nexpose? What are some examples of the types of vulnerabilities that can be discovered by Infection Monkey? What kinds of information can Infection Monkey discover during a scan? How does that information get reported to the user? How much security experience is necessary to understand and address the findings in a given report generated from a scan? What techniques do you use to ensure that the simulated compromises can be safely reverted? What are some aspects of network security and system vulnerabilities that Infection Monkey is unable to detect and/or analyze? For someone who is interested in using Infection Monkey what are the steps involved in getting it set up? What is the workflow for running a scan? Is Infection Monkey intended to be run continuously, or only with the interaction of an operator? What are your plans for the future of Infection Monkey? Keep In Touch danielguardicore on GitHub Guardicore Blog Picks Tobias Darkest Hour Daniel How Complex Systems Fail Links Infection Monkey Guardicore Stack Overflow Metasploit AsyncIO React Nessus Nexpose Shellshock Wannacry Simian Army Chaos Engineering Capuchin Monkey Google Summer of Code The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/3/201834 minutes, 24 seconds
Episode Artwork

Fast Stream Processing In Python Using Faust with Ask Solem

Summary The need to process unbounded and continually streaming sources of data has become increasingly common. One of the popular platforms for implementing this is Kafka along with its streams API. Unfortunately, this requires all of your processing or microservice logic to be implemented in Java, so what’s a poor Python developer to do? If that developer is Ask Solem of Celery fame then the answer is, help to re-implement the streams API in Python. In this episode Ask describes how Faust got started, how it works under the covers, and how you can start using it today to process your fast moving data in easy to understand Python code. He also discusses ways in which Faust might be able to replace your Celery workers, and all of the pieces that you can replace with your own plugins. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Ask Solem about Faust, a library for building high performance, high throughput streaming systems in Python Interview Introductions How did you get introduced to Python? What is Faust and what was your motivation for building it? What were the initial project requirements that led you to use Kafka as the primary infrastructure component for Faust? Can you describe the architecture for Faust and how it has changed from when you first started writing it? What mechanism does Faust use for managing consensus and failover among instances that are working on the same stream partition? What are some of the lessons that you learned while building Celery that were most useful to you when designing Faust? What have you found to be the most common areas of confusion for people who are just starting to build an application on top of Faust? What has been the most interesting/unexpected/difficult aspects of building and maintaining Faust? What have you found to be the most challenging aspects of building streaming applications? What was the reason for releasing Faust as an open source project rather than keeping it internal to Robinhood? What would be involved in adding support for alternate queue or stream implementations? What do you have planned for the future of Faust? Keep In Touch @asksol on Twitter ask on GitHub Picks Tobias Super Troopers 2 Ask Microsound by Curtis Roads Links Faust RobinHood Kafka Streams RabbitMQ AsyncIO Celery Kafka Confluent Write-Ahead Log RocksDB Redis Pulsar KSQL Exactly Once Semantics The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/27/201828 minutes, 45 seconds
Episode Artwork

Don't Just Stand There, Get Programming! with Ana Bell

Summary Writing a book is hard work, especially when you are trying to teach such a broad concept as programming. In this episode Ana Bell discusses her recent work in writing Get Programming: Learn To Code With Python, including her views on how to separate the principles from the implementation, making the book evergreen in its appeal, and how her experience as a lecturer at MIT has helped her maintain the perspectives of beginners. She also shares her views on the values of learning about programming, even when you have no intention of doing it as a career and ways to take the next steps if that is your goal. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. As you know, Python has become one of the most popular programming languages in the world, due to the size, scope, and friendliness of the language and community. But, it can be tough learning it when you’re just starting out. Luckily, there’s an easy way to get involved. Written by MIT lecturer Ana Bell and published by Manning Publications, Get Programming: Learn to code with Python is the perfect way to get started working with Python. Ana’s experience as a teacher of Python really shines through, as you get hands-on with the language without being drowned in confusing jargon or theory. Filled with practical examples and step-by-step lessons to take on, Get Programming is perfect for people who just want to get stuck in with Python. Get your copy of the book with a special 40% discount for Podcast.__init__ listeners at podcastinit.com/get-programming using code: Bell40! Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Ana Bell about her book, Get Programming: Learn to code with Python, and her approach to teaching how to code Interview Introductions How did you get introduced to Python? Can you start by describing your motivation for writing a book about learning to program? Who is the target audience for this book? What level of competence do you want the reader to have when they have completed it? What were the most challenging aspects of writing a book for beginning programmers? What did you do to recapture the “beginner mind” while writing? There are a large variety of books on learning to program and at least as many approaches. Can you describe the techniques that you use in your book to help readers grasp the concepts that you cover? One of the problems of writing a book about technology is that there is no stationary target to aim for due to the constant advancement of the industry. How do you reconcile that reality with the need for a book to remain relevant for an extended period of time? How do you decide what to include and what to leave out when writing about learning how to program? What advice do you have for people who have read your book and want to continue on to a career in development? Keep In Touch MIT Bio @anabellphd on Twitter Picks Tobias Netdata Ana Star Realms Between Two Cities Links Get Programming by Ana Bell edX MIT Machine Learning Github The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/20/201835 minutes, 7 seconds
Episode Artwork

The Masonite Web Framework With Joe Mancuso

Summary Masonite is an ambitious new web framework that draws inspiration from many other successful projects in other languages. In this episode Joe Mancuso, the primary author and maintainer, explains his goal of unseating Django from its position of prominence in the Python community. He also discusses his motivation for building it, how it is architected, and how you can start using it for your own projects. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Joe Mancuso about Masonite, the modern and developer centric python web framework. Interview Introductions How did you get introduced to Python? What is Masonite and what was the motivation for creating it? How does it fit in the current landscape of Python web frameworks? Why might someone choose to use Masonite over Python frameworks? If someone isn’t already decided on using Python, what are some reasons that they might choose Masonite over frameworks in other languages? Can you describe the framework architecture and how it has evolved over the lifetime of the project? What are some examples of projects that have been built with Masonite and what aspects of the framework are they leveraging? For someone who is starting a new project with Masonite what are some of the concepts that they should be familiar with? What is their workflow for starting their project? How does that workflow change when working with an existing application? What are some of the plans that you have for the future of Masonite? Keep In Touch Joe Blog @masoniteproject on Twitter josephmancuso on GitHub Masonite MasoniteFramework on GitHub Docs Slack Picks Tobias Yeti Mugs Joe Gitbook.io Dev.to Links Masonite on GitHub Codecademy PHP Django Laravel Dependency Injection Inversion of Control WSGI Gunicorn Waitress Nexmo Masonite Slack Mathias Johansson Trello @masoniteproject Masonite Repo Masonite Documentation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/13/201843 minutes, 20 seconds
Episode Artwork

Helping Teacher's Bring Python Into The Classroom With Nicholas Tollervey

Summary There are a number of resources available for teaching beginners to code in Python and many other languages, and numerous endeavors to introduce programming to educational environments. Sometimes those efforts yield success and others can simply lead to frustration on the part of the teacher and the student. In this episode Nicholas Tollervey discusses his work as a teacher and a programmer, his work on the micro:bit project and the PyCon UK education summit, as well as his thoughts on the place that Python holds in educational programs for teaching the next generation. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Nicholas Tollervey about his efforts to improve the accessibility of Python for educators Interview Introductions How did you get introduced to Python? How has your experience as a teacher influenced your work as a software engineer? What are some of the ways that practicing software engineers can be most effective in supporting the efforts teachers and students to become computationally literate? What are your views on the reasons that computational literacy is important for students? What are some of the most difficult barriers that need to be overcome for students to engage with Python? How important is it, in your opinion, to expose students to text-based programming, as opposed to the block-based environment of tools such as Scratch? At what age range do you think we should be trying to engage students with programming? When the teacher’s day was introduced as part of the education summit for PyCon UK what was the initial reception from the educators who attended? How has the format for the teacher’s portion of the conference changed in the subsequent years? What have been some of the most useful or beneficial aspects for the teacher’s and how much engagement occurs between the conferences? What was your involvement in the initiative that brought the BBC micro:bit to UK classrooms? What kinds of feedback have you gotten from students who have had an opportunity to use them? What are some of the most interesting or unexpected uses of the micro:bit that you have seen? Keep In Touch @ntoll on Twitter ntoll on GitHub Website Picks Tobias The Dark Materials Trilogy Audiobooks by Phillip Pullman Nicholas Moon Dust by Andrew Smith Totally Wired by Andrew Smith Links ntoll.org Tuba Royal College of Music Fry IT MicroPython Podcast Interview With Damien George MicroPython Book Mu Scratch Jupyter John Pinner London Python Code Dojo Alan Turing Tim Berners-Lee Charles Babbage REPL (Read-Eval-Print Loop Daniel Pope PyGame Raspberry Pi Foundation PyGame Zero Network Zero GPIO Zero Computing At School BBC PSF TouchDevelop TypeScript Damien George ARM Code Kingdoms micro:bit Barclay’s PyCon US Education Summit Raspberry Pi Foundation Code Club Qumisha Goss Keynote Adafruit CircuitPython NeoPixel PyBoard The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/6/201859 minutes, 19 seconds
Episode Artwork

Continuous Delivery For Complex Systems Using Zuul with Monty Taylor

Summary Continuous integration systems are important for ensuring that you don’t release broken software. Some projects can benefit from simple, standardized platforms, but as you grow or factor in additional projects the complexity of checking your deployments grows. Zuul is a deployment automation and gating system that was built to power the complexities of OpenStack so it will grow and scale with you. In this episode Monty Taylor explains how he helped start Zuul, how it is designed for scale, and how you can start using it for your continuous delivery systems. He also discusses how Zuul has evolved and the directions it will take in the future. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Monty Taylor about Zuul, a platform that drives continuous integration, delivery, and deployment systems with a focus on project gating and interrelated projects. Interview Introductions How did you get introduced to Python? Can you start by explaining what Zuul is and how the project got started? How do you view Zuul in the broader landscape of CI/CD systems (e.g. GoCD, Jenkins, Travis, etc.)? What is the workflow for someone who is defining a pipeline in Zuul? How are the pipelines tested and promoted? One of the problems that are often encountered in CI/CD systems is the difficulty of testing changes locally. What kind of support is available in Zuul for that? Can you describe the project architecture? What aspects of the architecture enable it to scale to large projects and teams? How difficult would it be to swap the Ansible integration for another orchestration tool? What would be involved in adding support for additional version control systems? What are your plans for the future of the project? Keep In Touch emonty on GitHub Website @emonty on Twitter Picks Tobias Hitchhiker’s Guide To The Galaxy Monty Bojack Horseman Links Red Hat Zuul OpenStack Jim Blair Perl SNPP Rackspace NASA Drizzle Sun Microsystems MySQL Continuous Integration Continuous Delivery Launchpad Bzr Jenkins Jess Frazelle Graphite StatsD graphite.openstack.org grafana.openstack.org subunit Ansible Helm Software Factory Gerrit Git Perforce Subversion Zookeeper Gearman The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/30/20181 hour, 7 minutes, 1 second
Episode Artwork

Michael Foord On Testing, Mock, TDD, And The Python Community

Summary Michael Foord has been working on building and testing software in Python for over a decade. One of his most notable and widely used contributions to the community is the Mock library, which has been incorporated into the standard library. In this episode he explains how he got involved in the community, why testing has been such a strong focus throughout his career, the uses and hazards of mocked objects, and how he is transitioning to freelancing full time. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Michael Foord mockingly, about his career in Python Interview Introductions How did you get introduced to Python? One of the main threads in your career appears to be software testing. What aspects of testing do you find so interesting and how did you first get exposed to that aspect of building software? How has the language and ecosystem support for testing evolved over the course of your career? What are some of the areas that you find it to still be lacking? Mock is one of your projects that has been widely adopted and ultimately incorporated into the standard library. What was your reason for starting it in the first place? Mocking can be a controversial topic. What are your current thoughts on how and when to use mocks, stubs, and fixtures? How do you view the state of the art for testing in Python as it compares to other languages that you have worked in? You were fairly early in the move to supporting Python 2 and 3 in a single project with Mock. How has that overall experience changed in the intervening years since Python 2.4 and 3.2? What are some of the notable evolutions in Python and the software industry that you have experienced over your career? You recently transitioned to acting as a software trainer and consultant full time. Where are you focusing your energy currently and what are your grand plans for the future? Keep In Touch Email Website Twitter Picks Tobias -Ology Books Michael Imaginary Authors Falling Into The Sea City On Fire Links IronPython London IronPython in Action Mock UnitTest Play By Email Smalltalk Regular Expression Dijkstra’s Algorithm urllib2 Resolver Systems TDD (Test-Driven Development) PyCon Trent Nelson Fractals Unicode Joel Spolsky (Unicode) OOP (Object-Oriented Programming) End-to-end Testing Unit Testing Canonical Selenium Ansible Ansible Tower AWX (Open Source Tower Codebase) Continuous Integration Continuous Delivery Agile Software Development GitHub GitLab Jenkins Nightwatch.js py.test Martin Fowler Monkey Patching Decorator Context Manager autospec Golang 2to3 Six Instagram Keynote Trans-code Django Girls PyLadies Agile Abstractions David Beazley The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/23/201855 minutes, 11 seconds
Episode Artwork

The Past, Present, and Future of Twisted with Moshe Zadka

Summary Twisted is one of the earliest frameworks for developing asynchronous applications in Python and it has yet to fulfill its original purpose. It can be used to build network servers that integrate a multitude of protocols, increase the performance of your I/O bound applications, serve as the full web stack for your WSGI projects, and anything else that needs a battle tested and performant foundation. In this episode long time maintainer Moshe Zadka discusses the history of Twisted, how it has evolved over the years, the transition to Python 3, some of its myriad use cases, and where it is headed in the future. Try it out today and then send some thanks to all of the people who have dedicated their time to building it. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Join the community in the new Zulip chat workspace at podcastinit.com/chat Your host as usual is Tobias Macey and today I’m interviewing Moshe Zadka about Twisted, the original multi-function tool for asynchronous operations and network protocols in Python Interview Introductions How did you get introduced to Python? For anyone who isn’t familiar with Twisted can you share a brief overview of what it is? What was the original motivation for creating it? How did you get involved with the project and what is your current role in the team? How can people learn to use Twisted? What are some of the common difficulties that new users encounter? What did you learn working on Twisted? Who uses Twisted? When is Twisted the wrong choice? What are some examples of systems that aren’t using Twisted but should be? What are some of the ways that Twisted has evolved and changed over the years? What are some of the ways people can support Twisted? What are some of the plans for the future of Twisted? Keep In Touch Moshe Zadka Twisted Mailing List IRC Picks Tobias Leatherman Wave+ Moshe Unsong Book Links Twisted Glyph Lefkowitz IRC async/await Pyvideo PyCon 2017 Tutorial asyncio GTK SNMP Gunicorn uWSGI WSGI Nginx Supervisor asynchat asyncore Ncolony The Ultimate Quality Development System Moshe’s article on UQDS Unicode prefix 2to3 Six Unit Tests Automat TLA+ PyCon CA Presentation Sans IO Cory Benfield’s talk Tubes Hyper H2 H11 Apple Calendar Server Github Duo Security using Cyclone Matrix — Used by French government AIOHTTP The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/16/201834 minutes, 42 seconds
Episode Artwork

Mike Driscoll And His Career In Python

Summary Mike Driscoll has been writing blogs and books for the Python community for years, including his popular series on the Python Module Of The Week. In his daily work he uses Python to test graphical interfaces written in C++ and QT for embedded platforms. In this episode he explains his work, how he got involved in writing as a regular exercise, and an overview of his recent books. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Mike Driscoll about using Python to test QT UIs for embedded platforms, his experience running a popular Python blog, and being a self-published author Technically, I am testing a C++ Qt app that is deployed to an embedded system Interview Introductions How did you get introduced to Python? Can you start by describing the way in which you are using Python for your work? What benefits does Python provide for writing and running tests for projects written in other languages? What are the drawbacks or limitations? What are some of the tools or techniques that you have found most useful for your work? How much of that was hard-earned knowledge vs finding it in reference material or prior art? What are some of the most interesting and/or difficult aspects of testing graphical interfaces? What are some of the most surprising or unexpected aspects of the problem space that you have discovered through your work? What are some of the other ways in which you have worked with the Python language and community? What are you most interested in working toward in the future? Keep In Touch Blog @driscollis on Twitter driscollis on GitHub Books Picks Tobias Draw.io Mike Qt for Python Jupyter Notebook Links Mouse vs. Python C++ Qt Ag Leader Squish CFFI Ctypes Tcl Javascript Ruby Froglogic Selenium Pillow OpenCV WxPython PSF PyCon Brett Cannon Carol Willing ReportLab PDFRW Brett Cannon PyCon 2018 Keynote The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/8/201823 minutes, 31 seconds
Episode Artwork

The Pulp Artifact Repository with Bihan Zhang and Austin Macdonald

Summary Hosting your own artifact repositories can have a huge impact on the reliability of your production systems. It reduces your reliance on the availability of external services during deployments and ensures that you have access to a consistent set of dependencies with known versions. Many repositories only support one type of package, thereby requiring multiple systems to be maintained, but Pulp is a platform that handles multiple content types and is easily extendable to manage everything you need for running your applications. In this episode maintainers Bihan Zhang and Austin Macdonald explain how the Pulp project works, the exciting new changes coming in version 3, and how you can get it set up to use for your deployments today. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Austin Macdonald and Bihan Zhang about Pulp, a platform for hosting and managing software package repositories Interview Introductions How did you get introduced to Python? What is Pulp and how did the project get started? What are the use cases/benefits for hosting your own artifact repository? What is the high level architecture of the platform? Pulp 3 appears to be a fairly substantial change in architecture and design. What will be involved in migrating an existing installation to the new version when it is released? What is involved in adding support for a new type of artifact/package? How does Pulp compare to other artifact repositories? What are the major pieces of work that are required before releasing Pulp 3? What have been some of the most interesting/unexpected/challenging aspects of building and maintaining Pulp? What are your plans for the future of Pulp? Keep In Touch Austin asmacdo on GitHub @asmacdo on Twitter Bihan LinkedIn Pulp Project Email GitHub Website #pulp on freenode Picks Tobias Soonish Austin Shostakovitch String Quartet #8 Bihan AOPA: Air Safety Institute YouTube Channel Links Pulp RedHat French Horn XKCD RPM Debian PyPI Center For Open Science SciPy Ansible Django Project Django Storages Artifactory Warehouse OCI (Open Container Initiative) Crane Docker Twinehttps://github.com/pypa/twine?utmsource=rss&utmmedium=rss Maven Read-through Cache The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/2/201830 minutes, 43 seconds
Episode Artwork

Bringing Africa Online At Ascoderu with Clemens Wolff

Summary The future is here, it’s just not evenly distributed. One of the places where this is especially true is in sub-Saharan Africa which is a vast region with little to no reliable internet connectivity. To help communities in this region leapfrog infrastructure challenges and gain access to opportunities for education and market information the Ascoderu non-profit has built Lokole. In this episode one of the lead engineers on the project, Clemens Wolff, explains what it is, how it is built, and how the venerable e-mail protocols can continue to provide access cheaply and reliably. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Clemens Wolff about how Ascoderu is using Python to help communities in sub-Saharan Africa gain access to the digital age Interview Introductions How did you get introduced to Python? What is the mission of Ascoderu and how did the organization get started? How did you get involved? The primary project that you build and maintain is Lokole. What is it and how does it help you in achieving the goals of the organization? What are the limitations of using e-mail as the only interface to the broader internet? What are some of the most interesting or unexpected uses of email in isolation have you seen? From the user perspective, can you describe the overall experience of interacting with Lokole? What is happening in the background? Did you consider using a binary message format such as Avro, protocol buffers, or msgpack in place of JSON? What kind of fault tolerance techniques are built into the overall information flow? What are the most challenging or unexpected aspects of building Lokole and interacting with the user communities? What projects do you have planned for the future? Keep In Touch Email GitHub LinkedIn Picks Tobias Hubspot CRM Clemens Ali Farka Toure Links Ascoderu Lokole NLTK Haskell DRC Lokole client Lokole server Ali Express Raspberry Pi Orange Pi Uganda Tanzania JSON Avro msgpack gzip Gmail Lingala wvdial USB Modeswitch Gnome SIM database Benin Agricultural Engineer Outernet Internet In A Box mkvvconf Azure for non-profits Kubernetes Connexion Zalando Open API Sendgrid Azure Service Bus Ambassador Container Pillow United Nations Sustainable Development Goals The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/25/201842 minutes, 33 seconds
Episode Artwork

Understanding Machine Learning Through Visualizations with Benjamin Bengfort and Rebecca Bilbro

Summary Machine learning models are often inscrutable and it can be difficult to know whether you are making progress. To improve feedback and speed up iteration cycles Benjamin Bengfort and Rebecca Bilbro built Yellowbrick to easily generate visualizations of model performance. In this episode they explain how to use Yellowbrick in the process of building a machine learning project, how it aids in understanding how different parameters impact the outcome, and the improved understanding among teammates that it creates. They also explain how it integrates with the scikit-learn API, the difficulty of producing effective visualizations, and future plans for improvement and new features. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Rebecca Bilbro and Benjamin Bengfort about Yellowbrick, a scikit extension to use visualizations for assisting with model selection in your data science projects. Interview Introductions How did you get introduced to Python? Can you describe the use case for Yellowbrick and how the project got started? What is involved in visualizing scikit-learn models? What kinds of information do the visualizations convey? How do they aid in understanding what is happening in the models? How much direction does yellowbrick provide in terms of knowing which visualizations will be helpful in various circumstances? What does the workflow look like for someone using Yellowbrick while iterating on a data science project? What are some of the common points of confusion that your students encounter when learning data science and how has yellowbrick assisted in achieving understanding? How is Yellowbrick iplemented and how has the design changed over the lifetime of the project? What would be required to integrate with other visualization libraries and what benefits (if any) might that provide? What about other ML frameworks? What are some of the most challenging or unexpected aspects of building and maintaining Yellowbrick? What are the limitations or edge cases for yellowbrick? What do you have planned for the future of yellowbrick? Beyond visualization, what are some of the other areas that you would like to see innovation in how data science is taught and/or conducted to make it more accessible? Keep In Touch Rebecca Bilbro Github Twitter Benjamin Bengfort Github Twitter Picks Tobias Poutine Rebecca The color yellow Benjamin ALL CAPS Links Hadoop Natural Language Processing Machine Learning scikit-learn Model Selection Triple the machine learning workflow scikit-yb Yellowbrick Visualizer API Visual Tests Jupyter Matplotlib Tensorflow Hyperparameter Parallel Coordinates Radviz Rank2D Prediction Error Plot Residuals Plot Validation Curves Alpha Selection Frequency Distribution Plot Bayes Theorem Seaborn Stop Words N-gram Craig – Bias and Fairness of Algorithms Shiny Bokeh Keras StatsModels Tensorboard PyTorch NumPy Voxel Wizard of Oz The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/17/201855 minutes, 13 seconds
Episode Artwork

Modern Database Clients On The Command Line with Amjith Ramanujam

Summary The command line is a powerful and resilient interface for getting work done, but the user experience is often lacking. This can be especially pronounced in database clients because of the amount of information being transferred and examined. To help improve the utility of these interfaces Amjith Ramanujam built PGCLI, quickly followed by MyCLI with the Prompt Toolkit library. In this episode he describes his motivation for building these projects, how their popularity led him to create even more clients, and how these tools can help you in your command line adventures. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Amjith Ramanujam about DBCLI, an umbrella project for command line database clients with autocompletion and syntax highlighting. Interview Introductions How did you get introduced to Python? What is the DBCLI project? Which of the clients was the first to be created and what was your motivation for starting it? At what point did you decide to create the DBCLI umbrella for the different projects and what benefits does it provide? How much functionality is shared between the different clients? What additional functionality do the different clients provide over those that are distributed with their respective engines? How do you optimize for cases where large volumes of data are returned from a query? What are some of the most interesting or surprising things that you have learned about database engines in the process of building client interfaces for them? What are the most challenging aspects of building the different database clients? What are some unexpected hardships that you encountered through this open source project? What are some unexpected pleasant surprises that you encountered through this project? Why did you hand over the project leadership for pgcli and mycli to other devs? Was it a hard decision? Why do you optimize on being nice over being right? How did Microsoft get involved with dbcli? mssql-cli What’s been the reception for the projects? What are your plans for upcoming releases of the various clients? Which database engines are you planning to target next? Keep In Touch amjith on GitHub @amjithr on Twitter Blog Picks Tobias Downsizing Amjith Dosas Sarasate Links DBCLI Haskell Learn you as haskell List Comprehension PGCLI MyCLI MSSQL-CLI Prompt Toolkit Podcast.__init__ Interview BPython DjangoCon EU CLI Helpers Python Generators PGSpecial Longboarding Irina Truong Thomas Roten(sp) PostGreSQL MySQL Microsoft SQL Server SQLite Oracle DB Cassandra DB The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/11/201830 minutes, 39 seconds
Episode Artwork

Pandas Extension Arrays with Tom Augspurger

Summary Pandas is a swiss army knife for data processing in Python but it has long been difficult to customize. In the latest release there is now an extension interface for adding custom data types with namespaced APIs. This allows for building and combining domain specific use cases and alternative storage mechanisms. In this episode Tom Augspurger describes how the new ExtensionArray works, how it came to be, and how you can start building your own extensions today. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Tom Augspurger about the extension interface for Pandas data frames and the use cases that it enables Interview Introductions How did you get introduced to Python? Most people are familiar with Pandas, but can you describe at a high level the new extension interface? What is the story behind the implementation of this functionality? Prior to this interface what was the option for anyone who wanted to extend Pandas? What are some of the new data types that are available as external packages? What are some of the unique use cases that they enable? How is the new interface implemented within Pandas? What were the most challenging or difficult aspects of building this new functionality? What are some of the more interesting possibilities that you are aware of for new extension types? What are the limitations of the interface for libraries that add new array functionality? What is the next major change or improvement that you would like to add in Pandas? Keep In Touch tomaugspurger on GitHub @TomAugspurger on Twitter Picks Tobias Black Panther Tom Dask-ML Links Pandas ExtensionArray Original IP Address proposal Mid-implementation blog post Dataframe Numpy Cyberpandas Geopandas GIS Arrow CuPy JQ Wes McKinney Array ufunc Matplotlib Altair Seaborn Bokeh Podcast.__init__ Interview Dask Data Engineering Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/4/201833 minutes, 26 seconds
Episode Artwork

Making A Difference Through Software With Eric Schles

Summary Software development is a skill that can create value and reduce drudgery in a wide variety of contexts. Sometimes the causes that are most in need of software expertise are also the least able to pay for it. By volunteering our time and abilities to causes that we believe in, we can help make a tangible difference in the world. In this episode Eric Schles describes his experiences working on social justice initiatives and the types of work that proved to be the most helpful to the groups that he was working with. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Eric Schles about how to get involved with social justice causes as an engineer Interview Introductions How did you get introduced to Python? What are some ways that engineers can create real-world impact with their skills? What are some of the common roadblocks to contribution that people should be aware of? What are some of the types of projects or tools that can provide the most value compared to the amount of effort? Do you have any advice for picking an organization or cause that will benefit the most from technical expertise? Many of the tools and systems that get built for public or non-profit organizations require some amount of data for them to be useful. Do you have any advice on methods for identifying, locating, or collecting the necessary information for feeding into these projects? What are some of the design factors that should be considered when building tools for these organizations to allow them to be maintainable and sustainable in the absense of an experienced engineer? Keep In Touch EricSchles on GitHub @EricSchles on Twitter Picks Tobias Shoes without laces Eric Catboost Pomegranate Links USDS 18F OCW Python Course SAS R Machine Learning Version Control GitHub Agile OCR (Optical Character Recognition) Eric Schles Interview On Podcast.__init__ Excel ETL (Extract Transform Load) Automate The Boring Stuff Web Scraping Thomas Levine Elasticsearch Trello The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/27/201843 minutes, 13 seconds
Episode Artwork

Asking Questions From Data Using Active Learning with Tivadar Danka

Summary One of the challenges of machine learning is obtaining large enough volumes of well labelled data. An approach to mitigate the effort required for labelling data sets is active learning, in which outliers are identified and labelled by domain experts. In this episode Tivadar Danka describes how he built modAL to bring active learning to bioinformatics. He is using it for doing human in the loop training of models to detect cell phenotypes with massive unlabelled datasets. He explains how the library works, how he designed it to be modular for a broad set of use cases, and how you can use it for training models of your own. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Tivadar Danka about modAL, a modular active learning framework for Python3 Interview Introductions How did you get introduced to Python? What is active learning? How does it differ from other approaches to machine learning? What is modAL and what was your motivation for starting the project? For someone who is using modAL, what does a typical workflow look like to train their models? How do you avoid oversampling and causing the human in the loop to become overwhelmed with labeling requirements? What are the most challenging aspects of building and using modAL? What do you have planned for the future of modAL? Keep In Touch @TivadarDanka on Twitter cosmic-cortex on GitHub https://www.tivadardanka.com?utmsource=rss&utmmedium=rss for anything else Picks Tobias Peter Rabbit Movie Tivadar Uri Alon: An Introduction to Systems Biology – Design Principles of Biological Circuits, book and online lectures Links modAL homepage modAL on GitHub modAL paper Bioinformatics Hungary Phenotypes Active Learning Supervised Learning Unsupervised Learning Snorkel Active Feature-Value Acquisition scikit-learn Entropy PyTorch Tensorflow Keras Jupyter Notebooks Bayesian Optimization Hyperparameters The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/21/201827 minutes, 51 seconds
Episode Artwork

Great Expectations For Your Data Pipelines with Abe Gong and James Campbell

Summary Testing is a critical activity in all software projects, but one that is often neglected in data pipelines. The complexities introduced by the inherent statefulness of the problem domain and the interdependencies between systems contribute to make pipeline testing difficult to manage. To make this endeavor more manageable Abe Gong and James Campbell have created Great Expectations. In this episode they discuss how you can use the project to create tests in the exploratory phase of building a pipeline and leverage those to monitor your systems in production. They also discussed how Great Expectations works, the difficulties associated with pipeline testing and managing associated technical debt, and their future plans for the project. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected] Your host as usual is Tobias Macey and today I’m interviewing James Campbell and Abe Gong about Great Expectations, a tool for testing the data in your analytics pipelines Interview Introduction How did you first get introduced to Python? What is Great Expectations and what was your motivation for starting it? What are some of the complexities associated with testing analytics pipelines? What types of tests can be executed to ensure data integrity and accuracy? What are some examples of the potential impact of pipeline debt? What is Great Expectations and how does it simplify the process of building and executing pipeline tests? What are some examples of the types of tests that can be built with Great Expectations? For someone getting started with Great Expectations what does the workflow look like? What was your reason for using Python for building it? How does the choice of language benefit or hinder the contexts in which Great Expectations can be used? What are some cases where Great Expectations would not be usable or useful? What have been some of the most challenging aspects of building and using Great Expectations? What are your hopes for Great Expectations going forward? Contact Info James jpcampb2 on GitHub Abe abegong on GitHub Website @AbeGong on Twitter Picks Tobias Fitbit Versa James Unplug and spend some time away from the computer Abe Superconductive Health Slack: Getting Past Burnout, Busy Work, and the Myth of Total Efficiency Links Superconductive Health Laboratory for Analytical Sciences Great Expectations Medium Post DAG (Directed Acyclic Graph) SLA (Service Level Agreement) Integration Testing Data Engineering Histogram Pandas SQLAlchemy Tutorial Videos Jupyter Notebooks Dataframe Airflow Luigi Spark Oozie Azkaban JSON XML The intro and outro music is from The Hug by The Freak Fandango Orchestra / CC BY-SA
5/13/201850 minutes, 42 seconds
Episode Artwork

Exploring Color Theory In Python With Thomas Mansencal

Summary We take it for granted every day, but creating and displaying vivid colors in our digital media is a complicated and often difficult process. There are different ways to represent color, the ways in which they are displayed can cause them to look different, and translating between systems can cause losses of information. To simplify the process of working with color information in code Thomas Mansencal wrote the Colour project. In this episode we discuss his motiviation for creating and sharing his library, how it works to translate and manage color representations, and how it can be used in your projects. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Thomas Mansencal about Colour, a python library for working with algorithms and transformations to explore color theory Interview Introductions How did you get introduced to Python? What is color theory? How does Colour assist in the process of working with some of the practical applications of colour science? What was your motivation for creating Colour? What are some example use cases for colour? One of the aspects of color in digital environments that is often confusing is the number of different ways that it can be represented. What are the relative benefits of things like RGB, HSV, CMYK, etc.? How is the Colour library architected and how has that evolved over time? Are there new developments in the area of color theory that need to be periodically incorporated into the library? What have you found to be some of the most often misunderstood aspects of color? What have been some of the most difficult or frustrating aspects of building, maintaining, and promoting Colour? What are some of the most interesting or unexpected uses of Colour that you have seen? What are your plans for the future of Colour? Keep In Touch Website Picks Tobias Beasts of Olympus by Lucy Coates Thomas Coursera Mathematics Machine Learning Course Links Colour Color Theory Color Science Weta Digital Wingnut AR Visual Effects Artist Allegro AutoDesk Maya PyQT Isaac Newton Color Wheel Colorimetry CIE VY Canis Majoris (Red Hypergiant) Rigel (Blue-White Supergiant) Kelvin Temperature Scale Black Body Radiation HDRI (High Dynamic Range Imaging) Adobe DNG SDK ICC OpenColorIO MERCK Group Color Space RGB HSV CMYK CIE XYZ CIE RGB CIE Lab CIE Luv sRGB Gamma Correction Additive Color Space Subtractive Color Space Color Blindness Gustavo Machado Rods and Cones Dichromacy Color Appearance Model Uniform Color Spaces JOSS ArXiv CIECAM02 Color Appearance Model Cinematic Color Jeremy Selan (Author of OpenColorIO) Academy Color Encoding System Color Appearance Models by Mark D. Fairchild The Reproduction of Colour by Dr. R.W.G. Hunt Color Science: Concepts and Methods, Quantitative Data and Formulae, 2nd Edition by Günther Wyszecki and W. S. Stiles Katherine Crowson Google Colab The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/6/201857 minutes, 40 seconds
Episode Artwork

Destroy All Software With Gary Bernhardt

Summary Many developers enter the market from backgrounds that don’t involve a computer science degree, which can lead to blind spots of how to approach certain types of problems. Gary Bernhardt produces screen casts and articles that aim to teach these principles with code to make them approachable and easy to understand. In this episode Gary discusses his views on the state of software education, both in academia and bootcamps, the theoretical concepts that he finds most useful in his work, and some thoughts on how to build better software. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Gary Bernhardt about teaching and learning Python in the current software landscape Interview Introductions How did you get introduced to Python? As someone who makes a living from teaching aspects of programming what is your view on the state of software education? What are some of the ways that we as an industry can improve the experience of new developers? What are we doing right? You spend a lot of time exploring some of the fundamental aspects of programming and computation. What are some of the lessons that you have learned which transcend software languages? Utility of graphs in understanding software Mechanical sympathy What are the benefits of ‘from scratch’ tutorials that explore the steps involved in building simple versions of complex topics such as compilers or web frameworks? Keep In Touch @garybernhardt on Twitter garybernhardt on GitHub Picks Tobias Terry Pratchett Gary Destroy All Software Deconstruct Conference Out Of The Tarpit Algorithms + Data Structures = Programs by Niklaus Wirth Dan Grossman Programming Languages Course (click the “Videos” links under “course materials”) U of W John Carmack post reconsidering some earlier positions Links Wat Birth and Death of Javascript Destroy All Software Deconstruct Data Structures Computer Science Compilers Programming Bootcamps Graph Theory Julia Evans @b0rk on Twitter Allen Downey Jupyter Notebook Halting Problem Idris Visual Basic 3.0 Set Theory ML Family of Languages SML, a simple dialect of ML SML/NJ, a compiler for SML OCamL, a more modern dialect of ML F#, an even newer dialect of ML Clojure, a modern Lisp-like language Lua Grammar (scroll to the very bottom for the full grammar) John Carmack Twitter Thread Explaining Episode Context The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/30/201852 minutes, 6 seconds
Episode Artwork

Scaling Deep Learning Using Polyaxon with Mourad Mourafiq

Summary With libraries such as Tensorflow, PyTorch, scikit-learn, and MXNet being released it is easier than ever to start a deep learning project. Unfortunately, it is still difficult to manage scaling and reproduction of training for these projects. Mourad Mourafiq built Polyaxon on top of Kubernetes to address this shortcoming. In this episode he shares his reasons for starting the project, how it works, and how you can start using it today. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Mourad Mourafiq about Polyaxon, a platform for building, training and monitoring large scale deep learning applications. Interview Introductions How did you get introduced to Python? Can you give a quick overview of what Polyaxon is and your motivation for creating it? What is a typical workflow for building and testing a deep learning application? How is Polyaxon implemented? How has the internal architecture evolved since you first started working on it? What is unique to deep learning workloads that makes it necessary to have a dedicated tool for deploying them? What does Polyaxon add on top of the existing functionality in Kubernetes? It can be difficult to build a docker container that holds all of the necessary components for a complex application. What are some tips or best practices for creating containers to be used with Polyaxon? What are the relative tradeoffs of the various deep learning frameworks that you support? For someone who is getting started with Polyaxon what does the workflow look like? What is involved in migrating existing projects to run on Polyaxon? What have been the most challenging aspects of building Polyaxon? What are your plans for the future of Polyaxon? Keep In Touch Website @mmourafiq on Twitter mouradmourafiq on GitHub Picks Tobias Kubernetes Kubernetes Up And Running Kelsey Hightower Food Fight Show With Kelsey Hightower Mourad Schopenhauer Links Polyaxon Investment Banking Luxembourg Matlab Text Mining Tensorflow Docker Kubernetes Deep Learning Free Deep Learning Textbook Machine Learning Engineer Hyperparameters Continuous Integration PyTorch MXNet Scikit-Learn Helm Mesos Spark SparkML The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/23/201835 minutes, 59 seconds
Episode Artwork

Electricity Map: Real Time Visibility of Power Generation with Olivier Corradi

Summary One of the biggest issues facing us is the availability of sustainable energy sources. As individuals and energy consumers it is often difficult to understand how we can make informed choices about energy use to reduce our impact on the environment. Electricity Map is a project that provides up to date and historical information about the balance of how the energy we are using is being produced. In this episode Olivier Corradi discusses his motivation for creating Electricity Map, how it is built, and his goals for the project and his other work at Tomorrow Co. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Olivier Corradi about Electricity Map and using Python to analyze data of global power generation Interview Introductions How did you get introduced to Python? What was your motivation for creating Electricity Map? How can an average person use or benefit from the information that is available in the map? What sources are you using to gather the information about how electricity is generated and distributed in various geographic regions? Is there any standard format in which this data is produced? What are the biggest difficulties associated with collecting and consuming this data? How much confidence do you have in the accuracy of the data sources? Is there any penalty for misrepresenting the fuel consumption or waste generation for a given plant? Can you describe the architecture of the system and how it has evolved? What are some of the most interesting uses of the data in your database and API that you are aware of? How do you measure the impact or effectiveness of the information that you provide through the different interfaces to the data that you have aggregated? How have you built a community around the project? How has the community helped in building and growing Electricity Map? What are some of the most unexpected things that you have learned in the process of building Electricity Map? What are your plans for the future of Electricity Map? Keep In Touch @corradio on Twitter LinkedIn corradio on GitHub Picks Tobias Rollerblading Olivier Deep Mind AlphaGo Documentary Consumer’s Guide To Climate Change Impact Links Electricity Map Machine Learning Youtube Climate Change Fossil Fuels Carbon Intensity Greenhouse Gas Equivalencies Calculations Open Data Electricity Map Project Source Lignite Marginal Carbon Intensity Electricity Map Forecast API IPCC (Intergovernmental Panel on Climate Change Redis D3.js Spark Tensorflow Spatiotemporal Data MongoDB Matrix Inversion PyGRIB Tomorrow Co. The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/15/201847 minutes, 53 seconds
Episode Artwork

Building And Growing Nylas with Christine Spang

Summary Email is one of the oldest methods of communication that is still in use on the internet today. Despite many attempts at building a replacement and predictions of its demise we are sending more email now than ever. Recognizing that the venerable inbox is still an important repository of information, Christine Spang co-founded Nylas to integrate your mail with the rest of your tools, rather than just replacing it. In this episode Christine discusses how Nylas is built, how it is being used, and how she has helped to grow a successful business with a strong focus on diversity and inclusion. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 200Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. Finding a bug in production is never a fun experience, especially when your users find it first. Airbrake error monitoring ensures that you will always be the first to know so you can deploy a fix before anyone is impacted. With open source agents for Python 2 and 3 it’s easy to get started, and the automatic aggregations, contextual information, and deployment tracking ensure that you don’t waste time pinpointing what went wrong. Go to podcastinit.com/airbrake today to sign up and get your first 30 days free, and 50% off 3 months of the Startup plan. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. And with their new Kubernetes integration it’s even easier to deploy and scale your build agents. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Christine Spang about Nylas and the modern era of email Interview Introductions How did you get introduced to Python? Can you explain what Nylas is and some of its history? What do you think it is about email as a protocol and a means of communication that has made it so resilient in the face of technological evolution? What lessons did you learn from your initial offering of the N1 mail client and how has that informed your current focus? Nylas as a company appears to have a strong focus on diversity and inclusion. Can you speak to how you encourage that type of environment and how it manifests at work? What are some of the ways that Python is used at Nylas? Can you share some examples of services that you have written in other languages and why you felt that Python was not the right choice? What are some of the use cases that Nylas enables? What are some of the most interesting or innovative uses of the Nylas platform that you have seen? How do you manage privacy and security in your sync service given the sensitivity of the data that you are handling? What are some of the biggest challenges that you are currently facing at Nylas? What do you think will be the future of email? Keep In Touch LinkedIn @spang on Twitter Website GitHub Picks Tobias Trello Christine Founders For Change Links Nylas MIT KSplice Debian Lisp REST Email N1 Mail Client Mailspring Nylas Employee Handbook Hackbright Academy Code2040 TextIO Key Values IMAP OAuth MySQL Gevent React CRM (Customer Relationship Management) SendGrid MailGun MailChimp GDPR (General Data Protection Regulation) SOC2 OWASP Top 10 Principle of Least Privilege The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/8/201843 minutes, 29 seconds
Episode Artwork

Synthetic Data Generation Using Mimesis with Nikita Sobolev

Summary Most applications require data to operate on in order to function, but sometimes that data is hard to come by, so why not just make it up? Mimesis is a library for randomly generating data of different types, such as names, addresses, and credit card numbers, so that you can use it for testing, anonymizing real data, or for placeholders. This week Nikita Sobolev discusses how the project got started, the challenges that it has posed, and how you can use it in your applications. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Nikita Sobolev about Mimesis, a library for quickly generating synthetic data Interview Introductions How did you get introduced to Python? What is mimesis and how does it compare to other projects such as faker and factory_boy? What was the motivation for creating it? One of the features that is advertised is the speed of Mimesis. What techniques are used to ensure that the data is generated quickly? What are the built in mechanisms for generating data? What options do users have for customizing the types of data that can get generated? What are some of the most complicated providers to write and maintain? What are some of the use cases outside of unit or integration tests where Mimesis could be beneficial? How would you use Mimesis to anonymize data from a production environment to be used for testing? What are the most challenging aspects of maintaining the Mimesis project? What are some of the plans that you have for the future of Mimesis? Keep In Touch sobolevn on GitHub @sobolevn on Twitter Email Picks Tobias Coco Nikita I Am A Mediocre Developer Links Mimesis Django Faker Factory Boy Internationalization (I18N) Unicode Enum Pipfile GeoJSON Mimesis Cloud Sanic GraphQL Impostor Syndrome Imposter Syndrome Disclaimer: Add this to all of your projects! Jacob Kaplan-Moss PyCon Keynote The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/1/201832 minutes, 37 seconds
Episode Artwork

Luminoth: AI Powered Computer Vision for Python with Joaquin Alori

Summary Making computers identify and understand what they are looking at in digital images is an ongoing challenge. Recent years have seen notable increases in the accuracy and speed of object detection due to deep learning and new applications of neural networks. In order to make it easier for developers to take advantage of these techniques Tryo Labs built Luminoth. In this interview Joaquín Alori explains how how Luminoth works, how it can be used in your projects, and how it compares to API oriented services for computer vision. Introduction 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. For complete visibility into your application stack, deployment tracking, and powerful alerting, DataDog has got you covered. With their monitoring, metrics, and log collection agent, including extensive integrations and distributed tracing, you’ll have everything you need to find and fix bugs in no time. Go to podcastinit.com/datadog today to start your free 14 day trial and get a sweet new T-Shirt. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) Your host as usual is Tobias Macey and today I’m interviewing Joaquín Alori about Luminoth, a deep learning toolkit for computer vision in Python Interview Introductions How did you get introduced to Python? What is Luminoth and what was your motivation for creating it? Computer vision has been a focus of AI research for decades. How do current approaches with deep learning compare to previous generations of tooling? What are some of the most difficult problems in visual processing that still need to be solved? What are the limitations of Luminoth for building a computer vision application and how do they differ from the capabilities of something built with a prior generation of tooling such as OpenCV? For someone who is interested in using Luminoth in their project what is the current workflow? How do the capabilities of Luminoth compare with some of the various service based options such as Rekognition for Amazon or the Cloud Vision API from Google? What are some of the motivations for using Luminoth in place of these services? What are some of the highest priority features that you are focusing on implementing in Luminoth? When is Luminoth the wrong choice for a computer vision application and what are some of the strongest alternatives at the moment? Keep In Touch @JoaquinAlori on Twitter LinkedIn Picks Tobias PyCon US Joaquin 3Blue1Brown Links Luminoth Luminoth Release Announcement Tryo Labs Uruguay Industrial Engineering Manufacturing Engineering Elon Musk Artificial Intelligence Deep Learning Neural Networks Object Detection Image Segmentation Convolutional Neural Network Recurrent Neural Network Back Propagation Geoff Hinton Capsule Networks Generative Adversarial Networks SVM (Support Vector Machine) Haar Classifiers OpenCV Drones GPU (Graphics Processing Unit) Rekognition Cloud Vision API TensorFlow Object Detection API Sonnet DeepMind Caffe The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/25/201821 minutes, 27 seconds
Episode Artwork

Thonny: The IDE For Beginning Programmers with Aivar Annamaa

Summary Learning to program is a rewarding pursuit, but is often challenging. One of the roadblocks on the way to proficiency is getting a development environment installed and configured. In order to simplify that process Aivar Annamaa built Thonny, a Python IDE designed for beginning programmers. In this episode he discusses his initial motivations for starting Thonny and how it helps newcomers to Python learn and understand how to write software. Preface 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 you’ll need somewhere to deploy it, so check out Linode. With private networking, shared block storage, node balancers, and a 40Gbit network, all controlled by a brand new API you’ve got everything you need to scale up. Go to podcastinit.com/linode to get a $20 credit and launch a new server in under a minute. For complete visibility into your application stack, deployment tracking, and powerful alerting, DataDog has got you covered. With their monitoring, metrics, and log collection agent, including extensive integrations and distributed tracing, you’ll have everything you need to find and fix bugs in no time. Go to podcastinit.com/datadog today to start your free 14 day trial and get a sweet new T-Shirt. To get worry-free releases download GoCD, the open source continous delivery server built by Thoughworks. You can use their pipeline modeling and value stream map to build, control and monitor every step from commit to deployment in one place. Go to podcastinit.com/gocd to learn more about their professional support services and enterprise add-ons. Visit podcastinit.com to subscribe to the show, sign up for the newsletter, and read the show notes. Your host as usual is Tobias Macey and today I’m interviewing Aivar Annamaa about Thonny, a Python IDE for beginning programmers Interview Introductions How did you get introduced to Python? What was your motivation for building an IDE focused on beginning programmers? What are the features of Thonny that make it easier for users to understand what is happening in their programs? What have you found to be the types of issues that users most frequently struggle with and how does Thonny help overcome those gaps in understanding? What kinds of tutorials or supporting material have you found to be the most useful for teaching students the principles that they need to be able to take advantage of the environment that Thonny provides? How is Thonny built and what have been the most challenging aspects of writing an IDE in Python? What are some of the interface design choices that you have made to avoid confusing or overwhelming beginning users? Once a user becomes more proficient in Python is there a point where it no longer makes sense to continue using Thonny for development? I noticed that Thonny has an plugin architecture and there is an extension for interacting with the BBC micro:bit. What are some of the other types of extensions that you would like to see built for Thonny? Keep In Touch Aivar @aivarannamaa on Twitter aivarannamaa on GitHub Google Scholar Page Thonny Website Forum @thonnyide on Twitter Source repository and wiki Picks Tobias Data Engineering Podcast Kubo and the Two Strings Aivar MicroPython Podcast.__init__ Interview How to Talk So Kids Will Listen & Listen So Kids Will Talk Links Thonny University of Tartu Estonia Recursion TKinter Aivar Estonian Textbook Pascal MyPy Podcast.__init__ Interview BBC Micro:bit Version Control GitHub GitLab Elm Compiler Messages The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/18/201829 minutes, 50 seconds
Episode Artwork

Keeping The Beets with Adrian Sampson

Summary Maintaining a consistent taxonomy for your music library is a challenging and time consuming endeavor. Eventually you end up with a mess of folders and files with inconsistent names and missing metadata. Beets is built to solve this problem by programmatically managing the tags and directory structure for all of your music files and providing a fast lookup when you are trying to find that perfect song to play. Adrian Sampson began the project because he was trying to clean up his own music collection and in this episode he discusses how the project was built, how streaming media is affecting our relationship to digital music, and how he envisions Beets position in the ecosystem in the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Adrian Sampson about Beets, the swiss army knife for managing your music library. Interview Introductions How did you get introduced to Python? What is Beets and what was your reason for creating it? What was your reason for using Python and if you were to start over today would you make the same choice? If I have a directory with inconsistent naming conventions, poor organization, and some random folders full of mixed MP3 files how can Beets help me and what does the workflow look like? How is Beets architected to allow for interactively processing a large volume of media files and how has the design evolved over the time that you have been working on it? What are your thoughts on the current trend toward streaming music services replacing local media files? What have been some of the most challenging aspects of building Beets? What are some of the most interesting uses for Beets that you have seen? What are some of the other projects for managing a music library and how does Beets compare to them? Are there any features that you have planned for the future of Beets, or any new functionality that you would like to see contributed? Keep In Touch sampsyo on GitHub Website @samps on Twitter Picks Tobias Mozart’s Requiem Wikipedia YouTube Gov’t Mule Darkest Hour Adrian Spiralizer Spiralized Beats With Pesto Links Beets SQLite Mutagen ID3 Tags Musicbrainz Bandcamp Free Music Archive Cornell AcoustID Chromaprint Musicbrainz Picard iTunes Spotify Amazon Music DLNA UPnP AURA The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/12/201839 minutes, 23 seconds
Episode Artwork

Salabim: Logistics Simulation with Ruud van der Ham

Summary Determining the best way to manage the capacity and flow of goods through a system is a complicated issue and can be exceedingly expensive to get wrong. Rather than experimenting with the physical objects to determine the optimal algorithm for managing the logistics of everything from global shipping lanes to your local bank, it is better to do that analysis in a simulation. Ruud van der Ham has been working in this area for the majority of his professional life at the Dutch port of Rotterdam. Using his acquired domain knowledge he wrote Salabim as a library to assist others in writing detailed simulations of their own and make logistical analysis of real world systems accessible to anyone with a Python interpreter. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Ruud van der Ham about Salabim, a Python library for conducting discrete event simulations Interview Introductions How did you get introduced to Python? Can you start by explaining what Discrete Event Simulation is and how Salabim helps with that? Can you explain how you chose the name? What was your motivation for creating Salabim and how does it compare to other tools for discrete event simulation? How does discrete event simulation compare with state machines? How is Salabim implemented and how has the design evolved over the time that you have been working on it? I understand that you have done a majority of Salabim was written on an iPad. Can you speak about why you have chosen that as your development environment and your experience working in that manner? What are some examples of the types of models that you can model with Salabim? What would an implementation of one of these models look like for someone using Salabim? What options does a user have to verify the accuracy of a simulation created with Salabim? One of the nice aspects of Salabim is the fact that it provides a visual output as a simulation runs. Can you describe the workflow for someone who wants to use Salabim for modeling and visualizing a system? At what point does a system become too complex to encapsulate in a simulation and what techniques can you use to modularize it to make a simulation useful? When is Salabim not the right tool to use and what would you suggest for people who find themselves in that situation? What have been some of the most complicated or difficult aspects of building and maintaining Salabim? What are some of the new features or improvements that you have planned for the future of Salabim? Keep In Touch Email Picks Tobias Cuisinart Burr Mill Coffee Grinder Ruud Pythonista (Python for iOS) Python Notes for Professionals Fluent Python by Luciano Ramalho Links Salabim GitHub Dining Philosophers Animation Elevator Animation Rotterdam Discrete Event Simulation Container Terminal Automation Basic Algol Pascal Operations Research Continuous Simulation Simula Coroutines SymPy Another DES in Python: SimPy DES in Julia: SimJulia DES in R: Simmer DES in Delphi/Pascal: Tomas Pillow PyPy Delphi PyGame PyQT TkInter Inspect Module OpenCV Blender The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/4/201851 minutes, 38 seconds
Episode Artwork

Laboratory: Safer Refactoring with Joe Alcorn

Summary Every piece of software that has been around long enough ends up with some piece of it that needs to be redesigned and refactored. Often the code that needs to be updated is part of the critical path through the system, increasing the risks associated with any change. One way around this problem is to compare the results of the new code against the existing logic to ensure that you aren’t introducing regressions. This week Joe Alcorn shares his work on Laboratory, how the engineers at GitHub inspired him to create it as an analog to the Scientist gem, and how he is using it for his day job. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. A brief announcement before we start the show: If you work with data or want to learn more about how the projects you have heard about on the show get used in the real world then join me at the Open Data Science Conference in Boston from May 1st through the 4th. It has become one of the largest events for data scientists, data engineers, and data driven businesses to get together and learn how to be more effective. To save 60% off your tickets go to podcastinit.com/odsc-east-2018 and register. Your host as usual is Tobias Macey and today I’m interviewing Joe Alcorn about using Laboratory as a safety net for your refactoring. Interview Introductions How did you get introduced to Python? Can you start be explaining what Laboratory is and what motivated you to start the project? How much of the design and implementation were directly inspired by the Scientist project from GitHub and how much of it did you have to figure out from scratch due to differences in the target languages? What have been some of the most challenging aspects of building and maintaining Laboratory, and have you had any opportunities to use it on itself? For someone who would like to use Laboratory in their project, what does the workflow look like and what potential pitfalls should they watch out for? In the documentation you mention that portions of code that perform I/O and create side effects should be avoided. Have you found any strategies to allow for stubbing out the external interactions while still executing the rest of the logic? How do you keep track of the results for active experiments and what sort of reporting is available? What are some examples of the types of routines that would be good candidates for conducting an experiment? What are some of the most complicated or difficult pieces of code that you have refactored with the help of Laboratory? Given the fact that Laboratory is intended to be run in production and provide a certain measure of safety, what methods do you use to ensure that users of the library will not suffer from a drastic increase in overhead or unintended aberrations in the functionality of their software? Are there any new features or improvements that you have planned for future releases of Laboratory? Keep In Touch joealcorn on GitHub Website Picks Tobias Chronicles of Narnia Joe Why We Sleep: Unlocking The Power of Sleep and Dreams by Matthew Walker, PhD Links Marvel App GitHub: Move Fast and Fix Things GitHub Scientist: Measure Twice, Cut Over Once Scientist Laboratory Sure Footed Refactoring Graphite StatsD The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/26/201821 minutes, 53 seconds
Episode Artwork

Software Architecture For Developers with Neal Ford

Summary Whether it is intentional or accidental, every piece of software has an existing architecture. In this episode Neal Ford discusses the role of a software architect, methods for improving the design of your projects, pitfalls to avoid, and provides some resources for continuing to learn about how to design and build successful systems. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. A few announcements before we start the show: There is still time to register for the O’Reilly Software Architecture Conference in New York. Use the link podcastinit.com/sacon-new-york to register and save 20% If you work with data or want to learn more about how the projects you have heard about on the show get used in the real world then join me at the Open Data Science Conference in Boston from May 1st through the 4th. It has become one of the largest events for data scientists, data engineers, and data driven businesses to get together and learn how to be more effective. To save 60% off your tickets go to podcastinit.com/odsc-east-2018 and register. With many thanks to O’Reilly Media, I have two items to give away. To sign up you just need to subscribe to the mailing list at podcastinit.com and you will have the chance to win either a copy of Neal’s book, Building Evolutionary Architectures, or a Bronze ticket to the O’Reilly Software Architecture Conference in New York. I will be picking the winners on February 21st. Your host as usual is Tobias Macey and today I’m interviewing Neal Ford about principles of software architecture for developers Interview Introductions How did you get introduced to Python? A majority of your work has been focused on software architectures and how that can be used to facilitate delivery of working systems. Can you start by giving a high level description of what software architecture is and how it fits into the overall development process? One of the difficulties that arise in long-lived projects is that technical debt accrues to the point that forward progress stagnates due to fear that any changes will cause the system to stop functioning. What are some methods that developers can use to either guard against that eventuality, or address it when it happens? What are some of the broad categories of architectural patterns that developers should be aware of? Are there aspects of the language that a system or application is being implemented in which influence the style of architecture that is commonly used? What are some architectural anti-patterns that you have found to be the most commonly occurring? Software is useless if there is no way to deliver it to the end user. What are some of the challenges that are most often overlooked by engineering teams and how do you solve for them? Beyond the purely technological aspects, what other elements of software production and delivery are necessary for a successful architecture? What resources can you recommend for someone who is interested in learning more about software architecture, whether as an individual contributor or in a full time architect role? Keep In Touch Website @neal4d on Twitter Picks Tobias Jumanji: Welcome to the Jungle Lost City of Z Neal DeveloperToArchitect.com EvolutionaryArchitecture.com Broken Earth Series Links Thoughtworks Neal’s Blog Lisp Thoughtworks Technology Radar Martin Fowler: Who Needs an Architect? O’Reilly Software Architecture Conference Soft Skills Microservices Building Evolutionary Architectures Github: Move Fast and Fix Things Continuous Delivery Github Scientist Laboratory (Scientist in Python) Agile Development The Accidental Architect System Quality Attributes Pipes and Filters MapReduce Hadoop Service Oriented Architecture Linux DevOps Configuration Management React Alibaba Open Source Baidu Open Source Pragmatic Programmer Trunk Based Development PlantUML Visio Mermaid Diagrams Graphviz Evernote Software Architecture Fundamentals Enterprise Integration Patterns Architectural Katas The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/18/201850 minutes, 28 seconds
Episode Artwork

ZimboPy

Summary Learning to code is one of the most effective ways to be successful in the modern economy. To that end, Marlene Mhangami and Ronald Maravanyika created the ZimboPy organization to teach women and girls in Zimbabwe how to program in Python. In this episode they are joined by Mike Place to discuss how ZimboPy got started, the projects that their students have worked on, and how the community can get involved. Preface mu- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. – I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. – When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. – If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. – Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) – To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. – Your host as usual is Tobias Macey and today I’m interviewing Marlene Mhangami, Mike Place, and Ronald Maravanyika about ZimboPy, an organization that teaches women and girls in Zimbabwe how to program using Python Interview Introductions How did you get introduced to Python? Can you start by explaining what the mission of ZimboPy is and how it got started? Which languages did you consider using for your lessons and what was your reason for choosing Python? What subject matter do you cover in addition to pure programming concepts? What are some of the types of projects that the students have completed as part of their work with ZimboPy? What have been the most challenging aspects of running ZimboPy? How is ZimboPy supported and what are your plans to ensure future sustainability? Can you share some success stories for the women and girls that you have worked with? For anyone who is interested in replicating your work for other communities what advice do you have? Keep In Touch Mike cachedout on GitHub @cachedout on Twitter cachedout on Keybase Ronald Rmaravanyika on GitHub @Rmaravanyika on Twitter Marlene @marlenezw on Twitter LinkedIn Picks Tobias Click Ronald Odoo formerly OpenERP Links ZimboPy Unilever Django Girls Thomas Hatch SaltStack Zimbabwe Mechatronics Raspberry Pi OpenCV ZimboPy Curriculum ZimboPy Storefront Oxfam Open Collective ZimboPy Mentorship Registration The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/11/201829 minutes, 20 seconds
Episode Artwork

PyRay: Pure Python 3D Rendering with Rohit Pandey

Summary Using a rendering library can be a difficult task due to dependency issues and complicated APIs. Rohit Pandey wrote PyRay to address these issues in a pure Python library. In this episode he explains how he uses it to gain a more thorough understanding of mathematical models, how it compares to other options, and how you can use it for creating your own videos and GIFs. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. A few announcements before we start the show: There’s still time to get your tickets for PyCon Colombia, happening February 9th and 10th. Go to pycon.co to learn more and register. There is also still time to register for the O’Reilly Software Architecture Conference in New York. Use the link podcastinit.com/sacon-new-york to register and save 20% If you work with data or want to learn more about how the projects you have heard about on the show get used in the real world then join me at the Open Data Science Conference in Boston from May 1st through the 4th. It has become one of the largest events for data scientists, data engineers, and data driven businesses to get together and learn how to be more effective. To save 60% off your tickets go to podcastinit.com/odsc-east-2018 and register. Your host as usual is Tobias Macey and today I’m interviewing Rohit Pandey about PyRay, a 3d rendering library written completely in python Interview Introductions How did you get introduced to Python? Can you start by explaining what PyRay is and what motivated you to create it? [rohit] PyRay is an open source library written completely in Python that let’s you render three and higher dimensional objects and scenes. Development on it has been ongoing and new features have so far come about from videos for my Youtube channel. What does the internal architecture of PyRay look like and how has that design evolved since you first started working on it? What capabilities are unlocked by having a pure Python rendering library which would otherwise be impractical or impossible for Python developers to do with existing options? [rohit] Having a pure Python library makes it accessible with minimal fixed cost to Python users. The tradeoff is you lose on speed, but for many applications that isn’t an issue. I haven’t seen a library coded completely in Python that let’s you manipulate 3d and higher dimensional objects. The core usecase right now is Mathematical artwork. Google geometric gifs and you’ll see some fascinating, mesmerizing results. But those are created for the most part using tools that are not Python. Which is a pity since Python has a very extensive library of Mathematical functions. What have been some of the most challenging aspects of building and maintaining PyRay? [rohit] 3d objects – getting mesh plots. I have to develop routines from scratch for almost everything – shading objects, etc. Animated routines for characters. What are some of the most interesting or unexpected uses of PyRay that you are aware of? [rohit] Physical simulations. Ex: Testing if a solid is a fair die, getting lower bounds for space packing efficiencies of solids. Creating interactive demos where a user can draw to provide input. For someone who wanted to contribute to PyRay are there any particular skills or experience that would be most helpful? Basic linear algebra and python What are some of the features or improvements that you have planned for the future of PyRay? Keep In Touch pyray repo – https://github.com/ryu577/pyray?utmsource=rss&utmmedium=rss – Email – GitHub – LinkedIn Picks Tobias Berserker Series by Fred Saberhagen Rohit Samurai Math Youtube Channel 3 Blue 1 Brown Youtube Channel Isaac Arthur Youtube Channel Links PyRay PyRay Youtube Videos Microsoft Azure Data Science Columbia University R Nielsen 3Blue1Brown – Music and Measure Theory Manim Python Subreddit Maya Blender Panda3D POVRay Pillow NumPy SciPy Support Vector Machine Logistic Regression Geometric GIFs Vapory RGB vs HSL Color Scales FFMPEG Quaternions The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/5/201842 minutes, 41 seconds
Episode Artwork

MonkeyType with Carl Meyer and Matt Page

Summary One of the draws of Python is how dynamic and flexible the language can be. Sometimes, that flexibility can be problematic if the format of variables at various parts of your program is unclear or the descriptions are inaccurate. The growing middle ground is to use type annotations as a way of providing some verification of the format of data as it flows through your application and enforcing gradual typing. To make it simpler to get started with type hinting, Carl Meyer and Matt Page, along with other engineers at Instagram, created MonkeyType to analyze your code as it runs and generate the type annotations. In this episode they explain how that process works, how it has helped them reduce bugs in their code, and how you can start using it today. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. A few announcements before we start the show: There’s still time to get your tickets for PyCon Colombia, happening February 9th and 10th. Go to pycon.co to learn more and register. There is also still time to register for the O’Reilly Software Architecture Conference in New York Feb 25-28. Use the link podcastinit.com/sacon-new-york to register and save 20% If you work with data or want to learn more about how the projects you have heard about on the show get used in the real world then join me at the Open Data Science Conference in Boston from May 1st through the 4th. It has become one of the largest events for data scientists, data engineers, and data driven businesses to get together and learn how to be more effective. To save 60% off your tickets go to podcastinit.com/odsc-east-2018 and register. Your host as usual is Tobias Macey and today I’m interviewing Carl Meyer and Matt Page about MonkeyType, a system to collect type information at runtime for your Python 3 code Interview Introductions How did you get introduced to Python? What is MonkeyType and how did the project get started? How much overhead does the MonkeyType tracing add to the running system, and what techniques have you used to minimize the impact on production systems? Given that the type information is collected from call traces at runtime, and some functions may accept multiple different types for the same arguments (e.g. add), do you have any logic that will allow for combining that information into a higher-order type that gets set as the annotation? How does MonkeyType function internally and how has the implementation evolved over the time that you have been working on it? Once the type annotations are present in your code base, what other tooling are you using to take advantage of that information? It seems as though using MonkeyType to trace your running production systems could be a way to inadvertantly identify dead sections of code that aren’t being executed. Have you investigated ways to use the collected type information perform that analysis? What have been some of the most challenging aspects of building, using, and maintaining MonkeyType? What have been some of the most interesting or noteworthy things that you have learned in the process of working on and with MonkeyType? What have you found to be the most useful and most problematic aspects of the typing capabilities provided in recent versions of Python? For someone who wants to start using MonkeyType today, what is involved in getting it set up and using it in a new or existing codebase? What features or improvements do you have planned for future releases of MonkeyType? Keep In Touch Carl Email @carljm on Twitter Matt Email @voidstar on Twitter Picks Tobias LyxPro HAS-30 Headphones Carl Broadchurch Happy Valley Matt Anova Sous Vide Links MonkeyType Instagram Dive Into Python Python 3 Typing Module MyPy Project Page Podcast.init Interview Mike Krieger PyAnnotate Type Annotations Type Stubs PEP 523 frame evaluation api Scuba Haskell Rust PEP 563 Postponed Evaluation of Annotations Gary Bernhardt – Ideology coverage.py The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/28/201848 minutes, 25 seconds
Episode Artwork

Learn Leap Fly: Using Python To Promote Global Literacy with Kjell Wooding

Summary Learning how to read is one of the most important steps in empowering someone to build a successful future. In developing nations, access to teachers and classrooms is not universally available so the Global Learning XPRIZE serves to incentivize the creation of technology that provides children with the tools necessary to teach themselves literacy. Kjell Wooding helped create Learn Leap Fly in order to participate in the competition and used Python and Kivy to build a platform for children to develop their reading skills in a fun and engaging environment. In this episode he discusses his experience participating in the XPRIZE competition, how he and his team built what is now Kasuku Stories, and how Python and its ecosystem helped make it possible. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Kjell Wooding about Learn Leap Fly, a startup using Python on mobile devices to facilitate global learning Interview Introductions How did you get introduced to Python? Can you start by describing what Learn Leap Fly does and how the company got started? What was your motivation for using Kivy as the primary technology for your mobile applications as opposed to the platform native toolkits or other multi-platform frameworks? What are some of the pedagogical techniques that you have incorporated into the technological aspects of your mobile application and are there any that you were unable to translate to a purely technical implementation. How do you measure the effectiveness of the work that you are doing? How has the framework of the XPRIZE influenced the way in which you have approached the design and development of your work? What have been some of the biggest challenges that you faced in the process of developing and deploying your submission for the XPRIZE? What are some of the features that you have planned for future releases of your platform? Keep In Touch Learn Leap Fly Website @learnleapfly on Twitter Kjell llfkj on GitHub @pdokj on Twitter Picks Tobias Yamaha YHT-4930UBL Home Theater System Kjell Instant Pot Anova Sous Vide Modernist Cooking at Home Links Programming Python (O’Reilly) Learn Leap Fly Tim Ferriss Peter Diamandis Global Learning XPRIZE Kasuku Beta Program XPRIZE Foundation Kivy Kivy Flappy Bird Podcast.init Kivy Interview Deliberate Practice Google Pixel C Bayesian Learning SciPy NumPy Keras The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/21/201843 minutes, 7 seconds
Episode Artwork

Healthchecks.io: Open Source Alerting For Your Cron Jobs with Pēteris Caune

Summary Your backups are running every day, right? Are you sure? What about that daily report job? We all have scripts that need to be run on a periodic basis and it is easy to forget about them, assuming that they are working properly. Sometimes they fail and in order to know when that happens you need a tool that will let you know so that you can find and fix the problem. Pēteris Caune wrote Healthchecks to be that tool and made it available both as an open source project and a hosted version. In this episode he discusses his motivation for starting the project, the lessons he has learned while managing the hosting for it, and how you can start using it today. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Pēteris Caune about Healthchecks, a Django app which serves as a watchdog for your cron tasks Interview Introductions How did you get introduced to Python? Can you start by explaining what Healthchecks is and what motivated you to build it? How does Healthchecks compare with other cron monitoring projects such as Cronitor or Dead Man’s Snitch? Your pricing on the hosted service for Healthchecks.io is quite generous so I’m curious how you arrived at that cost structure and whether it has proven to be profitable for you? How is Healthchecks functionality implemented and how has the design evolved since you began working on and using it? What have been some of the most challenging aspects of working on Healthchecks and managing the hosted version? For someone who wants to run their own instance of the service what are the steps and services involved? What are some of the most interesting or unusual uses of Healtchecks that you are aware of? Given that Healthchecks is intended to be used as part of an operations management and alerting system, what are the considerations that users should be aware of when deploying it in a highly available configuration? What improvements or features do you have planned for the future of Healthchecks? Keep In Touch cuu508 on GitHub Blog @cuu508 on Twitter Picks Tobias LG 55UJ6300 Pēteris Zwift TrainerRoad Links Healthchecks.io GitHub Riga Latvia Cross Country Cycling Semantic Web Django Flask Cron Cronitor.io Dead Man’s Snitch IPv6 Load Balancing PostGreSQL MySQL Fabric Ansible Dokku Kubernetes Hetzner CloudFlare PGPool II Streaming Replication Citus Data Website Data Engineering Podcast Interview Heroku Fork the Evolution of healthchecks.io Hosting Setup The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/14/201827 minutes, 24 seconds
Episode Artwork

Bonobo: Lightweight ETL Toolkit for Python 3 with Romain Dorgueil

Summary A majority of the work that we do as programmers involves data manipulation in some manner. This can range from large scale collection, aggregation, and statistical analysis across distrbuted systems, or it can be as simple as making a graph in a spreadsheet. In the middle of that range is the general task of ETL (Extract, Transform, and Load) which has its own range of scale. In this episode Romain Dorgueil discusses his experiences building ETL systems and the problems that he routinely encountered that led him to creating Bonobo, a lightweight, easy to use toolkit for data processing in Python 3. He also explains how the system works under the hood, how you can use it for your projects, and what he has planned for the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Romain Dorgueil about Bonobo, a data processing toolkit for modern Python Interview Introductions How did you get introduced to Python? What is Bonobo and what was your motivation for creating it? What is the story behind the name? How does Bonobo differ from projects such as Luigi or Airflow? [RD] After I explain why that’s totally different things, maybe a good follow up would be to ask about differences from other data streaming solutions, like Apache Beam or Spark. How is Bonobo implemented and how has its architecture evolved since you began working on it? What have been some of the most challenging aspects of building and maintaining Bonobo? What are some extensions that you would like to have but don’t have the time to implement? What are some of the most interesting or creative uses of Bonobo that you are aware of? What do you have planned for the future of Bonobo? Keep In Touch Bonobo Project Bonobo ETL Slack GitHub Romain Website @rdorgueil on Twitter hartym on GitHub Picks Tobias Data Skeptic: Quantum Computing Romain Medikit, or how to manage hundreds of projects at the same time, still being able to sleep at night. Rocker, a better builder for docker images. Links Bonobo RedHat Anaconda Installer ETL Pentaho RDC.ETL DAG (Directed Acyclic Graph) Luigi Airflow NamedTuple Jupyter OAuth Graphviz Dask Data Engineering Podcast Dask Interview Selenium Zapier IFTTT (If This Then That) FPGA The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/7/201853 minutes, 57 seconds
Episode Artwork

Orange: Visual Data Mining Toolkit with Janez Demšar and Blaž Zupan

Summary Data mining and visualization are important skills to have in the modern era, regardless of your job responsibilities. In order to make it easier to learn and use these techniques and technologies Blaž Zupan and Janez Demšar, along with many others, have created Orange. In this episode they explain how they built a visual programming interface for creating data analysis and machine learning workflows to simplify the work of gaining insights from the myriad data sources that are available. They discuss the history of the project, how it is built, the challenges that they have faced, and how they plan on growing and improving it in the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Blaž Zupan and Janez Demsar about Orange, a toolbox for interactive machine learning and data visualization in Python Interview Introductions How did you get introduced to Python? What is Orange and what was your motivation for building it? Who is the target audience for this project? How is the graphical interface implemented and what kinds of workflows can be implemented with the visual components? What are some of the most notable or interesting widgets that are available in the catalog? What are the limitations of the graphical interface and what options do user have when they reach those limits? What have been some of the most challenging aspects of building and maintaining Orange? What are some of the most common difficulties that you have seen when users are just getting started with data analysis and machine learning, and how does Orange help overcome those gaps in understanding? What are some of the most interesting or innovative uses of Orange that you are aware of? What are some of the projects or technologies that you consider to be your competition? Under what circumstances would you advise against using Orange? What are some widgets that you would like to see in future versions? What do you have planned for future releases of Orange? Keep In Touch Blaž University Bio @bzupan on Twitter BlazZupan on GitHub Google Scholar Janez University Bio @jademsar on Twitter janezd on GitHub Google Scholar Picks Tobias Data Stories: What’s Going On In This Graph? Blaž How I Built This Janez Advent of Code Links University of Ljubljani Data Explorer Silicon Graphics Visual Programming PyQT Linear Regression t-SNE K-Means TCL/TK Numpy Scikit-Learn SciPy Textable.io RapidMiner Single Cell Genomics Transfer Learning Orange Video Tutorials The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/31/201749 minutes, 5 seconds
Episode Artwork

Dramatiq: Distributed Task Queue For Python 3 with Bogdan Popa

Summary A majority of projects will eventually need some way of managing periodic or long-running tasks outside of the context of the main application. This is where a distributed task queue becomes useful. For many in the Python community the standard option is Celery, though there are other projects to choose from. This week Bogdan Popa explains why he was dissatisfied with the current landscape of task queues and the features that he decided to focus on while building Dramatiq, a new, opinionated distributed task queue for Python 3. He also describes how it is designed, how you can start using it, and what he has planned for the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Bogdan Popa about Dramatiq, a distributed task processing library for Python with a focus on simplicity, reliability and performance Interview Introductions How did you get introduced to Python? What is Dramatiq and what was your motivation for creating it? How does Dramatiq compare to other task queues in Python such as Celery or RQ? How is Dramatiq implemented and how has the internal architecture evolved? What have been some of the most difficult aspects of building Dramatiq? What are some of the features that you are most proud of? For someone who is interested in integrating Dramatiq into an application, can you describe the steps involved and the API? Do you provide any form of migration path or compatibility layer for people who are currently using Celery or RQ? Can you describe the licensing structure for the project and your reasoning? How did you determine the price point for commercial licenses? Have you been successful in selling licenses for commercial use? What are some of the features that you have planned for future releases? Keep In Touch Project Website Personal Website Bogdanp on GitHub @Bogdanp on Twitter Picks Tobias The Anybodies by N.E. Bode Bogdan Pipenv Links Dramatiq LeadPages Lisp Celery RQ Billiard Kombu Google App Engine GAE Task Queue RabbitMQ APScheduler Redis Memcached LRU (Least Recently Used) Middleware Gevent Pika SQS (Amazon Simple Queue Service) Google Cloud PubSub Django API* Bundler Cargo The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/24/201738 minutes, 13 seconds
Episode Artwork

Jake Vanderplas: Data Science For Academic Research

Summary Jake Vanderplas is an astronomer by training and a prolific contributor to the Python data science ecosystem. His current role is using Python to teach principles of data analysis and data visualization to students and researchers at the University of Washington. In this episode he discusses how he got started with Python, the challenges of teaching best practices for software engineering and reproducible analysis, and how easy to use tools for data visualization can help democratize access to, and understanding of, data. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Jake Vanderplas about data science best practices, and applying them to academic sciences Interview Introductions How did you get introduced to Python? How has your astronomy background informed and influenced your current work? In your work at the University of Washington, what are some of the most common difficulties that students face when learning data science? How does that list differ for professional scientists who are learning how to apply data science to their work? Where is the tooling still lacking in terms of enabling consistent and repeatable workflows? One of the projects that you are spending time on now is Altair, which is a library for generating visualizations from Pandas dataframes. How does that work factor into your teaching? What are some of the most novel applications of data science that you have been involved with? What are some of the trends in data analysis that you are most excited for? Keep In Touch Website @jakevdp jakevdp on GitHub Picks Tobias The Redwall Cookbook Jake Kevin M. Kruse White Flight by Kevin Kruse Links UW eScience Institute NumPy SciPy SciPy Conference PyCon Pandas Sloan Digital Sky Survey Spectroscopy Software Carpentry Data Carpentry Git Mercurial Matplotlib Altair Conda Xonsh Jupyter Jupyter Lab Vega Vega-lite Interactive Data Lab D3 Mike Bostock Brian Granger Bokeh Grammar of Graphics ggplot2 Holoviews Wikimedia AstroPy Podcast.__init__ Interview About AstroPy LIGO Wes McKinney Feather The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/17/201749 minutes, 27 seconds
Episode Artwork

Kenneth Reitz

Summary Kenneth Reitz has contributed many things to the Python community, including projects such as Requests, Pipenv, and Maya. He also started the community written Hitchhiker’s Guide to Python, and serves on the board of the Python Software Foundation. This week he talks about his career in the Python community and digs into some of his current work. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Kenneth Reitz about his career in Python Interview Introductions How did you get introduced to Python? An overarching theme of your open source projects is the idea of making them “For Humans”. Can you elaborate on how that came to be a focus for you and how that informs the way that you design and write your code? What are the projects that you are most proud of and which do you think have had the biggest impact on the Python community? A: Requests, Hitchhiker’s Guide to Python, and Pipenv (yet to come to full fruition). Which projects have you authored which are relatively unknown but you think people would benefit from using more often? A: Maya: Datetime for Humans, and Records: SQL for Humans. Outside of the code that you write, what are some of your personal missions for the software industry in general and the Python community in particular? A: I consider myself a “spiritual alchemist”, which means “transformation of dark into light”. I seek to do “the great work”, in however in manifests, outside of the programming world, as well as within it. What do you think is the biggest gap in the tool chest for Python developers? A: I seek to fill all the voids that I see, and I’ve done my best to do that to the best of my ability. I think we have a lot of work to do in the area of single-file executable builds (a-la Go). What are your ambitions for future projects? A: At the moment, I have no current plans for future projects, but I’m sure something will come along at some point If you weren’t working with Python what would you be doing instead? A: I’d have a lot less money and I’d be a lot less fufilled. Keep In Touch Website @kennethreitz on Twitter kennethreitz on GitHub Picks Tobias Algorithms to Live By Kenneth The Linux Programming Interface Links Heroku Salesforce PSF Board of Directors Caldera Linux C Pascal Basic Groovy Java PHP Ruby The Design of Everyday Things Requests Hitchhiker’s Guide Pipenv Pipfile The Update Framework Falsehoods Programmer’s Believe About Time PEP20 Py2EXE Cxfreeze Briefcase The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/10/201742 minutes, 49 seconds
Episode Artwork

Asphalt: A Framework For Asynchronous Network Applications with Alex Grönholm

Summary As we rely more on small, distributed processes for building our applications, being able to take advantage of asynchronous I/O is increasingly important for performance. This week Alex Grönholm explains how the Asphalt Framework was created to make it easier to build these network oriented software stacks and the technical challenges that he faced in the process. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Alex Grönholm about the Asphalt Framework, a Python microframework for network oriented applications Interview Introductions How did you get introduced to Python? What is Asphalt and what was your reason for building it? How does Asphalt compare to Twisted? What are the most challenging parts of writing asynchronous and event-based applications and how does Asphalt help simplify that process? When building an Asphalt application it can be easy to accidentally block an async loop by pulling in third party libraries that don’t support asynchronous execution. What are some of the techniques for identifying and resolving blocking portions of your application? What does the internal architecture of Asphalt look like and how has that evolved from when you first started working on it? What have been some of the most difficult aspects of building and evolving Asphalt? What are some of the most interesting or unexpected uses of Asphalt that you have seen? What are some of the new features or improvements that you have planned for the future of Asphalt? Keep In Touch Gitter IRC GitHub agronholm on GitHub @agronholm on Twitter Picks Tobias Thor: Ragnarok Alex Two Steps From Hell Links Asphalt ERP Asyncio Tornado Twisted SQLAlchemy PEP 550 Sanic WAMP Podcast.init Interview About Crossbar Tee FlexGet APScheduler BitTorrent uvloop Tokio The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/3/201734 minutes, 44 seconds
Episode Artwork

Golem: End-To-End Test Automation Framework with Luciano Renzi

Summary The importance of testing your software is widely talked about and well understood. What is not as often discussed is the different types of testing, and how end-to-end tests can benefit your team to ensure proper functioning of your application when it gets released to production. This week Luciano Renzi shares the work that he has done on Golem, a framework for building and executing an automation suite to exercise the entire system from the perspective of the user. He discusses his reasons for creating the project, how he things about testing, and where he plans on taking Golem in the future. Give it a listen and then take it for a test drive. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Luciano Renzi about Golem, a framework and automation tool for end-to-end testing in Python Interview Introductions How did you get introduced to Python? What is golem and what motivated you to create it? What was your inspiration for the name? Why did you choose to use Python for Golem and if you were to start over today would you make the same choice? For someone who is unfamiliar with the concept, can you describe what end-to-end testing is and the reasons for making it part of their development process? What is the main goal of Golem What does the internal architecture and implementation of Golem look like and how has that evolved from when you first started the project? How does Golem compare to other Python libraries for automated browser testing and what was lacking in the existing solutions when you created it? What are the differences between golem and robot framework? What about projects written in other languages such as protractor? One of the intriguing features of Golem is the web interface for constructing tests. What are the benefits of codeless automation & record-playback functionality? What are some of the most challenging aspects of building and maintaining Golem? It seems that every browser automation library is ultimately a wrapper around Selenium. Why is a wrapper necessary and why haven’t any strong alternatives been created? What are the advantages of making Golem a framework for test automation, rather than a library? What are some of the most interesting or unexpected uses for Golem that you have seen? What do you have planned for the future of Golem? What is the current state of end to end automation and how do you see it evolving in the future? How do you think machine learning and AI will be used in test automation? Keep In Touch luciano-renzi on GitHub @lucianorenzi on Twitter Picks Tobias Weapons of Math Destruction Links Golem Elementum Pascal Watir JUnit Selenium Page Object Pattern Selenium Grid Sauce Labs py.test Podcast.init Interview About Py.Test Robot Framework Mechanize Acceptance Tests Protractor Webdriver.io Appium The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/25/201754 minutes, 3 seconds
Episode Artwork

Graphite Metrics Stack with Jason Dixon and Dan Cech

Summary Do you know what is happening in your production systems right now? If you have a comprehensive metrics platform then the answer is yes. If your answer is no, then this episode is for you. Jason Dixon and Dan Cech, core maintainers of the Graphite project, talk about how graphite is architected to capture your time series data and give you the ability to use it for answering questions. They cover the challenges that have been faced in evolving the project, the strengths that have let it stand the tests of time, and the features that will be coming in future releases. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Now is a good time to start planning your conference schedule for 2018. To help you out with that, guest Jason Dixon is offering a $100 discount for Monitorama in Portland, OR on June 4th – 6th and guest Dan Cech is offering a €50 discount to Grafanacon in Amsterdam, Netherlands March 1st and 2nd. There is also still time to get your tickets to PyCascades in Vancouver, BC Canada January 22nd and 23rd. All of the details are in the show notes Your host as usual is Tobias Macey and today I’m interviewing Jason Dixon and Dan Cech about Graphite Interview Introductions How did you get introduced to Python? What is Graphite and how did you each get involved in the project? Why should developers be thinking about collecting and reporting on metrics from their software and systems? How do you think the Graphite project has contributed to or influenced the overall state of the art in systems monitoring? There are a number of different projects that comprise a fully working Graphite deployment. Can you list each of them and describe how they fit together? What are some of the early design choices that have proven to be problematic while trying to evolve the project? What are some of the challenges that you have been faced with while maintaining and improving the various Graphite projects? What will be involved in porting Graphite to run on Python 3? If you were to start the project over would you still use Python? What are the options for scaling Graphite and making it highly available? Given the level of importance to a companies visibility into their systems, what development practices do you use to ensure that Graphite can operate reliably and fail gracefully? What are some of the biggest competitors to Graphite? When is Graphite not the right choice for tracking your system metrics? What are some of the most interesting or unusual uses of Graphite that you are aware of? What are some of the new features and enhancements that are planned for the future of Graphite? Keep In Touch Jason @obfuscurity on Twitter Website obfuscurity on GitHub Dan @dancech on Twitter Website DanCech on GitHub Picks Tobias Archery Jason Rocket League Monitorama $100 Discount (Limited Quantity) Dan Home Assistant Podcast.__init__ Interview GrafanaCon €50 discount with PODCASTINIT2018 Links Graphite Sensu Monitorama RainTank Grafana Labs Librato GitHub Dyn Telemetry Perl PHP React O’Reilly Graphite Book Time Series RRDTool InfluxDB Adrian Cockcroft NVMe Prometheus CNCF ASAP Smoothing PyCascades The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/19/20171 hour, 14 minutes, 17 seconds
Episode Artwork

Surprise! Recommendation Algorithms with Nicolas Hug

Summary A relevant and timely recommendation can be a pleasant surprise that will delight your users. Unfortunately it can be difficult to build a system that will produce useful suggestions, which is why this week’s guest, Nicolas Hug, built a library to help with developing and testing collaborative recommendation algorithms. He explains how he took the code he wrote for his PhD thesis and cleaned it up to release as an open source library and his plans for future development on it. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Nicolas Hug about Surprise, a scikit library for building recommender systems Interview Introductions How did you get introduced to Python? What is Surprise and what was your motivation for creating it? What are the most challenging aspects of building a recommender system and how does Surprise help simplify that process? What are some of the ways that a user or company can bootstrap a recommender system while they accrue data to use a collaborative algorithm? What are some of the ways that a recommender system can be used, outside of the typical ecommerce example? Once an algorithm has been deployed how can a user test the accuracy of the suggestions? How is Surprise implemented and how has it evolved since you first started working on it? What have been the most difficult aspects of building and maintaining Surprise? competitors? What are the attributes of the system that can be modified to improve the relevance of the recommendations that are provided? For someone who wants to use Surprise in their application, what are the steps involved? What are some of the new features or improvements that you have planned for the future of Surprise? Keep In Touch Website @hug_nicolas on Twitter nicolashug on GitHub Picks Tobias Silk profiler for Django Links Surprise Gridsearch Cold Start Problem Content-Based Recommendation Ensemble Learning Spotlight Lightfm Pandas The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/11/201730 minutes, 22 seconds
Episode Artwork

Rasa: Build Your Own AI Chatbot with Joey Faulkner

Summary With the proliferation of messaging applications, there has been a growing demand for bots that can understand our wishes and perform our bidding. The rise of artificial intelligence has brought the capacity for understanding human language. Combining these two trends gives us chatbots that can be used as a new interface to the software and services that we depend on. This week Joey Faulkner shares his work with Rasa Technologies and their open sourced libraries for understanding natural language and how to conduct a conversation. We talked about how the Rasa Core and Rasa NLU libraries work and how you can use them to replace your dependence on API services and own your data. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Joey Faulkner about Rasa Core and Rasa NLU for adding conversational AI to your projects. Interview Introductions How did you get introduced to Python? Can you start by explaining the goals of Rasa as a company and highlighting the projects that you have open sourced? What are the differences between the Rasa Core and Rasa NLU libraries and how do they relate to each other? How does the interaction model change when going from state machine driven bots to those which use Rasa Core and what capabilities does it unlock? How is Rasa NLU implemented and how has the design evolved? What are the motivations for someone to use Rasa core or NLU as a library instead of available API services such as wit.ai, LUIS, or Dialogflow? What are some of the biggest challenges in gathering and curating useful training data? What is involved in supporting multiple languages for an application using Rasa? What are the biggest challenges that you face, past, present, and future, building and growing the tools and platform for Rasa? What would be involved for projects such as OpsDroid, Kalliope, or Mycroft to take advantage of Rasa and what benefit would that provide? On the comparison page for the hosted Rasa platform it mentions a feature of collaborative model training, can you describe how that works and why someone might want to take advantage of it? What are some of the most interesting or unexpected uses of the Rasa tools that you have seen? What do you have planned for the future of Rasa? Keep In Touch Gitter Twitter @joeymfaulkner @Rasa_HQ Email GitHub Picks Tobias Information Architecture Joey Dog Spotting Rasa NLU Trainer Links Rasa Technologies Rasa NLU Rasa Core SpaCy Podcast.__init__ Interview with SpaCy Creator yt-project Podcast.__init__ Interview with yt-project Chatbot Word2Vec State Machine Podcast.__init__ Episode About Automat with Glyph Recursive Neural Network MITIE Support Vector Machine Scikit Learn wit.ai LUIS Dialogflow Keras Reinforcement Learning The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/4/201749 minutes
Episode Artwork

Eliot: Effective Logging with Itamar Turner-Trauring

Summary Understanding what is happening in a software system can be difficult, especially when you have inconsistent log messages. Itamar Turner-Trauring created Eliot to make it possible for your project to tell you a story about how transactions flow through your program. In this week’s episode we go deep on proper logging practices, anti patterns, and how to improve your ability to debug your software with log messages. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Itamar Turner-Trauring about Eliot, a library for managing complex logs across multiple processes. Interview Introductions How did you get introduced to Python? What is Eliot and what problem were you trying to solve by creating it? How is Eliot implemented and how has the design evolved since you first started working on it? Why is it so important to have a standardized format for your application logs? What are some of the anti-patterns that you consider to be the most harmful when developers are setting up logging in their projects? What have been the most challenging aspects of building and maintaining Eliot? How does Eliot compare to some of the other third party logging libraries available such as structlog or logbook? What are some of the improvements or additional features that you have planned for the future of Eliot? Keep In Touch Website @itamarst on Twitter Picks Tobias Moonshot Podcast Itamar Middlemarch by George Eliot Links Eliot Zope PHP OpenTracing Zipkin Carl De Marcken Sentry Elasticsearch Logstash Kibana Eliot-Tree Daniel Lebrero Flocker Context Local Variables PEP (PEP 550) Flamegraph Brendan Gregg DAG Structlog The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/29/201749 minutes, 48 seconds
Episode Artwork

Donkey: Building Self Driving Cars with Will Roscoe

Summary Do you wish that you had a self-driving car of your own? With Donkey you can make that dream a reality. This week Will Roscoe shares the story of how he got involved in the arena of self-driving car hobbyists and ended up building a Python library to act as his pilot. We talked about the hardware involved, how he has evolved the code to meet unexpected challenges, and how he plans to improve it in the future. So go build your own self driving car and take it for a spin! Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected]) To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Will Roscoe about Donkey, a python library for building DIY self driving cars. Interview Introductions How did you get introduced to Python? What is Donkey and what was your reason for creating it? What is the story behind the name? What was your reason for choosing Python as the language for implementing Donkey and if you were to start over today would you make the same choice? How is Donkey implemented and how has its software architecture evolved? Is the library built in a way that you can process inputs from additional sensor types, such as proximity detectors or LIDAR? For training the autopilot what are the input features that the model is testing against for the input data, and is it possible to change the features that it will try to detect? Do you have plans to incorporate any negative reinforcement techniques for training the pilot models so that errors in data collection can be identified as undesirable outcomes? What have been some of the most interesting or humorous successes and failures while testing your cars? What are some of the challenges involved with getting such a sophisticated stack of software running on a Raspberry Pi? What are some of the improvements or new features that you have planned for the future of Donkey? Media Donkey Car Photos Keep In Touch Donkey Slack Channel Wills Twitter – @dataduce #donkeycar on social Picks Tobias Orgzly Org Mode for Sublime Org Mode for VSCode Org Mode for Vim Will Algorithms to Live By The Structure of Scientific Revolutions A song I can’t stop nodding my head to Links Donkey Car DIY Robocars Tornado [Tornado on Podcast.init](https://www.pythonpodcast.com/episode-40-ben-darnell-on-tornado/?utmsource=rss&utmmedium=rss Raspberry Pi TensorFlow Convolutional Neural Network Adafruit LIDAR ROS (Robot Operating System) Unity Udacity self driving car nano-degree SparkFun Beagleboard Adam Conway The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/22/201733 minutes, 49 seconds
Episode Artwork

Event Sourcing with John Bywater

Summary The way that your application handles data and the way that it is represented in your database don’t always match, leading to a lot of brittle abstractions to reconcile the two. In order to reduce that friction, instead of overwriting the state of your application on every change you can log all of the events that take place and then render the current state from that sequence of events. John Bywater joins me this week to discuss his work on the Event Sourcing library, why you might want to use it in your applications, and how it can change the way that you think about your data. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports the show on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at podastinit.com/linode and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. And now you can deliver your work to your users even faster with the newly upgraded 200 GBit network in all of their datacenters. If you’re tired of cobbling together your deployment pipeline then it’s time to try out GoCD, the open source continuous delivery platform built by the people at ThoughtWorks who wrote the book about it. With GoCD you get complete visibility into the life-cycle of your software from one location. To download it now go to podcatinit.com/gocd. Professional support and enterprise plugins are available for added piece of mind. Visit the site to subscribe to the show, sign up for the newsletter, and read the show notes. And if you have any questions, comments, or suggestions I would love to hear them. You can reach me on Twitter at @Podcast__init__ or email [email protected] To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing John Bywater about event sourcing, an architectural approach to make your data layer easier to scale and maintain. Interview Introductions How did you get introduced to Python? Can you start by describing the concept of event sourcing and the benefits that it provides? What is the event sourcing library and what was your reason for starting it? What are some of the reasons that someone might not want to implement an event sourcing approach in their persistence layer? Given that you are storing a record for each event that occurs on a domain object, how does that affect the amount of storage necessary to support an event sourced application? What is the impact on performance and latency from an end user perspective when the application is using event sourcing to render the current state of the system? What does the internal architecture and design of your library look like and how has that evolved over time? In the case where events are delivered out of order, how can you ensure that the present view of an object is reflected accurately? For someone who wants to incorporate an event sourcing design into an existing application, how would they do that? How do you manage schema changes in your domain model when you need to reconstruct present state from the beginning of an objects event sequence? What are some of the most interesting uses of event sourcing that you have seen? What are some of the features or improvements that you have planned for the future of you event sourcing library? Keep In Touch John johnbywater on GitHub @johnbywater on Twitter Picks Tobias Heresy In The Church Of Docker John QuantDSL Links CKAN Data.gov Patterns of Enterprise Application Architecture Object Relational Impedance Mismatch Event Sourcing (Pattern) Event Sourcing (Library) N-Tiered Architecture Domain Driven Design Event Storming ORM, The Vietnam of Computer Science Vaughn Vernon, Implementing Domain Driven Design Active Record Pattern Optimistic Concurrency Control Paxos DynamoDB Martin Fowler Eric Evans The Dark Side of Event Sourcing The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/15/20171 hour, 8 minutes, 26 seconds
Episode Artwork

Kalliope with Nicolas Marcq and Thibaud Buffet

Summary Wouldn’t it be nice to have a personal assistant to answer your questions, help you remember important tasks, and control your environment? Meet Kalliope, a Python powered, modular, voice controlled automation platform. This week Nicolas Marcq and Thibaud Buffet explain how they started the project, what makes it stand out from other open source and commercial options, and how you can start using it today. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Nicolas Marcq and Thibaud Buffet about Kalliope, a modular always-on voice controlled personal assistant designed for home automation. Interview Introductions How did you get introduced to Python? What is the Kalliope project and how did it get started? How does Kalliope compare to commercial options such as Amazon Alexa and Google Home, as well as other open source projects such as Mycroft or Jasper? The majority of voice assistant projects that I have seen default to interacting in English, whereas Kalliope is multi-lingual. What led you to that design choice and how is that implemented? One of the perennial questions around voice assistants is privacy, so how does Kalliope work to mitigate the issues associated with having an always on device listening in people’s homes? How is Kalliope architected internally and how has the design evolved over time? What are some of the most difficult or challenging aspects of building Kalliope and its associated projects? What are some of the most interesting uses of Kalliope that you are aware of? What are some of the most notable features or improvements that you have planned for the future of Kalliope? How has the choice of Python as the implementation worked for you, and if you were to start over today do you think you would make the same decision? Keep In Touch Nicolas @Sispheor on Twitter Sispheor on GitHub Website Thibaud @TibTac on Twitter LaMonF on GitHub Picks Tobias Kiwi Crate Nicolas Raspberry Pi Speaker Thibaud ReactiveX in Python Links Snowboy Mycroft Mycroft Interview Amazon Alexa Google Home Jasper Kalliope TTS STT CMU Sphinx Abstract Base Class MQTT RxPy Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/8/201732 minutes, 33 seconds
Episode Artwork

Modoboa with Antoine Nguyen

Summary Email has long been the most commonly used means of communication on the internet. This week Antoine Nguyen talks about his work on the Modoboa project to make hosting your own mail server easier to manage. He discusses how the project got started, the tools that it ties together, and how he used Django to build a webmail and admin interface to make it more approachable. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Antoine Nguyen about Modoboa, a project to make mail hosting simple. Interview Introductions How did you get introduced to Python? What is Modoboa and what is the problem that you were trying to solve when you started it? Where does the name come from? Self-hosting an email server was a common activity during the early stages of the internet, what are some of the reasons that someone should consider running their own mail server now that there are so many options for third-party hosting such as Gmail and Outlook? Email hosting has become more complicated in recent years with the need to jump through a lot of hoops to maintain a sufficient reputation to keep your messages from being flagged as spam. Are there any utilities in Modoboa to assist with that process? There are a lot of components that you have brought together for running an email server. Can you describe how the different pieces fit together and what layers you have built on top to help make the overall system more manageable? What does the scaling strategy look like for Modoboa? What is the most challenging aspect of building and maintaining Modoboa? What are some of the features that you have planned for the future of Modoboa? Keep In Touch Email @antngu on Twitter Picks Tobias Dropbox Paper Antoine Capoeira Links PyTk Postfix Dovecot Nextcloud Owncloud SPF Records DKIM DMARC SMTP IMAP Apache Libcloud Amavis Mail Transfer Agent Radicale Ansible Docker Gentoo Packer Synology Drobo Prosody Lua XMPP The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/1/201733 minutes, 18 seconds
Episode Artwork

QuTiP with Paul Nation

Summary The future of computation and our understanding of the world around us is driven by the quantum world. This week Paul Nation explains how the Quantum Toolbox in Python (QuTiP) is being used in research projects that are expanding our knowledge of the physical universe. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Paul Nation about QuTIP, the quantum toolbox in Python. Interview Introductions How did you get introduced to Python? Before we start talking about QuTiP, can you provide us with a baseline definition of what quantum mechanics is? What is QuTIP and how did the project get started? Is QuTiP used purely in academics, or are there other users? What are some of the practical innovations that have been created as a result of research into different areas of quantum optics? How do you foresee the advent of practical quantum computers impacting the state of quantum mechanical research? Given the inherent complexity of the subject matter that you are dealing with, how do you approach the challenge of trying to present a usable API to users of QuTiP while not inhibiting their ability to operate at a low level when necessary? What is the process for incorporating new understandings of quantum mechanical theory into the QuTiP package? What are some of the most difficult aspects of simulating quantum systems in a standard computational environment? What is the most enjoyable aspect of working on QuTiP, what is the least enjoyable? What are some of the most notable research results that you are aware of which used QuTiP as part of their studies? What are some resources that you can recommend for anyone who wants to learn more about quantum mechanics? Keep In Touch QuTiP QuSTaR Picks Tobias edx.org Paul Cython Matplotlib Cheyenne Mountain Zoo Links Quantum Optics 2 Level System Complex Numbers Qubit Quantum Computing Harmonic Oscillator Nature Scientific Journal IBM Quantum Experience D-Wave Rigetti Quantum Computing Quantum Supremacy Hamiltonian Sparse Matrix Richard Feynman Dask Project Q Quantum State Transfer via Noisy Photonic and Phononic Waveguides paper by Peter Zoller Extending the lifetime of a quantum bit with error correction in superconducting circuits paper by Rob Shoelkopf (Yale) QuTiP Documentation The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/24/201736 minutes, 31 seconds
Episode Artwork

Lego Robotics with David Lechner and Denis Demidov

Summary Do you like Legos, robots, and Python? This week I am joined by David Lechner and Denis Demidov to talk about the ev3dev project and how you can program your Lego Mindstorms with Python! Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing David Lechner and Denis Demidov about using Python with the ev3dev platform for programming LEGO robots Interview Introductions How did you get introduced to Python? Can you explain what the ev3dev project is and some of the story about how and why it got started? What is LEGO’s opinion of the ev3dev project? For anyone who isn’t familiar with the MINDSTORMS EV3 product from LEGO, can you give a brief overview of the hardware that they come with? Other than allowing users to program in environments other than the block-based editor that LEGO provides, what capabilities does the ev3dev project add to the MINDSTORMS EV3 platform? How are the language bindings generated and how do the different implementations compare to each other? What are the most challenging aspects of building and maintaining the ev3dev distribution and various language bindings? One of the things that my son is curious about is the possibility for integrating his MINDSTORMS with projects such as Kalliope or Mycroft to allow for voice controlled robots. Are you aware of anyone having done so or how you would approach something like that? What are some of the most interesting or innovative projects that you have seen people make with the MINDSTORMS platform running ev3dev? Why would someone want to use MINDSTORMS instead of any of the other robotics platforms that are available? For someone who is interested in learning more about intermediate and advanced robotics, what are some resources that you would recommend? Keep In Touch Denis @denis_demidov on Twitter ddemidov on Github David dlech on Github Website Picks Tobias Raspberry Pi Kalliope Denis pybind11 David Local food LocalHarvest Links ev3dev Lego MINDSTORMS BeagleBone Lego Mindstorms Community C++ Jupyter Notebooks Ralph Hempel Forth RCX NXT EV3 ARMv5 Debian PiStorms BrickPi EVB UART EV3 Schematics Look for “EV3 Hardware Developer Kit” in “Advanced Users” section. I2C RPyC Laurens Valk Liquid Templates Delta Robot Quest For Space Lego Technic Mindsensors.com Cool robots built with ev3dev Micropython The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/17/201744 minutes, 1 second
Episode Artwork

Cloud-Init with Scott Moser

Summary Server administration is a complex endeavor, but there are some tools that can make life easier. If you are running your workload in a cloud environment then cloud-init is here to help. This week Scott Moser explains what cloud-init is, how it works, and how it became the de-facto tool for configuring your Linux servers at boot. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Scott Moser about cloud-init, a set of python scripts and utilities to make your cloud images be all they can be! Interview Introductions How did you get introduced to Python? What is cloud-init and how did the project get started? Why was Python chosen as the language for implementing cloud-init? How has cloud-init come to be the de-facto utility for managing cloud instances across vendors and distributions? Are there any viable competitors to cloud-init? coreos-cloudinit, some others. How much overlap is there between cloud-init and configuration management tools such as SaltStack, Ansible, Chef, etc. How have you architected cloud-init to allow for compatibility across operating system distributions? What is the most difficult or complex aspect of building and maintaining cloud-init? [os integration, networking, goal of “do stuff without reboot”] Given that it is used as a critical component of the production deployment mechanics for a large number of people, how do you ensure an appropriate level of stability and security while developing cloud-init? How do you think the status of cloud-init as a Canonical project has affected the level of contributions that you receive? How much of the support and roadmap is contributed by individual vs corporate users such as AWS and Azure? What are some of the most unexpected or creative uses of cloud-init that you have seen? [https://wiki.ubuntu.com/OpenCompute?utm_source=rss&utm_medium=rss “disposable use os”] In your experience, what has been the biggest stumbling block for new users of cloud-init? Do you have any notable features or improvements planned for the future of cloud-init, or do you feel that it has reached a state of feature-completeness? Keep In Touch smoser on GitHub Picks Tobias mu4e isync Scott LXD Links IBM – Linux Technology Center Cloud-Init Ubuntu Canonical CoreOS EC2 OpenStack CentOS RHEL coreos-cloudinit JuJu Puppet SystemV Upstart SystemD Joyent SmartOS Digital Ocean IPv4 IPv6 Canonical MaaS+ JSON-Schema LXD Launchpad Bzr Git SUSE FreeBSD KVM Go-lang Pretty Table RAID ZFS LVM The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/10/201749 minutes, 50 seconds
Episode Artwork

Biopython with Peter Cock, Wibowo Arindrarto, and Tiago Antão

Summary Advances in the techniques used for genome sequencing are providing us with more information to unlock the secrets of biology. But how does that data get processed and analyzed? With Python of course! This week I am joined by some of the core maintainers of Biopython to discuss what bioinformatics is, how Python is used to help power the research in the field, and how Biopython helps to tie everything together. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Peter Cock, Wibowo Arindrarto, and Tiago Antão about biopython, a suite of python tools for computational molecular biology. Interview Introductions How did you get introduced to Python? Can you start by explaining what bioinformatics is and highlight some of the different areas of research? What is biopython and how did it get started? Biopython has a long history behind it. How has the project evolved over that time to meet the changing needs in terms of both research amd computation? How does Biopython compare to the sibling Bio* projects in other programming languages? What does a common workflow look like for someone who is working with biological data? What are some of the most interesting or innovative uses of Biopython that you are aware of? What are some of the most challenging aspects of developing and supporting Biopython? What are some of the most exciting developments in bioinformatics, either recently or coming up? How much domain knowledge is necessary for someone who wants to contribute to the project? What are some of the most problematic limitations of Biopython and how do you work around them? Keep In Touch Peter Website Wibowo Website @_bow_ on Twitter Tiago Website @tiagoantao on Twitter Biopython GitHub Picks Tobias Keep it Low Conf Peter Jupyter Notebooks (formerly IPython) for producing notebooks combining code, graphical output and descriptive code. Can be seen as a modern take on Donald Knuth’s Literate programming? Wibowo Conda for installing software, including BioConda for community packaged software in bioinformatics. Tiago Brython project for writing Python 3 in your browser using JavaScript Glacier National Park in North West Montana Links BioJava BioRuby BioPerl BioJS Open Bioinformatics Foundation Software In The Public Interest Oxford Nanopore Technology (for sequencing in the field etc) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/3/201745 minutes, 29 seconds
Episode Artwork

opsdroid with Jacob Tomlinson

Summary Server administration is an activity that often happens in an isolated context in a terminal. ChatOps is a way of bringing that work into a shared environment and unlocking more collaboration. This week Jacob Tomlinson talks about the work he has done on opsdroid, a new bot framework targeted at tying together the various services and environments that modern production systems rely on. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Jacob Tomlinson about opsdroid Interview Introductions How did you get introduced to Python? What is opsdroid and what was the problem that you were trying to solve when you started the project? What led you to choose Python as the language for implementing opsdroid? What did you find lacking in the multitude of other chat bots that necessitated starting a new project? (e.g. Hubot, Errbot, Lita) One of the main features that you list in the documentation is the ease of installation. Why is that such an important aspect of the project and how is that implemented? What has been the most interesting and the most challenging aspect of implementing opsdroid? On the opsdroid organisation on GitHub there are many repositories for plugin modules. Do you see this being a management issue in the long term? How is opsdroid architected and what were the system requirements that led to the current system design? How do you manage authorization and authentication for performing commands against your production infrastructure in a group chat environment? What are some of the other security implications that users should be aware of when deploying a bot for interfacing with their deployment environment? How does a chat-oriented bot framework differ from those that are being created for voice-oriented interaction? What do you have planned for the future of opsdroid? Keep In Touch Website @JacobTomlinson on Twitter jacobtomlinson on GitHub Picks Tobias Rough Translation Podcast Jacob Home Assistant Podcast Links Iron Man Movie Puppet Hubot ChatOps asyncio Home Assistant Podcast.init Interview api.ai Luis Lex Slack Mycroft Kalliope Amazon Alexa opsdroid audio Snowboy Google Home Wit.ai The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/26/201745 minutes, 40 seconds
Episode Artwork

Ergonomica with Liam Schumm

Summary As developers we spend a lot of our work day in a terminal window, using shells that were designed 30 years ago. This week Liam Schumm joins me to explain why he decided to write a new, more ergonomic shell environment to simplify his workflow. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Need to learn more about how to scale your apps or learn new techniques for building them? Pluralsight has the training and mentoring you need to level up your skills. Go to www.pythonpodcast.com/pluralsight?utm_source=rss&utm_medium=rss to start your free trial today. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. If you work with data for your job or want to learn more about how open source is powering the latest innovations in data science then make your way to the Open Data Science Conference, happening in London in October and San Francisco in November. Follow the links in the show notes to register and help support the show in the process. Your host as usual is Tobias Macey and today I’m interviewing Liam Schumm about Ergonomica Interview Introductions How did you get introduced to Python? What is Ergonomica and what was your reason for creating it? What are some of the most difficult aspects of the project that you have experienced? How is Ergonomica implemented? What was your reason for using a dialect of Lisp as the interface for a terminal environment as opposed to iterating on the idioms in shells such as Bash? How does Ergonomica’s implementation differ from traditional shells such as Bash, Csh, and Powershell? How does Ergonomica’s implementation differ from other alternative shells such as Xonsh, ZSH, and Fish? Why did you choose to implement Ergonomica in Python? What’s your target group for Ergonomica? What do you have planned for the future of Ergonomica? Reading through your website you are fairly well accomplished. How does your age factor into the kinds of projects that you are engaged in? Keep In Touch Liam’s GitHub Email @liamschumm on Twitter Picks Tobias Magic The Gathering: Arena of the Planeswalkers Liam GitLab CE Python-prompt-toolkit Thriftbooks – 15% off your first order Links PyGame Minecraft Beeware ChiPy Chi Hack Night XKCD Tar Comic POSIX Colorama PLY Peter Norvig How to write a lisp interpreter in python ZSH Fish Xonsh PyVim sh Homebrew The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/20/201742 minutes, 4 seconds
Episode Artwork

Data Retriever with Henry Senyondo

Summary Analyzing and interpreting data is a large portion of the work involved in scientific research. Getting to that point can be a lot of work on its own because of all of the steps required to download, clean, and organize the data prior to analysis. This week Henry Senyondo talks about the work he is doing with Data Retriever to make data preparation as easy as retriever install. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Henry Senyondo about Data Retriever, the package manager for public data sets. Interview Introductions How did you get introduced to Python? Can you explain what data retriever is and the problem that it was built to solve? Are there limitations as to the types of data that can be managed by data retriever? What kinds of data sets are currently available and who are the target users? What is involved in preparing a new dataset to be available for installation? How much of the logic for installing the data is shared between the R and Python implementations of Data Retriever and how do you ensure that the two packages evolve in parallel? How is the project designed and what are some of the most difficult technical aspects of building it? What is in store for the future of data retriever? Keep In Touch Github @henrykironde on Twitter Picks Tobias Otium Bluetooth Receiver Panasonic Ergofit Headphones Nitize Adhesive Pocket Clip Henry The Three Idiots Links Weecology Lab University of Florida Data Retriever LG R Julia Open Knowledge Foundation Frictionless Data Format Data Weaver The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/12/201717 minutes, 55 seconds
Episode Artwork

Coverage.py with Ned Batchelder

Summary We write tests to make sure that our code is correct, but how do you make sure the tests are correct? This week Ned Batchelder explains how coverage.py fills that need, how he became the maintainer, and how it works under the hood. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Ned Batchelder about coverage.py, the ubiquitous tool for measuring your test coverage. Interview Introductions How did you get introduced to Python? What is coverage.py and how did you get involved with the project? The coverage project has become the de facto standard for measuring test coverage in Python. Why do you think that is? What is the utility of measuring test coverage? What are the downsides to measuring test coverage? One of the notable capabilities that was introduced recently was the plugin for measuring coverage of Django templates. Why is that an important capability and how did you manage to make that work? How does coverage conduct its measurements and how has that algorithm evolved since you first started work on it? What are the most challenging aspects of building and maintaining coverage.py? While I was looking at the bug tracker I was struck by the vast array of contexts in which coverage is used. Do you find it overwhelming trying to support so many operating systems and Python implementations? What might be added to coverage in the future? Keep In Touch @nedbat on Twitter Website Picks Tobias Org-Journal Ned Hypothesis The Infinite Monkey Cage Links edX Lotus Notes Zope Coverage.py Gareth Rees Trace in stdlib Fig Leaf State Machines CodeCov Coveralls Cobertura Turing Completeness Django Templates Jinja2 Mako Hy-lang GCov Jython Code Triage Service Who Tests What The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/6/201751 minutes, 54 seconds
Episode Artwork

Yosai with Darin Gordon

Summary For any program that is used by more than one person you need a way to control identity and permissions. There are myriad solutions to that problem, but most of them are tied to a specific framework. Yosai is a flexible, general purpose framework for managing role-based access to your applications that has been decoupled from the underlying platform. This week the author of Yosai, Darin Gordon, joins us to talk about why he started it, his experience porting it from Java, and where he hopes to take it in the future. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Darin Gordon about Yosai, a security framework for Python applications Interview Introductions How did you get introduced to Python? What is Yosai and what is the problem that you were trying to solve when you started it? How does Yosai compare to existing libraries for web frameworks such as Flask-Security or Django Guardian and why might someone choose Yosai instead? In the documentation it mentions that Yosai is a port of the Apache Shiro framework from Java to Python. What was most difficult about exposing a Pythonic interface while maintaining the core principles of the original? Authentication and authorization are difficult problem domains and can cause significant issues if they are not implemented in a secure fashion. How do you ensure an appropriate level of quality in Yosai to be confident having people use it? To start can you describe how the framework is architected and what is involved in integrating it with a project? Outside of the context of web applications, what are some situations where someone should consider integrating authentication and authorization into their project? What have been some of the most challenging aspects of building the Yosai project? Tell us about the Rust extension you wrote earlier this year What do you have planned for the future of Yosai? Keep In Touch Website GitHub @darin_gordon on Twitter Picks Tobias Brains On! podcast Darin The Asphalt Framework. Asphalt is an asyncio-based microframework for network oriented applications. Links Yosai Project Web Page Github Repo RBAC Apache Shiro TOTP Pyramid SOLID Builder Pattern POJO Corey Benfield Hyper HTTP/2 Library Passlib Hugo MKDocs YAML Middleware IoT Authz in Rust PyO3 Snaek PyCon Canada PyCascades JSON Web Tokens The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/30/201741 minutes, 59 seconds
Episode Artwork

Moving to MongoDB with Michael Kennedy

Summary There are dozens of decisions that need to be made when building an application. Sometimes this can lead to analysis paralysis and prevent you from making progress, so don’t let the perfect be the enemy of the good. This week Michael Kennedy shares his experience with evolving his application architecture when his business needs outgrew his initial designs. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Mike Kennedy about his work scaling his apps and his business Interview Introductions How did you get introduced to Python? In some of your recent episodes you have mentioned the work that you did to migrate your applications to run on MongoDB. Can you start by describing the business case for these applications and how you arrived at the initial design? What was the limiting factor that led you to consider such a drastic shift in how you store and manage your data and what benefits did you gain when the work was complete? If the issue was with scaling, how did you identify the choke points? Why go from relational (SQLite) to document (Mongo) instead of what would seem a more obvious choice of a production grade relational engine such as PostGreSQL or MySQL? Are there any particular synergies that arise from using a document as opposed to a relational store when working with Python and what are some of the main considerations when deciding between them? What was happening in your business that precipitated the need for this work? How are you talking to MongoDB from Python? Directly (via pymongo) or ORM-style? Why did you make that choice? How well is that working out? Advantages / drawbacks? In addition to podcasting you have also been working to create a number of successful courses to teach people how to use Python. Is there anything specific to the language that translates into how you design the material? For anyone who wants to learn more about the benefits and tradeoffs of using a document store with their Python applications, what are some resources that you recommend? Keep In Touch Michael @mkennedy on Twitter Websites Talk Python Python Bytes Picks Tobias Org Mode Levar Burton Reads Mike Newspaper Robomongo (now Robo 3T) The Dark Secret at the Heart of AI Haibike SDURO Cross 4.0 Links SQLAlchemy SQLIte MySQL PostGreSQL NoSQL MongoDB Database Normalization Foreign Keys Document Database Rollbar MongoEngine Mongo Security Checkup MLab MongoDB Atlas MongoDB World O’Reilly Python Mongo Book MongoDB For Python Developers Momentum Dash The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/22/201747 minutes, 58 seconds
Episode Artwork

Zulip Chat with Tim Abbott

Summary In modern work environments the email is being edged out by group chat as the preferred method of communication. The majority of the platforms used are commercial and closed source, but there is one project that is working to change that. Zulip is a project that aims to redefine how effective teams communicate and it is already gaining ground. This week Tim Abbott shares the story of how Zulip got started, how it is built, and why you might want to start using it. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Tim Abbott about Zulip, a powerful open source group chat platform Interview Introductions How did you get introduced to Python? What is Zulip and what was the initial inspiration for creating it? Where does the name come from? My understanding is that the project was initally intended to be a commercial product. Can you share some of the history of the acquisition by Dropbox and the journey to open sourcing it? How has your experience at Dropbox influenced the evolution and implementation of the Zulip project? There are a large number of group chat platforms available, both commercial and open source. How does Zulip differentiate itself from other options such as Slack or Mattermost? Typically real-time communication is difficult to achieve in a WSGI application. How is Zulip architected to allow for interactive communication? What have been the most challenging aspects of building and maintaining the Zulip project? What is involved in installing and running a Zulip server? For a large installation, what are the options for scaling it out to handle greater load? There is a large and healthy community that has built up around the Zulip project. What are some of the methods that you and others have used to foster that growth and engagement? What has been the most unexpected aspect of working on Zulip, whether technically or in terms of the community around it? What do you have planned for the future of Zulip? Keep In Touch Zulip Chat @zuliposs on Twitter Tim @tabbott3 on Twitter Website Picks Tobias Lego Mindstorms EV3 Tim Checklist Manifesto Tim’s Recipe Wiki Links Zulip Ksplice Electron React Native IFTTT Zapier Zephyr Barn Owl MyPy Tornado Django Zulip Tornado Documentation MySQL PostGreSQL ElasticSearch Code Triage Emoji Podcast.__init__ Zulip Chat The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/16/20171 hour, 39 seconds
Episode Artwork

NAPALM with David Barroso and Mircea Ulinic

Summary Routers and switches are the stitches in the invisible fabric of the internet which we all rely on. Managing that hardware has traditionally been a very manual process, but the NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support) is helping to change that. This week David Barroso and Mircea Ulinic explain how Python is being used to make sure that you can watch those cat videos. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing David Barroso and Mircea Ulinic about NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor support), the library for managing programmable network devices Interview Introductions How did you get introduced to Python? [david] 2012 trying to use django 1.4 to store data I had on confluence. [mircea] August 2008, when I bought the Learning Python, Mark Lutz, 2nd edition Can you start by explaining what NAPALM is and the problem that you were solving when you started working on it? [david] trying to remove all the if vendora do this, elif vendorb do this other thing instead [mircea] only if I will feel there’s anything to add What led you to choose Python as the language for implementing it? [david] it’s what I knew best and vendors were starting to provide libraries to interact with their platforms so python seemed like a natural evolution as we could just provide an abstraction on top of those libraries that already existed. [mircea] I didn’t implement NAPALM, I was fistly a user then contributor, now I’m one of the maintainers. When working with network equipment it is easy to apply the wrong settings and bring down a large number of systems or lock yourself out entirely. Are there any tools in NAPALM to help prevent this from happening? [david] We provide mechanisms to ensure proper peer reviewing; we let operators propose a configuration and get a diff. We have a rollback mechanism so if you detect an issue you can immediately rollback and we also added support to the autorollback feature some vendors have. How have you architected the library to allow for easy integration of new classes of network devices? [david] very simple architecture. Trying to avoid complex features like abstract classes, metaprogramming or decorators. Main reason is that I figured my main user base wasn’t going to be very python savvy so I wanted something simple. What I ended doing was simulating interfaces with with a base class that described the supported methods and how they were supposed to behave and an extensive testing framework that ensure the method signatures and the behaviors matched the expectations. Designing and building a consistent API for such a wide variety of hardware and software platforms is a daunting task. How do you determine the lowest common set of functionality that you are going to expose as part of the core library vs delegating to the underlying dependencies? [david] We don’t necessarily go with the lowest common denominator. Sometimes we try to emulate features. For example, if a platform doesn’t support atomic changes we might simulate it by trying to send the configuration as a block and rollback immediately. Obviously a feature likes this is clearly documented so people is aware that this might happen. What we try to avoid though is implementing things that are very specific to a single vendor. In any case the way it has worked so far falls into two categories: configuration management. These are primitives like loading a candidate configuration for merging or replacing into the device, getting a diff back, commiting, discarding or rolling back configuration. These primitives were designed at the very begining of the project based on the netconf protocol and they have changed very little since then. When a primitive is not natively supported by a device we try to emulate it as with the atomicity example I gave before or we don’t implement it at all if it’s not possible. The second category is what we call getters which are methods that retrieve information from the devices. Things like interface counters, bgp neighbors, etc. These are basically community driven. Someone opens an issue on github explaining the data that he or she needs, we discuss it, we define a model and then we work on it. Not all getters are supported on all platforms. People mostly implements them as they need. Now there is a third category though. It is actually funny but I presented napalm for the first time a couple of years ago at NANOG64. It turns out the day after, at the same venue, Google was presenting Openconfig. Openconfig is an effort to design a common set of models to operate the network. So, for example, they have models for BGP neighbors, for interfaces, vlans, etc… Those models try to be vendor agnostic and you should, in theory, be able to use them to configure or to retrieve consistently information from any device. Problem is that, of course, vendors are slow implementing them, they don’t even have plans for all of them or for all the platforms, etc… So the sad truth is that two years later support for Openconfig is extremely limited. However, in the last few months I have been working on integrating napalm with opencofig so now we have a beta version of napalm where you can use python bindings that can translate native data from a device into an Openconfig object and viceversa. That has two direct implications: Now we are not only operating all vendors with the same tool but we are also operating them with the same data structures. This means that I can get the configuration of a cisco device and translate it directly to junos configuration. It also means that because now we are dealing with objects, I can do smart things like having an object that represents the candidate configuration, anotther object that represents a certain running state and simulate merges myself without having to rely on the device itself. I can even generate the exact commands to do the merge without having to rely on them doing the actual merge. I can also simulate the changes offline, I don’t even need access to the device anymore, I could be builting the objects from a backup or from the resulting configuration after merging different branches on github. I have seen a few posts recently discussing the use of NAPALM in conjunction with configuration management platforms such as SaltStack and Ansible. What are the tradeoffs of using the library directly vs integrated with these other tools? [david] napalm is a library in the strict sense. There is no business logic, no workflows, very little tooling embedded. Instead we try to implement as many primitives and be as flexible as possible so other tools can leverage on napalm to implement their workflows. What this means is that using napalm directly is great if you are writing a script to do backups or to solve a specific issue but if you want to build a whole framework for event driven automation or a configuration management system you are probably better off leveraging on napalm integration with salt/ansible/st2. I noticed in the documentation that merging configuration is supported. How do you manage conflicts and priority of nested data structures? [david] we try to make changes atomic. So if you make a change and trigger a conflict or you are missing some datastructure or some configuration is invalid configuration won’t be applied and the user will get an error. For platforms where changes can’t be atomic we try to apply the configuration changes in bulk and revert immediately if there is an error. How does declarative modeling of network devices differ from general purpose operating systems and what unique challenges do they pose? [david] lack of tooling like sed/awk/etc. Lots of state. Configuration is state itself and in most cases you can’t even reload it. Which means you have to type the exact commands to go from state a to state b. Like trying to configure the network stack of linux with only the iproute2 tooling available. What are the most technically challenging aspects of managing different network hardware programmatically? [david] Inconsistencies and buggy code. Not even inconsistencies across different platforms but across minor revisions of the same platforms. Small API changes that are not backwards compatible, small differences on output commands that break regular expressions and APIs that break every second call. What are some of the most interesting or unusual uses of NAPALM that you have seen? [david] I have seen people replacing their SNMP based monitoring system with napalm. I have built myself what you could call “immutable infrastructure for the network”. So for example, when you have to do a configuration change you don’t apply that configuration change. What you do instead is compile a full configuration for the device and fully reload the state of the device. That ensures you are always into a known state. So if a user would connect to the device and do a change outside the change control system because you are fully deploying state you can be certain that the manual change will be wipeout. So there is no way out of the automation. We also have this validate functionality integrated into napalm. With this functionality you can define a desired state, for example certain BGP neighbors have to be up and I must be receiving N prefixes from them. Napalm can then read those rules, figure out which data to retrieve and validate the data retrieved complies so I know some people using this state validation instead of using the traditional times series type of monitoring where you keep retrieving data constantly and alerting when you reach certain thresholds. I guess you could call this test driven monitoring? [mircea] SNMP thing For someone who is interested in learning more about network management, what resources do you recommend? [david] networktocode.com has some resources, labs, the slack community behing the organization is very active as well. ipspace.com has some good resources as well. pynet.twb-tech.com is also another great place to check for courses o’reilly has a book on Network Programmability and Automation which I haven’t read but I know the authors are very good so I am confident the content will be of high quality. [mircea] I blog about NAPALM & generally networking and network automation on my personal space: mirceaulinic.net packetpushers.net Keep In Touch David @dbarrosop on LinkedIn, GitHub and Twitter Blog Mircea Blog @mirceaulinic on LinkedIn, GitHub and Twitter NAPALM @napalmauto on Twitter Documentation Picks Tobias The Twelve Networking Truths Falsehoods Programmers Believe About Networking David The fear saga VR Mircea Daily Zen Links Juniper Arista Paramiko netmiko Cisco IOS Vagrant Netconf Protocol BGP OSPF SNMP TCP IP ZTP (Zero Touch Provisioning) PXE (Preboot eXecution Environment) Boot SaltStack Ansible StackStorm Trigger NAPALM Logs OpenConfig NANOG YANG Data Plane NTP(network time protocol) SSH Networking Resources PacketPushers.net O’Reilly – Network Programmability and Automation networktocode.com ipspace.net pynet.twb-tech.com The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/9/201758 minutes, 9 seconds
Episode Artwork

Automat State Machines with Glyph Lefkowitz

Summary The venerable ‘if’ statement is a cornerstone of program flow and busines logic, but sometimes it can grow unwieldy and lead to unmaintainable software. One alternative that can result in cleaner and easier to understand code is a state machine. This week Glyph explains how Automat was created and how it has been used to upgrade portions of the Twisted project. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Glyph about Automat, a library that provides self-service finite-state machines for the programmer on the go. Interview Introductions How did you get introduced to Python? What is a state machine and when might you want to use one? There are a number of libraries available on PyPI that facilitate the creation of state machines. Why did you feel the need to build a new option and how does it differ from what was already available? Why do you think developers fall into the trap of complicated conditional structures rather than reaching for a state machine? For someone who wants to integrate Automat into their project how would they go about that and what are some of the gotchas that they should keep in mind? What do the internals of Automat look like and how did you approach the overall design of the project? What are some of the more difficult aspects of designing and implementing state machines properly? What are some of the technical hurdles that you have been faced with in the process of building a library for implementing state machines? What do you have planned for the future of Automat? What are some of the most interesting use cases of Automat that you have seen? Keep In Touch Email @glyph on Twitter Glyph on GitHub Picks Tobias Commercial Electric color changing LED puck lights Glyph OmniFocus GTD Links Automat Glyph Interview About Software Ethics Finite State Automaton Yacc Bison Flex Parser Generator PyPI State Machine Pure Mealy Machine Moore Machine Mealy vs. Moore Machines Leaky Abstraction The Law of Leaky Abstraction Twisted Python Descriptor GraphViz Hypothesis PyCon Talk – TLS State Machine The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/2/201749 minutes, 27 seconds
Episode Artwork

Nuclear Engineering with Dr. Katy Huff

Summary Access to affordable and consistent electricity is one of the big challenges facing our modern society. Nuclear energy is one answer because of its reliable output and carbon-free operation. To make this energy accessible to a larger portion of the global population further reasearch and innovation in reactor design and fuel sources is necessary, and that is where Python can help. This week Dr. Katy Huff talks about the research that she is doing, the problems facing the nuclear industry, and how she uses Python to make it happen. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Dr. Katy Huff about using Python for nuclear engineering Interview Introductions How did you get introduced to Python? Can you start by explaining what nuclear engineering is and give some examples of current research in the field? The most widely used and recognized form of nuclear plant is the light water reactor, which, to my understanding, is also the most susceptible to melt-downs and release of radioactive material carried by escaped steam. What are some of the reactor types that are currently being researched to improve safety and efficiency? One of the major policy and logistics issues regarding nuclear power plants is the problem of how to handle spent fuel rods. What are some of the methods that are being researched to solve this problem? In your PyCon presentation you mentioned the Cyclus and PyNE projects as tools that you use in your research. Can you provide a brief overview of each and explain how you use them? What are some of the most pressing issues in nuclear engineering and how are you leveraging Python to help with addressing them? How does open source software relate to open science, and how do they impact the impact the ways that research is performed? What are some of the current or future developments in nuclear engineering that you are most excited about? Keep In Touch Website Twitter Research Picks Tobias Ryobi Tools Katy Atomic Awakening Atomic Accidents Atomic Adventures Links Plasma Nuclear Energy Thorium Uranium Molten Salt Reactor Spent fuel rods Yucca Mountain Nuclear Fuel Reprocessing Sodium Cooled Fast Reactor PyCon Keynote PyNE Cyclus Anthony Scopatz Moose Framework Partial Differential Equations REPL (Read Eval Print Loop) Stellarator Toroidal Fusion Device Journal of Open Source Software (JOSS) American Nuclear Society NEI IAEA The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/24/201738 minutes, 15 seconds
Episode Artwork

Industrial Automation with Jonas Neubert

Summary We all use items that are produced in factories, but do you ever stop to think about the code that powers that production? This week Jonas Neubert takes us behind the scenes and talks about the systems and software that power modern facilities, the development workflows, and how Python gets used to tie everything together. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Jonas Neubert about using Python for industrial automation Interview Introductions How did you get introduced to Python? How did you get involved in factory automation? What are some of the technical challenges that are unique to a factory environment and the physical computing needs associated with it? When developing new capabilities for your factory, how do you manage proper testing of your software given the need to interoperate with the hardware? Which languages are most frequently used for command and control of industrial systems and how does Python interface with them? How do you manage the problem of interfacing with the various different protocols and data formats that are presented by the different hardware instruments? In your PyCon presentation you commented on the fact that security in industrial automation systems is lacking. What are some of the most common issues that you have seen? Why is it that security is such an issue in industrial systems? How are production releases of your software managed and how does it differ from other types of products such as web applications? Aside from manufacturing facilities, what are some other types of environments or industries that require similar levels of hardware automation? What are some of the most interesting or challenging projects that you have worked on? What are some of the packages on PyPI that you find most useful in your day-to-day work? For someone who wants to get involved in industrial automation what kind of experience should they have and what are some of the resources that you recommend? What are some of the innovations in industrial automation that you are most excited about? Keep In Touch @jonemo on Twitter Website Jobs at Tempo Automation Picks Tobias Opeth Jonas Pycon 2017 Talks Eric Evenchick – Hacking Cars with Python Building a wireless speedometer with MicroPython Python from space by Katherine Scott Łukasz Langa – Unicode what is the big deal Morgan Wahl – Text is More Complicated Than You Think Comparing and Sorting Unicode The Prepared Newsletter by Spencer Wright Long Distance Amtrak rides! Links Tempo Automation Palm webOS Infinion Technologies DRAM Service Oriented Architecture Singleton Light Curtain Factory Acceptance Testing Site Acceptance Testing Testing Pyramid Protocol Analyzer Multimeter GCode IEC-61131 Pascal Ladder Logic OPC Standards OPC DA C# Factory Control Systems Stuxnet Industroyer IEC 61850 Industrial Internet of Things Counsyl PySerial FactoryBoy Parameterized Freezegun Struct XMLRPC Factory Tours How It’s Made McMaster.com Mass Customization Life Sciences CRISPR PyCon – Reprogramming the human genome Transcriptic Autodesk Life Sciences The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/18/20171 hour, 2 minutes, 6 seconds
Episode Artwork

Jedi Code Completion with David Halter

Summary When you’re writing python code and your editor offers some suggestions, where does that suggestion come from? The most likely answer is Jedi! This week David Halter explains the history of how the Jedi auto completion library was created, how it works under the hood, and where he plans on taking it. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing David Halter about Jedi, an awesome autocompletion and static analysis library for Python Interview Introductions How did you get introduced to Python? Can you explain what Jedi is and what problem you were trying to solve when you created it? What is the story behind the name? While reading through the documentation I noticed that there is alpha support for linting with Jedi. Can you compare the linting approach and capabilities with those found in other tools such as pylint and flake8? What does the internal architecture and design look like? From the research that I did for the show it seems that, rather than use the AST to determine the structure of the code being completed you built your own parser and recursive evaluation of the other methods that you use for determining accurate completion? What was lacking in existing parsers that led you to build your own? What are some of the difficulties that you have encountered building and maintaining the grammar definitions and higher level API for parsing multiple versions of Python, including the 2 vs 3 split? What are some of the biggest challenges associated with introspecting user code? What are some of the ways that Jedi can be confounded by a user’s project? What are some of the most difficult technical hurdles that you have been faced with while building Jedi? What are some unusual or unexpected uses of Jedi that you have seen? What do you have planned for the future of Jedi? Keep In Touch davidhalter on GitHub @jedidjahch on Twitter Picks Tobias Patch utility David Bears Den Soccer Singing Dancing DocOpt OpenStack Links Cloudscale.ch Vim Youcompleteme Neocomplete pyflakes pycodestyle pylint Parser Generator Parser Error Recovery lib2to3 Python grammar file Finite state automata Type inference yapf AST module MyPy IPython The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/11/201742 minutes, 55 seconds
Episode Artwork

Coconut with Evan Hubinger

Summary Functional programming is gaining in popularity as we move to an increasingly parallel world. Sometimes you want access to purely functional syntax and capabilities but you don’t want to have to learn an entirely new language. Coconut is here to help! This week Evan Hubinger explains how Coconut is a functional language that compiles to Python and can be mixed and matched with the rest of your program. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Evan Hubinger about Coconut, a functional language implemented as a superset of Python Interview Introductions How did you get introduced to Python? Can you start by explaining what Coconut is and what problem you were trying to solve when you created it? Where did the name come from? How is Coconut implemented and what does the compilation process for Coconut code look like? How will I be able to debug my Python if I’m not the one writing it? The documentation mentions that Coconut itself is compatible with both Python 2 and 3, are there any caveats to be aware of in terms of mixing in standard Python syntax? Are there any performance optimizations that you have had to perform in order to make things like recursion and pattern matching work at reasonable speeds in the Python VM? Which functional languages have you taken inspiration from during the creation of Coconut? What are some of the most interesting or unexpected uses of Coconut that you have seen? What are some resources that you recommend for people who are interested in learning more about functional programming? Keep In Touch Coconut Website GitHub Tutorial Documentation FAQ Chat room Evan GitHub LinkedIn Picks Tobias ElementTree Evan pyparsing is an awesome PyPI package you should check out The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/4/201733 minutes, 31 seconds
Episode Artwork

Cauldron with Scott Ernst

Summary The notebook format that has been exemplified by the IPython/Jupyter project has gained in popularity among data scientists. While the existing formats have proven their value, they are still susceptible with difficulties in collaboration and maintainability. Scott Ernst created the Cauldron notebook to be testable, production ready, and friendly to version control. This week we explore the capabilities, use cases, and architecture of Cauldron and how you can start using it today! Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Scott Ernst about Cauldron, a new notebook format built with software engineering best practices in mind. Interview Introductions How did you get introduced to Python? Can you start by explaining what Cauldron is and what problem you were trying to solve when you created it? In the documentation it mentions that you can use any editor for creating the content of the notebook. Can you describe a typical workflow of authoring the various files and cells and viewing the output? How does Cauldron compare to the Jupyter notebook format and what factors would lead someone to choose one over the other? Does Cauldron support running languages other than Python? If not then what would be involved in adding that capability? Cauldron notebooks support unit tests of individual cells. How does that process work and what are the limitations? The option for running the notebook in the context of a task workflow tool appears to be a powerful capability. What are some of the considerations that are necessary when writing a notebook to be run in that manner? What are some of the most interesting or unexpected projects that you have seen people using Cauldron for? What do you have planned for the future of Cauldron? Keep In Touch @swernst on Twitter Website Picks Tobias Tiffany Aching Adventures Scott Apache Big Data Conference Links When I Work IPython Interview Spark R2Py Bokeh Website Podcast.init Interview Luigi Airflow Website Podcast.init Interview Digital Paleontology A16 Project The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/28/201737 minutes, 51 seconds
Episode Artwork

Tech Debt and Refactoring at Yelp! with Andrew Mason

Summary Healthy code makes for happy coders, and there are many ways to measure the health of a project. This week Andrew Mason talks about the Undebt project from Yelp!, as well as some of the other tools and practices that have been developed to make sure that the balance on their technical debt card stays low. Give it a listen to learn how and why to measure and address the painful parts of your software. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Andrew Mason about technical debt and refactoring with Undebt. Interview Introductions How did you get introduced to Python? How do you define technical debt and why is it an important aspect of a project to keep track of? How would you characterize refactoring in general and when you might want to do it? What is Undebt and what was the problem that you were facing at Yelp when it was created? For someone who wants to get started with using Undebt what does that process look like and how does it work under the covers? What are some of the other tools and techniques available for refactoring Python code and how do they differ from what is possible in Undebt? What are some of the other tools and methods that you use to maintain the overall health of your codebase? What are some of the limitations and edge cases that you have experiemced working with Undebt? It is often a difficult balancing act when working in a team to determine how much time to spend paying down technical debt and building tools that will act as force multipliers vs doing feature work that will be visible to end-users. In your experience, what are some ways to manage that tension? Keep In Touch Andrew GitHub Website @andrew_mason1 on Twitter Picks Tobias Continuous Delivery by Jez Humble and David Farley Andrew XI Editor The Circle by David Eggers Links Martin Fowler “Uncle” Bob Martin git-code-debt Undebt PyParsing Podcast.init Episode About Parsing Rope Pre-Commit PyLint The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/20/201734 minutes, 26 seconds
Episode Artwork

LBRY with Jeremy Kauffman

Summary Content discovery and delivery and how it works in the digital realm is one of the most critical pieces of our modern economy. The blockchain is one of the most disruptive and transformative technologies to arrive in recent years. This week Jeremy Kauffman explains how the company and platform of LBRY are combining the two in an attempt to redefine how content creators and consumers interact by creating a new distributed marketplace for all kinds of media. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Jeremy Kaufman about LBRY, a new marketplace for media built on peer to peer storage and blockchain technologies. Interview Introductions How did you get introduced to Python? What is LBRY and how did the idea for it get started? What, if any, mechanisms are there for content owners to address piracy? Is the LBRY blockchain purpose built for the protocol and application or is it using something like Ethereum under the covers? In order to support a large scale distributed marketplace, the crypto coin that you are using will need to be able to support large transaction volumes so how have you architected it in order to achieve that capability? What technologies are you leveraging to facilitate the content distribution mechanism? One of the current problems with Bitcoin mining is that as the complexity of the proofs has increased and dedicated operations have moved to ASICs it has become less feasible for an individual to take part. Is there any provision for that situation built into the LBRY blockchain or does it not matter due to the capabilities for individual users to earn coins by participating as part of the storage network? What led to the decision to use Python for the initial implementation? For people who are participating in the LBRY network, what is the mechanism for them to convert their earned LBC into fiat currency? How much of the overall LBRY stack is using Python and what other languages are you taking advantage of? What is the business plan for LBRY the company and what do you have planned for the future of LBRY? Keep In Touch Jeremy @jeremykauffman on Twitter Email LBRY Website @LBRYio on Twitter Picks Tobias Neurotribes Jeremy Crystals and Mud in Property Law Links LBRY BitTorrent BitCoin Blockchain Distributed Hash Tables The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/14/201739 minutes, 39 seconds
Episode Artwork

Python Goes To The Movies with Dhruv Govil

Summary Movies are magic, and Python is part of what makes that magic possible. We go behind the curtain this week with Dhruv Govil to learn about how Python gets used to bring a movie from concept to completion. He shares the story of how he got started in film, the tools that he uses day to day, and some resources for further learning. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and this week I am joined by Dhruv Govil to talk about how Python is used for making movies. Interview Introductions How did you get introduced to Python? How did you get started in the film-making business? What are some of the ways that Python is used in the process of bringing a movie to completion? How much of the overall pipeline processing happens in Python vs just being used as a means of wiring together other programs. How much of the code that gets written is reusable between different projects? What is involved in testing data assets when they are submitted to the pipeline for the open format conversion process? What are some of the libraries that you have found to be most useful in your day-to-day work? Why do you think that Python is so widely used in the film industry and are there any other languages that you see being used in a similar manner? What are some of the areas where Python is used that you were most surprised by? Are there any portions of the process where you would like to be able to use Python but are unable due to performance or platform constraints? What are some of the most interesting projects that you have worked on and which are you most proud of? How does the work that is done by developers and technical contributors get reflected in the final credits? For anyone who is interested in working in the film industry as a technical contributor what advice do you have? Keep In Touch Dhruv Website @DhruvGovil on Twitter dgovil on GitHub Picks Tobias Firefox on Android Dhruv Google Earth VR Links Udemy: Python for MayaUdemy Vancouver Film School Guardians of the Galaxy Cloudy w/ chance meatballs 2 Blog Post: Python For Feature Film PyQT PySide Autodesk Maya Katana Nuke Cython Rez Alembic Geometry Storage Format Pixar Universal Scene Description Pyblish Open Color IO Edge of Tomorrow PyOpenGL Kraken Fabric Engine SIGGRAPH Convention Ray Tracing In A Weekend Mathematics for Computer Graphics Blender The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/6/201741 minutes, 41 seconds
Episode Artwork

Scapy with Guillaume Valadon

Summary Network protocols are often inscrutable, but if you have an effective way to experiment with them then they expose a lot of power. This week Guillaume Valadon explains how Scapy can be used to inspect your network traffic, test the security of your systems, and develop brand new protocols, all in Python! Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Get a shirt and support the show! Go to https://teespring.com/podcastinit?utm_source=rss&utm_medium=rss and get a mug to go with it. Your host as usual is Tobias Macey and today I am interviewing Guillaume Valadon about Scapy, the swiss army knife for packet manipulation in Python Interview Introductions How did you get introduced to Python? Can you explain what Scapy is and what problem it was created to solve? How has the decision to build Scapy in Python benefited the project? How has the 10 year history of the project affected your ability to maintain and evolve the code? How has the project evolved from the initial prototypes by Philippe Biondi through to its current incarnation as Scapy 2? I understand that the project was originally hosted on Bitbucket and then moved to Github. What prompted that decision and how has it played out? Who is the target audience and what are some of the primary intended use cases for Scapy? How is the implementation of packet layering architected in order to allow for such flexibility and composability? What are some of the most interesting and unexpected ways that you have seen Scapy used? What protocols have been the most problematic to implement and maintain? What have been some of the most challenging aspects of developing Scapy? What do you have planned for the future of Scapy? Contact Info Guillaume Website Email @guedou on Twitter Picks Tobias Buckethead Guillaume Rust Links Six UTScapy CodeCov Appveyor Jython OpenBSD MicroPython NSA Extra Bacon SNMP ASN.1 X509 TLS IPSec DNS HTTP2 PEP8 Scapy 3 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/29/201731 minutes, 58 seconds
Episode Artwork

yt-project with Nathan Goldbaum and John Zuhone

Summary Astrophysics and cosmology are fields that require working with complex multidimensional data to simulate the workings of our universe. The yt project was created to make working with this data and providing useful visualizations easy and fun. This week Nathan Goldbaum and John Zuhone share the story of how yt got started, how it works, and how it is being used right now. Announcements The Open Data Science Conference is coming to Boston May 3rd-5th. Get your ticket now so you don’t miss out on your chance to learn more about the state of the art for data science and data engineering. Now you can get T-shirts, sweatshirts, mugs, and a tote bag to let the world know about Podcast.init, and you can support the show at the same time! Go to teespring.com/podcastinit and load up! Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I’m interviewing Nathan Goldbaum and John Zuhone about the YT project for multi-dimensional data analysis. Interview Introductions How did you get introduced to Python? What is yt and how did it get started? Where does the name come from? How does yt compare to other projects such as AstroPy for astronomical data analysis? What are the domains in which yt is most widely used? One of the main use cases of yt is for visualizing multidimensional data. What are some of the design challenges in trying to represent such complicated domains via a visual model? Some of the sample datasets for the examples are rather large. What are some of the biggest challenges associated with running analyses on such substantial amounts of information? How has the project evolved and what are some of the biggest challenges that it is facing going forward? Contact John @njgoldbaum on Twitter Nathan @astrojaz on Twitter Picks Tobias Scout2 Nathan The Expanse Novels John Visual Studio Code Links HDF5Py Matt Turk Seismodome Computational Fluid Dynamics AstroPy Website Podcast Interview SymPy Website Podcast Interview Magnetohydrodynamics Numerical Relativistic Hydrodynamics MPI4Py Matplotlib The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/22/201738 minutes, 9 seconds
Episode Artwork

Scikit-Image with Stefan van der Walt and Juan Nunez-Iglesias

Summary Computer vision is a complex field that spans industries with varying needs and implementations. Scikit-Image is a library that provides tools and techniques for people working in the sciences to process the visual data that is critical to their research. This week Stefan Van der Walt and Juan Nunez-Iglesias, co-authors of Elegant SciPy, talk about how the project got started, how it works, and how they are using it to power their experiments. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show please leave a review on iTunes, or Google Play Music, tell your friends and co-workers, and share it on social media. Your host as usual is Tobias Macey and today I am interviewing Stefan van der Walt and Juan Nunez-Iglesias, co-authors of Elegant SciPy, about scikit-image Interview Introduction How did you get introduced to Python? What is scikit-image and how did the project get started? How does its focus differ from projects like SimpleCV/OpenCV or Pillow? What are some of the common use cases for which the scikit-image package is typically employed? What are some of the ways in which images can exhibit higher dimensionality and what are some of the kinds of operations that scikit-image can perform in those situations? How is scikit designed and what are some of the biggest challenges associated with its development, whether in the past, present, or future? What are some of the most interesting use cases for scikit-image that you have seen? What do you have planned for the future of scikit-image? Contact Information Stefan Email @stefanvdwalt on Twitter Website Juan Email @jnuneziglesias on Twitter Website jni on GitHub Picks Tobias Set Stefan Monkey Island Thimbleweed Park Aqua Notes Juan Matilda the Musical Water Rower Rowing Machine Bored Elon Musk OMG: “News app that connects to a blood pressure monitor and adjusts your feed accordingly.” Links scikits.appspot.com Sphinx Gallery SciPy Conference Minimum Cost Paths Image Stitching Tutorial Elegant SciPy The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/16/201741 minutes, 53 seconds
Episode Artwork

Oscar Ecommerce with David Winterbottom and Michael van Tellingen

Summary If you have a product to sell, whether it is a physical good or a subscription service, then you need a way to manage your transactions. The Oscar ecommerce framework for Django is a flexible, extensible, and well built way for you to add that functionality to your website. This week David Winterbottom and Michael van Tellingen talk about how the project got started, how it works under the covers, and how you can start using it today. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who supports us on Patreon. Your contributions help to make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at www.podastinit.com/linode?utm_source=rss&utm_medium=rss and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit the site to subscribe to the show, sign up for the newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Before we start the show I have a couple of announcements I started a new Slack channel for guests and listeners of the show. Go to www.pythonpodcast.com/slack?utm_source=rss&utm_medium=rss to join in the conversation! If you are interested in how open source powers innovations in data then you should check out the Open Source Data Science conference. It is coming to Boston, Massachusetts on March 3rd through the 5th so don’t miss out on your chance to level up and meet some new friends! Your host as usual is Tobias Macey and today I’m interviewing David Winterbottom and Michael van Tellingen about the Oscar framework for building ecommerce applications in Django. Interview Introductions How did you get introduced to Python? What is Oscar and what problem were you trying to solve when you created it? At face value ecommerce seems like a fairly straightforward problem domain but there is a lot of incidental complexity involved. What are some of the most challenging aspects of building and managing a web store? The documentation states in a number of places that Oscar takes a ‘domain driven’ approach to building ecommerce applications. Can you explain what you mean by that and how it manifests in the project? What does the internal design of Oscar look like and how would someone get started with building a site with it? There can be a benefit to having an opinionated approach when building a framework because it simplifies the implemenation for the user. What is the reasoning for choosing to expose and allow for complexity in Oscar? What are some of the most interesting and unexpected projects that you have seen built with Oscar? How has ecommerce changed in the time since Oscar was first created, and how has that impacted its evolution? What is in store for the future of Oscar? Contact David Website @codeinthehole on Twitter GitHub Michael Website Picks David Destroy All Software by Gary Bernhardt Michael PyCharm Zeep (SOAP Library) Links Shopify Tangent Domain Driven Design by Eric Evans (book) Entity, Attribute, Value Pattern Home Assistant Interview Spree Commerce Magento Saleor Wagtail Wagtail Interview Django CMS Kivy Garden Awesome Wagtail SaltStack Formulas Pelican Plugins DjangoPackages.org Django Treebeard TDD (Test Driven Development) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/8/201753 minutes, 37 seconds
Episode Artwork

Duplicity with Kenneth Loafman

Summary Everyone who uses a computer on a regular basis knows the importance of backups. Duplicity is one of the most widely used backup technologies, and it’s written in Python! This week Kenneth Loafman shares how Duplicity got started, how it works, and why you should be using it every day. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Kenneth Loafman about Duplicity, the Python based backup tool Interview Introduction How did you get introduced to Python? Can you share some of the history of Duplicity? What is duplicity and how does it differ from other available backup tools? Many backup solutions are written in Java or lower level languages such as C, what is the motivation for using Python as the language for implementing Duplicity? At face value backing up files seems like a straightforward task but there is a lot of incidental complexity. Can you describe the architecture and internals of Duplicity that allow for it to handle a wide variety of use cases? It has been shown in a number of contexts that people will generally use the default settings, so by forcing people to opt out of encrypting their backups you are promoting security best practices in Duplicity. Why is it so important to have the archive encrypted, even if the storage medium is fully under the control of the person doing the backup? Given that backups need to be highly reliable what are the steps that you take during the development process to ensure that there are no regressions? What mechanisms are built into duplicity to prevent data corruption? What are some of the most difficult or complex aspects of the problem space that Duplicity is dealing with? I noticed that you have a proposal for a new archive format to replace Tar. Can you describe the motivation for that and the design choices that have been made? Contact Kenneth Loafman Email @FirstPrime on Twitter Picks Tobias Passengers Kenneth NCIS Plan 9 From Outer Space Links rsync librsync deja-dup duply ECC duplicity The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/1/201735 minutes, 16 seconds
Episode Artwork

Digital Identity, Privacy, and Security with Brian Warner

Summary As the internet and digital technologies continue to infiltrate our way of life, we are forced to consider how our concepts of identity and security are reflected in these spaces. Brian Warner joins me this week to discuss his work on privacy focused projects that he has worked on, including the Tahoe LAFS, Firefox Sync, and Magic Wormhole. He also has some intriguing ideas about how we can replace passwords and what it means to have an online identity. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Brian Warner about digital identity, privacy, and security Interview Please introduce yourself How did you get introduced to Python? How did you get involved in the area of cryptography and digital privacy? You have created or made significant contributions to a number of projects that are focused on making secure communications and storage more accessible, including Tahoe LAFS (Least Authority File System), Magic Wormhole, and Petmail. Can you provide a brief overview of these projects and any others that you would like to mention? What problem were you trying to solve when you created or began contributing to each of them and how satisfied are you with their current state? What have you found to be the biggest barriers to adoption for these projects? How do Tahoe and Magic Wormhole benefit an average user and what are your plans for their future development? One of the most ubiquitous issues with our modern security infrastructure leading to compromise is the humble password. What are some technologies that you foresee replacing the need for passwords? As technologists we are fairly well aware of the weaknesses in the systems that we use day-to-day. How can we make digital privacy and security more accessible? Contact Info warner on GitHub @lotharrr on Twitter Picks Brian Ra on Things of Interest The Golden Age by John C. Wright Links Tor Petmail (v1, ca 2003) Petmail (new) Mojo Nation Tahoe-LAFS Magic-Wormhole Erasure Coding Firefox Sync JPAKE SPAKE2 PyCon 2016 Presentation on Magic Wormhole (video) (slides) Versioneer Keybase File System Least Authority Enterprises Foolscap SpiderOak Object Capability Pattern Shamir’s Secret Sharing AutoCrypt Signal WhatsApp Simply Secure
3/25/201746 minutes, 43 seconds
Episode Artwork

Crossbar.io with Tobias Oberstein and Alexander Gödde

Summary As our system architectures and the Internet of Things continue to push us towards distributed logic we need a way to route the traffic between those various components. Crossbar.io is the original implementation of the Web Application Messaging Protocol (WAMP) which combines Remote Procedure Calls (RPC) with Publish/Subscribe (PubSub) communication patterns into a single communication layer. In this episode Tobias Oberstein describes the use cases and design patterns that become possible when you have event-based RPC in a high-throughput and low-latency system. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Tobias Oberstein and Alexander Gödde about Crossbar.io, a high throughput asynchronous router for the WAMP protocol Interview Introductions How did you get introduced to Python? What is Crossbar and what is the problem that you were trying to solve when you created it? What is the status of the IETF WAMP protocol proposal? Why have an open protocol – and how do you see the ecosystem? Python isn’t typically considered to be a high-performance language so what led you to use it for building Crossbar? How is Crossbar architected for proxying requests from a highly distributed set of clients with low latency and high throughput? How do you handle authorization between the various clients of the router so that potentially sensitive messages don’t get published to the wrong component? Does Crossbar encapsulate any business logic or is that all pushed to the edges of the system? What are some of the typical kinds of applications that Crossbar is designed for? What are some common design paradigms that would be better suited for a WAMP implementation? What are some of the most interesting or surprising uses of Crossbar that you have seen? What do you have planned for the future of Crossbar? Keep In Touch Mailing Lists https://groups.google.com/forum/#!forum/autobahnws?utm_source=rss&utm_medium=rss https://groups.google.com/forum/#!forum/wampws?utm_source=rss&utm_medium=rss https://groups.google.com/forum/#!forum/crossbario?utm_source=rss&utm_medium=rss #autobahn on IRC Picks Tobias Logan Alex Pivotal Tracker Tobias PyPy Brian Warner Click prompt-toolkit Links Autobahn WAMP PyPy API Gateway The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/18/201752 minutes, 47 seconds
Episode Artwork

MetPy: Taming The Weather With Python

Summary What’s the weather tomorrow? That’s the question that meteorologists are always trying to get better at answering. This week the developers of MetPy discuss how their project is used in that quest and the challenges that are inherent in atmospheric and weather research. It is a fascinating look at dealing with uncertainty and using messy, multidimensional data to model a massively complex system. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Ryan May, Sean Arms, and John Leeman about MetPy, a collection of tools and notebooks for analyzing meteorological data in Python. Interview Introductions How did you get introduced to Python? What is MetPy and what is the problem that prompted you to create it? Can you explain the problem domain for Meteorology and how it compares to other domains such as the physical sciences? How do you deal with the inherent uncertainty of atmospheric and weather data? What are some of the data sources and data formats that a meteorologist works with? To what degree is machine learning or artificial intelligence employed when modelling climate and local weather patterns? The MetPy documentation has a number of examples of how to use the library and a number of them produce some fairly complex plots and graphs. How prevalent is the need to interact with meteorological data visually to properly understand what it is trying to tell you? I read through your developer guide and watched your SciPy talk about development automation in MetPy. My understanding is that individuals with a pure science background tend to eschew formal code styles and software engineering practices so I’m curious what your experience has been when interacting with your user community. What are some of the interesting innovations in weather science that you are looking forward to? Keep In Touch MetPy @MetPy on Twitter Documentation GitHub Ryan @dopplershift on Twitter dopplershift on GitHub Picks Tobias Drill To Detail Podcast Data Capital Episode Ryan pytest-mpl Sean Trolls John Embedded.fm Links Unidata University of Oklahoma – College of Atmospheric and Geographic Sciences University Corporation for Atmospheric Research NetCDF GEMPACK XArray The Climate Corporation GOES-16 LDM Goes16 on Twitter Don’t Panic Geocast The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/11/201752 minutes, 22 seconds
Episode Artwork

The Update Framework: Securing Your Software Updates with Justin Cappos

Summary If you write software then there’s a good probability that you have had to deal with installing dependencies, but did you stop to ask whether you’re installing what you think you are? My guest this week is Professor Justin Cappos from the Secure Systems Lab at New York University and he joined me to discuss his work on The Update Framework which was built to guarantee that you never install a compromised package in your systems. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Justin Cappos about The Update Framework, an open spec and reference implementation for mitigating attacks on software update systems. Interview Introduction How did you first get introduced to Python? Please start by explaining what The Update Framework (TUF) is and the problem that you were trying to solve when you created it. How is TUF architected and what led you to choose Python for the reference implementation? TUF addresses the problem of ensuring that the packages that get installed are created by the right developers, but how do you properly establish trust in the first place? Why are consistent and auditable dependencies important for the security of a system and how does TUF help with that goal? What are some of the known attack vectors for a software update system and how do Python and other systems attempt to mitigate these vulnerabilities? One of the perennial problems with any dependency management system is that of transitive dependencies. How does TUF handle this extra complexity of ensuring that all of the secondary, tertiary, etc. dependencies are also properly pinned and trusted? For someone who wants to start using TUF what are the steps to get it set up with pip? How would a project that wants to use TUF, do so? Who is using TUF and when will it be used with PyPI? Keep In Touch https://ssl.engineering.nyu.edu/?utm_source=rss&utm_medium=rss https://ssl.engineering.nyu.edu/personalpages/jcappos/?utm_source=rss&utm_medium=rss Picks Tobias The Enchanted Forest Chronicles Justin Hand Pulled Noodles Lam Zhou Links When the Going Gets Tough, Get TUF Going – PyCon 2016 RPM Apt Stork Package Manager Yubikey Distribution Packages Considered Insecure Notary Flynn Uptane in-toto The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/4/201737 minutes, 21 seconds
Episode Artwork

Pandas with Jeff Reback

Summary Pandas is one of the most versatile and widely used tools for data manipulation and analysis in the Python ecosystem. This week Jeff Reback explains why that is, how you can use it to make your life easier, and what you can look forward to in the months to come. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. When you’re writing Python you need a powerful editor to automate routine tasks, maintain effective development practices, and simplify challenging things like refactoring. Our sponsor JetBrains delivers the perfect solution for you in the form of PyCharm, providing a complete set of tools for productive Python, Web, Data Analysis and Scientific development, available in 2 editions. The free and open-source PyCharm Community Edition is perfect for pure Python coding. PyCharm Professional Edition is a full-fledged tool, designed for professional Python, Web and Data Analysis developers. Today JetBrains is offering a 3-month free PyCharm Professional Edition individual subscription. Don’t miss this chance to use the best-in-class tool with intelligent code completion, automated testing, and integration with modern tools like Docker – go to <www.pythonpodcast.com/pycharm?utm_source=rss&utm_medium=rss> and use the promo code podcastinit during checkout. Visit the site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Jeff Reback about Pandas, the swiss army knife of data analysis in Python. Interview Introductions How did you get introduced to Python? To start off, what is Pandas and what is its origin story? How did you get involved in the project’s development? For someone who is just getting started with Pandas what are the fundamental ideas and abstractions in the library that are necessary to understand how to use it for working with data? Pandas has quite an extensive API and I noticed that the most recent release includes a nice cheat sheet. How do you balance the power and flexibility of such an expressive API with the usability issues that can be introduced by having so many options of how to manipulate the data? There is a strong focus for use in science and data analytics, but there are a number of other areas where Pandas is useful as well. What are some of the most interesting or unexpected uses that you have seen or heard of? What are some of the biggest challenges that you have encountered while working on Pandas? Do you find the constraint of only supporting two dimensional arrays to be limiting, or has it proven to be beneficial for the success of pandas? What’s coming for pandas? Pandas 2.0! Keep In Touch @jreback on Twitter jreback on GitHub Picks Tobias http://standards.mousepawgames.com/index.html?utmsource=rss&utmmedium=rss Jeff Travis CI Appveyor Circle CI Links Continuum Analytics Myths Programmers Believe About Time Jupyter Notebook XArray Dask Website Interview NumFocus PyLint Interview The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/26/201749 minutes, 22 seconds
Episode Artwork

PyTables with Francesc Alted

Summary HDF5 is a file format that supports fast and space efficient analysis of large datasets. PyTables is a project that wraps and expands on the capabilities of HDF5 to make it easy to integrate with the larger Python data ecosystem. Francesc Alted explains how the project got started, how it works, and how it can be used for creating sharable and archivable data sets. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Linode will has announced new plans, including 1GB for $5 plan, high memory plans starting at 16GB for $60/mo and an upgrade in storage from 24GB to 30GB on our 2GB for $10 plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Your host as usual is Tobias Macey and today I’m interviewing Francesc Alted about PyTables Interview Introductions How did you get introduced to Python? To start with, what is HDF5 and what was the problem that motivated you to wrap Python around it to create PyTables? Which are the most relevant contributors for PyTables? How you interacted? How is the project architected and what are some of the design decisions that you are most proud of? What are some of the typical use cases for PyTables and how does it tie into the broader Python data ecosystem? How common is it to use an HDF5 file as a data interchange format to be shared between researchers or between languages? Given the ability to create custom node types, does that inhibit the ability to interact with the stored data using other libraries? What are some of the capabilities of HDF5 and PyTables that can’t be reasonably replicated in other data storage systems? One of the more intriguing capabilities that I noticed while reading the documentation is the ability to perform undo and redo operations on the data. How might that be leveraged in a real-world use case? What are some of the most interesting or unexpected uses of PyTables that you are aware of? Keep In Touch @FrancescAlted on Twitter FrancescAlted on GitHub Picks Tobias The Accountant Francesc Blosc a high speed compressor, specially meant for binary data The Lego Batman Movie Links PyTables PyTables – Optimization Presentations and Videos about PyTables Part of the story behind PyTables HDF5 Pandas SIMD NumFOCUS The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/18/201749 minutes, 15 seconds
Episode Artwork

SKIDL with Dave Vandenbout

Summary As circuits and electronic components become more complex, visual circuit building tools are more difficult to use effectively. If you wish that you could just write your circuits in Python then you’re in luck! Dave Vandenbout created a library called SKIDL that brings the power and flexibility of Python to the realm of Electrical Engineering and he tells us all about it in this weeks show. Preamble Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Dave Vandenbout about SKIDL, a library for designing and validating circuit layouts. Interview Introductions How did you get introduced to Python? Can you describe what SKIDL is and the problem that you were trying to solve when you first started it? Most of my experience designing circuits has been done using a graphical tool. If you are using Python for the entire layout does it become difficult to understand the overall circuit without the visual representation? Is there a way to generate a circuit diagram from the SKIDL code for a visual reference? It seems that there is a substantial amount of electrical knowledge required to be able to design and build schematics in code. For someone who is more of a hobbyist or is just starting to work with circuit design are there any facilities of SKIDL to assist with that understanding? What does the testing and validation process of a generated circuit look like? What does the internal architecture of SKIDL look like and what are some of the biggest challenges that you have faced while building it? For the generated netlist does SKIDL take into account voltage losses due to the lengths of the traces in the final PCB and does it have any facilities to optimize the overall layout for space and efficiency? Sometimes a circuit board is meant to be accessible for maintenance or even display purposes. Is it possible to specify the arrangement of components to make them more aesthetically pleasing or to space them so that they are easier to access physical interface ports (e.g. GPIO pins or I2C buses)? What are some of the most interesting or surprising uses of SKIDL that you have seen? Keep In Touch Website Documentation Picks Tobias Samsonite Tectonic Backpack Dave Ball 4 by Jim Bouton Links KiCad Gerber Files ASIC FPGA PHDL MyHDL VHDL SPICE Simulator The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/11/201740 minutes, 49 seconds
Episode Artwork

Parsing and Parsers with Dave Beazley and Erik Rose

Summary If you have ever found yourself frustrated by a complicated regular expression or wondered how you can build your own dialect of Python then you need a parser. Dave Beazley and Erik Rose talk about what parsers are, how some of them work, and what you can do with them in this episode. Preface Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Erik Rose and Dave Beazley about what parsing is, why you might want to use it, and how their respective libraries Parsimonious and PLY make it easy. Interview Introductions How did you get introduced to Python? Can you each start by talking a bit about your respective libraries and what problem you were trying to solve when they were first created? In what ways does a full-fledged parser differ from what a regular expression engine is capable of? What are some of the different high-level approaches to building a parser and when might you want to choose one over the others? I’m sure that when most people hear the term parsing they associate it with reading in a data interchange format such as JSON or CSV. What are some of the more interesting or broadly applicable uses of parsing that might not be as obvious? One term that kept coming up while I was doing research for this interview was “Grammars”. How would you explain that concept for someone who is unfamiliar with it? Once an input has been parsed, what does the resulting data look like and how would a developer interact with it to do something useful? For someone who wants to build their own domain specific language (DSL) what are some of the considerations that they should be aware of to create the grammar? What are some of the most interesting or innovative uses of parsers that you have seen? Keep In Touch Dave Beazley @dabeaz on Twitter Website Erik Rose @ErikRose on Twitter Website Picks Tobias Terminix Erik Riven ScummVM Dave iTerm2 Kerbal Space Program Links Python Cookbook Python Essential Reference Fathom SWIG Windows Scripting Host PEG (Brian Foord) Parsing Techniques by Grune and Jacobs The Dragon Book Stack Overflow HTML regex parsing Earley parsing SPARK Hy-lang Docs Interview Trampolining Lisp NLTK SLY DXR LLVM Numba The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/4/201750 minutes
Episode Artwork

Home Assistant with Paulus Schoutsen

Summary Don’t you wish you could make all of your devices talk to each other? Check out Home Assistant, the Python 3 platform for unified automation. Paulus Schoutsen shares the story of how the project got started, what makes it tick, and how you can use it today! Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Paulus Schoutsen about Home Assistant, the Python 3 platform for unifying your home automation. Interview Introductions How did you get introduced to Python? What is Home Assistant and what was the initial frustration that inspired you to create it? How useful would home assistant be for someone who doesn’t have a lot of the so-called ‘smart home’ technology? Given the fact that the intended context for Home Assistant is in the user’s house or apartment, how do you ensure that their data and privacy are safe? Reading through the documenation for installing and configuring Home Assitant, it seems prohibitively complex for someone who is not technically inclined. Has any work been done to try to package the project in a way that is more friendly to a casual user? What are some of the most difficult challenges that you have faced while building Home Assistant? Why did you choose Python 3 as the technology for building this platform? The list of supported services and integrations is quite impressive. How does the current architecture allow for that kind of growth? How has the architecture of Home Assistant evolved from when you first started it? What are some of the products or platforms that you consider to be competitors of Home Assistant and how do you differentiate yourself? What are some of the most interesting or unexpected uses of Home Assistant that you have seen? What do you see as some of the most promising and the most troubling trends in the future of home automation? Keep In Touch Gitter Chatroom Forum Picks Tobias Miss Peregrine’s Home for Peculiar Children Paulus Read a Newspaper Links Mycroft Interview Project Homepage Let’s Encrypt Voluptuous JSON-Schema Home Assistant PyCon Presentation asyncio Open HAB Merai Botnet The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/28/201741 minutes, 46 seconds
Episode Artwork

Cryptography with Paul Kehrer

Summary Sooner or later you will need to encrypt or hash some data. Thankfully we have the Cryptography library, along with the other projects maintained by the Python Cryptographic Authority, to make sure that your crypto is done right. In this episode Paul Kehrer talks about how the PyCA got started, the projects that they maintain, and how you can start using cryptography in your programs today. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your app or experimenting with something you hear about in this episode. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Paul Kehrer about cryptography and encryption in Python Interview with Paul Kehrer Introductions How did you get introduced to Python? Can you share a bit of the background behind the Python Cryptographic Authority and how you got involved? There is an adage that you should never roll your own crypto because if there are bugs or exploits in your implementation then it can have potentially serious side effects. What problem was the Cryptography library created to solve that was important enough to proceed despite that risk? Given the sensitive nature of the libraries that you are working on, what development practices are you relying on to prevent the introduction of vulnerabilities? While reading through the documentation I noticed that Cryptography links against OpenSSL. Is it possible to swap that out for alternative implementations such as LibreSSL or S2N? What are some of the testing techniques that you use to ensure the accuracy of the algorithms that you are using? What are some of the factors that a developer should keep in mind when selecting which cryptographic library to use in their projects? When might someone want to use the capabilities found in the cryptography library what do they need to be aware of while writing their application? For someone who wants to incorporate the cryptography library into their project what are some of the potential pitfalls that they should be aware of and how much knowledge of encryption should they possess? In what ways does the security landscape in Python differ from that of other languages that you are familiar with and what unique challenges do we face? What are some of the fundamental aspects of encryption and cryptography that you feel every developer should at least be aware of? If anyone wants to learn more about security and encryption, what resources do you recommend? Keep In Touch Twitter – @reaperhulk Picks Tobias Migadu Castle Panic Paul Frinkiac.com Morbotron Links S2N LibreSSL Cryptography 101 General Number Field Sieve Lattice Based Crypto Google New Hope Cryptography Hypothesis Mersenne Twister CryptoPals Crypto Challenges The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/21/201742 minutes
Episode Artwork

Translate House with Dwayne Bailey and Ryan Northey

Summary What is internationalization, when should you add it to your program, and how do you get started? This week Dwayne Bailey and Ryan Northey tell us about their work with Translate House and the different projects that they have built to make translating your software easier. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Dwayne Bailey and Ryan Northey about Translate House and the process of internationalization and localization for software projects. Interview with Dwayne Bailey and Ryan Northey Introductions How did you get introduced to Python? Why did you get involved in localisation, what got you started? How would you describe the difference between internationalization and localization? Are there cases where it makes sense to only do one of those things? Why should people localise software into other languages? Translate House is an organization focused on localizing and internationalizing software projects. To that end there are a collection of projects that you develop and maintain. Can you briefly introduce each of them and describe their purpose? What was the first project that was created in that list and how did it lead to the creation of the other tools? At what point did you decide that creating an organization to own and support the tools that you were building was the right choice to make? You run a distributed organisation, how do you manage that? I was recently speaking with Michal Čihař about the Weblate project and he mentioned that he uses the Translate Toolkit for handling the low level aspects of managing the translation files. What are some of the architectural and design challenges that arise from needing to support so many different systems for managing source text and translations? How do Pootle and Virtaal compare to other tools for web or desktop based translation? Are they primarily used for translating software or do they get used for other sources of text as well? Given that Virtaal is intended for use on desktop systems by people who aren’t necessarily technically adept how have you approached the packaging and deployment aspects of it? What are some of the challenges that you have had to overcome? Given the fact that multi-lingual translation requires interacting with a large quantity of text in numerous alphabets, what kind of impact has the unicode handling in Python 3 had on your projects? What do you have planned for the future of your projects? Keep In Touch Github Gitter Ryan Github Picks Tobias Google Chromecast Dwayne Jitsi Meet Ryan Gitter Links XLIFF Gettext PO Format CLDR (Common Locale Data Repository) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/14/201758 minutes, 52 seconds
Episode Artwork

Morepath with Martijn Faassen

Summary Python has a wide and growing variety of web frameworks to choose from, but if you want one with super powers then you need Morepath. This week Martijn Faassen shares the story of how Morepath was created, how it differentiates itself from the other available options, and how you can use it to power your next project. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Martijn Faassen about the Morepath web framework. Interview with Martijn Faassen Introductions How did you get introduced to Python? What is Morepath and what problem were you trying to solve when you created it? The tag line for the Morepath project is that it’s a web microframework with superpowers. What is special or different about it that sets it apart from the other options in the Python ecosystem? It can be difficult to convince someone to migrate to a new framework, particularly if there is a lack of supporting ecosystem. What are some of the motivating factors for a developer to switch to Morepath if they already have experience with one of the more widely used frameworks? What does the internal architecture for Morepath look like and what are some of the challenges that you have faced while building it? One of the features is the automatic link generation for ensuring that you don’t end up with dead links. Is there any support for permalinks or redirects so that if you refactor your site people won’t end up at a path that no longer exists? In the documentation you make a number of references to the fact that Morepath is a routing based framework. Can you explain what you mean by that and how it differs from a traversal based framework? Part of the core elements of Morepath are your libraries Reg and Dectate. Can you describe each of them and explain some of how they came to be created? Morepath has a different conception of models than most frameworks that I’ve dealt with in that they aren’t necessarily associated with any form of database. Can you explain why that is and some of the patterns that it allows for? The method for extending and reusing applications built in Morepath is through subclassing the objects and overriding specific methods. What is it about this approach that you found to be more flexible than the alternatives exhibited by other frameworks? What are some of the most interesting or unexpected uses of Morepath that you have seen? What do you have planned for the future of Morepath? Keep In Touch Blog Twitter GitHub Email Picks Tobias IMDB Gyroscopes Martijn Ken And Robin Talk About Stuff Viili Links 13th age JSON API JSON-LD Hydra (REST standard) GraphQL Falcor aiohttp Zope Pyramid Grok OneGov Martijn – My Exit From Zope LXML Elementree The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/7/20171 hour, 5 minutes, 50 seconds
Episode Artwork

ERPNext with Rushabh Mehta

Summary If you need to track all of the pieces of a business and don’t want to use 15 different tools then you should probably be looking at an ERP (Enterprise Resource Planning) system. Unfortunately, a lot of them are big, clunky, and difficult to manage, so Rushabh Mehta decided to build one that isn’t. ERPNext is an open-source, web-based, easy to use ERP platform built with Python. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Rushabh Mehta about ERPNext Interview with Rushabh Mehta Introductions How did you get introduced to Python? What does ERP stand for and what kinds of busineesses require that kind of software? What problem were you trying to solve when you created ERPNext and what factors led to the decision to write it in Python? How is ERPNext architected and what are some of the biggest challenges that were faced during its creation? While researching the project I noticed that you created your own framework which is used for building ERPNext. What was lacking in the existing options that made building a new framework appealing? What are some of the projects that you consider to be your competitors and what are the features that would convince a user to choose ERPNext? For someone who wants to self-host ERPNext what are the system requirements and what does the scaling strategy look like? On the marketing site for ERPNext it is advertised as being for small and medium businesses. What are the characteristics of larger businesses that might not make them a good fit for the features or structure of ERPNext? What are some of the most interesting or unexpected ways that you have seen ERPNext put to use? Are there any interesting projects of features that you are working on for release in the near future? Keep In Touch Rushabh Twitter ERPNext Forum GitHub Website Picks Tobias WordPress Rushabh Ready Player One Links 8088 PC XT Odoo The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/31/201630 minutes, 33 seconds
Episode Artwork

Jackie Kazil

Summary Jackie Kazil has led a distinguished and varied career with a strong focus on providing information and tools that empower others. This includes her work in data journalism, as a presidential innovation fellow, co-founding 18F, co-authoring a book, and being elected to the board of the Python Software Foundation. In this episode she shares these stories and more with us and how Python has helped her along the way. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your application. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com to join other listeners of the show and share ideas for how to make it better. Your host as usual is Tobias Macey and today I’m interviewing Jackie Kazil about her work with 18F, writing Data Wrangling with Python, and her career with Python. Interview with Jackie Kazil Introductions How did you get introduced to Python? Looking at your background it shows that you got your start in Journalism and that you are now working on an additional degree in Computational Social Science. Can you share a bit about that journey and what set you on that path? What is computational social science and what has your particular focus been within that field? How has your work in news media prepared you for your current role? One of your many notable achievements is co-founding 18F. Can you start by explaining what that organization is and how you got involved in the efforts to build it? What are some of the notable uses of Python at 18F? In what ways did your experience working with 18F differ from the work you have done at companies outside of government? You recently co-wrote and published Data Wrangling with Python through O’Reilly Media. What kind of subject matter do you cover in the book and who is the target audience? There are a number of resources available to learn the various tools for working with data in Python. What is the gap that this book is aiming to fill and how did you get started with it? What are some of the most interesting things that you learned while working on the book? Keep In Touch Twitter Email Picks Tobias Jason Bourne Movies Jackie Czech Dumpling Dough Links Byteback NetworkX Project Mesa GeoQ openFOIA OpenFEC API The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/24/201639 minutes, 47 seconds
Episode Artwork

Weblate with Michal Čihař

Summary Adding translations to our projects makes them usable in more places by more people which, ultimately, makes them more valuable. Managing the localization process can be difficult if you don’t have the right tools, so this week Michal čihař tells us about the Weblate project and how it simplifies the process of integrating your translations with your source code. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Michal Čihař about Weblate Interview with Michal Čihař Introductions How did you get introduced to Python? Can you explain what Weblate is and the problem that you were trying to solve by creating it? What are the benefits of using Weblate over other tools for localization and internationalization? One of the advertised features of Weblate is integration with git and mercurial. Can you explain how that works and what a typical translation workflow looks like both for a developer and a translator? Given that part of the focus for the tool is to allow for community translation, how do you simplify the experience for first time contributors? I understand that Weblate is written as a django application. Is it possible to use Weblate with other Web frameworks or non-web projects? Can this be used with projects implemented in other programming laguages? Are there any capabilities that are lot in this scenario? Why should developers and product managers be concerned with localizing an application? How does Weblate help to reduce the level of investment necessary for such an undertaking? What are some of the biggest difficulties that you have encountered while building and maintaining Weblate? What are the most common problems that you see people encounter on both the translator and developer side when dealing with internationalization and localization? Keep In Touch Weblate.org Facebook Twitter GitHub Picks Tobias War Dogs Michal Jordi’s Chocolate Links L20N The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/17/201632 minutes, 34 seconds
Episode Artwork

SpaCy with Matthew Honnibal

Summary As the amount of text available on the internet and in businesses continues to increase, the need for fast and accurate language analysis becomes more prominent. This week Matthew Honnibal, the creator of SpaCy, talks about his experiences researching natural language processing and creating a library to make his findings accessible to industry. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Matthew Honnibal about SpaCy and Explosion.AI Interview with Matthew Honnibal Introductions How did you get introduced to Python? Can you start by sharing what SpaCy is and what problem you were trying to solve when you created it? Another project for natural language processing that has been part of the Python ecosystem for a number of years is the Natural Language Tool Kit (NLTK). How does SpaCy differ from the NLTK and are there any cases where that would be the better choice? How much knowledge of NLP and computational linguistics is necessary to be able to use SpaCy? What does the internal design and architecture of SpaCy look like and what are the biggest challenges associated with its development to date and into the future? One of the projects that you have built around SpaCy which I think is really cool and caught my attention when I first found your project is the displaCy visualization tool. Can you explain what that is and why you think it is important? What are some kinds of applications where SpaCy would be useful which might not be obvious candidates for it? Why is speed such an important focus for an NLP library? One of the ways that you have been able to gain a speed boost is through releasing the GIL and allowing for true parallelism via Cython. How have you managed to ensure that this doesn’t lead to data races and program failures? Building on the success of SpaCy you founded a company called Explosion AI. Can you explain what your goals are for this endeavor and the kinds of services that you are offering? What are some of the most interesting uses of SpaCy that you have seen? What do you have planned for the future of SpaCy? Keep In Touch Twitter Matthew SpaCy Explosion AI Mailing List Explosion AI Contact Form Picks Tobias Zoom H4N Pro Shure SM58 Links Reddit sense2vec demo DisplaCy DisplaCy Entity Visualizer SpaCy Showcase NLTK Chartbeat Cytora The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/11/201636 minutes, 47 seconds
Episode Artwork

Kinto with Alexis Metaireau and Mathieu Leplatre

Summary Are you looking for a backend as a service offering where you have full control of your data? Look no further than Kinto! This week Alexis Metaireau and Mathieu Leplatre share the story of how Kinto was created, how it works under the covers, and some of the ways that it is being used at Mozilla and around the web. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Alexis Metaireau and Mathieu Leplatre about Kinto Interview with Alexis and Mathieu Introductions How did you get introduced to Python? What is Kinto and how did it get started? What does the internal architecture of Kinto look like? Given that the primary data format being stored is JSON, why did you choose PostGreSQL as your storage backend instead of a NoSQL document database such as CouchDB? Synchronization of transactions from multiple users, including offline first support, is a difficult problem. How have you approached that in Kinto and what are some of the alternate solutions that were considered? Designing usable APIs is a complicated subject. What features did you prioritize while creating the interfaces to Kinto? What are some of the most innovative uses of Kinto that you have seen? What are some of the biggest challenges that you have faced while building Kinto? What do you have planned for the future of Kinto? Keep In Touch Kinto Github Mailing List Alexis Email Mathieu Twitter Email Picks Tobias What are you working on this week with Python? Alexis Miles Davis – Bitches Brew Mathieu Sigal Subliminal Links Pocket CouchDB OpenAPI WebCrypto Formbuilder Firebase Kinto Comparison Table Mozilla Persona Portier The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/4/201656 minutes, 1 second
Episode Artwork

Plone with Eric Steele

Summary Plone is one of the first CMS projects to be built using Python and it is still being actively developed. This week Eric Steele, the release manager for Plone, tells us about how it got started, how it is architected, and how the community is one of its greatest strengths Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Eric Steele about the Plone CMS. Interview with Eric Steele Introductions How did you get introduced to Python? Can you start by explaining a bit about what Plone is and how you got involved with it? How did the Plone project get started and how has it evolved over the years? What makes Plone unique among the myriad CMS tools that are available and which of them do you consider to be direct competitors? Plone has managed to keep an impressive track record of security. What are some of the key features that enable that? I know that for much of its history, the default data storage for plone was the ZODB (Zope Object DataBase). How would you describe its benefits and drawbacks for someone who is familiar with a relational database? Plone is one of the most long-lived Python projects that I am aware of. What are some of the most difficult maintenance challenges that you have encountered over the years of its existence? What does the internal architecture of Plone look like? One of the major tenets of the project is the ability to install extensions. What are some of the most interesting plugins that you are aware of? What kinds of projects are Plone best suited for? What does the workflow look like for a user of Plone? What are some of the most interesting uses of Plone that you have seen? What are the biggest challenges facing the Plone project and community as development and deployment paradigms continue to change? Keep In Touch Plone Website Forum IRC: #plone on freenode.net Eric Twitter E-mail Picks Tobias The Inquiry (podcast) PyCon US Eric Really Bad Chess Home Assistant Links Zope ZEO PloneFormGen Rapido CastleCMS Plumi Bika LIMS Quaive (Plone Intranet) Open Advice The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA .
11/26/201650 minutes, 26 seconds
Episode Artwork

Retrospective

Summary In this episode Chris and I look back at the past 83 episodes of the show and talk about what we learned, what we’ve enjoyed, and some of the highlights. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing each other about the past year and a half of the show. Interview with Tobias and Chris Introductions What have been some of the most unexpected or surprising aspects of the show for you during the past year and a half? – Tobias What are your top three favorite shows so far and why? – Chris If you could have a longer conversation with any of the past guests, who would you pick? – Tobias What has doing the show meant to you? – Chris What have you learned while doing the show that you wish you had known at the start? – Tobias How has the production process evolved since the beginning of the show? – Chris Chris Leaving the Show – Chris Tobias and I started new jobs (At MIT Office of Digital Learning and Amazon Web Services, respectively) We’re much, much busier these days, making coordination difficult Tobias is ready to take the show solo and I (Chris) support him in this Chris still plans to support the show as an avid fan Keep In Touch Chris’s Contact Info Picks Tobias Locust Chris StaSh – Shell for Pythonista Producing a Podcast The Python Community The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra  / CC BY-SA
11/19/201637 minutes, 29 seconds
Episode Artwork

HouseCanary with Travis Jungroth

Summary Housing is something that we all have experience with, but many don’t understand the complexities of the market. This week Travis Jungroth talks about how HouseCanary uses data to make the business of real estate more transparent. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey and today I’m interviewing Travis Jungrot about HouseCanary, a company that is using Python and machine learning to help you make real estate decisions. Interview with Travis Jungroth Introductions How did you get introduced to Python? What is HouseCanary and what problem is it trying to solve? Who are your customers? Is it possible to get data and predictions at the neighborhood level for individual homebuyers to use in their purchasing decisions? What do you use for your data sources and how do you validate their accuracy? What are some of the sources of bias that are present in your data and what strategies are you using to account for them? Can you describe where Python is leveraged in your environment? What are some of the biggest software design and architecture challenges that you are facing while you continue to grow? What are the areas where Python isn’t the right choice and which languages are used in its place? What are the biggest predictors of future value for residential real estate? Can your system be used to identify risks associated with the housing market, similar to those seen in the bubble that triggered the 2008 economic failure? What are some of the most interesting details that you have discovered about real estate and housing markets while working with HouseCanary? Keep In Touch HouseCanary Website Twitter Travis Twitter Github Picks Tobias Railsea by China Miéville Kraken by China Miéville Travis DDT On Writing Well by William Zinser Links Hacking Secret Ciphers with Python The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/12/201639 minutes, 45 seconds
Episode Artwork

Mycroft with Steve Penrod

Summary Speech is the most natural interface for communication, and yet we force ourselves to conform to the limitations of our tools in our daily tasks. As computation becomes cheaper and more ubiquitous and artificial intelligence becomes more capable, voice becomes a more practical means of controlling our environments. This week Steve Penrod shares the work that is being done on the Mycroft project and the company of the same name. He explains how he met the other members of the team, how the project got started, what it can do right now, and where they are headed in the future. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com to talk to previous guests and other listeners of the show. Your host as usual is Tobias Macey and today I’m interviewing Steve Penrod about the company and project Mycroft, a voice controlled, AI powered personal assistant written in Python. Interview with Steve Penrod Introductions How did you get introduced to Python? Can you start by describing what Mycroft is and how the project and business got started? How is Mycroft architected and what are the biggest challenges that you have encountered while building this project? What are some of the possible applications of Mycroft? Why would someone choose to use Mycroft in place of other platforms such as Amazon’s Alexa or Google’s personal assistant? What kinds of machine learning approaches are being used in Mycroft and do they require a remote system for execution or can they be run locally? What kind of hardware is needed for someone who wants to build their own Mycroft and what does the install process look like? It can be difficult to run a business based on open source. What benefits and challenges are introduced by making the software that powers Mycroft freely available? What are the mechanisms for extending Mycroft to add new capabilities? What are some of the most surprising and innovative uses of Mycroft that you have seen? What are the long term goals for the Mycroft project and the business that you have formed around it? Keep In Touch Website Picks Tobias yip Myths and Legends Podcast Steve Ethiopian Cuisine Blue Nile in KC Kansas City Barbecue Joe’s KC Links Google Home Tom Waits – Heart Attack & Vine mycroft.ai FLITE Vocalid Vocalid TED Talk PocketSphinx GE FirstBuild Sonar GNU Linux The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/5/20161 hour, 5 minutes, 12 seconds
Episode Artwork

Annapoornima Koppad

Summary Annapoornima Koppad is a director of the PSF, founder of the Bangalore chapter of PyLadies, and is a Python instructor at the Indian Institute of Science. In this week’s episode she talks about how she got started with Python, her experience running the PyLadies meetup, and working with the PSF. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Annapoornima Koppad about her career with Python and her experiences running the PyLadies chapter in Bangalore, India and being a director for the Python Software Foundation. Interview with Annapoornima Koppad Introductions How did you get introduced to Python? – Tobias I noticed that you have been freelancing for several years now. How much of that has been in Python and how has that fed back into your other activities? – Tobias While preparing for this interview I came across the book that you self-published on Amazon. What was your motivation for writing it and who is the target audience? – Tobias Can you tell us about your experience with starting the PyLadies group in Bangalore? What were some of the biggest challenges that you encountered and how have you approached the task of growing awareness and membership of the group? – Tobias You recently started teaching Python at the Indian Institute of Science. What kinds of subject matter do you cover in your lessons? – Tobias What is it about Python and its community that has inspired you to dedicate so much of your time to contributing back to it? – Tobias In what ways would you like to see the Python ecosystem improve? – Tobias You were voted in as a director of the Python Software Foundation in the most recent election. Can you share what responsibilities that entails? – Tobias What would you like to achieve with your time in the PSF? – Tobias Keep In Touch PyLadies Bangalore Meetup Blog Email Twitter Picks Tobias Fluentd Annapoornina The Lord of The Rings by J.R.R. Tolkien Storks Food Street The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/29/201619 minutes, 23 seconds
Episode Artwork

Python for GIS with Sean Gillies

Summary Location is an increasingly relevant aspect of software systems as we have more internet connected devices with GPS capabilities. GIS (Geographic Information Systems) are used for processing and analyzing this data, and fortunately Python has a suite of libraries to facilitate these endeavors. This week Sean Gillies, an author and contributor of many of these tools, shares the story of his career and contributions, and the work that he is doing at MapBox. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. When you’re ready to launch your next project you’ll need somewhere to deploy it. Check out Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for running your awesome app. You’ll want to make sure that your users don’t have to put up with bugs, so you should use Rollbar for tracking and aggregating your application errors to find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey Today I’m interviewing Sean Gillies about writing Geographic Information Systems in Python. Interview with Sean Gillies Introductions How did you get introduced to Python? Can you start by describing what Geographic Information Systems are and what kinds of projects might take advantage of them? How did you first get involved in the area of GIS and location-based computation? What was the state of the Python ecosystem like for writing these kinds of applications? You have created and contributed to a number of the canonical tools for building GIS systems in Python. Can you list at least some of them and describe how they fit together for different applications? What are some of the unique challenges associated with trying to model geographical features in a manner that allows for effective computation? How does the complexity of modeling and computation scale with increasing land area? Mapping and cartography have an incredibly long history with an ever-evolving set of tools. What does our digital age bring to this time-honored discipline that was previously impossible or impractical? To build accurate and effective representations of our physical world there are a number of domains involved, such as geometry and geography. What advice do you have for someone who is interested in getting started in this particular niche? What level of expertise would you advise for someone who simply wants to add some location-aware features to their application? I know that you joined Mapbox a little while ago. Which parts of their stack are written in Python? What are the areas where Python still falls short and which languages or tools do you turn to in those cases? Keep In Touch Email Twitter Picks Tobias Roku Streaming Stick Sean The Tacopedia Stromae Links GDAL SWIG QGIS Shapefiles Shapely Fiona Raster File GEOS Rasterio PostGIS RTree GeoPandas GeoJSON Orthorectification Mapbox SCONS Mapnik The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/22/201637 minutes, 49 seconds
Episode Artwork

K Lars Lohn

Summary K Lars Lohn has had a long and varied career, spending his most recent years at Mozilla. This week he shares some of his stories about getting involved with Python, his work with Mozilla, and his inspiration for the closing keynote at PyCon US 2016. He also elaborates on the intricate mazes that he draws and his life as an organic farmer in Oregon. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We also have a new sponsor this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey Today we’re interviewing K Lars Lohn about his career, his art, and his work with Mozilla Interview with K Lars Lohn Introductions How did you get introduced to Python? You have an interesting pair of articles on your website that attempt to detail how you perceive code and why you think that formatting should be configured in a manner analogous to CSS. Can you explain a bit about how your particular perception affects the way that you program? On your website you have some images of incredibly detailed artwork that are actually mazes. Can you describe some of your creation process for those? What is it about mazes that keeps you interested in them and how did you first start using them as a form of visual art? At Mozilla you have helped to create a project called Socorro which utilizes complexity analysis for correlating stacktraces. How did you conceive of that approach to error monitoring? Can you describe how Socorro is architected and how it works under the covers? At this year’s PyCon US you presented the closing keynote and it was one of the most engaging talks that I’ve seen. Where did you get the inspiration for the content and the mixed media approach? For anyone who hasn’t seen it, you managed to weave together a very personal story with a musical performance, and some applications of complexity analysis into a seamless experience. How much did you have to practice before you felt comfortable delivering that in front of an audience? In addition to your technical career you are also very focused on living in a manner that is sustainable and in tune with your environment. What kinds of synergies and conflicts exist between your professional and personal philosophies? Keep In Touch Website Twitter Picks Tobias Terry Pratchett Lars Bach’s Tocatta & Fugue in D Minor Links Functional Geekery Episode 65 – Morten Kromberg talks about APL K Lars Lohn’s Portfolio The Well Tempered API Temple Grandin The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/15/201642 minutes, 21 seconds
Episode Artwork

Lorena Mesa

Summary One of the great strengths of the Python community is the diversity of backgrounds that our practitioners come from. This week Lorena Mesa talks about how her focus on political science and civic engagement led her to a career in software engineering and data analysis. In addition to her professional career she founded the Chicago chapter of PyLadies, helps teach women and kids how to program, and was voted onto the board of the PSF. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. Check out our sponsor Linode for running your awesome new Python apps. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project You want to make sure your apps are error-free so give our other sponsor, Rollbar, a look. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. By leaving a review on iTunes, or Google Play Music it becomes easier for other people to find us. Join our community! Visit discourse.pythonpodcast.com to help us grow and connect our wonderful audience. Your host as usual is Tobias Macey Today we’re interviewing Lorena Mesa about what inspires her in her work as a software engineer and data analyst. Interview with Lorena Mesa Introductions How did you get introduced to Python? How did your original interests in political science and community outreach lead to your current role as a software engineer? You dedicate a lot of your time to organizations that help teach programming to women and kids. What are some of the most meaningful experiences that you have been able to facilitate? Can you talk a bit about your work getting the PyLadies chapter in Chicago off the ground and what the reaction has been like? Now that you are a member of the board for the PSF, what are your goals in that position? What is it about software development that made you want to change your career path? What are some of the most interesting projects that you have worked on, whether for your employer or for fun? Do you think that the bootcamp you attended did a good job of preparing you for a position in industry? What is your view on the concept that software development is the modern form of literacy? Do you think that everyone should learn how to program? Keep In Touch Twitter Picks Tobias Zencastr Lorena Weapons of Math Destruction What I Talk About When I talk About Running Links idealist.org Schemas For The Real World The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/8/201642 minutes, 22 seconds
Episode Artwork

Podbuzzz with Kyle Martin

Summary Podcasts are becoming more popular now than they ever have been. Podbuzzz is a service for helping podcasters to track their reviews and imporove SEO to reach a wider audience. In this episode we spoke with Kyle Martin about his experience using Python to build Podbuzzz and manage it in production. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. You need a place to run your awesome new Python apps, so check out our sponsor Linode at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project. You want to make sure your apps are error-free so give our next sponsor, Rollbar, a look. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. By leaving a review on iTunes, or Google Play Music it becomes easier for other people to find us. Join our community! Visit discourse.pythonpodcast.com to help us grow and connect our wonderful audience. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Kyle Martin about Podbuzzz Interview with Kyle Martin Introductions How did you get introduced to Python? – Chris Can you start by explaining what Podbuzz is? – Tobias Why did you end up choosing Python as the language for building thx#is service? – Tobias What have been the biggest engineering challenges in building Podbuzzz? – Tobias How did you conceive of the idea to build Podbuzzz and what inspired you to provide it as a service? – Tobias Part of the service that you are building is a widget that encourages listeners to rate a podcast on iTunes. Why is that important and what are some of the techniques that you have leveraged to determine the most effective messaging? – Tobias What are some of the features that you plan on adding to your service? – Tobias Do you intend to run Podbuzzz as a side project or do you envision it becoming a company with its own staff? – Tobias In addition to your work with Podbuzzz as a way for podcasters to gain visibility for their shows, you’re also working on an analytics platform for the same target audience. Can you explain a bit about that and the problems that you’ve had to overcome? – Tobias What is it about podcasting that makes it hard to gain useful metrics and what is your strategy for overcoming some of those obstacles? – Tobias Keep In Touch Twitter Email Picks Tobias Thank You Scientist Chris Hell or High Water Kyle Udacity Self-Driving Car Engineering Nanodegree Startups For The Rest of Us Zero To Scale Speechmatics Links Canva Internet Business Mastery Podcast The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/1/201638 minutes, 36 seconds
Episode Artwork

PsychoPy with Jonathan Peirce

Summary We’re delving into the complex workings of your mind this week on Podcast.init with Jonathan Peirce. He tells us about how he started the PsychoPy project and how it has grown in utility and popularity over the years. We discussed the ways that it has been put to use in myriad psychological experiments, the inner workings of how to design and execute those experiments, and what is in store for its future. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. Hired is sponsoring us this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Once you land a job you can check out our other sponsor Linode for running your awesome new Python apps. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project You want to make sure your apps are error-free so give our last sponsor, Rollbar, a look. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. By leaving a review on iTunes, or Google Play Music it becomes easier for other people to find us. Join our community! Visit discourse.pythonpodcast.com to help us grow and connect our wonderful audience. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Jonathan Peirce about PsychoPy, an open source application for the presentation and collection of stimuli for psychological experimentation Interview with Jonathan Peirce Introductions How did you get introduced to Python? – Chris Can you start by telling us what PsychoPy is and how the project got started? – Tobias How does PsychoPy compare feature wise against some of the proprietary alternatives? – Chris In the documentation you mention that this project is useful for the fields of psychophysics, cognitive neuroscience and experimental psychology. Can you provide some insight into how those disciplines differ and what constitutes an experiment? – Tobias Do you find that your users who have no previous formal programming training come up to speed with PsychoPy quickly? What are some of the challenges there? -Chris Can you describe the internal architecture of PsychoPy and how you approached the design? – Tobias How easy is it to extend PsychoPy with new types of stimulus? – Chris What are some interesting challenges you faced when implementing PsychoPy? – Chris I noticed that you support a number of output data formats, including pickle. What are some of the most popular analysis tools for users of PsychoPy? – Tobias Have you investigated the use of the new Feather library? – Tobias How is data input typically managed? Does PsychoPy support automated readings from test equipment or is that the responsibility of those conducting the experiment? – Tobias What are some of the most interesting experiments that you are aware of having been conducted using PsychoPy? – Chris While reading the docs I found the page describing the integration with the OSF (Open Science Framework) for sharing and validating an experiment and the collected data with other members of the field. Can you explain why that is beneficial to the researchers and compare it with other options such as GitHub for use within the sciences? – Tobias Do you have a roadmap of features that you would like to add to PsychoPy or is it largely driven by contributions from practitioners who are extending it to suit their needs? – Tobias Keep In Touch PsychoPy Discourse Forum Picks Tobias Hackers: Heroes of the Computer Revolution by Steven Levy Chris Castro 2 Jon Discourse Links Feather Pyglet HDF5 Open Science Framework The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/25/20161 hour, 12 minutes, 10 seconds
Episode Artwork

Sandstorm.io with Asheesh Laroia

Summary Sandstorm.io is an innovative platform that aims to make self-hosting applications easier and more maintainable for the average individual. This week we spoke with Asheesh Laroia about why running your own services is desirable, how they have made security a first priority, how Sandstorm is architected, and what the installation process looks like. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Rollbar. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would also like to mention that the organizers of PyCon Zimbabwe are looking to the global Python community for help in supporting their event. If you would like to donate the link will be in the show notes. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Asheesh Laroia about Sandstorm.io, a project that is trying to make self-hosted applications easy and secure for everyone. Interview with Asheesh Laroia Introductions How did you get introduced to Python? – Tobias Can you start by telling everyone about the Sandstorm project and how you got involved with it? – Tobias What are some of the reasons that an individual would want to self-host their own applications rather than using comparable services available through third parties? – Tobias How does Sandstorm try to make the experience of hosting these various applications simple and enjoyable for the broadest variety of people? – Tobias What does the system architecture for Sandstorm look like? – Tobias I notice that Sandstorm requires a very recent Linux kernel version. What motivated that choice and how does it affect adoption? – Chris One of the notable aspects of Sandstorm is the security model that it uses. Can you explain the capability-based authorization model and how it enables Sandstorm to ensure privacy for your users? – Tobias What are some of the most difficult challenges facing you in terms of software architecture and design? – Tobias What is involved in setting up your own server to run Sandstorm and what kinds of resources are required for different use cases? – Tobias You have a number of different applications available for users to install. What is involved in making a project compatible with the Sandstorm runtime environment? Are there any limitations in terms of languages or application architecture for people who are targeting your platform? – Tobias How much of Sandstorm is written in Python and what other languages does it use? – Tobias Keep In Touch Twitter Blog Email Picks Tobias OpsGenie Chris Viking Godfather Safety Razor Who Killed Sherlock Holmes? by Paul Cornell Petrus Aged Red Asheesh Amtrak The Master Switch by Tim Wu Rocket Chat Links North Star Post Contact Otter Hacker Slides Permanote Radicale Media Goblin IPython Notebook The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/17/201659 minutes, 35 seconds
Episode Artwork

Python at Zalando

Summary Open source has proven its value in many ways over the years. In many companies that value is purely in terms of consuming available projects and platforms. In this episode Zalando describes their recent move to creating and releasing a number of their internal projects as open source and how that has benefited their business. We also discussed how they are leveraging Python and a couple of the libraries that they have published. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project Rollbar is also sponsoring us this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Jie Bao and João Santos about their use of Python at Zalando Interview with Zalando Introductions How did you get introduced to Python? – Tobias Can you start by telling us a bit about what Zalando does and some of the technologies that you use? – Tobias What role does Python play in your environment? – Tobias Is the use of Python for a particular project governed by any particular operational guidelines or is it largely a matter of developer choice? – Tobias Given that you have such a variety of platforms to support, how do you architect your systems to keep them easy to maintain and reason about? – Tobias One of the projects that you have open sourced is Connexion. Can you explain a bit about what that is and what it is used for at Zalando? – Tobias What made you choose to standardize on Swagger/OpenAPI vs RAML or some of the other API standards? – Tobias Did Connexion start its life as open source or was it extracted from another project? – Tobias ExpAn is another one of your projects that is written in Python. What do you use that for? – Tobias Can you describe the internal implementation of ExpAn and what it takes to get it set up? – Tobias Given the potential complexity of and the need for statistical significance in the data for proper A/B testing, how did you design ExpAn to satisfy those requirements? – Tobias Given the laws in Germany around digital privacy, were there any special considerations that needed to be made in the collection strategy for the data that gets used in ExpAn? – Tobias Keep In Touch João Twitter Jie Twitter Laurie Twitter Picks Tobias Hacker’s Keyboard Jie Shah of Shahs by Ryszard Kapuściński João Serendipity Laurie Flow) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/10/201640 minutes, 26 seconds
Episode Artwork

Alex Martelli

Summary Alex Martelli has dedicated a large part of his career to teaching others how to work with software. He has the highest number of Python questions answered on Stack Overflow, he has written and co-written a number of books on Python, and presented innumerable times at conferences in multiple countries. We spoke to him about how he got started in software, his work with Google, and the trends in development and design patterns that are shaping modern software engineering. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We also have a returning sponsor this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Hired is sponsoring us this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers. Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Alex Martelli Interview with Alex Martelli Introductions How did you get introduced to Python? – Chris You have achieved a number of honors and recognitions throughout your career for significant technical achievements. What kind of learning strategies do you use to enable you to achieve mastery of technical topics? – Tobias How do you keep the Python In A Nutshell book current as aspects of the core language and its libraries change? – Chris You are known for your prolific contributions to Stack Overflow, particularly on topics pertaining to Python. Was that a specific goal that you had set for yourself or did it happen organically? – Tobias When answering Stack Overflow questions, do you usually already know the answers or do you treat it as a learning opportunity? – Tobias What are some of the most difficult Python questions that you have been faced with? – Tobias You have presented quite a number of times at various Python conferences. What are some of your favorite talks? – Tobias Design patterns and idiomatic code are common themes in a number of your presentations. Why is it important for developers to understand these concepts and what are some of your favorite resources on the topic? – Tobias What do you see as the most influential trends in software development and design, both currently and heading into the future? – Tobias As a long-time computer engineer, are there any features or ideas from other languages that you would like to see incorporated into Python? Picks Tobias The Great Gatsby Movie Chris Stone Ruination Double IPA Ghost Soldiers Alex Alexander Hamilton by Ron Chernow Hamilton Musical Links Permission or Forgiveness Good enough is good enough Modern Python Patterns and Idioms Handling Errors and Exceptions in Modern Python Microservices Google SRE Book Python In A Nutshell use code AUTHD for a discount The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
9/3/20161 hour, 4 minutes, 49 seconds
Episode Artwork

Dave Beazley

Summary Dave Beazley has been using and teaching Python since the early days of the language. He has also been instrumental in spreading the gospel of asynchronous programming and the many ways that it can improve the performance of your programs. This week I had the pleasure of speaking with him about his history with the language and some of his favorite presentations and projects. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit! Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Dave Beazley about his career with Python Interview with Dave Beazley Introductions How did you get introduced to Python? – Tobias How has Python and its community helped to shape your career? – Tobias What are some of the major themes that you have focused on in your work? – Tobias One of the things that you are known for is doing live-coding presentations, many of which are fairly advanced. What is it about that format that appeals to you? – Tobias What are some of your favorite stories about a presentation that didn’t quite go as planned? – Tobias You have given a large number of talks at various conferences. What are some of your favorites? – Tobias What impact do you think that asynchronous programming will have on the future of the Python language and ecosystem? – Tobias Are there any features that you see in other languages that you would like to have incorporated in Python? – Tobias On the about page for your website you talk about some of the low-level code and hardware knowledge that you picked up by working with computers as a kid. Do you think that people who are getting started with programming now are missing out by not getting exposed to the kinds of hardware and software that was present before computing became mainstream? You have had the opportunity to work on a large variety of projects, both on a hobby and professional level. What are some of your favorites? – Tobias What is it about Python that has managed to hold your interest for so many years? – Tobias Keep In Touch Twitter Picks Tobias Criminal Dave Samuel Beckett Plays Links Python Concurrency From The Ground Up XKCD compiling Clifford Stoll Superboard talk Curio PyOhio async talk The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/27/201645 minutes, 42 seconds
Episode Artwork

GenSim with Radim Řehůřek

Summary Being able to understand the context of a piece of text is generally thought to be the domain of human intelligence. However, topic modeling and semantic analysis can be used to allow a computer to determine whether different messages and articles are about the same thing. This week we spoke with Radim Řehůřek about his work on GenSim, which is a Python library for performing unsupervised analysis of unstructured text and applying machine learning models to the problem of natural language understanding. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit on your account. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Radim Řehůřek about Gensim, a library for topic modeling and semantic analysis of natural language. Interview with Radim Řehůřek Introductions How did you get introduced to Python? – Chris Can you start by giving us an explanation of topic modeling and semantic analysis? – Tobias What is Gensim and what inspired you to create it? – Tobias What facilities does Gensim provide to simplify the work of this kind of language analysis? – Tobias Can you describe the features that set it apart from other projects such as the NLTK or Spacy? – Tobias What are some of the practical applications that Gensim can be used for? – Tobias One of the features that stuck out to me is the fact that Gensim can process corpora on disk that would be too large to fit into memory. Can you explain some of the algorithmic work that was necessary to allow for this streaming process to be possible? – Tobias Given that it can handle streams of data, could it also be used in the context of something like Spark? – Tobias Gensim also supports unsupervised model building. What kinds of limitations does this have and when would you need a human in the loop? – Tobias Once a model has been trained, how does it get saved and reloaded for subsequent use? – Tobias What are some of the more unorthodox or interesting uses people have put Gensim to that you’ve heard about? – Chris In addition to your work on Gensim, and partly due to its popularity, you have started a consultancy for customers who are interested in improving their data analysis capabilities. How does that feed back into Gensim? – Tobias Are there any improvements in Gensim or other libraries that you have made available as a result of issues that have come up during client engagements? – Tobias Is it difficult to find contributors to Gensim because of its advanced nature? – Tobias Are there any resources you’d like to recommend our listeners explore to get a more in depth understanding of topic modeling and related techniques? – Chris Keep In Touch RaRe Technologies Twitter Email Github Mailing List Picks Tobias Dark Matter and the Dinosaurs by Lisa Randall Chris m-cli Radim 1177 BC: The Year Civilization Collapsed Links Nadia Eghbal Gensim SQL Addict NLTK Spacy Latent Dirichlet Allocation (LDA) LSI Keynote in Italy on distributed processing Google Scholar references for Gensim Stylometric analysis On Writing Well Student Incubator Wikipedia on topic modeling The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/20/201653 minutes, 28 seconds
Episode Artwork

Python on Windows with Steve Dower

Summary In order for Python to continue to attract new users, we need to have an easy way for people to get started with it, and Windows is still the most widely used operating system among computers. Steve Dower is the build maintainer for the Windows installers of Python and this week we spoke with him about his work in that role. He told us about the changes that he has made to the installer to make it easier for new users to get started and how modern updates to the packaging ecosystem for libraries has simplified dependency management. He also told us about how the Visual Studio team is building a set of tools to make development of Python code more enjoyable and how Microsoft’s adoption of open source is making Windows a more attractive platform for developers. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit on your account! Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Steve Dower about Python on Windows Interview with Steve Dower Introductions How did you get introduced to Python? – Chris You are currently the release manager for Python on Windows. How did you end up with that responsibility? – Tobias While Python has supported Windows for a long time, the overall experience has historically been rather poor. Can you give a bit of the background of why that was and tell us about some of the work that you and others have been doing to make it better? – Tobias Given that a large percentage of users are still on Windows, having a good story for getting started with Python on that platform is important for adoption of the language. What are some of the areas where the current situation needs to be improved? – Tobias What is the most difficult part of building a distribution of Python for a Windows environment? Has it gotten easier in recent years? – Tobias When we were speaking at PyCon you mentioned that the most frequently downloaded version of Python from the python.org site is the 32 bit version for Windows. Do you think that is an accurate and useful metric? What other statistics do you wish you could capture or improve? – Tobias How does Python Tools for Visual Studio compare with other Python IDEs like Pycharm? – Chris What are some unique features that Python Tools for Visual Studio offers that other tools don’t? – Chris Are there any compelling aspects of developing Python on Windows that could convince users on other platforms to make the switch? – Tobias Could you give our listeners a whirlwind tour of the underlying implementation of PTVS? How does Visual Studio provide such in depth introspection for your Python code? – Chris Keep In Touch Twitter Github Microsoft Azure steve.dower Picks Tobias Kdiff3 SpyderCo Triangle Sharpmaker Chris Audible Steve Sandisk Extreme Portable SSD SMBC Random Encounters Links Windows compilers Visual C++ Build Tools (for Python 3.5 and later) Visual C++ Compiler for Python 2.7 PEP 514 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/13/201654 minutes, 23 seconds
Episode Artwork

PyCon Canada with Francis Deslauriers and Peter McCormick

Summary Aside from the national Python conferences such as PyCon US and EuroPyCon there are a number of regional conferences that operate at a smaller scale to service their local communities. This week we interviewed Peter McCormick and Francis Deslauriers about their work organizing PyCon Canada to provide a venue for Canadians to talk about how they are using the language. If you happen to be near Toronto in November then you should get a ticket and help contribute to their success! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit! Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Peter McCormick and Francis Deslauriers about their experiences organizing PyCon Canada Interview with Peter McCormick and Francis Deslauriers Introductions How did you get introduced to Python? – Chris How did you get involved as an organizer of PyCon Canada? – Tobias How does PyCon Canada, and other regional conferences, differ from PyCon US, both in terms of scale and overall experience? – Tobias How do the audience and presenters differ from the US conferences? Is there perhaps a differen mix of industry versus academia, or maybe different disciplines? Chris Are you thinking of trying to hold the conference in different cities across Canada, similarly to how PyCon US moves venues every two years? – Tobias In addition to the national and regional conferences, there are a number of special interest Python conferences that take place (e.g. SciPy, PyData, etc.). What kind of relationship do you have with organizers of those events and how do they impact the kinds of talk submissions that you are likely to receive? – Tobias There has been a lot of focus in recent years on trying to increase the diversity of conference speakers. What are some of the methods that you have used to encourage speakers of various backgrounds to submit talks? – Tobias Organizing a conference involves a lot of moving parts. How do you structure the process to ensure a safe and enjoyable experience for the attendees? – Tobias What are some of the biggest logistical challenges you face as conference organizers? – Chris Given that PyCon Canada is a regional conference, how has that affected your focus in terms of marketing and the general theme? – Tobias Tell our listeners about your favorite PyCon Canada moments. – Chris What has been the most surprising part of organizing the conference? – Tobias Keep In Touch PyCon Canada Twitter Website Email for sponsorship enquiries Peter Email Twitter Website Francis Email Twitter Picks Tobias Juice SSH Chris Chinese Man Stiletto Amazon Echo Peter DjangoCon US documentation Francis Spam Nation Links PSF Calendar of Events Symposion The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
8/6/201646 minutes
Episode Artwork

Test Engineering with Cris Medina

Summary We all know that testing is an important part of software and systems development. The problem is that as our systems and applications grow, the amount of testing necessary increases at an exponential rate. Cris Medina joins us this week to talk about some of the problems and approaches associated with testing these complex systems and some of the ways that Python can help. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus. The O’Reilly Velocity conference is coming to New York this September and we have a free ticket to give away. If you would like the chance to win it then just sign up for our newsletter at pythonpodcast.com To help other people find the show you can leave a review on iTunes, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Cris Medina about test engineering for large and complex systems. Interview with Cris Medina Introductions How did you get introduced to Python? – Chris To get us started can you share your definition of test engineering and how it differs from the types of testing that your average developer is used to? – Tobias What are some common industries or situations where this kind of test engineering becomes necessary? – Tobias How and where does Python fit into the kind of testing that becomes necessary when dealing with these complex systems? – Tobias How do you determine which areas of a system to test and how can Python help in that discovery process? – Tobias What are some of your favorite tools and libraries for this kind of work? – Tobias What are some of the areas where the existing Python tooling falls short? – Tobias Given the breadth of concerns that are encompassed with testing the various components of these large systems, what are some ways that a test engineer can get a high-level view of the overall state? – Tobias How can that information be distilled for presentation to other areas of the business? – Tobias Could that information be used to provide a compelling business case for the resources required to test properly? – Chris Given the low-level nature of this kind of work I imagine that proper visibility of the work being done can be difficult. How do you make sure that management can properly see and appreciate your efforts? – Tobias Keep In Touch Twitter Picks Tobias Samsung Galaxy Tab S2 Anker SoundCore Bluetooth Speaker Chris On Writing Well This Episode Was Written by an AI The Three Rs Cris CherryPy Etcd Thinking Fast And Slow by Daniel Kahneman Spain Links Behave Pytest BDD Hypothesis Episode XX – Hypothesis Flask CherryPy Django Pandas NumPy Celery Bokeh Vincent Toga D3 Sunburst D3 Chord Diagrams The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/30/201658 minutes, 9 seconds
Episode Artwork

Crossing The Streams - Talk Python with Michael Kennedy

Summary The same week that we released our first episode of Podcast.__init__, Michael Kennedy was publishing the very first episode of Talk Python To Me. The years long drought of podcasts about Python has been quenched with a veritable flood of quality content as we have both continued to deliver the stories of the wonderful people who make our community such a wonderful place. This week we interviewed Michael about what inspired him to get started, his process and experience as Talk Python continues to evolve, and how that has led him to create online training courses alongside the podcast. He also interviewed us, so check out this weeks episode of Talk Python To Me for a mirror image of this show! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Michael Kennedy about his work with Talk Python to Me, another podcast about Python and its community, and on-demand Python trainings. Michael has also offered to give away one of each of his Python courses to our listeners. If you would like the chance to win, then sign up for our newsletter at pythonpodcast.com, or our forum at discourse.pythonpodcast.com. If you want to double your chances, then sign up for both! Interview with Michael Kennedy Introductions How did you get into programming? How did you get introduced to Python? (Chris) What is the craziest piece of software you’ve ever written? – Tobias You’ve taken some pretty drastic steps around Python and your career lately. What inspired you to do that and how’s it going?(yes, quit my job, focus only on podcast and online courses). You are basically self-taught as a developer, how did you get into this teaching / mentor role? Why did you first get started with Talk Python to Me? – Tobias Did you know when you started that it would turn into a full-time endeavor? – Tobias For a while there weren’t any podcasts available that focused on Python and now we’re each producing one. What’s it like to run a successful podcast? – Tobias What have been your most popular episodes? Tell us a bit about each – Tobias In your excellent episode with Kate Heddleston you talked about how we tend to bash other programming languages. We’ve done a fair bit of Java bashing here. How can we help get ourselves and others in our community out of this bad habit? – Chris How do you select the guests and topics for your show? – Tobias What topics do you have planned for the next few episodes? How do you prepare the questions for each episode? – Tobias What is the most significant thing you’ve learned from the podcasting experience? What do you wish you did differently and how are you looking to improve? – Tobias I had a great time hanging out with you at PyCon this year. What was your impression of the conference? What were your favorite sessions and do you have any shows scheduled to follow up on them? – Tobias Your sites are 100% “hand-crafted” as they say. Can you give us a look inside? What are the moving parts in there? So you stirred things up with Stitcher this week. What’s up with that? Can you recommend some podcasts? What’s in your playlist? Final call to action? Keep In Touch Twitter Podcast Web Github Picks Tobias Batman v Superman: Dawn of Justice Lego Brickumentary Hashicorp Consul Chris Yarn Apple Magic Mouse 2 Remembering Stonewall Michael PyPI passlib Python 2016 Youtube Channel K Lars Lohn – Closing Keynote Links Thinking Fast and Slow by Daniel Kahneman Trello Recommended podcasts: Test and Code Podcast Partially Derivative Exponent Podcast Mixergy Startup Podcast (season 1 & 2) Away from the keyboard Developer On Fire Michael’s courses: Python Jumpstart by Building 10 Apps Write Pythonic Code Like a Seasoned Developer The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/23/20161 hour, 17 minutes, 47 seconds
Episode Artwork

Zorg with Gunther Cox and Kevin Brown

Summary Everyone loves to imagine what they would do if they had their own robot. This week we spoke with Gunther Cox and Kevin Brown about their work on Zorg, which is a Python library for building a robot of your own! We discussed how the project got started, what platforms it supports, and some of the projects that have been built with it. Give it a listen and then get building! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey Today we’re interviewing Gunther Cox and Kevin Brown about Zorg, a Python framework for robotics and physical computing Interview with Gunther Cox and Kevin Brown Introductions How did you get introduced to Python? – Tobias What is Zorg and what is its origin story? – Tobias How would you define and differentiate the concepts of robotics, physical computing, and the internet of things? – Tobias I noticed in the documentation that Zorg is based on the Cylon.js project. How closely does the implementation of Zorg stick to that of Cylon and how much needs to be changed due to differences in the language? – Tobias Is Zorg useful for production applications or is it primarily intended for educational purposes and hobby projects? – Tobias Zorg currently only supports the Intel Edison, with plans for Raspberry Pi and Arduino Firmata support in the works. What is involved in adding compatibility with other platforms? – Tobias What are some of the most interesting projects that you have seen created using Zorg? – Tobias How does Zorg compare to other Python robotics projects such as ROSPy? – Tobias Robotics is a large and complex problem space. What are some of the other features and projects in Python that are often used when building robots? – Tobias Keep In Touch GitHub Newsletter Picks Tobias Padlock Password Manager Vault Gunther Robot Builder’s Bonanza Kevin Facial Recognition with OpenCV in Python Links RS232 The Hybrid Group Gobot Artoo Cylon.js Salvius ROSPy The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/17/201625 minutes, 18 seconds
Episode Artwork

Mypy with David Fisher and Greg Price

Summary As Python developers we are fond of the dynamic nature of the language. Sometimes, though, it can get a bit too dynamic and that’s where having some type information would come in handy. Mypy is a project that aims to add that missing level of detail to function and variable definitions so that you don’t have to go hunting 5 levels deep in the stack to understand what shape that data structure is supposed to be. This week we spoke with David Fisher and Greg Price about their work on Mypy and its use within Dropbox and the broader community. They explained how it got started, how it works under the covers, and why you should consider adding it to your projects. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing David Fisher and Greg Price about Mypy, a library for adding optional static types to your Python code. es Interview with David Fisher and Greg Price Introductions How did you get introduced to Python? – Chris Can you explain a bit about what Mypy is and its origin story? – Tobias What are the benefits of using Mypy for both new and existing projects? – Tobias How does the Mypy compilation step work? – Tobias What are the biggest technical challenges in implementing Mypy? – Chris Are there any limitations imposed by the syntax of Python that prevented you from implementing any features or syntax that you would have liked to include in Mypy? – Tobias In Guido’s keynote from this year’s PyCon he mentioned some tentative plans for adding variable type declarations to the Python syntax in one of the next major releases. How much of that idea was inspired by Mypy? – Tobias Type theory is a large and complex problem domain. Can you explain where Mypy falls in this space? – Tobias Which language(s) had the biggest influence on the particular syntax and semantics used in Mypy? – Tobias What kinds of type definitions and guarantees can be encoded using Mypy? – Tobias Can you talk a bit about user defined types as implemented in Mypy? – Chris How has the inclusion of the typing module in the Python standard libary influenced the evolution of Mypy? – Tobias Did the inclusion of multiple inheritance add any implementation complexity to Mypy? – Chris Do you know of any formal studies that have been performed to research the ergonomics or efficiency gains of static or gradual type systems? – Tobias What does the future roadmap for Mypy look like? – Tobias Keep In Touch David GitHub Greg web page GitHub $ pip3 install mypy-lang Bug reports, feature requests, questions welcome on issue tracker: github.com/python/mypy Picks Tobias Functional Geekery – Andreas Stefik episode about studies performed on the human factors of development Soft Skills Engineering Podcast Chris Grimm Artisenal Ales Lucky Cloud jq – json swiss army knife David fzf – a fuzzy finder Thinking, Fast And Slow by Daniel Kahneman Ringworld Greg On Proof and Progress in Mathematics, essay by Bill Thurston Axiomatic by Greg Egan Links GitHub repo, and CONTRIBUTING file PEP 484 PyCon 2016 workshop slides Typeshed shared repo for stubs Other tools (PyCharm, pylint, pytype, …) using PEP 484 types The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/10/20161 hour, 20 seconds
Episode Artwork

BeeWare with Russell Keith-Magee

Summary When you have good tools it makes the work you do even more enjoyable. Russel Keith-Magee has been building up a set of tools that are aiming to let you write graphical interfaces in Python and run them across all of your target platforms. Most recently he has been working on a capstone project called Toga that targets the Android and iOS platforms with the same set of code. In this episode we explored his journey through programming and how he has built and designed the Beeware suite. Give it a listen and then try out some or all of his excellent projects! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit to get a $50 credit! Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Russel Keith-Magee about the Beeware project, which is a collection of tools and libraries that are meant to be composed together for building up your Python development environment. Interview with Firstname Lastname Introductions How did you get introduced to Python? – Chris What is the BeeWare project and what goals do you have for it? – Tobias What kinds of projects are contained under the BeeWare umbrella and what inspired you to start creating these kinds of tools? – Tobias Did each project arise from a particular need that you had at the time or has there been a logical progression from one tool to the next? – Tobias At PyCon US of this year (2016) you made a presentation about the work that you have been doing to bring Python to the iOS and Android platforms. Can you provide a high-level overview for anyone who hasn’t seen that talk yet? – Tobias Let’s talk about Toga – how does Toga differ from some of the other cross platform UI framework efforts for various languages like Kivy or Shoes? – Chris What are some of the biggest challenges that you had to overcome in order to get Python to run on both iOS and Android? – Tobias How does runtime performance for applications written in Python compare with the same program running in the languages that are natively supported on those platforms? – Tobias Can you walk us through the low level flow of a single toga API request? – Chris Do you view your work on Toga and the associated libraries as a hobby project or do you think that it will turn into a production ready tool set that people will use for shipping applications? – Tobias IDEs like Android Studio and XCode have a lot of features that simplify the development and UI creation process. Do you have to forego those niceties when developing a mobile app in Python? – Tobias Shipping Python applications is a problem that tends to pose a host of issues for people, which you are addressing with the Briefcase project. What are some of the biggest hurdles and design choices that you have encountered while working on that? – Tobias Do you think that there will ever be a release of iOS or Android, or even a brand new mobile platform, that will ship with native Python support? – Tobias Keep In Touch Twitter Website GitHub Picks Tobias Japanese cast iron tea set Chris Bantam Cider Pythonista 3 Russell MHPrompt Open Sourcing Mental Illness Blue Hackers Beyond Blue Black Dog institute Mental Health.gov Links A Tale of Two Cellphones Python interpreter in 500 lines of code The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/2/20161 hour, 10 minutes, 35 seconds
Episode Artwork

Armin Ronacher

Summary Armin Ronacher is a prolific contributor to the Python software ecosystem, creating such widely used projects as Flask and Jinja2. This week we got the opportunity to talk to him about how he got his start with Python and what has inspired him to create the various tools that have made our lives easier. We also discussed his experiences working in Rust and how it can interface with Python. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Armin Ronacher about his contributions to the Python community. Interview with Armin Ronacher Introductions How did you get introduced to Python? – Chris What was the first open source project that you created in Python? – Tobias What is your view of the responsibility for open source project maintainers and how do you manage a smooth handoff for projects that you no longer wish to be involved in? – Tobias You have created a large number of successful open source libraries and tools during your career. What are some of the projects that may be less well known that you think people might find interesting? – Tobias (e.g. logbook) I notice that you recently worked on the pipsi project. Please tell us about it! – Chris Following on from the last question, where would you like to see the Python packaging infrastructure go in the future? – Chris You have had some strong opinions of Python 2 vs Python 3. How has your position on that subject changed over time? – Tobias Let’s talk about Lektor – what differentiates it from the pack, and what keeps you coming back to CMS projects? – Chris How has your blogging contributed to the work that you do and the success you have achieved? – Tobias Lately you have been doing a fair amount of work with Rust. What was your reasoning for learning that language and how has it influenced your work with Python? – Tobias In addition to the code you have written, you also helped to form the Pocoo organization. Can you explain what Pocoo is and what it does? What has inspired the rebranding to the Pallets project? – Tobias Keep In Touch Twitter Picks Tobias Radical Candor Chris Loverbeer BeerBrugna The Human Resource Machine Armin Biermanufaktur Loncium Matakustix – Hai Hai Haibodn Links PHPbb Pocoo Pallets Project The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/26/20161 hour, 20 seconds
Episode Artwork

Bandit with Tim Kelsey, Travis McPeak, and Eric Brown

Summary Making sure that your code is secure is a difficult task. In this episode we spoke to Eric Brown, Travis McPeak, and Tim Kelsey about their work on the Bandit library, which is a static analysis engine to help you find potential vulnerabilities before your application reaches production. We discussed how it works, how to make it fit your use case, and why it was created. Give the show a listen and then go start scanning your projects! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project. And they just doubled the RAM for their introductory level servers, so that $20 will get you even more performance. We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit! Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Tim Kelsey and Eric Brown about Bandit which is a static analysis engine for finding security vulnerabilities in your Python code. Interview with Eric Brown, Travis McPeak and Tim Kelsey Introductions How did you get introduced to Python? – Chris What is Bandit and what was the inspiration for creating it? – Tobias How did you each get involved with the Bandit project? – Tobias At what stage of the development process would you want to use Bandit? – Tobias What kinds of analysis does Bandit do on the source code that it is run against? – Tobias How does it determine whether a particular segment of code is introducing a vulnerability and what means does it use to determine the severity? – Tobias What does the generated report include and what can be done with that information? – Tobias What are some of the biggest design and implementation difficulties that have been encountered in the process of creating Bandit? – Tobias How does bandit compare to similar tools in other languages such as Ruby’s BrakeMan? – Tobias What are some of the most interesting extensions that you have seen for Bandit? – Tobias What is on the roadmap for the future of Bandit? – Tobias Keep In Touch OpenStack Security IRC OpenStack Security Weekly Meeting Tim Twitter Travis Twitter Picks Tobias Toggl Listener Review of Toggl Any.do Tim IFTTT (If This Then That) Eric Slack Travis Brilliance Trilogy Uncharted 4 Risky Business Podcast The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/18/201628 minutes, 48 seconds
Episode Artwork

Sentry with David Cramer

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary As developers we all have to deal with bugs sometimes, but we don’t have to make our users deal with them too. Sentry is a project that automatically detects errors in your applications and surfaces the necessary information to help you fix them quickly. In this episode we interviewed David Cramer about the history of Sentry and how he has built a team around it to provide a hosted offering of the open source project. We covered how the Sentry project got started, how it scales, and how to run a company based on open source. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show, subscribe, join our newsletter, check out the show notes, and get in touch you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit!- Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing David Cramer about Sentry which is an open source and hosted service for capturing and tracking exceptions in your applications. Interview with Firstname Lastname Introductions How did you get introduced to Python? – Chris What is Sentry and how did it get started? – Tobias What led you to choose Python for writing Sentry and would you make the same choice again? – Tobias Error reporting needs to be super light weight in order to be useful. What were some implementation challenges you faced around this issue? – Chris Why would a developer want to use a project like Sentry and what makes it stand out from other offerings? – Tobias When would someone want to use a different error tracking service? – Tobias Can you describe the architecture of the Sentry project both in terms of the software design and the infrastructure necessary to run it? – Tobias What made you choose Django versus another Python web framework, and would you choose it today? – Chris What languages and platforms does Sentry support and how does a developer integrate it into their application? – Tobias One of the big discussions in open source these days is around maintainability and a common approach is to have a hosted offering to pay the bills for keeping the project moving forward. How has your experience been with managing the open source community around the project in conjunction with providing a stable and reliable hosted service for it? – Tobias Are there any benefits to using the hosted offering beyond the fact of not having to manage the service on your own? – Tobias Have you faced any performance challenges implementing Sentry’s server side? – Chris What advice can you give to people who are trying to get the most utility out of their usage of Sentry? – Tobias What kinds of challenges have you encountered in the process of adding support for such a wide variety of languages and runtimes? – Tobias Capturing the context of an error can be immensely useful in finding and solving it effectively. Can you describe the facilities in Sentry and Raven that assist developers in providing that information? – Tobias It’s challenging to create an effective method for aggregating incoming issues so that they are sufficiently visible and useful while not hiding or discarding important information. Can you explain how you do that and what the evolution of that system has been like? – Tobias I notice a lot of from future import in Sentry. Does it support Python 3 and/or what’s the plan for getting there? – Chris Looking back to the beginning of the project, what are some of the most interesting and surprising changes that have happened during its lifetime? How does it differ from its original vision? – Tobias Keep In Touch Twitter Picks Tobias BPython Chris Developer on Fire Song Exploder David React Webpack Alpine Climbing Percy.io Red Rising Trilogy The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/12/20161 hour, 9 minutes, 27 seconds
Episode Artwork

Mercurial with Augie Fackler

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary As developers, one of the most important tools that we use daily is our version control system. Mercurial is one such tool that is written in Python, making it eminently flexible, customizable, and incredibly powerful. This week we spoke with Augie Fackler to learn about the history, features, and future of Mercurial. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit! Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we’re interviewing Augie Fackler about the Mercurial version control system Interview with Augie Fackler Introductions How did you get introduced to Python? – Chris Can you describe what Mercurial is and how the project got started? – Tobias How did you get involved with working on Mercurial? – Tobias What are some of the features that can be found in Mercurial which are lacking in similar tools such as Git or Bazaar? – Tobias One of the common complaints with Git is that its human interface could use some work. How is Mercurial’s UX an improvement over Git? – Chris For someone who is using Mercurial to work with a Git or other VCS repository, what are some of the edge cases that they should watch out for? Are there certain operations that could be performed in Mercurial which would break that compatibility layer? – Tobias How is Mercurial architected and what are some of the design choices that allow for it to be so flexible and extensible? – Tobias One of the core goals of Mercurial is for it to be safe. Can you explain what safety means in this context and how it is architected to achieve that goal? – Tobias One of the noteworthy aspects of Mercurial is the strong focus on making extensions a first-class concern in the project, so much so that a number of the core functions are written as extensions. Can you describe why that is and how the extensions plug into the core execution engine? – Tobias What are some of the most notable extensions that are available for use with Mercurial? – Tobias For someone who is familiar with Git, what are some of the concepts that they would need to learn about in order to use Mercurial in an idiomatic way? – Tobias A large part of the reason that Git has seen such large adoption is due to the prevalence of GitHub. There is the option of using BitBucket when using Mercurial. Are there any other noteworthy Mercurial hosting options? Do you think that the dearth of open source mercurial servers is partially due to the fact that Mercurial ships with a functional server built in? – Tobias Can you share some of the most recent features that have been added to Mercurial? – Tobias What do you have planned for the future of Mercurial? – Tobias How do you think current day DVCS systems like Mercurial, Git and Darcs might evolve in the future? – Chris Keep In Touch Twitter Picks Tobias Sapiens: A Brief History of Humankind by Yuval Noah Harrari Cultures of Continuous Learning Keynote by Vanessa Hurst Chris Intro to Django Video Series Transistor Podcast Embedded Podcast Augie Leviathan Wakes Three Body Problem Prometheus Links Mercurial: The Definitive Guide Online Print Revsets Git Pickaxe Facebook Mercurial Post Remote File Log Gerrit Kallithea Reviewboard Mozilla Review Board A Case of Computational Thinking: The Subtle Effect ofHidden Dependencies on the User Experience of VersionControl The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/5/201655 minutes, 11 seconds
Episode Artwork

Pillow with Alex Clark

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary If you need to work with images the Pillow is the library to use. The Python Image Libary (PIL) has long been the gold standard for resizing, analyzing, and processing pictures in Python. Pillow is the modern fork that is bringing the PIL into the future so that we can all continue to use it moving forward. This week I spoke with Alex Clark about what first led him to fork the project and his experience maintaining it, including the migration to Python 3. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We also have a new sponsor this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your host as usual is Tobias Macey Today we’re interviewing Alex Clark about the Pillow project Interview with Alex Clark Introductions How did you get introduced to Python? – Tobias What were you working on that led you to forking the Python Image Library (PIL)? – Tobias What does Fredrik Lundh (author of PIL) think of Pillow? When you first forked the PIL project did you think that you would still be maintaining and updating that fork by now? – Tobias Who else works on the project with you and how did they get involved? – Tobias What kinds of special knowledge or experience have you found to be necessary for understanding and extending the routines in the library and for adding new capabilities? – Tobias Can you describe what PIL and now Pillow are and what kinds of use cases they support? – Tobias How does Pillow compare to libraries with a similar purpose such as ImageMagick? – Tobias I have seen Pillow used in computer vision contexts. What are some of the capabilities of the library that lend themselves to this purpose? – Tobias What architectural patterns does Pillow use to make image operations fast and flexible? Have you found the need to do any significant refactorings of the original code to make it compatible with modern uses and execution environments? – Tobias Have you kept up to date with newer image formats, such as webp? Are there any image formats that Pillow does not support that you would like to see added to the project? – Tobias What are some of the most interesting or innovative uses of Pillow that you have seen? – Tobias What do you have planned for the future of Pillow? – Tobias Keep In Touch Website Picks Tobias Minimalist Baker Bisect module Alex Muse – Uprising Fanstatic Links Image-SIG Random (Psychedelic) Art The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/28/201620 minutes, 1 second
Episode Artwork

Wagtail with Tom Dyson

Visit our site to sign up for the newsletter, explore past episodes, subscribe to the show, and help support our work. Summary If you are operating a website that needs to publish and manage content on a regular basis, a CMS (Content Management System) becomes the obvious choice for reducing your workload. There are a plethora of options available, but if you are looking for a solution that leverages the power of Python and exposes its flexibility then you should take a serious look at Wagtail. In this episode Tom Dyson explains how Wagtail came to be created, what sets it apart from other options, and when you should implement it for your projects. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We also have a new sponsor this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Tom Dyson about Wagtail, a modern and sophisticated CMS for Django. Interview with Tom Dyson Introductions How did you get introduced to Python? – Chris Can you start by explaining what a content management system is and why they are useful? – Tobias How did the Wagtail project get started and what makes it stand out from other comparable offerings? – Tobias What made you choose Django as the basis for the project as opposed to another framework or language such as Pyramid, Flask, or Rails? – Tobias What is your target user and are there any situations in which you would encourage someone to use a different CMS? – Tobias Can you explain the software design approach that was taken with Wagtail and describe the challenges that have been overcome along the way? – Tobias How did you approach the project in a way to make the CMS feel well integrated into the other apps in a given Django project so that it doesn’t feel like an afterthought? – Tobias For someone who wants to get started with using Wagtail, what does that experience look like? – Tobias What are some of the features that are unique to Wagtail? – Tobias Given that Wagtail is such a flexible tool, what are some of the gotchas that people should watch out for as they are working on a new site? – Tobias Does Wagtail have any built-in support for multi-tenancy? – Tobias Does Wagtail have a plugin system to allow developers to create extensions to the base CMS? – Tobias Having built such a sizable plugin with deep integrations to Django, what are some of the shortcomings in the framework that you would like to see improved? – Tobias Keep In Touch Twitter Site GitHub Picks Tobias Pumpkin Pie Tom Hasbean Ethiopian Coffee Hario V60 Links Royal College of Arts Simon Willison’s Blog Vagrant Willow project Django Model Cluster Divio The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/21/201652 minutes, 32 seconds
Episode Artwork

Buildbot with Pierre Tardy

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary As technology professionals, we need to make sure that the software we write is reliably bug free and the best way to do that is with a continuous integration and continuous deployment pipeline. This week we spoke with Pierre Tardy about Buildbot, which is a Python framework for building and maintaining CI/CD workflows to keep our software projects on track. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show, subscribe, join our newsletter, check out the show notes, and get in touch you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Rollbar this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Pierre Tardy about the Buildbot continuous integration system. Interview with Pierre Tardy Introductions How did you get introduced to Python? – Chris For anyone who isn’t familiar with it can you explain what Buildbot is? – Tobias What was the original inspiration for creating the project? – Tobias How did you get involved in the project? – Tobias Can you describe the internal architecture of Buildbot and outline how a typical workflow would look? – Tobias There are a number of packages out on PyPI for doing subprocess invocation and control, in addition to the functions in the standard library. Which does buildbot use and why? – Chris What makes Buildbot stand out from other CI/CD options that are available today? – Tobias Scaling a large CI/CD system can become a challenge. What are some of the limiting factors in the Buildbot architecture and in what ways have you seen people work to overcome them? – Tobias Are there any design or architecture choices that you would change in the project if you were to start it over? – Tobias If you were starting from scratch on implementing buildbot today, would you still use Python? Why? – Chris What are some of the most difficult challenges that have been faced in the creation and evolution of the project? – Tobias What are some of the most notable uses of Buildbot and how do they uniquely leverage the capabilities of the framework? – Tobias What are some of the biggest challenges that people face when beginning to implement Buildbot in their architecture? – Tobias Does buildbot support the use of docker or public clouds as a part of the build process? – Chris I know that the execution engine for Buildbot is written in Twisted. What benefits does that provide and how has that influenced any efforts for providing Python 3 support? – Tobias Does buildbot support build parallelization at all? For instance splitting one very long test run up into 3 instances each running a section of tests to cut build time? – Chris What are some of the most requested features for the project and are there any that would be unreasonably difficult to implement due to the current design of the project? – Tobias Does buildbot offer a plugin system like Jenkins does, or is there some other approach it uses for custom extensions to the base buildbot functionality? – Chris Managing a reliable build pipeline can be operationally challenging. What are some of the thorniest problems for Buildbot in this regard and what are some of the mechanisms that are built in to simplify the operational characteristics? – Tobias What were some of the challenges around supporting slaves running on platforms with very different environmental characteristics like Microsoft Windows? – Chris What is on the roadmap for Buildbot? – Tobias Keep In Touch Buildbot Website GitHub Picks Tobias Viking Safety Razor Chris Lifeline Suzaku Sake Links Crossbar.io The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/14/20161 hour, 25 minutes, 7 seconds
Episode Artwork

Onion IoT with Lazar and Zheng

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary One of the biggest new trends in technology is the Internet of Things and one of the driving forces is the wealth of new sensors and platforms that are being continually introduced. In this episode we spoke with the founder and head engineer of one such platform named Onion. The Omega board is a new hardware platform that runs OpenWRT and lets you configure it using a number of languages, not least of which is Python. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We are also sponsored by Rollbar this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan. Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. The Open Data Science Conference in Boston is happening on May 21st and 22nd. If you use the code EP during registration you will save 20% off of the ticket price. If you decide to attend then let us know, we’ll see you there! Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Lazar and Zheng about the Onion IoT platform Interview with Lazar and Zheng Introductions How did you get introduced to Python? – Chris What is the Onion platform and how does it leverage Python? – Tobias Can you compare and contrast the Python support you provide for Onion as compared with Raspberry Pi? – Chris I noticed that you are using the OpenWRT distribution of Linux in order to provide support for multiple languages. What was the driving intent behind choosing it and why is multiple language support so important for an IoT product? – Tobias Do you provide any libraries for using with the Omega to abstract away some of the hardware level tasks? What are some of the design considerations that were involved when developing that? – Tobias What are some of the most interesting projects you have seen people build with Python on your platform? – Tobias Keep In Touch Forum Twitter Picks Tobias Now You See Me Chris Portrait / Landscape Phone / Tablet Stand Tom Bihn Bags Lazar Ex Machina The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/7/201635 minutes, 51 seconds
Episode Artwork

LibCloud with Anthony Shaw

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary More and more of our applications are running in the cloud and there are increasingly more providers to choose from. The LibCloud project is a Python library to help us manage the complexity of our environments from a uniform and pleasant API. In this episode Anthony Shaw joins us to explain how LibCloud works, the community that builds and supports it, and the myriad ways in which it can be used. We also got a peek at some of the plans for the future of the project. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project The Open Data Science Conference in Boston is happening on May 21st and 22nd. If you use the code EP during registration you will save 20% off of the ticket price. If you decide to attend then let us know, we’ll see you there! Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Anthony Shaw about the Apache LibCloud project Interview with Anthony Shaw Introductions How did you get introduced to Python? – Chris What is LibCloud and how did it get started? – Tobias How much overhead does using libcloud impose versus native SDKs for performance sensitive APIs like block storage? – Chris What are some of the design patterns and abstractions in the library that allow for supporting such a large number of cloud providers with a mostly uniform API? – Tobias Given that there are such differing services provided by the different cloud platforms, do you face any difficulties in exposing those capabilities? – Tobias How does LibCloud compare to similar projects such as the Fog gem in Ruby? – Tobias What inspired the choice of Python as the language for creating the LibCloud project? Would you make the same choice again? – Tobias Which versions of Python are supported and what challenges has that created? – Tobias What is your opinion on the state of PyPI as a package maintainer? What statistics are most useful to you and what else do you wish you could track? – Tobias Could you walk our listeners through the under the cover process details of instantiating a computer instance in say, Azure using libcloud? – Chris Does LibCloud have any native support for parallelization, such as for the purpose of launching a large number of compute instances simultaneously? – Tobias What does it mean to be an Apache project and what benefits does it provide? – Tobias What are some of the most notable projects that leverage LibCloud for interacting with platform and infrastructure service providers? – Tobias Could you describe how libcloud could be extended to abstract away a new type of service that’s not yet supported – e.g. a database? – Chris Would you suggest that libcloud users extend libcloud to cover ‘native’ services they might use like AWS Lambda, or should they mix libcloud and ‘native’ SDKs in cases like this? – Chris Could you talk a little bit about the cloud oriented network services that libcloud supports? Is it possible to create AWS VPCs, subnets, etc using libcloud? – Chris Do you know if people use LibCloud for abstracting the APIs of a single cloud provider, even if they don’t have any intention of using a different platform? – Tobias Do you think that people are more likely to use LibCloud for bridging across muliple public cloud platforms, or is it more commonly used in a hybrid cloud type of environment? – Tobias What is on the roadmap for LibCloud that people should keep an eye out for? – Tobias Keep In Touch Twitter GitHub GitHub Picks Tobias Blue Yeti Microphone Diablo Swing Orchestra Chris Rosewill RK Keycaps Enki Catch 22 Anthony Hidden Brain Podcast PyKwalify Doing Nothing Links Dimension Data Austin Bingham and Robert Smallshire Pluralsight Python Training CloudKick PyPI Ranking website Apache JClouds SaltStack Scalr Apache Software Foundation Mist.io StackStorm The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/1/20161 hour, 24 minutes, 34 seconds
Episode Artwork

Pip and the Python Package Authority with Donald Stufft

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary As Python developers we have all used pip to install the different libraries and projects that we need for our work, but have you ever wondered about who works on pip and how the package archive we all know and love is maintained? In this episode we interviewed Donald Stufft who is the primary maintainer of pip and the Python Package Index about how he got involved with the projects, what kind of work is involved, and what is on the roadmap. Give it a listen and then give him a big thank you for all of his hard work! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Google Play Music just launched support for podcasts, so now you can check us out there and subscribe to the show. Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project We also have a new sponsor this week. Rollbar is a service for tracking and aggregating your application errors so that you can fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcatinit to get 90 days and 300,000 errors for free on their bootstrap plan. The Open Data Science Conference in Boston is happening on May 21st and 22nd. If you use the code EP during registration you will save 20% off of the ticket price. If you decide to attend then let us know, we’ll see you there! Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Donald Stufft about Pip and the Python Packaging Authority Interview with Donald Stufft Introductions How did you get introduced to Python? – Chris How did you get involved with the Pip project? – Tobias What is the Python Packaging Authority and what does it do? – Tobias How is PyPi / the Python Packaging Authority funded? – Chris What is your opinion on the current state of Python packaging? Are there lessons from other languages and package managers that you think should be adopted by Python? – Tobias What was involved in getting pip into the standard Python distribution? Was there any controversy around this? – Chris Can you describe some of the mechanics of Pip and how it differs from the other packaging systems that Python has used in the past? – Tobias Does pip interact at all with virtualenv, pyenv and the like? – Chris The newest package format for Python is the wheel system. Can you describe what that is and what its benefits are? – Tobias What are the biggest challenges that you have encountered while working on Pip? – Tobias What does the infrastructure for the Python Package Index look like? – Tobias What have been some of the challenges around scaling Pypi’s infrastructure to meet demand? – Chris You’re currently working on a replacement for the PyPI site with the Warehouse project. Can you explain your motivation for that and how it improves on the current system? – Tobias Where do you see the future of dependency management in Python headed? – Chris A few days ago there was a big story about how an NPM library was removed from the index, breaking a large number of dependent projects and applications. Do you think that anything like that could happen in the Python ecosystem? – Tobias What’s on the roadmap for Pip? – Tobias Keep In Touch GitHub DistUtils Special Interest Group Email @dstufft on Twitter Picks Tobias Xiki Chris Agar.io Culprate TCP/IP Illustrated Volume I: The Protocols Donald Linux on Windows 10 Links Bandersnatch Wheel Warehouse pypa/warehouse PyPI Sponsors56 DevPI The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/23/201652 minutes, 59 seconds
Episode Artwork

StackStorm with Tomaž Muraus and Patrick Hoolboom

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary If you are responsible for managing any amount of servers, then you know that automation is critical for maintaining your sanity. This week we spoke with Tomaž Muraus and Patrick Hoolboom about their work on StackStorm, which is a platform for tracking and reacting to events in your infrastructure. By allowing you to register actions with event triggers it frees you from having to worry about a whole class of concerns so that you can focus on building new capabilities rather than babysitting what you already have. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. ODSC East in Boston is happening on May 21st – 22nd. Use the discount code EP for 20% off when you register Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Tomaž Muraus and Patrick Hoolboom about the StackStorm project, which is an event-driven system automation framework. Interview Introductions How did you get introduced to Python? – Chris What is StackStorm and what problems does it solve? – Tobias What was your inspiration for creating StackStorm and what were some of the biggest architectural and design challenges? – Tobias What made you choose Python for StackStorm’s implementation rather than another language like Go? – Chris Can you describe the architecture of StackStorm and what the setup looks like? – Tobias Other than chat driven events, what types of event sources does StackStorm support, and what use cases do those alternate event streams enable? – Chris The home page describes StackStorm as being an event-driven framework for automating the users infrastructure. What kinds of capabilities are made possible by this and do you think that it simplifies or complicates the work of operations engineers? – Tobias Is there a minimum or maximum size of infrastructure for which it would make sense to use StackStorm? – Tobias It looks like StackStorm is made up of a number of discrete components. What do the components use to communicate, and how did those choices influence the design of StackStorm’s overall architecture? – Chris I use SaltStack in my work which is a tool that also focuses on event-driven architecture. Can you compare and contrast the capabilities and focus of StackStorm with the features of SaltStack? Would it make sense to use both frameworks in the same infrastructure? – Tobias One of the advertised features of StackStorm is a strong focus on ChatOps. Can you explain that concept for people who might not be familiar with it and describe why it is such a useful paradigm? – Tobias Extensibility is a critical capability for an operations platform due to the wide variety of environments that people are inclined to build. In StackStorm the unit of extensibility is a pack. Can you describe what a pack is and how you arrived at that abstraction? – Tobias Have you encountered any situations in which the concept of a pack has been the wrong abstraction and made something more difficult than it may have been otherwise? – Tobias In very large scale environments like Netflix, how would one build a StackStorm cluster to handle the immense load. More specifically, how does one determine what kinds of machine resources each component needs? – Chris Management of credentials is always a difficult problem in operations. Does StackStorm attempt to tackle that issue or does it defer that responsibility to other systems, such as the user’s configuration management platform? – Tobias Does StackStorm interface with Kibana, Splunk or other log / metric aggregation packages? – Chris What are some of the most surprising uses that you have heard of from people using the platform? – Tobias Keep In Touch Tomaž Twitter website/blog Patrick Twitter Picks Tobias SAWS Bill Peet Chris Grimm Brewing Subliminal Message Sour Red Ale Lobste.rs Medium Tomaž Understanding Air France 447 Aviation Herald Patrick True Nutrition JP Cycles The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/16/201659 minutes, 22 seconds
Episode Artwork

Hypothesis with David MacIver

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Writing tests is important for the stability of our projects and our confidence when making changes. One issue that we must all contend with when crafting these tests is whether or not we are properly exercising all of the edge cases. Property based testing is a method that attempts to find all of those edge cases by generating randomized inputs to your functions until a failing combination is found. This approach has been popularized by libraries such as Quickcheck in Haskell, but now Python has an offering in this space in the form of Hypothesis. This week, the creator and maintainer of Hypothesis, David MacIver, joins us to tell us about his work on it and how it works to improve our confidence in the stability of our code. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project Open Data Science Conference on May 21-22nd in Boston. 20% Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing David MacIver about the Hypothesis project which is an advanced Quickcheck implementation for Python. Interview with David MacIver Introductions How did you get introduced to Python? – Chris Can you provide some background on what Quickcheck is and what inspired you to write an implementation in Python? – Tobias Are there any ways in which Hypothesis improves on the original design of Quickcheck? – Tobias Can you walk us through the execution of a simple Hypothesis test to give our listeners a better sense for what Hypothesis does? – Chris Have you had trouble getting people to use Hypothesis? How has adoption been? – David What does this sort of testing get you that conventional testing doesn’t? – David Why do you think this sort of testing hasn’t caught on in the Python world before? – David Are there any facilities of the Python language that make your job easier? Are there aspects of the language that make this style of testing more difficult? – Tobias What are some of the design challenges that you have been presented with while working on Hypothesis and how did you overcome them? – Tobias Given that testing is an important part of the development process for ensuring the reliability and correctness of the system under test, how do you make sure that Hypothesis doesn’t introduce uncertainty into this step? – Tobias Given the sophisticated nature of the internals of Hypothesis, do you find it difficult to attract contributors to the project? – Tobias A few months ago you went through some public burnout with regards to open source and Hypothesis in particular, but circumstances have brought you back to it with a more focused plan for making it sustainable. Can you provide some background and detail about your experiences and reasoning? – Tobias What’s next for Hypothesis? – Chris Keep In Touch Twitter Blog NewsLetter Picks Tobias TypeForm Listener Survey CI Survey Chris Seashine CheckIO Mike Coutermarsh’s Jr. Developer series David Make It Stick by Peter Brown Beeminder Vorkosigan Saga by Lois McMaster Bujold The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/9/201647 minutes, 1 second
Episode Artwork

Pyjion with Dino Viehland and Brett Cannon

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary In an attempt to improve the performance characteristics of the CPython implementation, Dino Viehland began work on a patch to allow for a pluggable interface to a JIT (Just In Time) compiler. His employer, Microsoft, decided to sponsor his efforts and the result is the Pyjion project. In this episode we spoke with Dino Viehland and Brett Cannon about the goals of the project, the progress they have made so far, and the issues they have encountered along the way. We also made an interesting detour to discuss the general state of performance in the Python ecosystem and why the GIL isn’t the bogeyman it’s made out to be. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Open Data Science Conference, Boston MA May 21st – 22nd, use the discount code EP at registration for 20% off Today we are interviewing Brett Cannon and Dino Viehland about their work on Pyjion, a CPython extension that provides an API to allow for plugging a JIT compilation engine into the CPython runtime. Interview with Brett Cannon and Dino Viehland Introductions How did you get introduced to Python? – Chris What was the inspiration for the Pyjion project and what are its goals? – Tobias The FAQ mentions that Pyjion could easily be made cross platform, but this being a Microsoft project it was bootstrapped on Windows. Have any of the discrete tasks required to get Pyjion running under OSX or Linux been laid out even in outline form? – Chris Given that this is a Microsoft backed project it makes sense that the first JIT engine to be implemented is for the CoreCLR. What would an alternative implementation provide and in what ways can a JIT framework be tuned for particular workloads? – Tobias What kinds of use cases and problem domains that were previously impractical will be enabled by this? – Tobias Does Microsoft’s recent acquisition of Xamarin and the Mono project change things for the Pyjion project at all? – Chris What are the challenges associated with your work on Pyjion? Are there certain aspects of the Python language and the CPython implementation that make the work more difficult than it might be otherwise? – Tobias When I think of Microsoft and programming languages I generally think of C++ and C#. Did your team have to go through an approval process in order to utilize Python, and further to open source your work on Pyjion? – Chris How does Pyjion hook into the CPython runtime and what kinds of primitives does it expose to JIT engines for them to be able to work with? – Tobias Would an entire project be run through the JIT engine during runtime or is it possible to target a subset of the code being executed? – Tobias In what ways can a JIT compiler implementation be purpose-built for a given workload and how would someone go about creating one? – Tobias Could a JIT plugin be designed with different trade-offs, like no C API compatibility, but that worked around the GIL to provide real concurrency in Python? – Chris One of the most notable benefits of having a JIT implementation for the CPython runtime is the fact that modules with C extensions can be used, such as NumPy. Does that pose any difficulties in the compilation methods used for optimizing the Python portion of the code? – Tobias What kinds of performance improvements have you seen in your experimentation? – Tobias Which release of Python do you hope to have Pyjion incorporated into? – Tobias Has any thought been given to making Python a first class citizen in Visual Studio Code? – Chris What areas of the project could use some help from our listeners? – Chris Keep In Touch Dino GitHub Brett Twitter Blog Python Engineering @ Microsoft Blog Picks Tobias Logitech Wave MK550 SaltStack TestInfra SaltStack Formula Cookiecutter Chris Anchor – Public Radio for the People The Magicians Portal is a Feminist Masterpiece – PBS Gameshow Brett Breville Tea Maker Bodom Mugs Alto’s Adventure Dino Come Dine With Me The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/1/20161 hour, 10 minutes, 26 seconds
Episode Artwork

Transcrypt with Jacques de Hooge

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Any programmer who has dealt with a website for any length of time knows that writing JavaScript isn’t always the most enjoyable. Wouldn’t you rather write that code in Python and just have it work on your website? In this episode we learn about Transcrypt with its creator Jacques de Hooge. Transcrypt is a Python to JavaScript transpiler that embraces the JavaScript ecosystem while letting you use the familiar syntax of Python for writing your logic, rather than trying to shoehorn a Python runtime into your browser. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. ODSC East in Boston is happening on May 21st – 22nd. Use the discount code EP for 20% off when you register Your host today is Tobias Macey Today I am interviewing Jacques de Hooge about his work on the Transcrypt Project Interview with Jacques de Hooge Introductions How did you get introduced to Python? – Tobias What is Transcrypt and what inspired you to create it? – Tobias As you mention in the documentation, there are a number of projects that attempt to shoehorn Python into the browser. What makes Transcrypt different? – Tobias I like that you decided to embrace the web environment by calling into JavaScript libraries. What are some of the challenges that you encountered while creating that functionality? – Tobias How is the transpilation performed and what are some of the methods that you used to get the build size as small as it is? – Tobias Given the nature of JavaScripts prototypical inheritance and differences in class semantics, I imagine that adding support for multiple inheritance and reflecting the structure of Python classes must have been challenging. Can you describe that process and how you arrived at your current solution? – Tobias Which aspects of the language were most difficult to translate to JavaScript? – Tobias Is Transcrypt complete and stable enough to be used in production? – Tobias Keep in Touch Transcrypt.org Forum Email Picks Tobias Cookiecutter Jacques Programming The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/26/201642 minutes, 10 seconds
Episode Artwork

VPython with Ruth Chabay and Bruce Sherwood

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Wouldn’t it be nice to be able to generate interactive 3D visualizations of physical systems in a declarative manner with Python? In this episode we spoke with Ruth Chabay and Bruce Sherwood about the VPython project which does just that. They tell us about how the use VPython in their classrooms, how the project got started, and the work they have done to bring it into the browser. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Ruth Chabay and Bruce Sherwood about their work on VPython Interview Introductions How did you get introduced to Python? – Chris What is VPython and how did it get started? – Tobias What problems inspired you to create VPython? – Chris How do you design an API that allows for such powerful 3D visualization while still making it accessible to students who are focusing on learning new concepts in mathematics and physics so that they don’t get overwhelmed by the tool? – Tobias I know many schools have embraced the open curriculum idea, have any of your physics courses using VPython been made available to the non matriculating public? – Chris How does VPython perform its rendering? If you were to reimplement it would you do anything differently? – Tobias One of the remarkable points about VPython is its ability to execute the simulations in a browser environment. Can you explain the technologies involved to make that work? – Tobias Given the real-time rendering capabilities in VPython I’m sure that performance is a core concern for the project. What are some of the methods that are used to ensure an appropriate level of speed and does the cross-platform nature of the package pose any additional challenges? – Tobias How does collision detection work in VPython, and does it handle more complex assemblies of component objects? – Chris Can you talk a little bit about VPython’s design, and perhaps walk us through how a simple scene is rendered, say the results of the sphere() call? – Chris Keep In Touch VPython Forum Glowscript Forum Github Picks Tobias Land of Lisp by Conrad Barsky M.D. Chris The Magicians Swift Atari Logo Bruce VPython.org Glowscript.org Ruth matterandinteractions.org/student NetLogo Links Coursera GATech Intro to Physics Alice Project glowscript.org Jupyter VPython RapydScript The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/18/20161 hour, 3 minutes, 2 seconds
Episode Artwork

PyData London with Ian Ozsvald and Emlyn Clay

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Ian Ozsvald and Emlyn Clay are co-chairs of the London chapter of the PyData organization. In this episode we talked to them about their experience managing the PyData conference and meetup, what the PyData organization does, and their thoughts on using Python for data analytics in their work. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Ian Ozsvald and Emlyn Clay about their work with PyData London, a group within the PyData organization. PyData London represents the largest Python group in London at ~2850 members, they hold regular monthly meetups for ~200 members at AHL near Bank and a yearly conference for around ~300 members. Last year, they and their sponsors raised over £26,000 to sponsor the development of core numerical libraries in Python. Use the promo code podcastinit20 to get a $20 credit when you sign up! On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview Introductions How did you get introduced to Python? – Chris What is the PyData organization, how does PyData London fit into it and what is your relationship with it? – Tobias In what ways does a PyData conference differ from a PyCon? – Tobias Does PyData do anything in particular to encourage users from disciplines that might not be aware of how much our community has to offer to choose the Python suite of data analysis tools? – Chris You have both spent a good portion of your careers using Python for working with and analyzing data from various domains. How has that experience evolved over the past several years as newer tools have become available? – Tobias For someone who is just getting started in the data analytics space, what advice can you give? – Tobias How can conferences like PyData help strengthen the bonds and synergies between the Python software community and the sciences? – Chris There are a number of different subtopics within the blanket categorization of data science. Is it difficult to balance the subject matter in PyData conferences and meetups to keep members of the audience from being alienated? – Tobias Data science is a young field and we’ve yet to see lots of examples of the successful use of data. How are London-based companies using data with Python? – Ian Is there a Python data science library you think needs a little love? – Emlyn Keep In Touch Ian Blog Twitter Emlyn Twitter Picks Tobias xcape Keybase Filesystem Chris The Player of Games Undertale The Big Short Ian Seaborn: Python visualisation tool Mastering Predictive Analytics with R: Rui Miguel Forte Allergect Rhinitis research using ML London Unreal City Audio Tour Emlyn ipython nbconvert –template flag Damian Avila’s Blog post on making slides with iPython Notebook The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/12/20161 hour, 3 minutes, 11 seconds
Episode Artwork

Efene with Mariano Guerra

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Efene is a language that runs on the Erlang Virtual Machine (BEAM) and is inspired by the Zen of Python. It is intended as a bridge language that serves to ease the transition into the Erlang ecosystem for people who are coming from languages like Python. In this episode I spoke with Mariano Guerra, the creator of Efene, about how Python influenced his design choices, why you might want to use it, and when Python is the better tool. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your host today is Tobias Macey Today we are interviewing Mariano Guerra about his work on the Efene language. Interview with Mariano Guerra Introductions How did you get introduced to Python? – Chris So Efene is a language that runs on the BEAM VM which you say was at least partially inspired by the Zen of Python. Can you explain in greater detail in what form that inspiration manifested and some of the process involved in the creation of Efene? – Tobias What inspired you to create Efene and what problems does it solve? – Tobias How does Efene compare to other BEAM based languages such as Elixir? – Tobias When would a Python developer want to consider using Efene? – Tobias What benefits does the BEAM provide that can’t be easily replicated in the Python ecosystem? – Tobias Does the Efene language ease the transition to a more functional mindset for developers who are already familiar with Python paradigms? – Tobias I understand that you are experimenting with another language implementation that runs on the BEAM. Can you describe that project and compare it to Efene? What were your inspirations? – Tobias Keep In Touch Twitter GitHub Blog Efene Emesene Python Argentina Picks Tobias Dotphiles The Unreasonable Effectiveness of Dynamic Typing for Practical Programs Mariano Om Next David Nolan on Om Next Clojurescript Things Network Links Erlang Elixir Lisp Flavored Erlang Joxa Rebar3 Erlang MK Hex Interfix The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
3/4/201659 minutes, 35 seconds
Episode Artwork

Functional Python with Matthew Rocklin and Alexander Schepanovsky

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary What is functional programming, why would you want to use it, and how can you get started with it in Python? Our guests this week, Matthew Rocklin and Alexander Schepanovsky, help us understand all of that and more. Matthew and Alexander have each created their own Python libraries to make it easier to employ functional paradigms in your Python code. In this episode they help us understand the benefits that functional styles can have and the benefits that can be realized by trying them out for yourself. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your host today is Tobias Macey Today we are interviewing Matthew Rocklin and Alexander Schepanovski about their work on functional libraries for Python. Interview with Alexander and Matthew Introductions How did you get introduced to Python? – Chris Can you first explain what functional programming is and how it differs from the procedural or object oriented programming that most Pythonistas are familiar with? – Tobias How did you get started with functional programming? – Tobias What are the benefits of functional programming and when might someone want to use functional paradigms in their projects? – Tobias What is it about functional programming that people find so intimidating and what do you think has led to its recent rise in popularity? – Tobias What aspects of the Python language lend themselves to being used in a functional manner and where does it fall down? – Tobias Can you each describe what your respective libraries provide in terms of functional capabilities and what their particular focus is? Are they distinct enough from each other that it would make sense to use them both in a single project? – Tobias What inspired each of you to create your respective libraries? – Tobias There is a functools module in the Python standard library that provides some methods that enable functional paradigms. Where does that module fall short and how do your respective libraries augment or replace the functionality in that module? – Tobias There is also a library named fn.py which provides functional paradigms for use in Python. Can you each compare and contrast it with your own work? – Tobias There are a number of concepts involved in functional programming such as currying, function composition, immutable data, and pure functions. Can you describe some of those concepts and then explain which of them you tried to incorporate into your libraries? – Tobias What are some of the resources that you have found to be most helpful when trying to learn and apply functional principles to your programs? – Tobias Keep In Touch Alexander Twitter Blog Matthew Website Toolz Twitter GitHub Picks Tobias DataDog Alexander The Expanse Revolut Matthew Riemann Five Dances Distributed Links Rosetta Code PyToolz Funcy Fn.py MacroPy Code Transformer Simple Made Easy by Rich Hickey The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/29/20161 hour, 20 minutes, 2 seconds
Episode Artwork

Cython with Craig Citro and Robert Bradshaw

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Do you find yourself reaching for a different language when you need some extra speed? With Cython you can get the best of both worlds by writing your code in Python and executing it as compiled code. In this episode we were joined by Craig Citro and Robert Bradshaw from the Cython project to discuss how and when you might want to incorporate it into your applications. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Craig Citro and Robert Bradshaw Interview with Craig Citro and Robert Bradshaw Introductions How did you get introduced to Python? – Chris What is Cython and how did the project get started? – Tobias My understanding is that Cython can improve the performance of a Python program without even having to provide any type annotations. How does it manage to do that? – Tobias Can a Cython module be used as a way to sidestep the GIL? What are some of the pitfalls that can be caused by doing so? – Tobias Can you give some examples of how Cython can be used to improve the perfomance of Python programs? – Tobias How does Cython work under the covers? – Tobias What were some of the challenges during the creation of Cython and what design decisions were made to overcome them? – Tobias Does Python’s cross platform nature create any unique challenges when compiling down to the C level? – Chris What processor and system architectures does Cython support and are there plans to expand that support? – Tobias How do generators and list comprehensions map to C, and did those higher level language constructs pose any special challenges in Cython’s design? – Chris Would Rust ever be a potential compile target for performance and safety optimized modules? – Tobias Keep In Touch Craig Twitter GitHub Website Robert Email Picks Tobias Certificates, Reputation, and the Blockchain Craig Curious Kids Science Book by Asia Citro dplyr magrittr Everything Is Obvious: How Common Sense Fails Us by Duncan Watts Robert Mo Willems Philips Hue Lights Sage Math Cloud Links Sage (Math) Pyrex) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/19/201652 minutes, 2 seconds
Episode Artwork

Airflow with Maxime Beauchemin

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Are you struggling with trying to manage a series of related, interdependent batch jobs? Then you should check out Airflow. In this episode we spoke with the project’s creator Maxime Beauchemin about what inspired him to create it, how it works, and why you might want to use it. Airflow is a data pipeline management tool that will simplify how you build, deploy, and monitor your complex data processing tasks so that you can focus on getting the insights you need from your data. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Maxime Beauchemin about his work on the Airflow project. Interview with Maxime Beauchemin Introductions How did you get introduced to Python? – Chris What is Airflow and what are some of the kinds of problems it can be used to solve? – Chris What are some of the biggest challenges that you have seen when implementing a data pipeline with a workflow engine? – Tobias What are some of the signs that a workflow engine is needed? – Tobias Can you share some of the design and architecture of Airflow and how you arrived at those decisions? – Tobias How does Airflow compare to other workflow management solutions, and why did you choose to write your own? – Chris One of the features of Airflow that is emphasized in the documentation is the ability to dynamically generate pipelines. Can you describe how that works and why it is useful? – Tobias For anyone who wants to get started with using Airflow, what are the infrastructure requirements? – Tobias Airflow, like a number of the other tools in the space, support interoperability with Hadoop and its ecosystem. Can you elaborate on why JVM technologies have become so prevalent in the big data space and how Python fits into that overall problem domain? – Tobias Airflow comes with a web UI for visualizing workflows, as do a few of the other Python workflow engines. Why is that an important feature for this kind of tool and what are some of the tasks and use cases that are supported in the Airflow web portal? – Tobias One problem with data management is tracking the provenance of data as it is manipulated and shuttled between different systems. Does Airflow have any support for maintaining that kind of information and if not do you have recommendations for how practitioners can approach the issue? – Tobias What other kinds of metadata can Airflow track as it executes tasks and what are some of the interesting uses you have seen or created for that information? – Tobias With all the other languages competing for mindshare, what made you choose Python when you built Airflow? – Chris I notice that Airflow supports Kerberos. It’s an incredibly capable security model but that comes at a high price in terms of complexity. What were the challenges and was it worth the additional implementation effort? – Chris When does the data pipeline/workflow management paradigm break down and what other approaches or tools can be used in those cases? – Tobias So, you wrote another tool recently called Panoramix. Can you describe what it is and maybe explain how it fits in the data management domain in relation to Airflow? – Tobias Keep In Touch Google Group Gitter GitHub Picks Tobias Empire of the East by Fred Saberhagen The Book of Swords by Fred Saberhagen Chris Buraka Son Sistema Star Wars – Despecialized Edition The Iron Druid Chronicles Maxime Flask App Builder The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/13/20161 hour, 3 minutes, 17 seconds
Episode Artwork

WSGI 2

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary The Web Server Gateway Interface, or WSGI for short, is a long-standing pillar of the Python ecosystem. It has enabled a vast number of web frameworks to proliferate by not having to worry about how exactly to interact with the HTTP protocol and focus instead on building a library that is robust, extensible, and easy to use. With recent evolutions to how we interact with the web, it appears that WSGI may be in need of an update and that is what our guests on this episode came to discuss. Cory Benfield is leading an effort to determine what if any modifications should be made to the WSGI standard or if it is time to retire it in favor of something new. Andrew Godwin has been hard at work building the Channels framework for Django to allow for interoperability with websockets. They bring their unique perspectives to bear on how and why we may want to consider bringing WSGI into the current state of the web. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Cory Benfield and Andrew Godwin about a proposed update to the WSGI specification. Interview with Cory Benfield and Andrew Godwin Introductions How did you get introduced to Python? – Chris First off, what is WSGI? – Tobias What are some of the ways the current WSGI spec has fallen out of step with the needs of the modern developer? – Chris How did you come to be involved with the new WSGI specification? What brought you into this process? – Chris Do you think the WSGI name itself brings a lot of expectation, or is it good to keep it as a well-recognised Python landmark? – Tobias Would it be better to make a clean break and implement an entirely new set of APIs and style of interaction? – Tobias What kind of compatibility guarantees should be made between the current spec and the proposed upgrade? What would the impact be if the new specification was incompatible? – Tobias How has the response been to your call for comments? What are some of the most frequently raised concerns or suggestions? – Tobias What are some of the proposed changes to the specification? – Tobias Are there any future directions you think WSGI should take that perhaps haven’t been considered yet? – Chris Has your opinion or vision of the proposed update changed as you reviewed responses to the conversation on the mailing list? – Tobias Do you have any ideas of how to design the new specification in order to avoid a similar situation of needing to deprecate the current standards in order to accomodate new web protocols? – Tobias What are some of the points of contention or rigorous debate that have kept previous WSGI 2 attempts from succeeding? – Chris Keep In Touch Andrew Twitter GitHub Cory Twitter GitHub Picks Tobias Discourse Chris The Expanse Puerto Rico for IOS Dominion for IOS Splendor for IOS Cory Wusthof Knives Australian Football XCOM 2 Andrew Archery Tromsø Norway The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
2/7/20161 hour, 4 minutes, 46 seconds
Episode Artwork

SymPy With Aaron Meurer

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary Looking for an open source alternative to Mathematica or MatLab for solving algebraic equations? Look no further than the excellent SymPy project. It is a well built and easy to use Computer Algebra System (CAS) and in this episode we spoke with the current project maintainer Aaron Meurer about its capabilities and when you might want to use it. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community at discourse.pythonpodcast.com to follow up with the guests and help us make the show better! nn I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit and double your signing bonus to $4,000. We are recording today on January 18th, 2016 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Aaron Meurer about SymPy Interview with Aaron Meurer Introductions How did you get introduced to Python? – Chris What is Sympy and what kinds of problems does it aim to solve? – Chris How did the SymPy project get started? – Tobias How did you get started with the SymPy project? – Chris Are there any limits to the complexity of the equations SymPy can model and solve? – Chris How does SymPy compare to similar projects in other languages? – Tobias How does Sympy render results using such beautiful mathematical symbols when the inputs are simple ASCII? – Chris What are some of the challenges in creating documentation for a project like SymPy that is accessible to non-experts while still having the necessary information for professionals in the fields of mathematics? – Tobias Which fields of academia and business seem to be most heavily represented in the users of SymPy? – Tobias What are some of the uses of Sympy in education outside of the obvious like students checking their homework? – Chris How does SymPy integrate with the Jupyter Notebook? – Chris Is SymPy generally used more as an interactive mathematics environment or as a library integrated within a larger application? – Tobias What were the challenges moving SymPy from Python 2 to Python 3? – Chris Are there features of Python 3 that simplify your work on SymPy or that make it possible to add new features that would have been too difficult previously? – Tobias Were there any performance bottlenecks you needed to overcome in creating Sympy? – Chris What are some of the interesting design or implementation challenges you’ve found when creating and maintaining SymPy? – Chris Are there any new features or major updates to SymPy that are planned? – Tobias How is the evolution of SymPy managed from a feature perspective? Have there been any occasions in recent memory where a pull request had to be rejected because it didn’t fit with the vision for the project? – Tobias Which of the features of SymPy do you find yourself using most often? – Tobias Picks Tobias Functional Geekery Nekrogoblikon Heavy Meta Marble Fun Run Chris Surprisingly Awesome All Watched Over by Machines of Loving Grace Pizzicato 5 Mayflower Hoppy Brown Ale Aaron Fermat’s Library catimg iTerm2 Keep In Touch Twitter Mailing List Gitter Channel Links Project Euler Richardson’s Theorem Doing Math With Python by Amit Saha (and Aaron’s book review) The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/31/20161 hour, 3 minutes, 6 seconds
Episode Artwork

RPython with Maciej Fijalkowski

Visit our site to listen to past episodes, support the show, join our community, and sign up for our mailing list. Summary RPython is a subset of Python that is used for writing high performance interpreters for dynamic languages. The most well-known product of this tooling is the PyPy interpreter. In this episode we had the pleasure of speaking with Maciej Fijalkowski about what RPython is, what it isn’t, what kinds of projects it has been used for, and what makes it so interesting. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. We are recording today on December 17th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Maciej Fijalkowski on RPython Interview with Maciej Fijalkowski Introductions How did you get introduced to Python? – Chris What is RPython and how does it differ from CPython? – Tobias Can you share some of the history of RPython in terms of the major improvements and design choices? – Tobias In the documentation it says that RPython is able to generate a Just In Time compiler for dynamic languages. Can you explain why that is significant and some of the ways that it does that? – Tobias The most well-known use of RPython is the PyPy interpreter for Python. Can you share some of the other languages that have been ported to the RPython runtime and how their performance has been improved or altered in the process? – Tobias Are there any languages that have been designed entirely for use with RPython, rather than translating an existing language to run on it? – Tobias Do you know of any cases where an application has been written to run directly on RPython? – Tobias What are the computer architecture and operating system platforms that RPython supports and do you have any plans to expand that support? – Tobias Are there any minimum hardware specifications that are necessary to be able to effectively run a language written against the RPython platform? – Tobias Is RPython similar in concept to other efforts like Parrot in the Perl world? – Chris Are there any particular areas of the project that you need help with and how can people get involved with the project? – Tobias Picks Tobias PyCoders 2015 Recap Shape Up Xbox One Xbox One Kinect Selfless Chris Skunk Bear Category 6 Environments) Maciej PyCon South Africa Keep In Touch IRC Mailing List PyPy consultancy Links Psyco (Python JIT) Truffle HippyVM Topaz Pycket Pyxie-lang The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/22/201635 minutes, 34 seconds
Episode Artwork

Ben Darnell on Tornado

Visit our site to listen to past episodes, support the show, join our Discourse community, and sign up for our mailing list. Summary If you are trying to build a web application in Python that can scale to a high number of concurrent users, or you want to leverage the power of websockets, then Tornado just may be the library you need. In this episode we interview Ben Darnell about his work as the maintainer of the Tornado project and how it can be used in a number of ways to power your next high traffic site. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ We are also running a listener survey to get feedback about the show. You can find it at bit.do/podcastinit-survey. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project I would also like to thank Hired, a job marketplace for developers and designers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus to $4,000. Your hosts as usual are Tobias Macey and Chris Patti We recently launched a new Discourse forum for the show which you can find at discourse.pythonpodcast.com. Join us to discuss the show, the episodes, and ideas for future interviews. Today we are interviewing Ben Darnell about his work on Tornado Interview with Ben Darnell Introductions How did you get introduced to Python? – Chris What is Tornado and what sets it apart from other HTTP servers? – Chris How did you get involved with Tornado? – Ben What was the inspiration for the name? – Tobias Tornado was created before the recent focus on asynchronous applications. What prompted that design choice and when might someone care about using async in their development? – Tobias What is involved in creating an event loop and what are some of the specific design decisions that you made when implementing one for Tornado? – Tobias How does Tornado’s event loop compare to other packages such as Twisted or the asyncio module in the standard library? – Tobias The web module appears to provide a minimal framework for developing web apps. How scalable are those capabilities and is there a recommended architecture for people using Tornado to develop web applications? – Tobias What are some use cases in which a developer might choose Tornado over other similar options? – Chris Could you please give our listeners an overview of Tornado’s concurrency options including coroutines? – Chris I see that Tornado supports interoperability with the WSGI protocol and one of the use cases mentioned is for running a Django application alongside a Tornado app. Is that a common way for providing websocket capabilities alongside an existing web app? – Tobias I noticed that Tornado provides non-blocking versions of bare sockets and TCP connections. Are there any add-on packages available to simplify the use of various network protocols along the lines of what Twisted includes? – Tobias Please tell us about the transition of Tornado to Python 3. What obstacles did you face and how did you overcome them? – Chris Based on your issue tracker it looks like http2 support is definitely on the roadmap. Could you please detail your future plans in this area? – Chris What are some of the common “gotcha’s” for people who are just starting to use Tornado? – Tobias Picks Tobias Adventures of Riley Dayworld Trilogy by Philip José Farmer Chris Sense8 Habits of a Happy Brain Ethereum Ben The Memory Palace Newsblur Keep In Touch Mailing List Links Motor The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/16/20161 hour, 6 minutes, 27 seconds
Episode Artwork

Yves Hilpisch on Quantitative Finance

Visit our site to listen to past episodes, join our community Discourse, support the show, and sign up for our mailing list. Summary Yves Hilpisch is a founder of The Python Quants, a consultancy that offers services in the space of quantitative financial analysis. In addition, they have created open source libraries to help with that analysis. In this episode we spoke with him about what quantitative finance is, how Python is used in that domain, and what kinds of knowledge are necessary to do these kinds of analysis. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus to $4,000. We are recording today on December 30th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Yves Hilpisch about Quantitative Finance On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Yves Hilpisch Introductions How did you get introduced to Python? – Chris Can you explain what Quantitative Finance is? – Tobias How common is it for Python to be used in an investment bank or hedge fund? – Tobias What factors contribute to the choice of whether or not to use Python in a Quantitative Finance role? – Tobias Are there any performance bottle necks or other considerations inherent in using Python for quantitative finance? – Chris What kind of background is necessary for getting started in Quantitative Finance? – Tobias What kinds of libraries or algorithms in Python are useful for the day-to-day work of a quant? – Tobias Is Python actually used to enact the trades? What protocols, APis, and libraries are used in this process? – Chris Could you please walk us through how a simple analysis using DXAnalytics might work? – Chris You work for a company called ‘The Python Quants‘. What kinds of services do you provide and what kinds of organizations typically hire you? – Tobias Picks Tobias Kraken by China Miéville Heroes in Training series Olympians Graphic Novels Data Elixir Newsletter Chris Hill Farmstead – Edward Long Trail – Brush & Barrel Series – Culmination Chocolate Porter Long Trail – Spaaaaaace Juice Double IPA Flask-RESTLess Yves The Willpower Instinct The Way of the Seal Sapiens: A Brief History of Humankind Python High Performance Computing Keep In Touch Twitter Website Links Quandl Yahoo Finance Market Data Ravenpack DX Analytics DataPark.io Python for Finance Derivatives Analytics With Python Python Quants Conference Open Source for Quant Finance The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/8/20161 hour, 10 minutes, 30 seconds
Episode Artwork

Scott Sanderson on Algorithmic Trading

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Because of its easy learning curve and broad extensibility Python has found its way into the realm of algorithmic trading at Quantopian. In this episode we spoke with Scott Sanderson about what algorithmic trading is, how it differs from high frequency trading, and how they leverage Python for empowering everyone to try their hand at it. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com We are recording today on December 16th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Scott Sanderson on Algorithmic Trading Interview with Scott Sanderson Introductions How did you get introduced to Python? – Chris Can you explain what algorithmic trading is and how it differs from high frequency trading? – Tobias What kinds of algorithms and libraries are commonly leveraged for algorithmic trading? – Tobias Quantopian aims to make algorithmic trading accessible to everyone. What do people need to know in order to get started? Is it necessary to have a background in mathematics or data analysis? – Tobias Does the Quantopian platform build in any safe guards to prevent user’s algorithms from spiraling out of control and creating or contributing to a market crash? – Chris How is Python used within Quantopian and when do you leverage other languages? – Tobias What Pypi packages does Quantopian leverage in its platform? – Chris How do the financial returns compare between algorithmic vs human trading on the stock market? – Tobias Can you speak about any trends you see in the trading algorithms people are creating for the Quantopian platform? – Chris Picks Tobias Kinetic Sand Trivium Thrift Books Chris Threes Jessica Jones) Serial Scott Dota 2 Philosophical Investigations Logicomix Infinite Jest Keep In Touch Twitter Email GitHub Links QGrid SlickGrid Jupyter Hub Light Table CodeMirror Cython PyData NYC Talk by Scott Blaze Dask Theano TensorFlow Zipline Pyfolio PGContents SQLAlchemy Gevent quantopian.com/lectures The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
1/3/20161 hour, 27 minutes, 53 seconds
Episode Artwork

The PEP Talk

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary The Python language is built by and for its community. In order to add a new feature, change the specification, or create a new policy the first step is to submit a proposal for consideration. Those proposals are called PEPs, or Python Enhancement Proposals. In this episode we had the great pleasure of speaking with three of the people who act as stewards for this process to learn more about how it got started, how it works, and what impacts it has had. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com This episode is sponsored by Zato – Microservices, ESB, SOA, REST, API, and Cloud Integrations in Python. Visitzato.io to learn more about how to integrate smarter in the modern world. I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Searching for Pythonistas with Disabilities We are recording today on December 7th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing some of the PEP editors Interview with PEP editors Introductions How did you get introduced to Python? – Chris For anyone who isn’t familiar with them, can you explain what a PEP is and how they influence the Python language? – Tobias What are the requirements for a PEP to be considered for approval and what does the overall process look like to get it finalized? – Tobias How has the PEP process evolved to meet challenges posed by changes in the Python community? – Chris How many reviewers are there and how did each of you end up in that role? Is there a set number of editors that must be maintained and if so how did you arrive at that number? – Tobias What mistakes have other communities made when creating similar processes, and how has PEP learned from those mistakes? – Chris There are different categories for PEPs. Can you describe what those are and how you arrived at that ontology? – Tobias Is there any significance to the numbering system used for identifying different PEPs? – Tobias How does the PEP process maintain its sense of humor (e.g. PEP 20) while being sure to be taken seriously where it really counts? – Chris Along the lines of humorous PEPs, can you share the story of PEP 401? – Tobias How does the PEP process strive to prevent an undesirable level of control by any one company or other special interest group? – Chris How much control does Guido have over the PEP process? Has a PEP ever directly countered Guido’s wishes? How did it turn out? – Chris What is your favorite PEP and why? – Tobias Barry: PEP 20 Chris: PEP 479 David: PEP 20 What, in your opinion, has been the most important or far-reaching PEP, whether it was approved or not? – Tobias David: PEP 20 Chris: PEP 466 Barry: PEP 8 What was the strangest / most extreme PEP proposal you’ve ever seen? – Chris Chris: PEP 501 Barry: PEP 507 David: PEP 666 Picks Tobias Wagtail CMS Inside Out Spark Podcast Hymn for Atheists Chris Trumbo Kivy Crash Course Jihadology Podcast Barry Tox Nose2 Jessica Jones The Joy of Science Chris The Git Manpage Generator Daily MTG David Tim’s Vermeer Ready Player One The Aristocrats Scientific Songs of Praise Hollywood Babble On Keep In Touch Barry Blog Chris Blog GitHub David Website Blog Links Monty Python – All the Words Monty Python – On YouTube PEP 404 PEP 666 Raymond Hettinger PyCon 2015 PEP8 talk Python Dev Mailing List Python Ideas Mailing List Python Bug Mailing List The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/27/20151 hour, 45 minutes, 41 seconds
Episode Artwork

Eric Holscher on Documentation and Read The Docs

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary The first place we all go for learning about new libraries is the documentation. Lack of effective documentation can limit the adoption of an otherwise excellent project. In this episode we spoke with Eric Holscher, co-creator of Read The Docs, about why documentation is important and how we can all work to make it better. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on November 30th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Eric Holscher about Documentation Use the promo code podcastinit10 to get a $10 credit when you sign up! On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Eric Holscher Introductions How did you get introduced to Python? – Chris You are one of the people behind the Read The Docs project. What was your inspiration for creating that platform and why is documentation so important in software? – Tobias What makes Read The Docs different from other static sources for documentation? – Chris The Python community seems to have a stronger focus on well-documented projects than some other languages. Do you have any theories as to why that is the case? – Tobias Can you outline the landscape of projects that leverage the documentation capabilities that are built in to the Python language? – Tobias Can you estimate the overall user base for Read The Docs? – Chris Do you have any advice around methods or approaches that can help developers create and maintain effective documentation? – Tobias Can you list some projects that you have found to provide the best documentation and what was remarkable about them? – Tobias Newcomers to open source are often encouraged to submit improvements to a projects documentation as a way to get started and become involved with the community. Do you have any general advice on how to find and understand undocumented features? – Tobias Do you have any statistics on the languages represented among the projects that host their documentation with you? – Tobias What are some of the challenges you’ve faced and overcome in maintaining such a large repository of documentation from so many projects? – Chris How can our listeners contribute to the project? – Chris Picks Tobias The Man from Uncle Minute Physics Chris SigAvdi Black Flags: The Rise of ISIS Veritassium Eric Khao Soi Climate Change Gardening & healthy eating – Classic Keep In Touch Twitter @ericholscher @readthedocs @writethedocs Links Stripe docs Django Girls Tutorial Write The Docs Write The Docs Meetup Talk Write The Docs Slack Channel The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/20/20151 hour, 5 minutes, 33 seconds
Episode Artwork

Sylvain Thénault on ASTroid

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary The Python AST (Abstract Syntax Tree) is a powerful abstraction that allows for a number of innovative projects. ASTroid is a library that provides additional convenience methods to simplify working with the AST. In this episode we spoke with Sylvain Thénault from Logilab about his work on ASTroid and how it is used to power the popular PyLint static analysis tool. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on November 23rd, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Sylvain Thénault about ASTroid On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Use the promo code podcastinit10 to get a $10 credit when you sign up! Interview with Sylvain Thénault Introductions How did you get introduced to Python? – Chris Can you explain what an Abstract Syntax Tree is and why it is a useful language feature? – Tobias What was your inspiration for creating ASTroid? – Chris What features does ASTroid offer over Python’s standard AST package, and what makes those features important? – Chris I know that the ASTroid package is used in Pylint which is also maintained by Logilab. How does the AST facilitate static analysis of Python projects and are there cases where you have to fall back to text parsing? – Tobias Beyond static analysis, what are some of the other possible uses for the Python AST? – Tobias The documentation for the AST package in Python mentions that the specific syntax objects in the tree are subject to change between releases. Does the ASTroid package provide any abstractions to maintain a consistent API between versions or does it just provide a pass-through? – Tobias Have you encountered any challenges in testing ASTroid given that it operates at such a low level in the language? – Chris Do you have trouble attracting contributors given the great understanding of Python’s inner working required? – Chris Does the implementation or representation of the AST differ between different distributions of Python such as CPython, PyPy and Jython? – Tobias What are some of the most interesting applications ASTroid has been used in? – Chris Picks Tobias Pre-Commit Existential Comics htmlPy Chris Pretty Things – Fluffy White Rabbits Fallout 4 Sylvain PyReverse CubicWeb Keep In Touch Code Quality Mailing List PyLint Dev Mailing List Twitter @sythenault @logilab Logilab Links Visitor pattern Pylint The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/12/201547 minutes, 28 seconds
Episode Artwork

Stuart Mumford on SunPy

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary What is Solar Physics? How does it differ from AstroPhysics? What does this all have to do with Python? In this episode we answer all of those questions when we interview Stuart Mumford about his work on SunPy. So put on your sunglasses and learn about how to use Python to decipher the secrets of our closest star. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on November 17th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Stuart Mumford about SunPy Use the promo code podcastinit10 to get a $10 credit when you sign up! On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Stuart Mumford Introductions How did you get introduced to Python? – Chris Can you explain what the research and applications of solar physics are and how SunPy facilitates those activities? – Tobias What was your inspiration for the SunPy project and what are you using it for in your research? – Tobias Can you tell us what SunPy’s map and light curve classes are and how they might be used? – Chris Are there any considerations that you need to be aware of when writing software libraries for practitioners of the hard sciences that would be different if the target audience were software engineers? – Tobias Can SunPy consume data directly from telescopes and other observational apparatus? – Chris I noticed on the project site that SunPy leverages AstroPy internally. Can you describe the relationship between the two projects and why someone might want to use SunPy in place of or in addition to AstroPy? – Tobias Looking at the documentation I got the impression that there is a fair amount of visual representation of data for analysis. Can you describe some of the challenges that has posed? Is there integrated support for project Jupyter and are there other graphical environments that SunPy supports? – Tobias What are some of the most interesting applications that SunPy has been used for? – Chris Picks Tobias Elm Avro Common Sense Media Chris Massdrop 21st Amendment Fireside Chat Extra Creditz Stuart Live ISS Stream with space-to-ground radio Live ISS HD video stream 24/7 yt Calf Studio – Live Audio Processing Keep In Touch Twitter(@sunpyproject) SunPy.org GitHub IRC The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
12/4/201540 minutes, 38 seconds
Episode Artwork

Maneesha Sane on Software and Data Carpentry

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary The Software and Data Carpentry organizations have a mission of making it easier for scientists and data analysts in academia to replicate and review each others work. In order to achieve this goal they conduct training and workshops that teach modern best practices in software and data engineering, including version control and proper data management. In this episode we had the opportunity to speak with Maneesha Sane, the program coordinator for both organizations, so that we could learn more about how these projects are related and how they approach their mission. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com This episode is sponsored by Zato – Microservices, ESB, SOA, REST, API, and Cloud Integrations in Python. Visit zato.io to learn more about how to integrate smarter in the modern world. I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on November 10th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Maneesha Sane about Software Carpentry and Data Carpentry Interview with Maneesha Sane Introductions How did you get introduced to Python? Can you explain what the Software and Data Carpentry organizations are and what their respective goals are? What is the history of these organizations and how are they related? What does a typical Software Carpentry or Data Carpentry workshop look like? What is the background of your instructors? Can you explain why Python was chosen as the language for your workshops and why it is such a good language to use for teaching proper software engineering practices to scientists? In what ways do the lessons taught by both groups differ and what parts are common between the two organizations? What are some of the most important tools and lessons that you teach to scientists in academia? Do you tend to focus mostly on procedural development or do you also teach object oriented programming in Software Carpentry? What is the target audience for Data Carpentry and what are some of the most important lessons and tools taught to them? Do you teach any particular method of pre-coding design like flowcharting, pseudocode, or top down decomposition in software carpentry? What scientific domains are most commonly represented among your workshop participants for Software Carpentry? What are some specific things the Python community and the Python core team could do to make it easier to adopt for your students? What are the most common concepts students have trouble with in software & data carpentry? How can our audience help support the goals of these organizations? Picks Tobias Vivaldi Browser vyte.in Pocket Casts Chris Chiptunes = Win ESM – Electronic Study Music Supergalactic Expansive Maneesha QPython New Boston Lunar Baboon Keep In Touch Twitter @swcarpentry @datacarpentry @maneeshasane Blog Software Carpentry Data Carpentry Links NumFocus Software Carpentry GitHub – Training Courses Instructor Training Discussion Mailing List The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/25/201544 minutes, 28 seconds
Episode Artwork

Erik Tollerud on AstroPy

Visit our site to listen to past episodes, support the show, and subscribe to our mailing list. Summary Erik Tollerud is an astronomer with a background in software engineering. He leverages these backgrounds to help build and maintain the AstroPy framework and its associated modules. AstroPy is a set of Python libraries that provide useful mechanisms for astronomers and astrophysicists to perform analyses on the data that they receive from observational equipment such as the mountain observatory that Erik was preparing to visit when we talked to him about his work. If you like Python and space then you should definitely give this episode a listen! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on November 2nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Erik Tollerud about AstroPy On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Use the promo code podcastinit10 to get a $10 credit when you sign up! Interview with Erik Tollerud Introductions How did you get introduced to Python? What was the inspiration to create AstroPy and what kinds of astronomical research can it be used for? Can you tell us what AstroPy’s modeling functions are and give us examples of where they might be used? Are there any considerations that you need to be aware of when writing software libraries for practitioners of the hard sciences that would be different if the target audience were software engineers? What are some of the most interesting applications that AstroPy has been used for? Are there open data sets that are available for people outside of academia to do analysis of astronomical data using AstroPy? Have there been any useful discoveries made in this way? Could you please tell us about AstroPy’s Virtual Observatory capabilities? What are some interesting use cases for AstroPy’s Cosmological calculations? Are there other libraries available that provide similar capabilities, perhaps in other languages? What makes AstroPy unique among them? Can AstroPy consume data directly from telescopes and other observational apparatus? The amount of data generated from observing astronomical phenomena must be immense. What are some of the tools used to manage that data and how does AstroPy interface with them? How might AstroPy be used to prove or disprove the cold dark matter hypothesis? What are some of the architectural choices that have been made to allow for the AstroPy library to serve as the core for a number of other add-ons? Does AstroPy provide a common data format to allow for easy interoperability between the various addons? I noticed that AstroPy adheres to the PSF code of conduct, as well as having adopted an enhancement proposal process modelled after PEPs. Can you explain why that is important and what kind of an impact it has had on the community around AstroPy? Picks Tobias Citizen Ex piprot Open Culture Chris The Allusionist Criminal Hardcore History Erik HubbleSite Great Courses – History of the Ancient World Keep In Touch astropy.org AstroPy User Mailing List AstroPy Dev Mailing List Links tutorials.astropy.org AstroQuery Cython The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/20/201549 minutes, 18 seconds
Episode Artwork

Dariusz Suchojad on Zato

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Service integration platforms have traditionally been the realm of Java projects. Zato is a project that shows Python is a great choice for systems integration due to its flexibility and wealth of useful libraries. In this episode we had the opportunity to speak with Dariusz Suchojad, the creator of Zato about why he decided to make it and what makes it interesting. Listen to the episode and then take it for a spin. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email, leave us a message on Google+, or leave a comment on our show notes I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is also sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project. We are recording today on October 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Dariusz Suchojad about Zato Interview with Dariusz Suchojad Introductions How did you get introduced to Python? Can you explain what Zato is and what motivated you to create it? What makes Zato stand out from other service bus implementations? What are some signs that someone should consider incorporating Zato into their software architecture? Does zato perform well in restricted resource environments like ec2? What performance bottlenecks are common when using zato? It seems that most other ESB projects are written in Java. What advantages does Python have over Java for this kind of project and in what ways is it inferior? The architectural nature of ESBs are such that they form the central backbone of a software system. How have you been able to ensure an appropriate level of reliability and stability in Zato while still delivering new features and improvements? What are the scalability and high availability characteristics of Zato? Does zato run well using pypy? For anyone wanting to use Zato, what are the infrastructure requirements for deployment? What are some of the security ramifications you took into account in zato’s design? What are some of the most novel uses for Zato that you have seen or heard about? Picks Tobias SPY Eric Royer’s One Man Band pip-tools Chris Rational Security New Rustacean Podcast Johan Goes to Mexico Dariusz Sublime Text Editor Keep In Touch zato.io Twiter Github The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/13/201542 minutes, 26 seconds
Episode Artwork

Tom Rothamel on Ren’Py

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Tom Rothamel is an embedded systems engineer who spends his free time working on Ren’Py, a visual novel engine written in Python. Ren’Py allows you to write interactive fiction experiences and deploy them across desktop and mobile platforms. By creating a purpose-built DSL for describing the interactions, users of Ren’Py can focus on crafting polished experiences without fighting through the vagaries of programming languages, while still providing access to the internals when necessary. Listen to our interview with Tom to learn more about this long-running project and what makes it so interesting. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is also sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project. We are recording today on October 19th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Tom Rothamel about RenPy On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Tom Rothamel Introductions How did you get introduced to Python? What is Ren’Py and what was your inspiration for starting it? I noticed that Ren’Py supports a number of different styles of gameplay. Can you explain the differences between interactive fiction, kinetic fiction and RPGs? I notice that RenPy has clearly been around a while (Some of the games for OSX are PowerPC binaries!) – what problems have you encountered maintaining such a long lived project and keeping it current? What libraries does Ren’Py leverage and how did you go about selecting them to allow for cross-platform development and deployment? What underlying Python graphics toolkit does RenPy use for display, and how did that choice affect RenPy’s design? While reading through the quickstart in the documentation I noticed that there is a special syntax that you have created for defining the dialog and narratives. Can you explain how you created the DSL for building the storylines? It feels to me like RenPy was heavily inspired by the JRPG genre and as such there are games where sex plays a prominent role(I noticed a mention of Hentai in the docs), which is less readily accepted in the west. Have you ever encountered any pushback on this issue? I noticed that some of the games that were created with Ren’Py are available on the Steam platform. What elements of the Ren’Py project lend themselves to producing games with enough polish to be published on such a mainstream platform? If you were just starting out today implementing RenPy, would you still use Python? Why? Picks Tobias DJ Logic git-extras Radon Chris Narcos The Rust Programming Language Kent Falls Brewing Shower Beer Tom Cython NPR One The Seinfeld Method Keep In Touch renpy.org Twitter Links Long Live The Queen Moonlight Walks The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
11/6/201558 minutes, 52 seconds
Episode Artwork

Anthony Scopatz on Xonsh

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Anthony Scopatz is the creator of the Python shell Xonsh in addition to his work as a professor of nuclear physics. In this episode we talked to him about why he created Xonsh, how it works, and what his goals are for the project. It is definitely worth trying out Xonsh as it greatly simplifies the day-to-day use of your terminal environment by adding easily accessible python interoperability. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode is also sponsoring us this week. Check them out at linode.com/podcastinit and get a $10 credit to try out their fast and reliable Linux virtual servers for your next project We are recording today on October 12th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Anthony Scopatz about Xonsh On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Use the promo code podcastinit10 to get a $10 credit when you sign up! Interview with Anthony Scopatz Introductions How did you get introduced to Python? Can you explain what Xonsh is and your motivation for creating it? For people transitioning to Xonsh from a shell like Bash or Zsh, what are some of the biggest differences that they will see? What are some really powerful one-liners that showcase Xonsh’s capabilities? What is it about Python that lends itself to this kind of a project and what are your thoughts on building something like Xonsh in another language such as Ruby or Node.js? If you had to single out one killer feature that Xonsh brings to the table, what would that be? Is it possible to specify which shell, such as bash or zsh, gets used in subprocess mode? I started using the Xonsh shell as my daily terminal recently and have been enjoying it so far. One of the things that I have been wondering is how to hook into the completion system to provide eldoc style completion from parsing the output of help flags. Do you have any advice on where to start? Perhaps using the docopt library to handle parsing of help output and generate completions from that? What are your thoughts on adding a section to the project documentation for people to list various extension modules that people can take advantage of? Or perhaps creating something along the lines of Oh my Xonsh? How do bash function definitions interoperate with the Xonsh environment and functions defined in Python? It seems as though there could be some potential path or compatibility issues when moving between virtual environments and having access to extension modules loaded into Xonsh. Can you shed some light on that? Do you have any suggestions for people who may not have the privileges to set their own login shell but who want to try Xonsh? What are some of the most interesting uses of Xonsh that you have seen? What does the future hold for the Xonsh project and how can our audience help? Picks Tobias Mortdecai Alembic SQLAlchemy population.io Chris Consider Phlebas The Martian – Movie Fantastic Planet Anthony The Worst Journey In The World Keep In Touch Mailing List xonsh.org #xonsh on OFTC GitHub Twitter: @scopatz Links Effective Computation in Physics Python Prompt Toolkit The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/31/201557 minutes, 53 seconds
Episode Artwork

Kay Hayen on Nuitka

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Kay Hayen is a systems engineer from Germany who has dedicated his spare time to the creation of Nuitka, a library that will compile your Python project to C++. In this episode we talked to Kay about what inspired him to create the project, how it operates, and some of the challenges he has faced. It is a very interesting project and it has the potential to let you run your Python code in a whole new way! Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email, leave us a message on Google+, or leave a comment on our show notes I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. Linode has also sponsored this episode and you can get a $10 credit using the link linode.com/podcastinit to try out their fast and reliable linux virtual servers. We are recording today on October 6th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Kay Hayen about the Nuitka project On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Use the promo code podcastinit10 to get a $10 credit when you sign up! Interview with Kay Hayen Introductions German, family with 2 kids, one cat Working in ATM (Air Traffic Management), tracker product Systems Engineer Nuitka as a hobbyist How did you get introduced to Python? Once was Perl “Guru”. Python was getting a lot of positive press Team decision to want to use readable stuff CPAN was still more complete, but Python was making inroads Can you describe how to pronounce the name of your project? Wife Anna, Russian, Annuitka -> Nuitka Can you briefly describe what Nuitka is and what your motivation was for creating it? I was thinking a fully integrated and compatible compiler should be possible. Why is nobody doing it? I can do it. I am doing it. Take Python beyond current use cases. Everbody currently using Python needs no compiler, or wouldn’t use it Less need for time consuming C++/Python hybrid coding Simple code should compile to fast code by default Complex code should still work On the project web site it says that Nuitka does a lot of clever things after being fed a Python project. Can you provide some details as to what some of that cleverness is? Re-formulations of Python into simpler Python No “class” No “assert” No complex assignments SSA tracing Attaching uses to assignments properly Despite try/finally Loops Avoids checks for known defined/undefined values Function inlining (coming) Constant propagation Closure variable removal What is libpython and how is it used in both Nuitka and CPython? Core of the Python interpreter With Python VM and C interface Nuitka can fall back to it Avoiding it as often as we can, key to performance Is there any way to provide hints to Nuitka to generate more optimized output? Nuitka is yet to make a difference based on type information Not yet there, but coming soonish. SSA was pre-requisite PEP 484 will be unreliable type information, mostly useless I want type hints that are checked at Python run time What are some of the biggest challenges in generating statically compiled code from a language as dynamic as Python? Python is compiled to .pyc files Compatible Frame stack, cached Exception handling of Python is terrible CPython type system designed to be extensible Extension types for functions, bound/unbound methods, generators, etc. Many details to get right Are there any particular Python constructs that Nuitka is unable to translate and as a corollary to that is the compilation step lossy at all or do you have some way of ensuring that the functionality of the program remains unaltered? Big point, no price attached Except for not having bytecode, there is nothing missing No pdb support Edit / run cycle is not accelerated That said: PyQt (integrated), PySide (available, unmerged), wxPython (available, maybe merged) needed patches to take compiled function/method objects for function objects too Are there any particular types of programs that benefit the most from Nuitka’s compilation? Bindings with ctypes of cffi compile into zero overhead C calls (planned) Scientific programs are the most obvious goal (float type inference) CPU bound or low latency programs Is it possible to feed an entire project with multiple modules into Nuitka all at once or is the standard use to perform compilation one source file or submodule at a time? You give it the main program and it recurses imports according to “PYTHONPATH” nuitka –recurse-all “/usr/bin/hg” supposed to work Might have to give directories with program plug-ins I’m curious about what led you to choose compilation to C++ for Nuitka rather than making Nuitka an LLVM back end like Numba? When I started Nuitka, I was using C++0x and variadic templates Wanted to make a proof of concept that compatibility and integration is feasible From there, code generation got less high level to goto ridden C How does Nuitka compare to projects like Numba or Cython? Graceful degradation goal Complete compatibility with Python whole stack How does Nuitka compare to PyPy? – Kay PyPy is the coolest project ever Pure Python goals shared How can users evaluate the performance of Nuitka – Kay They currently cannot Developing a tool to compare CPython and Nuitka runs Based on vmprof from PyPy people Identify parts of program where Nuitka is slower Links to source code To be done, help needed. Nuitka is only starting to get to serious performance Compatibility is such a high bar to take C++ to C took a year (avoiding C++ exceptions) SSA literally took forever Picks Tobias Forbidden Island Forbidden Desert Otto Project Chris Grimm Super Symmetry Are You Listening To?: Boston Ripple Kay Learn being skeptic, Atheist Experience MicroPython Keep In Touch Nuitka Homepage Google+ Email The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/24/20151 hour, 34 minutes, 35 seconds
Episode Artwork

Trent Nelson on PyParallel

Visit our site to listen to past episodes, support the show, and sign up for our mailing list. Summary Trent Nelson is a software engineer working with Continuum Analytics and a core contributor to CPython. He started experimenting with a way to sidestep the restrictions of the Global Interpreter Lock without discarding its benefits and that has become the PyParallel project. We had the privilege of discussing the details around this innovative experiment with Trent and learning more about the challenges he has experienced, what motivated him to start the project, and what it can offer to the community. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. We are recording today on September 7th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Trent Nelson about PyParallel On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Trent Nelson Introductions How did you get introduced to Python? For our listeners who may not be aware, can you give us an overview of what Pyparallel is and what makes it different from other Python implementations? How did PyParallel come about? What are some of the biggest technical hurdles that you have been faced with during your work on PyParallel? I understand that PyParallel currently only works on Windows. What was the motivation for that and what would be required for enabling PyParallel to run on a Linux or BSD style operating system? How does Pyparallel get around the limitations of the global interpreter lock without removing it? Is there any special syntax required to take advantage of the parallelism offered by PyParallel? How does it interact with the threading module in the standard library? In the abstract for the Pyparallel paper, you cite a simple rule – “Don’t persist parallel objects” – how easy is this to do with currently available concurrency paradigms and APIs, and would it make sense to add such support? For instance, how would one be sure to follow this rule when using Twisted or asyncio? Are there any operations that are not supported in parallel threads? What drove the decision to fork Python 3.3 as opposed to the 2.X series? In the documentation you mention that the long term goal for PyParallel is to merge it back into Python mainline, possibly within 5 years. Has anything changed with that goal or timeline? What milestones do you need to hit before that becomes a realistic possibility? Can you compare PyParallel to PyPy-STM and Go with Goroutines in terms of performance and user implementation? What are some particular problem areas that you are looking for help with? Assuming that it does get merged in as Python 4, how do you think that would affect the features and experiments that went into Python 5? To be continued… Picks Tobias Testinfra Software Engineering Daily Chris Hello Webapp – Intermediate Concepts Grimm Rainbow Dome PBS Idea Channel Trent Show Stopper by G. Pascal Zachary Keep In Touch GitHub Twitter @PyParallel @TrentNelson
10/14/20151 hour, 12 minutes, 43 seconds
Episode Artwork

Dag Brattli on RxPy

Visit our site to listen to past episodes, support the show, and sign up for our newsletter! Summary Dag Brattli is an engineer with Microsoft and in his spare time he created the ported the Reactive Xtensions framework to Python in the form of the RxPy library. In this episode we had the opportunity to speak with Dag and learn more about what ReactiveX is, why it is useful and how you can use it in your Python programs. It is definitely a very powerful programming patern when manipulating data streams which is becoming increasingly common in modern software architectures. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.__init__. Use the link hired.com/podcastinit to double your signing bonus. We are recording today on October 2nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Dag Brattli about the RxPy project On Hired software engineers & designers can get 5+ interview requests in a week and each offer has salary and equity upfront. With full time and contract opportunities available, users can view the offers and accept or reject them before talking to any company. Work with over 2,500 companies from startups to large public companies hailing from 12 major tech hubs in North America and Europe. Hired is totally free for users and If you get a job you’ll get a $2,000 “thank you” bonus. If you use our special link to signup, then that bonus will double to $4,000 when you accept a job. If you’re not looking for a job but know someone who is, you can refer them to Hired and get a $1,337 bonus when they accept a job. Interview with Dag Brattli Introductions How did you get introduced to Python? For our listeners who haven’t heard of it before, can you describe what RxPy is and why someone might want to use it? What problem domains are best suited for using the Reactive X approach? What is involved in integrating RxPy into an existing code base? When should we use RxPy over asyncio or asynchronous workers like Celery? What resources or tutorials do you recommend people use when trying to understand how and when to use the Reactive X tools? What in particular about Python lends itself to the ReactiveX pattern, and what features of the language does RxPy leverage in particular in its implementation? In what ways does the Python implementation of the Reactive X framework differ from those of other languages? The project description references the use of LINQ for querying the various data streams that RxPy enables consumption of. I had always heard of LINQ in the context of traditional database queries. What makes LINQ a good choice for stream processing? I mostly hear about ReactiveX in terms of UI design, but the project description seemed to indicate it was much more generally useful. What are some of the less common and more interesting problems that RxPy lends itself to solving? Picks Tobias icdiff Timeline card game Griatch’s Digital Art Chris elpy sshuttle Chimay Grand Reserve Dag ASTor How To Bake Pi – A book about the mathematics of mathematics Keep In Touch GitHub Links Main ReactiveX Site rxjava site for documentation rxmarbles MSDN Channel 9 Function Overloading in Python 3 The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
10/9/201533 minutes, 1 second
Episode Artwork

uWSGI Core Developers

Visit our site to listen to past episodes, join the mailing list and support the show. Summary uWSGI is one of the most versatile application servers available. It was originally written for running Python applications and has since gained functionality to support Perl, Ruby, PHP, and more in addition to the incredible feature set. In this episode Tobias got to interview three of the core developers of this project and find out more about how the different pieces of it fit together and what its future holds. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at I would also like to thank Hired, a job marketplace for developers, for sponsoring this episode of Podcast.init. Sign up at hired.com/podcastinit to double your signing bonus. We are recording today on September 22nd, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing the core developers of uWSGI (Adriano Di Luzio, Riccardo Magliocchetti, and Roberto De Ioris) Interview with uWSGI core developers Introductions How did you get introduced to Python? For anyone who hasn’t come across the project before, can you explain what uWSGI is and what makes it unique? How did you architect uWSGI in order to allow for supporting so many different languages? The feature set of uWSGI is truly incredible. Does this make the code complicated to understand and modify? Can you describe some of your favorite features in uWSGI? What have you found to be the most overlooked or underutilized features of uWSGI? Can you briefly describe how Emperor mode works and how that can be used to handle routing between microservices? Could you discuss some of the particular features UWSGI provides around load balancing? Is connection draining supported? Can nodes be dynamically added and removed from the pool or does the config need to be rewritten and UWSGI restarted? The configuration syntax looks like it provides a very rich set of capabilities. Is it based on a general purpose programming language or is it a DSL? What might be some common use cases for using UWSGI in tandem with another web server like NGINX? I have read that WSGI does not get along with http/2. Are there any plans to look towards supporting that protocol in some way? What new capabilities can we look forward to in the future of uWSGI? Picks Tobias Manjaro Linux Kontact Blackhat Riccardo Building Microservices book Django-Denis Adriano Paxos Algorithm Roberto The Brink Keep In Touch Mailing List #uWSGI on IRC GitHub latest docs Roberto Twitter GitHub Adriano GitHub Twitter Riccardo GitHub Twitter
10/3/201534 minutes, 59 seconds
Episode Artwork

Griatch on Evennia (Making MUDs with Python)

Visit our site to listen to past episodes, sign up for our mailing list and support the show. Summary Griatch is an incredibly talented digital artist, professional astronomer and the maintainer of the Evennia project for creating MUDs in Python. We got the opportunity to speak with him about what MUDs are, why they’re interesting and how Evennia simplifies the process of creating and extending them. If you’re interested in building your own virtual worlds, this episode is a great place to start. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at We are recording today on September 15th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Griatch about the Evennia project Interview with Griatch Introductions How did you get introduced to Python? Can you explain what MUDs are and what that has to do with Evennia? What is it about MUDs that keeps them interesting long after the technical restrictions that led to their creation are no longer present, especially in light of 3D multiplayer games like WoW and EVE Online? Can you give us a rundown of the various parts of Evennia (MUD engine, web interface, etc.) and how they fit together? How does Evennia handle the fact that a MUD world is comprised of many hundreds of objects containing various properties, maintaining consistent, persistent state as players interact with them? What concurrency tools or paradigms does Evennia use? During the height of MUDs popularity, one highly sought after feature was the idea of being able to have players travel from one MUD instance to another, would it be possible to implement this in Evennia? Has the Evennia core team given any thought to adding features to support a richer client interface? Graphical maps or the like? How difficult would it be to use Evennia to interface with something like Slack or Hipchat for a company-wide MUD? Have you ever heard of someone doing something like that? Are there any fully fledged running MUDs built with Evennia out in the wild? Picks Tobias libraries.io jsonapi.org Marshmallow Marshalling Library Chris The End of All Things David’s Tea Steeper Hello Webapp – Intermediate Concepts Griatch F2Py Designing Virtual Worlds Imaginary Realities Optional Realities Keep In Touch Evennia Website Evennia Github Freenode IRC Channel #Evennia Links roll20
9/29/20151 hour, 14 minutes, 3 seconds
Episode Artwork

Hylang Core Developers

Visit our site to listen to past episodes, support the show, and sign up for our mailing list Summary We got the chance to talk to some of the core developers of Hylang, which is a Lisp dialect that runs on the Python VM! We talked about how it got started, how it works and why you should try it. Of particular interest is our discussion about using Hylang to backport language features, or create entirely new ones due to the power of Lisp and the Python AST (Abstract Syntax Tree). If you need to level up your Lisp knowledge, they gave us a great list of references to help out. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at We are recording today on August 27, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Paul Tagliamonte, Tuukka Turto, and Morten Linderud Interview with Hylang Developers Introductions How did you get introduced to Python? Before we get too far along can you explain what Hy is? What inspired you to create Hy? What do you recommend as reference material for Python developers to gain familiarity with idiomatic Lisp? What are some of the problem domains where implementation becomes easier or more elegant as a result of Hy’s LISP syntax? Given the ability to create powerful macros in Lisp, could Hy be used as a way of prototyping or backporting new language features in Python? What are some of the most challenging and interesting problems you encountered bringing an alternate syntax to the Python runtime? While playing around with the Hy REPL I noticed that it does visual matching of parentheses when closing an expression. What other niceties have been included in the REPL? What are your thoughts on adding autocompletion to the REPL as a way of encouraging discovery and exploration of the Hy language? Which LISP variant is Hy most similar to, and why? How does garbage collection work in Hy, and why? How hard would it be to port existing LISP packages to Hy like MACSYMA or CLOS? What kind of overhead in terms of runtime performance and memory usage does Hy impose? Has this been a challenge in Hy’s development? What are some of the most innovative uses for Hy that you have seen or created? What does the future hold for Hy? I noticed that there are a large number of core contributors to Hylang and I’m curious how you determine what features to work on? Picks Tobias Displacy The Golem and the Jinni by Helene Wecker – Read it on Scribd Safari Online Chris Dash and Zeal Reasonably sound (podcast) PBS Idea Channel (Youtube) Paul Reproducible Build Project Model View Culture Tuukka SICP Lecture F# ReactiveX 1 Game Per Month (#!GAM) Morten Hackers Mr. Robot Keep In Touch Paul Twitter paultag on IRC Website Tuukka Twitter Morten Twitter Links Core features of Hylang Adderall – minicanron in hylang Books Joy of Clojure Let over Lambda Land of Lisp Clojure programming Herculeum – Tukka’s DSL for roguelikes Pixie – Lisp in RPython Dogelang BPython Github trending repos with Hylang Pineal hydiomatic – Algernon
9/19/201555 minutes, 48 seconds
Episode Artwork

Bryan Van de Ven on Bokeh

Visit our site to listen to past episodes, subscribe to our mailing list, and donate to the show. Summary Bryan Van de Ven is the project maintainer for Bokeh, a plotting and visualization toolkit that allows Python developers to easily create attractive interactive visualizations for the web. We talked about the project’s history, some interesting use cases for it, and what its near future looks like. Bryan also told us about how Bokeh compares to some of the other visualization libraries in both Python and Javascript, as well as how to use Bokeh from other languages such as Scala and Lua. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at There is a new Python podcast that just started up recently! It’s called the Python Test Podcast and covers the world of testing in Python, so go ahead and give it a listen. You can find it at We are recording today on Aug 18th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Bryan Van de Ven about the Bokeh project Interview with Bryan Van de Ven Introductions How did you get introduced to Python? For our listeners who aren’t familiar with what Bokeh is, can you describe it? What inspired you to create Bokeh? Bokeh has integrations with some of the other Python graphing libraries such as matplotlib and seaborn. I can see how this would be useful to easily update existing code to publish visualizations on the web. Are there other use cases for these integrations? I noticed that Bokeh has bindings for some languages other than Python. R and Julia are obvious candidates due to their strong focus on analytics work, I’m curious what made you choose Scala and Lua as languages worth targeting? Do you lose any capabilities using the javascript library by itself? Other than the sample data sets that come with Bokeh, can you suggest a good publicly available data set with accompanying tutorial for people who want to get started with data visualization using Bokeh? Can you provide some comparisons between D3.js and the Bokeh javascript library in terms of capabilities and performance? The Bokeh project has a server component that allows for streaming data to clients. Can you describe the architecture of that and some example uses for it? Why was the server written as a Flask blueprint as opposed to making it a component of another framework such as Django or Pyramid and how difficult would it be to port the functionality to another system? What’s the most interesting use of Bokeh you’ve seen? Are you aware of any projects in other languages that are comparable to Bokeh? Picks Tobias wappalyzer The Graveyard Book by Neil Gaiman Chris Edward Snowden Meets the IETF Between the World and Me Untapp’d Bryan Audiobooks Scribd – Subscription service for ebooks and audio books with a great selection Try Audible and Get Two Free Audiobooks Cartographies of Time The Post-Modern Jukebox Keep In Touch Twitter Mailing List Bokeh Web Site Links vispy Vincent vega D3.js nbviewer.org bokeh page million song dataset data.gov ggplot / ggvis mathematica
9/8/201557 minutes, 18 seconds
Episode Artwork

Jessica McKellar

Visit our site to listen to past episodes, support the show and sign up for our mailing list. Summary We got the chance to talk to Jessica McKellar about her work in the Python community. She told us about her experience as a director for the PSF, working as the diversity outreach manager for PyCon, and being a champion for improving the on-boarding experience for new users of Python. We also discussed perceptions around the performance of Python and some of the work being done to improve concurrency, as well as her work with OpenHatch. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at We are recording today on Aug, 12 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Jessica McKellar Interview with Jessica McKellar Introductions How did you get introduced to Python? Attended MIT, originally for Chemistry Had friends pursuing CS degrees Toolset and skills seemed worth investingating Led to BA and MS MIT was in transition from LISP to Python Can you describe what your responsibilities are as a director of the PSF? A lot of outreach and investment in the community Do you think the PSF does a good job of making people aware of what it is, what it does for the community, and how they can help? Struggled with this historically but has gotten better in recent years Website re-design has helped A large focus of your work in the community has been around improving the experience of users who are new to Python and programming in general and I noticed that you just received the Frank Willison Memorial Award for your contributions to outreach and education in the Python community. What is your motivation behind this particular focus? Great deal of empathy for newcomers due to personal history Knowing how to program changes how you think about the world Has the situation for newcomers running Windows who wish to try Python gotten any better since your keynote at Kiwi PyCon? Some vaguaries of setup have gotten better with recent versions (e.g. setting path variables) Ruby has in-browser tutorial to get people hooked Do “Batteries Included’ distributions like Anaconda help or is it the same problem of visibility you discussed in your talk? Informatino flow / what are you default options question We could be much more opinionated about this You have presented a number of times about the future of Python and how we can all help to make sure that story is a happy one. How has the material for that talk changed over the past few years? As a largely volunteer community, how to maximize the impact of the bandwidth that we have Focus on the ‘top of the funnel’ to win over new users Python has the steepest positive curve of any language Community should invest in AP high school Python curriculum What do you anticipate will be the talking points for this topic over the next few years? We need to be smart about which areas we invest in to ensure success e.g. mobile, web, desktop. If you could grade the Python community on how well they have listened to and acted on the calls to action in your talks over the past few years, what would you give them? Rallying large groups of volunteers is a hard problem We need to think about commercial partnerships in key areas In your Kiwi PyCon talk you mentioned Kivy as an example of a great way to do mobile software development in Python. It feels to me like the Kivy team are still not getting the community involvement and buy in they should. How can we help make Kivy the mobile app development platform of choice for beginners? This will be a tough battle because Python is not the default platform for mobile compared to Java for Android, Objective C, Swift Users vote with their feet depending on what provides the most value to them Opportunity for a virtuous cycle here Game development as an entree to programming has been a recurring theme on our podcast. Has the Python game dev scene improved at all since 2013? And do you still see the same pitfalls holding people back (like app packaging), or have we moved on to different problems? The problems are largely the same Status quo still feels pretty broken Creative experiments around this definitely make sense for the community KivEnt could be a win here because Kivy apps are free standing binaries and require no dependencies. What do you view as the biggest threats to the popularity of Python currently and what can we do to address them? Other languages gaining popularity where Python has historically been strong (e.g. server-side development) A lot of this may be a perception issue May be largely a marketing problem I understand that you were involved in the formation of the Open Hatch organization. Can you describe what Open Hatch does and how our listeners can get involved? Non-profit dedicated to lowering barriers to entry for open source contribution Host workshops in colleges, underserved communities, etc. Picks Tobias F.lux Lightyear.fm PEP 0401 Chris The Alex Verus Series by Benedict Jacka Rick Dillon’s Org-mode structure manipulation tutorial Dominion Jessica Reply All Podcast RFC 959 – original FTP RFC Go read some RFCs! Think Stats Keep In Touch Google for “Jesstess” Conference Presentations https://www.youtube.com/watch?v=CIRPSbsRw8&utmsource=rss&utmmedium=rss https://www.youtube.com/watch?v=2p-FecWnyQ&utmsource=rss&utmmedium=rss https://www.youtube.com/watch?v=lH9KJBrR1Q&utmsource=rss&utmmedium=rss https://www.youtube.com/watch?v=d1a4Jbjc-vU&utmsource=rss&utmmedium=rss
9/1/201551 minutes, 23 seconds
Episode Artwork

Static Site Generators with Justin Mayer and Roberto Alsina

Visit our site to listen to past episodes, comment on the show or find out more about us. Summary In this episode we had the opportunity to discuss the world of static site generators with Roberto Alsina of the Nikola project and Justin Mayer of the Pelican project. They explained what static site generators are and why you might want to use one. We asked about why you should choose a Python based static site generator, theming and markup support as well as metadata formats and documentation. We also debated what makes Pelican and Nikola so popular compared to other projects. Brief Introduction Welcome to Podcast.__init__ the podcast about Python and the people who make it great Follow us on iTunes, Stitcher or TuneIn Give us feedback on iTunes, Twitter, email or Disqus We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation}. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive. Date of recording – August 08, 2015 Hosts Tobias Macey and Chris Patti Today we are interviewing the core developers of Nikola and Pelican about static site generators Interview Introductions Monitorial.net <- Justin Upriise <- Justin Works for Canonical <- Roberto How did you get introduced to Python? Justin: Needed a way to get order data to payment processor for commerce company Roberto: 1996 got involved with Linux Found XForms Wrote Python bindings For our listeners who might not know, what are static site generators and what are some of the advantages they bring to the table over other similar systems that perform the same function? Roberto Remove all the effort from the computer that serves the website Server runs no code Smaller ssurface area for security purposes Justin Better performance – important for responsiveness and uptime Easier deployment and maintenance Easier versioning and migration Can version both input and output There are a number of static site generators available in virtually every language. Why would a user want to leverage a Python solution vs Ruby, javascript, Go, etc.? ReStructured TeXT is best supported in Python Good language for supporting various markup syntaxes Most static site generators seem to have a primary focus on blogging. What is it about these tools that lend themselves so well to that use case? The author of the tools shape the purpose of the tool Most popular among programmers which is a demographic that is likely to have a blog Workflow is similar to what programmers are used to Still useful for non-chronological pages due to templating system Something that struck me comparing the two systems is that they have largely the same kinds of data going into the metadata block for each post, but it’s expressed in a different / incompatible way in each. Have you ever considered agreeing on a standard and even advertising it as such so all static site generators could make use of it? Challenging because of the idiosyncratic way problems are solved in each system Wouldn’t end up with the same site even if metadata were identical Roberto & Justin are talking, this may happen! The themes in Pelican and Nikola have very different feels and one of the things that initially drew me to Pelican is the larger catalog of themes available. What are some of the challenges involved in creating a theme for a static site generator? Many programmers who write SSGs aren’t amazing at HTML Pelican and Nikola seem to be the most widely used projects for creating static sites using Python. What do you think is the key to that popularity? Frequent updates, good documentation and large community Easy to get up and running Need to be productive inside of 2 minutes Good first impressions are key Importance of extensibility Core modularity and availability of plugins A lot of people have written about the importance (and difficulty) of writing and maintaining good documentation in open source projects. Nikola’s documentation is excellent. How did Nikola manage this in its development process and what can other open source projects learn from this? No secrets – just do it and keep it updated. Need to look at the tool as if using it for the first time What are some specific examples of unique and interesting uses your site generators have been put to? Justin: kernel.org, Debian, Chicago Linux Users, TransFX (translation house) all use Pelican Embedding Jupyter notebooks and MathML rendering in posts Site search plugin Nikola: Big adoption in the sciences (Jupyter notebook embedding supported in core) Output is forever Plugin to trigger internet archive to reindex site Nikola’s flexible deployment architecture (e.g. the use of doit tasks) seems to lend itself to some interesting use cases. What was the inspiration for this? Build was taking 1 1/2 hours, doit allowed for incremental generation Doit is a generic task system. Nikola has no “main” it’s a collection of doit tasks. Is there any specific help that you would like to ask of the audience? Contribute themes Help with reviewing issues and pull requests Picks Tobias Termux Magic Wormhole Arrow Chris Emacs Lisp Introduction 3D Cellular Automata in Minecraft Prompt 2 Justin Monitorial.net Upriise Ergodox Jarvis Bamboo Sit/Stand Desk Talky.io Fish shell Tacklebox iTerm v3.0 beta Brother Thelonious Belgian Ale Frog’s Leap Winery PyCon Italia and Italy in general Roberto Neal Stephenson Docopt Fried Pickles PyAr Python Argentina User Group PyCon Argentina in Mendosa PyCamp Keep In Touch Justin Personal Pelican Roberto Nikola Forums and mailing list
8/25/20151 hour, 32 minutes, 35 seconds
Episode Artwork

Al Sweigart on Python for Non-Programmers

Visit our site to listen to past episodes, learn more about us, and support the show. Summary We got the opportunity to speak with Al Sweigart about his work on books like ‘Automate The Boring Stuff With Python’ and ‘Invent With Python’. We discussed how Python can be useful to people who don’t work as software engineers, why coding literacy is important for the general populace and how that will affect the ways in which we interact with software. Brief Introduction Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Subscribe on iTunes, Stitcher, TuneIn or RSS Follow us on Twitter or Google+ Give us feedback! Leave a review on iTunes, Tweet to us, send us an email or leave us a message on Google+ I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at We are recording today on July 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Al Sweigart about Python for non-programmers Interview with Al Sweigert Introductions How did you get introduced to Python? Started in PHP/Perl, introduced to Python in 2006 Lack of curly braces took some getting used to Clarity of standard library was refreshing What inspired you to start writing books for non-programmers? Friend who took care of 10 year old interested in programming Lack of coherent introductory material Started writing a tutorial which grew to book length All books published under Creative Commons license You have written a few books about teaching Python to people who have never programmed, can you share your thoughts on the best order in which to introduce the various aspects of programming? Blog post driven development – http://blog.estimote.com/post/119525082855/user-stories-on-steroids-how-estimote-uses-blog?utmsource=rss&utmmedium=rss Where does software testing come in when teaching new coders how to program? Use the logger, debugger, and assertions effectively In invent with Python you use games as the vehicle to discuss the principles involved with writing code. What is it about computer games that makes them so popular as a means to introduce programming to newcomers? Something everyone is familiar with Easy to make a simple game to get started Good way to get creative with programming For automate the boring stuff with Python you focused on explaining how programming can be useful even if it is not someone’s occupation. How did you determine which kinds of activities to focus on for the book? Got the idea at a meetup talking to someone who works in an office doing repetitive tasks A lot of office jobs that involve tedious computer work which could be automated What are your thoughts on the need for software literacy among the general population? How much programming knowledge do you think is sufficient for a member of our modern society? You also wrote about using Python to decrypt simple ciphers as a means to learn about code. What was the inspiration for this approach to software education? One of the projects in invent with Python was a simple cypher, inspired further interest in the subject In episode 7 with Jacob Kaplan-Moss we talked about how we define what a programmer is. Can you share your opinions on what separates someone who can understand code from someone who is a programmer? Barriers to entry have been significantly lowered, making the distinction very fuzzy Definition of programmer is becoming much wider Books available at: Automate the Boring Stuff Invent With Python Picks Tobias Logbook Emacs Psychotherapist Ex Machina Mining the social web Chris Emacs Rocks Working Copy Feedly Tom Collins Al PyCon Selenium Python Module Seven Eaves by Neal Stephenson Keep In Touch Twitter Email
8/16/201552 minutes, 51 seconds
Episode Artwork

Liza Avramenko on CheckIO and Empire of Code

Visit our site to listen to past episodes, find additional content, sign up for our newsletter or learn about the hosts. Summary In this episode we talked to Liza Avramenko, the CEO of CheckIO, about Empire of Code and CheckIO. We discussed what differentiates them from each other and from the other coding games that have been spreading on the internet. One of the main differentiators for CheckIO in particular is the strong focus on community. The bottom line is that if you use Python then you should check out CheckIO and Empire of Code as a great way to practice your skills. Brief Intro Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great. Follow us on iTunes, Stitcher or TuneIn Give us feedback on iTunes, Twitter, email or Disqus We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive. We are recording today on July 27th, 2015 and your hosts as usual are Tobias Macey and Chris Patti Today we are interviewing Liza Avramenko about CheckIO Interview Please introduce yourself How did you get introduced to Python? Learned about it from Co-Founder Alex For anyone not familiar with CheckIO, can you explain what it is? What was the inspiration for creating the CheckIO platform? Alex was bored working in a bank and wanted to create a place for sharing practice problems What is your goal with this platform? Become global community for most popular coding languages Remain open and supportive How do you deal with the question of ownership and licensing in CheckIO? Was this a tricky hurdle to get past in the site’s creation? Being willing to share solutions publicly is a core part of the site. This had to be more explicitly stated due to some users confusion early on. Growing a community is difficult because of the chicken and egg problem. How did you kickstart the growth of the CheckIO community? Community always number one priority Started organically Initially had 24/7 live chat to help new users Openness was attractive, led to critical mass As community grew, need for live chat decreased Nature of Python community lends itself well to a collaborative, open community Guido provided advice on how to grow and foster community Guido himself has participated in a number of conversations on your platform to critique submissions. Have you received any feedback from him directly about his impressions of the system? How does diversity play into CheckIO? Are there aspects of the site’s design that are purposefully meant to attract a diverse audience? CheckIO has always targeted people with basic coding experience Early live chat feedback focused around very new coders wishing there was more material for them These early challenges resulted in the development of Empire of Code There are a number of other online programming-oriented games available. What makes CheckIO and Empire of Code stand out from them? Priority of community Others are more about gaming, showcasing talent How did you design the gamification aspects of CheckIO, and how important do you think they are to the site’s success? CheckIO was never a game, more of a library of challenges that have game elements Empire of Code is all about gamification, code and algo improvement are baked into the gameplay You choose Python or Javascript “legions” at character creation time, this is a one time choice. Buildings, troop movements, materials, etc. are all based in code Players can steal code and algorithms from other players Incredible innovation Great adoption story for new users – can start playing without writing any code But in order to really excel you will WANT to start writing code So many people have their original motivations for coding come from playing games Cooperative play in the form of training missions with other players This is an opportunity to learn how people on the other side are solving the same problem New languages are planned – Ruby, maybe Java? Do you think that there is something about the Python language or community that inspires adoption of this kind of gamified practice? You recently released the beta of a new experience called Empire of Code which is more akin to the type of video game that many people are familiar with. What inspired that evolution? As part of the new experience, you also added JavaScript as an available language. Do you intend to add new languages in the future? Is there a particular demographic or set of demographics that you are targeting with Empire of Code vs CheckIO? What’s the monetization strategy for Empire of Code or CheckIO? For Empire, you can play for free but you might keep losing your resources until you can learn to code more effectively, OR you can buy a shield which will protect your resources for a time. In CheckIO, how do you label the difficulty level of the individual puzzles, is there a set of guidelines for that or is it up to the puzzle writer / submitter? CheckIO trusts its community The community rates each challenge Part of the CheckIO platform is the ability for users to submit their own problems. How much vetting is involved before these submissions are available to users of the site? Where do you see CheckIO and Empire of Code going in the future? Want to have Empire of Code known as the best online game that blends in programming by the end of 2016 In ~5 years want to see people saying the CheckIO/Empire of Code inspired people to program as a career In ~10 years want to see all major languages represented Aiming to become a major game publisher Picks Tobias JSON Web Tokens Source Code Pro DirEnv Chappie Chris Prune Nikola Warday’s Cocktail Liza Kiev, Ukraine Bulletproof Coffee Keep In Touch Twitter: @avrliza
8/6/201548 minutes, 15 seconds
Episode Artwork

Glyph on Ethics in Software

Visit our site for past episodes and extra content. Summary In this episode we had a nice long conversation with Glyph Lefkowitz of Twisted fame about his views on the need for an established code of ethics in the software industry. Some of the main points that were covered include the need for maintaining a proper scope in the ongoing discussion, the responsibilities of individuals and corporations, and how any such code might compare with those employed by other professions. This is something that every engineer should be thinking about and the material that we cover will give you a good starting point when talking to your compatriots. Brief Introduction Welcome to Podcast.__init__ the podcast about Python and the people who make it great Date of recording – July 21, 2015 Hosts Tobias Macey and Chris Patti Follow us on iTunes, Stitcher, TuneIn, Google+ and Twitter Give us feedback! (iTunes, Twitter, email, Disqus comments) We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive. Overview – Interview with Firstname Lastname about Topic Interview with Glyph Introductions How did you get introduced to Python? – Chris 2000 – large scale collaborative gaming system in Java Asynchronous IO Twisted Let’s start with the bad news What are some of the potential wide spread implications of less than ethical software that you were referring to in your Pycon talk? – Chris Robot Apocalypse (Not really) Much of the discussion around this derails into unrealistic nightmare scenarios THERAC 25 radiation machine Toyota unintended acceleration scandal Real worry – gradual erosion of trust in programmers and computers First requirement for a code of ethics – a clear understanding of the reality you’re trying to litigate The search for ethics will likely begin in academia where this aspect of software dev is more like psychology. In your talk you commented on the training courses that Lawyers are required to take as part of their certification. Do you think the fact that there is no standardized certification body for software development contributes to a lack of widely held ethical principles in software engineering? – Tobias Do you think that it is necessary to form such a certification mechanism for developers as part of the effort to establish a recognized ethical code? – Tobias If we were to create a certification to indicate proper training in the software engineers code of ethics, how do you think that would affect the rate at which people enter the industry? – Tobias Assuming we can all agree on a set of relatively strict professional ethics that would prevent the above from happening, how would we enforce those ethics? Or do you advocate an honor system? – Chris Ethics are by definition an honors system Enforcement would be straight forward – professional organizations to maintain a record and deviations from that record Need better laws & better jurisprudence We need an Underwriters Laboratory seal for software development ethics Code of software ethics will not and should not tell you how to be a decent human being. Devs / companies can create software that could be used for evil – “We are merchants of death and these are lethal weapons” – could conceivably earn the ethical software developer’s seal of approval. Where does accessibility of the software we make fit into a code of ethics? Do you think there should be a minimum level of support for technologies such as screen readers or captioning for audio content in the software that we build? – Tobias Minimum levels of knowledge required Minimum levels of content in curriculum In your talk you mentioned how Rackspace’s stance on user support matches the ideals you’d previously laid out, can you flesh that out a bit for us? What does that mean to individual Rackers in their day to day work lives? – Chris In your talk you mentioned that availability of the software source should be mandatory for compliance with a properly defined ethical framework. What mechanisms for providing that access do you think would be acceptable? Should there be a central repository for housing and providing access to that source? – Tobias Would the list of acceptable mechanisms change according to the intended audience of the software? – Tobias What responsibility do you think producers of software should have to maintain an archive of the source for past versions? – Tobias How should we define what level of access is provided? In the case of commercial software should the source only be available to paying customers, perhaps delivered along with the product? This also poses an interesting quandary for SaaS providers. Should they provide the source to their systems only to paying customers, or to potential customers as well? – Tobias This question of transparency and availability of source is especially interesting in the light of a number of stories that have come out recently about patients who have been provided with prostheses and other medical devices. In a number of cases, shortly after receiving the device, the company who made it, which are increasingly startups, goes out of business, leaving the patient with no way of obtaining support for something that they are dependent on for their health and well-being. Having the source for those devices available would help mitigate the impact of such a situation. – Tobias You brought up an interesting aspect of the trust equation and its relevance to the need for an ethical code. Because what we do as software engineers is effectively viewed as sorcery by a vast majority of the public, they must therefore wholly place their trust in us as part of using the products that we create. As you mentioned with the demise of the scribe with the rise of literacy, increasing the overall awareness of how software works at a basic level partially reduces that depency of trust. At what level of aptitude do you think our relationship with our users becomes more equitable? How does the concept of source availability play into this topic of general education? – Tobias What can the Python community in particular do to start the ball rolling towards defining a set of professional ethics, and what has it already done in this area? – Chris PSF Code of Conduct is a starting point PSF is an organization of individuals Corporations are cagey about getting involved for fear of it becoming a legally binding contract Django Code of Conduct more specific Picks Tobias Phillips SHP9500 keybase.io – Tweet us with your favorite thing about the show to get an invite Paul Blart: Mall Cop 2 Chris Don’t Starve for IOS Want to understand Pythonâ€s comprehensions? Think in Excel or SQL. Barr Hill Gin Glyph Py2App Blog post PyObjC Sensair Sou Vide immersion circulator Keep In Touch Twitter Keybase.io email Glyph everywhere on the internet
8/3/20151 hour, 19 minutes, 23 seconds
Episode Artwork

Holger Krekel on Py.Test

Visit our site to listen to past episodes, learn more about the show and sign up for our mailing list. Summary In this episode we talked to Holger Krekel about the py.test library. We discussed the various styles of testing that it supports, the plugin system and how it compares to the unittest library. We also reviewed some of the challenges around packaging and releasing Python software and our thoughts on some ways that they can be improved. Brief Introduction Welcome to Podcast.__init__ the podcast about Python and the people who make it great Date of recording – July 8th, 2015 Hosts Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback on iTunes, Twitter, email or Disqus) We donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation}. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive. Overview – Interview with Holger Krekel about his work on Pytest Interview with Holger Krekel Introductions Programming for 25 years Runs a consultancy Been to almost every EuroPyCon and PyCon US How did you get introduced to Python? – Chris Wanted to write an HTTP proxy and Java I/O was too confusing. Jython took less than a day to get it working after 2-3 days on it with Java. What inspired you to create Pytest, and how did the existing unittest framework play into the story? – Chris Introduced to agile methods through the Zope community Zope used unittest – didn’t like the boiler plate Not in the spirit of Python Only took ~200 lines of code to get a testing tool working Original name was ‘utest’ – 2003 Pytest name came in 2004 on Pypy project Huge number of tests on that project (20,000) – distributed test runner – xdist helped solve this. There are many different styles of testing, such as BDD, unit testing, integration testing, functional testing, what attributes of py.test make it suitable or unsuitable for these different approaches? – Tobias What are your views on black box testing and how would someone use py.test to implement this approach? – Tobias Pytest’s plugin architecture enables you to hook into the various phases of test execution enabling you to extend Pytest in all kinds of ways beyond the original design. I have been hearing a lot about property based testing which was popularized by the Quickcheck module in Haskell. Does py.test support anything like that? – Tobias hypothesis-pytest Do you think the characteristics and nature of the unit testing framework being used have any effect on the number and quality of the tests developers write? – Chris Developers find writing tests in Pytest to be fun compared to unittest Which will help people write better tests Encourages refactoring Is there ever a time when you would advice against writing tests? – Tobias When exploring a problem, writing tests first doesn’t make sense When getting feedback on a potential approach, writing tests first can be a waste of time What are some signs that you watch out for when writing tests that tell you that a particular feature needs to be refactored? – Tobias When the test code is fragile it should be refactored Requires experience to really understand when to refactor When it’s not fun anymore or the tests are repetitive For someone who is converting their existing unit tests from UnitTest/Nose style to use py.test in an idiomatic manner, what are some of the biggest differences to be aware of? – Tobias Generator/yield based testing should move to property based testing If py.test can’t run a UnitTest/Nose style test it is considered a bug and gets fixed Has the strict backwards compatibility policy presented any interesting technical challenges thus far? – Chris Yes it definitely makes more work However breaking the API in a large project like this will cause too many problems for users py.test supports execution of tests written with other frameworks, how much ongoing maintenance does this feature require as changes are made to the other implementations? – Tobias The web page says that Pytest is designed to work with domain specific and non Python tests, and in fact a coworker is using it to test a node.js project – how did Pytest’s design enable this? – Chris Pytest uses a collection tree model to represent your project This is not Python specific All classes and functions are just mapped into this tree, not directly on the Python function There are few Python specific hooks for fixtures etc. People have written plugins so they can express their tests in YAML, Microsoft Excel Tests are represented as items All plugins are written in Python What are some of the most interesting applications of py.test that you have seen? – Tobias Plugins! Pytest-BDD Pytest-C++ Pytest-sugar Py.test plugin list Speaking about adoption, do you have any sense of the relative adoption of Pytest versus unitest or other tools? – Tobias Very hard to actually know Download numbers are not a clear indicator due to robots, CI systems, etc. Quantifying market share is hard to do Popularity is not a useful heuristic in determining a good fot for technology adoption But popularity is an indicator for the level of support you might receive Tech can be popular but very poorly maintained Are there any features of py.test that would make it suitable for use with configuration management tools and infrastructure testing? – Tobias Example driven testing Run py.test from a blackbox approach Largest benefit would be from having one testing tool used across the organization Where do you see Pytest and more generally test frameworks headed in the future? – Chris No big changes for Pytest – lots of incremental things Plugins will add functionality Holger is also the author of Tox Integration testing and testing in more complex environments are a direction that test management tools will likely go Tools like Jenkins can be a real headache in trying to have a good testing story for your company https://devpi.net/hpk/dev/devpi-server/2.2.0/+toxresults/devpi-server-2.2.0.tar.gz?utmsource=rss&utmmedium=rss Any questions we didn’t ask? Pytest is a very healthy project! There are 10 regular contributors – this is exceptional among OSS projects Picks Tobias python-future six The Way Back Rosewill BK-500A} or BK-500i pipdeptree pundler Chris Crop Bavarian Weizen Dutch Pancakes Prophet Holger The Utopia of Rules IPFS.io – The interplanetary file system A New Way to Look at Networking Keep In Touch Twitter Blog The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/24/20151 hour, 11 minutes
Episode Artwork

Damien George Talks To Us About MicroPython

Visit our site for more news, information and past episodes of Podcast.__init__! Summary We talked to Damien George about his work on the Micro Python interpreter and the PyBoard SOC (Systom On a Chip). The combination of the interpreter and SOC allows Python developers to get involved in hardware hacking, as well as letting electronics afficionados try their hand at development. Damien explained to us where this fits in with the expanding landscape of low cost embedded devices and why you should get one to start playing with it. Brief Introduction Date of recording – June 29th, 2015 Hosts – Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Overview – Interview with Damien George from the Micro Python project Interview with Damien George Introductions Postdoc in Theoretical Physics How did you get introduced to Python? What problem were you trying to solve when you first had the idea to create the Micro Python board and interpreter? Not really Python lets you get things done quickly Abstracts the hardware really well In the Kickstarter video you mention that Micro Python is a complete re-implementation of Python optimized to run on a micro-controller. How hard was it to create an alternative Python implementation? Did you have hard decisions to make as to what to include given the limitations of the hardware? To start with, was it even possible? Proof of Concept: Get a REPL running on the board Lots of tricks to get things to fit into RAM Stuffing integers into pointers Optimizing RAM at various points Runs the parser 4 times, looking for different things each time Lots of things are stored in ROM in the built-in Flash Very fine efficiency trade off between code size, memory usage, speed. REPL runs in 1K of RAM! Most of this is the parse tree 20 line script might take ~5K RAM 128K RAM on the Micro Python board Not 100% Python – but 90% – the most useful parts I know that people who have developed alternative Ruby implementations have run into issues due to the lack of a formal specification. Has the fact that there is a specification for Python made your job easier? Definitely, Python is very well defined Well documented Already multiple implementations The WiPy chip seems like an interesting device. What are some ways in which it could be put to use? A Micro Python cluster for instance? Small, cheap, low power little wireless chip that also runs Python You can telnet in and have a Python REPL Part of the Internet of Things What changes did you have to make to get the Python interpreter to run without an underlying operating system? When you were designing the hardware, what were some of the requirements that you were targeting in terms of performance or peripherals? Wanted the best chip for the least money Didn’t know ahead of time how many resources were required What level of hardware knowledge is required to start working with the Micro Python board? Virtually none Just need to plug into USB and login with a terminal program to get a Python prompt Can change frequency of CPU, turn on/off LEDs, etc. Connecting peripherals requires some hardware knowledge Module namespace to make hardware management easier For anyone who is interested in writing libraries, what kinds of restrictions do they need to be aware of? Be aware of RAM size limitations Prety much anything that will fit will work Libraries with C extensions won’t work because they rely on the CPython API What license is used for the Micro Python interpreter and the PyBoard? Are the compatible with commercial uses? MIT License Hardware schematics are open source as well, open and accessible design What are some of the most interesting/innovative projects that you have seen people make with the Micro Python board or runtime? Damien attempted to make a quadcopter – not completely finished Micro Python controlled guitar – PyBoard connected to actuators to play guitar How does the experience of using Micro Python compare to some of the other hardware projects that are popular right now such as Arduino, Raspberry Pi or Tessel? PyBoard in between Arduino and Raspberry Pi More approachable than Arduino Not a full OS like Raspberry Pi Tessel similar to Micro Python but runs Javascript EU Space Agency (Europe’s version of NASA) interested in Micro Python Prepared to fund Micro Python development to explore possibilities of space based applications Code needs to be well written and with few bugs See if it can be used for real-time systems Picks Tobias Machine Gun Preacher – Real life story of Sam Childers’ work in Southern Sudan Pocket Book Android App – E-Book app with good UI/UX and solid feature set Online access to digital media through local library memberships Hoopla Digital Overdrive Chris Real Ramen RedHat Summit The SELinux Coloring Book Damien MOSH – Mobile shell, resilient SSH that allows for resuming sessions across networks, computer sleeps, etc. Keep in Touch Twitter @micropython @damienpgeorge GitHub – micropython The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/16/201549 minutes, 17 seconds
Episode Artwork

Allen Downey on Teaching Computer Science with Python

Find past episodes and more information about the show at iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want) Overview – Interview with Allen Downey, Prolific Author and Professor of Computer Science Interview with Allen Downey Introductions How did you get introduced to Python? – Chris Wrote a Java book with an open license to allow anyone to make changes Jeff Elkner translated it to Python What attributes of Python make it well suited for use in teaching computer science principles? Syntax is simple, makes a difference for beginners Good error messages Batteries included One of the things I found very compelling about Think Like a Computer Scientist is its use of interactive turtle graphics early on. What makes the turtle continue to be a compelling educational tool and what made you choose it for this book in particular? Everything you do has a visible effect, makes it easier to see what’s happening and debug Used to introduce functional decomposition because of no return value in turtle graphics Great way to explore complex geometric concepts Did the structure of your courses change when you started using Python as the language used in the classroom? Were you able to cover more material as a result? Able to make material more interesting Less time spent fighting with syntax As a professor of computer science, do you attempt to incorporate the realities of software development in a business environment, such as unit testing and working with legacy code, into your lesson plans? Unit tests useful as a teaching tool Version control getting introduced earlier A number of your books are written around the format of ‘Think X’. Can you describe what a reader can expect from this approach and how you came up with it? Learning how to program can be used as a lever to learn everything else You can understand what a thing is by understanding what it does What are some of the more common stumbling blocks students and developers encounter when trying to learn about stastics and modeling, and how can they be overcome? Traditional analytic methods for statistical computation – get in the way and impede understanding P-values are a great example What test should I do? is the wrong question I’ve heard you refer to yourself as a ‘bayesian’. Can you elaborate on what that means and how bayesian statistics fits into the larger landscape of data science? Frustration with frequentist approach to statistics Wasted time over debate of objectivity vs subjectivity Bayesian approach takes modeling ideas and makes them explicit Can directly compare and contrast results of competing models Classical approaches don’t answer the most interesting questions *We’re big fans of iPython notebook which you’ve used in at least one of your books already – can you describe some of the ways you have implemented it in an educational context, as well as some of the benefits and drawbacks? Started using about 2 years ago Appreciated usefulness for books and teaching because of synthesis of text, code and results Working on DSP really highlighted the usefulness of IPython notebooks Picks Tobias IMAPy – IMAP for humans ScudCloud – Linux desktop Slack client Thrive – Online purchasing club for healthy and organic foods Floobits – remote pair programming Chris Testament of Youth Mastering Emacs – The Website / Blog StayFocused Fallout Shelter Keep in Touch Twitter Blog The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/9/201537 minutes, 42 seconds
Episode Artwork

Jacob Kovac on KivEnt

Listen to past episodes and find out more about the show at our website pythonpodcast.com Synopsis In this episode we talked to Jacob Kovac, creator of the KivEnt game engine and one of the Kivy core developers. He told us about what inspired him to create the KivEnt project, some of the ways that he has managed to optimize rendering time and some of the problems that he has encountered as part of his work on the project. We also discussed what the use cases and limitations of the KivEnt engine are and he shared some of the projects that have been made with it. Brief Introduction Date of recording – June 17th, 2015 Hosts – Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) We don’t have any corporate sponsorship or advertisements in the show because we are making it for the community and we respect our listeners and value your time. If you would like to help support the show and keep it ad-free you can find out how by visiting our website Overview – Interview with Jacob Kovac about the KivEnt Game Engine, based off of Kivy Interview with Jacob Kovac Introductions How did you get introduced to Python? – Chris Could you please give us a high level overview of KivEnt and how it differs from other game builder frameworks like Unity or Unreal? Manages memory for game objects and stores them contiguously in memory for greater efficiency Real-time focused rendering engine for Kivy Cython interface to provide performant game objects with Python API Increased speed of main render loop by 38X by removing a single Python list lookup Kivent is mainly 2D focused, vs 3D for Unity/Unreal Python all the way down Cython and pointer magic for optimization purposes Made to be familiar to Pythonistas Aiming for “A” level games Bringing modern advancements in making games to Python – GPU awareness Built with constraints in mind The Pacman Dossier What inspired you to create the KivEnt engine? Tried to create an Android infinite runner in Kivy, performance was unacceptable Looking for how to build games in Python with large amounts of data Is there a particular kind of game KivEnt is particularly suited for versus any of the other popular frameworks? Focuses mainly on 2D, agnostic as to ‘type’ of game Jacob’s interests largely focused on procedurally generated environments Could KivEnt be used to create networked multiplayer games and what challenges might that bring to the table for the aspiring KivEnt game developer? Multiplayer thought to be largely out of scope This doesn’t mean KivEnt is bad for multiplayer games, but that KivEnt in and of itself doesn’t wholly solve this problem. Plenty of other frameworks to draw on for handling the multi-player server or pulling data from it, KivEnt solves the client side problems germane to making a game in Python Does the fact that KivEnt games need to run on so many platforms present any unique difficulties in KivEnt’s development? Kivy has solved most of the cross-platform problems Difference in GPU vendors has proved the most difficult I hear game developers talk a lot about assets and asset formats. What kinds of assets can be used with KivEnt? 2D assets are simple – especially as compared to 3D KivEnt supports any image format that Kivvy does for your platform Coming next release – you can specify the vertex format for your model https://youtu.be/qe9fWC-2e3M?utmsource=rss&utmmedium=rss I have heard that unit testing games is difficult and rarely done for reasons of time pressure, as well as lack of determinism in the interactions. Does KivEnt provide any utilities to make this easier? Not currently well tested, but targeting that for next release Trying to add tooling to make testing games easier, though still somewhat difficult Platform Biased Podcast – by a bunch of Microsoft Studios SDETs How does KivEnt handle input and what kids of input devices are supported? Input handled entirely by Kivy, so any inputs supported by Kivy are accessible in KivEnt Rumors of using Kinect camera with Kivy/KivEnt applications Is there a built in physics engine or is that something that is pluggable? Mostly pluggable Chipmunk 2D integration provided via a module Particle Panda – one of the major inspirations for KivEnt New Particle engine coming in the next version of KivEnt How does KivEnt handle collision tracking? Mathematically difficult, very hard to get right Don’t do it! Use the physics engine – Chipmunk 2D is also a collision detection engine Kivy enables devs to use C, C++, Java and Objective C code in their games Game development has been democratized Entity / Component architecture enables great modularity Game objects that appear on the screen (Gun, ball, etc.) are not represented as such in the system Can you tell us about some of the projects that you have seen built in KivEnt which you are most excited by? https://github.com/chozabu/KivEntEd?utmsource=rss&utmmedium=rss https://play.google.com/store/apps/details?id=org.chozabu.boardzfree&hl=en&utmsource=rss&utmmedium=rss What are some ways in which our listeners could help contribute to the project? Would like to see more people build games in KivEnt Give feedback about the experience and what can be improved If you have Apple hardware, try out KivEnt and file issues with any errors that occur Picks Tobias EIN (Emacs IPython Notebook) Pip 7.x RESTful Web APIs Chris The Killing Data Science on the iPad with RethinkDB Left Hand Nitro Milk Stout Jacob Pelican Static Site Generator Terraria 1.3 Amorone Homemade Red Wine Keep in Touch E-Mail – kovac Blog – chaosbuffalogames.com/blog IRC – #kivy The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
7/3/20151 hour, 8 minutes, 41 seconds
Episode Artwork

Eric Schles on Fighting Human Trafficking with Python

Listen to past episodes, read about the hosts or donate to the show at podcastinit.com Brief Introduction Date of recording – June 10th, 2015 Hosts Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Overview – Interview with Eric Schles Interview with Eric Schles Introductions How did you get introduced to Python? What inspired you to take up the fight against slavery? Is there personal story behind this choice? Some of your work touches on the “Deep Web”. Can you provide listeners with some context around what that term means and role it plays in what you do? Tor .onion sites (Hidden Services) are examples Anonymous Web Experience Anonymity allows for illegal, immoral things like buying selling people Conceptually very important idea Bruce Schneier – Web technologies need to be more privacy aware Like a really scary version of “The Internet of the Old Days” Photos of young, exploited men and women Pedophiles are building communities, having parties through these hidden services Eric feels that Tor is an extreme Feels there had to be a way to protect the rights of legitimate while protecting against pedophiles Maybe a voting system? The Tor project feels that any compromise lessens the that’s so important for people in embattled or countries (Worded that poorly -Chris) No metrics on the amount of pedophilia that actually happens Tor – probably a lot Sexually abused victims of trafficking grow up damanged unable to do anything else Consumers of this type of porn were often themselves victims sexual abuse Structural dissonance which exists to create this problem society needs to be addressed Google puts the number to the anti-trafficking hotline at top of any trafficking search results Darren (Derek?) Hayes – redirect to trafficking resources when viewing advertisements for victims trafficking Why did you choose Python as opposed to any other tool for your search engine? Needed solutions quickly with the ability to evolve as needed Able to rapidly develop and incorporate new features rapidly Easy to scale as needed Flask is easier to prototype and iterate with Python data science tools make the analysis easy Able to finish a 2 year C++ project in 3 weeks using Python Doing data science in Ruby is challenging Pandas Dataframe galvanized the creation of a lot of other useful tools Vincent – write Python which compiles to D3 Can you provide a high level description of the technical details the search engine that you created, and what it’s like to with Tor through Python? Directed search engine “It would be like if you went to Google but everything watched was Porn which you were uncomfortabl seeing and you sad” Get most case information through regular old detective work Person arrested / in holding yields phone number, other attributes that can feed the search engine Google can’t scrape the deep web Memex tool indexes the deep web – Eric’s search engine uses that Eric does design work for the Memex project Developed by the amazing Chris White Eric’s search engine uses the Tor driver in Selenium to .onion sites What are some of the technical and legal challenges that you experienced in the course of your work? Most of the technical challenges are around automated processing Legal structure provides some limits on what can be worked on Does your search engine try to infer who might be engaged in work voluntarily as opposed to those being forced into it their will? No, because they get all their case referrals from detective work You have to have been hospitalized or in some other way come the attention of the authorities for being deprived of rights Trafficking looks very different in different cultures Global similarities Afraid to say why if hurt Forced into having sex against your will Clear patterns of indication Urban versus Suburban versus Rural Fracking towns Demographics are very different – mostly men very women, LOTS of ads for sex workers Only helping people that want to be helped What was the most surprising fact you uncovered as part of research? Imagery of exploited children is so depressing and sad Without revealing anything you shouldn’t, are you aware of being set free as a result of your work? “Not my work, our work” Not an individual effort lawyers, analysts, larger DAs office Given the complicated socio-economic aspects of human and prosecution of those who are responsible, can you discuss of the moral and ethical considerations that you have confronted with while building these tools? Privacy is the biggest concern Open source book to teach colleagues at the DA’s office how program to in Python Sometimes Eric works at Civic Hall Are there any projects out there that you consider similar to you are working on? Thorn’s Spotlight tool Memex Project Polaris Project Datakind Anti Trafficking dosomething.org – more broadly focused – help center for teens RescueForensics – stage startup What would it take for other municipalities and law agencies to get started with using your tools? Go to https://github.com/EricSchles?utmsource=rss&utmmedium=rss Alert System and investagator Contact Eric at [email protected] to collaborate How can our listeners get involved and help you with this Chris Tweet at @EricSchles or E-mail Eric Volunteer for any of the non profit anti-trafficking groups Message to the community: There is a world of good waiting to happen Picks Tobias @accidentalaRt tldrlegal.com Rishloo Chris Neil Gaiman’s Sandman Overture Alchemist Brewing’s Heady Topper Hen of the Wood Eric James Powell’s Blog Julia Nunes XKCD Explain XKCD Keep in Touch Twitter: @EricSchles Eric’s About.me page More From Eric He presented at PyGotham 2014 He also talked at the Open Data Science Conference 2015 Boston The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/25/20151 hour, 13 minutes, 9 seconds
Episode Artwork

Naomi Ceder, Lynn Root and Tracy Osborn on Diversity in the Python Community

Listen to past episodes, read about the show and check out our donations section at podcastinit.com Brief Introduction Date of recording – Jun-10th, 2015 Hosts Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Overview – Interview with Tracy Osborn, Naomi Ceder, Lynn Root Interview with Prominent PyLadies Introductions Tracy Osborn Naomi Ceder Lynn Root How did you get introduced to Python? In what ways do you think the Python community has succeeded in making itself more friendly and welcoming to women and other under represented minorities, and where could it do better? Python community leadership takes a positive stance on diversity Codes of conduct are taken very seriously Financial diversity needs more focus What can you tell us about PyLadies and DJango Girls? PyLadies started in a coffee shop in LA pip install PyLadies Over 70 locations on almost every continent – half on meetup.com What are some of the challenges you still face in being a part of the Python community, and how can our listeners help? Don’t be disparaging about women-focused events I had to read up to page 17 of the top authors list on PyPi to find a woman. Can you provide some insight into what may be contributing to this state of affairs and how we can help to improve it? pypi is confusing and intimidating Process and tools are tough to use Maybe Pyladies should host a “make your own package” night Mentorship and easy HOWTOs are needed You have all gained some notoriety in the Python community through work that you have done. Do you feel that you were faced with greater adversity than your peers in the course of your careers? Startup community more hostile than Python community We are talking to each of you because of your involvement in the Python community. Have you worked with and been involved in other language communities? If so, can you provide some comparisons between that and Python in how they manage the subject of diversity, gender and otherwise? Design community – lots of conferences with “all dude” conference speaker line up Startups very focused on males for employees and customers What effect do you think job descriptions play in excluding women and other minorities from roles in development positions? (In reference to https://blog.safaribooksonline.com/2015/06/08/on-recruiting-inclusiveness-and-crafting-better-job-descriptions/?utmsource=rss&utmmedium=rss) Discourage more appropriate term than exclude Women less likely to apply for roles that they are not completely qualified for Spotify experimenting with blind resume review and cross-checking of job descriptions Result is more women applying and having better results For any women and young girls who may be considering a career in technology, do you have any words of advice? Go for it, but be aware that it’s hard Do you have any advice for the men in the Python community and technology as a whole? Actually listen when somebody tells you that it’s not the same for them (race, economics, gender) Have some compassion and empathy Men should educate themselves Old habits die hard but getting over them is important Is there anything we haven’t discussed that any of you would like to bring up? Picks Tobias The Banned and the Banished series by James Clemens Cool Hand Luke with Paul Newman Chris Baxter Stowaway IPA Mastering Emacs 99% Invisible – The Nutshell Studies Naomi Ceder Korey Schrum – Dying for a Living Into the Brambles – by “PyDanny – Danny Greenfeld” Lynn Root Jupyter – tmpnb – Kyle Kelly blog post Knit Your Own Zoo Bechdel Test The Good Wife Passes the Bechdel Test Inspiration for women being awesome in a male dominated industry Tracy Osborn EasyPost – Simplifies generating shipping labels for USPS Keep in Touch Naomi Ceder @naomiceder Lynn Root @roguelynn Tracy Osborn @limedaring Blog Hello Webapp The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/18/201549 minutes, 14 seconds
Episode Artwork

Brian Granger and Fernando Perez of the IPython Project

You can find past episodes and other information about the show at podcastinit.com Brief Introduction Date of recording – June 3rd, 2015 Hosts – Tobias Macey and Chris Patti Overview – Interview with Fernando Perez and Brian Granger, core developers of IPython/Project Jupyter Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Interview with Brian Granger and Fernando Perez Introductions How did you get introduced to Python? – Chris For anyone who may not have heard of or used IPython, can you describe what it is? How challenging was it to port IPython to Python 3? Thomas Kluyver What prompted the name change from IPython to Project Jupyter and were there any associated changes in the project itself? Name inspired by Julia, Python and R – the three programming languages of data science Data scientists have adopted the use of IPython notebooks in their work on a large scale, what is it about notebooks that lend themselves to this particular problem domain? Bayesian methods for Hackers – Cameron Davidson-Pilon Signal processing in Python O’Reilly added support for notebooks into Atlas publishing platform IPython Notebook seems like an incredible tool for educators is advanced fields. Have you seen wide spread adoption in this area and is it a focus for the project? NBGrader – notebook grader Github recently added the ability to render notebooks in a repo. Did you work with them to build that integration? What are some of the most interesting uses of IPython notebooks that you have seen? Gallery of interesting notebooks on the wiki Reproducible academic publications Couple of dozen scientific papers, some very high profile Educational notebooks on various subjects Great learning resource, as well as entertaining MOOC taught between distributed team on Open EdX using IPython notebooks about numerical computing with Python Peter Norvig collection of IPython notebooks Includes analysis of traveling salesman problem notebooks.codeneuro.org– time series data analysis <- Couldn’t get this to work. -Chris Are there any notable projects that use IPython as one of their components? KBase for computational biology Sage – Open source mathematics project written in Python Created by number theorist William Stein Custom parser to allow for non-python syntax Quantopian – Collaborative platform for financial modeling. Runs on top of IPython Wakari from Continuum Analytics – hosted IPython with computing environment Rackspace hosts TempNB and other IPython services Where do you see Project Jupyter going in the future? Are there any particular new features you’d like to see added? – Tobias One of the biggest targeted features is real-time collaboration Prototyped by engineers from Google More modular UI and architecture Multi-user deployments with Jupyter Hub A few weeks ago we interviewed Jonathan Slenders who wrote ptpython, which brings IDE like capabilities to interactive Python. Have you ever considered including this in IPython? What are some of the features that an average user might not know about? Is there anything in particular that you would like to ask our listeners for help with? Pitch in with the development effort Organize community events on behalf of IPython/Jupyter Be patient while documentation improves Picks Tobias Dayworld trilogy by Phillip Jose Farmer ReadRuler.com Chris RubyTapas by Avdi Grimm CodeNewbies Tweetbot Brian Granger Data Science from Scratch – Joel Gruß Elements of Graphing Data – William Cleveland Fernando Perez Republic Lost – Lawrence Lessig Alvaro Mutis Keep in Touch Twitter @projectjupyter, @ipythondev, @ellisonbg, @fperezorg The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/13/20151 hour, 21 minutes, 48 seconds
Episode Artwork

David Baumgold on Flask-Dance, WebhookDB and Open EdX

You can find out more about us and view previous episodes at podcastinit.com. Brief Introduction Date of recording – 2015-06-02 Hosts – Tobias Macey and Chris Patti Follow us on – iTunes, Stitcher or TuneIn Give us feedback on iTunes, Twitter, email or Disqus Interview with David Baumgold Introduction How did you get introduced to Python? What problem does Flask-Dance solve that wasn’t covered by other libraries? What were some of the technical issues that you encountered while building Flask-Dance? What are some of the design considerations that you had when building Flask-Dance? You also built webhookdb for replicating GitHub’s information to be queryable. What are some use cases for which you would want to do that? What is Open EdX and what is its intended audience? What are some of the challenges implementing a system like Open EdX, and what can Python developers learn from the implementation of the project? Picks Tobias Evil mode Forgotify Wolf of Wall Street pipreqs Chris Dark Horse Brewing – “Smells Like a Safety Meeting” Medium Modern Gnu Emacs David Homebrewhttps://open.edx.org/ for OSX Homebrew Cask Arrow Moment.js The Imitation Game Keep in touch Twitter: @singingwolfboy GitHub Website Email
6/7/201532 minutes, 21 seconds
Episode Artwork

Mark Baggett on Python for InfoSec

Read all of our show notes and find more information about us at Beautiful Soup Brief Introduction Date of recording – May 28th, 2015 Hosts – Tobias Macey and Chris Patti Overview – Interview with Mark Bagett Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Interview with Mark Bagett Introductions How were you first introduced to Python? – Chris Started using it for automating tasks while working as a sysadmin Found code that launched an attack on FTP server – in Python What are some of the tasks in your job that you use Python for? -Tobias Trusted command & control backdoor for Windows Mostly not used by malware authors – thus far (at least Mark hasn’t seen it used that way) Flame virus – 5MB payload – incredibly advanced Lua interpreter bundled along with the scripts Vale framework – Python framework that takes payloads out of penetration testing executables What is it about Python that makes it useful for penetration testing and other information security tasks? Same thing that makes it useful for anything else mpacket from core security What are some of the more useful Python penetration testing tools? OFFENSE Beautiful Soup scapy Volatility DEFENSE Counter dictionary from collections Pandas iPython matplotlib We’ve noticed that a lot of the literature around information security and penetration testing focuses on targeting Windows. Can you enlighten us as to why that is? Windows event tracing logman event trace providers – implement packet sniffing (Can turn every browser into a key logger) Primary attack surface – Where most attacks are targeted Fewer purely Linux systems Very few ports open – maybe 80, 22 Very likely no user just sitting there waiting to run an executable you send More freedom on Linux – less formalized patching process, more variable tools = more exploits Will write code to only use built in modules for Python that will run in customer target environments What are some of the legal considerations that you have to deal with on a regular basis as a penetration tester? There have recently been a number of attacks based on hijacking the TCP/IP stack. Is Python being used for any of these exploits or tools to defend against them? Data analytics Detect repeated sequence numbers – Man in the Middle Attack As simple as 5 lines of Python code import scapy, start sniffing packets, pull together all packets – make list of associated packets Can pull together all packets inside of stream Time spefic source communicates with specific destination Bro – intrusion detection suite Built into Security Onion – Doug Berks FLOSS Weekly episode 296 with Bro developers What are some activities that you do on a regular basis for which you would turn to another language or toolchain, rather than using Python? Powershell – The Python of windows Whitelisted and ubiquitous Password cracking – compiled language like C or assembly For anyone who is interested in getting involved in the security industry, and penetration testing in particular, what resources or tools would you recommend? Developers make the best InfoSec professionals Lots of jobs and opportunities Developer -> Systems Administration -> Information Security Security conferences – BSides, Defcon, Black Hat Online capture the flag challenges (google it) – good practice for critical thinking and using code for security exercises Get involved in the industry – Meetups, etc. SANS institute course, Python for Penetration Testers, SEC573 by Mark Baggett – sans.org Lots of free online resources Violent Python PicoCTF Counter Hack Challenges Picks Tobias Authy OpenWRT TP-Link Archer C7 Schemas For The Real World by Carina C. Zona The Soul of Software by Avdi Grimm China Mieville Chris Rapscallion Munich Dark Write Marginal Way Frankie and Johnny’s pyenv Mark Bagett Corelabs impacket Google Labs – Rekall Adams peanut butter cup fudge ripple cheesecake BSides security conference Keep in Touch Twitter: @markbaggett In Depth Defense The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
6/3/20151 hour, 14 minutes, 30 seconds
Episode Artwork

Jacob Kaplan-Moss on Addressing Cultural Issues in Tech

Read all of our show notes and find more information about us at podcastinit.com Brief Introduction Date of recording – May 18th, 2015 Hosts – Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) Overview – Interview with Jacob Kaplan-Moss Interview with Jacob Kaplan-Moss Introductions How were you first introduced to Python? So, we wanted to invite you on the show to discuss the keynote that you gave at this years PyCon. Can you tell us what you mean when you say that you’re a mediocre programmer and why that is such an important admission to make? What are some ways that we can change the tone of the conversation around programming skill? What do we gain by admitting to ourselves and others that we are not all phenomenal engineers? Where does the myth of exceptional vs terrible programmers come from? Can you provide some examples of times that you came in contact with this narrative? How do you think hiring tactics in technology companies contribute to this misconception and how can they be more accepting of average programmers? What are some ways that we can work toward eradicating the myth of the 10x programmer? Thinking about our industry’s problems retaining women and other undervalued groups, do you think the way many managers do performance reviews play a role? If so, how can we do better? What Works For Women At Work Can you tell us about some other ongoing narratives in the technology industry that you find equally as damaging as our misconceptions around skills and knowledge? – Tobias indie.vc Picks Tobias True Ability Manjaro Linux Vultr VPS Mage Wars Chris K is for Kriek Trello Dan Carlin’s Hardcore History Jacob Kaplan-Moss Hello Web App What Works For Women At Work Why Women Leave Tech: What the Research Says Library Extension for Chrome and Firefox Keep In Touch @jacobian
5/26/201549 minutes, 35 seconds
Episode Artwork

Jonathan Slenders Talks About Prompt Toolkit

Visit our site at podcastinit.com for more show notes and news. Brief Introduction Date of recording – May 17th, 2015 Hosts – Tobias Macey and Chris Patti Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) Overview – Interview with Jonathan Slenders Interview with Jonathan Slenders Introductions How were you first introduced to Python? -Chris What inspired you to create the python-prompt-toolkit? What are some design considerations that you made when building prompt-toolkit? Make minimal use of inheritance Overly strong coupling Better clarity for the API of your library Completely event driven / asynchronous No global state ptpython completion benefits from asynchrony – The jedi completion library is too slow – completion happens in its own thread You have built a number of projects that use the prompt-toolkit as a core component, did you have them in mind from the beginning, or are they experiments to test the capabilities of the toolkit? tmux rewrite in Python, abandoned, original motivation for prompt-toolkit ptpython pgcli ptpdb pyvim Do you intend to bring PyVim to feature parity with Vim, or is it just intended for experimentation? Short answer: Don’t know – but will probably never be in full parity with Vim What inspired you to create ptpython and why did you choose to make it a stand-along project rather than extending iPython? How difficult was it to integrate with IPython and what were the benefits? IPython has its own event loop – this presented difficulties as prompt-toolkit has its own as well What are some of the most interesting uses that you have seen of the prompt-toolkit? PyVim – really challenged the design pgcli Picks Tobias vimsert Johnny Cash Project Interstellar Chris Grimm Telekinesis pandoc vimpager Homebrew Cask Jonathan Slenders Belgian Beer Rochefort Western European Folk Dancing Keep in touch Twitter – @jonathans GitHub – jonathanslenders
5/19/201540 minutes, 53 seconds
Episode Artwork

Ned Batchelder

Visit podcastinit.com for information about the show and links to our iTunes and Stitcher feeds. Brief Introduction Date of recording – May 4th, 2015 Hosts – Tobias Macey and Chris Patti Overview – Interview with Ned Batchelder Follow us on iTunes, Stitcher or TuneIn Give us feedback! (iTunes, Twitter, email, Disqus comments) You can donate (if you want)! Interview with Ned Batchelder Introductions How did you get introduced to Python? Zope … Implemented in Python How did you get started as the organizer for Boston Python Meetup? History is long and varied (Why is this switching to numbers? Started – 6 people sitting around a coffee table 5 or 6 years Co-organizer Jessica McKeller Built structures to help keep the community goingr Weekend Python Workshop People ‘adjacent’ to the male members – wives, mothers, etc. “What comes next” from weekend workshops – became Project Night How much of your time ends up being dedicated to the Python community? Also maitainer of coverage.py Active on Freenode IRC #python 20 hours a week What are your goals for the Boston Python community? Continue to grow More events, different events? chipy – Chicago UG very active – 1 on 1 mentoring program Smaller events – 5 person events – study groups All levels not just beginners Computational Biologists – study genomics Three user groups Pyladies Boston DJango Boston Boston Python Meetup What do you find to be the most important thing(s) for building a healthy community (particularly in reference to programming)? Consistency – good to know what to expect Pick a cadence – don’t burn out Speakers aren’t superheroes, they’re just people. ‘Everyone has at least one talk in them’. Value in having a blog, twitter stream – people talk back to you and by correcting your mistakes everyone benefits. How do you keep people engaged outside of the monthly meetings? Meetup.com – requires moderation python.org mailing lists – unmoderated – low traffic Need to do more in that regard What do you like the most/least about the Python community? Communities can improve – IRC has gotten better Turmoil on PSF mailing list over election for directors How do you strike a balance between sponsors and the rest of the community? Do you have policies around sponsored presentations / talks? Tend not to do sponsored talks Microsoft NERD – great benefit to Boston Python Provides monthly space for the group 1 minute slots for sponsors No sales pitches What are the steps I can take to start my own tech community? How can you get the word out? Meetup.com is useful People like free food and beer Be predictable. Pick something sustainable What is the State of Python, from your perspective? No signs of slowing down Ruby people are moving to other environments Python people are still using Python Python 2 to 3 conflict is unfortunate – transition could have been handled more smoothly Python 3 ecosystem is getting much better Next big drama – type hinting proposal Appears to be contrary to one of the basics tenets of the language at first blush Do you feel that Boston will ever have its own regional Python conference? Toyed with bid to bring Pycon to Boston Would require someone stepping up to do it Not sure how a regional conference ‘feels’ as a local event Try to have Boston Python be like a year long conference all year long Huge undertaking Picks Tobias Scribd Konch DupeGuru Chris The River Cafe Pythonista Rototo – IOS Game Stone Brewing Arrogant Bastard Ned Tox Pythonz Spell Tower Richard Feynman’s Cornell Lectures Keep in Touch Twitter: @nedbat and @bostonpython IRC: nedbat nedbatchelder.com bostonpython.com
5/12/20151 hour, 15 minutes, 55 seconds
Episode Artwork

Travis Oliphant

For show notes and other content, visit our site at http://www.pythonpodcast.com?utm_source=rss&utm_medium=rss Brief Introduction Date of recording – Apr 28th 2015 Hosts – Tobias Macey and Chris Patti Overview – Interview with Travis Oliphant Interview with Travis Oliphant Introductions How did you get introduced to Python? I’m curious what inspired you to create NumPy and SciPy? Why did you choose Python for those libraries? Numeric, Jim Hugunin Morphology library in NumArray For those of us who aren’t in the know, can you provide a brief definition of what data science is and how you got involved in it? Term coined by DJ Patil Answer: Anybody who takes data and tries to derive insights from it Nobody really knows what this means Can you tell us the story of how Continuum Analytics came to be? What are some interesting projects that you have worked on with Continuum Analytics? Bokeh Wakari Anaconda Numba Blaze Can you explain a bit about what NumFocus is and how it got started? How can our audience get involved with NumFocus? For someone just starting out in the data science and data analytics space, what advice would you give? Download Anaconda, learn as much Python as you can Google search “Data Analysis in Python” iPython Notebooks in data analysis R community Meetups Online classes R Community can be helpful Of your myriad achievements, what are you most proud of? Picks Tobias Used bookstores The Book Barn Cloudy with a Chance of Meatballs Kickin’ it Old School Chris Kids In The Hall MFA Boston Art in Bloom CodeNewbies Apple 27″ Retina iMac 5K Travis Oliphant Data Carpentry Tracy Teal (@tracykteal) Patterned on Software Carpentry Brain Science Podcast – Ginger Campbell, MD Money, Bank Credit and Economic Cycles Travis Contacts Twitter: Travis – @teoliphant NumFocus – @numfocus Continuum Analytics – @ContinuumIO The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
5/4/201552 minutes, 16 seconds
Episode Artwork

Kivy Core Developers

You can view all of the show notes for every episode at http://podcastinit.com?utm_source=rss&utm_medium=rss Brief Introduction Date of recording – Apr 21st 2015 Hosts – Tobias Macey and Chris Patti Overview – Interview with members of the Kivy core development team Interview with Kivy Core Developers Introductions How did you get introduced to Python? How did the Kivy project get started? What made you choose Python as the basis for Kivy? What were some influences on and inspirations for Kivy’s design? Raymond Hettinger – Beyond Pep 8 One of the amazing things about Kivy is that it’s comparatively simple to learn and get started with. Did this ease of use occur by design or accident? What were some of the biggest challenges to designing or implementing Kivy? If you could start the project over, what would you do differently? What are some of the most interesting things you’ve seen Kivy used for? Gabriel Pettier – http://www.tangibledisplay.com/en/?utmsource=rss&utmmedium=rss Mathieu Virbel – https://www.digital-stories.fr/?utmsource=rss&utmmedium=rss and https://vimeo.com/80051846?utmsource=rss&utmmedium=rss What are some changes/features that you are particularly excited about for the future of Kivy? Wiki for roadmap to 2.0 PyJnius PyObjus Kivy-iOS Buildozer Kivy Remote Shell Plyer Are there any platforms/operating systems that you are trying to add support for (e.g. Sailfish OS, Ubuntu Phone, Firefox OS)? Is there anything in particular that you would like to ask for our listeners to help with? Google Summer of Code – If you didn’t get accepted, DO it anyway! Start small – documentation fixes Fix issues Huge backlog – help answering questions Maintainers for subprojects – like PyJnius Sponsors – Kivy core team looking for new hardware Increase unit test coverage If you find a bug submit a test case Picks Tobias Zeal CommitStrip Chris Jack’s Abbey Smoke & Dagger Woman in Gold Mathieu Virbel YAPF Yet Another Python Formatter Learn Chinese With Cats! Rince Cochon Akshay Aurora Mangoes! Tic-Tac-Toe machine controlled by Kivy Ryan Pessa E-Cigarettes – The MilkMan by Vaping Rabbit Gabriel Pettier I3WM Tiling window manager Boulet Corp SMBC Contacting the Kivy Core Team Kivy.org – About Us page The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
4/27/20151 hour, 30 minutes, 33 seconds
Episode Artwork

Reuven Lerner

Full show notes can be found at http://podcastinit.com/episode-2-reuven-lerner.html?utm_source=rss&utm_medium=rss Episode 2 Brief intro Recording date/time Hosts Overview Reuven Lerner Interview Please introduce yourself How did you get introduced to Python? How did you break into the field of providing Python trainings? What are the most common languages that your students are coming from? What are some of the biggest obstacles that people encounter when learning Python? Where does Python draw the inspiration for its object system from? In what way(s) does learning Python differ from learning other languages? What sorts of materials/mediums do you use for training people in Python? Python Tutor Do you use your book (Practice make Python) as follow up material for your trainings? In your freelance work, what portion of your projects use Python? Ruby is Oscar, Python is Felix Have you seen a change in the demand for Python skills in the time between when you first started using it and now? What types of projects would cause you to choose something other than Python? Picks Reuven Lerner Daily Tech Video Mindless Eating: Why We Eat More Than We Think by Brian Wansink Age of Ambition: Chasing Fortune, Truth, and Faith in the New China by Evan Osnos Chris Patti Spencer Trappist Ale Rich Hickey’s The Value of Values YouCompleteMe – Vim auto-completion SizeUp for OSX Tobias Macey CheckIO – Gamified practice programming Snap Circuits Nvidia Shield Tablet Samson Go Mic Portable USB Condenser Microphone Zoho Apps Closing remarks Reuven Contact: Website blog Twitter: @reuvenmlerner
4/23/20151 hour, 7 minutes, 31 seconds
Episode Artwork

Thomas Hatch

Full show notes can be found at http://podcastinit.com/episode-1-thomas-hatch.html?utm_source=rss&utm_medium=rss Brief Intro Hosts Overview Python at Chefconf! Plug for Talk Python To Me Thomas Hatch Interview Picks Thomas Hatch Flow Based Programming IOFlo Imagine Dragons Chris Patti Stone Imperial Russian Stout Python One Liner Games Boston Python User Group Tobias Macey Noisli CopyQ Pelican Moving From Heroku to AWS With Salt Part 1 Moving From Heroku to AWS With Salt Part 2 Closing Remarks
4/11/20151 hour, 6 minutes, 50 seconds
Episode Artwork

Podcast.__init__ - Introduction

Welcome to the first episode of a new podcast focused on bringing you the stories of the people who make the Python language and ecosystem great. Outline Introduction Brief Host Biographies Why We’re Doing This Why We Love Python & Favorite Tools Thank You Picks! Picks Tobias Summoner Wars Dbeaver KDE Connect Playerctl Chris ptpython Duchesse de Bourgogne The intro and outro music is from Requiem for a Fish (The Freak Fandango Orchestra) / CC BY-SA 3.0
3/21/201527 minutes, 23 seconds