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.

AnnouncementsHello 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 projectsInterviewIntroductionsHow 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 Touchcool-RR on GitHubPersonal WebsiteConsulting WebsitePicksTobiasPyCon USCall for proposalsRegistrationRamNonviolent communicationLinks

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

Podden och tillhörande omslagsbild på den här sidan tillhör Tobias Macey. Innehållet i podden är skapat av Tobias Macey och inte av, eller tillsammans med, Poddtoppen.