Skip to content

News

"Fixed Stuff" โ€” A Love Letter to the Worst Commit Messages in History

Developers have been writing terrible Git commit messages forever. AI just made that inexcusable.

Let's be honest with each other for a moment.

You've done it. I've done it. Every developer reading this has, at some point, looked at a staged set of changes, thought very hard about what to type, and landed on:

"fix"

Or perhaps the slightly more ambitious:

"wip"

Or the unhinged optimism of:

"final" โ€” followed an hour later by "final2" โ€” followed the next morning by "ok actually final".

These are not commit messages. These are confessions. Evidence of a crime against future-you, against your teammates, and against the poor soul who will be staring at your Git history at 11 PM six months from now trying to figure out what broke production.

Spec Coding with Delphi: How I Built a Native Game Save Backup Tool in One Afternoon with Claude Code

Note

This is not an April Fools joke. This is a real project I built in an afternoon using Claude Code and Delphi. It is a command-line tool that scans my PC for installed games, identifies their save file locations, and creates backups with optional S3 upload. The entire implementation was generated by Claude based on my specifications, and it compiles to a single native executable with zero dependencies beyond sqlite3.dll. This is the power of spec coding.

There are a handful of tools out there for backing up PC game saves. They all share the same problems: bloated UIs, slow performance, confusing workflows, and the kind of feature creep that turns a simple task into a chore. I wanted something different. Something fast, something I control, something that just works.

So I built my own. In an afternoon. With Claude Code as my pair programmer.

Adapt or Disappear: How AI Turned a 2-Year Project Into a 1-Week Sprint

The Delphi community has strong opinions about AI โ€” and I get it. Privacy concerns, code quality worries, the instinct that real developers should not need a machine to help them write code. I have heard every argument in the book, and honestly, some of them are fair. The skepticism is real, though the tide may be turning. Still, the doubters outnumber the converts, and I am not here to pretend otherwise. But after what I just witnessed on a real-world migration project, I think even the skeptics will have a hard time arguing with the results. This is not about replacing developers โ€” it is about what happens when developers stop fighting the tool and start using it.

The Project

A customer approached us with a legacy desktop application built in Delphi 7. Let that sink in for a moment. Delphi 7 โ€” released in 2002. No Unicode support. No HiDPI awareness. Running on Firebird 1.5 โ€” a database engine so old its last update predates the iPhone. The application had been serving its purpose for over two decades, but the world had moved on. No responsive design. No web access. No mobile support. Customers had been begging for a web-based solution for years, but the cost and complexity of a ground-up rewrite in the legacy stack โ€” let alone migrating to a modern platform โ€” had always been prohibitive.

The target: a full-stack TypeScript application built on Next.js with server-side rendering, a component-based UI, Prisma ORM for database access, and a responsive design that works on both desktop and mobile devices. Not just a facelift โ€” a complete architectural transformation from a Win32 desktop application to a modern, deployable web platform.

This was not a toy project. It involved user authentication, role-based access control, property management workflows, incident tracking, image handling, complex relational data models, and a migration pipeline to move real production data from the legacy Firebird database. The kind of application that, in any traditional development shop, would require a team and a timeline measured in months โ€” which is precisely why it had not been done in over twenty years of customers asking for it.

AI Won't Replace Delphi Developers. But...

Grayscale Bitmap

Invent Your Own Controls and Libraries!

The other day I saw a post on a Delphi developer forum. A fellow developer had been struggling for days trying to convert a bitmap to grayscale. Days. He had tried multiple third-party components, downloaded libraries, read through outdated documentation, and was still stuck. The forum thread was filling up with suggestions for yet more components to install, each with its own quirks, licensing, and version compatibility headaches.

I asked AI. It took about two minutes.

Not two days. Not two hours. Two minutes.

Book Review: Apps and Services with .NET 10 (Third Edition) by Mark J. Price

Mark J. Price has done it again. After his excellent C# 14 and .NET 10 โ€“ Modern Cross-Platform Development Fundamentals, I could hardly wait for this third edition of Apps and Services with .NET 10 to be released โ€” and it absolutely does not disappoint. This is the third book in Mark's four-volume .NET 10 learning quartet, and it is exactly where the series hits its stride: broad in scope, practical in approach, and packed with real-world examples for every single topic it covers.

If you are a .NET developer looking to move beyond the fundamentals and into the technologies that actually power modern applications and services, this book belongs on your desk.

TMS Training Days 2026 in Rotterdam โ€“ April 23-24!

I'm thrilled to announce that I'll be speaking at TMS Training Days 2026 in Rotterdam, and I hope to see you there! After successful events in Lille and Bruges, the TMS team is bringing this incredible two-day developer conference to the Rotterdam Marriott Hotel (right across from Rotterdam Central Station) on April 23-24, 2026.

Stop the Hype! Let's Look at the Facts Before Leaving Next.js in 2026

Here's an interesting fact: When I got deeply involved in the Delphi community back in 2004, everybody was telling me "Delphi is dead." The hot new thing was .NET, and conventional wisdom said anyone still writing in Delphi was living in the past.

Guess what? It's 2026, and Delphi is still in production, still being actively developed, and I'm still making money writing code in Delphi. In fact, my entire consulting business is built partly on helping companies maintain and modernize their Delphi applications.

I learned something valuable from that experience: premature obituaries and hype cycles are terrible guides for technology decisions. Longevity comes from solving real problems reliably, not from being the hottest thing on tech Twitter.

Which brings me to today's situation.

RAD Is Not No-Code: Why Delphi Still Dominates Windows Desktop Development After 30 Years

The no-code movement is having its moment. Articles proclaim its death, its rebirth, its transformation. But amid all this noise, there's a critical distinction being lost:

Rapid Application Development (RAD) is not no-code, and the difference matters more than ever.

I've been building Windows desktop applications with Delphi for three decades. During that time, I've watched trends come and goโ€”from the CASE tool revolution to today's no-code platforms. And I've learned something important: there's a vast difference between tools that eliminate coding and tools that accelerate coding through intelligent design.

From 30 Years of Delphi to the Modern Web: My Journey Into 2026

A personal reflection on three decades of desktop development, and what comes next


The Landscape Has Changed

I started with Delphi before most developers today wrote their first line of code. Over 30 years, I watched Borland rise, worked inside the company, and built a career helping others master the platform. I've created hundreds of videos, spoken at conferences worldwide, and earned recognition in the Delphi community.

But I'm not writing this to reminisce. I'm writing because the world has fundamentally shifted, and pretending otherwise helps no one.

The traditional setupโ€”a developer at a desk, building Windows applications that run on office PCsโ€”is no longer the default. People work from phones on trains. They access business systems from tablets in warehouses. Executives approve invoices from airport lounges.

The desktop isn't dead. But it's no longer the center of gravity.

GitHub Is Not a Backup (And Why That Matters)

I came across something this morning that made me pause: a developer celebrating their move from daily ZIP files to GitHub, calling it their "backup solution." While I'm genuinely happy they've discovered version control, this statement reveals a dangerous misconception that's worth addressing.

Let me be clear: GitHub is not a backup. Version control is not backup. Full stop.

Random Numbers in Delphi: When the RTL is Good Enough (And When It Isn't)

I recently came across several Delphi implementations in which developers used their own random number generators, apparently unaware ofโ€”or unconvinced byโ€”the built-in Randomize and Random functions that have been part of the RTL since Delphi's earliest days. Some developers seem to believe they can do better than the runtime library, while others might simply not know what's already available.

Let's take a fair look at Delphi's built-in random number generation, understand when it's perfectly adequate, and identify the rare cases where you might actually need something more sophisticated.

TStringList: The Swiss Army Knife You're Probably Underusing

If you've been writing Delphi code for any length of time, you've used TStringList. It's the go-to container for managing lists of strings. But here's the thing: most developers only scratch the surface of what this versatile class can do.

Let me show you three powerful features that often fly under the radar: duplicate handling, built-in sorting, and the surprisingly useful CommaText property.

๐ŸŽ… Santa's Sleigh: A Festive Delphi VCL Experiment ๐ŸŽ„

Happy Holidays to the Delphi Community! โœจ

As the holiday season wraps us in its magical embrace, I wanted to share a fun little project that perfectly captures the Christmas spirit while showcasing the power of AI-assisted Delphi development. Meet Santa's Sleigh - a delightful VCL application that brings Santa and his reindeer flying across your Windows desktop!

The Magic Behind the Scenes ๐Ÿช„

This isn't just another holiday greeting - it's a fascinating experiment in modern Delphi development. The entire application was created through AI-powered coding, demonstrating just how far we've come in leveraging AI to build real, working applications.

What Makes This Special? ๐ŸŒŸ

Santa's Sleigh is a transparent, borderless VCL application that features:

  • ๐ŸฆŒ Rudolph Leading the Way: Watch as Rudolph with his glowing red nose leads the reindeer team
  • ๐Ÿ›ท Authentic Sleigh Design: Hand-drawn sleigh with proper curved runners and gold trim
  • ๐ŸŽ… Jolly Santa: Complete with his iconic red suit, white beard, and festive hat
  • โœจ Smooth Animation: 60 FPS animation with gentle wave motion as Santa glides across your screen
  • ๐ŸชŸ Transparent Magic: Using VCL's transparency features, only Santa's sleigh appears - no window frame in sight!
  • ๐Ÿ’ซ Trailing Sparkles: Christmas magic sparkles trail behind the sleigh

A Christmas Carol for Delphi Developers: โ€œAI Humbug!โ€ โ€ฆ or Maybe Not? ๐ŸŽ„

Every December, you can hear it echo across developer forums:
โ€œAI? Bah, humbug! It doesnโ€™t help with real Delphi code!โ€

If youโ€™ve spent decades refining your Delphi craft โ€” from Turbo Pascal to todayโ€™s VCL and FireMonkey projects โ€” you might share that sentiment. But let me show you why those days are fading faster than a pine tree in January.

Recently, I built a new Delphi system information component, TSysInfo, in about one hour.

No, not because I worked all night โ€” but because AI helped.

Screenshot of component in RAD Studio IDE

Looking Forward to Speaking at TMS Training Days 2026 in Rotterdam!

Iโ€™m very excited to share some great news โ€” TMS Software has announced the next edition of TMS Training Days, which will take place in Rotterdam, the Netherlands, on April 23โ€“24, 2026!

This isnโ€™t my first time being part of a TMS event, and even though Iโ€™ve been a bit quiet lately when it comes to TMS and Delphi, Iโ€™m proud and truly honored to be invited again to speak at yet another TMS Days.