SQLBits 2023

Super excited that I was selected to speak at SQLBits 2023. The conference is taking place 14-18 March 2023 in Wales. I have never been to Wales and am really looking forward to it. The conference will be a hybrid event, just like in 2022, so if you aren’t able to travel, you can always attend virtually.

I will be delivering a brand-new session, Identifying and Preventing Unauthorized Power BI Gateways. The current agenda has my session scheduled for Saturday, 18-March, but that is the provisional schedule and is subject to change.

Hope to see you all in Wales in March!

It’s Not Horrible, It’s Just Very Sad

This is a non-technical post, but a necessary one for me.  If you’re only interested in technical content, that’s okay, you can stop reading, I won’t be offended (heck, I won’t even know).

I have been a bit silent lately, the global pandemic has hit lots of folks hard; emotionally, physically, mentally, and financially.  I am no exception to those blows.  I come from a very stoic line of Brits (I’m second generation American), so I had been holding it all in and trying to put one foot in front of the other to make it through.  I was doing a good job too until something very sad happened to our family in June and I went almost completely silent.  I didn’t share it with anyone in the community, because that’s how I was brought up, stay stoic, be silent, chin up and move forward.

A few years ago, I decided to take a step back from some of the Community work I had been doing (you can read about that here) so I could spend more time with my mom.  She has Alzheimer’s.  It runs in our family and it started in my mom at a relatively young age.  I wanted to be able to make as many new memories with her before should could no longer retain those new memories.

We had some great adventures the last few years.  There were weddings, new babies in the family, and even a few road trips here and there.  She became more prolific in her quilt making.  She wanted to make sure everyone in the family had a quilt while she could still remember how to make them.

We were trying to keep my mom living as independently as possible for as long as possible, so we bought the house across the street from ours for her about three years.  That way, she could live independently but I could also “keep an eye on her” from a distance.  From my office I could see her house and know that she was safe.

Then the unthinkable happened in late May this year.  A medical emergency landed my mom in the ICU of the local hospital for a week.  Turns out, she was not taking her medication and hadn’t been for at least six months.  We almost lost her.  Her Alzheimer’s-y brain told her that she wasn’t sick and didn’t need to take medication.  Well, when you’re a Type 1 diabetic and don’t take your insulin, bad things happen.  It was made very clear to us that my mother had reached the point where, not only could she no longer live independently, but she would now need 24/7 care due to the complications of not taking her medications.

We looked at all of our options for 24/7 care.  We even tried having one of my sisters live with her for a few weeks after she was released from the skilled nursing facility.  But it quickly became clear that none of us possessed the necessary skills to care for her.  I kept beating myself up for not being able to care for my mom, after all, she cared for me as a child, it was the least I could do.  But it came down to the fact that I do not have the skills necessary (nor do my sisters) to care for my mom in the manner that she needed to be cared for.  We needed to be sure that she was safe, getting her medication on a regular basis, and not wandering away.  Our only solution was a  memory care facility.

As if this wasn’t a hard enough fact to accept, we also had to navigate this through the current global pandemic.  Not being able to visit when she was in ICU was hard, not being able to visit the potential memory care facilities to ensure my mom was in the best place possible was hard, but not being able to visit my now that she is in a memory care facility is the worst.  She doesn’t understand why we can’t visit or why she can’t leave and having to explain it to her over and over again breaks my heart.

Throughout all of this, I had the voice of British stoicism whispering in my ear, but I was barely keeping it together.  I didn’t sleep, I couldn’t eat most of the time, and was generally very hard to live with.  Until one day, when I was going through my mom’s things in her house, getting it ready to sell.  I came across notebook after notebook where she was writing notes to herself so she wouldn’t forget things.  One of them had the names of all the people in her family along with all the names of the people in our family and what their relation was to her.  This broke me.

I left the house and went to sit on the front porch, I couldn’t stand to be in there one moment longer.  As I came out, one of our lovely elderly neighbors was passing by.  She saw how distressed I was and wandered up to the porch to check on me.  I told her about my mom and how horrible it was that we had to move her to a memory care facility.  She looked at me and said, “It’s not horrible, it’s just very sad.”  She told me that cancer is horrible (she should know, she survived it) but memory care is not.  She said I made the right decision for my mom.  She was safe, she was getting her medications on a regular schedule, she was eating nutritious meals, and she was protected from wandering away.  She said my mom would make new friends and adjust.

My neighbor was right.  The first week was a bit rough.  But now, six weeks into it, it’s her new “normal”.  We talk on the phone a few times a week, actually, I do most of the talking.  She often times can’t remember things when I ask questions or articulate what she wants to say, so I just talk about random stuff in my life.  We have had a new baby join our family since my mom moved to memory care.  We’ve told her several times about the new baby and every time is a surprise for her.  Most people would think of this as very sad, but I’m choosing to think of this as one of great joys of this disease.  She’s so excited and happy every time she learns she has a new great-grandbaby, even if it is the same one over and over again.  Can you imagine being that happy about the same thing every time?!

I struggled for a long time on whether or not to write this post.  That British stoicism kept telling me to just keep marching on.  In the end I decided not only would it be cathartic, but after hearing my neighbor’s take on it, I thought I needed to share that with my #sqlfamily, just in case someone else is or has gone through this.  It’s been a very difficult three months for me, but I’m feeling better about it, and life in general, and am ready to start engaging with the community again.

I’m Speaking at SQL Saturday Oregon

I am honored to have been selected to speak at SQL Saturday Oregon this year. They always have so many sessions submitted with only 40 slots available. I was selected to speak last year, so to have been selected again is truly humbling .

My What is Power BI session was selected and I’m super excited to give this session again, I haven’t given it for a while.

If you’re in the Portland area on Saturday, November 2, 2019, stop and say, “Hello”, I’d love to see you and chat a bit.

Speaking at SQL Saturday Raleigh

I am happy to announce that I will be speaking at SQL Saturday Raleigh this Saturday, April 27, 2019.  I have been part of the organizing team for this event for the past few years so have never been able to speak (those of you who are fellow organizers know why!).  This year we had a last minute cancellation of an afternoon session, so I decided to step up and fill the slot.

I will be presenting my What is Power BI? session at 2:30pm.  If you’re in Raleigh with some time on your hands, stop by and say, “Hello”, I’d love to see you.  You can also check out some other great sessions as well, we still have registration slots available.

Delivering My First Pre-Con

I didn’t announce this before it happened because I didn’t want to “jinx” myself, but I am happy to say that it’s finally happened.  I have delivered my very first SQL Saturday pre-con.  WooHoo!

It’s a session that I’ve been working on for a few months now.  The title is, From Zero to Dashboard Hero, and it’s aim is to get folks started with Power BI.  One of the great things about Power BI is that it’s so easy to use.  However, it also has a downside, it’s so easy to use.  The proverbial double edge sword.  This is the same thing that I saw happening with SQL Server back in the nineties.  It was so easy to use out of the box that businesses were standing up all kinds of instances and shoving data in as fast as they could, without regard for underlying architecture/hardware or good database design.  Those folks got themselves into some very deep holes that some very expensive consultants eventually had to get them out of.  I’m seeing the same trend with Power BI and I wanted to educate users before they found themselves at the bottom of a very big hole.

I started doing research on what training was available.  I found Microsoft’s Dashboard in a Day course that is offered for free and decided I needed to attend to see how Microsoft was “educating” people.  What I found was, disappointing.  It was mostly marketing material and the “lab” was basically turning attendees loose with an eighty plus page manual with little to no background in design.  Don’t get me wrong, it you know nothing about Power BI and want a free class, this is a viable option.  I just think users should have more.  What’s the saying, “Give a man a fish, he eats for a day.  Teach a man to fish and he eats for a life time.”

I had a basic idea of what I wanted to teach and how I wanted to teach it, but I had never put an ALL DAY session together before.  I’d created content for several 45-75 minute sessions, but never a session for 300+ minutes – EEK!  As it turns out, it wasn’t as daunting as I thought it would be thanks to some very good friends.

One of those friends is Michael Johnson (Blog | Twitter).  He was kind enough to let me “steal” ideas from his very similar session that he delivered at SQLBits this year.  He had some things in his session that I never would have thought about including in my content.  He also approached some topics very differently than I was thinking about.  Another friend that helped spur some ideas is Ginger Grant (Blog | Twitter).  Only a couple of weeks before I delivered my pre-con I was chatting with her about my content and she was asking all kinds of questions about my content that really got me thinking.  Thanks to her questions, I reworked some of my content to what I think made it more understandable.

The last friend that helped me out with this was Wayne Sheffield (Blog | Twitter).  Now, I first met Wayne in 2013 at SQL Saturday DC.  I was late arriving at the volunteer/speaker dinner (I was volunteering, NOT speaking!).  I was drenched from head to toe (I had taken the Metro from my hotel and had to walk the last few blocks in the rain), freezing and very hungry.  Most of the speakers had already finished their dinner, but Wayne was kind enough to alert the wait staff to my dilemma.  They brought towels out for me to dry myself, a fresh salad and a warm dinner.  Then I had a great conversation with Wayne.  I can’t remember exactly what we talked about, but I do remember his kindness.

Because of his kindness, when I first considered speaking at a SQL Saturday, I knew it had to be SQL Saturday Richmond.  I submitted my very first session there and was accepted back in 2017.  I think it only fitting that since he was the one who gave me my first break as a speaker for SQL Saturday three years ago, that he be the one to give me my first break with a pre-con.  I submitted my pre-con details and a few weeks later I found out my session had been selected.  I nearly fell out of my chair when I found out.  I then proceeded to panic, but I digress.

It’s been an amazing journey to get to this point in my career and I certainly couldn’t have done it without the help and support of my #SQLFamily.

My pre-con went off without a hitch, other than losing my voice towards the end of the day (thanks to allergy season being in full swing), I got great feedback from the attendees and I can’t wait to do it again!


Speaking at SQL Saturday Victoria

I am so excited to announce that I have been selected to speak at SQL Saturday Victoria on Saturday, March 16, 2019. I will be presenting my What is Power BI session.

This is another kind of homecoming for me.  When I was a kid, my sister & I lived with my grandparents for a while down in the Willamette Valley and we used to go to Victoria every summer.  I have very fond memories of Butchart Gardens and walking around The Land of the Little People.  I was super bummed when I found out that the latter no longer existed.  But if you have time, I would highly recommend Butchart Gardens and yes, they are open in Winter.

If you’re in the area, stop by and say, “hello”.  I’d love to see you and chat a while.

Where to Store Index DDL

Recently I was asked my opinion, via Twitter, on where to store the index DDL for a single database that had multiple clients with varied usage patterns.  You can see the whole thread here.

It’s a great question and there were some interesting suggestions made.  My approach to this scenario is kind of a hybrid of all the suggestions and comments.

I’ve had to deal with this kind of thing in the past and what I found worked best is to create a single file for each client that contains the client specific DDL.  I wish I could take credit for this idea, but it wasn’t mine, it belonged to a co-worker.  At first I resisted and thought it was a bad idea.  I mean really, mixing DDL for more than one object in a single script just seemed wrong and goes against every fiber of my OCD organizational self.  But in the end, this is what worked best in our environment.

Our initial thought was to include our index DDL with the table, but use variables to name the index objects that were specific to the client.  This way the index names would never collide, but then that kind of defeated the whole purpose of different indexing strategies for different clients.  Thankfully we scrapped that idea before we implemented it.

We tried creating separate files for each table that had client specific DDL in each file.  That became a nightmare when it came time to deploy and maintain.  We had to build logic in our pre & post deployment scripts to handle that.

Then we tried separating the index DDL files out by client, so we ended up with a bazillion index DDL files for each table.  Okay, may not a bazillion, but it was a lot and it was even more of a nightmare to maintain.

We settled on the approach I mentioned earlier, one DDL file per client that held all the DDL that was specific to the client, not specific to any object.  We found it was much easier to maintain and deploy.  We defaulted each of our client specific DDL files to be NOT included in the build.  When it came time to do a build/deploy for a specific client, we would set the option to include the client specific file in the build.  We were not using continuous integration, so this may not work if that is what your shop is doing.  Or it may work with just a few tweaks to your process.  It did work for our situation and it worked well.

I don’t think there is a single correct answer to this question.  Like almost everything else in our tech world, the answer is going to be, “it depends”.  Figure out what works in your environment and then go with it.  It might take a few trial and error runs to get it right, but you’ll figure out what works best over time with a little persistence.

I’d love to hear your thoughts on this.

Speaking At SQL Saturday DC

I am so excited to announce that I was selected to speak at SQL Saturday DC on December 8, 2018.

I will be presenting two sessions, What is Power BI? and Data Types Do Matter.  My Data Types Do Matter session is the same session that I presented at PASS Summit 2018, so if you couldn’t make it to PASS Summit this year, now’s your chance to see it.

If you’re in the Washington DC area on December 8, 2018, register for SQL Saturday DC and stop by and say, “Hello”.  I’d love to see you.

New Logo Revealed

I’ve been pondering the creation of a logo for quite some time and I finally decided to go ahead with it.

Now, I can barely draw stick people (and have them even resemble people), so I knew I was going to have to hire someone to do this for me.  I knew it would have to be someone who would understand my “data world” and be a great artist with a proven track record.  Luckily for me I have a very good friend and a brilliant artist that fit the bill.  He took my idea and created exactly what I wanted (and I didn’t have to draw anything!).  Huge thank you to Michael Swart (B | T) for all his time and energy in creating my new logo.

Let me know what you think.  I think it’s brilliant!


Now to redesign my website so I can incorporate my brand new logo.

I’m Speaking At SQL Saturday Baton Rouge!

I am excited to announce that I have been selected to speak at SQL Saturday Baton Rouge (#749) on August 11, 2018. I will be presenting two sessions, Data Types Do Matter and What is Power BI?

One of the reasons that I’m so excited to speak in Baton Rouge, is because I met William Assaf (B | T) a couple of years ago when he came to speak for us at SQL Saturday Charlotte. He’s super nice and while chatting I discovered that he was the event organizer for SQL Saturday Baton Rouge. It was before I started speaking and I was just picking his brain a bit on organizing a SQL Saturday. He had some really great ideas that I thought sounded interesting. This is the tenth year for SQL Saturday Baton Rouge. I can’t wait to see what they have in store for us.

The second reason I’m so excited about speaking in Baton Rouge is the food! I’ve only ever driven through Louisiana, never had the opportunity to stop and enjoy it. This time I will have plenty of opportunities to do just that, but most importantly eat. My list of foods to try include étouffée, boudin and jambalaya to name just a few. Then I’ll top it off with some beignets. I may need to swim a few extra laps before I go (and after I return)!