Categories
Deals Programming Reading Material

Humble Bundle’s great set of computer science books for $2 each!

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.

Check out their page, and if you want 18 useful computer science books for as little as two bucks, get them now!

Categories
Meetups Programming Tampa Bay What I’m Up To

Suncoast Software Skills Meetup: Making sense of Git and GitHub — Monday, March 24 at Embarc Collective!

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

Why attend this meetup?

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!

Once again, here’s the registration page (and yes, it’s free)!

Categories
Artificial Intelligence Programming

The increasing reliance on AI in programming

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.

A non-coder relying on AI

Consider this entry from a couple of weeks ago in the subreddit for Cursor, the AI code editor:

Here’s the text of their post:

Cursor f*ck up my 4 months of works

 

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?”

Junior coders on AI

This article appeared on Namanyay Goel’s blog a couple of days after the Reddit post, and according to its stats, it’s already garnered a million views:

Here’s the text of the introduction:

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.

(As user number 216 of Stack Overflow, with over 8,000 reputation to my name, this hurts a little.)

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

A super-senior coder relying on AI

And finally, here’s a tweet from the very beginning of February, a couple of weeks before the prior two pieces:

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.

Categories
Hardware Programming What I’m Up To

My newest gear: The Raspberry Pi 500!

So this arrived:

Raspberry Pi 500 box.

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.

Technical details

The full details are on the official product sheet, but I’ve listed the more important stuff below:

  • Device: Raspberry Pi 500
  • What it is: A Raspberry Pi 5 single-board computer placed inside a keyboard chassis to create a 1980s-style “all-in-one” computer
  • Specs:
    • 2.4GHz quad-core 64-bit Arm Cortex-A76 CPU with cryptography extensions, 512KB per-core L2 caches and a 2MB shared L3 cache
    • 8GB LPDDR4X-4267 SDRAM
    • 32GB Class A2 microSD included (this is the “hard drive”)
    • Dual-band (2.4GHz and 5.0GHz) IEEE 802.11b/g/n/ac wifi
    • Bluetooth 5.0, BLE
    • Gigabit Ethernet
    • 2 USB 3.0 ports and 1 USB 2.0 port
    • Horizontal 40-pin GPIO header
    • 2 micro HDMIs port (supports up to 4Kp60)
    • H.265 (4Kp60 decode)
    • OpenGL ES 3.0 graphics
  • Price: US$90
  • First released: December 2024
  • Where to buy one:

What it’s like

Here’s the Pi 500 as seen from the top…

Top view of Raspberry Pi 500, a white keyboard containing a Raspberry Pi 5 computer inside.

…and here it is, as seen from the back.

Back view of Raspberry Pi 500, showing its ports: 1 USB 2, 2 USB 3, MicroSD card slot, USB-C power, 2 micro HDMI ports, GPIO port, Ethernet port, Kensington lock port.

This form factor takes me back the 1980s all-in-one computers on which I learned, most notably units like the Apple ][, Commodore VIC-20 and 64, Texas Instruments 99/4, Radio Shack TRS-80 and TRS-80 Color Computer, Atari 400 and 800, and Sinclair ZX80, ZX81, and ZX Spectrum (all of whose names are properly pronounced starting with “Zed-Ex”).

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:

  1. As a server for mobile apps or client applications that I’m running on my Mac and Windows machines.
  2. 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.
  3. 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!

Categories
Meetups Programming Tampa Bay

DUG Power Platform Meetup’s December Showcase and Holiday Party: This Wednesday, December 18th!

The Dynamics User Group (DUG) Power Platform Meetup group is offering a chance for you to share your Power Platform projects and celebrate the holidays on Wednesday, December 18 with a showcase followed by celebrations at Yeoman’s!

The tl;dr

  • What: DUG Tampa Power Platform Meetup: December Showcase and Holiday Party
  • When: Wednesday, December 18, with presentations at 6:00 p.m. and holiday party around 7:30 p.m.
  • Where: WeWork building (presentations — 501 E. Kennedy, Tampa) followed by Yeoman’s (party — 202 N. Morgan St., Tampa)
  • Find out more and register here

Details

From the page for this meetup:

Do you have something you build that you want to share?? Bring it to the December Power Platform Showcase!

 

Use the sign up below to save your spot! We will do up to 9 presenters with a 10 minute showcase!

 

Signup Sheet

 

The biggest feedback we hear from our group and at conferences is that people want to see some real life use cases of Power Automate, Power Pages, Power Apps, Copilot Studio, Power Bi Dashboards.

 

After we will head to Yeoman’s for food and drinks (Buy your own way) for advanced social networking.

 

We can’t wait to get everyone back together again!!

Categories
Artificial Intelligence Meetups Programming Tampa Bay

This Tuesday: “Welcome to the AI Jungle! Now What?”

This Tuesday, December 10th, the Tampa Bay AI Meetup will team up with the Tampa Java User Group to feature speaker Kevin Dubois, Principal Developer Advocate at Red Hat and Java Champion, who’ll give us a tour of the world of enterprise AI implementation with a presentation titled Welcome to the AI jungle! Now what?

The tl;dr

What the talk will be about

The AI revolution is transforming business landscapes, but many developers find themselves overwhelmed by this paradigm shift. How do we navigate this “Wild West” of tools, models, and platforms?

Kevin will demonstrate how open source technologies can standardize AI development and deployment in enterprise environments. Learn how to leverage familiar tools like containers, Kubernetes, CI/CD, and GitOps to build AI-powered applications in a secure, repeatable manner.

Discover how open source solutions are democratizing AI development and deployment. Through live demonstrations, Kevin will showcase:

  • OpenDataHub (OpenShift AI)
  • Kubernetes integration
  • Backstage implementation
  • Java application integration with Open Source models
  • Local development environment setup

About Kevin Dubois

Kevin Dubois is a Principal Developer Advocate at Red Hat where he gets to enjoy working with Open Source projects and improving the developer experience. He previously worked as a (Lead) Software Engineer at a variety of organizations across the world ranging from small startups to large enterprises and even government agencies.  He brings a wealth of experience to the table, including:

  • Java Champion
  • Active contributor to Quarkus, Knative, Apache Camel, and Podman
  • Member of Belgian CNCF and Belgian Java User Group
  • Multilingual speaker (English, Dutch, French, Italian)
  • International software engineering experience across startups, enterprises, and government agencies

When not revolutionizing enterprise AI, Kevin can be found hiking, gravel biking, snowboarding, or packrafting in various corners of the world.

Come to the meetup!

Come see a great presentation, have some food, meet with your peers in the Tampa Bay area, and participate in our lively and active tech scene.

Once again, you can find out more and register for the meetup on its event page. Hope to see you there!

Categories
Artificial Intelligence Humor Programming

When did GitHub Copilot get so snarky?

This actually hasn’t happened…yet. But there are enough people who practice asshole-driven development for there to eventually be an AI code assistant that behaves like this.