About Greg Moore

Founder and owner of Green Mountain Software, a consulting firm based in the Capital District of New York focusing on SQL Server. Lately I've been doing as much programming as I have DBA work so am learning a lot more about C# and VB.Net than I knew a couple of years ago. When I'm not in front of a computer or with my family I'm often out caving or teaching cave rescue skills.

Another Case for Diversity

I’ve spoken in the past about why I think diversity is important. For example, understanding genders helps us design better databases and interfaces. But this past weekend another argument for diversity was presented to me. I was reminded that experiences many of us take for granted are often experienced differently by other people.

I’ve spoken in the past that I’m a caver and I teach cave rescue. As a caver I’m a member of the National Speleological Society. This is a great group and it’s dedicated to cavers and those who have a personal or professional interest in caves. It recently added a section for diversity. Some of the discussion behind this occurred on Facebook and it was quite telling in the reaction.

Let me start with saying that cavers are some of the friendliest people I know. It’s far from unheard of for a caver to look in the NSS Members Manual or online and say “Hey, you don’t know me, but I’m passing through your area, can you hook me up with a local cave to visit and maybe some crash space” and it happens. So yes, cavers are quite open and hospitable.

That said the Facebook discussion was an example of many of my fellow cavers missing the mark. The one that stood out in my mind was “Of course people of color can come caving with us. They just need to ask. We never turn anyone away.” And that’s most likely true. But, there are problems there, including people of color knowing they can ask and who to ask and where.

One response I found particularly telling, was a person of color pointing out that in parts of the South, simply walking across a field to a cave was potentially unsafe to them. This was a concept the white cavers couldn’t wrap their mind around and even actively told the person his experience was wrong.

So in this area I do think it’s important for us to reach out to members of groups who might not traditionally cave and invite them to join us.

But, as I said, another reason was presented to me on the past Thursday night. The NSS Education and Diversity Committees had joined together to present a webinar by Beau D. Carroll on Cherokee Syllabary in caves in the Alabama area (the main focus was on Manitou Cave).

Now, I go caving because I think it’s cool, both literally and figuratively. Seeing how the rock changes as you move to different parts of the cave, or seeing formations, and all that is just really interesting. My experiences are shaped by that. I also enjoy taking beginners of all ages caving and seeing their reactions and their often growing enthusiasm. I can quite safely say I’ve literally taken 100s of people on their first caving trip and am proud to know that several have gone on to become great cavers, far outpacing my own experiences.

That’s my experience.

Beau talked a lot about the experiences he, as a member of the Eastern band of Cherokees experienced while exploring in Manitou Cave and other caves. For him, it was both a learning experience (he is working on a PhD in archeology) as he found and translated the Cherokee Syllabary writings in the cave and as a way to connect to his ancestors. To me, this was particularly fascinating for two reasons. The first is the history of the syllabary itself is fascinating. It was developed over a 12 year period by Sequoyah and within 5 years, it’s estimated over 90% of the tribe could read. It’s one of the few writing systems that was developed within recent memory and for which we have somewhat decent records of its development. The second reason is that the writing very much is recording the history of a people whose entire way of live was disrupted by the Trail of Tears. He’s unlocking history and we’re learning from it.

It’s also a very different way of experiencing the dark zone of a cave. It’s not just a matter of “oh this is cool” but “this is someone’s history and culture.” One example stands out to me.

At one point during the Q&A Beau talks about leaving offerings of tobacco for his ancestors inside a cave. I have to admit, initially this offended my sensibilities, especially in light of the NSS motto.

Take Nothing but Pictures, Leave Nothing but Footprints, Kill Nothing but Time

But it forced me to stop and think about my own prejudices. While it’s clear from other comments Beau makes that he and his Cherokee agree on much of the concept of cave preservation, am I right to be offended? Is my concept of “leave nothing but footprints” truly correct? For me, caving is not a spiritual experience, but for him it is. His experience is arguably as valid as mine and I think should be respected also.

In the end it made me realize that a strong reason for a diversity committee isn’t just to “bring others into the caving” but for us to realize how others experience caving. This is equally and perhaps in some ways more important. I don’t think we can truly understand caving until we understand how others experience it also.

I want to thank Bree Jameson for bringing the webinar to my attention and Devra Heyer, NSS Education Committee Chair and Leah Hill, NSS Outreach Chair and Ambassador for the Diversity Committee for putting this all together. It’s a great presentation.

Please, take an hour out of your day and listen and watch. It’s worth it!

Also, please not my latest Redgate Simple-Talk article is now online: PowerShell editors and environments part 1 is now online.

Guy’s it’s on Us

A short thread on Twitter yesterday prompted today’s blog. Dr. Jen Gunter (who I do not follow) mentioned her planned response to “I don’t have a question, it’s more of a comment.

One of the replies I thought completely missed the point and I tried to respond in a somewhat humorous but pointed way to the man replying. It took him about 9 hours, but he finally replied and I think based on his reply, completely missed my point. Oh well. I had tried.

But it got me thinking. Had I been blunt enough? Should I have been a bit more confrontational? Could *I* stand up at a conference and give Dr. Gunter’s pointed reply? And of course, the nagging question in the back of my head, “had I commented when I a question was the appropriate response?” or otherwise ended up “centering the discussion around me rather than the original person?”

Let me address the last first. I’m sure I have. I like to think “well I’m a friendly guy, I like to relate and show I’m relatable.” And that’s all true, but, that’s also part of the problem. It’s a case of recentering a discussion or something around me. I’ve always tried to be conscious of this since college when I took a class at the women’s college down the hill and realized that what I had heard about men dominating discussions was true. In a class of about 20 students, with just 3 men, one of the men (and no, it wasn’t me) clearly dominated the discussion.

Anyway, back to my response. I actually sometimes am jealous of some of my friends who can have “I have no fucks to give” attitude and will openly confront someone like that. I think sometimes that can be a good thing, especially with a more egregious example. And I’ve seen some that are pretty bad.

My attempt to deflect the one tweeter’s reply with a bit of humor apparently failed. So I started to think about how I might handle this at an actual seminar and then I realized I had.

It was at a SQL Saturday a number of years ago. It was a good topic, though, for reasons unknown to me, the presenter has not, to my knowledge presented again. And then there was the raised hand. It was someone I knew. And, he had more of a question than a comment. Then again about 10 minutes later. And I think probably a 3rd time. Now, he was in now way being mean or malicious. Heck, I think no matter how hard you looked, you’d never find a mean bone in him. He’s genuinely a decent guy.

But, and this is what I think we all need to do, after the talk, I pulled him aside and pointed out what he had done. He as embarrassed and apologetic. And he vowed to do better.

And as I write that, I realize, this happened TO me. See, I said I wasn’t perfect and I had failed. This time it was on Twitter. I typed a reply that I meant to be supportive and add a touch of humor. A friend DM’d me, “Really?” At first I was confused, but when I asked for her to expand, she pointed out what I had done. Yes, I had meant well, but sometimes intentions are less important than results or even perceptions. I decided to delete my comment, despite her saying it wasn’t necessary. I realized I had not contributed to the discussion and my comment could be a distraction that wasn’t needed. And since them I’ve tried to be better. But a comment she said stood out to me. She DMd me because she thought I was one of the “good ones” that I’d listen and accept feedback. That meant a lot to me. She could have ignored my comment and let me continue to be a jerk at times, or she could have publicly called me out and humiliated me, which might made her point publicly, but caused me to be hurt and not grow. She took the time. I appreciate that.

However, yesterday’s Twitter thread reminded me that all too often in situations like this, women and other minority (in that environment) group end up doing the emotional labor of trying to keep the discussion from recentering the discussion the “I have more of a comment than reply” crow.

Therefore, I think often the onus needs to be on us men to call out our fellow men to say, “hey, that’s not cool” or “do you realize how you came across there? I know you didn’t mean that.” We can’t rely on women and other minority groups to do all the emotional labor. So if you see someone trying to talk over a speaker, pull them aside. If you hear them make an off-color comment in a meeting, speak up. Call out behavior. Find a method that works for you.

I prefer, but am not always good about doing it, calling our behavior a bit more publicly. Not necessarily to embarrass the commenter, but to hopefully get them to correct their behavior and so that the original speaker knows they have support.

For example, if someone in a meeting makes a comment about “yeah, let the girls over in accounting handle it”, unless this is an accounting class for teenagers at an all-girls school, you can and should say “Umm, you mean the women right?”

You don’t have to humiliate a person to make the point. In most cases, the person doing it may not be aware and simply needs a nudge. Give them that chance like I was given. Now, in the end, there will be a few folks that do need to be simply called out and made an example of. I’m ok with that, but for the vast majority let’s work to give them the nudge.

Worth Doing Well?

Hunter S. Thompson once said, “Anything worth doing, is worth doing right.”

There’s been some pushback on this that I think has merit with some folks saying “Anything worth doing, is worth doing poorly.” In other words, sometimes attempting something, and perhaps not fully succeeding is still probably worth doing. If I decide I want to bake some bread, but I’m convinced I need to use only artisanal hand-ground flour and yeast I’ve harvested myself to do it “right”, I may never get a sandwich. But if I’m willing to settle for some cheap white flour and yeast I bought at the store, I’ll probably get that loaf baked a lot sooner. It may be a poor substitution for my original goal, but I’m at least no longer hungry.

But, I’d argue, even then it’s worth making that loaf well and with some care.

When I first started this blog, one of my goals was to focus on how I approach problems and look into thought processes. Yesterday I was reminded of this. It was a small ask, a process to monitor if new rows were being inserted into a database daily. If there were no rows, it meant the logging process had broken and probably needs to be recycled. Now, let me be clear from the start, that this is not a life critical process. It is right now, much more a “nice to know” process.

So, first I wrote a query, nothing special, basically:

declare @count int

select @count=count(*) from bar.dbo.report_logs where date = cast(getdate() as date)
if @count = 0 exec msdb.dbo.sp_send_dbmail @recipients=’foo@example.com’, @subject=’No rows’, @body=’check out the foo process!’

Now, my first instinct was to put that into a scheduled task and be done. But then I thought, “this should really be a stored procedure”. So I wrapped it in some code to turn it into a stored procedure.

Then I realized that I should really probably at least put a few comments in, namely who wrote it, when, and most importantly why. While it’s obvious WHAT it does, it wasn’t clear why we’d want this.

It’s at that point that I had the thought that if I were going to do this, I’d do it well.

So, what’s the difference between doing this well and right? In a more perfect world, I might actually have this process cycle the service in question. But then I’d have to have code to handle situations where the service doesn’t come up. And we’d have to file a change order to introduce a process that potentially would have an impact on a service. And we’d have to wait until the end of the month freeze window, and, well the list goes on.

So, while I’m not going to do all of that, I’m going to make sure the part I can and will do is done well, commented properly, and documented properly. The rest can wait until we really need it.

If you are going to do something, even if you do it poorly, do that part well.

Food Experiments

There’s an old joke: “what’s the difference between a chef and a cook?”

“A cook cleans up kitchen when they’re done.” If that’s the definition, then I am definitely a cook, not a chef.

That’s ok, because I really do love to cook. There’s something creative and powerful about taking a bunch of ingredients and turning it into a meal that’s ideally nourishing and enjoyable. That said, sometimes I end up with meals that are more nourishing than they are enjoyable.

A recent Facebook exchange with a pair of #SQLFamily members and others reminded me of that. About once a month I will make homemade pizza. I’m a big fan of this since I can experiment with toppings. I generally use King Arthur Flour recipe (though somehow I was able to print mine by mass of ingredients, not volume) or, as in this past weekend the Sourdough version. For me, the way I knead it and let it rise, I’ll end up with a fairly fluffy crust, so if you want a thin crust, you’ll have to try something else.

Now, generally I end up making 2 pizzas (unless I’m in non-covid times baking for a larger group in which case I’ll double the recipe). Almost always one of those is a typical pepperoni pizza. If I’m feeling healthy, I’ll use the turkey pepperoni, but more often lately I’ve been using real pepperoni I’ll slice myself. I almost always use store bought mozzarella, but if I have the time and the motivation, I’ll make my own.

Two sourdough pizzas with home grown herbs.

The second pizza can vary. Above is a white pizza I made this summer with some basil from the garden.

But, why stop there? My personal favorite is a “Thai chicken” pizza with Thai seasoned chicken, peanut sauce, snow peas, and red onions.

Or one with bacon, sautéed onions, sliced Granny Smith Apple, and some sun-dried tomatoes. That has a nice mix of flavors. I think it’s my wife’s favorite and the favorite of a friend of mine.

Or cheddar cheese with bacon, black pepper and towards the end 1-2 eggs cracked over the top. I call this my breakfast pizza.

Or a BBQ pizza.

Or… well you get the idea. I like to get creative.

Some homemade pizza with a bit of sourdough mixed in.

But this weekend I wasn’t feeling particularly creative and decided to try something different. I had heard about folks who have air-fried pizzas, so I decided to take a crack at it. I took the 2nd half of the dough and divided it into 4ths and told each member of the family it was up to them to create their own pizza. I par-cooked the crusts a bit first in the air-fryer before they topped them. I also setup a “toppings bar” for them to pick from (nothing super creative this time though).

Now, let me stop by saying, no experiment is truly a failure. As a friend of mine who worked on the InSight Lander made a point of saying, even the fact that drill head got stuck and did not complete it’s original goal, we learned something about the soil of Mars.

While these were far from my best pizzas, I learned something about making them in the air-fryer. They came out a bit dryer than I might prefer, but I wasn’t really surprised, I did kind of expect that.

I still far prefer a really hot oven and pizza stone (huge hint: give the stone a good 30 minutes or more to come up to temp, otherwise it will actually end up insulating the bottom of your pizza and it won’t cook well). But, I’ll probably try again, perhaps with a moister dough and drizzling the edges with garlic butter or olive oil (hey, any excuse to use those, right?)

I’ve also bought some King Arthur 00 Pizza Flour and will start to experiment with that. My first attempt I made some mistakes, but I’m looking forward to another attempt, especially this summer when I can use fresh basil and tomatoes.

In the meantime, I’ll keep experimenting with the air-fryer.

Now, I will say, air-frying wings DOES work well and is my preferred method now. Still moist and very tasty, but far fewer calories and in theory a bit healthier.

I’ve determined getting decent steak fries isn’t worth it (too thick and bulky to get the inside cooked without overcooking the outside), but I’m honing in on getting pretty decent shoestring fries out of it.

And putting a final crisp on our veggie burritos is often quite pleasing.

In any event, before I get too hungry I’m going to stop now. But I’ll encourage everyone to experiment in the kitchen. It can be fun and who knows, you may even enjoy it!

Oh the Places I’ll Go… Someday

I’ll admit, I was sitting here, struggling for a topic when I received an email alerting me to Deborah Melkin’s latest blog post. So, to take a phrase from Pablo Picasso “Lesser artists borrow; great artists steal”. To be clear, in this case, I’m borrowing an idea from Deborah, a great artist, I’m not. At least not in this case.

In the past few months I’ve come to realize how much I missed travel. I think many of have. But instead of listing real places I want to visit, I’m going to change things a bit and talk about a few fictional places I might enjoy visiting.

Firstly, Middle-Earth. Some may know that my twitter handle is @stridergdm. This came out of my youth of hiking parts of the Appalachian Trail. It’s common when signing into logbooks to adopt a trail name. Being a huge fan of The Lord of the Rings, I adopted Strider. I still use it. But online, I found Stridergdm was pretty much guaranteed to be unique. So, back to Middle-Earth. It is still one of the richest most fleshed out fictional worlds and there’s too much to see. But I suspect I would want to ride the plains of Rohan as dawn rose over the horizon. Sail up Anduin towards Osgiliath in its prime. Perhaps look over the fallen foundation of Barad-dur and then travel back to the First Age and see Gondolin. (yes, I’d want a bit of time travel too.) But simply put there is so much to see there.

Earth-Sea – To sail from the Gont to Havnor and visit some of the islands in between. I always found Ursula Le Guin a unique world, a world of only islands, no continents.

Dune – deserts have always fascinated me, but to visit a world that is entirely desert and life is focused on the lack of water intrigues me. Perhaps to enter Sietch Tabr in the evening as the Fremen are waking up, with the sunsetting at my back, casting my long shadow ahead of me. To break bread and share water with Stilgar and others. Then leave on a Highliner and visit the polar opposite, the ocean world of Caladan.

Mid-World – Of Stephen King’s The Dark Tower series. This is very much a broken world, not just the buildings of Lud, but physics itself where sometimes the Sun doesn’t rise in the East and time seems to flow strangely. But to perhaps visit the Halls of Gilead in their prime and then ride The Drop and overlook the Clean Sea, but finally to walk among the field of roses at Can’-Ka No rey and enter the Dark Tower itself.

Ringworld – it may be unstable, but is probably arguably the largest “world” of any I would want to visit. To look up at the Sun, always at Noon and to realize one could walk multiple lifetimes and still barely make their way around the world. It’s big enough that it has 1:1 maps of Earth and Mars.

Narnia – C. S. Lewis and Tolkien were comrades in arms and members of the inklings but had very different ideas of world-building and different ideas on the proper place for allegory. Tolkien was never a huge fan of Lewis’s Narnia because it hit the read over the head too much with allegory, but I still think it would be interesting to sail on the Dawn Treader to the edge of the world.

One Hundred Acre woods – Technically this is based on a real woods and one could visit it, but not with Pooh and Piglet. This place has a special place in my heart. It’s the first “real” book I ever owned. As a young child, I want to say 3 or 4, a friend of my father’s loaned it to me. More accurately to my father to read to me, but that’s just technicality. After it was read, I tried to return it as I had been taught, after all, it wasn’t mine, it was only loaned. But the owner (who I can’t recall) looked at me gravely and asked me if I enjoyed it and I affirmed I did. “It’s yours then. Keep it.” And I did. And I have since given it to my son.

Stephen King’s Maine – this is a fascinating world filled with a town taken over by vampires and where Mrs. Toad can find shortcuts. What else wonderful and scary things could be found there?

There are almost certainly other worlds, but I think I’ll stop here. While I can never visit any of the above places in reality, the beauty is I can visit time and time again anytime I pick up a book.

“Houston, we’re venting something into Space…”

This post is the result of several different thoughts running through my head combined with a couple of items I’ve seen on social media in the past few days. The first was a question posted to #SQLHelp on Twitter in regards to if a DBA came into a situation with a SQL Server in an unknown configuration what one would do. The second was a comment a friend made about how “it can’t get any worse” and several of us cheekily corrected him saying it can always get worse. And of course I’m still dealing with my server that died last week.

To the question of what to do with an unknown SQL Server, there were some good answers, but I chimed in saying my absolute first thing would be to make backups. Several folks had made good suggestions in regards to looking at system settings and possibly changing them, possibly re-indexing, etc. My point though was, all that could wait. If the server had been running up until now, while fixing those might be very helpful, the lack of fixing things would not make things worse. On the other hand, if there were no up to date backups and the server failed, the owner would be in a world of hurt. Now, for full disclosure, I was “one-upped” when someone pointed out that assuming they did have backups, what one really wanted to do was a restore. I had to agree. The truth is, no one needs backups, what they really need are restores. But the ultimate point is really the same, without a tested backup, your server can only get much worse if something goes wrong.

I’ve had to apply this thinking to my own dead server. Right now it’s running in a Frankenbeast mode on an old desktop with 2GB of RAM. Suffice to say, this is far from ideal. New hardware is on order, but in the meantime, most things work well enough.

I actually have a newer desktop in the house I could in theory move my server to. It would be a vast improvement over the current Frankenbeast; 8GB of RAM and a far faster CPU. But, I can’t. It doesn’t see the hard drive. Or more accurately, it won’t see an OS on it. After researching, I believe the reason comes down to a technical detail about how the hard drive is setup (namely the boot partition is what’s known as a MBR and it needs to be GPT). I’ll come back to this in a minute.

In the meantime, let’s take a little detour to mid April, 1970. NASA has launched two successful Lunar landings and the third, Apollo 13 is on its way to the Moon. They had survived their launch anomaly that came within a hair’s breadth of aborting their mission before they even made orbit. Hopes were high. Granted, Ken Mattingly was back in Houston, a bit disappointed he had been bumped from the flight due to his exposure to rubella. (The vaccine had just been released in 1969 and as such, he had never been vaccinated, and had not had it as a child. Vaccines work folks. Get vaccinated lest you lose your chance to fly to the Moon!)

Stack of Swiss cheese slices showing holes lined up.

A routine mission operation was to stir the oxygen tanks during the flight. Unfortunately, due to a Swiss Cheese effect of issues, this nearly proved disastrous when it caused a spark which caused an “explosion” which blew out the tank and ruptured a panel on the Service Module and did further damage. Very quickly the crew found themselves in a craft quickly losing oxygen but more importantly, losing electrical power. Contrary to what some might think, the loss of oxygen wasn’t an immediate concern in terms of breathing or astronaut health. But, without oxygen to run through the fuel cells, it meant there was no electricity. Without electricity, they would soon lose their radio communication to Earth, the onboard computer used for navigation and control of the spacecraft and their ability to fire the engines. Things were quickly getting worse.

I won’t continue to go into details, but through a lot of quick thinking as well as a lot of prior planning, the astronauts made it home safely. The movie Apollo 13, while a somewhat fictionalized account of the mission (for example James Lovell said the argument among the crew never happened, and Ken Mattingly wasn’t at KSC for the launch), it’s actually fairly accurate.

As you may be aware, part of the solution was to use the engine on the Lunar Module to change the trajectory of the combined spacecraft. This was a huge key in saving the mission.

But this leads to two questions that I’ve seen multiple times. The first is why they didn’t try to use the Service Module (SM) engine, since it was far more powerful and had far more fuel and they in theory could have turned around without having to loop around the Moon. This would have saved some days off the mission and gotten the astronauts home sooner.

NASA quickly rejected this idea for a variety of reasons, one was a fairly direct reason: there didn’t appear to be enough electrical power left in the CSM (Command/Service Module) stack to do so. The other though was somewhat indirect. They had no knowledge of the state of the SM engine. There was a fear that any attempt to use it would result in an explosion, destroying the SM and very likely the CM, or at the very least, damaging the heatshield on the CM and with a bad heatshield that would mean a dead crew. So, NASA decided to loop around the Moon using the LM descent engine, a longer, but far less risky maneuver.

Another question that has come up was why they didn’t eject the now dead and deadweight, SM. This would have meant less mass, and arguably been easier for the LM to handle. Again, the answer is because of the heatshield. NASA had no data on how the heatshield on the CM would hold up after being exposed to the cold of space for days and feared it could develop cracks. It had been designed to be protected by the SM on the flight to and from the Moon. So, it stayed.

The overriding argument here was “don’t risk making things worse.” Personally, my guess is given the way things were, firing the main engine on the SM probably would have worked. And exposing the heatshield to space probably would have been fine (since it was so overspecced to begin with). BUT, why take the risk when they had known safer options? Convenience is generally a poor argument against potentially catastrophic outcomes.

So, in theory, these days it’s trivial to upgrade a MBR disk to a GPT one. But, if something goes wrong, or that’s not really the root cause of my issues, I end up going from a crippled, but working server to a dead server I have to rebuild from scratch. Fortunately, I have options (including now a new disk so I can essentially mirror the one disk, have an exact copy and try the MBR->GPT solution on that one) but they may take another day or two to implement.

And in the same vein, if it’s a known SQL Server, or an unknown one, you’re working on, PLEASE make backups before you make changes, especially anything dramatic that risks data loss. (and I’ll add a side note, if you can, avoid restarting SQL Server when diagnosing issues, you lose a LOT of valuable information in the DMV tables.

So things CAN get worse. But that doesn’t mean there’s any need to take steps that will. Be cautious. Have a backout plan.

2021 in Preview

I’ll admit I was tempted to just have a blank page here and say I’m starting 2021 with a blank slate. But that seemed too easy.

But with hope in hand, I will set some goals:

  • Continue to write for Red-Gate! I enjoy this and have to admit, the little extra spending money isn’t so bad.
  • Expand my client base. A concern I’ve had for a few years, and 2020 really reminded me of this, too much of my current consulting depends on one large customer. I want to change that. I’ve already reached out to some colleagues in regards to possible clients and will continue to do so. Part of my goal is to really define my business model here.
  • Have a successful NCRC Weeklong Cave Rescue Seminar here in NY. This was originally planned for 2020, but in light of the risk of becoming a super-spreader event, we postponed. Right now it’s still not clear if we’ll be able to safely host the event, but the odds are slowly improving. I’ve been monitoring my Facebook feed and it’s amazing how many folks I know already who are in the process of getting vaccinated against Covid-19. If this continues at this rate, we’ll be able to have an event!
  • Continue blogging. 2020 was my best year year, but I hope to improve in 2021. Of course I have to admit my numbers were helped when Brent Ozar mentioned one of my posts. So, I guess the real secret is to get Brent to retweet my blogs! Seriously though, I enjoy blogging and as much as I often do it for others, I’ll admit, some of it is really just vanity for me, but also serves as a practice to keep up on my writing and creative skills.
  • Travel! Once it’s safe to travel again, I hope to do a LOT more this year. One benefit of being an independent IT consultant is I basically can work any place I have a steady Internet connection. I hope to take advantage of that.
  • Continue biking. This probably means finally getting a new bicycle. I had hoped to replace my Trek 520 that is now 30 years old this year, but due to Covid basically avoided bicycle shopping. But after 1300 miles last year, I think it’s time to seriously consider a new one.
  • Hike more. I loved my overnight trip last year. I hope to complete the section of the Appalachian trail in Massachusetts I haven’t done yet and then perhaps finish Connecticut or Vermont.
  • Continue to enjoy life. I mentioned yesterday that as crappy as a year it was, I actually enjoyed much of the year. If anything, Covid forced me to take stock and focus on enjoying life. I want to continue to do this.

And, most of all, make it through another year with you all.

2020 in Review

Yes, I’m joining the chorus of so many others who are publishing a lookback on the previous year. This has become a tradition for me. And I of course followed last year’s review with a preview for 2020. I made the obligatory dad joke then and I’ll make one now, that I can’t wait until 20/20 is truly hindsight!

2020 I think upset everyone’s goals, and mine were no different. But I figured I’d start with my goals from last year and then try to end on an actual up-note.

  • I had a goal of blogging at least once a week. I think I missed 1 this year, but a few weeks I blogged more than once, so, including this post, I will have 56 posts this year. Not to shabby. And my overall page count is up. So that’s good.
  • I vowed to write more for Red-Gate and I did. But not as much as I’d like. I do blame this partly on Covid. I lost some of my enthusiasm. But I am working on another article. I was hoping to have it done this week, but lost motivation. I did learn one of my articles there is one of their top read articles. I’m quite proud of that!
  • I did read more this past year, that’s for sure.
  • One goal I had was to keep speaking at more SQL Saturdays. Well, that didn’t quite go as planned. I did speak at the Albany event, but that was about it. This one I 100% blame on Covid. On the other hand, I finally attended the Portland Oregon SQL Saturday, albeit virtually.
  • Speak at SQL Summit: well I did achieve this one, sort of. It was virtual, but I was selected and that was a HUGE highlight. And in fact I ended up being part of two presentations, the 2nd a live one that I ended up doing from my car while waiting for something else. And my presentation on PowerShell for Beginners apparently was very popular. So, I can at least say I went out on a high note.
  • On one hand, we postponed our NCRC Weeklong Cave Rescue Seminar here in NY to 2021. On the other hand, I was able to work out a Modular Level 1 Seminar here in September, the first of its kind in my region ever. And we did it safely and effectively.
  • Started to use git on a far more regular basis, including from the command line (previously I had limited myself to the GUI in Visual Studio).
  • I did read more! – including:
    • The Power Broker, I biography of Robert Moses
    • Station Eleven, though in retrospect, reading a book about the world after a global pandemic was NOT a great way to start the year!

So, overall, I did accomplish a number of my goal. I had some generic ones that included caving more, biking more, and hiking more. More on those in a moment.

Overall, the year was a bummer in many ways. I really missed travelling. I really missed seeing friends and family (I think we saw my mom in person twice during the entire year). I missed my seeing my #SQLFamily in person. I missed my NCRC Family. I missed having our normal annual pool party.

I missed, normalcy.

But…

You know what, for me personally, 2020 was actually a year of some ups. I’ve been very fortunate and I was able to do things I had not done as much as in the past.

  • For one I accomplished my first overnight hike in perhaps over a decade, a nice 18 miles on the Appalachian Trail. Due to scheduling I couldn’t quite get in a 2nd hike that would have completed a gap in Massachusetts, but perhaps next year. I did find I needed some new equipment, which I purchased in anticipation for next year.
  • As for biking, I definitely did a LOT more this year. I biked over 1300 miles this year (I can’t recall the last time, if ever, I did as much) including my first century ride (100 miles in one day) since my senior year of high school. I’m really proud of that one. Who knows, maybe I’ll do another in 2021.
  • Despite a contentious election season, America voted the Orange One out.
  • Spent more time with my family! We did several walks around the area including some paths we had not explored in the 20+ years my wife and I have lived in the house.
  • I fixed the dryer that had been making a horrible rumbling sound for years.
  • I made a bunch of sourdough bread, pancakes, waffles and even a pizza crust or two. And I’m back to making sourdough again.
  • I finished binge-watching Haven, a quirky fun show based on a Stephen King story.
  • I rewatched (and for my family, they watched for the first time) the entire Prisoner series. Yes, everyone still wonders what the hell the final episode is still about.
  • We’re binge-watching Schitt$ Creek and wondering why we didn’t watch it sooner.

All in all, it was a very mixed year. It wasn’t a normal year in many ways and some of the normalcy, I really missed. But, on the flip side, I think it encouraged and in some cases forced me out of my comfort zone and to do things I might not have had time to do otherwise.

I can’t say it was a great year. While I’ve been fortunate and have not had anyone close to me succumb to Covid, I know too many people who have had friends and family die of it. So in that aspect, it’s been a terrible year. As of the latest count, over 342,000 have died in the US and yesterday set a new record in the US for daily deaths. At this rate, by the start of next week we’ll have over 350,000 deaths and predictions are of over another 80,000 in the next three weeks. PASS has been a side casualty of this too.

Too many lives have been impacted and effected and I don’t want to minimalize those.

But, I do want to highlight that even in a dark year, at least personally, I’ve been able to find some positive things to focus on. I hope others have too. Hopefully everyone reading this has at least one thing they can look back on and say, “Yeah, that was good” or “That’s a special memory, I won’t forget.”

And to quote Colonel Potter from MASH: “Here’s to the New Year. May she be a damn sight better than the old one, and may we all be home before she’s over.”

“Monday Monday”

I wrote once before about a day being a “Monday” and a week later about it not being a “Monday”. Well, yesterday was another Monday. And it reminded me of the value of DR planning and how scaling to your actual needs and budget are important.

There’s an old saying a Cobbler’s Children has no shoes and there’s some truth to that. And, well my kids have shoes, but yesterday reminded me I still want to improve my home DR strategy.

I had actually planned on sleeping in late since it’s the week between Christmas and New Years and my largest client is basically doing nothing and everyone else in the house is sleeping in this week. But that said, old habits die hard and after one of the cats woke me up to get fed, I decided to check my email. That’s when I noticed some of the tabs open in Chrome were dead. I’m not sure what I looked at next, but it caused me to ping my home server: nothing.

While that’s very unusual, it wouldn’t be the first time it did a BSOD. I figured I’d go to the basement, reboot, grab the paper, some breakfast and be all set. Well, I was partly right. Sure enough when I looked at the screen there was an error on it, but not a BSOD, but a black and white text screen with a bunch of characters and a line with an error on it. I rebooted, waited for the Server 2012 logo and then went out to get the newspaper. I came back, it was still booting, but I decided to wait for it to complete. Instead, it threw another BSOD (a real BSOD this time). I did a reboot and seconds later up came a BIOS message “PARITY ERROR”.

I figured it must be a bad RAM chip and while 16 GB wouldn’t be great, I could live with that if I had to cut down. But, things only got worse. Now the server wouldn’t even boot. I don’t mean as in I kept getting parity errors or a BSOD but as in, nothing would happen, no BIOS, nothing. Best as I can tell my server had succumbed to a known issue with the motherboard.

The technical term for this is “I was hosed”. But, in true DR spirit, I had backup plans and other ideas. The biggest issue is, I had always assumed my issue would be drive failure, hence backups, RAID, etc. I did not expect a full motherboard failure.

On one hand, this is almost the best time of the year for such an event. Work is slow, I could work around this, it wouldn’t normally be a big issue. However, there were some confounding issues. For one, my daughter is in the midst of applying to colleges and needs to submit portfolio items. These are of course saved on the server. Normally I’d move the server data drive to another machine and say “just go here” but she’s already stressed enough, I didn’t want to add another concern. And then much to my surprise, when I called ASRock customer service, they’re apparently closed until January! Yes, they apparently have no one available for a week. So much for arguing for an RMA. And finally of course, even if I could do an RMA, with the current situation with shipping packages, who knew when I would get it.

So, backup Plan A was to dig out an old desktop I had in house and move the drives over. This actually worked out pretty well except for one issue. The old desktop only has 2 GB of RAM in it! My server will boot, but my VMs aren’t available. Fortunately for this week that’s not an issue.

And Plan B was to find a cheap desktop at Best Buy, have my wife pick it up and when she got home, move the server disks to that and have a reasonably powered machine as a temporary server. That plan was great, but, for various reasons I haven’t overcome yet, the new machine won’t boot from the server drive (it acts like it doesn’t even see it.) So, for now I’m stuck with Plan A for now.

I’ve since moved on to Plan C and ordered a new Mobo (ironically another ASRock, because despite this issue, it’s been rock solid for 4+ years) and expect to get it by the 5th. If all goes well I’ll be up and running with a real server by then, just in time for the New Year.

Now, Plan D is still get ASRock to warranty the old one (some people have successfully argued for this because it appears to be a known defect). If that works, then I’ll order another case, more RAM and another OS license and end up with a backup server.

Should I have had a backup server all along? Probably. If nothing else, having a backup domain controller really is a best practice. But the reality is, this type of failure is VERY rare, and the intersection of circumstances that really requires me to have one is more rare. So I don’t feel too bad about not having a fully functional backup server until now. At the most, I lost a few hours of sleep yesterday. I didn’t lose any client time, business or real money. So, the tradeoff was arguably worth it.

The truth is, a DR plan needs to scale with your needs and budget. If downtime simply costs you a few hours of your time coming up with a workaround (like mine did), then perhaps sticking with the work around if you can’t afford more is acceptable. Later you can upgrade as you needs require it and your budget allows for it. For example, I don’t run a production 24×7 SQL Server, so I’m not worried about clustering, even after I obtain my backup server.

If you can work in a degraded fashion for some time and can’t afford a top-notch DR solution, that might be enough. But consider that closely before going down that route.

On the other hand, if like my largest client downtime can cost you thousands or even millions of dollars, than you had darn well invest in a robust DR solution. I recently worked with them on testing the DR plan for one of their critical systems. As I mentioned, it probably cost them tens of thousands of dollars just for the test itself. But, they now have a VERY high confidence that if something happened, their downtime is under 4 hours and they would lose very little data. And for the volume of business, it’s worth it. For mine, a few hours of downtime and a few days of degraded availability is ok and cost effective. But, given I have a bit of extra money, I figure it’s now worth mitigating even that.

In closing because this IS the Internet… a couple of cat pictures.

The friendlier one
The shyer but smarter one

SQL Community

First, I want to thank Rie Irish for giving me cause to blog a second time this week. Normally this time would be sent writing up another article for Redgate (yes Kathi I’ve got one more in the works).

Second, I want to add, that up until now I had decided to refrain from writing about the fall of PASS. I knew eventually I probably would, but some good news last night has accelerated that process.

Last night Rie posted to Twitter an announcement about a new initiative by Microsoft to provide a space and tools for the former PASS User Groups. I was thrilled when I saw this and I’ll explain why.

In the past few days there has been a LOT of efforts put forth by various members of the #SQLFamily to create new spaces for the former members of PASS, both individually, and as groups. I’ll admit, I was both heartened by this, but also a little concerned. I was obviously heartened, because as I knew would happen, the members of #SQLFamily have stepped up and tried to fill various needs. This is a great volunteer community! I want to emphasis that. Even weeks ago when I had suggestions forwarded to me that PASS was about to close shop, I felt that the community would go on.

However, my concern was that it would fracture, that various little domains and fiefdoms would develop. Now, this may not necessarily be the worst thing that could happen. A decentralized community might actually be a good idea. For example if we separate the concept of Saturday events from User groups, that might spur innovation and might encourage new ideas to come forth. But, it might also inhibit things for folks who have organized both if they end up having to maintain two mailing lists, two sites, etc. So it’s a mixed bag. That said, if nothing else had happened, I’d take that over having the community completely falling apart.

And even if nothing else had happened, I know my User Group has speakers scheduled out through May of 2021 (and the only reason I haven’t scheduled beyond that is because I’m hoping by June to know if we can do in-person again and if so when). I know that Monica Rathbun has the Hampton Roads SQL Server User Group scheduled out through all of 2021. This is the case with a number of other User Groups. So, no matter what, User Groups would continue.

And there are still SQL Saturdays in the works, by that name or others. So, the community will continue.

But, as I said, my concern was the community might fracture into fiefdoms.

I think the announcement from Microsoft goes a LONG ways to allaying my fears. Yes, it’s just a press announcement with details to be worked out, but it has several things going for it. The biggest is the name behind it: Microsoft. Let’s be honest, the one thing the #SQLFamily has in common is we all work on the Microsoft Data Platform. So, to me, it makes sense that Microsoft be a central focus. Another is it appears this platform will end up providing a lot of the tools community leaders will need, and all in one place. These two facts should help keep the community from fracturing.

Now, I already know there is going to be one huge objection from some: “But it’s Microsoft, they can dictate what we do! We want something independent like PASS was!”

Well, first let me point out, for all its independence, PASS is no more. So independence is no guarantee of perpetual success.

Secondly, please read the release with an open mind. It’s NOT an attempt to recreate PASS. There’s no talk of a Board of Directors, there’s no talk of a main event. It’s very clear, at this stage what it is: a set of centralized resources to sustain the community. Additionally I’ve spoken further with Rie that has given me further confidence in the plan. We will see more over time how the winds blow, but I am comfortable recommending moving forward with this path. And you know what, if it turns out the Microsoft suddenly wants to take things in another direction, #SQLFamily will again do what it needs to for its members.

So, this is NOT “PASS Version II”. It doesn’t attempt to be. Perhaps PASS Version II will come to pass someday. I sort of hope it does. I look forward to another Summit. But for now, I think this is an excellent step forward. I will end by pulling a quote from the release:

Although Microsoft built SQL Server, it’s clear that the passion and dedication from each of you is what makes it thrive.

And I think this is as true today as it was 2 weeks ago.