Author: way0utwest

  • Next Person Up

    I have a friend that has had a lot of success in technology. This person was a consultant when I met them, working hourly as I was. Over the last few decades, they have found new opportunities and joined a few large corporations. Eventually this person became a vice president, managing a division. It’s an impressive job, with a big salary, lots of travel and perks, and a lot of work.

    I had dinner with this person recently and they lamented all the hours and stress that comes from a high profile job. Working lots of hours, constantly in touch with others, and pushed to do more. In some sense, this person felt their situation wasn’t that  different than some IT jobs they’d had in the past, though with less pay but similar hours.

    I thought about that for myself. I’ve certainly worked 100 hour weeks while on salary. I’ve slept with a beeper on my chest while on call because I knew it would go off multiple times at night and I’d shut it off quickly without waking my wife. I’ve had the stress and pressure of management pushing and pushing.

    I’ve learned to say “no” quite well in my career. I’ve also learned to find another job when I felt abused. It’s worked well for me, and I think it’s the better way to handle things. That being said, I have never made a huge salary, certainly not anything close to what my friend makes. At the same time, I haven’t felt trapped in a long time, and when I did feel trapped in the past, it was my fault. Usually I learned to move on fairly quickly.

    The thing to remember is that you have to ensure your work and your compensation make sense for you. The trade has to feel fair, because many organizations don’t care if you don’t. I’ve not met many companies that would let me work half as much for half pay, even if I cut some benefits. They aren’t set up to adapt there, and they usually have options.

    For every great job, or at least any well paid job, there are often plenty of other people willing to do the job. For employers that don’t value individuals, either you deal with it, or they will remove you and pick someone else. The higher you go into the org chart, the more true this is, and often this is where the sociopathic tendencies of some executives take over.

    I wouldn’t judge anyone else for choosing their situation, but I do caution you to think about what jobs you take and make the conscious decision to do them. Don’t let yourself get caught into a bad situation, which can sometimes be easy to do, especially when a larger paycheck is dangled. Pick the work that suits you and your family and that you enjoy doing each day.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Cursors Without Performance Penalties

    One of the very common ways that many developers learn to write code is through loops. Almost every language as some sort of FOR and WHILE looping structure. Many people build these in T-SQL, which often creates performance issues as the engine inefficiently deals with the RBAR (row by agonizing row) processing.

    That seems like it might change in the next version of SQL Server. There is an interesting research paper from the SQL Server team that explains how they are investigating a technique that will make decode the inner workings of any code that is inside a cursor and apply the work efficiently to any table operations. If this actually turns out to be true, then cursors in T-SQL might be like cursors in PL/SQL, where this is the preferred way to write code.

    Suddenly cursors will have no real performance penalty. If that’s the case, I suspect we’ll start to see lots of new refactored code in many organizations. Loops make sense and are easy to read. I don’t know that I’d change any existing code, but I’d consider changing new code. Do you feel the same way? I wonder how many of you would prefer writing loop based code as opposed to complex single statement SELECTs.

    I’m not sure when we’ll actually change our habits, and you probably agree if you clicked the link. Today is April 1, or April Fool’s Day, so this whole thing is completely fabricated. Hopefully you smiled and this helps you cope with the day a little better.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • The Power of Git–Getting Code

    I find git to be incredibly useful, and this is a quick example of one of the ways that this matters to me.

    This post is also available in video format here: https://youtu.be/Drwt6nseeJM

    I got this link from Jes Pomfret for a Jupyter notebook she’d built: https://github.com/jpomfret/demos/blob/master/Notebooks/dbatoolsMorningChecklist.ipynb

    I see this on GitHub, but this isn’t easy to download, though this could have just been a file share.

    2020-03-25 10_47_31-Window

    However, since it’s on Github, I can easily get this as a copy of code that stays updated. To do this, I’ll copy, or “clone” the code to my machine.

    First, I go to the root of the repository, which is really a folder of code. This is the “demos” repo in this case (https://github.com/jpomfret/demos)

    2020-03-25 10_48_20-Window

    There’s a large green button on the right, that is the Clone button. Click the clone button and copy the URL.

    2020-03-25 10_48_41-Window

    I’ll do this in a cmd prompt, though you could use the open in GitHub desktop, or any git client. I prefer the cmdline, because this is really how I learn and get used to doing automation. GUI tools make this easy, but the cmdline is what I want to remain familiar with for DevOps. I can clone this with easy code:

    git clone https://github.com/jpomfret/demos.git

    You can see the results here.

    2020-03-25 10_49_57-Window

    I have all this code now on my machine. I can open this notebook in Azure Data Studio (ADS). Here I’ve picked “Open File” in ADS and browsed to the folder.

    2020-03-25 10_50_39-Window

    And I see the notebook.

    2020-03-25 10_50_45-Window

    If I don’t like this, or want to get rid of it, I delete the folder.

    rmdir demos /s

    And the code is gone.

    2020-03-25 10_51_35-Window

    There’s more to this, because I can keep the code up to date with Jes’ changes or even copy the code to my own workspace on Github and keep it up to date there with my machines, or share with others.

    There’s a lot of power to Git, and you can easily get started by doing what I did here and testing Jes’ notebook. Install git today and try this out for yourself.

  • Daily Coping 1 Apr 2020

    I’ve started to add a daily coping tip to the SQLServerCentral newsletter, which is helping me deal with the issues in the world. I’m adding my responses for each day here.

    No April Fools for this one. This is a big one, and it’s likely important. The tip today is “call a loved one to catch up and really listen to them.”

    I called my Mom recently. She’s in a retirement community, and locked down. There have been some illnesses among the staff and to avoid spreading, they have reduced some contact, ask most people to just stay in their rooms or apartments and deliver food. Fine for my Mom. She has a kindle, a piano, and enjoys the quiet. She exercises in her room and enjoys it.

    Good catchup there.

    Not so good for me as my Mom is fairly conservative and as of last week, she didn’t think we needed the shutdown, we should have all businesses open and “we don’t have that many cases.” This was before the US surpassed all other countries.

    I try to be understanding and appreciate other points of view. I also think that a number of very conservative outlets are criminally negligent in downplaying the seriousness of this. I do think some liberal/progressive news outlets may be sounding too many alarms, but in the place where mistakes are serious, I can tolerate a little more chicken little news than dismissal.

    So I listened, debated a bit, and tried to provide her company, swallowing some of the stress that this caused.

    I’ll also have to do this again every few days. Looking forward to more virtual happy hours with friends that take me away from news.