Episodes
Should we think of open source components the same way we think of physical parts for manufactured goods? There are problems with supply chain analogy when applied to software. Thomas Depierre discusses some of those issues in this episode. Special Guest: Thomas Depierre. Links: I am not a supplier - article
Published 03/31/23
Anthony Sottile and Brian discuss changes that would be cool for pytest, even unrealistic changes. These are changes we'd make to pytest if we didn't ahve to care about backwards compatibilty. Anthony's list: The import system Multi-process support out of the box Async support Changes to the fixture system Extend the assert rewriting to make it modular Add matchers to assert mechanism Ban test class inheritance Brian's list: Extend assert rewriting for custom rewriting, like...
Published 03/08/23
A brief discussion of why Test & Code has been off the air for a bit, and what to expect in upcoming episodes. Links: Python Testing with pytest, 2nd EditionGetting started with pytest Online CourseSoftware Testing with pytest TrainingPython Bytes Podcast
Published 03/05/23
I don't think it's too much of a stretch to say that software is part of most scientific research now. From astronomy, to neuroscience, to chemistry, to climate models. If you work in research that hasn't been affected by software yet, just wait. But how good is that software? How much of common best practices in software development are making it to those writing software in the sciences? Patrick Mineault has written "The Good Research Code Handbook". It's a website. It's concise....
Published 08/30/22
The first game I remember coding, or at least copying from a magazine, was in Basic. It was Lunar Lander. Learning to code a game is a way that a lot of people get started and excited about programming. Of course, I don't recommend Basic. Now we've got Python. And one of the game engines available for Python is PursuedPyBear, a project started by Piper Thunstrom. Piper joins us this episode and we talk about PursuedPyBear, learning to code, and learning CS concepts with game...
Published 08/06/22
Having a personal site is a great playground for learning tons of skills. Brian Wisti discusses the benefits of running a his own blog over the years. Special Guest: Brian Wisti. Sponsored By: Rollbar: With Rollbar, developers deploy better software faster.Links: Random GeekeryJamstackEleventyNetlifyPlausible AnalyticspytestBeautiful Souppyinvoke - Invoke!rsyncInternet Archive : archive.orgRichStatamicjamstack.orgA static site generator should be your next language learning project
Published 07/01/22
PyPy is a fast, compliant alternative implementation of Python. cPython is implemented in C. PyPy is implemented in Python. What does that mean? And how do you test something as huge as an alternative implementation of Python? Special Guest: Carl Friedrich Bolz-Tereick. Sponsored By: Rollbar: With Rollbar, developers deploy better software faster.Links: PyPyHow is PyPy Tested? PyPy SpeedPython Speed Center
Published 06/21/22
In Python, before dataclasses, we had attrs. Before attrs, it wasn't pretty. The story of attrs and dataclasses is actually intertwined. They've built on each other. And in the middle of it all, Hynek. Hynek joins the show today to discuss some history of attrs and dataclasses, and some differences. If you ever need to create a custom class in Python, you should listen to this episode. Full Transcript Special Guest: Hynek Schlawack. Sponsored By: Rollbar: With Rollbar, developers...
Published 06/07/22
Will McGugan has brought a lot of color to CLIs within Python due to Rich. Then Textual started rethinking full command line applications, including layout with CSS. And now Textualize, a new startup, is bringing CLI apps to the web. Full Transcript Special Guest: Will McGugan. Sponsored By: Rollbar: With Rollbar, developers deploy better software faster.Links: richrich-clitextualTextualize.ioRich GalleryTextualize GalleryPython Bytes Podcast
Published 05/17/22
When you are teaching someone web development skills, when is the right time to start teaching code quality and testing practices? Karl Stolley believes it's never too early. Let's hear how he incorporates code quality in his courses. Our discussion includes: starting people off with good dev practices and tools linting html and css validation visual regression testing using local dev servers, including https incorporating testing with git hooks testing to aid in css optimization and...
Published 05/13/22
Being productive is obviously a good thing. Can we measure it? Should we measure it? There's been failed attempts, like lines of code, etc. in the past. Currently, there are new tools to measure productivity, like using git metrics. Nick Hodges joins the show to discuss the good and the bad of developer and team productivity, including how we can improve productivity. Special Guest: Nick Hodges. Sponsored By: Patreon Supporters: Help support the show with as little as $1 per month and be...
Published 05/12/22
Django has a handful of console commands to help manage and develop sites. django-rich adds color and nice formatting. Super cool. In a recent release, django-rich also adds nice colorized tracebacks to the Django test runner. Special Guests: Adam Johnson and David Smith. Sponsored By: Python Testing with pytest, 2nd edition: The fastest way to learn pytest and practical testing practices.Patreon Supporters: Help support the show with as little as $1 per month and be the first to know when...
Published 05/11/22
Twisted has been supporting asynchronous / event driven applications way before asyncio. Twisted, and Glyph, have also been encouraging automated tests for a very long time. Twisted uses a technique that should be usable by other applications, even those using asyncio or other event driven architectures. Full Transcript Special Guest: Glyph. Sponsored By: Rollbar: Rollbar enables developers to proactively discover and resolve issues in their code, so they can work on continuous code...
Published 03/21/22
Ryan Cheley joins me today to talk about some challenges of managing software teams, and how to handle them. We end up talking about a lot of skills that are excellent for software engineers as well as managers. Some topics discussed: handling code reviews asking good questions being honest about what you can't do with current resources and data discussing tradeoffs and offering solutions that can be completed faster than the ideal solution balancing engineering and managing making sure...
Published 03/17/22
Don't you just love technical interviews, with someone who just saw your resume or CV 5 minutes ago asking you to write some code on a whiteboard. Probably code that has nothing to do with anything you've done before or anything you will do at the company. No? Neither does Nathan Aschbacher. So when he started building the team at his company, he decided to do things differently. Hiring is one of the essential processes for building a great team. However, it's a high noise, low signal...
Published 03/08/22
We talk with Adam Johnson about his new book, "Boost Your Django DX". Developer experience includes tools and practices to make developers more effective and efficient, and just plain make software development more fun and satisfying. One of the things I love about this book is that it's not just for Django devs. I'd guess that about half the book is about topics that all Python developers would find useful, from virtual environments to linters to testing. But of course, also tons of...
Published 03/01/22
Lean TDD is an attempt to reconcile some conflicting aspects of Test Driven Development and Lean Software Development. I've mentioned Lean TDD on the podcast a few times and even tried to do a quick outline at the end of episode 162. This episode is a more complete outline, or at least a first draft. If you feel you've got a good understanding of TDD, and it's working awesome for you, that's great. Keep doing what you're doing. There are no problems. For me, the normal way TDD is...
Published 02/21/22
Exploratory testing is absolutely an essential part of a testing strategy. This episode discusses what exploratory testing is, its benefits, and how it fits within a framework of relying on automated tests for most of our testing. Sponsored By: Rollbar: Rollbar enables developers to proactively discover and resolve issues in their code, so they can work on continuous code improvement throughout the software development lifecycle. Learn more at Rollbar.com PyCharm Professional: Try PyCharm...
Published 02/09/22
"There are five practical reasons that we write tests. Whether we realize it or not, our personal testing philosophy is based on how we judge the relative importance of these reasons." - Sarah Mei This episode discusses the factors. Sarah's order: Verify the code is working correctly Prevent future regressions Document the code’s behavior Provide design guidance Support refactoring Brian's order: Verify the code is working correctly Prevent future regressions Support...
Published 01/31/22
A recent Twitter thread by Simon Willison reminded me that I've been meaning to do an episode on the testing trophy. This discussion is about the distinction between unit and integration tests, what those terms mean, and where we should spend our testing time. Sponsored By: Rollbar: Rollbar enables developers to proactively discover and resolve issues in their code, so they can work on continuous code improvement throughout the software development lifecycle. Learn more at...
Published 01/28/22
The idea of having a software as a service product sound great, doesn't it? Solve a problem with software. Have a nice looking landing page and website. Get paying customers. Eventually have it make enough revenue so you can turn it into your primary source of income. There's a lot of software talent out there. We could solve lots of problems. But going from idea to product to first customer is non-trivial. Especially as a side hustle. This episode discusses some of the hurdles from...
Published 01/18/22
Who should do QA? How does that change with different projects and teams? What does "doing QA" mean, anyway? Answering these questions are the goals of this episode. Sponsored By: Rollbar: Rollbar enables developers to proactively discover and resolve issues in their code, so they can work on continuous code improvement throughout the software development lifecycle. Learn more at Rollbar.com PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo...
Published 01/12/22
In this episode, I talk with Paul Ganssle about a fun workflow that he calls pseudo-TDD. Pseudo-TDD is a way to keep your commit history clean and your tests passing with each commit. This workflow includes using pytest xfail and some semi-advanced version control features. Some strict forms of TDD include something like this: write a failing test that demonstrates a lacking feature or defect write the source code to get the test to pass refactor if necessary repeat In reality, at...
Published 12/22/21
In the preface of "Python Testing with pytest" I list some reasons to use pytest, under a section called "why pytest?". Someone asked me recently, a different but related question "why NOT unittest?". unittest is an xUnit style framework. For me, xUnit style frameworks are fatally flawed for software testing. That's what this episode is about, my opinion of "Why NOT unittest?", or more broadly, "What are the fatal flaws of xUnit?" Sponsored By: PyCharm Professional: Try PyCharm Pro...
Published 12/17/21
A prototype is a a preliminary model of something, from which other forms are developed or copied. In software, we think of prototypes as early things, or a proof of concept. We don't often think of prototyping during daily software development or maintenance. I think we should. This episode is about growing better designed software with the help of a prototype mindset. Sponsored By: PyCharm Professional: Try PyCharm Pro for 4 months and learn how PyCharm will save you time. Promo Code:...
Published 11/30/21