Category: Editorial

  • Christmas in July

    My son asked me to sign for a package on Friday. He was at work and had ordered himself some new joystick for a gaming thing. He told me this was his “Christmas to himself in July.”

    We’ve just past the halfway point of the year, and it’s been interesting. Both a semi-stressful moving on from the pandemic, and a fantastic opening up of life for me in many ways. I’ve had some great trips, experiences, and enjoyed time with people.

    This is a time when many will treat themselves to a Christmas in July, perhaps with a gift or a trip that let’s them enjoy life. I thought about that as I saw a few articles like this one on sales and deals. It’s Independence Day on Monday, a holiday in the US, and lots of retailers use this as an excuse for a sale. I won’t likely get anything techy, but I do need some new gloves since we are putting in 1000′ of new fence at the ranch.

    If you’ve had a good year, is there something you’d reward yourself with? A new mobile device? Maybe some tech-game thing? An upgrade to hardware? Maybe you’ll get a new car, like I did last year. Perhaps you’ll take a trip or partake in some event. I guess I fall into that category as my wife and I have tickets to the jazz festival in Winter Park in a few weeks. We’ll spend a weekend in the mountains as a reward for our hard work.

    If it’s been a tough year, maybe there’s something you treat yourself with to cope with this crazy world. Let us know what you will do, or maybe dream a bit and think about what you might wish you would do.

    Steve Jones

  • The Useful Cloud Tags

    One of the things I’ve seen in working with cloud based resources is that you get a lot of them in your account quickly. A database might end up with a server, an IP address, a network, security groups, and more. A few clicks of the mouse in the Azure Portal can create a new Resource Group that doesn’t just have the one thing you need, but 3, 4, or more other items.

    In addition to the quantity, there are also the problems of namespaces in cloud resources. Some of the items you provision are publicly named in a domain, such as database.windows.net. In these cases, the resources need to be unique among all cloud customers. Just like domain names, this means that you might have collisions with your favorite name. While I might like jones.com, there are a few other people that would likewise prefer this. The rest of us might have to choose jones2.com, stevejonesincolorado.com, or some other variation. In large organizations, you might end up with LA34532345454.database.windows.net for an Azure SQL Database.

    That means that the names of the systems don’t make sense to anyone, and many of the people that need to use or manage them will not even know which resource belongs to which system. This has been true for servers in many organizations for a long time, even with their own domains. Often there is some document, perhaps stored on the root of the machine or in an online share, that provides more information for people accessing the system.

    The cloud makes keeping track of systems harder, and there is a greater need to classify, categorize, and tag resources. Most of the cloud providers have built extensive tagging systems that help users add metadata to various resources and search/filter by these tags.

    Today I’m wondering which tags are useful in the cloud? How do you decide which tags, or type of tags, to apply? You might choose to apply an application name, a business department or owner, or some other type of information that helps you keep track of which resources are needed and how to deal with them. Is there some guideline on the type of key-value pairs you use for tags?

    I also would you want to easily have tags for on-premises SQL Server instances? We do have extended properties, but those are cumbersome. Would you want some sort of easy system query that retrieved all tags. Perhaps something like @@InstanceTags or @@DatabaseTags that retrieved all the data you’d stored in extended properties.

    We are only seeing more and more resources that need to be managed, patched, and deployed. Tagging is one of the ways that helps our organizations keep track of resources, especially if we provision them and we move on to our dream job somewhere else. Let me know how you handle things today.

    Steve Jones

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

  • Returning To An Employer

    I’ve had a number of jobs in my career. In many instances, I left on good terms, and I’d go back to the organization if there was a job that suited me. I’d like to think that many of these organizations would rehire me if I applied, as I did good work and had success. I’ve always been pleased when someone is disappointed at my resignation.

    Intel had a large layoff in 2015/2016 where over 13,000 employees were dismissed. The CEO at the time implemented a no re-hire policy, meaning those who were laid off, or I’m guessing those that quit during that time, were not eligible for employment in the future.

    That policy has been rescinded, quietly, as the company is struggling to find qualified and experienced staff. I think quite a few companies are in the same situation, and they all are competing for good employees. That’s good for us workers, if we have a good reputation, brand, and skills, and likely will lead to higher salaries.

    I see both sides here. Certainly the people that an organization decides to let go would likely be the lower performers, those that don’t get along with others, or perhaps those that make too many mistakes. However, I’ve been through layoffs, and I know that those aren’t the only people selected for termination.

    Managers dislike some people and will let them go. Sometimes managers like someone and keep them, despite them not being as high a performer as others. Workers with other opportunities, sometimes the best workers, might lobby or volunteer to be laid off and get a severance package, knowing they can easily get another job.

    I think most blanket HR policies that don’t allow for flexibility are a poor idea.  There might be some hard rules, like we don’t hire people with financial crime convictions to work with money, but there should be few of these. While most times there are valid reasons not to hire someone, we ought to review individual cases and make a decision about that person. I resigned one job in anger because of an individual (who later quit themselves). I would, however, return to the company and work with many of the other people employed there if I found a good position. Actually, the people almost always matter to me, not the job itself. I value who I work with more than what I do.

    My view is that technology is still one of the best jobs you can take, doing physically easy work for good compensation solving interesting problems. It can be stressful and a burden at times, but many other careers include those same challenges, often without a better compensation-to-effort ratio.

    I am a big believer in finding a great job in your career field that suits you. Doing that takes work, and it takes regular effort to both improve your skills and your brand. Networking matters, whether looking for a new job or avoiding a layoff (or asking to be laid off). Showcasing who you are helps, especially when many other candidates might want the same position you do.

    Whether we are in a labor market of high demand or high supply, you want to give yourself the best chance to land that dream job. Work on your skills, your brand, and actively manage your career. With a little luck, you’ll wind up with an amazing job for you, just like I did.

    Steve Jones

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

  • Accounting for Typos

    When I watched Star Trek as a kid, I was amazed by the technology. Talking to the computer, the touch screens, the handheld communicators. We have most of those devices now, without the space travel. Hopefully that will start to change with all the efforts being made by various organizations.

    One of the things that always bothered me was the chance for mistakes. A mis-spoken (or mis-heard) command to a computer that didn’t verify things as a human might. The chance to hit the wrong part of the screen as the starship moved. It seemed as though soft buttons would have allowed more mistakes than hard ones. Certainly humans make mistakes with physical switches, but I think I make more mistakes trying to hit a part of the screen in my Tesla than using one of the (few) buttons or wheels to change something. Interestingly enough, my 23 year old decided on a slightly older car because it had more physical buttons and fewer soft ones.

    We are human. Frail and faulty. We make mistakes. Some are small (I ran a SELECT query on the wrong database), some are bigger. A mistaken copy paste error sent US$36 million away. That is the type of mistake that could happen to any of us, though hopefully not at this scale of financial loss.

    This type of mistake is a main reason why I think DevOps and automated flows for development, testing, and even for production updates are a good idea. This doesn’t prevent human error, but it does serve to limit it and reduce silly mistakes. Often these types of errors are caught when we force someone to work through a bit of a process. An easy and quick process, but still a process.

    In the case in the article, you would hope that someone looking to make changes would write an update that can be tested in a second environment before applying to the production blockchain. Perhaps with some idempotent wrapper and a pre-check that verifies the target. That might seem like overkill, but it’s the type of care that most of us take when we know we aren’t going to be the one executing the code. If you submitted a script to a DevOps process, you’d want to be sure the process running your code made the proper decision of whether to run the code or stop because of some error.

    We won’t prevent all errors, but a lot of automation and light DevOps process is designed to limit simple, silly human errors because we are tired, distracted, or otherwise unfocused. I am a proponent of having humans design systems and processes, but then letting the computer handle the drudgery of following the process over and over on a regular basis.

    Steve Jones

     

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