Software

Python on Windows with Steve Dower - Episode 70

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Test Engineering with Cris Medina - Episode 68

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Crossing The Streams - Talk Python with Michael Kennedy - Episode 67

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Mypy with David Fisher and Greg Price - Episode 65

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

$ pip3 install mypy-lang

Bug reports, feature requests, questions welcome on issue tracker: github.com/python/mypy

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

BeeWare with Russell Keith-Magee - Episode 64

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Armin Ronacher - Episode 63

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Bandit with Tim Kelsey, Travis McPeak, and Eric Brown - Episode 62

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

Picks

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Sentry with David Cramer - Episode 61

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

Picks

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Mercurial with Augie Fackler - Episode 60

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA

Pillow with Alex Clark - Episode 59

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

Picks

Links

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA