Sr. Content Developer at Microsoft, working remotely in PA, TechBash conference organizer, former Microsoft MVP, Husband, Dad and Geek.
160119 stories
·
33 followers

Database Animations: What’s a Residual Predicate and Why Is It Bad?

1 Share

Normally when you’re looking at an execution plan, and you see an index seek followed by a key lookup, that means it’s running relatively quickly.

To explain, let’s take the Users table in the Stack Overflow database and run this query that we explained in this post:

SELECT Id, Location
FROM dbo.Users
WHERE Location = 'Helsinki';

As long as we have an index on Location, we’re able to dive directly to the people who live in Helsinki thanks to the structure of the B-tree index:

Btree Index Seek Location (animation)
▶ Watch the animated version of Btree Index Seek Location

If we modify our query a little by selecting all of the columns instead of just Id and Location, then we have to do a Key Lookup, like we talked about in the How to Think Like the Engine class. For each person who lives in Helsinki, we have to look up their row in the clustered index in order to fetch all the columns we need. That’s not really a big deal, though, as long as a relatively limited number of people live in Helsinki. Like I wrote in that post, the index seek + key lookup is essentially two index seeks: one into Helsinki, and then one seek (for each Helsinki resident) on the clustered index, by their Id.

However, let’s add a little more complexity to the query:

SELECT Id, Location
FROM dbo.Users
WHERE Location = 'Helsinki'
AND Reputation > 10000;

Now, I’m only looking for the high-reputation people who live in Helsinki. The execution plans for both of the queries, with and without the Reputation filter, both look the same:

Query plans

But there’s something a little tricky about that. Because Reputation isn’t in our index on Location, we’re doing a Key Lookup on every person who lives in Helsinki, even when they don’t meet our Reputation filter. We end up doing a lot more logical reads than necessary in order to check their locations, as this animation illustrates:

Residual Predicate Include (animation)
▶ Watch the animated version of Residual Predicate Include

The solution: add Reputation to the index, but here’s the fun part: Reputation doesn’t even need to be in the key! It can even be in the includes of the index. Just simply being in the includes means that we don’t have to do the additional logical reads to do the key lookup from the clustered index.

To understand if this is happening to you, hover your mouse over the key lookup operator in your query plan and look for the term “Predicate” without any prefix, like “Seek Predicate” – you’re looking for just plain old “Predicate”, like this:

Residual predicate

The “1 of 1” numbers on the Key Lookup sound nicely small, like those guys at the car show who say their Corvette is 1 of 1, when in reality they mean it was just 1 of 1 cars that were done with purple and a yellow stripe, with brown suede interiors, and contrasting carbon fiber floor mats, built on a Thursday, by guys named Mo. That key lookup was done once for every one of the 122 rows found in Helsinki – when there are way fewer rows that actually come out of the key lookup with a >10,000 reputation score.

When Is This Bad, and How Do You Fix It?

Residual predicates are bad IF they’re selective.

In this case, Reputation > 10000 is indeed very selective, so if we could fix them at the index level, we’d do way less logical reads. To fix it, I could promote the Reputation column up into the Location index. I’m less concerned about whether columns like this are in the key of the index, or where they’re at in the key, or in the includes, as long as they’re at least somewhere in the index. If they’re not in the index at all, you’re gonna be way more likely to hit problems with key-lookup-versus-table-scan decisions in the optimizer, leading to parameter sniffing problems, leading to falling-off-the-cliff performance emergencies.

If the filter is NOT selective – like if the filter was like User.Alive = 1 – then I don’t really care about fixing it. In fact, I’d be fine with leaving that predicate in place, because I’d rather store that value just once (on the clustered index) instead of duplicating it on every nonclustered index simply because we filter on it a lot.

This is why, in my Fundamentals of Index Tuning class, I emphasize that your big job in index tuning is just to get the right columns on the leaf pages of the index.  Then, in my Mastering Index Tuning class, we dig into these kinds of edge cases where you have to decide which columns need to be in the key, versus which can ride along inexpensively in the included columns just to reduce residual predicate key lookups. See you in class!

Note: I generated the animations in this post with Claude Code, but all of the text & demos are completely written by me.

Read the whole story
alvinashcraft
just a second ago
reply
Pennsylvania, USA
Share this story
Delete

I Need My CI/CD Pipeline to Access Cosmos DB Without Using a Secret

1 Share

In the last post we walked through why RBAC broke your app and how to fix it. Your app is now running on a managed identity, keys are off, and everything is green. Then your build pipeline runs, and it needs to seed test data. Suddenly you’re staring at a secret in your CI settings and wondering if you just undid all that work. As we continue this security series, let’s get your pipeline to Cosmos DB with no secret anywhere. 

The situation 

You did the hard part. Your app uses DefaultAzureCredential, you assigned a data plane role, and you set disableLocalAuth: true. Passwordless, done. 

Then you look at your CI/CD pipeline and find this sitting in your repository secrets:

AZURE_CLIENT_SECRET = <a very long string that expires in 6 months> 
COSMOS_CONNECTION_STRING = AccountEndpoint=https://...;AccountKey=... 

That connection string doesn’t even work anymore — local auth is off. And the client secret is exactly the kind of long-lived credential you just spent a sprint eliminating from your app. It sits in a settings page, it gets copied into a runbook, someone pastes it in a chat, and in six months it expires at 2am during a release. 

There is a better answer, and it’s not “store the secret somewhere nicer.” It’s workload identity federation: your pipeline proves who it is with a short-lived OIDC token issued by GitHub or Azure DevOps, and Entra ID trades that token for an Azure access token. No secret is stored anywhere. Nothing expires. Nothing to rotate.

The mental model: three things have to line up 

Before touching any YAML, get this picture straight. When your pipeline talks to Cosmos DB, three separate things have to be true: 

  1. Trust — Entra ID has to believe the token your CI platform hands it. That’s the federated credential. 
  2. Control plane authorization — if the pipeline deploys infrastructure (creates the account, databases, containers), it needs an Azure RBAC role like DocumentDB Account Contributor. 
  3. Data plane authorization — if the pipeline reads, writes, or seeds items, it needs a Cosmos DB data plane role assignment. 

Most people set up #1, get excited that az login works, and then get blindsided by a 403 because they never did #3. If that sounds familiar, the previous post has the full breakdown of why control plane and data plane are separate systems. 

Hand-drawn infographic titled “Passwordless CI/CD to Azure Cosmos DB,” showing a GitHub Actions workflow using OIDC authentication, Microsoft Entra ID, and Azure Cosmos DB. The diagram illustrates the token flow between GitHub Actions and Entra ID, configuration steps for federated credentials and Cosmos DB access, security practices such as avoiding client secrets and connection strings, and a sample data plane API connection.

GitHub Actions: the walkthrough 

Step 1: Create an identity for the pipeline 

You can federate either an app registration or a user-assigned managed identity. I’ll use an app registration here because it’s the most common, but a user-assigned managed identity works the same way and is worth considering if you want the identity to live in a resource group with the rest of your infrastructure. 

APP_ID=$(az ad app create --display-name "gh-actions-myrepo" --query appId -o tsv) 
az ad sp create --id "$APP_ID" 

Step 2: Add the federated credential 

This is where you tell Entra ID which workflow is allowed to use this identity. The subject is the important field — it has to match the OIDC token GitHub issues, exactly.

az ad app federated-credential create \ 
  --id "$APP_ID" \ 
  --parameters '{ 
    "name": "github-prod-env", 
    "issuer": "https://token.actions.githubusercontent.com", 
    "subject": "repo:my-org/my-repo:environment:production", 
    "audiences": ["api://AzureADTokenExchange"] 
  }' 

A few notes on subject, because this is where people miss: 

What you want  Subject
A specific branch repo:my-org/my-repo:ref:refs/heads/main 
A GitHub environment  repo:my-org/my-repo:environment:production 
Pull request builds  repo:my-org/my-repo:pull_request 

Prefer scoping the federated credential to a GitHub environment. Branch-based subjects don’t support wildcards, so every new release branch requires another federated credential. Environment-based subjects are easier to manage, support approvals and branch protection, and remain stable as branches come and go. You can assign up to 20 federated credentials to a single identity, so plan their use carefully. 

Step 3: Check which subject format your repo uses 

This one is new and it will quietly break setups that used to work. 

The OIDC spec requires subject claims to be locally unique and never reassigned. The old format used only organization and repository names, which meant a recycled namespace could produce the same subject value under a different owner. To close that hole, repositories created after July 15, 2026 use an immutable default subject format that includes the owner ID and the repository ID. 

  • Previous format: repo:sample-org/octo-repo:ref:refs/heads/main 
  • Immutable format: repo:sample-org@123456/octo-repo@456789:ref:refs/heads/main 

The @ separator is used because @ can’t appear in a GitHub username or repository name. Repositories created before July 15, 2026 keep the previous format unless they opt in, at the organization or repository level, through the OIDC settings UI or REST API. 

Two consequences worth internalizing: 

  1. A new repo needs the new format. If you copy a federated credential from an older repo into a repo you created last month, the subject won’t match and the exchange will fail. 
  2. Renames and transfers after July 15, 2026 move the repository to the immutable format. So a rename doesn’t just change the name inside your subject string, it changes the shape of the whole claim. If someone renames the repo, expect to rewrite the credential, not just edit it. 

Immutable subject claims aren’t available on GitHub Enterprise Server. And if you customize claims with include_claim_keys, the owner and repo IDs are always included in the repo segment for repositories on the immutable format. You can’t remove them. 

The reliable move here is to stop guessing: print the actual subject your workflow produces (see suspect #1) and register that. 

Step 4: Grant control plane access (only if the pipeline deploys infra) 

az role assignment create \ 
  --assignee "$APP_ID" \ 
  --role "DocumentDB Account Contributor" \ 
  --scope "/subscriptions/$SUB_ID/resourceGroups/$RESOURCE_GROUP" 

Skip this entirely if the pipeline only touches data. Not every pipeline needs to manage the account.

Step 5: Grant data plane access (this is the one people forget) 

PRINCIPAL_ID=$(az ad sp show –id “$APP_ID” –query id -o tsv) 
 
az cosmosdb sql role assignment create \ 
  --account-name "$ACCOUNT" \ 
  --resource-group "$RESOURCE_GROUP" \ 
  --role-definition-id "00000000-0000-0000-0000-000000000002" \ 
  --scope "/dbs/orders-test" \ 
  --principal-id "$PRINCIPAL_ID" 

That role definition ID is the built-in Cosmos DB Built-in Data Contributor. If the pipeline only runs read-only smoke tests, use …0001 (Data Reader) instead. And note the scope: I pointed it at the test database, not /. Your CI identity runs unattended on every push — it’s the last identity that should have account-wide write access. 

Step 6: Store the identifiers (not secrets) 

Add these to your repository or environment variables: 

  • AZURE_CLIENT_ID — the app ID from step 1 
  • AZURE_TENANT_ID 
  • AZURE_SUBSCRIPTION_ID 

None of these are secrets. They’re identifiers. They’re useless without a token from your specific repository and environment. Plenty of teams still put them in secrets out of habit, and that’s fine, but understanding that they’re not sensitive is the point of the whole exercise. 

Step 7: The workflow

name: Integration tests

on:
  push:
    branches: [main]

permissions:
  id-token: write   # required to request the OIDC token
  contents: read

jobs:
  test:
    runs-on: ubuntu-latest
    environment: production   # must match your federated credential subject

    steps:
      - uses: actions/checkout@v4

      - uses: azure/login@v2
        with:
          client-id: ${{ vars.AZURE_CLIENT_ID }}
          tenant-id: ${{ vars.AZURE_TENANT_ID }}
          subscription-id: ${{ vars.AZURE_SUBSCRIPTION_ID }}

      - name: Run integration tests against Cosmos DB
        env:
          COSMOS_ENDPOINT: https://my-account.documents.azure.com:443/
        run: dotnet test

Notice what’s missing: client-secret. And notice what your test code looks like — exactly the same as your app: 

var client = new CosmosClient( 
    accountEndpoint: Environment.GetEnvironmentVariable("COSMOS_ENDPOINT"), 
    tokenCredential: new DefaultAzureCredential()); 

azure/login@v2 logs the Azure CLI in on the runner, and DefaultAzureCredential picks that up through its Azure CLI credential. Same code in CI, same code in production, same code on your laptop. That’s the payoff. 

Missing permissions: id-token: write is the single most common reason this step fails, and the error message is not obvious about it. 

Azure Pipelines: the same idea, fewer steps 

Azure DevOps does most of this for you. Create a service connection of type Azure Resource Manager and choose Workload Identity federation (automatic). Azure DevOps creates the app registration and the federated credential for you, with the subject bound to your project and service connection. 

Then assign the roles exactly as above — find the service connection’s principal ID in Entra ID, and run the same az cosmosdb sql role assignment create command. Azure DevOps sets up trust; it does not know anything about Cosmos DB data plane roles. That part is still on you. 

trigger: 
  branches: 
    include: [main] 
steps: 
  - task: AzureCLI@2 
    displayName: Run integration tests 
    inputs: 
      azureSubscription: 'my-workload-identity-connection' 
      scriptType: bash 
      scriptLocation: inlineScript 
      inlineScript: | 
        dotnet test 
    env: 
      COSMOS_ENDPOINT: https://my-account.documents.azure.com:443/
 

Anything you run inside AzureCLI@2 inherits the CLI login, so DefaultAzureCredential works the same way it does in GitHub Actions. If your test process runs outside that task, it won’t have a credential — see suspect #3 below. 

One housekeeping note: if you have older service connections created with a service principal and secret, they still have a secret sitting in Azure DevOps with an expiry date. Converting them to workload identity federation is a supported in-place operation and worth doing. 

The five usual suspects 

  1. AADSTS70021: No matching federated identity record found

Your subject doesn’t match. This is a string comparison, and it is unforgiving. 

It’s worth knowing why this is so easy to get wrong: when you create a federated identity credential with an incorrect subject, it is created successfully, with no error. Entra ID doesn’t validate it against anything, because there’s nothing to validate it against yet. The mistake only surfaces when a real token exchange fails. 

So don’t eyeball it. Print the actual subject your workflow produces and compare it character by character to what you registered. 

Common mismatches: 

  • You registered environment:production but the job has no environment: key, or has environment: prod. 
  • You registered ref:refs/heads/main and the run was triggered on a tag, which produces ref:refs/tags/v1.0. 
  • The job references an environment, so the subject contains the environment and not the branch. Environment wins. 
  • The repo was renamed or transferred after July 15, 2026, so it moved to the immutable subject format and your old subject can’t match anymore. 
  • The repo is new (created after July 15, 2026) and you copied a subject from an older repo that’s still on the legacy format. 
  • Your environment name contains a colon. Any : in a metadata value is escaped to %3A, so Production:V1 appears in the subject as Production%3AV1. 
  1. az login works, Cosmos DB returns 403

Trust is fine. Authorization isn’t. You almost certainly did the Azure RBAC assignment and skipped the data plane one. Check: 

az cosmosdb sql role assignment list \ 
  --account-name "$ACCOUNT" \ 
  --resource-group "$RESOURCE_GROUP" 

If the pipeline’s principal ID isn’t in that output, that’s your bug. Data plane assignments never show up in az role assignment list or in the portal’s Access control (IAM) blade — they’re a separate system with a separate command. 

  1. The credential works in one step but not another

The OIDC login belongs to the shell session on the runner. If your tests run somewhere that shell can’t reach — inside a Docker container you started, in a separate job, on a different runner — the credential doesn’t follow. 

For containers, either pass the token through explicitly or run the container with the relevant environment variables mapped. For separate jobs, each job needs its own azure/login step and its own id-token: write permission. Jobs don’t inherit login state from each other. 

  1. Your Bicep or ARM template still calls listKeys()

This one is sneaky, and it’s specific to Cosmos DB. Plenty of templates end with something like: 

output connectionString string = listKeys(cosmosAccount.id, '2024-11-15').primaryMasterKey 

Once disableLocalAuth is true, that call fails, and it takes the whole deployment with it — after your infrastructure changes have partially applied. Search your templates for listKeys, listConnectionStrings, and primaryMasterKey, and delete those outputs. Your app doesn’t need them anymore. 

  1. Pull request builds from forks get nothing

A fork’s workflow run doesn’t receive an OIDC token for your repository, by design. If your PR validation needs Cosmos DB, either run those tests only on branches in the repo, or use the Azure Cosmos DB emulator for fork PRs and save the real account for post-merge. Don’t work around it by adding a secret — that’s the exact hole federation is closing. 

A fast diagnostic order 

When your pipeline fails, work down this list: 

  1. Does the job have permissions: id-token: write? 
  2. Does the subject on the federated credential exactly match what this run produces? 
  3. Does the pipeline’s principal have a data plane role assignment, not just an Azure RBAC one? 
  4. Does the data plane scope cover the database and container the pipeline actually touches? 
  5. Is the failing step running outside the shell that did the Azure login? 
  6. Is anything in your templates or scripts still asking for a key? 

Wrapping up 

The instinct when a pipeline needs access is to reach for a secret, because that’s what pipelines have always used. But a CI/CD identity is a great candidate for federation: it runs in a known place, on known events, on behalf of a known repository. That’s exactly the information an OIDC token carries, and exactly what Entra ID can verify without anything being stored. 

Set it up once and there’s nothing to rotate, nothing to leak, and nothing to expire at 2am. Your pipeline authenticates the same way your app does, with the same code, and the “who has access to production data” question finally has an answer you can query. 

Your turn 

  • Open your CI settings right now and look for AZURE_CLIENT_SECRET,COSMOS_CONNECTION_STRING, or anything with AccountKey in it. Whatever you find, that’s your first migration. 
  • Set up federation on a non-production pipeline first and scope the data plane role to a test database rather than /. 
  • Grep your Bicep and ARM templates for listKeys before you flip disableLocalAuth. It’s the step people skip. 
  • Stuck on a subject claim that won’t match, or a 403 you can’t explain? Drop your scenario in the comments and I’ll help you dig in. 

If this series saved you a debugging session, share it with whoever owns your build pipeline. Their expiring secret will thank you. 

About Azure Cosmos DB

Azure Cosmos DB is a fully managed and serverless NoSQL and vector database for modern app development, including AI applications. With its SLA-backed speed and availability as well as instant dynamic scalability, it is ideal for real-time NoSQL and MongoDB applications that require high performance and distributed computing over massive volumes of NoSQL and vector data.

To stay in the loop on Azure Cosmos DB updates, follow us on XYouTube, and LinkedIn.

The post I Need My CI/CD Pipeline to Access Cosmos DB Without Using a Secret appeared first on Azure Cosmos DB Blog.

Read the whole story
alvinashcraft
14 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

bit Obscene: ComplAInt Department

1 Share

bit Obscene: ComplAInt Department


Chapters

Full Transcript

So that… Welcome to the Bit Obscene radio program. I am joined by two of the final remaining humans on the planet, Joe Obish and Sean Ghilardi. And we are here today to have a roundtable discussions at the AI Complaint Department, because I think despite having at least some moderate success in using my robot, companions to help me build some things, I have many frustrations with the robot companions. And Joe and Sean correspondingly have many, many more complaints in their corporate dwelling with the robots. So, gentlemen, I don’t know who wants to get started here. I refuse to pick. I love you both equally, so I will let you fight amongst yourselves for first dibs. Well, first, I have a point of order.

Ah, there we go. I noticed that all of us have a bit of beard, or I have a bit of gray in our beards, and this is what… A bit? This is what working on SQL Server does to you. For all the young viewers who are still considering their career options, you gotta be okay with gray if you’re gonna pick the SQL Server lifestyle. Yeah, I am fully… I am more pepper than… Well, no, I’m more salt than pepper these days, I think. I’m really… Like, at some lights, it looks like I just have a beard that goes like this, because the gray is just taking over most of my face. It’s a sad state of affairs.

Maybe next time we’ll have some AI overlay, and I’ll uncover the damage. I’ll get some just for men. I’ll tidy myself up a little bit. Yeah, I think, you know, you started, Eric, and said you had some success. I mean, why don’t we start out with kind of some of the positives, right? Because everyone…

No, I was gonna start with the negatives. Oh, well, I mean, look, the positives far under underway, the negatives, so we can start with those. All right, Joe. Let us have it.

Yeah. Well, like, the weirdest thing to me about the proliferation of, like, AI agents, and you’re just doing your normal job and using tokens or whatever, which actually isn’t something that I do. I live a token-free lifestyle, so some would think I’m unqualified for a discussion, but you can’t stop me from talking. Only Eric can. He’s not going to. I do have a mute button, but I am not a censorious person, so I will not.

Because some, like, you think of all, like, the bad stereotypes of companies being, like, penny pinchers. Obviously, it varies a lot, but I mean, I’ve had some experiences where we had some very important server used for development, and it had a 50 gigabyte hard drive that would fill up every day, and that would cause problems for the developers. And IT said, well, why don’t you just redesign the whole process? Oh.

Instead of, like, adding 50 gigabytes of hard drive space, because, you know, the only options are, like, the main development environment goes down daily, or we do a huge development project. And, you know, clearly adding 50 gigs of space. I mean, space is expensive. 50 gigs of it, Joe.

Well, and despite all the gray, like, I’m not, like, I didn’t work in the days where that was actually true. This is, like, 2012. Really, like, space was not expensive. Or I can think of another example where I was going to present at SQL Server or SQL Saturday in New York City, and I asked the company to, like, reimburse me on an airfare, and they said, oh, that was totally impossible. Impossible request. Impossible.

Yeah. $300. Can’t be done. Uh-uh. Well, and, like, I think of all the experience that you have with various companies, you know, getting in and out, and I’m sure you’ve seen a lot of stupid penny-pinching things over the years. I don’t know if you want to share or not.

Well, I mean, as far as penny-pinching things go, mostly it’s people asking me for discounts. And I don’t understand why, given my incredibly reasonable rates. But, you know, you can’t blame them for trying to save a buck. You know, I guess, you know, it looks good, makes you look like a real company hero when you save the company money and all that stuff. Well, I think the thing that I find just really weird about AI use at these companies is that, like, now you’re paying a tax on someone doing their job. It’s like, not only are they doing their job, but now you have to pay for them to use tokens to do their job. And it’s like, that’s just a weird thing to me. It’s just like, are you doing more job? I don’t know.

That’s what I was going to say. Like, you said you can’t blame them, but I can blame them because, you know, you’d say things like, oh, well, Eric’s training. That’s too expensive. That’s not in the budget. But apparently, spending tokens all day, every day suddenly is in the budget. And, like, speaking for myself, like, I didn’t know I had the option to just spend company money all day to have some tool do my job for me. I mean, like, you know, like, like, like, like, like, tomorrow is going to be pretty nice weather. Like, can I just, can I just have like, you fill in for me?

Yeah. We’ll invoice it, right? Like, is it really that different from this token nonsense? So like, like, that’s very, like, that’s the first thing that’s changing to me. Like, like, the very embedded frugalness of so many companies and, like, not willing to invest in their employees for small things like getting a second monitor, productivity software, or training.

All right. Like, like, how many people have you met that really need training who just can’t get it? But, yep, it’s perfect. Everybody.

That’s why my, that’s why all my training is so reasonably priced so that the ordinary work a day individual can can purchase it without straining their lifestyle too poorly. Maybe you need to sell the training to the AI agents directly. And then maybe that way.

Jokes on you. It’s already been. They can, they can, yeah, it’s probably been stolen already, but, you know, everyone can, and that’s been tokens, and then you can get, like, 10% of the token to, you know, tell me what to do. No, but let’s talk about that for a minute, right?

Because, Joe, that’s one of the things that bothers me as well is, you know, oh, we can’t, for example, I would, a long time ago, I was in charge, well, not in charge, but I took it upon myself to kit out everyone with the correct hardware. So this means not giving them pieces of shit, like super ultra light laptops, and then telling them to go look through 100 gigs worth of, you know, logs and figure out what’s wrong and why can they do that in two seconds?

So, you know, I made the hardware accordingly and got yelled at when I said, well, this laptop is $1,800. I’m like, that’s too much. Like, but when you take into account that it’s supposed to last for minimum four years, that if you were to do, you know, a cloud box or something like that, right?

Like, if you had the same specs, as a, like a, like a, you know, every company or every major cloud provider has some type of desktop, you know, remote desktop option. If you would do the same specs in there, you’d be at $2,000 in, I think, four months. It was like $500 a month.

Well, if you left it on all the time, most companies will cheap out and put some, like, shutdown policy on it. Oh, you idled for 30 seconds. Boom. Like, all right.

Yeah. Well, it’s worse than that. But yeah. So, so you do that, right? So you’re talking about something that’s, we’ll round up $2,000 for four years. It’s $500 a year. And we’re coming out and saying that’s too much budget. We can’t do that.

But then as Joe said in the same token, we’re saying, but you can use $500 worth of tokens a month, which by the way, has no idea. It doesn’t remember anything. So when Joe asks it, hey, you know, how do I do X, Y, Z, or can you do this?

And then it does it, assuming it does it right, which we didn’t get into quality yet, assuming it does it right. Joe didn’t learn anything. Joe didn’t necessarily get in better.

No offense, Joe. You do get better. You do learn stuff. But Joe doesn’t need to get better. He’s already the best. Right. But the hypothetical Joe won’t get any better. You know, he’s not learning anything.

So when you talk about it, you’re not even upping your efficiency. You’re going to pay for the same tokens and the same thing. Again, the same exact thing. It just it doesn’t make sense to me where the I’ve given up trying to make sense of corporate spend a long time ago because none of it makes sense unless you factor in kickbacks and other things.

But yeah, so well, I think right now, there’s just so much pressure on every company to talk about how AI driven everything is, which which is just like a it’s like a weird thing. That’s Klarna about that, right? Yeah, it’s like Starbucks.

Yeah. Uber or pick your favorite company because they all come out and said, we’re totally doing the thing. And yeah, and then a year later, we totally failed it.

Yeah, it’s like, man, we spent a lot of money on that thing. And I don’t know. I don’t know if that worked out. Yeah, it’s it’s it’s just I don’t know. It’s it’s just weird.

But, you know, like, like I said earlier on, though, like I have been able to do some stuff with it. Like I wasn’t going to learn how to do in the first place. Like, you know, I put together a SQL Server monitoring tool, a plan analysis tool. And like, I’m not I’m not a C sharp person.

I am not a front end person. And there was no hope of me being able to build those things. But, you know, it started like with like a sort of centralized or like a yeah, I guess I guess like a fairly specialized bit of knowledge around like this thing. And like, like, that’s why like me building those things, I don’t I don’t feel too guilty about it, because it’s not like I’m building a thing that relies on AI to exist, right?

Like, you don’t need AI to do the plan analysis, you don’t need AI to do the monitoring, they’re just building a tool that goes and does that. If the robots go and die tomorrow, I still have this thing that I can do stuff with. So I don’t feel too, too bad about that.

And, you know, like the development process has been like screaming at like an idiotic child for many months now. It’s not been like like a less like, you know, better roses, right? I wake up every day and I’m like, I can’t can’t wait to have the robots do something new for me.

I’m like, oh, what’s going to go wrong this time? It’s like it’s not great. It’s not a happy place. What you’ve said, though, is a great use for it, right?

You’re bringing the specialized knowledge. In fact, this just happened to Ford. So Ford, you know, they did all the stuff and then they realized that they fired everyone who had all the specialized knowledge. They’ve actually saved money by hiring back all the people.

And it’s not by kicking AI out. It’s by saying, look, there’s a lot of things that especially process driven items that we don’t need, right? So if it says, hey, here’s the 10 tickets that had similar issues, I’ve already collated them for you.

You can now go take a look. And I put all your data over here and I did all this stuff over here. That’s what it should be.

So you, Eric, you know, you have the knowledge, Joe. You have the knowledge, right? So it should be bring the stuff to you. Get some of that mundane crap out of there. Just like you were saying, it built the front end. It did the stuff.

I’ve done some stuff recently where, you know, I’m not a big, like you, I’m not a big front end UI person. I’m a back end person. You know, jokes accordingly. You are a back end person.

And so, you know, it’s like, ah, I really want to show this. I have this great data structure. I’ve gathered all this information. I really want to have a nice way of showing this. And then the engineer in me goes, great.

Where’s the closest spreadsheet that I can put this up to, right? You know, where’s the perfect grid view? Like, but people don’t like that. So, yeah, I’ve used it for front end stuff too. But as you said, you’re not asking it to be the crux of the knowledge.

You’re the crux of the knowledge. And it’s enabling you to do that. It just builds a fort around that. That’s great.

Yeah. That’s great. But Joe, I think, had some different encounters. No, like, that strikes me as one of the few good use cases. Because Eric and I were talking about doing some open source stuff like a couple of years ago.

Yeah. And the thing that stalled us was, well, someone’s got to do all the front end stuff, right? Like, all the back end stuff is fine. All the expert knowledge is fine.

But, like, you know, and Eric does a lot for the community. He’s great. He’s a generous guy. But, like, I don’t know, you know, like, paying five or six figures to, like, have someone do hundreds of hours of development for some tool.

Like, it just wasn’t going to happen. And, you know, you try and do it yourself. Like, I remembered asking on Stack Overflow, like, what’s the secret to try to, like, get an SMS plug-in to interact with query plans.

And then, like, heroic Martin Smith, like, a year later, like, wrote some great, awesome answer, finally. And then Eric was able to use that.

But, you know, like, that would have been our journey trying to do it on our own. Like, it just wouldn’t have happened. Nightmare.

And, like, you know, it’s not like we’re not friends with developers. It’s just finding people who are equally sort of cool with the idea of donating a lot of their time to an open source project.

Most people are just like, no. Like, let me do the math on that. Zero, zero, carry the zero. No, it’s a lot of zeros in it.

One might say. Nope. One might. Yeah, it’s interesting. What I will say, though, is on the, I guess, the antithesis of that, right, on the other side is the people who, you know, if we thought the Dunning-Kruger effect was bad before, oh, shit.

There’s some real, well, I asked AI to fix the problem. And here we go. And you look at the PR and you just want to, hmm.

Yeah. It’s, yeah, there’s a lot of stuff, you know, because I do try to, I try to keep using it because I want to know when it actually gets good.

And, like, I, you know, like, for me, especially with, like, query tuning stuff, like, like, the stuff that it says about it is, like, just, like, absolutely miserable. Like, like, like, like, like, foundationally just incorrect things about everything along the way.

You’re just like, no, just stop doing that part. Just do the parts that I tell you to do. But, like, the things that I, the thing that I do like about it quite a bit is, and it’s one thing that I, that I often kind of struggle with a little bit, is the sort of, like, logically equivalent query form thing.

And it’s very good at looking at a query and me saying, like, there’s got to be, like, a different form of this query that would be logically equivalent. And it can, like, give me a bunch of those.

And they’re, they’re usually about right, like, with the logical equivalents. But then, like, you know, like, anything that it says about, like, the actual, like, process or of query tuning or, like, like, looking at a query plan or, like, wait stats or anything, I’m just like, no, no, you just put, put that down.

Like, you, you’re going to, you’re going to hurt yourself, people around you. To quote a famous, to quote a famous author speaking about the, the newspaper. Often the article is so wrong, it actually presents the story backward, reversing cause and effect.

I call these the, quote, what streets cause rain stories from papers full of them. And if I had to summarize the, like, total available knowledge on the internet about query tuning, I think that description works pretty well.

And that’s, it’s really, like, all the AI can, can do, right? Like, like, it’s, it’s not gonna know that some people like Eric actually understand it could cause an effect.

And then, like, the 90% of others are just, like, randomly guessing or, like, there’s, like, they just don’t know that rain actually makes the street wet and it’s not the other way around.

The streets are not out summoning rain gods to pour down upon them. Never know. And it’s the same thing with AI generated T-SQL code. But at least for me, like, maybe my style is kind of peculiar, but, like, the stuff it generates, it’s certainly, like, I mean, like, I would never expect to, like, open, like, a random blog post and find T-SQL code that’s good.

I don’t even mean in terms of formatting, but, but just, like, the way that the code is organized, like, not copying and pasting the same stuff everywhere. There are, like, passing data between procedures correctly, working with temp tables correctly.

I mean, like, there’s just so much stuff and. No, I mean, when you, like, AI, to me, with a lot of stuff. So, like, the, like, the two, like, it’s, like, a very generalized experience, but then some very specific experiences are, like, the generalized one is that AI has been trained on a lot of, like, just bum-ass SQL on GitHub or wherever it’s, like, picking stuff up from.

And it has no problem just, like, repeating a lot of that stuff. But that, that to me is, like, an almost perfect corollary to, like, when you see developers and now AI working with, like, very specific, like, like repos that are, like, you know, code bases that they have to deal with because, like, like, you know, I, I’ve been saying for years, uh, code is culture and, like, you know, if you have any bad code in your environment, it quickly becomes, like, the standard for everyone else to follow.

So, people will copy and paste patterns out of, like, store procedures or other queries into their queries because that’s the way it’s done. And if they don’t do it that way, it might be wrong and something might get screwed up and they’re all just terrified of, like, you know, trying something different.

But, but AI has almost the same thing where, like, like, like, if, if, if it’s, like, trained on a code base and that code base is full of real crappy queries, uh, it’s just going to keep repeating the same things over and over again.

And it just, like, things just don’t really improve with it. And I think they actually tend to get worse because at some point they even, like, uh, uh, like, contextually lose whatever standards might have existed before.

Well, it can, it gets even worse too, as you were saying, depending on what the code base is from. I’ve worked on code bases that are very old.

You know, some of the code is from the 80s, 90s, to be clear when people watch this. The 90s. We, we, we know you’re talking about SQL Server, Sean. It’s fine.

And some of it is very new. I mean, some of it’s, like, very, very new. Brand, brand new repositories. And the stuff that’s old, it definitely does not like it, does not do well enough. Because, as you were saying, that’s not what the mass of the training data is.

So when 60 million people have forked the same project on GitHub, and they all have the same queries in it, and the same code in it, it’s no wonder that that’s what you get. Because it’s, like, I know people are going to throw hate, but it, you’re just generating the next character, and the next character.

What, you know, what’s the statistical chance of that being there, and it’s a little bit of stuff in. So, yeah, it makes sense. If that’s what 99% of your training data says, that’s what’s going to come next.

And when you don’t have it, you know, you still, that’s where your kind of hallucinations come in. I don’t, I don’t like that.

I don’t think you should anthropomorphize the thing. But you get really bad items, and then you get the sycophantic behavior. Oh, no, you are right.

No, see, your idea was the best, but you are the great. Oh, and so going from those old code bases to the new ones, new ones, it does epically, epically better, especially if it’s smaller.

The context window issue is huge. And I just, I don’t know, right now I see it as good still for small things, but it reminds me of quantum computing or fusion energy, right?

We’re always, we’re always just, like in quantum computing, we’re always 10 years away. In 1990, we were 10 years away from cracking every password, right? Encryption’s not going to be a thing.

The whole internet’s going to be a thing. We’re still just 10 years away from that. Same thing with fusion. Oh, we’re getting close. You know, we’re 10 years from having a viable small reactor. Okay, well, we’re still 10 years away.

That’s just kind of how I look at it, right? Oh, AGI, we’re, it’s going to be 2024. No, sorry, 2025. I mean, six. No, wait, I mean seven.

No, now 2028. Well, it’s more like 2030. Yeah, I think at this point, we might need fusion to get actual AI because there’s, I don’t know if, I don’t know how we’re going to generate enough electricity to keep that boat going.

It’s kind of wild. It’s similar. I was told at Oracle Open World in 2017 that the DVA job wasn’t going to exist in a year. In a year.

That’s been in Microsoft Docs since 2005. I was working at a company and we had a, back when they were called TANs, technical account managers, back when they actually were sort of technical, not super, but sort of.

And I will never remember, or I will never forget, I will always remember that she came in and said, this was 2010. And she said, did you hear about Microsoft Azure?

And I said, yeah. Oh, well, you’re not going to have a job in three years. Everything’s going to be in the cloud in three years.

Everything’s going to be in Azure. This is 2010. And I’m looking at it. And it’s, what is it, 2026 now? It’s hard to keep track of things.

But so we’re 16 years in the future. You have a lot of places pulling out of the cloud. You’ve got some places moving into it, right? It’s just a constant, constant feel there.

And it’s just like, this is, it’s the same thing, right? It’s the hype cycles for me. If someone comes out with a screwdriver and they’re like, oh my God, it’s a screwdriver.

It’s so amazing. Look how good it screws these screws, right? Awesome. First, if I have screws, I want that screwdriver. But we need to stop with, a screwdriver can also make you breakfast in bed.

Oh, really? Well, yeah, because you’re going to use the screws to put together the robot. Oh, I thought you meant like a drink. I was like, Sean, that is breakfast in bed.

I don’t know why. I should have. I chose my items well. I knew my audience. I was like, wait a minute. Yeah, it’s the right tool for the job. I think that’s what I’ve always come back to, spoken on.

Yeah, I mean, there are certainly neat things about it. Like, you know, I mean, I understand that like context windows are sort of like the AI equivalents of humans getting tired and just being like, what was I doing?

Like, there’s a missing parentheses where, but like, it is cool that like, you know, you have these things that can sort of like autonomously just like, like, like pick at and iterate on a task that would not be fun for you, right?

Like, just stuff that you just absolutely don’t want to do. Like, it’s cool to have these like sort of like robo servants that like, you’d be like, like, I don’t know what I’m doing with this. Go mess with it for a while.

Like, tell me what you come back with. Like, I don’t know what to expect, but you know, you can go do stuff. So like there are neat aspects to it, but I don’t know. Pete, I feel like, and this is going to sound weird to say, I feel like people are offloading the wrong parts of their life to it.

Um, like, uh, you know, I feel like people are offloading the stuff that they enjoy doing to it and, and, and doing less of that, uh, and like being less involved with that and using their brains less with that. And, uh, they are not using it to do the stuff that you’re like, man, I, I have, I have no interest in doing that. Uh, so like that, but that’s the pattern that I see a lot of people are like, oh, like, I don’t like, I can use it to do this part of my job.

I’m like, isn’t that the part you like? And they’re like, yeah, but this is great. I can just blah, blah, blah, blah. I can do so much more of it.

I’m like, but you’re not doing any of it. I don’t know. It’s. Well, the. It’s been shocking to me, like how quick and eager people are to just like mortgage away their job. And so like, for example, like, you know, take someone like Sean, obviously, obviously a very, very top man.

His, his time is very valuable. So for someone like Sean, like, let’s say he has to make some PowerPoint deck for some internal meeting and he has to do it, but it’s really not that important. You know, it’s not like the, the success or failure of the product is going to depend on this PowerPoint.

Right. The honor of the country depends. I hope not. So, so like, like if Sean uses AI to do 90% of the PowerPoint and he fills in the main 10% himself, and then he goes and tries to restore temp DB for some very important client. So, you know, like, like Sean can use his time, like more of like, that feels like a good use for AI.

Where, and like, some of the things that suits is like, like the core thing you do, the thing, the thing that the company pays you to do, the thing that you, that you interviewed for, the thing that you studied for, the thing that, that you got certified for. You, you’re just giving up your agency and telling the AI to think for you and do it for you. Like that part is just unbelievable to me.

I want to bring up two things first. All right. I’m counting. I’m pretty sure Joe has been watching me my life because both of those things that he just said have actually happened. Number one is I did recently use AI to make a PowerPoint.

It was, the content was horrible. The formatting, the background choices, the little bubbles, way better than anything I could have done. I’m not artistic at all.

I failed what, whatever art gene there is. Not only did I lose it, but I lost whatever was next to it. Yeah. I mean, you’re talking right now, you had that plain green background, man. See, that’s what I think.

So number one is, yes, I did use it. It was more like the formatting was great. The background was great. And all the content I had to absolutely, because it was horrific. So I actually did about 80% of the work, but the 20% that I would have had to do with the formatting, make it look nice and pretty for people who don’t understand technology.

That was actually the hardest part for me. Yeah. So it did help.

You would have given up. Exactly. And number two is, I actually did, I actually did, when I worked in CSS, when I worked in support, had a ticket that I worked on. And the complaint was that the consultant wanted them to back up and restore TempDB, and they were getting an error, and they think it’s a product bug.

The consultant told them it was a product bug, backup and restore TempDB. So they were opening a case on behalf of the consultant so that we could fix the problem. Well, and the thing is, if you ask the AI, like, should the customer be able to restore TempDB?

I’m sure you could make it say yes pretty easily, right? Yeah, because, like, I mean, you know, so, like, actually, it’s been a while since I really tried to get it to do something stupid, because I’ve been trying to get it to be smart with me. But I remember very early on, like, just asking it basic questions about SQL Server.

Like, it was fully made up backup and restore commands to, like, restore tables and, like, do other weird stuff. You know, it was just, like, I don’t know how, like, I don’t know how much of that stuff has sort of been, like, whittled out of the low-hanging fruit pile of just, like, idiot AI. Like, oh, yeah, of course you can restore a table in SQL Server.

What mature database product wouldn’t have such a basic feature in it? You know, like, ah, I got news for you. But, yeah, like, I mean, at least for a while, relatively famous for that stuff. But I’ll admit, I got tricked by Google, where I inquired if SQL Server had the ability to add a column and add a low priority.

And it said yes, and I thought, finally, those clowns of Microsoft are finally adding the good features we need. And funnily enough, Sean, you were talking about how you can use that, too. But it turned out that the AI just hallucinated the whole thing, and it just didn’t exist.

It might exist in some RDBMS code that it ingested somewhere. Maybe that’s DuckDB or CockroachDB or MemDB. They don’t have a weight at low priority.

Nothing. Top priority or butts. That column’s there or it isn’t. That’s it.

Schrodinger’s column. No, actually, the only database that’s weird with that is that I’ve come across. I’m not going to say the only. But the only one that I’ve come across that’s weird with that is CockroachDB, where what they do is they, like, they, like, add it sort of, like, in the background. And they have all these different workers.

Like, because CockroachDB is sharded, right? So, like, your table lives in, like, 50 bazillion places. Yeah, so, like, you have one table, but it’s not one table. It’s, like, all KV paired across, like, the nodes and stuff.

And they’ll send up workers to, like, add the column and backfill it and do all this other fancy stuff so it’s, like, all fully online. But I won’t get into it with my local testing rig, but there were some interesting side effects there. But anyway, that’s the only one I know that feels like it has a weight at low priority at a column.

But, you know, I do want to point out that I find myself saying this constantly. And I get that I’m now the old person yelling at me to get off their lawn. But I was, it was brought up at one point that there’s now SpecKit, which is specification-driven.

Because, you know, if you just tell, if you just give a generic prompt of, hey, go fix this problem, your results are going to definitely vary. And there’s things that won’t be taken into account in this manner. And I saw that message, and I wanted to reply, but I didn’t, which was, so writing specs are a thing again?

You come full circle. Like, interesting. We went from, we should write an actual good spec so that it can be implemented correctly, and we know what’s going to, you know, everything ahead of time, and we’ve gotten customer input, we’ve done all these things, that’s the spec.

So now, we’re going to write a spec. This is a new novel idea, and we should totally do it. Yeah, but people are just going to use AI to write the spec.

It’s, yeah. No, no, I’m going to tell you exactly where that comes from. I’ve been to a lot of conferences this year, and I’ve seen a lot of talks on AI, and some of the ones are, like, where, like, they’re talking about, like, how to use AI, blah, blah, blah, blah. And they’re like, you have to write a really good prompt.

One way to write a really good prompt is to ask AI what a really good prompt would be. So you’re just, like, the whole advice is, like, use AI to build the prompt that you pass to AI so that it starts with a good prompt. And I’m like, so we’re just out of everything.

We’re just hands off the whole deal. I mean, that’s a great prompt. What did they miss? I don’t know. I would be happy with the Star Trek future of nobody has to work. Yeah.

Everyone just has everything. Nobody wants for anything. Everything’s great. If you want to go do something because you’re interested in it or whatever, right? Great. I, for one, I look forward to that.

You’ll find me on, I’ll still do some type of farming somewhere on some amount of land, whatever. But then I can come home and replicate a steak and potatoes or something. Ah.

Although if it tastes like store-bought. Sean is desperate to stop the SQL Server work to get to his true passion of farming. I think that’s true. I think it’s very clear.

True. Should have taken that retirement package, man. I didn’t hit 71. Oh. I guess I’m not that old that I can yell at people. But no, I’m all for that future.

I just don’t see that in the next 10 years, right? Maybe in 60 years, 50 years, conservatively. Maybe.

I don’t know. And that would be great. I mean, I’m happy to, but it’s always, there’s always something, right? You were saying, you know, you can use the AI to feed into the AI to do the AI. Even when you go, I think it was, I forget who the auto workers, they just got all those like multipurpose robots.

So not just the generic ones, but the multipurpose ones and the unions are all up in arms. Like, but someone’s still going to have to fix the robots, right? Unless you’re getting to a point where the robots fix the robots, but we’re robot doctors.

You know, it was the same thing with the, with any tech, any large technology jump, right? It doesn’t. Yes.

Some things are eliminated, but some things are. Yeah. Like, like having calculators didn’t destroy mathematicians. Well, that’s what I was saying earlier. So yes. It just made math a little bit easier for idiots who can’t do math.

Right. You had the slide rule and there were great with it, but the calculator made the slide more or less. I’m pretty sure that like spreadsheets got rid of tons of jobs.

Right. The amount of people who like to flex their Excel skills. I don’t know.

Maybe. I’m really cracking down on the world’s first database, Joe. That’s rude. Did you know there’s an actual Excel competition? Yeah. Worldwide Excel competition. Yeah.

I heard about that. Maybe you don’t want to tell me about it. There was a guy who made a whole like RPG game in Excel where you could like go through different things. Yeah. People do crazy stuff with Excel. It was amazing.

But yeah. So the whole like calculator thing, plus the calculator didn’t do it for you and it didn’t lie to you. You still had to put in the data. Right.

Yeah. Now you’re saying what’s two plus two and it comes on. It’s like it’s totally seven. You’re like, oh, okay. Well, it told me it’s 17. I mean, I guess I’ll just go ahead and copy pasta that the spec thing you brought up was interesting to me because it feels like these are pretty old lessons that were known by some people, right?

Like you’re trying to get your brand new hire out of college to do something good. Oh, we have to give them a very detailed spec or you have some offshore developer. Oh, you need to give them a detailed spec or you have a consultant and so on. And it was easy.

Well, you know, like it’s not possible for a client to give you a spec for a complicated thing and the spec is 100% perfect and you never have to ask follow up questions. Right.

Yeah. Like I feel like this has been known, but so I don’t know if like if the barrier to entry is gone because right, because like, you know, there’s that idea of like you to have a business person and they claim to have like a really good idea for an app and all they need is for someone to code their really good idea for free, right?

That’s all they need. Then they’ll be the best app of all time. So you used to have that like barrier where they’d get frozen out if they couldn’t find a sucker to work for free, right?

And now these people have infiltrated the industry. They’re walking among us everywhere, right? Like.

I don’t have a problem with that. Like you said, I don’t, I don’t like barriers to entry. I think everyone should have the ability to enter, right? But you’re not going to be able to continue after that. I mean, that’s on you.

Look how many, I used to work for a hospital system. I won’t name those. And the entire patient care was done by a visual basic for application that ran on a 1990s computer that had a sticker on the monitor that said, do not turn off.

Well, I hope you didn’t turn it off. I mean, no, but I’m just saying like that is, it had the windows 95 logo burned into the monitor.

Nice. And, and this is in the late 2000s, right? I had worse things burned into my monitors. They probably didn’t have the budget to buy a monitor, you know? My point is if someone had an idea or said, Hey, I could have done better.

I could have done that. I’m all for it. But when, why I use that example is, and this is going to come up to a question that I actually had for you, Joe, later.

So if you remove the barrier of entry, you’re still going to have crap come through. The thing is, are you able to keep that crap running? Will it go anywhere?

So ideas, I heard someone talking a couple of weeks ago and it was essentially about, um, they were, they had ideas for the stories and they just, they weren’t a great writer and they needed help writing and that’s when I, you know, I started kind of eavesdropping and listening.

It was interesting how the conversation went and everyone has an idea. There’s no lack of it. And if you take the barrier to entry away, then there’ll be no lack of people being able to get in and do it.

And you can actually then have winners. I just don’t like, I personally just don’t like, so I do see it from a gatekeeping point of view as a good thing.

You know, we were just talking at the beginning that there’s things, you know, especially UI base that I just, I can’t stand to do. I don’t like, not great at it. I’m not artistic. You know, it was like, I don’t know.

Like, I think like one thing that used to strike me and that I used to be kind of jealous of is, uh, well, I mean, there’s actually two things. Uh, one is, uh, like a lot of the consulting clients that I’ve worked with over the years, um, have had the, uh, dual luxury and problem of like the person who founded the company also being the person who built the software originally.

Um, and it’s like, like, like they know, like, you know, they, like, they started it and it got good enough that they realized they weren’t good enough to handle it themselves. They started hiring people and, you know, like, like the two things that happen, of course, it’s like, you know, you have like the technical founder who’s like now, like at least for like some period of time up everyone’s butt about the code, but you have someone around who like knows where all the treasure is buried.

Like they, like it’s their code. Um, like maybe they have an ego about it. Maybe they don’t. Um, but they start hiring people who start working on it and they, they, they hand it off and like that, that’s cool.

Not everyone has that, the technical founder ability. You might have someone who has a great idea, just like, you know, they don’t have a way to like get it off the ground. So make, maybe, you know, like maybe we’ll see more of that, um, in the, in the next few years, uh, where, you know, non-technical people who have like a, who do have a great idea can get something to a point where maybe it starts making money and they can start hiring people to like take care of it and, you know, actually build it into a cool thing.

Cause like, like you’re just not going to have someone who can like, you know, just continuously sit there and, you know, let’s just say run a company while they also, uh, you know, have like, just like robots working on the software 24 seven, like eventually you, like you get like, trust me from, from building the monitoring tool and stuff that gets real old, real quick.

Like, I don’t want to say like, if I, if I had someone else who could just sit there and monkey with prompts for, and like build stuff, I’d be much happier, but then I’d have to pay a person in that, that, uh, I tell you, there’s no money in open source software. Um, and then, uh, I forgot the other thing I was going to say, but that was probably good enough anyway.

Well, my question to Joe and you to a, an extent to Eric, because you do go in a lot of places, but Joe, I know you’ve seen some AI code come around and I’ve seen some AI code Eric obviously has.

So I I’ve seen it and it does remind me of kind of back in the day, you would have these generally pretty smart people and they would write code that is not readable or vegetable, but they thought, and I’ve seen it in T-SQL too, right?

Oh, that’s a really interesting trick. Nobody can read it and understand it, but that’s awesome. Right. That’s where I I’ve seen a lot of generated code.

Sure. They’ll put in random comments of, well, this does a sort by whatever. And then it’s, it’s all some very, you look at it and it’s not just looking at it. You go, I don’t know if that’s going to do what it says it does.

So that gets me to the question of given this, are we going to see five, 10 years of cleanup or any type of, you know, we complain about technical debt. Well, yeah, I can help with technical debt.

Are we going to see a new type of technical debt come up, but it not be technical. It’d be, we can’t find people now who can actually understand what the code is doing because the code is so convoluted because it doesn’t, I had some generated the other day, just, I was just trying to be weird and see what I could get it to do.

It wasn’t actually solving or fixing anything. I was just interested and I will say that it generates some code where the variables looked like I was getting it from, uh, Ada or something like that.

Like I disassembled some source code and it gave me the assembly back out. And the, the variables were X, Y, Z, A, B, C, D, X, X, X, Y, X, Z. So, I mean, I wanted to open up that to you guys, you know, do you see that in the TC board?

Do you see that in the code you’re getting and do you think that’ll be, you know, an issue that, like I said, the stuff is just changing now. You might not be going in and, in solving the same problem, but you’re actually having to go and fix the AI generated stuff.

I’ll let Joe start with that one. Before I start that one. Um, well, when you talked about lowering barriers to entry, my issue is bad ideas have a cost.

They have like all kinds of costs. And I remember seeing a quote, I thought it was pretty good. It was actually from someone in charge of one of these AI companies.

And I went slipping on the lines of most of your ideas are bad. It’s good for there to be like some type of costs with respect to like presenting your idea. And if AI lowers all those costs to zero, you’re going to have like a, well, this is like, I’m not quoting anymore.

But if AI lowers all those costs to zero, then you’re going to have like a flood of bad ideas. Right. Like, like, like imagine getting RFCs all day written by AI and like, well, like, yeah, you don’t have to imagine, but you know, you get like, you get like five paragraphs as to why letting customers restore attempt to be from backup would be like the best idea ever.

And you have to spend your time, like refuting that. Like, it’s probably not a single sentence, unfortunately. I don’t know.

Like, I mean, maybe it is, but it probably isn’t like, uh, speaking for myself, I had a AI thing got sent my way. It was like four pages and it took me like, like a literal three pages to explain like all the problems with it and why we shouldn’t do it and why it was a terrible idea and so on.

And like, you know, like it was, it was like hours of work to refute something that was probably created in like 10 seconds. Yeah. Um, so like, that’s the thing that really gets me. Um, even in the pre-AI days when I, when I’d be in meetings with people, back when I had those and people would like confidently say things that were wrong about like, about like SQL Server, for example.

Um, I didn’t like working with those people, especially cause they weren’t really like that, that teachable either. Um, so with that out of the way, with respect to your question, I mean, if there’s no money in open source and there’s no money in like cleaning up technical debt, right.

Uh, I thank God don’t have any experience with the companies that are doing like tens of thousands of committed lines of code per day. Cause apparently that that’s something that that’s out there now.

Like I, I can’t imagine what it would take to have a human work on those repositories again. Um, I thought you had something I could come across your desk recently. Well, it’s, it’s not the kind of company where it’s, we’re committing like 10,000 lines of code a day.

Like, like, like the, like the amount of work is still within like what humans can do. So it, uh, is reviewable for now. Um, yeah, like there’s definitely weird stuff and I try to clean it up as it comes in.

Like there’s recently a, a table valued function with this was an inline one that, uh, had a comment at the top that in order to get like bulk loading or like bulk operations that it was important to have a table valued parameter as one of the input parameters for the, uh, TVF and it was of course like not, and it was like totally useless.

And I ended up like rewriting a thing and just have like normal parameters, but you know, like that’s the kind of, well, and again, like the, I mean, that isn’t even like that bad of, uh, of a thing.

Like it was a new function. It was only used in, uh, in, uh, two different places. I, I caught it right away. Like that’s not even like a real problem compared to, you know, just like, just like doing the wrong project or having a startup and UI get hacked and all your data gets leaked or, you know, like you assume that, that the SQL Server is a real database and it does fast IO.

Yeah. Yeah. Right. You assume SQL Server has fast IO and you build your application under that assumption, but then you find out the truth and then now you’re totally screwed. Cause like one of your core assumptions is wrong.

Like, you know, uh, the fast IO is an actual real thing. Yeah. I know it is. And I know SQL Server doesn’t have it. It’s no, it’s an, if you do a device, if you do some type of, uh, there’s a fast.

Ah, well, why are you using it? Cause you know, the, if you just take a minute to slow down, smell the roses, you’ll find that it’s a better quality item.

Okay. That explains it. What about you, Eric? Um, you know, uh, for me, so like, actually, let me, I’m going back a little bit to, uh, like not, not code, but just like people like putting together very long documents of stuff is very demonstrably wrong.

Uh, you know, like a couple months ago and I realized this is all stuff that can eventually be corrected. And I’m so like, I’m not saying like, this is just how things are forever. Like it’s stupid, but like, I got a 17 page document from the VP of this company talking about how they couldn’t turn on change data capture because they’re using accelerated database recovery.

It was just impossible. It can’t be done like all this other stuff. And I’m, I’m reading through it and like, like the entire document is based on this and like, like, like went through the whole thing, all the reasoning behind it, like, like just like laid it all out 17 pages long.

And he’s like, we need to have a call about this. So get on the call. And I was just like, all right, first things first, the document is wrong. You, you can use it.

Uh, there is, there is an interaction between them around aggressive long drugation. And so like, like there is like a slight incompatibility, but it’s not a wholesale incompatibility. You can, you can still turn them both on. And like in SQL Server 22, I think that even gets it like, like some of that is alleviated.

And it was just like, oh, and I was like, yeah. And I was like, it was like 17 pages on that, man. That’s a real waste of time. It’s just like, that’s like dumb.

And then like, uh, just actually just yesterday, um, I was like, uh, I wanted to, like, I, I, I had to tune a query where there was like a whole, like a where clause where someone um, it was, it was like, it’s not kind of absurd-y where, but it was like the where clause was like, where is no column, some replacement is not equal to is no column, some other replacement, but over like 40 columns.

And like, I, I love the Paul White trick of like, and like exists, like select, uh, except select, which like gets you around all that. But then I was like, oh, like a SQL Server 22, 2022 has like the distinct from clause in it.

And I was like, Hey, can you give me a version of that using distinct from just so I can AB test them? Cause like, like just rewriting that massive block of code is something that is great for the robots, right? Like, Hey, just mechanically do this thing.

Like just change this to, to this, like how hard could it be? Right? Like something, all that typing I don’t want to do, like, like control F is no parenthesis, uh, comma, other thing.

Uh, I don’t want to do that. So, and the, but, and then like the first thing was just like, Hey, like, like I can write that for you, but SQL Server doesn’t have to have distinct from in it. And I’m like, uh, buddy, like SQL Server 20, 2022, that’s, it’s like four years ago.

Now they’re like, it’s in there. And it’s just like, Oh, my bad. I’m like, all right, just do it then. So like, it’s, it’s still like, I don’t know.

There’s still, you still have those rough, like these really rough edges. And, you know, like, I know I talked earlier about how it just spews absolute nonsense about query and performance tuning and stuff like that. Like, like, it’s just like flat out dumb about so many of those things.

Um, that, you know, like for, for me, like, like you really, like, it really does take a domain expert to point it in the right direction and get it to do the right thing for a lot of stuff.

Um, I’m sure that a lot of the code that I’ve had to produce for the monitoring tool is not what an actual developer would do in a lot of these cases for like for, for, for a lot of it, but I don’t have the domain knowledge to say, Hey, we should have coded it this way.

Instead, it would be better for X, Y, and Z reasons. But when I, when I pointed at like SQL Server stuff and I’m like, let’s party, let’s, let’s have it, let’s, let’s have the talk.

Like, you know, like I, I, I feel like, um, like I’m qualified to like, you know, get it to do the right thing because I know what, I know what right looks like, but if you don’t know what right looks like and you don’t, you don’t know anything about it, you have no sort of foundations in something, uh, you’re gonna have a real hard time with it.

Like, like, like, like you, like you, you might get it to eventually spit something out that’s like functional, but, uh, it’s going to be, it’s going to be a rough road for you. Yeah.

I wanted to also touch on something that Joe said, which was about, uh, security and stuff. And there’s obviously that’s a, a big point of contention for a lot of places, right? Because not only did you then have, like you were saying before, uh, some of these places have where they have the technical founder, where the person was, they were the founder, they, they did everything that was technical and now you’re worried about maybe security that they might not have as much in or this or that, or you have the people who are now saying, I’m going to take these models against whatever.

And I’m going to have this model decompile it on this model, try to find whatever issues. And I’ve seen some of the reports that come out of that. And I know this isn’t new, but I did want to hit it because it is such a big thing.

I’ve seen some reports come out of, out of that, uh, specifically for database stuff. And it’s, it’s, some of them are interesting, uh, but I would say most of them are hot garbage. Yeah, most of them are, if you have sysadmin on the box, you, you took the words out of my mouth.

The, when I look at the repro section and the repro says you’re a local administrator on the box. And I mean, in, in the OS, right, pick your OS, you can, you can attach a debugger. Like, yes, yes, you can.

Anything you say after you, you said you have sysadmin, I am not listening. If you start with U of sysadmin, it’s, it’s, it’s, it’s getting to a lot of slop. And so the thing that Joe was saying about it’s right now, he can work on a lot of it.

It’s coming in manageable sizes. I would say any place that is large enough that they’re getting that kind of stuff. It’s not niche at all, just you’re in your, as you stated earlier, you’re taking out the good parts, right?

You want to say, Oh, I want to go write that code or I want to look at that. Or that’s an interesting problem. And now you’re going to, I guess I’m just Joe, you know, I’m guessing, I’m just going to look over this PR and rewrite it and then approve it.

I guess that’s my job now. Uh, I don’t actually work on databases. I not actually a DBA. I’m just a PR button presser.

I seems wrong. It’s a little depressing. You think of it that way. Well, that’s what I mean. It seems wrong because you’re not using Joe’s expertise.

Right. Correct. Area. So yeah, that, that’s getting into the other stuff. Um, in a comment you said, uh, just a minute ago, yes, it might not have generated the most beautiful or the correct code or anything like that.

Um, but how many applications do we see on a day in and day out where you do then get to see the coding? Oh my God.

How did this thing ever work? How do you guys make money on this? Yeah. I actually, that, that, that does actually jog my memory on something else that like for years, like in, in the consulting work, I would see like the worst applications built around databases.

I mean, like, no, I don’t know about the application code. I know, uh, nothing about that, but I would just see like the store procedures and the queries and like the table design and everything. And I would just be like, oh, you’re a mess, sweetie. Like what, what happened to you?

Uh, and, and for years I was just like, you know, if, if like, let’s just start companies that make better versions of this software, like, and like, like data, like I know so much about databases.

If I started this from the ground up, I would not screw this stuff up the way they have. And like, like now it’s just like, I could do that. But I like, I’m like, where’s their money in that now? Cause everyone can do that.

Like, ah, I happen to be clicking around in the Azure portal. Oh, well, yesterday. And like, there, I noticed there was like, what are you being punished for? There was like all this red everywhere.

Like, you know, like red, the bad color for like security recommendations. And I was curious and I clicked on one, this was just SQL Server on a VM. And, and one of the ones that stood out to me is CLR was enabled and, and, uh, that was bad.

And the recommendation was to turn CLR off because if you don’t turn CLR off, then someone might create a CLR assembly that like does bad things. And, you know, that, that, that, that was a dark red security recommendation.

Not untrue, Joe, not untrue. Well, like, you know, like there’s some guy at Microsoft who has a lot more gray in his beard than Sean and, you know, CLR and SQL service, probably his, his like a magnum opus is his big project.

He left his mark on the product and now there’s some shitty, probably AI generated slop security thing telling everyone, well, Hey, you know, like you should just turn this off. Cause it’s a security thing.

Um, it’s funny that you say that though, uh, the, some of the security items that come up, I had, I was talking with someone recently about specifically securing some database stuff. And one of the recommendations they had was that triggers are, this also came from an AI thing that was given to them, uh, that there should be a way to turn off all triggers everywhere in the database, because having the ability to create triggers, someone could create a trigger and get a sysadmin to run it and it add, you know, a new login and something.

And I, part of me wanted to just yell. And part of me is, you know, this is where we’re at where, well, but, but you see, I could exploit it.

Yes. You could. There’s a reason why there’s security in general. And you don’t just give everyone sysadmin. I, it’s, it’s, and it, and some of these places are not small. Some of these places are, I’m sure you’ve seen it too, Eric, very large where you think this person’s making multi hundreds of thousands a year.

And this is what you come up with. Yep. What the. Yeah. It’s, it’s, it’s interesting. Uh, it’s, it’s like, like, like the last thing we needed was a way for stupid people to feel smarter and we got it.

Like, we just got, got so much of it and it’s, it’s, it’s, it’s rough sometimes like seeing stuff out there. Uh, I, and I, I, I, so actually this, this is more, more of a generic question for the two of you.

Uh, uh, is AI a bubble and what form will this bubble take? Like what, what will, what will its burst look like? Cause it’s like, like, like a lot, like a lot of this stuff is, is it can’t, it can’t go on forever, ever because, uh, there, there’s a, I don’t want to say it’s Ponzi ish, but there’s certainly a lot of like circular monetary, uh, patterns forming.

And, uh, a lot of the, like a lot, all this token stuff is very, very highly subsidized. Like, like when I use Claude, I can, I can hit usage and I can see how much my session would really cost.

Like if I didn’t have the max plan and it’s like 3,200 bucks and I’m like, okay. All right. That’s a little token inflation there, but all right. Uh, like that’s interesting.

So where, where does, where does it all end? Where, where does, where, where will this naturally lead us to? Well, maybe it’ll stop when someone gets sued and I’m kind of shocked that the lawyers aren’t helping us here.

Cause like, well, like I’ve never had, uh, work on software like this myself, but I assume we’re something like, if you have to do GDPR compliance, that’s like very important to your business or doing business in Europe.

Right. And I just can’t comprehend now if you have like AI agents writing a hundred thousand lines of code a day and committing it. Like, how do you know you’re compliant with anything? GDPR, PCI, like government saying you have to store data in certain ways in certain locations.

Like it doesn’t. Um, I’ll tell you, Joe, people barely know now and it’s, it’s not always the fault of the people.

A lot of it is the fault of the auditors who cannot give a clear answer on anything. Well, I mean, maybe that’s true, but you could at least like pretend you’re trying. Like if you just say, yeah, you’re just saying like, oh, like, like, like we have a million lines of code generated per week and there’s no human ever looking at it, but we, we’re definitely GDPR compliant.

We have promise, or we’re definitely not using any copyrighted code in our million lines of code written over it. It just seems like totally impossible to, and I thought these things mattered. Maybe they actually don’t and no one actually cares, but.

It’s not that it’s impossible as Eric was saying, you know, it is up to the auditors a lot, and this is the same way that everything gets swept under the rug. I used to do PCI used to be involved in, I was the one getting audited, but you know, on one of the checklists, it would be, this needs, this needs to be behind the firewall.

That’s it. Right. Because someone in Congress, like you can look up the, the, where the PCI stuff came from. You have people who are not technical making up rules about technical things.

As technical people know, there’s no better person to get around. Un-technical rules than technical, the, you know, the well-actually crowd. So love them or hate them.

The technically correct crowd. You’re a technically correct. So as Joe would say, the best kind of correct. So literally went in and enabled windows firewall. Granted, this is circa 2007 and got a check mark, got a check pass on the audit because it was technically behind a firewall.

One of the worst firewalls in the world then at that time, but technically behind a firewall. So yeah, Joe, I mean, it, a lot of these places, and if you look, there’s even the, uh, there’s actually a company that doesn’t even exist anymore.

They were an audit and they got caught passing people that shouldn’t have been passed and getting money for it. And they’re no longer around.

So yeah, a lot of this is underhanded. I guess, even to go into Eric’s question, there’s a lot of different things going on right now. And just as the, uh, I don’t know if y’all remember it, but the machine learning craze and the blockchain craze, right?

Blockchain didn’t, sorry, the blockchain didn’t go anywhere. It’s still around. Now it’s just actually being used for things that should be used for rather than being put in cereal and toasters and everything else.

There is a lot of circular money in AI. There’s a lot of very good write-ups already on it. So I don’t want to rehash that. But as long as, uh, as long as that continues, having said that to Joe’s comment, a lot of the companies are starting to get sued.

There’s a large, there’s multiple lawsuits against DRM manufacturers right now with very, in various different forms. And if people don’t know the DRM used to be cheap, but they’ve also been.

Caught being cartel twice already in history with the 2000s being the last time and, uh, a failed, I think it was around 2016. There was another lawsuit against them for cartel like items.

So I think it will come to a head, but it’s going to do the same thing that machine learning did, which is AI and what the blockchain did, which is you’re still going to have it. It’s actually going to be used for things that make sense.

And as Eric pointed out, aren’t going to cost you $3,200 to say, please summarize my calendar and leave out half my meetings. But at the same token, I think it will be more judiciously used where it makes sense.

We will actually start to see good benefit from it because it won’t be replacing the things that you’re not going to have it. It’s just making hundreds of thousands of random lines of code and just committing it.

You are going to have it maybe help in areas, but the domain expert, as we’ve seen with Ford, as we’ve seen with all the other, I mean, Starbucks was losing how many millions per month because the AI tool refused to.

And what does Starbucks need AI for? They were using it for inventory. It’s actually, it’s a hilarious story. I would encourage everyone to go read it. I would encourage everyone to go look at the Ford story, the Starbucks story, and the Clark.

The Ford one I’ve seen, the Starbucks one I haven’t. I was like, what are you just throwing crappy frittata recipes at the wall? It sounds like we need some links in the description, Eric.

You’re going to ask your AI buddy to research those? Whatever links you send me, I will put in the description. But to summarize, the TLDR is, it did optical inventory scanning because humans are very bad at that and it’s tedious.

And it refused to classify things. It would just skip over stuff and just not even care. And then it would say, you don’t have any of this. I mean, that sounds pretty human-like to me.

Yeah. That sounds very human, especially for Starbucks inventorying. You’ve got to get meth somehow. Yeah.

I guess so. Because actually, that is a problem that I frequently have with my robots. Well, apart from that, is whenever I set them onto a task, they really love deferring and downscoping and skipping over stuff that was really explicitly laid out as like, this means success, without this, we are not successful.

And I’ll be like, that’s a little hard on this pass. I’ll get to that later. And it’s just like, here’s what I skipped. And I’m like, it’s half the stuff I asked you to do. What the?

It’s shocking when you train it on, it’s not shocking. I’m being facetious, but when it’s trained on human behavior, then people are shocked that it exhibits human behavior.

Like the chatbots, right? Tay and all the other crap. Well, it became super, super, what was it? Nationalist.

Yeah, I started quoting Hitler and stuff. I was like, damn. Well, you trained it. You let it go crazy on the internet. The internet is, you know, the cesspool of everything. Like that is what the internet does.

Yes, literal backwater. You’re shocked that it did the thing that you told it to train yourself on. That’s what, that these people are still so, it’s, you’re still so shocked by it. And I don’t know if it’s fake shock or real shock, but I just want to punch those people.

Well, speaking of being shocked, going back to your bubble question, I thought everyone had learned by now that like big companies aren’t going to take care of us or offer like a really good cheap product that lost forever, right?

Like I was, I was trying to think of all the ways like even if it’s a good now, which is debatable, like what are the ways that it could be made more shitty in the future? Because it’s obviously going to happen, right?

So, so I was thinking of things and probably all of these things like already exist in some form too, because I’m not nearly as creative as like, you know, the army of people trying to make things more shitty for us.

Like, like, like imagine having to watch an ad between every prompt, right? Or, or, or you’re being throttled or like things unavailable or the, where the price goes up, like, like a hundred acts, like all those things feel inevitable to me, right?

Like we’re supposed to believe that there’s some, like, it’s like Eric said, oh, well you should have been charged some huge bill, but we’re actually not going to charge it to you because we’re like so generous and this is definitely a thing that’ll, that’ll, that’ll remain this way forever.

Um, uh, you know, like it wouldn’t surprise me if there already was some company that, that made you watch ads, like, I mean, in between your prompts, right? Like, and that, I’m, uh, I don’t know if I hate ads more than, more than AI, I don’t know where those two rank, but let’s stick to my, my, my token free lifestyle with the exception of generating dumb images on occasion for free.

That is something that, uh, that I use tokens for all, I confess to that. All right. Well, I, we can forgive you that now that we’ve, now that we’ve beaten that confession out of you.

I think it would be interesting for the, sorry, just real quick. I think it would be interesting for the people who are watching this shout out to my grandmother. Nana Ghilardi out there.

Yeah. Represent. She, uh, it’d be interesting to get other people’s takes that don’t, that really don’t use it because I think that’s like why, not why in, in a bad sense, but what interactions you had good or bad, I think if we looked at everyone’s interaction, I don’t think it would come out.

No, probably not. No. Um, like, you know, I, I think about like my mom using AI and most of it is her yelling at Alexa for, for setting timers wrong.

And I don’t know, like, I imagine there’s a lot of people floating out there in the world where it’s just like, like, like, why are you listening to me? Like, uh, I mean, AI seems to offer a revolution for the scamming industry.

Yeah, that’s true. So, you know, and like, like really like, Oh, what does any new technology good for if not scamming more and more people, even more efficiently than ever before?

Right. Yeah. Just robo call everyone. I get about 17 calls a day from fake numbers and people telling me that my loan has been approved.

And I’m like, I, I don’t know how to get off this merry-go-round. Like my phone number is just out there and just a lot of me, like blocking reports, bam. Oh, there we go.

Okay. Are we going to do this again? Yep. 20 more calls today. I did that with a, with a text, right? So I got the, you know, the spam text, but I responded as an LLM would, and I went round and round with it for probably a good 20 something minutes.

And, uh, I eventually had it come back and say, Oh, I did. Cause I said, sorry, you know, our volume is high. Please choose from the following menu items.

And then it would say, no, I’m, I’m conducting a survey. I’d like to know. And I would just send the same thing back. And it said, um, I guess I would like to be removed from this list. And I said, great, you’ve been removed.

Please, please reply back to be added again. And then it replied back. Thanks. I said, great. You’ve been added. It just kept it going. Is this on Microsoft company time, Sean?

I gotta ask. What’s. Yeah. This was like a random sat Saturday. Uh, I was, it was, it was on Saturday company time. These days too.

No, it was farm time. I was. Okay. Yeah. One, uh, maybe warning to end the thing. If Eric’s ready to end the thing.

Hopefully AI doesn’t cut into like human relationships and communication too much. Uh, just, just to share a very low stakes example that I had personally, uh, I finally communicated to a famous SQL Server, open source project.

I’m not going to name names, you know, but it’s something I can, I can cross it off. Drag me out here, man. Can cross it off my SQL Server bucket list. And so I, I did the thing.

I made my PR and submitted it. And I, I got an AI code review in response to my commit. And it really felt, you know, they say you should never meet your heroes.

Like that really felt like so depressing to me. Like, man, like I’m finally contributing. And now I’m reminded of like, all of the, like, I don’t want to spend my free time, like arguing with some shitty AI about like, Oh, well, you’re actually not logging additional debugging info, which, which wouldn’t be written to the table anyway.

Like, this is like, it was very, uh, it was very disappointing, but later the maintainer did stop by and presumably everything he wrote was, what was his own words, but it’s, it’s I know, I know that, so I, at first I thought you were going to talk about something that happened with, with performance studio, but I realized now this is a completely different repo.

And I was going to give you a thoughtful, heartfelt explanation as to what happened. No, I’m not going to hear that. I’m not going to hear that. It was not Eric’s tool. It was someone else’s.

All right. I will say, I will say to that, Joe, uh, I had made a change and I had a small PR and then the AI bot went over it and said that my change was incorrect.

And then stated in the next five paragraphs that it wrote about why it was incorrect, that the end result is actually I’m correct, but it should still be undone so that it can be redone because redoing it would be the correct thing that I just there just for shits and giggles too.

I did a, I did a quick submitted a quick, uh, AI generated PR and the AI bots argued with each other and absolutely nothing got done, but it was hilarious. You got, got to use your, uh, your, uh, daily token budget somehow, right?

Yep. It’s a KPI. Gonna, gonna fire the bomb 10% of token users any, any day now. Oh, sorry.

Lay off because I’m sure no one gets fired. Right. Voluntary. Voluntarily fired. I’ve realized the error of my ways.

I should not be employed here. All right. I’ve, I don’t know how long we’ve been talking. It feels like hours, uh, maybe days. Have I eaten?

I don’t know. But, uh, I think, I think we’ve covered enough, not enough ground on this one. It’s been a pleasure as always. Uh, we should do this more often. Maybe if you think of anything else to talk about.

Just get some, uh, I’ll, I’ll ask the AI for some topic. See, that’s a great idea. But then, like, there’s like, just what, what should we talk about next? And then you can just say no to all of them and be fun.

Uh, but, uh, thank you to, uh, uh, Joe Obish and Sean Ghilardi for joining once again, the Bit Obscene radio program. Uh, you can find them, uh, nowhere.

Uh, they’re not, not, not on the internet, really. That’s, that’s probably good. Uh, and, uh, I will see, we will see you in the next episode, uh, at some undetermined date and time.

All right. Thank you for watching. Thank you for listening to the radio program. We’ll see you in the next episode.

Going Further


If this is the kind of SQL Server stuff you love learning about, you’ll love my training. Blog readers get 25% off the Everything Bundle — over 100 hours of performance tuning content. Need hands-on help? I offer consulting engagements from targeted investigations to ongoing retainers. Want a quick sanity check before committing to a full engagement? Schedule a call — no commitment required.

The post bit Obscene: ComplAInt Department appeared first on Darling Data.

Read the whole story
alvinashcraft
22 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Accelerating Frontier Transformation: Reinvent customer engagement

1 Share

This blog is part of Accelerating Frontier Transformation, a four-part series exploring how organizations are turning AI into business value. Based on conversations with industry leaders at Microsoft AI Tours, the series looks at AI’s impact across employee experience, customer engagement, business processes, and innovation. This second post focuses on reinventing customer engagement.

Understanding the people you serve

The word “customer” can take on different meanings depending on the industry. In retail, it may mean shoppers. In healthcare, patients. In education, students and teachers. In nonprofits, the communities they support.

Despite this difference, the leaders we spoke with at several Microsoft AI Tours around the world described a common challenge with the people they serve: expectations continue to rise. They expect experiences that are timely, relevant, and tailored to their needs. At the same time, organizations are being asked to do more with limited resources.

That tension is why reinventing customer engagement has become one of the clearest opportunities for AI—and one of the key paths toward Frontier Transformation.

Many organizations are using AI to better understand their customers and make engagement more meaningful at scale by bringing together information from across interactions and getting deeper insight into their needs.

At Lifeline Australia, a nonprofit that provides crisis support and suicide prevention services, AI is helping their teams gain deeper insight into the services they provide and the people who rely on them.

We are looking into more specialized, tuned AI […] from a data science point of view, to really tease out some of those insights or look at behaviors. Getting that insight into the actual service that we deliver, not just how we deliver it, has been a key game changer for us.

Mark West, Head of Data and Insights, Lifeline Australia

When organizations have a clearer understanding of the people they serve, engagement becomes more relevant, responsive, and impactful.

AI can help organizations uncover deeper insights, identify emerging needs, and make more informed decisions. That understanding creates the foundation for more personalized and meaningful experiences.

Personalization that scales

Personalization has always been one of the main goals of customer engagement. The challenge has been delivering it consistently across large and diverse audiences.

AI is helping organizations address that challenge.

At Brisbane Catholic Education, which supports approximately 80,000 students across 150 schools in Australia, AI is helping educators tailor learning experiences to individual student needs.

With AI we’ve been able to get to the point of what I would call hyper personalization, where a teacher can write just one curriculum document and then have Copilot come in and personalize that for every single child in the class.

Leigh Williams, CIO and Education Executive, Brisbane Catholic Education

Healthcare organizations are seeing similar opportunities.

At Sciensus, a European life sciences organization that helps healthcare partners bring the right medicines to the right patients faster, leaders believe that when AI helps manage information and surface relevant insights, it creates more room for people to focus on relationships, empathy, and expertise.

Sciensus recently launched the CareTranscribe pilot project, an AI-enabled initiative designed to improve clinical documentation workflows so clinicians can spend more time with patients during home treatments while improving visibility into patient interactions and care journeys.

Behind the scenes, Sciensus is also building knowledge systems and using AI to help teams learn from interactions and prescriptions and make information more accessible across the organization. Patient data stays protected at every step, with privacy, security, and responsible AI practices built into how these systems are designed and used.

We massively spiraled into an area where a lot of ours is production-ready AI. So, we’re building live agents, we’re building knowledge bases that we didn’t have beforehand, using unstructured data that’s available across all our domains. Copilot has really helped in that because of the secure aspect of it.

Joseph Frost, Director of Data Science and AI, Sciensus

Building stronger relationships

For many organizations, the real return on AI is what they can do with the time given back to their people. Freed from documentation and repetitive administrative work, employees can spend that time listening, understanding what someone needs, following up, and building the kind of trust that only comes from being present. Customers, patients, students, and communities all feel the difference.

At Everything Suarve, a nonprofit that supports at-risk youth across Australia, AI takes care of the case notes and reporting, so staff can give the young people they serve their full attention and spend more time with them.

What AI has done is actually enabled us to get a lot of time back to spend it where it’s needed. For us to make a difference it’s about being with the young person and not sitting behind a computer.

Joseph Te Puni-Fromont, Founder, Everything Suarve

Uniting NSW.ACT, a community services organization that provides care and support services for older adults, families, and communities across Australia, is seeing similar benefits. Its AI-powered platform, Buddy, helps frontline workers to retrieve and create content in less time, so they can spend more time supporting communities.

Activities that used to take 10 to 15 minutes are now taking one to two minutes. So, times that by 9,000 frontline workers, it’s an incredible amount of time back in the day for them to actually look after our customers and provide better aged care and community care.

Andrew Dome, Chief Digital Information Officer, Uniting NSW.ACT

Overall, through the conversations with customers, we’re hearing that AI is helping them create experiences that are more relevant, more personal, and more responsive to the people they serve. As engagement becomes more contextual and individualized, organizations can build stronger relationships while extending their reach and impact.

Make three practical moves now

  1. Start with understanding. Use AI to bring together signals and context so teams can better understand the people they serve and what they need.
  2. Personalize with purpose. Look for opportunities where AI can help tailor services, experiences, and communications at a scale that wasn’t previously possible.
  3. Remove friction, not relationships. Apply AI to administrative and repetitive work so employees can focus on meaningful interactions and higher-value conversations.

Learn more

  • Visit the Frontier Transformation site to explore how you can put AI to work, build trust, and scale transformation with Microsoft across everyday workflows
  • Download the e-book Four Paths to Business Value with AI to learn how you can move from AI experimentation to Frontier Transformation with intelligence and trust.

Next in the Accelerating Frontier Transformation series: Reshape business processes.

The post Accelerating Frontier Transformation: Reinvent customer engagement appeared first on The Microsoft Cloud Blog.

Read the whole story
alvinashcraft
59 seconds ago
reply
Pennsylvania, USA
Share this story
Delete

Making Your Data Ready for Agentic AI

1 Share

Lots of organizations are excited about what AI can do to streamline their processes, save money, and juice margins. But AI's capabilities are founded on the data that AI accesses, and for many organizations that foundation is little more than sand. Pramod Sadalage and Prem Chandrasekaran write about how to build a reliable foundation of data that can be accurate and trusted.

more…

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete

Azure DevOps in the GitHub Copilot App

1 Share

The Azure DevOps plugin is now available for the GitHub Copilot app, allowing you to view and manage Azure DevOps pull requests and work items directly in the Copilot app.

What you can do

The initial release supports:

  • View your work items and pull requests from My Work
  • Open work items and pull requests
  • Edit work items
  • Edit and complete pull requests

You can find your assigned work, make changes, and complete pull requests without leaving the GitHub Copilot app.

Get started

Open the GitHub Copilot app and select Customize. From the Editor’s picks tab, find and install the Azure DevOps plugin.

github canvas editors pick screen

Once the plugin is installed, start a new session from chat or select New session from the plugin card under Editor’s picks. Sign in and enter your Azure DevOps organization and project information.

login and configuration of github canvas screen

You’ll then see your open pull requests and work items. You can open and edit them directly from the GitHub Copilot app.

using github app with azure devops screen shot

Feedback

The Azure DevOps app extension is still in its early stages, and functionality is currently limited. We’re working to add more capabilities over time. If there are key scenarios or capabilities you’d like us to support, please share them in the comments below.

If you have questions, run into an issue, or have other feedback, please open an issue in the repository.

The post Azure DevOps in the GitHub Copilot App appeared first on Azure DevOps Blog.

Read the whole story
alvinashcraft
1 minute ago
reply
Pennsylvania, USA
Share this story
Delete
Next Page of Stories