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.

https://www.youtube.com/watch?v=Tej38HVd9rM

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

Background

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:


 RESTORE DATABASE [DBCC_TEST5GB]
 FROM DISK = '\\Backups_SQL\RELO001\ERIK_COMP_TEST\FULL\v.NoComputedCols.bak'
 WITH BUFFERCOUNT = 500, MAXTRANSFERSIZE = 4194304, STATS
 
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:

STATISTICS TIME ON
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 */
 DBCC CHECKDB ([DBCC_TEST5GB]) WITH NO_INFOMSGS, ALL_ERRORMSGS
/* 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 */
ALTER INDEX [IX_1003669_RI] ON [EDDSDBO].[Document] DISABLE
ALTER INDEX [IX_1003671_RI] ON [EDDSDBO].[Document] DISABLE
ALTER INDEX [IX_1035456_RI] ON [EDDSDBO].[Document] DISABLE


Ran a DBCC command:

 /* DBCC command for disabled Computed Columns database */
 DBCC CHECKDB ([DBCC_TEST5GB_CC]) WITH NO_INFOMSGS, ALL_ERRORMSGS
 /* Run DBCC check without indexes */

Results:

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 */
 DBCC CHECKDB ([DBCC_TEST5GB_CC]) WITH NO_INFOMSGS, ALL_ERRORMSGS/* Run DBCC check without indexes */
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 */
DBCC CHECKDB ([DBCC_TEST430GB]) WITH NO_INFOMSGS, ALL_ERRORMSGS
/* 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 */
ALTER INDEX [IX_redacted_1] ON [EDDSDBO].[Document] REBUILD WITH (ONLINE = ON)
ALTER INDEX [IX_redacted_2] ON [EDDSDBO].[Document] REBUILD WITH (ONLINE = ON)
ALTER INDEX [IX_redacted_3] ON [EDDSDBO].[Document] REBUILD WITH (ONLINE = ON)
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 */
DBCC CHECKDB ([DBCC_TEST430GB]) WITH NO_INFOMSGS, ALL_ERRORMSGS

SQL Server Execution Times:

Duration: 10846102 ms.
CPU time: 4689156 ms.

Conclusions

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.
–Dave

———- 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,
Aaron
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,
Justin

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.)

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.

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).
Where
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.
Price
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.
Demeanor
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
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.
Exercise
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.
Bathing
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.

The Last Piano

A young, very attractive and elegant woman sits, watches me.  I know I was killed, but here I sit, playing the Last and I’m fine.   A woman, virtually untenable in her beauty, listens to me play.

Mind this: she is not beautiful in that symmetrical, coldly compelling way that drives many men to great insanity.  No, she is her strength and she is her innocence and nothing is layered over this.  I can see it in the way her chin tilts just so, the way her eyes gaze knowingly and in the softness of the set of her lips.  I watch her lips when she speaks, I watch them in her quietude, I watch I watch I watch. Her movement is music; there: in the graceful poise of her hips; there: in the hands moving to rest placidly in her lap.  Mark the time!  I’m enslaved by her motion and I begin to play again, enjoying the silky smooth roughness of these ancient, ivory keys.

©1997 Scott R. Ellis 

The Last Piano Player

by Scott R. Ellis

I remember the blood soaked, black sands of the beach-head encapsulated within the prison star-world; the way the water teemed with stinging mantas and how the seascape seemed to curve upward to where the brackish blue of the sky traced out the ­disjointed curve of the horizon.

As I stood sifting through the sand, the crashing ocean waves exploded behind me into frenzied sprays against the silver steel pinnacles and ramparts of the fortress-prison.  Its ugly spikes slid motionlessly out of the ocean to curl fortified arms around the island.  Many men were imprisoned here, but only some of us knew that this was no island bastille—those of us who had not forgotten—to us it was a self-contained nightmare, floating in outer space.  It was no Devil’s Island, I was no Papillon.  No, I would escape this space-flung prison only through death.

I am Benedict, and this is how it felt when death’s talon grip snared me:  a penetrating thrust cleaving through my body to rest cold in my soul, twisting it—torturing me.  And then my consciousness slowly abated;  a need for reminiscence emerged from the coldness which encroached on the periphery of my vision, a need for some thread to coalesce, to gather . . . my thoughts drift like particles, drifting about in a sunbeam, searching for a place to settle.  But my acuity fails to pierce through to the past. There is a veil….

I remember I died, but here I am again.  Only, it is no longer a prison, and she, this amazing “she,” with me, explains the prison is this: a  place that people danced and listened to music, where troops gathered and formed to go to battle.  A place where I fell in love again. Oh, and where they kept the Last piano.  She asks me, “How could you have forgotten this?”  She explains, “It has been a century or more since your imprisonment, and since the once star-bound prison vessel crash landed, and cracked open its chrysalis to the free skies of Sanctucity.”  It feels rehearsed and so does my response.  “I don’t remember much about what happened before my return here.  It seems so long ago—it’s a sanctuary now?  Really?”

“Yes, my Bened, yes.”

But, before I died, it was just a prison, a shell of a world—small, but somehow, through the use of science, warped to seem large. They, some of the interred,  say the engineers added a fifth  dimension.  Time was the fourth.   And some said that when they built the Stellar prisons they didn’t add a dimension; rather, love was removed.

 **

I am, returned from the grave, a very old man now.  Gaunt, my skin stretches over my cheeks like paper and my eyes—eyes so stark that even a hawk’s stare would divert from them.  The old piano is still in the rectory of the prison— I don’t know what else they call it now.   Prison is as good a word as any.  My God, that piano is old.  It’s small, and upright.  The keyboard is perched high on the harp, like a spinet but this piano you have to climb up a small ladder to play.   I’d really never heard anything play that way,  play so beautifully that time loses you. Hit any rhythmic combination of notes and they play through the air with the bitter-sweet resonance and delicate timber only an age-old instrument can deliver. Beauty for its own sake. No one really even knows how it got there; perhaps its placement was a clerical error.

Strangely, I remember the first time I ever played that piano and, as I remember that first time,  I also remember the first death: bullets piercing my flesh,  piercing my head, killing me, and the hot searing feel of it punching its coldness into, and through the base of my skull.  They brought me before a small man, and first his assistant shot me in the leg.  I fell—more because I knew I should than from any true feelings of pain.  Then he handed the weapon—a projectile type—to the small man and he shot me in the head.  They may have shot more than twice. I don’t know; I never felt a thing, except terrified.

Some time passed, I think, and I drifted, trying to cling to life.  I grasped for the scattering, filament-thin attenuations of consciousness and felt them slip through my clutch.  Then: awareness returned to me, drifting lazily on outstretched wings, languorously soaring before taking purchase;  and I was here, at the piano, playing.   A glimpse of memory of the darkly burnt cerulean blue sky, cracking open, etches a vivid image in my mind’s eye, a splash of multi-colored paints across a fresh canvas.  Suddenly I awake and gasp for breath with unrestricted lungs.  I look about; I am sitting at the piano.  I look down;  the keys are all where they are supposed to be so I know this is not just some post traumatic hallucination.  I know, with an alacrity born of a hundred years of experience, that this is life, that this is real, and that, only a moment  ago, I died.

A young, very attractive and elegant woman sits, watches me.  I know I was killed, but here I sit and I’m fine and a woman, virtually untenable in her beauty, listens to me play.  Mind this: she is not beautiful in that symmetrical, coldly compelling way that drives many men to great insanity.  No, she is her strength and she is her innocence and nothing is layered over this.  I can see it in the way her chin tilts just so, the way her eyes gaze knowingly and in the softness of the set of her lips.  I watch her lips when she speaks, I watch them in her quietude, I watch I watch I watch. Her movement is music; there: in the graceful poise of her hips; there: in the hands moving to rest placidly in her lap.  Mark the time!  I’m enslaved to her motion and I begin to play again, enjoying the silky smooth roughness of these ancient, ivory keys.

I stop, and I turn to her.  She is radiant, smiling at me.  I think I must have somehow become her hero.  “How long have you been here?”  I ask.  To ask her how long I had been playing may have seemed senile.  My voice is dry and I cough.  I touch my face.  It feels slightly different, but familiar.   She is youthful, attentive, and dressed in a black costume gown with white trim and an ankle length skirt.  I look down at myself to discover that I, too, wear strange, costume  apparel, complete with ruffles at the sleeves and a close fitting tunic which drapes beneath my knees.

“Bened! You Silly.  I came here with you on the shuttle.”  She pulls out a small fan and fans herself.  My hand moves.  A chord strikes in the piano and in my mind.  A harsh, dissonant chord, dark and foreboding.  I wonder how I have so strangely escaped the prison, escaped death.  How I have seemingly left my body and then returned again.  Perhaps I am crazy, completely insane, and it is all a hallucination.  No.  I think, were that the case, I would have thought to hallucinate something a little less extemporaneous.

“I want to leave here.  I don’t know why I wanted to come here to begin with.”  I want to tell her that I have been a prisoner here, that being here torments me, that I had, in fact, been bludgeoned then shot to death—to death! not fifteen minutes ago in a steel room deep in the bowels of this monstrosity. I feel my face again.  The corners of my eyes, are there more wrinkles now?  I can’t feel to tell.

“People are coming, you know, to hear your Improvisations.  The troops will be forming up soon.  We can go to the refresher area if you like, and you can have a drink maybe.

“You are playing very well, though I don’t know why you started and stopped like that.”   She shakes her head slightly, her hair shakes at me but I only see my recollection of it, like a distant memory. She holds out her arm to assist me down from the piano pedestal.  I gracefully accept her help.  I no longer need to feel my face to determine my age.  Simply moving tells me, and the sudden, needful way in which she moved to help me.   I am old.  Very old.  Much older than when they killed me.  Senility will certainly be excused in a man my age.

“Are you my lover?”   I ask her.  She giggles.  I sigh

“Love, of course I am.”  She blushes and kisses me on the cheek.

“Where is everyone—all the prisoners?”

“Oh, Benedict.  That was so long ago.  Don’t you remember? ”

“No . . . my love, I don’t.  You are so pretty.”

“Darling, I’m almost as old as you and twice as wrinkled.”

“No,” I protest adamantly, “—you are young, sensuous, opulent.”  She begins to blush.  I see only this young, beautiful woman before me, and I am confused.  I turn away from her and look up at the piano. It is almost all solid wood.  They don’t make them from wood anymore.  Actually, they don’t make them at all anymore, and haven’t since . . . since forever.  They were never made in these colonies.  It’s a mystery how this one found its respite looming over prison congregations thousands of light-years away from a woodworker’s rasp. I turn back to the woman and I speak to her, looking so deep into her eyes that I lose my sense of balance, of place. I am spiraling into her.  ” I- I’m just an old man who doesn’t know what has happened since he has died.” She seems so familiar to me, as if I’ve known her all my life and have been with her for years.  But I can’t shake the feeling I arrived only moments ago.

I turned to her as we walked up the aisle toward the entrance at the back of the chapel, the prison sanctuary.  The beginnings of noise were shaping outside in the mezzanine area.  I could hear talking, and glasses chinking.  “You are so kind,” I tell her. She strokes my chin and turns.  We start to walk again and it is a slow process.

“You were telling me–where are the prisoners?”

“Oh, Benedict.  That was so long ago.  Don’t you remember?  You escaped the prison a dead man.  You were shot sixteen times, but somehow, you survived.  The prison had docked here for repairs. . .”

It came to me as she spoke, I remembered.  Well, I still only remembered the two shots.  Sixteen was perhaps an exaggeration in the retelling.  I was a young man then.  Time was nothing to me, I had plenty of it.

When I was told one day that I had killed a man in cold blood, I thought it a joke.  When they told me they were putting me under the highest security available, I laughed in their faces and bet the judge my freedom that I would escape.  You see, he knew of my past exploits—he knew I was a war hero who had been captured during the Wars and had led an escape from their dungeons.  I had squirmed through half a mile of air shaft and battled insanity to gain my freedom.

“You are a fool, Benedict.  I’m putting you in Stellar H where, even if you escape, you won’t have escaped.”  And then he laughed, a sinister sound to hear in the docket. Those were the final words of the judge.   He disregarded my bet and stood, dark and foreboding, laughing as he left the court.  Black hooded guards led me from the chaos, bound and levitated.

I imagine, now, that it was an ordinary chuckle, a good belly-laugh over an insolent convicted felon, but at the time I imagined it to be the most ominous bone-marrow freezing laugh that he ever chortled.   It echoed in the halls with the hooded guards, followed me, and continued to linger just on the edge of audibility for the rest of my imprisonment.

I began pondered and planned escapes. One minute I believed that I would have to lead a full scale riot and take over the piloting of the vessel/prison and dock her in some neutral territory in order to escape one day and believed I could re-materialize in another world with the power of my mind the next.  I planned.  And I planned.

No matter how ludicrous or impossible, I considered it.  I met other prisoners who were sympathetic, but most just wanted to go on with their lives.  Most led lives of accep­tance, of quiet, suffering desolation.  I was, as you know, innocent.  I had killed men in the wars, yes, but as a civilian I had entered into a career as a systems navigator.  I was well paid, had a nice home and family, and was actually off planet on business, a hundred light years away from the murder scene.  But, the common law held that computers and DNA and photon residual emission tests did not lie.  I actually watched myself committing the murder in a computer generated, courtroom reconstruction of photon residual emissions and DNA extrapolation.  I was getting convicted by a jury of my peers of premeditated murder.  “Besides,” explained the judge, “everyone knows travel records can be forged by anyone with a moderate amount of travel computer codes.  This court finds the defendant, Benedict Arnold, guilty of murder in the highest degree.  We sentence you to Stellar H for life, up to and including Second Death.”  He pounded his gavel on the bench. He almost seemed to be shaking his head as he did this.  His white powdered wig shook its curls at me.  They too condemned me.

Think about it—I did. I even believed, for a short time, that I had done it, that I had killed.

Then, I had an epiphany. Many years ago, the technology (in the Federation and the Reaches) had been outlawed and research halted and destroyed.  The technology to modulate DNA using gene editing techniques had been destroyed and lost.  But, what if, in a universe of trillions of humans, the possibility that my exact DNA structure could exist twice. . . it’s unfathomable, with millions of base pairs, the likelihood of another exact match would be  1 in 9.3810… × 10^1926591.  But aren’t all DNA (of humanity, anyway) 99.9% the same?  The odds then become much lower, perhaps as low as 1 in a trillion, maybe as high as 1 in 100 trillion. What is the given entropy for the actual differences? How hard would it be to build a biodatabase of billions of DNA sequences, and use a biogenerator, or a bank of thousands of them, to just “roll the dice” and replace a native strand with an artificially selected “naturally” generated one? How hard would it be to convert a replicator of food into one of humans? And how accurate is photon emission DNA sampling? How effective was the clone purging? If the Empire had such devices in their creche vaults, how hard would it be for a Federated citizen to get the tech, or recreate it? I knew I was innocent.  I realized then that, in our society, a man with the ability to alter his DNA could behave with impunity. . . my defense, I realized, had been tragically inadequate.

I had not asked enough questions, and there is no appealing from Stellar H.  Even the Warden is a prisoner.  I could appeal, but no one would listen.

***

The Warden of Stellar H was a small man.  He had us digging through the sand sifting for gold twelve to fourteen hours a day.  We never found any.  We just got stung by the sting rays which infested the waters and every now and then they managed to kill and devour a man.  They never bothered me though.   I discovered by accident one time that I could wade in the water and they would avoid me. It was the time the sky cracked open.   Funny, the expression on the faces of the men around me when it happened.  As if they had forgotten what the real sky was like.  As if they had forgotten how truly bright a real sky was.  They cowered and covered their eyes with their arms as the dome above us split. Sting rays writhed and roiled,  frothing the water up to my knees.  I raised my arms in supplication as I stood naked and bathed in the natural warmth of the light. My legs had grown thick and powerful with the labor.  For a moment, I beleived that I could fly and I leapt toward the sky. The ground fell away beneath me. The noise of the machinery operating the dome whined and screeched in protest, but I didn’t even hear it.

And then they grabbed me and dragged me fighting and kicking down into the depths of Stellar.  Their fists hammered me down again and again as I fought them.  Blood poured from us and then I broke free from them and began to run toward what I believed was my escape.  More uniformed guards came, captured me and they beat me till finally I submitted.  I would fight another day, I vowed.  I would return.  They brought me through a doorway and into a room where a man sat on the floor.  He was a small man and he sat there on a carpet and ate some spherical object that he seemed to be peeling.  It looked like fruit, yellowish but with a reddish hue, not the color of anything I had ever seen.  He looks at me, his one eye seeming to burst forth from his face and it penetrates into my thoughts and it sees my plans to escape.

“Kill him,” he says. He resumes eating.  At this point I assume they think I had opened the dome somehow.  I begin to protest, to tell them I had nothing to do with it and that the true escapists are using me as a dupe. No words come out of my mouth.  The bullet is already on course and I am already falling.  I gasp, but I don’t feel any pain.  “Wait!”  says the small man.  He stands then, and holds out his hand to the guard who just shot me in the leg.  “I want to do it.” The guard hands him the gun. I turn away, I can’t watch it come.

The second bullet pierced the back of my head and I felt the world, consciousness, whisked away, drawn away from me, attenuating to an  imperceptible thinness.  I drifted com­pletely detached in a warm, soft haze as the skeins of death’s pirouettes danced around me in tattering shapes of white, black, and grey.  I could hear nothing, feel nothing, taste nothing, smell nothing, and see only the grayish-white haze, like a thin veil all around me.  And then it slowly dissolved as I began to hear music, and feel the pleasure beat of the keys under my fingers, the slow pulse pulse of the music’s rhythm cascades my senses.  I ride the gestalt to awareness and then see that I’m in the prison ecclesia, playing the old piano with its archaic script across the front panel, spelling out in Gothic lettering “Last.”

Now I’m led down the aisle by this sublime young woman who claims she’s my lover but, God (are You listening?!) it—it only seems like twenty minutes ago that I died and now a whole lifetime has passed and I’m back where it all started.

I don’t even remember if I’ve done anything worth anything—I escaped the most secure prison in the universe and she tells me I did it by dying.

I look to her.  Seeing the love in her eyes discomfits me;  I want to tell her, show her, somehow prove through some thing I do that I am worth it.  Instead, I feel a binding in my chest, incredible pain shoots down my arms and my breath comes in short gasps.  I realize I’m on the floor; she cradles me in her arms.  I smile at her, and she smiles back.  She is fragile when she smiles.   I tell her, “There was never enough time to . . . the things I want to show you . . .do for you . . .”  and I watch as tears flow from her eyes.  I see the piano, this “propylaeum”, rising over me.  Too near to me are the arched sanctuary doors.   From a distance— I am far away now—I hear her whisper to me as she cradles my stilled body, she weeps, and says,  “I don’t love you for the things you’ve done; I love you because you’re the one who did them.”  I finally understand:

There is nobody left now to play the Last piano;  the push pull of the hammers tapping on the strings are stilled,  and the stingrays glide through oceans without bound.  This was the Second Death.

 ****

Aside

Big oil.  Exactly how much gas does a “Big Oil” oil company have to produce before a “Big Oil” oil company can be called “Big Oil”?