Created 10 October 2002, last updated 25 May 2023
These are longer pieces of writing, sometimes text only, sometimes on video.
Presentations I have given, mostly at PyCon:
- People: The API User’s Guide, a keynote for PyCon 2023
- Getting Started Testing: pytest edition, for Boston Python
- Big-O: How Code Slows as Data Grows, PyCon 2018
- Machete-mode Debugging, PyCon 2016
- Python Names and Values, PyCon 2015
- Getting Started Testing, PyCon 2014
- Loop Like A Native, PyCon 2013
- Pragmatic Unicode, PyCon 2012
- Python-Aware Python, PyCon 2011
- Tests and Testability, PyCon 2010
- A Whirlwind Excursion through Python C Extensions, PyCon 2009
- Coverage testing, the good and the bad, PyCon 2009
- DevDays Whirlwind Python
OK, not text, but many words from my mouth. Podcasts I have appeared on:
- May 2023: Test & Code #201: Avoid merge conflicts on your CHANGELOG with “scriv”, and my blog post about it: Scriv on Test & Code.
- December 2022: Talk Python to Me #395: Tools for README.md Creation and Maintenance, and my blog post about it: Talk Python to Me: Tools for README.
- January 2022: Podcast.__init__ #347: Generate Your Text Files With Python Using Cog, and my blog post about it: Cog resurgence.
- October 2021: Django Chat #99, and my blog post about it: Django Chat podcast.
- August 2021: Bug Hunters Café #12: The Café Within, and my blog post about it: Me on Bug Hunters Café.
- June 2019: The Changelog 351: Maintainer spotlight! Ned Batchelder, and my blog post about it: Changelog podcast: me, double-dipping.
- March 2019: Talk Python to Me #203: Beginners and Experts in Software Development.
- September 2018: Talk Python to Me #178: Coverage.py, and my blog post about it: Me on Talk Python To Me.
- August 2017: Podcast.__init__ #121: Coverage.py with Ned Batchelder, and my blog post about it: Coverage.py podcast.
- February 2016: Python Test #12: Coverage.py with Ned Batchelder, and my blog post about it: The value of unit tests.
- May 2015: Podcast.__init__ #5: Ned Batchelder.
Longer writing about creating software:
- What’s in which Python
- Big-O: how code slows as data grows
- Shell = Maybe
- Kindling projects
- Erroneously empty code paths
- Log message style guide
- Deleting code
- Fix error handling first
- Hex words and Hex color words
- Engineers are people
- Exceptions vs. status returns
- Exceptions in the rainforest
- Standards misconceptions
- Metadata is nothing new
- Destructors instead of catches
- Python parsing tools
- A quest for pythonic interfaces
- Facts and myths about Python names and values
- How C trace functions really work
- Subversion on Windows quick start
- Subversion branching quick start
- Bare-bones basic Mercurial for Subversion users
- Stopping spambots with hashes and honeypots
- Programming madlibs
- About WHOA
- Usability testing on the cheap
- Painless bug triaging
- Own your data: ad-hoc representations
- Presentation tips: entertain, educate, practice
- Software I use
Silly hobbies :)
- How to make business card cubes
- How to make coffee stirrer stars
- How to make a pop-up scene
- Lattice drawings
Writing about my family: