Blog Archive 2024 Lazy self-installing Python scripts with uv Dec 09 2024 New Python Jumpstart course Nov 25 2024 Python Black Friday & Cyber Monday sales (2024) Nov 20 2024 Adding keyboard shortcuts to the Python REPL Oct 28 2024 Django and the Python 3.13 REPL Oct 13 2024 Switching from virtualenvwrapper to direnv, Starship, and uv Oct 03 2024 10-Week Hands-On Python Course Aug 20 2024 Quickly find the right datetime format code for your date Aug 05 2024 Why does "python -m json" not work? Why is it "json.tool"? Aug 01 2024 GPT and Claude from your URL bar Jul 11 2024 A beautiful Python monstrosity Jun 08 2024 PyCon 2024 Reflection May 28 2024 The new REPL in Python 3.13 May 08 2024 Installing a custom Python build with pyenv May 03 2024 10 years of Python conferences Apr 27 2024 2023 Python Black Friday & Cyber Monday sales (2023) Nov 20 2023 2022 Python Morsels Cyber Monday sale Nov 25 2022 Python Black Friday & Cyber Monday sales (2022) Nov 22 2022 Overlooked facts about variables and objects in Python: it's all about pointers Mar 29 2022 2021 Python Black Friday & Cyber Monday Sales (2021) Nov 22 2021 How to sort a dictionary in Python Nov 17 2021 How to flatten a list in Python Nov 01 2021 What's great about Python 3.10? Oct 08 2021 2020 Python Cyber Monday Sales (2020) Nov 27 2020 Short weekly Python screencasts for $50/year Nov 25 2020 Passing a function as an argument to another function in Python Jan 14 2020 2019 Cyber Monday Python Sales (2019) Dec 02 2019 Black Friday Sale: Gift Python Morsels to a Friend Nov 29 2019 Loop Better: a deeper look at iteration in Python Jun 18 2019 Python built-in functions to know May 21 2019 Is it a class or a function? It's a callable! Apr 16 2019 The problem with inheriting from dict and list in Python Apr 09 2019 Making the most of the PyCon sprints Apr 02 2019 Overusing list comprehensions and generator expressions in Python Mar 26 2019 Unique sentinel values, identity checks, and when to use object() instead of None Mar 20 2019 Tuple ordering and deep comparisons in Python Mar 13 2019 No really, pathlib is great Jan 15 2019 2018 Why you should be using pathlib Dec 21 2018 Python Cyber Monday Sales (2018) Nov 26 2018 Black Friday Sale: 50% Off 52 weeks of Python Morsels Nov 21 2018 Asterisks in Python: what they are and how to use them Oct 11 2018 Overusing lambda expressions in Python Sep 27 2018 How to make an iterator in Python Jun 21 2018 How to have a great first PyCon Apr 30 2018 Keyword (Named) Arguments in Python: How to Use Them Apr 04 2018 Multiple assignment and tuple unpacking improve Python code readability Mar 07 2018 Python: range is not an iterator Feb 28 2018 Python 3's range is more powerful than Python 2's xrange Feb 15 2018 2017 Craft Your Python Like Poetry Jul 23 2017 My Favorite Audiobooks of 2016 Jan 01 2017 2016 The Iterator Protocol: How "For Loops" Work in Python Dec 28 2016 Check Whether All Items Match a Condition in Python Nov 29 2016 Weekly Python Chat: Live from PyCon May 23 2016 How to loop with indexes in Python Apr 25 2016 Webinar: Regular Expressions in Python Mar 15 2016 How to Merge Dictionaries in Python Feb 23 2016 2015 My favorite audiobooks of 2015 Dec 31 2015 Python List Comprehensions: Explained Visually Dec 01 2015 Counting Things in Python: A History Nov 09 2015 The Cabo card game Jun 04 2015 Deploying an Ember CLI application through SSH Mar 10 2015 Creating a custom Bootstrap build Feb 25 2015 ECMAScript 5: The Future is Now Feb 09 2015 2014 Top 6 Audiobooks of 2014 Dec 20 2014 The many flavors of mock.patch Oct 13 2014 CSS classes and Django form fields Sep 30 2014 CLI for finding DRM-free Audiobooks May 14 2014 Supporting both Django 1.7 and South Mar 27 2014 2013 TDD with Django Tutorial Nov 04 2013 Visual Integration Tests for Django Oct 03 2013 Extensible JSON encoder using single-dispatch functions Sep 27 2013 Test-Inspired Development Jul 28 2013 Maintaining an open source project Jul 21 2013 Log all outgoing emails in Django May 20 2013 django-simple-history is back May 01 2013 Random name generator website Mar 10 2013 Random name generator in Python Feb 17 2013 2012 tmuxstart Dec 15 2012 Maintaining consistent coding conventions with EditorConfig Feb 17 2012 2011 Migrating from Subversion to Git Nov 17 2011 Django and model history Sep 29 2011 Sharing Screenshots in Linux Apr 03 2011 2010 Encrypted private keys in Django Dec 11 2010 Replacement for jQuery AlphaNumeric plugin Oct 18 2010 2009 Multiple Monitors with Multiple Workspaces Jun 15 2009 Ubuntu Now Boots in 10 Seconds May 01 2009