PyLadies is an international mentorship group whose goal is to encourage more women to become active participants and leaders in Python’s open-source community. There are PyLadies chapters all over the world, including one right here in Tampa Bay: TampaBay PyLadies.
The problem is that the TampaBay PyLadies Meetup group doesn’t have an organizer, and if one doesn’t step up, Meetup will automatically close that group.
We need a PyLadies group here. Python is expected to be a high-demand programming language for some time (it’s still at the top of the TIOBE Index), and let’s face it: programming is a sausage party. We guys are pretty good at things, but we need the knowledge, wisdom, and perspective that women provide.
If you’re a woman in the Tampa Bay area and would like to help keep TampaBay PyLadies up and running, please consider becoming an organizer for TampaBay PyLadies Meetup. You don’t need to be an expert at Python; all you need is to be interested in Python and have enough organizational know-how to run a Meetup (it’s relatively straightforward) and the time to do so. And if you need help, we in the Tampa Bay Python community — myself included — will gladly provide it.
I’ve just been informed that I’ll be one of the speakers at the 2025 edition of KCDC — Kansas City Developer Conference — which takes place August 13 through 15!
KCDC draws 2000+ attendees each year and features tracks for the following topics:
Architecture
AI and Data Science
Cloud
Data
DevOps
Human Skills
Java
JavaScript
Methodologies and Process Management
.NET
Other Technologies
Security
Testing and QA
UI/UX and Design
My talk
My talk, titled The Best, Most Fun Python Platform You’ve Never Heard Of, is a programmer’s introduction to the powerful, fun, and all-too-often-ignored Ren’Py. While Ren’Py is called a “visual novel engine,” I prefer to think of it as the fastest, most fun way to create Python applications.
Here’s the description for my talk:
Python’s occupied the number one spot on the TIOBE Programming Community Index for the past couple of years, and it’s the preferred programming language in for AI and data science. Perhaps you’ve been thinking about learning it, but the thought of having to do another set of “Hello World” style exercises is filling you with dread. Is there a more fun way to get up to speed with Python?
Yes, there is, and it’s called Ren’Py. It’s billed as a visual novel engine and often used for writing dating simulation games, but it’s so much more than that. It’s a platform that lets you code in Python (and more) and deploy to desktop, web, and even mobile platforms, and with a fraction of the effort required by React, Vue, or Angular. It’s a fun framework that’s been used to produce games you can find on Steam, but it’s got applications well beyond amusement.
In this session, we’ll look not just at the basics of Ren’Py development, but the building of a dating game based on KFC’s official game, “I Love You Colonel Sanders,” a simple turn-based combat game starring Florida Man, and building mobile apps in a way that’s less frustrating than usual.
Chris Ayers is speaking too!
Better still, I won’t be the only Tampa Bay geek speaking — Chris Ayers will be there too, and he’ll be delivering his talk, The Power of Dev Containers and GitHub Codespaces:
Dive into the future of software development with our session on Dev Containers and GitHub Codespaces. Dev Containers bring reproducibility and consistency across any platform with Docker, simplifying project onboarding and setup. GitHub Codespaces takes this a step further, offering scalable, cloud-hosted development environments, accessible from anywhere.
In this session, you’ll gain insights into:
Dev Containers Fundamentals: Understand their role in creating consistent development environments.
GitHub Codespaces Integration: Explore how Codespaces enhances Dev Containers, providing flexible, cloud-based development.
Practical Implementation: Learn to configure Dev Containers for your projects, including tool installation, VS Code extensions, port forwarding, and software setup.
Maximizing Codespaces: Discover how to customize Codespaces for remote development efficiency.
François Martin will be there!
If you were at the March Tampa Bay Java User Group meetup, you saw François Martin deliver a presentation with a not-at-all-controversial title: Why Software Testing is a Waste of Time.
Anitra and I had the pleasure of taking him around Tampa while he was in town, and I even lucked out by being able to catch up with him for dinner while we were in Greece earlier this month!
He’ll deliver two talks at KCDC:
82 Bugs I Collected in a Year You Won’t Believe Made It to Production
How writing just one import the wrong way slows down your website
Here’s an idea for my next video that I’ve been playing around with: vibe coding is like improv theatre.
Think about it: an improv troupe isn’t all that different from an LLM — it encourages its audience to provide a prompt, and they use that prompt to start generating content. The content they create is based on their training set (in the case of the improv troupe, that training is their life experience and theater training), and to the audience, what they generate seems almost magical.
But an improv troupe is at its best when its work is constrained to short skits. After a couple of minutes, the longer you stretch out the improv process, the worse the results are. Like LLMs, improv troupes have limited context windows.
In my (admittedly limited) experience experimenting with vibe coding, I’ve found it to be great for small tasks, but as I use it to make larger applications, the worse the code got. The LLM started referring to the same variable using different but synonymous names, it started writing code that looked like textbook examples that had increasingly less to do with the intended functionality, and it started creating more bugs.
But just as good playwright can take improvised skits and the ideas they raise and turn that material into a good two-hour play, a good developer can take application snippets generated by an LLM and the idea they raise and turn them into a good application.
I think this might be a great way to use vibe coding.
For the next four days — until 2:00 p.m. EDT on Monday, March 24, 2025 — Humble Bundle’s Computer Science the Fun Way bundle will be available, giving you 18 books for as little at $36, which puts the cost of each book at a mere two bucks!
All the books come from No Starch Press, a publisher of some great books, and the folks behind my current favorite books for my Python courses.
With everything else that we developers have to know and learn, many of us use Git and GitHub “on autopilot,” using them to perform a handful of daily tasks that out of habit with little understanding. If you want to get a better understanding of Git and GitHub — and have fun at the same time — Monday’s meetup is for you!
The tl;dr
What: Suncoast Software Skills Meetup — Making Sense of Git and GitHub
New developers have trouble with Git and GitHub, but so do experienced ones! Would you like to take a step back and really understand these fundamental developer tools? If so, thus upcoming session at Suncoast Software Skills Meetup is for you!
Join us for a beginner-friendly seminar designed to demystify Git and GitHub! Whether you’re a coding novice or simply looking to get a better understanding of version control, we’ll guide you through the fundamentals with a practical hands-on exercise.
And yes, this is a SHAME-FREE ZONE. Even after all these years using various source control systems leading up to Git and GitHub — rcs, cvs, Visual SourceSafe, Subversion (svn), TFS — we still stumble. This workshop is all about getting good at Git and Github!
We’ll also look at ways you can fix common Git mistakes that we all make, courtesy of Katie Saylor-Miller’s and Julia Evans’ delightful book, Oh Shit, Git!
You’ll also learn about great resources for getting better at Git and GitHub, such as Oh My Git!, a videogame that makes learning about Git fun.
This will be a fun meetup at one of Tampa Bay’s best meetup venues, Embarc Collective. And thanks to the Embarc Collective / Bank of America scholarship, we’re able to provide food (it’ll be cuban sandwiches, empanadas, and potato croquettes).
Join us this Monday, and let’s sharpen our software skills!
I’ve been seeing a concerning trend over the past couple of months, and perhaps you have too, where people are becoming increasingly reliant on AI for coding, and it might not be working out well for most of them.
Disclamer, I’m a moron who worked on the same project without thinking about the risk that Cursor could break everything. Yesterday, Cursor (even though I only asked it to feed a view on my UI) destroyed months of development.
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible? Ops!
Also, I know that while I’m the concern, cursor isn’t the only culprit, it’s also Claude (while good overall) still has some flaws
Don’t take the misspellings and strange grammar as a sign of a lack of smarts — there are “tells” such as the pluralization of “work” that suggest that the author’s first language isn’t English. And in a follow-up comment, they wrote:
I’m not a dev or engineers at all (just a geek working in Finance)
So what I see is someone with the mental capacity to master another language, seeing a problem in their area of expertise that could be solved by an application, and then setting out to build that application with the assistance of AI, even though programming isn’t something they’re familiar with.
First, I think we should celebrate that kind of go-getter attitude.
Second, those of you who are programmers have already seen the post’s author’s rookie mistake. It’s in this question:
My question: How do you back up your projects/versions to ensure that the next action on cursor is reversible?
You probably thought: Of course, they don’t know version control exists!
At the moment, even the best LLM will simply focus on answering the user’s questions and not stray too far to make helpful asides or ask clarifying questions, such as “Have you heard of Git?”
Something’s been bugging me about how new devs learn and I need to talk about it.
We’re at this weird inflection point in software development. Every junior dev I talk to has Copilot or Claude or GPT running 24/7. They’re shipping code faster than ever. But when I dig deeper into their understanding of what they’re shipping? That’s where things get concerning.
Sure, the code works, but ask why it works that way instead of another way? Crickets. Ask about edge cases? Blank stares.
The foundational knowledge that used to come from struggling through problems is just… missing.
We’re trading deep understanding for quick fixes, and while it feels great in the moment, we’re going to pay for this later.
The first line in the following section shouldn’t really be shocking but it still feels shocking:
I recently realized that there’s a whole generation of new programmers who don’t even know what StackOverflow is.
With AI, these junior developers gain speed of delivery, but at the cost of understanding what they delivered does. Which means that they can’t maintain or modify what they built — at least, not without even more AI assistance. Over time, what they build becomes a collection of quick fixes arranged together without any consideration of the system as a whole. That’s a whole lot of tech debt.
There’s more thought on this article in this video by Forrest Knight
In case you’re not familiar with the name, Andrej Karpathy has forgotten more about computer science and AI than most of us will ever learn. He was the director of artificial intelligence and Autopilot Vision at Tesla, and also worked at OpenAI, where he specialized in deep learning and computer vision. He also has a YouTube channel that’s worth checking out if you really want to boost your AI/ML skills.
Here’s the text of his tweet:
There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding – I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
This is great for Karpathy, but I’ve already talked with developers who’ve fully embraced the first part of the tweet, where Karpathy throws a lot of work to the AI. The problem is that they’re ignoring these key points from the second part:
The code grows beyond my usual comprehension, I’d have to really read through it for a while.
Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away.
It’s not too bad for throwaway weekend projects, but still quite amusing.
And let’s not forget the last three words of his tweet: it mostly works.
Karpathy is very, very good at coding and has lots of experience. He’s internalized a lot of best practices and has developed an instinct for programming and can spot “code smells” a mile away.
The people who’ve been talking to me about getting into “vibe coding” are not Karpathy, and some of them have mentioned that they have that increasingly common problem where they say “I know how to use my programming language and framework, but I don’t know how to apply what I know to build an application from the ground up.”
They’re not ready for vibe coding, but they’re doing it anyway. If your main gig involves working with code — and especially working with other people’s code — you’d better prepare for some interesting times over the next few years.
It’s a Raspberry Pi 500, which takes a Raspberry Pi 5, the latest generation of the “Internet of Things” tiny computer, and puts it into a keyboard chassis. I probably have more than enough computers, but I love Raspberry Pis, and this 1980s-style “all-in-one” form factor was impossible to resist, especially with its $90 price tag.
I put it on. my main desk and hooked it up to the secondary monitor with an HDMI splitter so that my MacBook and the Pi 500 can share it. Here’s what it looks like on my desk:
Setup was straightforward: the Pi 500 comes with a 32 GB A2-class MicroSD card, which acts as its “hard drive.” I plugged it into a MicroSD-to-USB adapter, plugged into my MacBook, and used the Raspberry Pi Imager app to load the latest version of the Raspberry Pi OS, which is based on Debian, onto the card.
In case you need a reminder that we live in an age of technological wonders, here’s the MicroSD card, posed beside a U.S. quarter coin for scale:
I was a bit concerned about the “feel” of the keyboard based on its “chiclet” style, but it’s actually not bad. It feels like a mid-level “wintel” laptop keyboard, and I think the feel of the Pi 500 keyboard feels better than the one on my Windows machine, a 2020-edition Acer Nitro 5 (nice machine, but I despise its keyboard and trackpad).
What it’s for
I already have computers that can run circles around the Pi 500 — an M1 MacBook pro and a Windows gaming laptop powered by a 10th-gen i5. What possible use could the Pi 500 possibly serve for me?
Here are my excuses — er, reasons:
As a server for mobile apps or client applications that I’m running on my Mac and Windows machines.
As a “bare-bones” computer for sharpening some rusty C++ skills and learning Go. No fancy IDEs — it’s just Visual Studio Code and the command line.
Because it’s fun.
Maybe that last reason is the most important — it’s just fun to play with the Pi 500, and that form factor makes me feel nostalgic for the days when I’d play games that I entered from BASIC source code published in Creative Computing or COMPUTE! magazine.
Watch this space
I’ll write more about my experiences with the Raspberry Pi 500 here, so watch this space if you’re curious about this fun, inexpensive platform!