Showing posts with label CTS. Show all posts
Showing posts with label CTS. Show all posts

Sunday, February 19, 2012

The end of Carpal Tunnel: Time for more surgery.

If I had died at the age of 41, I would have died with just one surgery on my record.  That was a  tonsillectomy that took place when I was about 6 or 7 years old.  That's even more interesting given the fact that most doctors consider  the tonsillectomy an unnecessary procedure in this day and age.  It's an artifact of a bygone era, and a mistaken approach of an archaic past.

As it happened, I lived past age 41, and I have had 3 surgeries in the past 3 years.  Really, it's more like 3 surgeries in the past 26 calendar months.  I've had both knees done, and the gastric bypass.

Guess what?  It's time for more.  Surgery number 4 & 5 are on tap over the next two months.  Dr. Eli Ziv, a buddy and partner of Dr. Bachner, will be cutting into the palms of my hands.  I was supposed to contact that surgical scheduler Friday to set the date for my right hand.  I hesitated.  I'll get to him Monday.  We'll get the left hand next...  Dr. Ziv is the hand specialist in the orthopedic surgery group Bachner is partnered with.  His mother-in-law also happens to work for my company.

I am a little queezey, but grateful.  This will be the end of the Carpal Tunnel that's (1) holding me back and (2) driving me crazy.  Although I detest going under the knife again, this syndrome can't end soon enough.  The sooner the better.

So just what is Carpal Tunnel Syndrome (CTS), and how do you fix it surgically?  First, CTS is not tendinitis created by typing all-day-long.  To be frank, it's not even a repetitive stress injury.  Incompetent doctors of the 1990s characterized it as such when it was a very trendy diagnosis in the new era of info-tech employees.

True CTS occurs when the transverse carpal ligament in the palm of your hands grow stronger, larger, heavier, or inflamed.  When this occurs, the ligament applies a crushing pressure on the median nerve that runs along the Carpal tunnel of the wrist.  This crushing pressure effectively cuts off the electrical signal from the brain to portions of the hand.  The solution is to surgically bisect the transverse carpal ligament.  Cut in half, the transverse carpal ligament can no longer apply a crushing pressure to the carpal tunnel or the median nerve.  The condition is eliminated.

So you slash a tendon, leave it slashed in half, and you release the pressure.  Whooooooaaaaa!  Slashing tendons permanently?  Isn't that going to cripple your hands?

Nope.  It turns out that the transverse carpal ligament is an evolutionary vestige of biological epochs long gone.  It is just like the appendix in your intestines.  It now serves no purpose.  Anthropologists, of whom I am one, believe that this vestige was once used by human ancestors who walked on all fours, on the palms of their hands.  The transverse carpal ligament helps the palm of the hand function better as a heel, but not much in this day and age.  It has degenerated considerably.

Ergo, you can slash it without any long-term ill-effects.  In the short-run it hurts like a sonofabitch.  More hydrocodone.

When Doctor Ziv explained all this to me, my natural response was "Well shit, Doc!  You shouldn't have told me that!  I have a perfectly good Spyderco ZDP-189 knife right here in my pocket.  I'll fix that nasty transverse carpal ligament right here, right now.  I am DIY guy!"

Nah!  Just kidding.

So the question remains:  how in the world does the transverse carpal ligament grow strong, heavier, swollen, or inflamed? How the hell does any tendon grow thicker and stronger?  Through exercise and heavy use, that's how.

Who knows what it was in my case.  Was it the shake weight?  Was it the kettlebells?  Was it push-ups and pull-ups?  Was it the ROM?  Was it Elliptical Cross Trainer?  Was it Olympic Rowing?  In sooth, I shall never know.  The key point is that I subjected myself to a vast array of exercises over the 10 months prior to the eruption of this problem, and all of them could have contributed to the strengthening of this ligament.

Dr. Ziv also mentioned that hormonal changes could contribute to the thickening and strengthening of this ligament.  What hormonal changes?  To the best of my knowledge, ligaments and tendons only respond strongly to one hormone:  HGH, human growth hormone.  This is released in great quantities during weight loss, and body building.  Many of the substances I use promote the release of HGH.  I am sure that the quasi-natural supply of HGH in my body is way higher now than it was 1 year ago.  This is why I am doing the Benjamin Button thing.  HGH is the key hormone in age-reversal.

Unfortunately, even this blessed condition can have unwanted side-effects.  I hit the Jack-Pot again.  This means I get to have surgeries #4 and #5.  Shit...

In verity and sooth, this isn't all that bad.  Dr. Ziv says that there is only about a 5% chance that the transverse carpal ligament can regenerate, and the CTS re-appear.  There is a 95% chance that he will slash my wrist, and I will never be bothered by this condition for the rest of my life.  When you think about all that I have gained (and lost) in the past year, this isn't such a high price to pay.  It could have been dramatically worse.

If everything works out for me, this will be a one-time-only fix, and I can go on about my business.


Tuesday, June 9, 2009

Bad news about F#

Just came across an article on InfoQ.com which I found disturbing. InfoQ.com is one of the very best sites on the web for programmers... any kind of programmer. They don't always get it right, and there are exotic opinions here and there, but they are usually pretty damn good and informative. Ergo, I take this negative piece seriously.


Whaaaa... WTF? This was something my own evaluation of F# did not turn up. Since this is the first written piece of its kind, I take it that this is a fairly original discovery. Jonathan Allen explains that in F# you can have a:
  1. NullReferenceException
  2. A Nullable Structure which will throw an InvalidOperationException if you hit it
  3. If you use an OptionType to handle problem one, you get two possible exceptions. Passing None to the OptionType will once again throw the InvalidOperationException later. If you pass Some(null) to the OptionType, you will get a NullReferenceExpcetion. Ergo this is not a way out. You only defer the error to a later moment.
  4. You can nest OptionTypes within OptionTypes. Ergo there is not the possibility of a tripple null exception condition. You won't like that.
Allen indicates that this does not happen often when you use native (exclusive and specific) F# types. These are the OCaml baggage types I mentioned in a previous blog. These problems are specific to CLR/CLS/CTS datatypes.

Jonathan does not go on to spell out the implications. He presumes that you can grasp that for yourself, if you are a competent programmer. He doesn't want to say its big because some Schill will come along and say he is being childish and lazy. "Of course this is easy to handle..." or so they say.

You not only have to write the same old code to handle all scenarios, you must write new handlers to handle more scenarios. BANG! I said it.

Folks, the implications are staggering. This means F# is poorly adapted for life in the .NET ecosystem. Its very nature and structure make more and new types of problems possible which did not exit before. Use F# types and you are fine. Interop with CTS types, and now you have more possible errors.

I am still sure you can make use of F#. I am now sure it is extra work with extra gotchas. This extra effort with extra problems at the core CTS level almost automatically relegates F# to life as a niche language, used only when you have to use it. It will not be used as a general purpose replacement for C# or VB.NET. Just a few little potholes in the road of full CTS compatibility constitutes a pretty nasty fly in the ointment. Now we have to start thinking about using the dreaded Interop word.

I am interested in hearing a rebuttal from Don Syme. Perhaps there is an easy pattern function that can be called all the time to deal with these issues. Perhaps that won't be a performance shredder. Perhaps it can be dealt with.

I dunno. It seems that Mr. Allen has discovered one of those bad welding points we have been speculating about for two years now. For about two years now, experts on the .NET platform have been wondering how Microsoft planned to graft a Functional language into the OOPS ecosystem of .NET. We have known that the Functional paradigm is extremely different from the OOPs paradigm. We have suspected that it was going to be difficult to make oil and water mix.

Others have tried. There was a Haskell.NET once upon a time. Others have failed. Haskell.NET is basically a dead letter. Microsoft insisted that OCaml was the proper catalyst agent that would allow .NET OOPs and Functionalism to mix smoothly. As I stated once before, I am not all that impressed by the OOPs of OCaml. I suspected there would have to be some significant adjustments.

Many types of Null is not a good idea. As a certain Italian C# architect has said in many video PodCasts "There is something unpleasing about this code." Luca is currently at work on an Agent framework for F#.

You see... I told you so. Scala has the upper hand. It seems to me that Dr. Odersky has found a much more perfect blend of OOPS and Functionalism than OCaml. Odersky was honest when he said he would be using OCaml himself if he thought it was the perfect blend of OOPs and Functionalism. There are imperfections in the OOPS model of OCaml. The adjustments made to OCaml in the F# language were not quite adequate to make for perfectly smooth blending with the .NET CLR/CLS/CTS.

This is not good news for Microsoft. I hate to tell my buddies this--and I do have buddies in Redmond--but the way you start is the way you'll finished. When F# goes gold in Visual Studio 2010, that first experience with F# 2010 will be most programmers' golden first impression of the language. A few potholes with the CTS, just a few violations of expectation, and they will say "Ah screw it! I'll play with this toy some other day. It's not something I can use."

This is how things get relegated to the waste bin of history.

On the other hand, Scala does blend perfectly with the JEE... as far as I can tell. So far I have read no published complaints.