Sign in

Stephen Gruppetta

@stephengruppetta.com
1.8K followers 404 following 1.4K posts

Constantly looking for simple ways to explain complex things… Here you'll find: • Python • Narrative Technical Writing • Track & Field Athletics Links in the pinned post below stephengruppetta.com

PostsRepliesMedia
Stephen Gruppetta @stephengruppetta.com · 25/09/2026
Do you miss chatting to Real People? You've been chatting with agents for too long! Join me for a casual and informal chat at --Real Python Live-- Every Wednesday at 1900 UTC (or see time in your timezone here: realpython.com/live/real-py... @realpython.com
010
Stephen Gruppetta @stephengruppetta.com · 06/06/2026
What makes a good 100m start? Is it what commentators on TV want us to believe? Lyles vs Anthony at Rome diamond league--a step by step analysis, literally Here's the link: backonthetrack.substack.com/p/whats-a-go...
Cover image showing the title of the article What's a Good 100m Start?
010
Stephen Gruppetta @stephengruppetta.com · 24/05/2026
The first post in the Agents Unpacked series. My quest to move from "understanding chatbots and LLMs" to "understanding agents and agentic AI" www.thepythoncodingstack.com/p/understand...
121
Stephen Gruppetta @stephengruppetta.com · 21/05/2026
011
Stephen Gruppetta @stephengruppetta.com · 24/04/2026
Doubling Down on Python in The Age of AI I've been missing from The Python Coding Stack for a few weeks – but I'm back now. Like many, I've been thinking a lot about programming and Python in the age of AI. Here are my thoughts at present www.thepythoncodingstack.com/p/doubling-d...
Doubling Down on Python in the Age of AI - person holding a pair of glasses look at a cloudy sky
021
Stephen Gruppetta @stephengruppetta.com · 24/03/2026
Here's what these three years look like (on one of the metrics, not necessarily the most important one, either)
000
Stephen Gruppetta @stephengruppetta.com · 20/03/2026
I used this animation to explain `typing.Protocol` in a teaching session today. Life doesn't have to be boring…
030
Stephen Gruppetta @stephengruppetta.com · 06/03/2026
It's the 3-year anniversary of The Python Coding Stack in a month's time… …should I bake a cake? Sure, there are publications with tens or hundreds of thousands of readers. But I'm pleased that nearly 7,000 people like my quirky writing and unconventional perspectives
152
Stephen Gruppetta @stephengruppetta.com · 05/03/2026
I normally write about more intermediate-ish topics (whatever “intermediate” means), but I explored a different perspective to teach OOP in a beginners’ course recently which you may find interesting… Here's the article: www.thepythoncodingstack.com/p/python-oop...
030
Stephen Gruppetta @stephengruppetta.com · 23/02/2026
This makes me happy… --- Best python book ever! ⭐️⭐️⭐️⭐️⭐️ February 16, 2026 | Verified Purchase "Thank you. This is an amazing python book. You cared so much about your reader with empathy and decided to write a book you would love to read …
110
Stephen Gruppetta @stephengruppetta.com · 07/02/2026
What’s The Point of `itemgetter()` in Python? This is what I asked myself the first time I came across `itemgetter()`. But now I love to use this function… [The Club post $$] www.thepythoncodingstack.com/p/whats-the-...
000
Stephen Gruppetta @stephengruppetta.com · 30/01/2026
Do you write technical articles? For your own benefit or for others? >> Free session starts in a few hours << Join me as I go through some of the things I look out for when I write and edit tutorials and other technical texts It may help you write more clearly… Starts Soon… luma.com/5z418e58
010
Stephen Gruppetta @stephengruppetta.com · 30/01/2026
Alternative constructors using class methods come to the rescue to help my family meal plan for the week www.thepythoncodingstack.com/p/python-alt...
001
Stephen Gruppetta @stephengruppetta.com · 25/01/2026
Help me crowd-source the Python Index (I'll come up with a better name at some point…) • How easy does Python make it to write good code? • How hard does Python make it to write bad code? The ideal programming language scores (1, 1) Where would you place Python?
a 2D set of axes with 'easy to write good code' on y-axis and 'hard to write bad code' on x-axis. The (1, 1) point is marked as The holy grail. Post asks where Python is on this grid
302
Stephen Gruppetta @stephengruppetta.com · 17/01/2026
Did you ever notice that you do _this_ each time you start walking? Another section in my sprinting biomechanics series… backonthetrack.substack.com/p/13-you-pus...
021
Stephen Gruppetta @stephengruppetta.com · 12/01/2026
Another coffee-themed article on The Python Coding Stack. Coffee is everywhere, but this one is about enums in Python www.thepythoncodingstack.com/p/python-enu...
Need a constant in Python? Enums can come in useful
121
Stephen Gruppetta @stephengruppetta.com · 04/12/2025
…and then there's also this simpler one showing the opening two sentences of this post. Sentences don't come shorter than this
000
Stephen Gruppetta @stephengruppetta.com · 04/12/2025
And here's another one. Which one do you like more?
101
Stephen Gruppetta @stephengruppetta.com · 04/12/2025
I like these cover images Substack creates for each post. Here's the link if you want to read this quirky post: thepythoncodingstack.substack.com/p/my-life-th...
Cover image for My Life • The Autobiography of a Python Object
141
Stephen Gruppetta @stephengruppetta.com · 11/11/2025
In the last few days, I was discussing the Apollo 11 and 13 missions with my daughter and, separately, someone asked me for my lunar landing project Clearly a sign from the stars (Ha!) So, here's a preview and the link to the article thepythoncodingstack.substack.com/p/python-tur...
011
Stephen Gruppetta @stephengruppetta.com · 04/11/2025
Who doesn’t love receiving feedback… Are *you* subscribed to The Python Coding Stack? www.thepythoncodingstack.com
040
Stephen Gruppetta @stephengruppetta.com · 20/10/2025
This post is not about tuples. It’s not about lists or strings, either! (Preview) www.thepythoncodingstack.com/p/are-tuples...
020
Stephen Gruppetta @stephengruppetta.com · 16/10/2025
Hurray. Lucky 13 rising in technology on Substack (There’s a reason for this happening now, and I know it will be short-lived, but that won’t stop me from celebrating anyway, no matter how brief)
020
Stephen Gruppetta @stephengruppetta.com · 14/10/2025
I’ve dropped my phone one time too many… the brightly-coloured lines look cool, but it’s not quite the look I want for my iPhone display!
100
Stephen Gruppetta @stephengruppetta.com · 29/09/2025
It’s time to sprint. Where do you start? You start from standing still. That’s how all sprinting starts. Your velocity is zero. You need to increase your velocity. You need to accelerate. 1/n
101
Stephen Gruppetta @stephengruppetta.com · 28/09/2025
I think you may find this interesting even if you don’t care about sprinting. Here’s the first part of How to Sprint: Understanding Biomechanics …and as you’d expect, I wrote it in my own casual and narrative style. backonthetrack.substack.com/p/1-its-time...
011
Stephen Gruppetta @stephengruppetta.com · 12/09/2025
I have three very different publications. One has 6,000 subscribers. Another has 250. The third has 16. But what are the similarities? breakingtherules.substack.com/p/an-audienc...
000
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
And we're left with two objects that cannot be accessed, since the only way to access Marge is through the Homer object and–you got this–the only way to access Homer is through the Marge object! Both objects are unreachable …but they still have a non-zero reference count!
The `homer` and `marge` objects reference each other, but they no longer have any external identifiers referencing them
111
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
``` del marge ```
The `marge` identifier is now crossed out
100
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
``` del homer ```
The `homer` name is now crossed out
101
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
``` homer.spouse = marge ```
There's now also a link from `homer.spouse` to `marge`
100
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
``` marge = Person( name="Marge Simpson", unique_id="marge002", spuse=homer, ) ```
Both `homer` and `marge` objects represented as rectangles
100
Stephen Gruppetta @stephengruppetta.com · 29/08/2025
Here's a visual summary of the article I just published on The Python Coding Stack - follow the thread…one image per post "When You No Longer Need That Object • Dealing With Garbage in Python" ``` homer = Person( name="Homer Simpson", unique_id="homer001", spouse=None, ) ```
Representation of the `homer` object
101
Stephen Gruppetta @stephengruppetta.com · 18/08/2025
The majority who read this post needed to read this post. Great–that's the whole point of writing these posts! www.thepythoncodingstack.com/p/do-you-rea...
A poll showing the results to the question "What does Python output when you evaluate this expression: `5 or 0`?", the majority (72%) answered `True`
120
Stephen Gruppetta @stephengruppetta.com · 07/08/2025
The "Having a post liked by a celebrity" feel… …and it probably also means my analysis (of the final 50m of the Lyles v Bednarek 200m at last weekend's US trials) was spot on. If Ato thinks so, I must be right!
Post showing an Ato Boldon like
111
Stephen Gruppetta @stephengruppetta.com · 06/08/2025
Starting soon. If you're a Python beginner, join me for this free @realpython.com hands-on workshop realpython.com/live
022
Stephen Gruppetta @stephengruppetta.com · 05/08/2025
Tomorrow, Wed 6th, join me for a free @realpython.com workshop for beginners We'll build an arcade-style video game, and you'll learn lots of Python programming basics along the way And let's see who'll have the highest score at the end! Register here: realpython.com/live
Cartoon of a person holding a laptop teaching live, and information about the Real Python free Python Workshop, showing it's hosted by Stephen Gruppetta
010
Stephen Gruppetta @stephengruppetta.com · 21/07/2025
Here’s the poll at the start of my latest article. The results are interesting. I’m glad I wrote this article! You can answer here (or just see the results): www.thepythoncodingstack.com/p/do-you-rea...
001
Stephen Gruppetta @stephengruppetta.com · 29/06/2025
Time for some Sunday morning reading…
000
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
…this gives three separate iterables again (tuples)
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
7. And zip these four tuples together (but since they're stored in a list, you first need to unpack the list using the unpacking operator `*`)
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
6. Add zips (zippers) to all four tuples
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
5. Sort by age [Note: these tuples are stored in a list, which is what `sorted()` returns]
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
4. Now you have four separate groupings (they're four tuples)
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
3. Use Python's `zip()`
101
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
2. Add zips (US: zippers) to the lists
100
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
Unzipping in Python in 8 pictures (and some code) 1. Three lists
111
Stephen Gruppetta @stephengruppetta.com · 31/05/2025
110
Stephen Gruppetta @stephengruppetta.com · 20/05/2025
As a physicist, I’m enjoying this book soooo much
011
Stephen Gruppetta @stephengruppetta.com · 19/05/2025
“Exceptionally fun” and “teaches very well”… I strongly believe these two points are closely related, but… “fun” is not a sufficient condition for good didactic outcomes. The “fun” needs to be part of a carefully planned and executed didactic plan. …and thank you for all the nice comments!
000