RSS

It’s just ones and zeroes, right?

30 Sep

So I was debugging some rather frustrating code the other day, and it got me to thinking – and I know, it’s dangerous, but still, I did it…

I knew that the whole thing about our lives as computer professionals involves ones and zeroes.  So I thought, “Hmmm… I wonder what this code would look like if I translated it into binary? And how easy it would be to debug?”

So I did that, and was overloaded with a bunch of binary, so then took a simple backup script and translated that.  The result, below, is what the computer sees when it executes this little backup script.

Note: what’s below, translated from t-SQL into binary, is code that worked.  (yes, you’ll have to scroll for a bit, but there’s some human readable stuff in the middle, and some more at the end…)

01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00001101 00001010 01100100 01100101 01100011 01101100 01100001 01110010 01100101 00100000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00001001 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110011 00110000 00101001 00001101 00001010 01100100 01100101 01100011 01101100 01100001 01110010 01100101 00100000 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110011 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110001 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110001 00110000 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00100000 00101000 00110101 00110000 00101001 00100000 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100011 01101101 01100100 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00001001 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00101000 00110100 00110000 00110000 00110000 00101001 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110010 00110101 00110000 00101001 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110100 01100001 01110010 01100111 01100101 01110100 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110010 00110101 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01101110 01101111 01110111 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00001001 01000011 01001000 01000001 01010010 00101000 00110001 00110100 00101001 00100000 00100000 00100000 00001101 00001010 00001101 00001010 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00100000 00111101 00100000 00101000 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01110110 01100001 01101100 01110101 01100101 00100000 01100110 01110010 01101111 01101101 00100000 01100100 01100010 01100001 00101110 01100100 01100010 01101111 00101110 01010011 01100101 01110010 01110110 01100101 01110010 01010000 01110010 01101111 01110000 01100101 01110010 01110100 01101001 01100101 01110011 00100000 01110111 01101000 01100101 01110010 01100101 00100000 01100100 01100001 01110100 01100001 00100000 00111101 00100000 00100111 01010011 01100101 01110010 01110110 01100101 01110010 01001110 01100001 01101101 01100101 00100111 00101001 00001101 00001010 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00100000 00111101 00101000 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01110110 01100001 01101100 01110101 01100101 00100000 01100110 01110010 01101111 01101101 00100000 01100100 01100010 01100001 00101110 01100100 01100010 01101111 00101110 01010011 01100101 01110010 01110110 01100101 01110010 01010000 01110010 01101111 01110000 01100101 01110010 01110100 01101001 01100101 01110011 00100000 01110111 01101000 01100101 01110010 01100101 00100000 01100100 01100001 01110100 01100001 00100000 00111101 00100000 00100111 01001001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01001110 01100001 01101101 01100101 00100111 00101001 00001101 00001010 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00100000 00111101 00100000 00100111 01000101 01011000 01000101 01000011 01110101 01110100 01100101 00100111 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 00001001 00111101 00100000 00100111 01101101 01100001 01110011 01110100 01100101 01110010 00100111 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 00111101 00100000 00100111 01011100 01011100 00100111 00101011 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00101011 00100111 01011100 00100111 00101011 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00101011 00100111 01011111 00100111 00101011 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00101011 00100111 01011111 01100010 01100001 01100011 01101011 01110101 01110000 00100111 00001101 00001010 01010011 01000101 01010100 00001001 00001001 01000000 01101110 01101111 01110111 00001001 00001001 00001001 00111101 00100000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01000011 01001111 01001110 01010110 01000101 01010010 01010100 00101000 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00101000 00110101 00110000 00101001 00101100 00100000 01000111 01000101 01010100 01000100 01000001 01010100 01000101 00101000 00101001 00101100 00100000 00110001 00110010 00110000 00101001 00101100 00100000 00100111 00101101 00100111 00101100 00100000 00100111 00100111 00101001 00101100 00100000 00100111 00100000 00100111 00101100 00100000 00100111 00100111 00101001 00101100 00100000 00100111 00111010 00100111 00101100 00100000 00100111 00100111 00101001 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00001001 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01001110 01100001 01101101 01100101 00001001 00001001 00111101 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00101011 00100000 00100111 01011111 01100100 01100010 01011111 00100111 00100000 00101011 00100000 01000000 01101110 01101111 01110111 00100000 00100000 00001101 00001010 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 01000000 01100011 01101101 01100100 00100000 00111101 00001001 00100111 01100010 01100001 01100011 01101011 01110101 01110000 00100000 01100100 01100001 01110100 01100001 01100010 01100001 01110011 01100101 00100000 00100111 00100000 00101011 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00101011 00100000 00001101 00001010 00001001 00001001 00001001 00001001 00100111 00100000 01110100 01101111 00100000 01100100 01101001 01110011 01101011 00100000 00111101 00100000 00100111 00100111 00100111 00100000 00101011 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00101011 00100000 00100111 01011100 00100111 00101011 00100000 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01101110 01100001 01101101 01100101 00100000 00101011 00100111 00101110 01100010 01100001 01101011 00100111 00100111 00100111 00100000 00101011 00100000 00001101 00001010 00001001 00001001 00001001 00001001 00100111 00100000 01110111 01101001 01110100 01101000 00100000 01110011 01110100 01100001 01110100 01110011 00100111 00100000 00001101 00001010 00001101 00001010 00001101 00001010 01010000 01010010 01001001 01001110 01010100 00100000 00100000 01000000 01100011 01101101 01100100 00100000 00001101 00001010 00001101 00001010 01001001 01000110 00100000 00100000 00100000 00100000 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00111101 00100000 00100111 01000101 01011000 01000101 01000011 01110101 01110100 01100101 00100111 00100000 00001101 00001010 00100000 00100000 00100000 01000010 01000101 01000111 01001001 01001110 00100000 00001101 00001010 00100000 00100000 00100000 00100000 00100000 00100000 00100000 01000101 01011000 01000101 01000011 00100000 00101000 01000000 01100011 01101101 01100100 00101001 00001101 00001010 00100000 00100000 00100000 01000101 01001110 01000100 00100000 00001101 00001010 00001101 00001010

And this piece of code won’t work…

01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00001101 00001010 01100100 01100101 01100011 01101100 01100001 01110010 01100101 00100000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00001001 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110011 00110000 00101001 00001101 00001010 01100100 01100101 01100011 01101100 01100001 01110010 01100101 00100000 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110011 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110001 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 00001001 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110001 00110000 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00100000 00101000 00110101 00110000 00101001 00100000 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01100011 01101101 01100100 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00001001 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00101000 00110100 00110000 00110000 00110000 00101001 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110010 00110101 00110000 00101001 00100000 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01110100 01100001 01110010 01100111 01100101 01110100 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 01110110 01100001 01110010 01100011 01101000 01100001 01110010 00101000 00110010 00110101 00110000 00101001 00001101 00001010 01000100 01000101 01000011 01001100 01000001 01010010 01000101 00100000 01000000 01101110 01101111 01110111 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00100000 00001001 01000011 01001000 01000001 01010010 00101000 00110001 00110100 00101001 00100000 00100000 00100000 00001101 00001010 00001101 00001010 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00100000 00111101 00100000 00101000 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01110110 01100001 01101100 01110101 01100101 00100000 01100110 01110010 01101111 01101101 00100000 01100100 01100010 01100001 00101110 01100100 01100010 01101111 00101110 01010011 01100101 01110010 01110110 01100101 01110010 01010000 01110010 01101111 01110000 01100101 01110010 01110100 01101001 01100101 01110011 00100000 01110111 01101000 01100101 01110010 01100101 00100000 01100100 01100001 01110100 01100001 00100000 00111101 00100000 00100111 01010011 01100101 01110010 01110110 01100101 01110010 01001110 01100001 01101101 01100101 00100111 00101001 00001101 00001010 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00100000 00111101 00101000 01110011 01100101 01101100 01100101 01100011 01110100 00100000 01110110 01100001 01101100 01110101 01100101 00100000 01100110 01110010 01101111 01101101 00100000 01100100 01100010 01100001 00101110 01100100 01100010 01101111 00101110 01010011 01100101 01110010 01110110 01100101 01110010 01010000 01110010 01101111 01110000 01100101 01110010 01110100 01101001 01100101 01110011 00100000 01110111 01101000 01100101 01110010 01100101 00100000 01100100 01100001 01110100 01100001 00100000 00111101 00100000 00100111 01001001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01001110 01100001 01101101 01100101 00100111 00101001 00001101 00001010 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00100000 00111101 00100000 00100111 01000101 01011000 01000101 01000011 01110101 01110100 01100101 00100111 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00100000 00100000 00100000 00100000 00001001 00111101 00100000 00100111 01101101 01100001 01110011 01110100 01100101 01110010 00100111 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00100000 00100000 00100000 00100000 00111101 00100000 00100111 01011100 01011100 00100111 00101011 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00101011 00100111 01011100 00100111 00101011 01000000 01110011 01100101 01110010 01110110 01100101 01110010 01101110 01100001 01101101 01100101 00101011 00100111 01011111 00100111 00101011 01000000 01101001 01101110 01110011 01110100 01100001 01101110 01100011 01100101 01101110 01100001 01101101 01100101 00101011 00100111 01011111 01100010 01100001 01100011 01101011 01110101 01110000 00100111 00001101 00001010 01010011 01000101 01010100 00001001 00001001 01000000 01101110 01101111 01110111 00001001 00001001 00001001 00111101 00100000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01010010 01000101 01010000 01001100 01000001 01000011 01000101 00101000 01000011 01001111 01001110 01010110 01000101 01010010 01010100 00101000 01010110 01000001 01010010 01000011 01001000 01000001 01010010 00101000 00110101 00110000 00101001 00101100 00100000 01000111 01000101 01010100 01000100 01000001 01010100 01000101 00101000 00101001 00101100 00100000 00110001 00110010 00110000 00101001 00101100 00100000 00100111 00101101 00100111 00101100 00100000 00100111 00100111 00101001 00101100 00100000 00100111 00100000 00100111 00101100 00100000 00100111 00100111 00101001 00101100 00100000 00100111 00111010 00100111 00101100 00100000 00100111 00100111 00101001 00100000 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00001001 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01001110 01100001 01101101 01100101 00001001 00001001 00111101 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00101011 00100000 00100111 01011111 01100100 01100010 01011111 00100111 00100000 00101011 00100000 01000000 01101110 01101111 01110111 00100000 00100000 00001101 00001010 00001101 00001010 01010011 01000101 01001100 01000101 01000011 01010100 00100000 01000000 01100011 01101101 01100100 00100000 00111101 00001001 00100111 01100010 01100001 01100011 01101011 01110101 01110000 00100000 01100100 01100001 01110100 01100001 01100010 01100001 01110011 01100101 00100000 00100111 00100000 00101011 00100000 01000000 01100100 01100010 01101110 01100001 01101101 01100101 00100000 00101011 00100000 00001101 00001010 00001001 00001001 00001001 00001001 00100111 00100000 01110100 01101111 00100000 01100100 01101001 01110011 01101011 00100000 00111101 00100000 00100111 00100111 00100000 00101011 00100000 01000000 01110011 01101111 01110101 01110010 01100011 01100101 01110000 01100001 01110100 01101000 00100000 00101011 00100000 00100111 01011100 00100111 00101011 00100000 01000000 01100010 01100001 01100011 01101011 01110101 01110000 01101110 01100001 01101101 01100101 00100000 00101011 00100111 00101110 01100010 01100001 01101011 00100111 00100111 00100111 00100000 00101011 00100000 00001101 00001010 00001001 00001001 00001001 00001001 00100111 00100000 01110111 01101001 01110100 01101000 00100000 01110011 01110100 01100001 01110100 01110011 00100111 00100000 00001101 00001010 00001101 00001010 00001101 00001010 01010000 01010010 01001001 01001110 01010100 00100000 00100000 01000000 01100011 01101101 01100100 00100000 00001101 00001010 00001101 00001010 01001001 01000110 00100000 00100000 00100000 00100000 00100000 01000000 01110010 01100101 01110000 01101111 01110010 01110100 01100101 01111000 01100101 01100011 01110101 01110100 01100101 00100000 00111101 00100000 00100111 01000101 01011000 01000101 01000011 01110101 01110100 01100101 00100111 00100000 00001101 00001010 00100000 00100000 00100000 01000010 01000101 01000111 01001001 01001110 00100000 00001101 00001010 00100000 00100000 00100000 00100000 00100000 00100000 00100000 01000101 01011000 01000101 01000011 00100000 00101000 01000000 01100011 01101101 01100100 00101001 00001101 00001010 00100000 00100000 00100000 01000101 01001110 01000100 00100000 00001101 00001010 00001101 00001010

Why won’t it work?

Because it’s missing an apostrophe.

So if that’s a bunch of ones and zeroes that have to be in the right order just to back up a database – how many ones and zeroes need to be in the right order to keep our databases and systems running right?  I mean really, if you think of your T-SQL code, then the SQL executables and the binaries there, and the operating system it rides on, and if your systems are clustered and virtual, you’ve got your clustering layer, and your virtualization layer, and all the software and firmware of your SAN, not to mention the app that might ride on top of your code.  It actually gets pretty mind boggling that it all works at all, and makes it that much more important that the code we as SQL folks write, is flawless.

Given that we often think of the big, complex things about SQL, I thought I’d just bring a small bit to your attention.

Take care – be safe out there.

Oh – By the way… the code is below:

select  @@servername

declare @servername     varchar(30)

declare @instancename   varchar(30)

DECLARE @reportexecute  varchar(10)

DECLARE @dbname         varchar(100)

DECLARE @backupname     VARCHAR (50)

DECLARE @cmd            VARCHAR(4000)

DECLARE @sourcepath     varchar(250)

DECLARE @targetpath     varchar(250)

DECLARE @now            CHAR(14)

select @servername = (select value from dba.dbo.ServerProperties where data = ‘ServerName’)

select @instancename =(select value from dba.dbo.ServerProperties where data = ‘InstanceName’)

SELECT  @reportexecute  = ‘EXECute’

SELECT  @dbname         = ‘master’

–Note: I’ve got a set of shares set up on all my servers, so tend to write backup scripts as below.

–You may need to change that to a path that’s valid on your system to get this to work.

SELECT  @sourcepath     =

‘\\’+@servername+’\’+@servername+’_’+@instancename

+ ‘_backup’

SET     @now                  = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(50),

GETDATE(), 120), ‘-‘, ”), ‘ ‘, ”), ‘:’, ”)

SELECT  @backupName     = @dbname + ‘_db_’ + @now

SELECT @cmd             =     ‘backup database ‘ + @dbname

+ ‘ to disk = ”’ + @sourcepath + ‘\’+ @backupname

+ ‘.bak”’ + ‘ with stats’

PRINT  @cmd

IF     @reportexecute = ‘EXECute’

BEGIN

EXEC (@cmd)

END

Advertisements
 
Leave a comment

Posted by on September 30, 2011 in Uncategorized

 

Tags: , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: