The Daily Parker

Politics, Weather, Photography, and the Dog

State of Delusion

From Paul Krugman's column (sub.req.) this morning:

This administration is all politics and no policy. It knows how to attain power, but has no idea how to govern. That's why the administration was caught unaware when Katrina hit, and why it was totally unprepared for the predictable problems with its drug plan. It's why Mr. Bush announced an energy plan with no substance behind it. And it's why the state of the union—the thing itself, not the speech—is so grim.

And this little tidbit from Poynter Online correspondent Alan D Abbey:

I ran across this brief couplet upon perusing "The Norton Book of Light Verse" with my son, who needed a short poem for something he is doing in school. It's a nice comment on the current media environment, and the explosion in volume, at least, of content and brands. It's by 17th-century physician and poet Samuel Garth, and it goes like this:
"What frenzy has of late posssess'd the brain
"Though few can write, yet fewer can refrain."

Heh.

My sides hurt from laughing too hard

From the Washington newspaper Roll Call earlier today:

House Republicans are taking a mulligan on the first ballot for Majority Leader. The first count showed more votes cast than Republicans present at the Conference meeting.

I wonder if Diebold counted the ballots?

McAfee, I hate thee

One of my clients has had a recurring server issue caused, it seems, by McAfee Anti-Virus. So we're switching to Symantec.

The problem has been that, for quite some time, the naPrdMgr.exe process (which handles product updates) has gone into a death-spiral, consuming 100% of CPU cycles and making the server totally unresponsive to anyone else. I've finally gotten in touch with McAfee, and they said the client's license has expired.

OK, so how does an expired license crash a server? When McAfee Anti-Virus doesn't have a current license, and it attempts to get an update from home, it crashes. Yes. It crashes. This behavior is a known defect, but they won't fix it for us unless we renew the license. So until we pay them we can't fix our server, and every day, like poor Mr. Bix[1], I have to fix it.

Now, let me explain how Symantec does this, because I think it's instructive, and I've just updated my own virus protection in this fashion:

  1. Forty-five days before the license expires, the server itself sends an email to the administrator, right there on site, and pops up a helpful box when you log into the server for any purpose.
  2. To update the license, you pay your fee, then they email you a license certificate.
  3. You go online and enter the certificate number, then they email the license to you. This two-step process seems cumbersome, but it helps ensure the right person gets both files, and the files aren't misplaced.
  4. You go to the server, log into the virus console, and slurp up the license. Boom: done.

So instead of giving McAfee more money, we're switching to Symantec.

[1] I refer, of course, to the following passage from Did I Ever Tell You How Lucky You Are? by Dr. Seuss:

And poor Mr. Bix! 
Every morning at six,
poor Mr. Bix has his Borfin to fix! 

It doesn't seem fair. 
It just doesn't seem right, 
but his Borfin just seems 
to go shlump every night. 

It shlumps in a heap, 
sadly needing repair. 
Bix figures it's due 
to the local night air. 

It takes him all day to un-shlump it. 
And then....

The night air comes back 
And it shlumps once again!

So don't you feel blue. 
Don't get down in the dumps. 
You're lucky you don't 
Have a Borfin that shlumps.

Phil saw his shadow; I didn't

It's Groundhog Day!

And it's official: Punxsutawney Phil saw his shadow, meaning another six weeks of winter. And he wrote a little poem about it, which is pretty impressive for a marmot. (You'll have to read the poem on the official Groundhog Day site.)

Also impressive, this rodent has been around for 120 years, as the FAQ explains:

How many "Phils" have there been over the years? There has only been one Punxsutawney Phil. He has been making predictions for over 120 years! Punxsutawney Phil gets his longevity from drinking "groundhog punch," a secret recipe. Phil takes one sip every summer at the Groundhog Picnic and it magically gives him seven more years of life.

I'm thinking it would make more sense to drink the punch every 6 years instead of every year, but maybe Phil is banking on the future.

Also, he's seen his shadow in 8 of the past 10 years, and though there is no record of his prognositcal success, I'm quite certain that winters have gotten milder recently. This makes me wonder if Phil isn't playing around a bit with the definition of "winter," and the two times he didn't see his shadow were in years when spring began not on March 20th, as usual, but on Mardi Gras.

I, by the way, didn't see my shadow, as it's a perfectly normal grey Chicago morning here. This is what it looked like at sunrise:

Because they're the phone company

We were dark for over 6 hours today because someone at SBC did something, though no one seems to know who or what. The result was that the Inner Drive Technology World Headquarters had no phone or Internet service from 9:15 am CT/15:15 UTC until 3:30 pm CT/21:30 UTC.

Sadly, this came on the first day of our Weather Now beta launch, which shows off some of our coolest stuff ever. (At this writing it's still a few hours behind, with weather from lunchtime today, but it's catching up as fast as it can.)

One of my friends asked, "How can they do that?" Well, like I said...they're the phone company.

President at 39%; State of the Union "Unwatchable"

The latest NBC/WSJ poll finds only 39% of Americans think the President is doing a good job. I can't remember a President with lower approval ratings, ever. And still this one believes he has a mandate. Incredible.

A related item: Journalist Josh Marshall finds the State of the Union address "unwatchable" in general. I think if it weren't on a Tuesday and one could make a serious drinking game out of it, perhaps it could be more fun, but alas. I'll probably watch it anyway, though Anne might want to leave the house for all the cursing it's sure to evoke.

Round-up of sad news stories

Not that anyone is surprised, but Samuel Alito got confirmed an Associate Justice of the U.S. today.

Civil-rights activist Corretta Scott King died this morning.

Exxon reported a $36 billion profit in 2005, the largest corporate profit ever, making Exxon shareholders the largest beneficiaries in history of the ongoing environmental degradation of our planet.

And today is Alan Greenspan's last day as Federal Reserve Chairman, which actually may be good news for our children, since it's unlikely that incoming chariman Ben Bernanke will allow the structural imbalances in the U.S. economy that Greenspan encouraged to continue. More on that later.

Finally, the Oscar nominees were announced this morning, prompting me to send a very long, pun-filled email to Anne, which I will spare my loyal readers.

That is all.

Use property accessor methods, even inside your classes

Genius Boy here just spent ten minutes debugging a class because I used the private field directly inside the class, instead of the property accessor method.

Here's what the property looked like:

public string FileSpec
{
	get { return _fileSpec; }
}
private string _fileSpec;

Notice there's no set method. The file spec is set only in the constructor, and is immutable at runtime. That means that throughout the class I had code like this:

if (File.Exists(_fileSpec))
{
	_cache.Load(_fileSpec);
}

The problem? Well, the private data could contain any number of tokens representing disk or remote folders, which wasn't a requirement when the class was first built.

The solution? C# 2.0 gives you the power to create an accessors of different visibilities, like this:

public string FileSpec
{
	get { return _fileSpec; }
	private set
	{
		_fileSpec = DeTokenize(value);
	}
}

The constructor now looks like this:

public MyClass(string fileSpec)
{
	FileSpec = fileSpec;
}

And then the code that uses the value can do this:

if (File.Exists(FileSpec))
{
	_cache.Load(FileSpec);
}

All better.