Author: way0utwest

  • Poor Software Testing

    I am a big advocate of testing your code, including your database code. I like repeatable testing, especially unit testing. I think this has contributed to the increase in quality over the last ten years as more developers have incorporated unit testing into their work. That, along with the increase in standard frameworks, seems to have resulted in less crashes and instability in much of the software I used today.

    That being said, the client ultimately decides if software works as expected. Certainly there can be logic errors, but there also could be errors in how specifications and requests are interpreted. This is one reason we need humans to do some QA testing and clients to ensure there is some user acceptance review.

    Apparently that didn’t happen with one election machine. There is a hash that is supposed to be used to verify that the correct version of software is installed. However, if that reference hash isn’t there, the machine still reports things are fine. Certainly an issue that is a problem, though not necessarily one that users would detect. We would expect someone that purchases, updates, or administers these machines to check for the correct version.

    That isn’t an issue here because the acceptance testing was done by the vendor. While I am a big advocate of developers checking their work, there needs to be independent evaluation by a CI process, and there ought to be some QA review by another group. Certainly a client ought to be able to double check the software as well, and some client should have done acceptance testing here.

    As the world moves more towards DevOps type software development, we need better testing, and that likely needs to include some independent testing outside of the developers and testers. I certainly could see the need for clients to submit some tests and get some verification that those tests passed. Automated CI/CD systems can do this, and provide detailed logs of what happened.

    Ultimately we may still have bugs, either because we don’t have enough testing, or we don’t quite write the code that does what client expects. We may also have performance issues, but that’s another testing issue.

    We can get better, but we have to work to do so, learning from our mistakes, ensuring we are always improving testing, and listening to feedback.

    Steve Jones

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

  • Daily Coping 24 Mar 2021

    I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag. 

    Today’s tip is to stop, breathe, and sit quietly for a minute. Repeat a few times.

    I breathe often in yoga. It’s helped me to think about my breath at other times in life. However, I often find the workday hectic, with lots of different tasks for me to deal with. I like to power though the day, taking breaks exercise, cook, or maybe play guitar. Often these are “working” breaks.

    My task today, and really more days, is to find a way to take a short break multiple times and be. Sit outside, do nothing, just appreciate life.

  • The Data Saturday Logo Contest

    I’ve been helping with the Data Saturdays project, in addition to trying to get SQL Saturday to grow again. Data Saturdays is looking for a logo, as the site has been a little plain so far.

    The admins have set up a design contest, and you can read about this at Monica’s blog. She really did a ton of work to review submissions, ask for our feedback, and deal with designers. Everyone that supports this project owes her a huge debt of gratitude. Please thank her when you see her next.

    The design contest is at 99designs, and I think there are some good choices. We picked 4, and you can vote until Friday, 26 March 2021. I grabbed the four designs here, without the extra stuff that might be included. Leave comments and you vote, and let others know.

    2021-03-22 16_55_35-Help me choose my new design!2021-03-22 16_55_26-Help me choose my new design!2021-03-22 16_55_13-Help me choose my new design!2021-03-22 16_55_09-Help me choose my new design!

    I won’t talk about my favorite, but I like all of these to some extent.

  • Removing SA from Azure SQL Database

    One of the recommendations from Microsoft SQL Server is to use Windows authentication. This has been in the docs for years, and I’ve heard many MS consultants and employees note this. Many customers and clients have tried to use Windows Authentication only, but often in a cross platform environment with Java or Linux clients, one usually has needed SQL authentication with a user and password. Client libraries have been enhanced so this isn’t necessary, but still some people prefer SQL authentication, especially with clients outside their organization. It’s simple, easy, and developers can make it work in seconds.

    With Azure SQL Databases, some companies defaulted to a username and password, as their Active Directory (AD) wasn’t extended to Azure. That has become easier to do, and many people are taking advantage of it. In fact, some customers are so integrated, they want to do away with usernames and passwords in Azure.

    Microsoft has listened, and is giving them the option. The feature is in preview, but if you enable this, SQL auth is turned off, which means whatever administrative account you set up for the server with a name and password will not work. That’s essentially the “sa” account, though with your own custom name.

    While this feature won’t be useful for everyone, it’s a good option to have. As more companies look to tighten security and limit the attack surface area, being able to make this choice is important. It’s also something that architects and administrators should be aware of and consider in their decisions on how to implement applications in Azure.

    Steve Jones

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