Ten Commandments of MS SQL Database Administration

  1. Thou shall use no other databases before MS SQL.
  2. Thou shall not attempt to print thy database.
  3. Thou shall not assume thy databases are not corrupt.
  4. Thou shall perform DBCC and backups on the 7th day.
  5. Honor the query plan and statistics and keep it wholly in your mind at all times.
  6. Thou Shall not DELETE without a WHERE clause.
  7. Thou shall not commit thy transaction without isolation.
  8. Thou shall not unnecessarily transact with read isolation level uncommitted.
  9. Thou shall not say you have database security when you don’t know.
  10. Thou shall not transgress upon production bandwidth with maintenance task operations.

tile – the World’s Best Lost and FIND  

Scott Ellis is a technologist,  an author, blogger, kalimbist, micro-blogger,  and a photographer, in no particular order.  Flawlessly forgetful, he is an avid tile user.  For a day job, Scott works as the infrastructure architect for the  e-discovery software company, kCura.

by Scott R. Ellis

I’ve lamented for years that I can’t just type in : Find: sneakers.shoes into my computer and have it tell me where my sneakers are.  One time, after I had been coding for nearly 20 hours, I actually tried to grab my coffee cup with the mouse arrow.  Yeah, right?

I lose my stuff in my house.  Every day, I spend a minute here, a minute there, just looking for things like my keys. Mostly, it’s my shoes. Sometimes, my keys are in my shoes.  In the daily battle between my left brain and right brain, organization is typically the first victim

Now, along comes tile. I’ve been seeing a lot of buzz, and with my inevitable forgetfulness and curiosity, I found their offering intriguing.  I decided to make a purchase, and give it a chance.

tile is a nifty little tag that I stick on just about anything to help me keep track of stuff.  It’s about 1 inch square by a quarter inch thick and I have them on everything from my kalimba to my camera to my shoes.  I even have one in each car.  I have placed another order for 8 more. The truth of the matter is this: If it were feasible, I would integrate this platform into everything.

Here are just a few, everyday uses for tile, most of which I will have cause to use:

  • How to find your bicycle in a row of 100 other bicycles.
  • locate your coat in a coat room or in a pile of coats at a party.
  • Find your significant other at a party (hopefully not in the coat room…)
  • Find your car in a huge parking lot.
  • How to find your kids’ missing gloves in the school lost and found.   (all teachers and school administrators should have theTileApp!!!)
  • The kids (Have you got them all? you lovebird you!)
  • The luggage from the hotel room
  • The luggage on the carousel at the airport
  • Finding your TAPE MEASURE!
  • Dog training clicker

ok, I’ll stop on that last one.  You know and I know that I could go on all day long like this — 10,000 uses for tiles that have almost nothing to do with someone finding your lost [insert your item here] and saving the day.

What’s was clear to me, the first time I ever saw tile, is that tile is a search engine for the physical world. At long last, I no longer have to keep track of ANYTHING.  Well, anything that I can affix a tile to…

“WAIT!”  You’re shouting (please stop shouting at me).  you say, “I don’t want to stick this little white tag on everything I own! My shoes?  Are you KIDDING Me??!”  (really, stop yelling at me!).

Ok, check out this video.  Acrylic paint is some seriously amazing stuff.  It dries really really fast.  The label on the paint I used cites that it cures in about 21 days.  “Cures” is just another way of saying, “It is really, really dry now.  Too late to change your mind!” Bonus: you can mix your own colors, too, and it’s super easy.


I just painted mine yesterday, and I plan to wait 21 days (I know! more waiting, right? Patience, grasshopper).  Once the paint has cured, I’ll put it on my key ring.  We’ll have an answer in a couple more months how it is going.  How long will it last?

Speaking of the future, what’s in store for the future of tile?  I have no idea what they will actually do, but here are some suggestions (I hope they read this blog!!!!):

  • More clever designs, preferably by me!
  • Smaller size, different shapes.  Embed tile in everything!!
  • tile way stations – put little micro towers in busy locations, like train stations and airports that will only store the location of LOST items that walk by.
  • tile relay points – I want to have a master tile that I can stick on a wall in every room in my house that has more juice, and will communicate with the little guys.
  • Triangulation – two or more tiles and a cell phone should be able to pinpoint the precise location of a tile.  .
  • v.futuristic future : you don’t even think about it anymore.  Everything comes pre-tiled and registered to you when you buy it at the store.  It just shows up in your app. Every surface in your house is a charging pad – dropping your clothes on the floor recharges its integrated tile.

Clearly,. my impeccable forgetfulness is because I daydream too much. Yes, building a future like this will take A LOT of hard work.  Startups are NOT easy and they rely heavily on user feedback.  I am more than ok with this.  Together, we will grow, and build a future of tile ubiquity. Grab your tile, grab your inner child, and paint.  You can’t mess this up – it dries really fast and you just paint over your mistakes!

Measuring Efficiency of DBCC CheckDB with Computed Columns

by Scott Ellis and Erik Darling

Published on: Nov 28, 2014 @ 11:16

VERSION of Microsoft SQL : Microsoft SQL Server 2008 R2 (SP3) – 10.50.6000.34


Recently we [a software vendor] added some persisted, computed columns to our software database, which is MS SQL 2008 and 2012.  We (my friend Erik and I – this is not an officially sanctioned test) wanted to know how much longer DBCC checkDB tests would take, and if we could put a percentage on it.  See the last paragraph for the answer if you want to skip to the good part and avoid reading all these accursed words.

Here are the basics of the computed columns.  An index is subsequently created on each computed column, each index contains 3 keys. The computed column is the leading key in all three of them.

Here is the computation in the table definition on each computed column:

 [redactedComputedColumnName]  AS (CONVERT([binary](20),hashbytes('SHA1',case when isnull([hashedField],'')='' THEN CONVERT([nvarchar](30),[ID],0) ELSE upper('S'+rtrim([hashedField])) end),0)) PERSISTED NOT NULL

The Rationale

Why did we want to do this test: This test seeks to identify the percent difference in duration of a DBCC check with and without computed columns.  We sought to determine if we could create a percentage difference based on the size of the single, very large table that houses the computed columns, and then apply that as a multiplier across thousands of databases.

Previously, these columns were populated by a trigger, so adding computed columns has increased the duration of DBCC.  We did the right thing and removed the trigger because it was a never-ending source of trauma when inserting massive amounts of data, which is a common occurrence in this software.

The Experiment

To begin, we restored a 5 GB database* that is representative of the types of databases about which many people will be curious. We ran this test against a database attached to SQL on an 8 core, 50 GB RAM SQL Server 2008 R2.  The table we examined is 3.398 GB.  The database server runs on an Intel Xeon E5 2.6 GHz virtual machine. Here is the restore code we used, if you are into this sort of thing:

 FROM DISK = '\\Backups_SQL\RELO001\ERIK_COMP_TEST\FULL\v.NoComputedCols.bak'
Restore Time: 670553 pages in 115.857 seconds (45.216 MB/sec)
Size of BAK file: 1.32GB (compressed backup)

We used BUFFERCOUNT of 500 and a MAXTRANSFERSIZE of 4 MB because we wanted to beat the shit out of our IO. Use this code (really, anything you find here) at your own peril. The word “STATS” allows you to see how far long the restore has progressed.

The we set:

We wanted to know how long it would take, both real world and CPU time.
For monitoring, we opened a new window to run sp_whoisactive to see what’s happening.  We even piped the output of Adam Machanic’s sp_whoIsActive script to a table for further evaluation and verification as needed.
Then we started the DBCC CheckDB. The following Traceflags were active:
--DBCC TRACEON (2549, -1)
--DBCC TRACEON (2562, -1)
--DBCC TRACEON (1118, -1)

You can look these up at:
http://blogs.msdn.com/b/saponsqlserver/archive/2011/12/22/faster-dbcc-checkdb-released-in-sql-2008-r2-sp1-traceflag-2562-amp-2549.aspx  and  http://sqlperformance.com/2012/11/io-subsystem/minimize-impact-of-checkdb

Baseline 1: DBCC against a 5 GB, no Computed Columns Database

We need to know how long a DBCC check will take on a “normal” database. To get to a version of the software that has computed columns, we upgraded from an earlier version.  First we did the command against a previous version of the database:

 /* DBCC command for V.noComputedCols database */
 /* DBCC command for 7.5 database */
/* Run DBCC check without indexes */
 Duration: 103985 ms.
 CPU time: 71663 ms.

Baseline 2: DBCC against a 5 GB,  database with computed columns disabled.

The previous database was upgraded to a version with computed columns. To establish foundation, we took a baseline with Computed columns disabled.  This was to look for possible differences introduced by the upgrade.

/* Disable indexes on computed columns */

Ran a DBCC command:

 /* DBCC command for disabled Computed Columns database */
 /* Run DBCC check without indexes */


Duration: 33003 ms.
CPU time: 70056 ms.

Experiment 1: DBCC with Computed columns on against a 5 GB database

To get the database back to where it needs to be, we rebuild the computed column indexes.

/* Rebuild indexes */
ALTER INDEX [IX_redacted_1] ON [EDDSDBO].[Document] REBUILD
ALTER INDEX [IX_redacted_2] ON [EDDSDBO].[Document] REBUILD
ALTER INDEX [IX_redacted_3] ON [EDDSDBO].[Document] REBUILD

Then run the DBCC

 /* DBCC command for enabled Computed Columns database */
Duration: 147264 ms.
CPU time: 81358 ms.

Baseline 3 : 430 GB database with disabled computed column indexes.

Next, to establish our multiplier, we ran against a 428.48 GB Database.  Having already established that the CheckDB time ran with negligible differences, we ran it again with the same three computed columns, but with them disabled.

The table with the computed columns sported a hefty 269.418 gigabytes.

/* Disable indexes on computed columns */
ALTER INDEX [IX_redacted_1] ON [redacted].[EDDSDBO].[Document] DISABLE
ALTER INDEX [IX_redacted_2] ON [redacted].[EDDSDBO].[Document] DISABLE
ALTER INDEX [IX_redacted_3] ON [redacted].[EDDSDBO].[Document] DISABLE
/* Run DBCC */
/* Indexes Disabled

SQL Server Execution Times:

Duration: 9705874 ms.
CPU Time: 4391135 ms.
This (9705874 ms) is 2.69 hours (161.7 minutes)

 /* Rebuild indexes */
Index Rebuild time: 00:01:59.003  (about 2 minutes)

Experiment 2: Run CheckDB on large, production-grade data set with enabled computed column indexes

/* Run DBCC */
/* DBCC command for 8.2 database */

SQL Server Execution Times:

Duration: 10846102 ms.
CPU time: 4689156 ms.


To fully understand what is happening during a DBCC CheckDB of database computed columns, check out this blog post from Paul Randall.

Paul’s post does indicate a much greater performance hit than what we saw. This could be due to some confluence of the calculation involved, the number of them, the size of the data, the index, trace flags in use, and the underlying hardware.  Paul suggests that dropping and re-enabling the indexes is not a “palatable solution.” I submitted an inquiry to him about this, asking why it is unpalatable (which quite literally means not very tasty), and he responded “Because someone might have indexes that take a long time to rebuild, might not have online, might be enforcing a constraint…”

This got me to thinking that, since with this particular database software, there is no constraint, that many people running this product have Enterprise, and many administrators have offloaded the DBCC process to an extraneous SQL server, disabling the indexes may be an option.  Certainly, in an offloaded situation, disabling and leaving them disabled may leave only a mildly unpalatable aftertaste.

For those of you who are doing consistency checking in production, the only real issue that you can experience is if users actually attempt to access and use the database while the check is in progress and the indexes are disabled. If your column has great potential to be used a lot, then we don’t recommend a production disabling of this index.

Also realize that if this index is corrupted in your production system, you run the risk of a user running across it and then you have to rebuild it during production hours. The risk is low, but it is there.

Many infrastructure admins that run corruption checks on very large** databases run them in an offloaded way.  They restore the databases to cheaper hardware and let the checks take a day or two to run.  For those people, disabling these indexes is a perfectly viable solution.  If even the remote capacity exists that someone may hit those indexes WHILE they are dropped and WHILE you are doing a DBCC check DON’T DO IT. This not a viable option for a production system and if you are caught doing it by this software infrastructure architect, I will scold you 🙂

Ultimately, whether you have Enterprise or not is irrelevant – you do far more damage to query capabilities for the one or two hours that the indexes are offline than you do for the two minutes it takes to rebuild them.   Moral of the story :

If you are offloading DBCC and want it to go faster, automate a computed column index disable.  If not, if you are performing DBCC in prod, A) Stop doing that B) leave these indexes enabled.

The percent performance improvement, for these particular databases,  seems to be in the neighborhood of XX%- YY%.


*No, you can not have, ever, no matter how often you ask me for it

** By very large I mean any size database that causes you stress!



Missing African Grey Parrot – Evergreen Park Illinois

parrotHey – as a Chicago Bird Collision Monitor volunteer, I received this message today – please RT and post to FB too!!! It is cold out, and this bird will be scared and alone !

Missing African Grey Parrot
I’m forwarding this kind of heart-breaking message because CBCM might hear something about this bird that escaped.  The person who had it as a pet is a U of C grad student.  The fact he has put up a huge reward suggests it really meant something to him.

———- Forwarded message

Hi all,

A good friend of Ben and mine lost his African Grey parrot (see below). If you get a chance could you pass on the information to any local birding societies, collision monitors, etc. that you have contact information for? The parrot was like a child to him and his partner and the loss of the parrot has been utterly tragic for them.
Many thanks,
Begin forwarded message:
I apologize for sending this to the entire listserve, but I really could use your help.  Yesterday I returned from SVP in Berlin to the news that my 3-year old, African Grey parrot, named Earl, had escaped from the woman who was boarding him on November 1st (eleven days ago).  She had been lying to me the entire time that he was fine, “so that it wouldn’t ruin my trip.”  I am distraught, and I am desperate, because he could be anywhere on the south-side of Chicago by now (he is fully flighted).  He was last seen in Evergreen Park, IL.  My only hope is that he flew to somebody for help, before a hawk or the cold got him.
Please, if there is anyone you know that is a bird-watcher or who lives in the vicinity of Evergreen Park, please ask them to keep an eye open for Earl.  If you know anybody in any ornithological societies as well, please let them know.  Any sightings of a strange grey bird, with a bright red tail, a little bit larger in size than a pigeon, is a good sighting.  I can’t do this alone and it all feels so hopeless right now.
My sincerest gratitude,

How to Catch a Chicken and Leverage its Snark Containment Properties

Recently I had a conversation with a friend about her snark. I keep my snarks in a pantry, in my backyard, underneath the tree where I hang my cheapshots. She was considering getting rid of her snark, and finally we arrived upon the decision that I would send her five, fresh and crinkly snarks.  Snarks, being quite snarky, depend upon chickens and thrive best in an environment that is replete with chickens.  So, of course, i can’t send anyone five new snarks unless they have a chicken for me to put them in.

My usual barter for a small chicken filled with fresh, newly minted, and incredibly jagged snarks, then, is exactly one self-addressed, stamped chicken.  iizeeuna, an apparent foreigner to the ways of snarks and chickens, perhaps mired down in his (or her? I really don’t know, it was twitter for frabjulous’ sake

That was a stupid sentence, so I stopped writing it.  No.  You didn’t misread it.  It ended without a completed thought.

I suppose that therein lay the secret to catching chickens. One must be nimble of mind, quick to abandon poor choices, and loathe to take the bother to cleanup after oneself – if one wishes to do battle with chickens.

Perhaps, let us first begin with the definition:  A chicken is a dreadful, dangerous beast and is defined as the only proper container in which a snark may be transported.  Mind you, snarks are not CREATED in chickens, they are only merely stored inside of them (they strike the chicken on the outside, and sink in slowly over time).  It is the existence of the chickens that instantiates the snarks.  For it is so dense in matter and form, that the bright shapely gestaltedness of a snark can only be preserved forever deeply within it.

Further more, neither the USPS nor the FedEx will agree to transport snarks in any other container.  They are far too toxic if left to float and meander about and be left to their own devices.

The etymology of the word “chicken” has its roots in ancient egyption.  This was their word for the country “Turkey” and is the sourse of much confusion in children regarding the separate species.

Further to that, the word combines many words to make the one. It is a portmanteau of the word “Chickadee” and “Monster that hath twice the fury of a woman scorned of which hell hath no fury + a 17 witch coven” the latter being a very long word that is broken up by spaces in order to make it more legible and is also, coincidentally, a transliteration from ancient swahili for “Bad ass dude with a big trident”.

The source of this transliteration in the ancient texts is apparent : one must have a big, big giant, three pronged TRIDENT (lord help you if you get the 3.2 pronged kind!).  You will use the trident to catch the mighty chicken, for it is a cowardly, yet formidable beast and a worthy foe of anyone in a loin cloth.  In fact,it is only permitted to hunt chickens while wearing a loin cloth.  Further outerwear will render your efforts ineffective.  If one is female, then one must pursue the chicken topless (I apologize if this offends, I do not make these rules).

To attract a chicken. one must first have incredibly crinkly and jagged new snarks.  If you don’t have any, perchance visit your neighbor, snark cup in hand, and beg to please borrow a fresh new snark. Be sure to dress in a manner of a Lord or a Lady, for the common man always has fresh snarks a plenty to lend to the aristocracy.

Now, take your fresh snark, and walk about the streets of your town.  Avoid the shadowy places.  Go to the light, to the crowds, where people are gathering and having fun.  Twirl your snark about your fingers, and laugh wittily.  All the while, cast about to the periphery with your eyes.  Halt your snark mid-twirl…there! you see the chicken.  It’s eyes are cast low and it may be whispering to another chicken (they invariably travel in pairs!).

Approach your quarry with your snark in hand, held high above your head and, as the chicken is distracted (nay, paralyzed!) by the awesomeness of your snark, drive your trident down and over the wretched creatures neck.

Take great care not to kill it!! Killing chickens is intolerable behavior.  After all, they have caused no harm to you, nor can they!  They are far, far scarier to behold than to actually fight.  Once you have your chicken captured, gently and carefully cram,shove, pound your fresh snark into its mouth. Watch as the snark migrates from the chickens mouth into its brain. Once the snark reaches the fowl creatures brain, you may suddenly be amazed (stunned speechless!) that the chicken actually begins to shrink.   Do not react to this!  if you react in surprise, the snark will burst free from the creatures maw, utterly wasted, and the chicken will expand to be TWICE its previous size and more frightening than ever!

Assuming you haven’t fucked this part up, place the proper amount of postage on the chicken, address it to yourself, place it in an envelope addressed to me, and when i receive it I shall insert FIVE – YES FIVE! – shiny new snarks into various cavities of the chicken and then drop it back in the box for you.

Now that an understanding of the beast has been fully cultivated, you may begin your pursuit.

At the end of it all, once you have received your chicken from me, you may notice that the chicken has MORE than FIVE snarks.  It may have become “snarkified” and begin producing snarks for you, all on its own!

This process is called transnarkification, a process that is both likely and probable.  Watch with amazement as the chicken shall emerge from the shadows and abandon its wily, sneaky, terrrorific ways.  It shall embrace you, and your snarks shall pass through it with ease, for it will no longer be a chicken! It will be a man!   Or a woman! Whatever.  Could be a puppy too.

(WARNING: not all chickens transnarkify with just five snarks.  Anything less than the use of the highest quality snarks may result in a disappointing outcome.  Use of a virtual trident spear is highly recommended as most states frown upon the actual pinning down of chickens with actual, large, multipronged weapons.)

Six Aspects of Measuring the Quality of Software

This is a post I wrote a long time ago when I first read “Espresso Coffee, The Science of Quality.”  I am finally getting around to posting it here because I just now noticed I never posted it here, it was just a thing I passed around on the Internet.

Lately, I have found myself curious about what quality means, and how I can better control it in what I do. As I researched quality, there grew in me an even greater confusion about quality, and what it means, how it is interpreted and understood,  and the implementation of it. That is, whether or not I can always  hold to the same standard of promised quality as the highest uncommon factor.

This pertains to working with clients, with other departments, with myself, and the expectations people have had regarding the deliverable, and the effective quality of the interaction they have with my output.

Value is in the eye of the beholder, quality is perceived. There is an interesting story I once read about an appraiser who was asked to appraise two antique secretaries which appeared to be identical. He was told that one of them was a forgery. He appraised them both at the same value, stating that he could not detect the forgery. When the maker revealed which one was the fake, the appraiser inquired as to how he had made it so perfectly. The cabinet maker said that he found several 200 year old pieces that were damaged and used the wood from them. He used  adhesives which he made himself from raw materials accurate to the period and heated them to accelerate the aging.  He built his own circular saw to cut the planks to size using an antique saw blade, and he discovered a process whereby he could age the cuts perfectly (he wrapped in layers of burlap and buried them in a swamp for 20 years). It took him 30 years to build the secretary, and was his life’s work.  Upon hearing this, the appraiser certified the piece as an original. He said that, for all intents and purposes, the piece was in fact 200 years old.

Software has three perceptible areas of quality…(three that I am going to talk about)

  1. The quality of the product.
  2. The quality of our responses to our clients which includes traits that are  perceptive, substantive and literal.
  3. The quality of service the product delivers.

A software company, as a whole, can be said to be in the business of producing quality.  For a software firm involved in the litigation industry, for example, total quality delivered is the offering of products and services.  This cascades outward and downward from their internal total quality approach in their service vertical, through to their customers, out to the industries they serve (their corporate and private clients), to the courts, and ultimately to the consumers who buy the products and services offered by the litigants. Essentially, a software firm in the legal industry provides a core utility that services the national infrastructure.

As such, the requirement for quality is not only essential, it is fundamental to national interests. When we neglect even one small part of the quality of our processes, it is not only detrimental to our business, but it has a much wider, and deeper impact than perhaps many realize (or care to think about).

From the point of view of a customer, then, it becomes necessary that we really think about what quality means, and how it can be measured.  We need to think about the  different states of quality, and how to develop them progressively.  Customer satisfaction, after all, is a dividend of perceived quality and expected quality. If the expected quality is high, and the perceived quality is low, the satisfaction of the customer suffers. If the perception of quality is high, and the expected quality is low, then we have exceeded expectations. Exceeding expectations is not a quality. If, in the end, the expectation is that quality will be very high, then it can’t be very well higher than itself.  In the end, “quality” is the measurement of the product against the expectation of our clients, ourselves, and each other. It measures how well we meet the expectation. Such is the expectation that we have, that it is one that cannot be exceeded.

The expectation is this – that we will do everything within our means to achieve  as near to real time excellence as is humanly possible without risking life, limb, personal society, damaging our health, or creating permanent insanity. What this means is that we care for our families, we care for our health, and we care for our clients with every available ounce of our being. Our measurement of our ability to do this then becomes not a measurement of gradient expectation, but rather one of quality, which in our work means time to resolution. Our mean time to resolution, across the board, must be faster than everyone else’s. To be the leader, and to stay out in front (or to get there), you must deliver this level of speed on a continuous basis.  The word “quality,” then, is not an aspect in and of itself.  It is a unit of measurement, not unlike an inch on a ruler stick.  To say something is “quality” is not unlike saying something is “inches” when asked “how long is that stick?”

How we use quality as a tool of measurement, then, both internally and externally, become a necessary area of focus.

Firstly, we look at the different states of quality. For this exercise, I’ve picked six different qualitative attributes.

1. Promised quality. Briefly stated, this is the expectation that a person has of a particular product delivered by a particular entity.  Externally, customers have this about the kCura product, and internally this manifests as an internal/external unified attribute, with cause and effect vectors that must be appreciated.

Externally, the promise of quality is high, both in the product and in the service. Since the two are so closely intertwined, that is, the service delivered is part and parcel of the software, I am referring to both collectively as “the service.”  There are some areas of the product where the quality of it is dissonant with the promise, but these are likely caused more by technological and human limitations than by willful oversight.

At times, this causes customers to pigeonhole the product as one that delivers a few, very strong, core competencies, but falls short on other offerings.  This requires kCura clients to do things like hire DBA’s, outsource certain aspects of IT, and purchase other software bundles which they then integrate with the Product.

Internally, at many organizations, there are few promises of quality (but the expectation and implied promise is there, it just isn’t well defined, cross departmentally). When you don’t promise anything, you don’t have to worry about not being able to execute on it.  Where the promise of quality does exist, it does not always mesh well with other, external facing promises.

At times, this causes a disconnect when those who face the customers must interact with those who typically don’t. It may even cause a blatant contradiction that results in conflict.

2. Industry (expected) quality.
These are the standards that govern the very minimum expectation that must be met. Consumers that use discovery products are accustomed to certain features working in a certain way, and a certain guarantee of accuracy. Companies that create food products, likewise, must ensure certain standards are met.  Across the board, in areas of comparability, a quality focused company typically meets or exceeds expectations, with a corrective “roadmap” in place to address shortcomings. Ultimately, there are many, many standards in the industry. Some of them are driven by legal (forensic) requirements, others are aesthetic or purely usability driven.

3. Effective Quality
These are the actual objective and subjective metrics of an organization. What are the promises made by the product, and how does it hold up against them?  The items that comprise your “effective quality” are real, tangible metrics that can be measured, discussed and improved.  Examples of these things include usability, scalability, processing speed, error handling, recovery, precision and accuracy, traceability, and most importantly, reliability.

4. Relative experiential quality
This quality refers to the differential experience created by the actual implementation of the product by the purchaser.  A more experienced team that delivers the product, on better equipment, will deliver a user experience that can have substantially varying degrees of experiential quality.
relative experiential quality = expected quality / experienced quality

5. Perceived quality
Satisfaction = (perceived quality / expected quality) * relative quality

6.  Potential quality

The degree to which a product or service can be measurably improved. This is measured and communicated by an organization’s roadmap, and should be readily available to it’s consumers.


All six of these are qualities that are assessed by consumers of a product one by one.  To be considered a quality, that is, a quantifiable entity that can be measured, each quality must map to a tangible, perceivable action that can be consumed, viewed, experienced, or understood to have intensity, duration, and frequency.  To whatever extent possible, then, quality is something that is measured against the whole.

Without the whole, without an accounting of the sum of all parts of a thing, it follows then that a measurement of quality is purely a subjective, out of context measurement that is rendered meaningless against the overall impact and perception of the qualities of a product.  Those that actually interface with the product or service in its entirety are the best at explaining its level of quality.   To measure quality requires, then, a broad range of measurements that must be painstakingly derived and executed against the subject as a whole. This is no small task, to be certain, but one that will reward the quality analyst with a rich array of tools that can be used to improve the product and services offered.



Why self-schooling is the ultimate, and only true school

There is no such thing as public schooling, private schooling, institutionalized schooling, or home-schooling. These are all just artificial realities that we wrap around our children, and serve only as vehicles for blame when we fail to teach our children what the true meaning of school is. There is only self-schooling. Everything I’ve learned that I use in life now I learned because I wanted to learn it. At the core of all my knowledge, at its center, lay just one person: Me.

The self has to take the responsibility to “school” its intellect. Once one accepts this responsibility, there is no obstacle to great, and no atmosphere to restrictive. A child who sits through all his years of institutionalized education, who challenges every thought, every notion, every aspect of it all, this is the child who can learn anywhere. Teach a child to question, and demand and search for answers, and to scientifically test those answers, and you teach a child to learn.

If a child won’t learn this, or refuses to learn it, then all you can do is read to him and wait for him to catch on, and hopefully become a productive member of society. As a parent, teaching my children to question is my responsibility.

Rules for dating (for women)

Scott’s Theory of Relationship and Social Imminence

1. Never call more often than you see in person

This is a no brainer and it is also a great way to filter out the crap people from the good people. Desperate people call a lot.

2. If your text message goes unanswered, you may only send one additional text per year that you have “known” someone.  By “known”, I mean in the carnal sense.

In  other words, if you have been “knowing” someone for 10 years, firing off ten unanswered texts in a row is perfectly acceptable.  Annoying as hell, but acceptable.

3. If he gave you his phone number, delete it after the first call. You can get it again if he calls back. There is no excuse to call twice with no face-to-face in-between.

If he looks in the mirror more than he looks at you…Does this really need an explanation? Clearly a dude that commandeers his rearview mirror while he drives needs to be thrown out of the car (stopping first is optional). As for men that use product and pluck their eyebrows? Or use eyeliner? What the fuck!? I suppose he will want cuddle time, too, right before he runs off with your gay hair dresser.

5. You know everything that he needs to know about being in a relationship with you. Don’t let him tell you differently. If he ever pulls the “We need to talk…” line, walk away.  Don’t hesitate.  Just turn, and walk away.

6. When men do it, they call it “stalking.” When women do it, they call it “marriage.”

The best stalkers stalk their prey silently, from afar, and give up if it is too elusive. Their prey never even know they were stalked.  Ever.

7. There is no problem that a blowjob can’t fix—except a bad blowjob.

8. If something breaks, he’d better get out the tool box. He doesn’t have one? Run. Away. He’d better know how to fix broken things and move heavy objects or he will become the butt of your every joke and you will fuck the pool boy. At least he knows how to handle his pole! After all, if he can’t work a screwdriver, he probably can’t work his built in tools either. This is especially true for men who are fabulously “successful” and have great, white collar jobs. They might be over-compensating.

9. Women fake orgasms, men fake feelings.
Like it or not, deny it, try to defy it, resist it, argue against it, don’t accept it, but when the time comes, you will come to the light and know the truth. Generally, men just don’t have it in them to care about anything for longer than it takes them to kill it and eat it or to try and stick their dicks in it, which is about 15 minutes. Male emotions are pre-programmed battle responses. They are a form of weaponry. Ask a man what he is feeling and immediately he begins to look for the door. Love is not a “feeling”– it is a verb (a wise woman told me this). Love is totally different and is real.

10. At the first sign of trouble, get out.

11. Never make plans further ahead than you’ve known each other.
That is the simple rule for traditional dates, such as going to a movie, going to a party (mutual friends), a concert, etc. When family is involved, it gets complex. Suffice it to say, making plans to meet family members should be weighted by time in relationship and the closeness of the family member (only meet the parents as a last resort!).

Appendix – social media
1. facebook is for friends only, and permanent relationships. End of story. If you decide to begin dating someone that you know through facebook, the best thing you can do for him and you is unfriend him. It would be like friending parents of students. It’s just a bad idea.

NOTE: This guide is based entirely on the experiences of the author and anecdotal evidence. No formal studies have taken place. Nor will they. Now go out there, and “have fun”. Studies have shown that people that fun more are happier and that an increase in fun activity by people who are fun would actually lead to a decrease in the incidences of fun transmitted diseases (always fun responsibly, use a fundom!).

*no actual science of any sort has been cited, quoted, or even ever read by the author of this article, who also happens to believe that oral sex is the solution to all relationship problems in the world today.

How to Care for a Hedgehog Named Sodium

I have a hedgehog.  I have had her for about 3 months. She is an albino.  This means that her body simply does not produce pigment, as opposed to leucism, which is like albinism, only it produces pigment, but lacks the receptors to retain it.  Sodium, much like the element, is very nearly white.

NOTE:  I am not an expert on hedgehogs. I just have one and it seems pretty healthy, so people sometimes ask me about her.   If you see something in here that is factually incorrect, please feel free to let me know.
Why did we get a hedgehog? I’ve always wanted one, and it was a happy compromise for my son and I. He wanted a tiger salamander. Yuck.
Hedgehogs are Mammals. They are members of the subfamily Erinaceomorpha. There are seventeen species of hedgehog in five genera, found through parts of Europe, Asia, Africa and New Zealand (by introduction).
You can find hedgehogs for sale at reptile expos and probably some pet stores too.  Reptile expos are held  all over the place, there are usually several a month in the Chicago area. You may also find them at bird expos.  If you google “bird expo” you will find it. Let me know if you don’t.
The expo  we attended took place in Wheaton, cost about $10 to get in, and was held at a county fair grounds I think. They  had several hedgehog dealers hawking their prickly pets for $100 – $150.
I seem to recall that the seller told us the female hedgehogs were nicer than the males, but you can just google that and find out if it’s true or not.  check with each vendor, and see who has the softest, nicest hedgehog.  The younger hedgehogs will have softer spines anyway, but my understanding is that, through selective breeding, some fancier ones have softer spines, even as adults.
So, you bought a hedgehog
In the beginning, owning a hedgehog was a challenge. it was difficult for a few reasons, both care and owner related. Our first hedgehog, named Yttrium, died very young, and we only had her for a week. It was very sad, because she was very nice and enjoyed being held and was very comfortable with people.
At any rate, what our experience with Yttrium taught us is that a personable, friendly hedgehog can be a very engaging pet. We aren’t certain we know why Yttrium died, we fed her and she ate and played in her cage, and drank from her bottle, but one day she just became listless and unresponsive and passed away shortly after that; we thought she had gone into hibernation because when we warmed her up and heated up the up the house, her condition improved.  The following day she became listless again and died within 2 hours.  The lesson we learned is that if your hedgie becomes listless and unresponsive, it might not be hibernation, and you should get hedgie to a vet immediately. I have another blog post about that experience.
After Yttrium died, I contacted the man who sold her to us. I just wanted him to know. I wasn’t looking for a refund but he seemed like a nice guy and I just thought he would want to know.  He insisted on providing a replacement. Nothing could (or as time would reveal, would) replace Yttrium. She was feisty, full of energy, curious, and just plain fun. Our working theory is that she burned out her entire life in one short burst of everything.
Ok, enough of my lamenting, but I wanted you to understand that perhaps part of our difficulties with Sodium may be related to our mindset.  We really, really missed Yttrium, and still do.
Sodium seemed to be perfectly friendly, very outgoing, and wonderful – at the show. But then I had to go pay, and they held onto her as I paid. She looked identical to three other hedgehogs they had, but we picked her because she was the friendliest. When. Got her home, it was like we had a different hedgehog. This one refused to uncurl.  Eventually, after much holding and coaxing
(Insert how to pet a hedgehog video here)
I got her to come out. This video shows how to do it. Once I got her to come out, it became easier to do it. So, maybe they pulled a bait and switch, it was a different guy at the counter, maybe he was attached to the one we wanted. Maybe we had a different hedgehog, maybe she just needed to get to know us.
Either way, the bond that we formed with Yttrium just didn’t magically appear with Sodium. Perhaps some things just aren’t meant to be, and we just have to accept that the pets we bring into our homes may not be what we expected.  We have to love and care for them anyway. It’s a commitment and a bond that, if you aren’t prepared to make it, then you shouldn’t buy a hedgehog. A) they are expensive and B) they require a lot of care.
What’s that, you ask? Why do they require more care than any other rodent?  Well, for starters, a hedgehog is NOT a rodent. If you look in a hedgehog’s mouth, you will notice immediately one huge difference is their teeth. A hedgie’s mouth is almost exclusively designed for eating bugs. They seem to have a mouthful of molars.  This means that they are not strictly vegetarians, they are bug eaters and have powerful jaws designed for crushing bugs (I’m spitballing here).  We feed Sodium the same food we feed our cats. Hedgies are, essentially, omnivorous.  This means they will eat just about anything. Mostly (in the wild) they like to eat bugs.
Feeding and Water
Meat eaters (omnivores in general) are considerably more difficult to care for than herbivores for pretty much only one reason: their poop is way, way smellier. You know how true this is if you have ever cared for a human toddler when he transitions from milk to meat.
 Some hedgehogs can be trained to use a litterbox, which you could then change nightly (believe me, you will feel deeply motivated to do this job).  Sodium likes to poop and pee in her wheel. Therefore, her wheel needs to be cleaned every morning, WITHOUT FAIL. Otherwise, the poop gets really hard and it is difficult to clean.  I use an old toilet brush and very hot water, with no soap.parts of the wheel are held together with electrical tape to reinforce it.
[place picture of wheel with tape here.]
Yttrium had a lot of trouble with getting water out of her water bottle. We think this may have contributed to her demise, but since I was not the primary care giver, I wasn’t monitoring her water levels so I don’t know.  I am the primary caretaker for Sodium, and as such she lives in my bedroom, and I keep a close eye on her health.  I noticed then, fairly quickly, that her water levels in her bottle did not decrease as fast as it should, and she was going 10 rounds with the bottle every night.  I switched her immediately to a stone water bowl—something heavy enough that she wouldn’t be able to use it as a toy, and bang it around the cage all through the night.  At first she liked to poop in it, but she seems now to have settled for happily shoving litter into it every night.
Handling a hedgehog is fairly easy, once you get them to uncurl. They are fairly smart,  I think she recognizes different people by their scent, so be careful how much hand lotion and soap you use before you hold yours. They don’t like strange new smells and will react by curling up very tightly.
They are easy to redirect, they aren’t fast, and generally have a head for heights. They may nip, but their teeth aren’t sharp. If one bites you, your reaction will be to jerk away which could potentially hurt the hedgehog.  Make certain your hedgie isn’t a biter by asking the seller to hold his fingers up to her nose. Yttrium would bite fingers if encouraged, but not as a matter of general behavior, and she would let go after just a moment and it wouldn’t draw blood. The potential is there, I suppose, but having been bitten HARD I don’t think it is likely.  Children have thinner skin, though. Yttrium only bit me two or three times and Ethan says I probably deserved it. With Sodium, if I am laying down and holding her, she will eventually wander up toward my face, grab a hold of my beard with her teeth, and gently tug at it.  I think she might think my chin is another hedgehog, and she is trying to get it to show its face.  Or, this could be a prelude to a behavior called anointing.
I have never seen Sodium anoint, and I never saw Yttrium do it, either.  It is a very strange behavior, it would be interesting to see. Possibly a sodium would do it, if I let her have her y with my beard, but I usually only let her give it a couple of tugs.  I am of course worried about having the small pair of pliers that is her mouth get a hold of some skin.
A hedgehog will use an exercise wheel. I have been meaning to make a video about how to convert a “silent” running wheel into one that is actually silent, but the bottom line is that you need to construct your own wheel if the sound bothers you.  I built mine out of a large running wheel by drilling out the center axle and replacing it with one I made myself out of bearings and steel pipe. It weighs about a pound and it outlasted our Chilean mountain rat, Selenium, who used the heck out of it for almost 8 years. Sodium uses hers every night, and the only reason it ever makes any noise is if I forgot to clean the wheel and a piece of dried poop has dislodged and is rattling around the wheel. She isot a fast runner, and so the wheel doesn’t have the turbine sound we would hear when Selenium used it.
There are some videos and some instructions on line about how to bathe a hedgehog.  One of them says to use tearless shampoo.  Please don’t do that. Never use human shampoo on animals as their skin is far more sensitive and even baby shampoo will bother them.  Use a very mild cat shampoo, but don’t trust me – contact your veterinarian or ask the seller what he uses. Remember, however, that not all sellers will be certified in animal care and they may not know any better, either.
Night time
There is one more thing about hedgehogs: they are nocturnal.  Sodium actually waits until everyone in the house is in bed, then she gets up and starts to do her thing.  She usually respects others, and keeps to her wheel, but sometimes she figures out how to make some noise, or gets into a situation.  Generally speaking, Sodium likes the quiet, she enjoys midnight runs, and loves to nuzzle my beard. She is a fine little friend, though a little prickly, so be sure to keep a glove around for picking her up.  They are not necessarily difficult to care for, they are just higher maintenance, which is probably the lion’s share of “difficulty” whenever people refer to an animal as difficult. They are smelly, so you need to clean their cage frequently. We use the shredded, recycled paper bedding and she seems to like it just fine.
I hope this helps you in making your decision…frankly, I miss our first hedgehog still.  For a family experience, I think a Degu makes a superior, lower maintenance pet than a hedgehog, and it is about equally priced and lives about as long.  Degu’s are diurnal and herbivorous, and enjoy weeing people and being seen.  However, they require more handling to train and they can get away from you and chase your cats around.

Review of some Canon 1D X Features

I spent this afternoon reviewing some of the problem that people are having with the 1DX.  These problems mostly centered around auto-focus.  I through on my most challenging auto-focus lens, the EF 400mm diffraction optics (DO) image stabilization (IS) lens. I have admittedly had some trouble getting focus lock, but only in situations where I would expect even more difficulty with a less advanced camera.  Ultimately, there are three factors that you need to weigh before purchasing this camera.

1: do you really need 12 fps, and the ability to retain focus throughout continuous shooting?  On the 1D X, with a fast enough CF card (1000X), you can get almost 35 frames – continuous – in RAW mode before the buffer to disk ratio collapses your frame rate. With its second Digic dedicated to metering and AF, you can shoot and maintain focus continuously. In JPG, you can get a lot, lot more (I don’t know how many before it slows down or even if it does ever slow down).  I am reluctant to push this to its upper limit – if you need to shoot more than 100 low quality jpgs in a row, then you should be shooting in video.

2: Do you need the better weather seal?  If you have to shoot the bride and groom running through the rain to the limo, and your 5D gets soaked and you can’t shoot the reception with your best tool … uh oh, sux to be you, right? Or maybe you just stay out of the weather, and you miss what could have been some great, fun shots, you’ll wish you had the 1D X.

3:  The 1D is sturdy,and handles great, but does require some strength to sling with precision. I handhold with the 2X and 400 DO, and have been sore the next day after a 6 hour shoot.

If these three requirements are not important to you, then don’t buy this camera.  It’s not for you.