Issues and opinions on the PASS anti-harassment policy (#sqlpass)

PASS just published an anti-harassment policy reminder, quickly followed by a  blog by Wendy Pastrick (about a bad experience at last month’s conference, and why it took a while to report it).

We’ve had some conversation on Twitter about it all, and a couple of jokes, and some back and forth. Here are a few related items, and my thoughts on them.

PASS anti-harassment policy [jokey jokes here]

We had some fun at the expense of the anti harassment policy, what, last year was it? And there’s always some discussion along the lines of:

  • Now we can’t say “shit” in public.
  • Yes we can / no we can’t but the important thing is safety.
  • It’s not just about safety.
  • It’s all about safety.
  • This is a slippery slope to the policy  being misapplied.
  • Etc.

There are a lot of concerns, and we could have a longish talk about all of them. But bottom line for me: Harassment is an issue, for men and for women. Organizations should have a policy in place publicly, and a means for dealing with harassment when it happens.

There’ll be more talk, there’ll be process refinement, there’ll be stumbling blocks. But this is a start, and none of the arguments I’ve seen have convinced me that the anti-harassment policy is a bad idea.

But PASS can’t police what happens outside of the conference

Yeah, actually it can.

First: Is it legal?  Yes, to my understanding, a private group or company can manage itself (and its membership) in any way it sees fit, so long as the rights of protected groups aren’t infringed.

To put it simply, PASS can keep anyone out based on any reported behavior.   It can’t discriminate based on several protected categories (e.g., they couldn’t kick me out for having Irish ancestors), but they certainly could kick me out for how often I link to Bee Gees videos on YouTube, or any other random criteria.

Second: Is it within the rules? Don’t be silly. An organization makes its own rules. Again, to my understanding, the org can make up whatever rules it wants, so long as they do not infringe on the law. While it wouldn’t benefit PASS to require all members to wear purple to the Summit, they could certainly make that rule. (Making an anti-harassment policy is allowable and beneficial!)

Third: Is it moral? Morality is in the eye of the beholder. Do I personally think it’s moral to restrict membership and participation based on behavior outside of official events? Hell yes I do, and here’s why:

Imagine this…I’m going to throw a party at my home. I’m going to invite 30 people from Facebook. I hear that one of those people got rowdy and annoying at another friend’s party. I selectively dis-invite that person.

Now imagine that instead of a party at my house, it’s a party at a bowling alley (go with me on this), sponsored  by my software company. Do I still have the right to un-invite Person X? Oh yes I do.

How is PASS any different? “PASS is an independent, not-for-profit organization run by and for the community,” says the website. Does the not-for-profit part limit the kind of control that PASS should have over its own spaces? Nope. How about the “run by and for the community” part? I say nope again. We can talk about community involvement in the rules if you want, but generally speaking, I say yes. PASS can morally make these rules.

How big of a problem is this, anyway? / You’re doing it wrong.

Talk to a dozen women, and most of them will tell you that harassment is a big problem.  I’m a woman, and here’s what I say: in any sufficiently large group, you’re going to have a significant number of harassers. (This is true for many small groups too, by the way.)

When people respond to these incidents and stories, they often use various messages that either say, or can be taken as, “Hey you, the target of harassment…yeah, you’re dealing with this wrong.” Oh man, that’s just a hard road to go down. So let me bottom line something first, and then we’ll talk about the problem itself.

Bottom line: Shut up. You might mean well, but people in general (and I’ll venture to say women particularly) are getting very tired of getting critique and blame when something happens to us.  Here are a handful of better responses than, “You should… / You should have… / Well did you…”:

  • Are you okay?
  • Do you need anything?
  • Do you want me to do anything?
  • Would you like me to report this?
  • Oh, that really sucks. I’m sorry that happened.

What’s harassment like, anyway?

There are too many flavors of harassment to define them all. There’s the physical stuff: from too-personal contact (think hand high on the arm, arm around the shoulders, hand on the small of the back, hair touches), butt grabs, “accidental” boob brushes, and more.

There’s the non-physical: being followed, being leered at, one-sided flirting, flirting after we’ve said “no” or tried to gracefully shut it down.

The problems are multiple. First, odd as it sounds, sometimes it’s hard to tell what’s over the line, and what’s not. Behavior exists on a spectrum, from “welcome”, to “uncomfortable”, to “really uncomfortable”, and then to “harassing” and beyond.  For a person on the receiving end of a behavior that makes him or her uncomfortable, it can be extremely hard to make that determination: “am I just uncomfortable? Was that over the line?”

As a side note, I agree wholeheartedly with this, because it is a spectrum:

And then of course, a lot of people are averse to making a big deal out of an incident, even if it’s really clear that it’s over the line. Maybe this is a friend of a friend, and it’s easier to overlook that butt touch. Maybe I’m in the middle of the expo hall and I don’t want to make a scene. Maybe my first inclination is to be polite. Maybe I suspect that people won’t think it’s a big deal, or they’ll imply that I could have handled it better, and on and on.

So what’s it like? It’s intensely uncomfortable.  Maybe even shameful. I don’t know why it works that way, but it does.

Yeah. The anti-harassment policy is a good idea. It says, “if something happened, we’ll listen and we’ll do something about it”. That’s important.


What’s not harassment?

Harassment really is in the eye of the beholder. Even so, I’ve seen the term under-applied, and over-applied.

I really, really want people to feel like they can talk to someone, get something done, about a person who is harassing them.

I really, really don’t want people to start thinking that anything uncomfortable is by necessity harassment. It’s a fine line to walk. Here’s how I draw the line (though you may have a different line, and that’s fine):

Someone I don’t know well hugged me and I felt compelled to hug back. Nope, not harassment to me. Hugs are within the normal bounds of contact in my social groups, and I think I should figure out how to handle it better when I don’t want to hug.

Someone insisted on hugging me after I said “no hugs today” and “seriously, I’m not huggy”. Yeah, harassment.

Obviously this doesn’t cover all situations. It’s just a starting place to illustrate how I think about it.

Okay, that’s enough for today. I expect the conversation will go on, and it should. We’ve all got to figure this stuff out.


A Data Age proclamation

mac-glassesTwice in two days now, I’ve gotten in discussions with people about the state of data usage…the idea that we have absolutely massive amounts of data at our disposal – especially us, as if you’re reading this, you’re likely a DBA or at least an IT professional – but that people are not using data to its fullest extent. To use an overused word, companies, groups, and individuals are not leveraging data enough.

The Data Age

This most recent talk on the subject was spawned by Jorge Segarra (blog, Twitter), who posted an image from a book (“Signal”, by Stephen Few). The text said, in part:

“IT tools can at best assist us in performing work that we already understand. … The information age continues to exceed our grasp. At best, we live in the data age. We have made great strides in accumulating data. By comparison, we have made little progress in using data to inform better decisions.

(Bolding is mine, italics are the author’s.)

That hits the nail precisely on the head. One of the most egregious examples of this is the non-use of data in healthcare. Any data professional who spends five minutes thinking about the potential power of data in healthcare will get really excited, really fast. Universal doctor access to medical history! Alerts on drug interactions before they’re administered! Data mining for unusual trends in symptoms and diseases! Connect the medical dots, man, this is awesome! My fellow MCM and spouse Sean has a whole lot to say about why this sort of thing generally doesn’t happen in healthcare, so I won’t repeat it here. Suffice to say, the healthcare industry is not leveraging data.

This sort of thing is repeated in most industries across the board. Some financial firms might actually be ahead of the curve when it comes to getting intelligence out of data, I don’t know…but it would make sense. There’s money to be made immediately and directly by determining trends and patterns in the world of, well, money.  But in most other industries, what we’ve got is a long, slow march toward actual data intelligence.

(As a side note, this is why I really am pleased to see Business Intelligence exploding on the scene in the last few years. Companies should be excited about the possibilities. Go with godspeed, all you BI folks, to your new positions.)

Changing the world

So why am I talking about this today? Mostly because it’s on my mind.  And, because I’ve been thinking a lot about the problems associated with organizations with data management solutions (like SQL Server and all the attendant BI integration). The issues range quite a lot:

  • politics, which is always big fun
  • funding, which in truth is a matter of perception; a company will fund those things it views as important
  • a deep misunderstanding of the potential of data
  • a lack of understanding of the inherent roadblocks to data intelligence

We – meaning Sean and myself – aren’t BI guys. We are company owners, but we’re already leveraging the hell out of the data that we have. We’re not in a position to change the world in a single stroke, but we can do what we can in our small corner. And in our small corner, what we can affect most is that last bullet point: the roadblocks.

We’re doing two things: educating, and tool building.


First, we are educating.  We give sessions at technology conferences that include elements of data philosophy (wouldn’t that be a good 201 class? Someone sign me up…) that aren’t common in the business world. We record those sessions and put them online for free, and point more people back to them. The sessions are about technology, but we also get an approach across.

I’ll give you one specific example: administration is a huge roadblock to data intelligence. If the data isn’t quickly accessible (indexing, maintenance, configuration), or if it isn’t there (backups, HA/DR, security), then you’re not going to have much luck mining the stuff and tying it into other data.

Part of the problem with data admin culture (in both companies and in tools vendors) is the round-robining of servers. Data philosophy point 1, therefore, is the holistic enterprise. Any task that requires a DBA to hit 20, or 100, or 10,000 instances one by one (or by some other inelegant means) is a task that’s not going to get done.

A more thorough discussion would take more room than I want to use here, but anyone who has click-click-clicked through a vendor tool – SQL instance by SQL instance – has an idea of what I mean.


Second, we are building tools. Yeah, I just said that we’re building tools to change the data world, and I mean it quite literally.

(A side note on this: it’s old even to my ears to hear “our tool will change the game!” from a vendor. I know that some vendors really do believe their tool is a game changer, but I also know that too many others use the same words just because. But there are only so many words available to describe it when you’ve Gotten Excited and Made Something.)

A database administrator* has several essential job functions, and both ideology and the RDBMS itself get in the way of those jobs. Common security tasks and auditing is maddeningly complex. Maintenance is weak and default configurations are actually detrimental to an environment (who on this planet actually wants 10% file growth, I ask you??).

And Microsoft (and other vendors) have been trying, but they haven’t addressed the problems well. Each new solution forces a DBA to do that round-robin across all their servers, presents a pretty GUI that you have to stare at to get any use of, and most of all treats the DBA like an everyday end user.

You know why DBAs aren’t end users? Because they can do amazing things with collected data. But again, any tool that gathers data either hides it, or sticks it in XML and/or flat files. How infuriating is that?

We Proclaim …

I won’t give you the hard sell** on Minion Enterprise (or, “ME”). That’s not really the point of this particular tome. I want to start on a list of proclamations that, as it turns out, we have implemented into ME because they should be founding principles of any third-party data tool.

Here’s a start on these principles:

  • A data systems tool should make work easier across many instances, not just one instance.
  • Data should be in a usable format. Flat files aren’t usable to data professionals.
  • Data should be in a usable format, part 2: Administrative data – including security, hardware stats, trace information, etc – must be accessible to the DBA. In a usable format.
  • Any system that generates data that will not be needed in the long term, must clean up after its own damn self.
  • A solution meant to help the DBA in the execution of their job must not be a burden on SQL Server instances. (I’m looking at you, monitoring-software-that-has-a-huge-overhead-on-monitored-instances.)

This is just a start, after several weeks’ introspection on the Minion products and our own fledgling software company. There are more principles out there, already hiding in plain sight in our code.

Happy days,

*For those of you who don’t believe that the database administrator position will be around in N years: horsefeathers. Data systems aren’t, and will very likely never-ever-ever be, smart enough to take care of themselves entirely. To add to the weight of my “horsefeathers” argument, I say that at the 2015 PASS Summit I paneled with Allan Hirt, Denny Cherry, and Karen Lopez (emcee) on this exact topic, and there was not one iota of disagreement among the four of us. Though the job will continue to morph and grow, DBAs are here to stay.

**More information on Minion Enterprise: we’ve got introductory and topic videos up on YouTube, and of course product documentation and download at You can also join the MidnightDBA newsletter here.

Improved #MinionBackup and #MinionReindex – new versions!

We released Minion Backup 1.1 and Minion Reindex 1.2 this week! We’ve got a some great new features, and a number of bug fixes.

New features in brief: Minion Backup can now back up to NUL. Minion Reindex has improved error trapping and logging, and new statement prefix and suffix options!

minion backupMinion Backup 1.1

The one page MB Highlights PDF is a good place to start, if you haven’t laid hands on our backup solution yet. That’s just

New feature: You can now take NUL backups, so you can kick start your backup tuning scenario.  For more information, see the section titled “About: Backing up to NUL”in the official product documentation on

 Issues resolved:

  • Fixed mixed collation issues.
  • Fixed issue where Verify was being called regardless of whether there were files that needed verifying.
  • Data Waiter port wasn’t being configured correctly so there were circumstances where the data wasn’t being shipped to the other servers.
  • Greatly enhanced Data Waiter performance. Originally, if a server were down, the rows would be errored out and saved to try for the next execution.  Each row would have to timeout.  If the server stayed offline for an extended period you could accumulate a lot of error rows waiting to be pushed and since they all timed out, the job time began to increase exponentially.  Now, the server connection is tried once, and if the server is still down then all of the rows are instantly errored out.  Therefore, there is only one timeout incurred for each server that’s down, instead of one timeout for each row.  This greatly stabilizes your job times when you have sync servers that are offline.
  • Fixed an issue where the ‘Missing’ parameter wasn’t being handled properly in some circumstances.
  • Fixed issue where Master was discarding differential backups in simple mode.
  • Fixed issue where Master wasn’t displaying DBs in proper order. They were being run in the proper order, but the query that shows what ran wasn’t sorting.
  • Master SP wasn’t handling Daily schedules properly.
  • Reduce DNS lookups by using ‘.’ when connecting to the local box instead of the machine name which causes a DNS lookup and could overload a DNS server.
  • SQL Server 2008 R2 SP1 service consideration. The DMV sys.dm_server_services didn’t show up until R2 SP1.  The Master SP only checked for 10.5 when querying this DMV.  If a server is 10.5 under SP1, then this fails because the DMV isn’t there.  Now we check the full version number so this shouldn’t happen again.
  • Master SP not logging error when a schedule can’t be chosen.
  • Situation where differentials will be errored out if they don’t have a base backup. Now they’ll just be removed from the list.
  • HeaderOnly data not getting populated on 2014 CU1 and above. MS added 3 columns to the result set so we had to update for this.
  • Increased shrinkLog variable sizes to accommodate a large number of files.
  • Fixed international language issue with decimals.
  • Push to Minion error handling improved. There were some errors being generated that ended SP execution, but those errors weren’t being pushed to the Minion repository.

More resources:

Minion Reindex 1.2minion reindex-02

If you’re new to Minion Reindex, take a look at the one page MR Highlights PDF to get an idea of what we’ve done with a “simple little index maintenance routine”.

New features:

  • Error trapping and logging is improved. Minion Reindex is able to capture many more error situations now, and they all appear in the log table (Minion.IndexMaintLog).
  • Statement Prefix – All of the Settings tables (Minion.IndexSettingsDB, Minion.IndexSettingsTable) now have a StmtPrefix column. See the documentation on for details. Note: To ensure that your statements run properly, you must end the code in this column with a semicolon.
  • Statement Suffix – All of the Settings tables (Minion.IndexSettingsDB, Minion.IndexSettingsTable) now have a StmtSuffix column.  See the documentation on for details. Note: To ensure that your statements run properly, you must end the code in this column with a semicolon.

Issues resolved:

  • Fix: Minion Reindex failed when running on BIN collation.
  • Fix: Help didn’t install if Minion Backup was installed.
  • Fix: Minion Reindex didn’t handle XML and reorganize properly.
  • Fix: ONLINE/OFFLINE modes were not being handled properly.
  • Fix: XML indexes were put into ONLINE mode instead of OFFLINE mode.
  • Fix: Situation where indexes could be processed more than once.
  • Update: Increased Status column in log tables to varchar(max).
  • Fix: Status variable in stored procedures had different sizes.
  • Fix: Wrong syntax created for Wait_at_low_priority option.
  • Fix: Reports that offline indexes were failing when it’s set to online instead of doing it offline.

More resources:

Real news, real tech.