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.

Categories
Programming Tampa Bay What I’m Up To

It’s that time of the week again…

Since March 13, 2017, I’ve posted a weekly list of tech, entrepreneur, and nerd events happening in Tampa Bay and surrounding areas. I’ve continued to do this to this day, with me typically assembling the list on Thursday and posting it on Friday.

Today is Thursday, so I’m assembling the list — or more accurately, a Jupyter notebook running some Python code I wrote is scraping various sites and creating a checklist like the one you see in the screenshot above.

Back when I first started the list, I used to put it together manually, but as Tampa Bay’s tech scene and events grew, so did the list. It wasn’t long before assembling the list was eating up the better part of an afternoon, and that’s when I decided to add some automation to the process.

The checklist contains likely candidates for inclusion in the list, and each item in the list is checked by default. The checklist is there to allow me to apply my final judgement as to what goes and doesn’t go into the list.

There’s a hug “deny” list of key words and phrases that cause an event to not make it into the checklist because it doesn’t fall under the umbrella of “tech, entrepreneur, or nerd.” For example, events with the words “real estate” don’t make it into the list — they often contain the word “developer,” which my code is looking for, but that’s not the right kind of developer event for the list.

Would any of you be curious as to what’s in my tech events list-creating code and how it works? Would you like me to do a presentation at a local meetup or on YouTube explaining how it works? Let me know.

 

Categories
Programming What I’m Up To

GitHub Copilot: A free trial that actually worked

There aren’t that many free trials that manage to convert me into a paying customer, but GitHub Copilot is now one of the exceptions. I don’t think I’ve seen a programming add-on tool that’s been this useful or beloved by developers since…well, maybe ReSharper back during my time as a Microsoftie (2008 – 2011).

It’s pretty good — but far from perfect — at generating Python code I’m thinking of writing as I type it in, which has resulted in a speed boost for me. Between Copilot (which I’ve had for free for a bit) and Claude Sonnet (which I’ve been paying for), I’ve been enjoying the new assisted world that I’ve been coding in.

Your mileage will vary with the programming language you’re using and the sort of application you’re working on. If what you’re doing matches lots of examples in Copilot’s training set, you’ll get lots of good suggestions. However, if you’re coding in a more obscure programming language, or writing a kind of application for which there would’ve been few examples to add to Copilot’s training set, you’ll get fewer suggestions, and a good number of them will be wrong.

But for me, Copilot’s a very helpful programming tool that I’ve harnessed in order to do more. Pardon me while I go pull out Atypical Consulting LLC’s credit card…