Daily Coping 23 Feb 2023

Today’s coping tip is to give sincere compliments today to people.

A tough day recently coaching, but I kept this in mind. Complementing parents, competitors and fellow coaches, and even my kids. All while not having things go our way.

It was tough, but I was working to find something good to say about a variety of people.

I started to add a daily coping tip to the SQL Server Central 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.

Posted in Blog | Tagged , , | Comments Off on Daily Coping 23 Feb 2023

A Test Client for Zero Downtime Deployments

I’ll be at VS Live in Las Vegas this March to discuss zero downtime deployments. If you want to come and join me for this session, or any of the other great ones, register today and save $500 with the promo code “Jones”. You can use this link to register.

To simulate the effects of deployments on a workload, I built a small client. It’s nothing great, and likely some of you will laugh at my C# skills, but it works well enough. It’s a simple Windows form application that writes to a text box. However, it’s valuable to determine if there are any issues when you’ve made a deployment.

This post looks at the rough design of the client. Code is available in this repo: https://github.com/way0utwest/ZeroDowntime

Using WPF

I wrote a small app a few years ago to test and present on Always Encrypted. This was a basic WPF app that added the proper values to the connection string for Always Encrypted and let you query encrypted data (or not).

Like all mediocre developers, I copied and pasted that project into a new folder and set about modifying it. In this case, I set up a loop that continues to run and execute some database code, essentially using this loop:

while (iRunQuery > 0)
{

I set this value to 0 initially, and when a button is clicked, it’s 1. This then runs a bunch of lines to decide which DB code to run. I’ve mostly made this stored procedures to make it easier to adjust demos without touching C# code.

It’s not pretty.

At the bottom, I have this (outside the loop)

Application.DoEvents();
System.Threading.Thread.Sleep(100);

This is designed to catch me clicking a “stop” button that will set the variable back to 0. I added the delay because otherwise this runs a bit fast.

I have a few option buttons that adjust what code I’m calling, so I can simulate toggling feature flags on and off. I also log results to a window so you can see them, and I catch errors and log those. Errors are also counted, so we can see the impact of “non zero-downtime” changes.

It’s not a great example of software, but it does work.

Posted in Blog | Tagged , , | Comments Off on A Test Client for Zero Downtime Deployments

The Danger of Sharing Data

In the past, many businesses hired employees whose role was deciding which prices to charge for their goods or services. At one point, organizations largely set prices based on their costs, though over time they tend to look at their competitors and set similar prices. If, however, management from multiple companies went into a room and determined prices, this would be price-fixing.

Price fixing is illegal. In many countries, we would not allow different companies to work together in a way that might reduce competition or take advantage of consumers. However, that might be a struggle in the future as we find companies using various services to help them manage their systems.

In this case, a few different Las Vegas hotels used the same company to help them decide how to price their rooms. Rainmaker is a revenue management platform, which uses lots of data to help hotels price their rooms in a way that maximizes their revenue. That sounds great, but if this company is successful and many of their clients are in the same location, this is really a way of sharing data by proxy. The hotels are being sued because of their use of this platform.

This one of the problems (or advantages) of lots of data. It allows information to be drawn out of data that wouldn’t otherwise be obvious. Certainly, lots of companies look at their competitors and make decisions based on what they see. I’m certain there are lots of people inside airlines constantly checking the prices of their competition. However, they are gathering this data independently and making their own decisions. If Rainmaker were used by American, United, and Delta to set prices for flights, I imagine many would see this as an anti-trust violation.

Big data is powerful. It can help give an organization an advantage over its competition. This is one reason lots of companies hire data professionals like us; they see data as a very valuable asset. However, in this case, I feel that one company selling this data, or rather the conclusions, to competitors is a problem.

I expect more problems like this in the future as smart people look to harness the power of data and sell their services to competitive companies in many industries.

Steve Jones

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

Posted in Editorial | Tagged , | 7 Comments

Daily Coping 22 Feb 2023

Today’s coping tip is to share something you find inspiring, helpful, or amusing.

Maybe not inspiring to you, but it was for me. We recorded a number of customers and partners at the PASS Summit, asking them what they thought about our work at Redgate.

There’s a cool playlist that is inspiring to me. Makes me want to work harder and proud of our work.

I started to add a daily coping tip to the SQL Server Central 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.

Posted in Blog | Tagged , , | Comments Off on Daily Coping 22 Feb 2023