Author: way0utwest

  • Jumping Ahead

    While on vacation recently, I went to see Spider-Man Homecoming with my family. It was an enjoyable movie on a rainy afternoon, and a nice addition to the Marvel lineup. I think this actually might be my favorite Spider-man movie, and I’d recommend you watch it if you enjoy this genre. It was humorous, well written, and some nice special effects. As with any of these Marvel movies, you definitely need some suspension of disbelief, especially with the technology.

    In the movie, Peter Parker is anxious to join the Avengers and become a full time super hero, going on missions that have a large impact in the world. He chafes as the idea that he needs to stay in school and let his life progress at a more normal pace, which Tony Stark seems intent on pushing. Many of us have felt the same chafing in our own youth, wanting to get out of school, go to work, and move on in life.

    However, even in our careers, I find people wanting to jump forward, moving to new technologies and platforms as quick as possible. I certainly see this in the SQL Server world, often from developers, that want to find the holy grail of database storage in CouchDB, CosmosDB, Neo4J, etc. I’ve often seen this in the development world with different types of technologies, such as web frameworks. Maybe we in the data space are more conservative? Or we like sticking to what we know works well?

    We data professionals are not immune from the desire to jump ahead. I see plenty of data people wanting to jump into some new area to grow their careers. Data Science ( and AI, Machine Learning, etc.) is the newest craze, with quite a few people learning some R, some model training, and wanting to find a use for their skills. Or maybe an employer, preferably one that pays more than they make now. Good luck to you, but I’d encourage you to remember that good data science takes lots of skill, knowledge, and practice. I wouldn’t expect a quick jump into this new area.

    There are certainly other changes in the data world, such as the graph capabilities coming to SQL Server 2017 and the explosion of cloud database implementations. However, don’t get caught up in expecting quick changes in your job or your income. Continue to learn, experiment, build a POC and practice your skills. Change usually comes for most of us at measured paces. This pace is hard to accept if you don’t have the habit of regularly learning something and applying it in small doses, understanding that not everything you learn will be useful (or used) in your current situation.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.2MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • Adding a New Default to a Column

    Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers. This is also a part of a basic series on git and how to use it.

    This is a fairly simple process, but I bet more than a few people don’t know how to do it. I had to double check some syntax the other day, and I thought this is a perfect SQLNewBlogger post, based on something I had to (re)learn.

    If I have a table, there are existing columns and I want to add a constraint to one, I need to alter it. To do that, I’ll use the ALTER TABLE x ADD CONSTRAINT syntax.

    One of the common use cases is to add a default date to a date column. For example, I have a Blogs table and want to ensure the CreatedDate column is always populated. I’d do that with

    ALTER TABLE dbo.Blogs
    ADD CONSTRAINT df_SysUTCDate DEFAULT SYSDATETIME() FOR createdate;

    In this case, I use ADD CONSTRAINT and then name the constraint. Using specific names is always good since this means I can be sure that I have matches between development, QA, and production.

    I then use the DEFAULT keyword and follow this with a function name. I then use the FOR and the column name. This means I’ve added a default constraint to the CreateDate column and if no value is included in an insert statement, sysdatetime() used.

    This is a basic idea, but one that few developers think about or include in their design. Learn to use defaults and add them when you start building or adding columns.

  • A Data ID

    It sounds good. A universal ID that can be used for your identifiable data, in case you happen to lose your paperwork. Paperwork? When will that term become lost to history? These days, less and less of anything is available as a physical media, and if it is, it’s often because someone generates a copy from a printer. How secure or valid is that? After all, with Photoshop and other tools, we can reproduce almost anything that’s indistinguishable from the original.

    The UN wants a universal ID for humanitarian reasons. In case you can’t get your personal documents because you’re a refugees. They’re lost, they’re stolen, or just still in the desk drawer because you had to flee your residence. Digital representations of these papers might be the only way for many people to prove anything about their lives. Certainly a concern in today’s world.

    As we should know by now, anything that can be built in the digital world can be stolen. In fact, I’m fairly convinced that the vast majority of people that come up with good ideas don’t know how to evaluate them in terms of the horrible ways that others will abuse the system. Creators are optimistic and look to solve problems. They’re not nearly devious enough to think of the various permutations that a hacker mind might envision.

    A universal way to track and verify identity information would be great. I already worry about losing track of digital assets, and some way to query a number of systems to verify I own them would be great. However, the security aspects worry me. Even having governments or the UN provide digital lockers that entail backups of records is problematic. Any centralized system can be abused, and certainly this data would be abused. Or leaked. We see data breaches from government all the time. Can you imagine losing control of passport verification at a large scale?

    Each individual needs to come up with their own backup of precious documents, in a way that ensures they are encrypted and protected. However, we do need ways to authenticate and verify these digital assets. Maybe free signing certificates should be used when assets are provided to individuals, with public keys being disclosed by the government and escrowed by the UN, or maybe every other government. We ought to be able to verify a digital document in an open, transparent way, while leaving the storage to the individual. That would allow us to develop ways to protect our own assets, but ensure multiple entities can verify authenticity.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 3.7MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • Failed Projects

    This editorial is from way back, published in 2005, but perhaps still a good one today. This is being re-run as Steve is at the Data Platform Summit.

    Friday is poll day, at least as long as I can be creative with them. And of course, remember to put them out on the right day Smile This week is more of a software development issue than a strictly SQL Server one, but take it how you will and get your post in here for everyone to see. Humility and responsibility are the keys this week. So without further ado…

    Have You Ever Failed In A Software Project?

    A simple yes or no would suffice for the poll question, but I’ll set an example and give you my answer with an explanation. The short answer is yes. The longer one is abbreviated in the interests of space, but I have made an attempt to set things as I best remember them.

    When I came to Denver 7 years ago, it was with a startup company in the financial services market with a few simple software products, but some trouble getting them stable and focusing the IT group. I was excited at the opportunity, the dot com boom was, well, booming, and I was thinking I’d make a million with this company. Fast forward 2 years and I resigned, somewhat burned out, and thinking I’d done everything I could.

    Thinking back I think I had done lots and given a lot, but I still failed and part of it was me not taking a leadership role more than I did and part of it was getting burned out and part of it was not really forcing the company to stop and make good decisions regardless of the time involved. I instead put up a bit of a fight, but then went along with the constant “just patch it” and we ended up burning most of a year getting nowhere because the underlying base products were a mess. I resigned, the company lost about 30% of the development staff, floundered for a couple years and was sold. Not sure anyone made money on that deal.

    As I’ve looked back, I realize it was a dysfunctional company, but I think I could have made a difference, stepped up as CTO (it was offered to me) and driven things forward. Oh well, I learned quite a bit from the experience and grew from it.

    Steve Jones