You almost had me

funkknight | Generic | Sunday, June 29th, 2008

Dear Microsoft,

You almost had me. You lost me long ago and almost had me back, well at least in a “I won’t bad mouth you at every chance I get” kind of way.

You see I was installing a new product at $WORK.  It was a piece of software designed to run off of your Microsoft SQL Server (MSSQL) product.  By all intents and purposes this install should of taken 15 minutes.  However after running into one of your idiosyncrasies, I have to wait to do this install at a later time, because it’s now going to take at least an hour or more to install this software.

What’s the problem?  Well you’ve built MSSQL to allow for different sorting options. You know, the infamous “collation” setting during install time.  I’ve been bitten by “collation” issues in the past.  If not set right during setup you face the risk of doing a complete reinstall just so that one can change that option.  When I installed MSSQL 2005 I did some quick checking to avoid being bit again.  And much to my delight I found that at least in MSSQL 2005 you can change the collation option per database despite the default setting set during installation.

So I did what (just about) any other *NIX guy would do.  I set the default collation to case-sensitive.

Why, you ask?  Well a few things.

Like mentioned I am a *NIX guy, Linux to be exact.  And in the *NIX world, things are case-sensitive.  Most of my environment runs *NIX and since we need to have a certain level of interoperability I set the default option that should work best in my environment.

Also I started in the computing world as a programmer.  To me HELLO.WORLD and hello.word are two different things.  It’s how I think, it’s how most of my environment thinks, so I set the option that should work best in my environment.

Then I go to install the software.   It failed.  Lots o fail.   I tried running the SQL script that is part of the $SOFTWARE_PKG install process.  It failed with a bunch of “Must declare the scalar variable..” messages.  So immediately I set out to blame the vendor of $SOFTWARE_PKG.  How could they write something that out of the box doesn’t work? I thought.  And here I was enjoying my little adventure with MSSQL 2005 so far.  Everything was just working until I tried to run this vendor’s script.

So I head of to google to find out how to fix this shitty company’s script.  And much to my dismay I found out how to fix my problem. “Reinstall MSSQL and set the default collation to case-insensitive”.   Reason?  Because although the database is set to case-insensitive, none of the default system databases are.  And the MSSQL optimizer runs with the default collation setting, not the one of the database it’s currently running in.

Now, granted, this is not totally your fault Microsoft.  Part of the blame is on the vendor.  But then again, it’s not really.

Why?  Because your defaults are so loose, it allows for bad coding style.  And when ones adds any type of restrictions, good or bad, applications coded against your defaults can and will fail.  Did I ever tell you the story of how I solved a huge performance issues with a web application? Did it by disabling your IE scripting practices (READ: installed firefox and fixed the resulting code errors).

Let’s not even mention that it’s a horrid horrid thing that you give people the option to change the default collation, but if they change it then you pretty much can’t run a large portion of third party software out there (see part about your default options).

You almost had me back.  Up until I realized that changing a setting requires me to reinstall MSSQL 2005 I was holding you in a better light.  The interface with MSSQL was better than it was in the past and I was looking forward to seeing what other things you put into it that I could play with.  Now, I realize it was a fools dream to think that you’ve changed.

- Funk

Powered by WordPress | Theme by Roy Tanck