TSQL Tuesday #123: My Life Hack – Flowing in the Morning


This month’s T-SQL Tuesday was created and is being hosted by Jess Pomfret and the concept for these once a month blog posts was originally created by Adam Machanic; the torch has now been passed on to Steve Jones. Thanks for hosting Jess!

T-SQL Tuesday #123: Life Hacks to Make Your Day Easier


Have you ever heard the expression, “In the zone”? Or you are just so into something that you don’t notice the passage of time?

It is both a unique state of mind and physical state of the human body. Truth: I am addicted to the flow state. It would be awesome to be able to maintain flow for your entire waking life but alas, that is not how it works. Just like deliberate practice, one needs to manage when to be in flow and when not to be in flow.

I have read and re-read this book on Flow: The Psychology of Optimal Experience (and his other book on Creativity too) many times.


Not every morning but on many a morning, I do the following:

Get out of bed. Count my blessings. There are many people who never got up (read they died in their sleep).

Grab coffee. Nothing fancy, strong and black works for me. Drink two cups. Think about what’s coming up that day or soon.

VR and Volunteering and Oculus Quest Availability

For those who don’t know, I’m into virtual reality (VR). I help lead COVAR and the Denver/Boulder Unreal Engine Group here in Denver. I have several VR headsets, all Oculus based.

Sadly, the Oculus Quest has been on backorder since before Christmas and with the outbreak of the coronavirus in China affecting and killing people, it is also disrupting product supply lines.

It is unknown when the ‘Quest will become available again in 2020.

Enter Stage Left – TiltBrush

Now the fun part.

I put on my ‘Quest with a generous space around me, don my AfterShokz headphones, launch my Jazz station on Pandora, and I jump into TiltBrush:

I prefer to use my ‘Quest instead of my desktop rig as I love the freedom of wireless and don’t have to worry about tangling cables.

While I am nowhere near the level of expert like Rosie Summers, I do love to draw and paint in 3D. Check out her demo reel:

My latest exploration has been geometric shapes. TiltBrush allows you to take pictures from within. Here are a few images of things I have done:

It is a huge challenge for me on what I want to draw/paint as there are only invisible wire guides (capsule, cube, sphere), straight edge and ruler settings. There is no drawing compass.

So I had to attempt to memorize how something is made then attempt to re-create it and figure things out.

Starting out with basic shapes like hexagon and octagon.

Years ago I was really into Unit Origami (also called modular origami). I used to make things and give them away as gifts. Some of these structures take hours to make.

Trust me, this is way beyond simple paper airplane folding. It requires perfectly cut square paper, intense concentration and meticulous attention to detail.

My plan is to get experience with more shapes in TiltBrush and begin to build the individual pieces and then assemble unit origami structures in VR. Might even post them to Poly. By the way, if you think writing and posting blog posts can be intimidating on what others may think, try sharing art 🙂

And yes, of course I have thought about building SQL Server execution plans (i.e. create all of the operators and assemble them) in VR as a teaching and training tool.

Conclusion – And Now You Know

This is one of my life hacks- getting into a flow zone before the start of my formal day job. It’s a great way to wake up, literally get the creative juices flowing and start your day!

Someday I should blog about my journey with lucid dreaming as another source of my creativity and imagination too. Another time.

Posted in Uncategorized | Leave a comment

Looking Glass – TSQL2sday #122 – Imposter Syndrome

This month’s #tsql2sday topic on Imposter Syndrome is being hosted by Jon Shaulis Thanks Jon!


One can find the formal definition of Imposter Syndrome here.

Do I suffer from it? Sometimes I feel like I do; yes- especially during job interviews. I have been working with SQL Server for many years and while I will acknowledge up front that I STILL do not know everything about it that I think I should, I know enough to be dangerous. Or do I?

Why Do I Want to Jump Off?

I’ll share an experience I had many years ago. It really bothered me when it first washed over me. This has happened only two times in my life.

When my family went to the Grand Canyon and on the overlook, I felt an odd feeling that I wanted to jump off.

When we went to the Royal Gorge Bridge here in Colorado, I felt the same thing when I looked over the railing in the middle of the bridge.

This didn’t make any sense to me at all. I’m a normal, mentally healthy and stable person so why would I have these strange and odd feelings?

There has even been a study about it: An Urge to Jump Affirms the Urge to Live.

So why compare and contrast Imposter Syndrome with high place phenomenon (HPP)?

Because I think sometimes we can’t rationally explain these odd feelings based on inputs and other thoughts. We fall into the trap that we have put in the thousands (!) of hours so surely we must know a lot about our career field. And yet sometimes we just can’t believe that we have really earned our success when compared to our own individual progress over the many years and even comparing ourselves with our peers with similar number of years of experience.

So we fear being found out, that we have been believing all these years in fake it till you make it– but never did make it! Been faking things since last millennium (when I started working with SQL Server)! However, during a job interview as both an interviewer and interviewee and doing a true technical skills test, fake people can be eliminated pretty quick. In fact when I was interviewing people as a DBA Manager, the technical skills test I created shocked me at times- so many people talked a great game but when asked to do things in SQL Server Management Studio, they froze up or panicked, couldn’t type T-SQL, etc. It was even embarrassing and sad at times. But that was part of the interview process- can you perform under pressure?


I think it is natural to feel like we do not know a subject top to bottom. Do we know enough to demonstrate competency with a specific skill? Can we learn new things and immediately apply them? Do we trust our own imagination, creativity, and troubleshooting skills? Can we jump in and not know anything but trust in our past to figure things out? Another reason why great FSO people are so valued in startups.


Learn like there is no tomorrow and your life depends on it!

This year I’m learning many things that right now I don’t have a clue about other than I know I need to learn them.

For me, the “Do or do not” is to focus on the actual doing. You do not improve skills by just reading about skill improvement. You have to do the hard work. Are you willing to suffer crippling, humiliating defeat time and time again to reach that one win? You have to learn the material. You have to immediately practice and demonstrate competency. You have to keep it sharp or you will loose it. You have to practice it everyday. Even Yoda endured failures… And succeeded in the end!

Posted in Uncategorized | 2 Comments

On Building SQL Memorial

Background of Idea and Intended Audience

At my age I’ve been to more funerals that I would like. Friends, family, acquaintances. From a variety of causes. Everybody handles death and grief in their own way. For me one of my coping mechanisms is to build things that honor the departed; it is often a type of catharsis for me. It helps me to say goodbye until we meet again if we ever do.

The first death of someone I knew in what we call the SQL Family was Ken Henderson, author. I first saw him at my first PASS Summit here in Denver back in 2007. I had also heard of Jim Gray and recognized his name on a lot of whitepapers and his strange disappearance and massive search efforts. Then Bob Rumburg- I used to work with Bob at a previous job and who I’d see at Denver SQL Server User Group (DSSUG) meetings. Then Alan Weber, a super smart guy who always sat in the front row at DSSUG meetings and always asked lots of deep technical questions. I usually heard about other deaths via e-mail or my primary social media platform, Twitter.

Then Tom Roush. I knew he was fighting cancer and I loved his stories. His death hit me particularly hard and SQL Memorial was born. I did a special version of images from Twitter and Facebook about people commenting and sharing things about Tom.

Since then, I’ve maintained it over the years and while I’m thankful we haven’t had lots and lots of people in the #SQLFamily pass away, each one stings and hurts.

Present Day – 2020I won’t bore you with all of the gory details, hours of suffering trying to figure things out which are WAY OUTSIDE of my wheelhouse from my daily job of working with SQL Server.

All of the tears I’ve shed over the years just handling the material (both looking at and saying real names of people; I’ve personally known many of them) and not just giving up but pushing through with wet eyes at times.

It has recently come to my attention that there could be a desire for others to maintain this and I’m totally cool with that. Either this exact version or a completely whole new version.

Recently I found out about Phil Robinson and someone else who passed away years ago, Kent Tegels. Both of them have been added.

Here is the latest version of the video as of 02Jan20.

This post is more of an overview with a few specifics thrown in than an exact Step by Step technical guide. It is my tribute to the departed to be shared with the #SQLFamily.

Bill of Materials

I have had some inquiries as to how I make SQL Memorial. So this is a peek behind the curtain of what it takes to bring it to together.

The video game engine I use is Unreal Engine 4 (UE4) from Epic Games.

The ocean material (waves) comes from World of Level Design.

Marble texture comes from the free Starter Pack with UE4 and the static mesh is of my own making by combining some starter meshes together into a single mesh.

Frames are from the Framed Photography Pack on the Unreal Engine Marketplace (not officially updated to 4.24.1 but seems to work).

Text on the meshes is from ZText on the Unreal Engine Marketplace too.

All images have to be a power of 2 like 2048×2048. I use GIMP to re-size both the picture and the canvas then export out of GIMP into the picture’s original file format.
When I import them into UE4, they come in as textures. I then create a material from them, then create a material instance. This is for performance reasons. Then apply that material instance to the appropriate frame.

Background music comes from Epic Zen Garden.

All spoken audio is of me recording using a Focusrite 2i2 (thanks for recommending it Jorriss!) and Audacity.

Final video is created by running UE4 from within the Editor using a Standalone Game mode, the Level Blueprint set to play a Level Sequence on EventBeginPlay and captured using OBS Studio.

Please note that GIMP, Audacity, and OBS Studio are all open-source. Please support open-source software financially when you can!

Recording Audio

I lay down all of the audio into one single project. Then copy just that individual into a seperate project. Then export as .WAV file. When complete, import into UE4 and then create Cue(s) for each. In the Level Blueprint, select the named trigger volume and set the trigger volume OnActorOverlap event to play that specific cue.

Thinking Outside of the Box

Right now this a completely manual process. In order to fully automate it in an easy to maintain procedure would require a ton of work. For a handful of folks who have passed, this has been acceptable to me. If however we need to add hundreds of people to the SQL Memorial, then we should look at automation in some capacity.

A limitation of UE4 is the fact that the in-game non-linear editor known as Sequencer unfortunately cannot export audio into a video format. Meaning I can playback a sequence in-game but if I try to export into a format for upload to YouTube, it does NOT capture the audio. Bummer, but they are working on it.

In the meantime, I’ve had to come up with a couple of embarrassing, n00bish hacks. I can just see some game studios or expert UE4 folks just shaking their heads, rolling their eyes at me, as I’m sure there has got to be a better way than what I’m about to explain.

All I can say is that as crude as it is, it works but not as well as I would like.

Old Version: strafe right/crab right into position, activate trigger volume, and wait for audio to play, then finish, pause for reflection. Then onto the next display. Repeat. Record the whole thing using OBS Studio.

New Version: parent First Person Character to a Camera then use Sequencer to build precise moving and stopping in a Level Sequence. When the camera/character passes through a trigger volume, the audio will play. Record using OBS during sequence-only playback.So the old way required me to be super sensitive and speedy on the keyboard using WASD navigation. In order not to jostle the camera, I had to use only the A and D keys during a run-through and time starting and stopping several times.

The new way uses some recently acquired Sequencer skills and a hack by attaching my character to another camera. I put everything into a Level Blueprint for now.I had to re-position the trigger volumes (an invisible wireframe which raises events when something overlaps into its space, like a character).

In Closing

SQL Memorial will have more additions and improvements as the years go by. That is to be expected. But we can take time to remember those who have passed away and I hope this project can help to keep their memories alive in our hearts.

Posted in Uncategorized | Leave a comment

Building and Deploying Projects in Unreal Engine to the Oculus Quest


Over the years I have successfully deployed my own Unreal Engine projects to: GearVR, Oculus Go, and Oculus Quest.

But it wasn’t always easy or straightforward. “Official” documentation often contradicted itself. Searching on the internet for error messages often times resulted in even more frustration as the message was a side effect and not the root cause of the problem.

Hence the need to create and share this blog post to help others trying to do the same thing but with fewer banging your head against the wall sessions.

While I will be referencing both Unreal Engine and Oculus documentation but using my own screenshots, I am also going to show a different path that I have recently tried out and haven’t seen any issues with it.

It involves using the Virtual Reality template project- but note that it does NOT say it is for Oculus Mobile. It has worked for me so far on both Oculus Go and Oculus Quest- collectively known as Oculus Mobile.

I walked through these steps in some recent presentations I have given at the Colorado Virtual & Augmented Reality Group and the Denver/Boulder Unreal Engine Group.

Please note this information is offered as-is, no warranties expressed or implied. And please take time to read through this document; you may or may not have everything your need right up front like the USB to USB-C cable for the ‘Quest.


You already have an Oculus Mobile set-up and configured using it with probably your phone on the same wireless network. Note the username you used; you will need it again below to link to a developer account. These steps will take one from a clean start to a successfully side-loaded project using a Windows desktop. I don’t have easy access to Linux or Mac but most of the steps will be similar.

Key: be sure you have the latest version of the firmware for your Oculus Mobile and the latest version of the Oculus app software on the device used to configure it. Also you will find that sometimes when you launch UE4, the Oculus desktop software might tell you to it needs to update. So just a friendly head’s up that you will be re-starting your PC early and often.

Step 1 – Install Launcher and Highest Version of UE4

Download and install “The Launcher” from https://www.unrealengine.com/en-US/ and install the latest engine. As of this writing, that is 4.24.1 Please read the EULA and also note that you will need to create a login. Please use a strong password 🙂 And re-boot your PC.

Step 2 – Install CodeWorks for Android

Install CodeWorks for Android. Please note this is a special version for Unreal Engine development and trying to install CodeWorks for Android from other sources will result in things not working correctly, trust me, I’ve tried. Note that this step will also automatically install all of the Android Device Bridge (ADB) software and drivers to connect your Oculus Mobile to your PC.

Ex: on my machine, I installed the engine on my C: and the path to Codeworks is:

C:\Program Files\Epic Games\UE_4.24\Engine\Extras\AndroidWorks\Win64CodeWorksforAndroid-1R7u1-windows.exe

Right click and Run as administrator to begin the installation process. The defaults are fine but also check the Automatically resolve dependency conflicts. NOTE!!! Please read the EULA(s) and don’t walk away; it does require manual responses during the installation. This process will download and install A LOT of software so be patient. And re-boot your PC. Basic screenshots follow.

Step 3 – Install Oculus Setup Software

Install Oculus Setup for desktop software. Even if you don’t have a desktop Oculus Rift, this software is still required. I have a Rift so this is what has worked for me. If you don’t have a Rift, then you might get by with installing just the ADB drivers as mentioned in Step 4 below. You will need to create a login. Please use a strong password. https://www.oculus.com/setup/ And re-boot your PC.

Step 4 – Oculus Developer Registration

You will need to be registered as an Oculus Developer in order to activate Developer Mode on your Oculus Mobile. While that link says Quest, it works for Go too. You can register as an individual.

NOTE!!! Be sure to use the SAME login and e-mail address as indicated in the Assumptions section on this blog post. I’ve had problems trying to use separate accounts and the same account for both has worked for me up to this point. Also note the Important section at the top of that link- since we are going to be side-loading an application, this doesn’t apply to us for now.

Follow the steps on that link above but skip the Install the Oculus ADB Drivers section.

Step 5 – Now the Fun Begins – Quick Start Guide (QSG)

While this Quick Start Guide (QSG) does work, it is seriously lacking. What do I mean by that? If you follow the steps in it, you will have a level with a gray checkered floor that you can only look around in- you can’t move around using the controllers! But go ahead and read it top to bottom as this will give you an insight into the steps required. Once you get the hang of it, it will get easier over time.

So instead of a Blank Project, in Select or Create New Project, choose Games and Next.

And on Select Template, choose Virtual Reality and Next.

NOTE!!! If this is your first project using this engine, your machine will peg its CPU for a while. It will need to compile and cache shaders. It can take several minutes. It will only do this once on this project; when you re-open it, it won’t take as long but this can catch many people by surprise because it will appear that nothing is happening. This template is intended for desktop systems but we are going to change it to work with Oculus Mobile.

Then follow along as the QSG indicates.

On QSG Step 7, also do the following. Under Supported Platforms, be sure to check Android. This is what makes the Virtual Reality Template work on Oculus Mobile instead of just desktop Windows.

Also on Step 7- change both the Editor Startup Map and Game Default Map to MotionControllerMap.

On Step 12, please click on the button that says “Accept SDK License”. If you don’t click this, when you go to package the project for deployment, it will fail.

After QSG Step 16, “Launch the Unreal Engine Project on the Oculus Quest” go ahead and try to deploy from with UE4 but you might need to do Step 6 next before it will work…

CAREFULLY turn your head with the headset on- don’t jerk the cable! The A button on the ‘Quest controller will teleport you and the palm trigger will close/open the hands.

Please note this will ONLY work with it properly connected. How to make it work w/o having a cable attached? You will need to package it and that is covered in Step 7.

Step 6 – The Dance of the Headset

Most of you will need a special cable; USB to USB-C in order to connect your Quest to your PC. You will NOT be able to use the cable that came with your Quest as that is power only and not both power and data; it is USB-C on both ends. The cable that came with the ‘Go works fine. Just be mindful that these cables can be short so don’t accidentally jerk them.

When you connect your headset to your PC with the cable, you will see a screen inside your Oculus Mobile about do you trust this device for USB debugging. You will need to select this from the device and the screen will disappear if you don’t check it. Re-starting the headset and toggling between developer mode can force it to come back. If this is not done, then ADB won’t be able to “see” the device and you won’t be able to deploy to it.

Step 7 – The Smoke Test

In order to install this Android application on Oculus Mobile, you will need to do what is called side-loading. This is a manual installation process.

Re-boot your PC so this is a clean process.

Launch your UE4 project and click on the Build button on the top toolbar. Save your project.

Under File: Package Project: Android: Android (ASTC) and it will default to your project folder. Also check the Show Output Log as this will show you what is happening. Depending on the speed of your machine, this can take a while.

You want to see the magic words: “BUILD SUCCESSFUL” at the very end. Check the Output Log if this doesn’t happen as it can give you insights as to what went wrong.

Now you will need to run an elevated command prompt and browse to the installation folder for your project.

Windows Key + X and select Windows PowerShell (Admin). Select Yes. Then type cmd to switch it into Command Prompt mode.

NOTE!!! If you do NOT select an elevated session, bizarre errors can occur, especially Java related ones. This one step has saved me (finally!) many hours of frustration getting applications installed to Oculus Mobile.

Connect your Oculus Mobile to your PC via appropriate cable and turn it on.

Type adb devices in the command prompt to be sure your PC can in fact see the device.

While I can’t provide a crash course on cmd and dir commands, you will essentially need to path into the Android_ASTC folder of your project. I used the cd.. to get to the root of my C: then to where my project lives. I use the * shortcut to help save on typing.

From here you MUST type the name in exactly in order to install it. In this case it is: Install_MyProject-armv7-es2.bat

If this is the first time you install it, you will see a bunch of Java failed exceptions- it is trying to remove the previous installed application of the same name. You can ignore these. What you want to pay attention to is in the far lower left of the window- watch the percentage installation:I already have it on my ‘Quest so a successful install looks like this:

Unplug your headset and put it on. Under Library, look for Unknown Sources (Developer mode MUST be on in order to see Unknown Sources). Then on the right, click on MyProject. After a few seconds, you will be inside the side-loaded Virtual Reality template and application. Move around using A button for teleport on ‘Quest or trackpad on ‘Go. Palm trigger on ‘Quest can grab objects. Have fun!

I’ve used this template as a starting point to build other Oculus Mobile experiences.


There are a ton of steps to getting a creation onto Oculus Mobile. It has been a long and frustrating road for myself and many others. I believe Virtual Reality can be used in so many ways in both gaming and non-gaming applications to help people. Now that Oculus Mobile (especially Quest) is here, I am excited to see what myself and others can do with it.

I hope this blog post can reduce the time and effort and show people that they too can successfully build and deploy Unreal Engine 4 projects and apps to Oculus Mobile.

Thanks for reading!










Posted in Uncategorized | 1 Comment

A VR Gift to the SQLFamily- SQLPets



This month’s T-SQL Tuesday topic is being hosted by @SQLMal. Thanks Mal!

“Got to play with a cool new technology that has you excited” got me thinking.

A while back, @JeffRush and I had an exchange on Twitter. I know that he (and others) have had mental health struggles from time to time. @TracyBoggiano has even recently created and presented on this topic at a recent SQL Saturday; More Common Than You Think: Mental Illness in Tech.

One thing that helps people deal with things and cope is by looking at pictures. Jeff likes dog pictures.

For those of you who don’t know, one of my hobbies is Virtual Reality (VR). I like to build projects using the Unreal Engine from Epic Games (Version 4.24.0 just dropped today, YAY!!!). Side note: I help run the Denver/Boulder Unreal Engine Group and the Colorado Virtual and Augmented Reality Group. I also have a part-time side-hustle, Zone Of Hope.

So I told him that I would be willing to build him an art gallery for free and populate it with animal pictures if he ever got an Oculus Quest (US$400).

Roll the clock forward several months to 07Dec19.

Jeff put out a poll on Twitter whether he should buy a ‘Quest. I saw that and reminded him my free offer still stands.

A discussion ensued and instead of building something just for him, he suggested why not open it up for the entire #SQLFamily?

SQLPets Was Born

Using the hashtag #SQLPets on Twitter, I’ll be monitoring it closely over the next few weeks. If you want to contribute pictures of baby animals, or pets, etc. here are the steps:

  1. Announce on #SQLPets on Twitter you want to contribute and then follow me @toddkleinhans so I can follow you back (required for direct messaging (DM)).
  2. I’ll DM you a link to a Read_Me file. YOU will agree that you have obtained all rights, permissions or these are personal pictures you have taken and want them to be included into the VR project known as SQLPets. At the bottom of the Read_Me will be a link to a Dropbox folder for you and you alone to use. This will do several things: 1) Get permissions up front 2) Keep both you and me out of trouble 3) Avoid me having to scrape pictures from a hashtag. The image quality is generally poor when re-sized. Think a human-sized poster version of your pictures is what you will see in the final product. So getting a high-resolution version from you will ensure the highest quality version I can use.
  3. For now I want to limit the number of pictures submitted by each person to 10. The current static mesh I’ll be using supports up to ~350 pictures and in order to keep the overall VR file size down, I think this will be reasonable. If we don’t reach around that number, then Jeff can add whatever he wants.

My Gift to Jeff and Others

On or around Christmas, I’ll package up what I have and build a .apk file to be installed on your Oculus Mobile (Go or Quest). Either I’ll use another Dropbox folder to distribute it or might try SideQuest. Here is an example video; still lots of steps to side-load but it does work.

Like other art galleries that I have built, it will work okay on the Oculus Go (US$200), but it will run much better on the Oculus Quest. There are also several steps to go through in order to successfully activate developer mode for Go and Quest. SQLPets will be what is called a side-loaded application. That means it was not distributed through the Oculus Store and is the only way to install this on your device for now.

You will also need a cable to physically connect your device to your computer. For Quest, it must be a USB to USB-C. One cannot use the cable that charges the Quest either, so this is the one thing you will have to buy if you don’t have it in order to put SQLPets on your Quest. For Go, it must be a USB to Micro USB; in this case you can use the charging cable that comes with it.

I only have a Windows desktop set-up at home and I don’t have an easy way to test deploying from a Linux or Mac set-up but I’m willing to work with people to get it working from those too. Using SideQuest could streamline this issue.

I’ll update this blog post with specific steps on deployment. Manually, once everything is set-up, you will run a command prompt using Run As Administrator and path out to where the install (for Windows, this will be a .bat file) lives and then run: Install_SQLPets-armv7-es2.bat and if everything goes well, it will now be installed.

To access it, from the Oculus Home in your Oculus Mobile, in the Library you will now see Unknown Sources. Click that and you should see SQLPets listed. Click that and in a few seconds SQLPets will launch. You will use a teleport mechanic to navigate around. Turn your head where you want to go and on the Quest you will press and hold the A button down on the controller (either hand will work), lift your arm/wrist to control teleport distance and when you let go of the button it will take you there. On Go, you would use the Touchpad on the controller to activate the teleport mechanic.


Being immersed in a VR world and looking at cute animal pictures can give one a sense of hope, positive feelings, and a brief escape to someplace else. This is an art gallery, not a medical treatment plan. If you are in a mental health crisis, get professional help- please.

I wanted to thank Jeff for nudging me to build something for the community and not just for him. And I also wanted to thank Mal again for hosting.

Merry Christmas, Happy New Year, and I hope people like and enjoy SQLPets when it comes out.

Posted in Uncategorized | 1 Comment

T-SQL Tuesday #120 – What were you thinking?


Today’s topic, “What were you thinking?” is being hosted by Wayne Sheffield. Thanks Wayne! And this is the 10 year anniversary of T-SQL Tuesday. Time flies!

The Peter Principle

Have you ever heard of the Peter Principle? In essence one is promoted up either in a company or in their career to their level of incompetence.

Several years ago, I had to work with a very difficult person at a client. Let’s call her Susan. During the interview with the IT department she stated that everything was fine and they really didn’t need outside dba help. Well, the client was experiencing major stability issues with their website and they needed to get off of SQL2005 (upgraded from SQL2000) and onto SQL2012. There was also a long list of issues to be addressed and things came up too during this whole client engagement.

When I started, I was pulled aside by the IT Manager and told that Susan had several HR violations against her, mainly for shouting and arguing with people. So heads-up and tread lightly around her. She was older (maybe ~60+?) and I think that the company and people were either waiting for HR to fire her or she would get laid off. Either way, she was the only database administrator on the team. Other dba(s) had quit over the years because of her and the financial health of the company. I got to know the Director of Software Engineering pretty well and he flat out told me that his developers hated asking her for anything. In fact, many had stopped and would rather try to figure things out for themselves.

A Corner of the Institution

At one point I was flown out on a week long trip in the spring of 2012 to the client’s office in Santa Monica and had a chance to see Susan’s desk firsthand.

I tried to control my confusion and facial expressions but honestly I had a hard time trying to keep it together.

1. She was running Windows XP when everyone else in the company was running Windows 7. She said she couldn’t take the downtime to upgrade.

2. SSMS was connected to all of their instances using the IP address and sa login. When asked why, she said, “Per Microsoft best practice” <- this was a common refrain from her. When asked to provide a link, she never would.

3. She did everything via the GUI- barely typed any T-SQL code. It was like watching paint dry watching her work so slow.

4. The few technical books she did have were either SQL2000 or SQL2005. Nothing new, nothing about SQL2008 or SQL2012. I’m not judging but that doesn’t seem to me to be the bookshelf of a senior dba. Maybe she had a SQL library at home? My gut tells me no.

Other Bad Signs

Short (!) list. No SQL Agent jobs to run CHECKDB (S: it blocks users). Tempdb had 8 data and 8 log files (S: Per Microsoft best practice). All tables were heaps (S: it is not worth the time to create clustered indexes on ~350 tables. I won that battle but it sucked). Didn’t want to attend any of the Project Manager stand-up meetings regarding the migration to SQL2012 (S: I’m just too busy. But you are going to be managing this when we are gone. S: I’ll figure it out then).

All Good Things Must Come to an End

I was put into a bad situation. From me, we expanded the consulting team during the engagement to do a lot of work that needed to be done. Was the project successful? On all technical accounts, yes. Stability and performance were AWESOME when we were done. Upper management was very pleased with our efforts. The public end-users could see major speed improvements on the website too.

But the raw nerves and yelling… Yes, I initially got into a shouting match with her about not running CHECKDB (S: because it blocks users so we don’t run it) when they had many entries in msdb.dbo.suspect_pages. I got so fed up with her I said, “You know more than Paul Randal about CHECKDB?” (S: Who is Paul Randal?) I had to go above her head and won that battle too but it sucked.

Sometimes in life you have to work with difficult people and I’ve had my fair share. Be civil and professional when you can. Stick to facts. But when people don’t want to believe facts and it is harming the business, don’t be afraid to explain it to C-level executives on why something needs to be done.


Posted in Uncategorized | Leave a comment

Snow Duck



Using inflatable structures is one way of being able to use ice as a building material. Sometimes an opportunity presents itself and one has to make time to jump in and grab it, despite not knowing what one is doing. And Happy Halloween!

Backstory – Winning a Duck from Idera Software

A while back, I entered a chat contest on Twitter sponsored by Idera Software. And I won! You have no idea the surprise I got when the receptionist at my work called me up and said there was a package for me. It was from a pool supply company in Houston.

I took it home and opened it up. It was this giant inflatable duck! Which happens to be the mascot of Idera Software in many versions.

My wife said, “What are you going to do with that thing? We don’t have a pool!”

And it sat in my garage until one day my old Boy Scout Troop I used to be a part of announced they were going to Cherry Creek State Park to go swimming and riding waverunners. Asked if I could come along and bring a toy…

So I aired it up, and barely shoehorned it into the back of the minivan.

I showed up and nonchalantly said, “What? Haven’t you seen a rubber ducky before?” It was the most ridiculous looking duck on the lake. You could see it from all around.

And that was the last time I used it.

Backstory – Ice Structures & Ice Instruments

I have been intrigued about using ice as a building material for a while. It is available nearly anywhere in the world.

Here is a cool (!) example: Construction of using air ribbed inflatable — Ice and Snow Lecture Hall.

And for the world’s largest display, China’s Ice City Harbin.

This winter ice castles are returning to Colorado and I am not going to miss it this year.

Note: visualizing ice on a grand scale is a past-time of mine. Engineering things like how does one freeze a lake solid? Not just the surface- the entire volume of water in a lake. Visions of creating, storing, and shipping ice. Building machines made out of ice.

A friend of mine also turned me on to this- ice instruments: Coolest Concert Ever? Hear Ice Instruments Play Beautiful Music | Short Film Showcase

Sub-Zero Opportunity

I knew this winter I wanted to play and experiment with some of my ideas. We recently had a few snow storms and sub-zero temperatures in the forecast. So the idea came to me to get outside and try something.

One of the only inflatable structures I have was a duck.

On more of a whim, I put together a plan of action into motion.

This is one of the few projects I have ever done where I didn’t have to buy anything beforehand!

My plan:

1) Inflate duck on driveway or in the garage
2) Toss over fence into the backyard
3) Create work area in snow
4) Fill buckets of water then into a tub
5) Spray duck using bilge pump and garden hose w/ mist setting
6) Repeat as water freezes
7) Avoid eye contact w/ neighbors 🙂
8) Evaluate experiment

So on number 7, a neighbor who was smoking on his back patio saw me walking a square pattern in the snow.

“What are doing?”

I waved, “I’m building an ice sculpture!”


I lost count but I probably sprayed over twenty coats of water. Waited a few minutes between each one. Ran back inside to watch parts of the World Series.

The first picture above; it reminds me of that scene from The Shining where Jack Nicholson is frozen at the end 🙂

Before winter officially sets in, chalk up one experiment in the books.


The bilge pump I used didn’t have much pressure so spraying water took a lot longer than I had thought. If the ice doesn’t melt off today, I might try covering it with snow.

One of my next ice experiments might involve inflatable air mattresses we use for camping and guests.

Go ahead and call me crazy. I love ice and thinking of ways of using it. Pictures follow.




Posted in Uncategorized | Leave a comment