Author: way0utwest

  • Today’s AI

    “This is the worst version of the car you’ll own.”

    That was a quote from the delivery manager when my wife and I picked up our Lucid Gravity. He said that since the car is very software-oriented and gets regular over-the-air updates, the car keeps improving. The car I bought is the worst version because it keeps getting better. His experience over the last few years with the company has shown that the changes made in software result in customers growing more fond of their vehicles.Today’s editorial: Today’s AI

    Or maybe they’re less annoyed by things that don’t work well. Ah, the joys of software.

    I was reminded of this interaction when I saw someone send a note at Redgate about AI with this quote: “Today’s AI is the worst AI you will ever use.”

    Is that true? I guess, to the extent that we think the AI model you use today will improve and its capabilities will grow, that might be true. Certainly, the move from Sonnet 4 to 4.5 to 4.6 to 5 seems to be, well …

    The same to me. Has the model improved? By benchmarks and measures, it has. The same could be said for the GPT models from OpenAI. However, I don’t know that I have found much difference. Depending on my guidance, I think I’ve found that I’m as likely to get great results as poor ones from different models. I’ve tended to stick with Sonnet models, though often for the focused tasks I pick, the Haiku models work, as do the Opus ones.

    I’m cheap, so I don’t often see the point in using Opus. I haven’t found it to be clearly better, though; to be fair, I’m not letting it loose on large tasks, and I am conscious of costs. I’m not paying, but I tend to treat all things I do as if I were paying the bill myself. That helps me to be aware of when I am being effective and efficient.

    When I’ve seen my cars upgrade (first a BMW, then a Tesla, now a Lucid), there have been clear changes that I’ve appreciated. There are sometimes annoying upgrades, which always remind me of Jeff Moden: Change is inevitable… change for the better is not. That can be true, but I find that the changes made in software often make sense, and I can see how they an improvement. Even when I don’t like them.

    For a non-deterministic model, however, I don’t know how easy it is to measure change, and if the model is “smarter”, but I don’t use the extra smart-ness, is it better? I have no idea how to measure these improvements, and I am certainly skeptical that these benchmarks and the frontier model hype is driven more by the need for profit than by a better AI model.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

    Note, podcasts are only available for a limited time online.

  • The SUM of Nothing: #SQLNewBlogger

    I caught this interesting item over on Pinal Dave’s blog: Eleven Interview Questions that Look Too Easy. I decided to give you a few thoughts from me on the SUM one.

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

    The Sum of Nothing

    I am guessing more people working with SQL know that if you have a NULL in your data and try to sum the column, you get the NULL ignore. After all, you can’t sum up values if one is unknown. The code and query below show this:

    2026-09_0133

    Note, with ANSI_WARNINGS I get a note in the Messages tab:

    2026-09_0134

    However, what if there are no rows? Would you expect a 0, because if there isn’t any data, the sum is zero, correct?

    No.

    2026-09_0136

    Why? The docs don’t mention this (I’ve added a PR).  The ANSI standard notes that if all values are NULL or the set is empty, NULL is returned.

    Most of us don’t query empty tables, but we could get an empty set. Remember, the column list, and therefore aggregate, is evaluated after the WHERE and JOIN clauses. Therefore, as you see below, I could get a NULL in a sum where I expect data.

    2026-09_0135

    Make sure you account for this in your queries.

    SQL New Blogger

    I read reading another blog (Pinal’s) and realized this was interesting. I thought about if I’d have a problem and realized that I could because I’ve often assumed there is some data, but if I let users filter data from an app, I could return NULL.

    Easy to write, about 15 minutes to setup and do. You could do this.

  • Architecting Zero Downtime Deployments–Day of Data Boston

    Here are the resources for my talk at Day of Data Boston.

    Slides – ArchitectingZeroDowntime.pptx Slides also at: https://dayofdata.org/2026-10-03-dayofdata1150/#schedule

    Code: https://github.com/way0utwest/ZeroDowntime

    Book: Refactoring Databases

    Some interesting questions. I’ll write more, but a couple of quick answers as I breakfast at Logan.

    How do I handle expanding a column? Making it larger?

    This is platform and change dependent. For example, if you are expanding a varchar() column from 10 to 20, this is usually a metadata operation in MSSQL. No data gets touched, no rows, the system tables record a new size. This can be instantaneous. There are exceptions where this might take time, but usually this works.

    Changing from int to Bigint is different, but I’d follow the split columns pattern and add a new column instead, move data, then drop the old one.

    How do I get my organization to adopt better patters?

    This deserves a longer answer, but there are two parts: technical and politicial. The technical part is teaching other developers the new patters, using linting to catch issues, and convincing others this isn’t hard and works well.

    The political part is getting management to support/enforce this. That can be tricky, but you need to provide business reasons why downtime is a problem and how this addresses the issues, with real numbers: time down, cost savings, revenue lost, etc.

  • Development Is Fun

    I was listening to The Pragmatic Engineer interview Casey Muratori about high-performance code, which I found really interesting. I’m actually considering going through his Performance Aware Programming series and (re)learning some assembly. I never thought I’d even consider doing that. I learned Assembly in high school and university, and I didn’t enjoy it.

    Casey is a game programmer, and there was a question in the interview about how he uses AI tools in his work. “We are not using them” was not the answer I expected. Perhaps even more interesting was the rest of the answer. Casey loves programming and wants to enjoy what he does. He writes the code because he wants to do the work. If he didn’t, he’d license some game engine or technology, not spend time getting an AI to do the work.

    It’s an interesting interview, but it made me wonder how many people out there enjoy their work. How many want to go to work and get things done? Certainly, people want to get paid, but I would hope a lot of you have a job you enjoy doing, and aren’t necessarily looking to get someone, or something, to do the work for you.

    And how many go primarily because they have bills and need the paycheck? Would you rather be doing something else if you didn’t need the money?

    I love solving problems with customers, testing technology, and puzzling over the approaches to take when confronted with a challenge. I enjoy going to work, and while the paycheck matters, I like doing the work. I have no interest in retiring from my current job, as it’s fun. It’s hard some days, but mostly it’s fun.

    Do you still enjoy writing code? Or configuring and tuning servers? Or whatever you do? Are you looking forward to the day when you don’t have to do this job anymore?

    I don’t expect many people to comment unless they enjoy their jobs, but if you do, let me know.

    Steve Jones

    Listen to the podcast at Libsyn, Spotify, or iTunes.

    Note, podcasts are only available for a limited time online.