Archive: April 20, 2008

<<< April 18, 2008


April 22, 2008 >>>

renewing the war on cancer

Sunday,  04/20/08  09:01 AM

 Lance Armstrong, writing in the Boston Globe: Renewing the war on cancer.

Now, what is our government's victory plan?

After six years on the President's Cancer Panel, I can say with reasonable certainty that there isn't one. Few of our leaders, with the exception of Senator Edward M. Kennedy, are still devoted to this fight. And to be fair, cancer is one of many causes competing for resources and attention in Washington.

Still, you'd expect the number one killer of Americans under 85 to merit more outrage, more opposition, more resources. But funding for the National Cancer Institute and the National Institutes of Health is static or declining in recent years. There is no central command, no general who looks over the broad spectrum of this disease and is able to deploy resources where they will save lives and advance this fight. A pessimist would say that cancer is winning. Luckily, I'm not one.

 Lance is one of my personal heros, not only for his personal and athletic accomplishments, but because he has channeled the fame and fortune those accomplishments created into this critical fight.  Let's hope he is successful, but more than that, let's all support him in any way we can.





the cynic

Sunday,  04/20/08  09:09 AM

cyn-ic, noun,

  1. someone who sees things as they are
  2. someone who thinks a cynic is someone who sees things as they are

At least that's how I see it :)


everything you need to know about COM

Sunday,  04/20/08  08:53 PM

<rant optional="absolutely">

Everything you need to know about COM:

// Success codes
#define S_OK    ((HRESULT)0x00000000L)
#define S_FALSE ((HRESULT)0x00000001L)

For those of you keeping score at home, please note that since time zero in all computers everywhere a nonzero value has meant true, and a value of 0 has meant false.  In their infinite lack-of-wisdom, the COM designers decided to invert this convention.

This really is everything you need to know about COM.  It was clearly designed by junior programmers who weren't even aware of the most basic programming conventions.

How does this happen?  Big companies like Microsoft hire the best and the brightest, the smartest young kids coming out of school.  These people are smart, but they are not knowledgeable.  They haven't lived long enough to understand that reinventing the wheel is not only inefficient, it leaves you with two different wheel designs to maintain.

About twenty years ago I worked on a computer called the IBM Series/1.  We ended up doing quite a bit of debugging of the operating system, and IBM eventually hired us to maintain the OS for them (I am not making this up).  I saw exactly the same thing; a system designed by smart young programmers without experience, full of wheel reinventions and neglected programming conventions.

Just about everywhere you care to look in the software development world, there are two ways to do things, the Microsoft way, and the other way.  In just about every case, the other way came first, and then Microsoft came along, ignored what had been done before, and reinvented the wheel.  Their size and market share have allowed them to survive with an incompatible approach. 

Probably the best example (or worst offense, depending on your view) is in browsers; all over the internet there are two ways to do things, the Microsoft IE way, and the all-other-browsers on all-other-platforms way.

In fact .NET itself is like this; first there was Java, everyone used it, and then Microsoft reinvented it.

So what about .NET?  Certainly Anders Hejlsberg (the designer of .NET) is smart and experienced.  The API design is – by general agreement – brilliant.  Or at least much better than Win32 / GDI.  It is however also incompatible with Win32 and GDI, a major reinvention of the wheel.  It could be argued that this was necessary in order to clean things up and move forward.  Maybe.  It could also be argued that the net amount of work for everyone in adapting old code to a new API exceeds the benefit.

{And where does that leave VB.NET?  Not brilliant, IMNSHO, not necessary, and not even helpful.  Just a needless wheel reinvention.  So much work has been expended in converting VB 6 to VB.NET, for so little benefit.}

One final note.  When a function succeeds, the status is ERROR_SUCCESS.  In addition to having a beautifully ambiguous name, the value of ERROR_SUCCESS is zero (false).  I am not making this up.


Oleosaurus out...


Sunday,  04/20/08  09:25 PM

I had a nice weekend, at home (although I spent part of it mountain biking yesterday, and we had a triple birthday celebration today).  I also seemed to spend a lot of time cold and hungry.  Turns out you can't eat your way to being warmer...  although I tried.  Anyway let's make a scan of the blogosphere, shall we?

This should be severely punished: 'Bond' car plunges into Italian lake.  Waste of a beautiful Aston Martin.  They should use Chevys as a sort of stunt double, don't you think? 

Randall Parkers says Time to Think about Petroleum Oil Substitutes.  "It is time to move beyond a discussion of why oil prices have gone so high and focus on the prospects for substitutes. In particular, a realistic discussion of the future liquid fuels ought to center around the costs of substitute liquid fuels such as algae biodiesel, cellulosic ethanol, and coal-to-liquid. We will be able to reduce the relative portion of transportation powered by liquid fuels by use of more electricity and batteries in transportation. But for at least a portion of our transport needs (e.g. airplanes, longer distance vehicles) we will continue to need liquid fuels."  Yeah, that's right.  Nobody is talking about electric airplanes.  Yet. 

I don't know how I missed this, but I did (and I even read Fortune's Formula): Non-transitive Dice.  A beats B beats C beats D ... beats A.  I love it.  As did [apparently] Albert Einstein...  This is one of those things, you see that it works, but you don't see how it works. 

From the "I hate liability lawsuits" file: Philip Greenspun notes Airplane engine manufacturer loses $4 million judgment.  "An engineer might say 'it is impressive that those engines spun flawlessly for thirty years, not quitting until this pilot flew them right into the ground.' A jury saw this accident differently, ordering TCM to pay $4 million to the survivors of the pilot."  At some point there has to be some correlation of responsibilty to liability, doesn't there? 


Return to the archive.