Author: way0utwest

  • Some Relief But Still Some Concern

    Years ago Andy Warren and I were talking about the Database Weekly newsletter and what we wanted to include in each edition. We knew there wasn’t enough news on a weekly basis, so we decided that we’d add blogs from various individuals as well as press releases, patches, and other items related to databases and SQL Server. At some point, we realized we were getting older and one of the unfortunate things that happen is people pass away. We thought about including obituaries as well since we knew a lot of people and we wanted to remember them. We did and this evolved into sqlmemorial.org, which I maintain out of a repo online.

    I got a notice to renew the domain recently and I realized that I hadn’t updated this site in quite some time. That’s a relief and I was glad that I haven’t gotten any notes about anyone in the data community dying.

    At the same time, I worry that I’ve missed someone who participates in the #sqlfamily online, at events, or just has developed a brand and presence in our community. I see a lot of news, but I get busy like most of us and am not always in touch with all communities around the world. Since the decay of Twitter and the scattering of places where people congregate online, it seems there is less interaction and less of a place to see news posted and re-posted by others. I used to hear about a lot of people passing on from Twitter, but these days that doesn’t happen.

    Hopefully, because people aren’t leaving our community that often.

    I remember when Jim Gray was lost and my surprise at his death. I didn’t know him, but I had seen him speak. To me, Robert Davis, Euan Garden, and Brian Moran were shocking. Those were people I’d had many conversations with, shaken their hands and hugged them, and shared meals with them. Tom Roush probably touched me the most, though I knew him through his cancer treatment and I wasn’t shocked when he passed. I know quite a few of the people on the list at SQLMemorial, but not as well as knew those gentlemen.

    I’m at the age where I see more funerals than weddings. I’ve had friends pass, some far too young, and I try to remember that as I go through life, appreciating the good things I experience.

    If you know of someone who has passed, please send me a note, a link to an obituary, or write your own statement of their life and include it in an email. Fork the SQL Memorial repo and submit a pull request so we can remember their life.

    Steve Jones

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

  • Merry Christmas 2023

    I hope everyone is reading this on some day other than Christmas Day. Whether you celebrate this holiday or another one, this is usually a day off for most technical professionals. If you’re on call, or working, I hope it’s a very quiet, easy day (and you get some bonus for your time).

    As we close out the year, I have had a great year in many ways, and no-so-great in others. However, the challenges aren’t that bad and they help me think about how to shape my 2024. That’s something I think most people ought to do more of. Examine where you are, what your life is like, and then make plans to change and improve it.

    I’m relaxing today with family, enjoying a (hopefully) not too cold a day. I don’t mind cold, but we definitely have horse chores today so windy, sub 20F days are hard. Fingers crossed that’s not today in Colorado.

    Merry Christmas and Happy Holidays to you all.

    Steve Jones

  • Friday Flyway Tips–Above Target Migrations

    Recently I was working with Flyway Desktop (FWD) and practicing deploying certain migrations and not others. I don’t recommend this, but a customer was doing this and I wanted to reproduce some things they were trying to help them.

    In doing this I discovered a bunch of scripts marked as “Above Target” in the GUI, but not in the database. I learned a few things from our support team.

    I’ve been working with Flyway Desktop for work more and more as we transition from older SSMS plugins to the standalone tool. This series looks at some tips I’ve gotten along the way.

    Setting a Target

    I’ve got a FWD project here, and you can see the migrations below. In this case, I’ve selected a target of my QA machine and we can see that I have migrations applied up to 3.1 and there are pending migrations from 4-8 (ignore the undo).

    2023-12-05 14_07_37-Flyway Desktop

    Now, I want to migrate QA, but only to version 5. When I do this, from “Advanced Settings” on the right, I’ll see the target is listed as a parameter, and if I’ve highlighted the parameter on in the script.

    2023-12-05 14_10_13-Flyway Desktop

    I’ll run migrate, which works.

    2023-12-05 14_12_58-Flyway Desktop

    When I close this, I now see a different view. I see success next to migrations 4 and 5, but I also now see “above target” listed for the other migrations.

    2023-12-05 14_13_14-Flyway Desktop

    That’s not great, for this reason. If I check the “only show pending migrations”, I lose all my migrations. In large, complex projects, this isn’t good.

    2023-12-05 14_14_55-Flyway Desktop

    Getting Pending Migrations Back

    The easy solution to this is to remove the target. If I click the “x” on the target parameters…

    2023-12-05 14_15_50-Flyway Desktop

    And then click Refresh at the top, I now see my migrations as pending.

    2023-12-05 14_16_00-Flyway Desktop

    Seems obvious, but I’d forgotten about the target as I was focused on testing the code I’d released and then wanted to release other code. Peter in support educated me on what I was missing.

    Try it out today. If you haven’t worked with Flyway Desktop, download it today. There is a free version that organizes migrations and paid versions with many more features.

    Video Walkthrough

    I made a quick video showing this as well. You can watch it below, or check out all the Flyway videos I’ve added:

     

  • Building CyberSecurity Skills with an Advent Challenge

    I’ve been working on the Advent of Cyber challenge this December. It’s more of a walkthrough of some puzzles than it is solving them yourself, but it has given me a brush up on some skills and helped me learn some basics of how people in charge of (or looking to break) security look at the world. Plus it’s been a little fun with a silly storyline each day.

    The first challenge starts with a chatbot and trying to social engineer answers out of it. This was interesting to me, even though it was likely (hopefully) not a representative example of how AIs would work in most systems. However, it got me to think more about how I pose questions to an AI and how I can grow my prompts. The neat thing about AI is that you don’t have to ask the perfect question and then re-ask the same question with more info to get an answer. The AI keeps context in a conversation, which is way more powerful than previous Q&A search systems.

    The second day was Python and Jupyter Notebook basics, which were a nice refresher for me on a couple of concepts, but not that interesting. However, the third day introduced some password-cracking tools, the fourth day added other ones, and a few subsequent days showed some software that is devious in how it can be used to penetrate security. Other challenges have me the chance to brush up on Linux and network skills I hadn’t used in a long time.

    The SQL Injection module (day 10) is well done, and I might recommend most developers go through that to see why their easy, convenient build-a-sql-string-to-execute code is an incredibly bad idea. It’s also why they can’t also use stored procedures as built-up batch commands. Use the stored procedure objects to execute with named parameters.

    The idea of using a little plot and story, with a simple challenge to teach some skills is a good one. I’ve been lucky in my career to be exposed to a lot of different technologies and ways of working with systems. I’ve set up bridges, routers, and firewalls. I’ve had to get network links and cables to work and talk with different protocols, including configuring T1 connections. I’ve built machines, dealt with different types of local and remote storage, and had to program and administer systems at all levels of the OSI model. Does anyone remember that?

    This was a fun break from work, doing a module or two every other day, remembering there are a lot of complexities to our systems outside the database, or outside the application software. It’s also reminded me of all the different ways that security can be breached.

    Take the challenge and learn some new skills. I think many of you will learn something and you might enjoy yourself along the journey.

    Steve Jones

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