The Daily Parker

Politics, Weather, Photography, and the Dog

So many clichés, so little time

The Washington Post reports that the Republicans are now proposing restrictions on lobbying. This news comes shortly after Charlie Pace threw his "last" package of horse into the fire.

Some lawmakers say GOP leaders are blaming lobbyists rather than examining the legislative processes that have invited corruption, such as the proliferation of home-district pork-barrel projects that have become prime ways to reward campaign supporters.

So, let's review: The majority party, that set up a lobbying program the scope and audacity of which the world has never before seen, a program so disgusting even the Republican-controlled Justice Department has been moved to indict more than one Republican congressman, now wants to turn off the tap?

Stop them before they bribe again.

Say what?

"There are SBA loans for this. And I understand for some the word SBA means Slow Bureaucratic Paperwork. I hear it loud and clear."
—George W. Bush

Reported in today's Doonesbury Daily Dose.

Secrecy protects incompetence, not us

Former Vice President Gore's address to the Liberty Coalition yesterday is worth reading. He draws a direct line between the authoritarian mindset and incompetence. This is not a casual relationship; the executive's power grab encourages incompetence and lessens our security. Says Gore:

In the words of George Orwell, "We are all capable," he said, "of believing things which we know to be untrue and then, when we are finally proved wrong, impudently twisting the facts so as to show that we were right." Intellectually, it is possible to carry on this process for an indefinite time. The only check on it is that, sooner or later, a false belief bumps up against solid reality, usually on a battlefield.
Two thousand two hundred American soldiers have lost their lives as this false belief bumped into a solid reality. And indeed, whenever power is unchecked and unaccountable, it almost inevitably leads to gross mistakes and abuses. That is part of human nature. In the absence of rigorous accountability, incompetence flourishes, dishonesty is encouraged and rewarded. It is human nature, whether for Republicans or Democrats or people of any set of views.
Last week, for example, Vice President Cheney attempted to defend the administration's eavesdropping on American citizens by saying that, if it had conducted this program prior to 9/11, they would have found out the names of some of the hijackers.
Tragically, he apparently still does not know that the administration did, in fact, have the names of at least two of the hijackers well before 9/11 and had available to them information that could have led to the identification of most of the others. One of them was in the phone book. And yet, because of incompetence, unaccountable incompetence in the handling of the information, it was never used to protect the American people.
It is often the case, again, regardless of which party might be in power, that an executive branch beguiled by the pursuit of unchecked power responds to its own mistakes by reflexively proposing that it be given still more power. Often the request itself is used to mask accountability for mistakes in the use of power it already has.
Moreover, if the pattern of practice begun by this administration is not challenged, it may well become a permanent part of the American system. That is why many conservatives have pointed out that granting unchecked power to this president means that the next will have unchecked power as well. And the next may be someone whose values and beliefs you do not trust. And that is why Republicans as well as Democrats should be concerned with what this president has done.

Read the rest. It's worth it.

Supreme Court upholds Oregon assisted-suicide law

I got all excited that the Roberts Court had upheld Gonzalez v. Oregon, until I realized the Chief Justice was in the minority with Justices Scalia and, you will be surprised to know, Thomas. Rehnquist would have voted with the majority, I think, so this signals Roberts may not be the Warren some of us were naively hoping for.

I'll have more salient analysis shortly after the U.S. Supreme Court publishes the opinion online. For now, I'll just have to go on the Associated Press report, which appearsto miss the real holding in the case. I say that because the quotes from Kennedy sound awfully more like dicta than holding, but I could be wrong.

The A.P. reports on the dissenting opinions:

Scalia said the court's ruling "is perhaps driven by a feeling that the subject of assisted suicide is none of the federal government's business. It is easy to sympathize with that position."

To which I say, yes, assisted suicide is none of the federal government's business. Later today I'll figure out if that's what the majority thought, too. I am surprised that Scalia thinks it is the federal government's business, when he's usually more of a states-rights guy.

Then there was this unintentionally amusing line:

Thomas wrote his own dissent as well, to complain that the court's reasoning was puzzling.

I just don't know which half of the sentence is funnier.

Update, 5:35pm CT/23:35 UTC: The opinion is available (406 kB, PDF), and I shall now read it.

Second thoughts about framework classes

The Inner Drive Extensible Architecture™ contains a very useful namespace called Quantitative that contains classes and interfaces to use in measuring things. Essentially, there is a trio of interfaces, IQuantity, IUnit, and IPhenomenon, that allow you to create and convert any kind of measurements. The principal implementation of IQuantity is the Numeric structure.

To convert feet to meters, you do this:

IQuantity feet = new Numeric(100, new Foot());
IQuantity meters = quantity.ConvertTo(new Meter());

Even though that looks simple, it has always troubled me. I've realized in the last couple of days that I got the abstractions wrong.

In any object model, you want to work with the most convenient abstractions. It helps if the resulting code looks like English (or whatever your native language is). Quantity, Unit, and Phenomenon are, indeed, abstractions, but they're not the right ones. Here's how I know.

First, the following compiles fine, but throws an InvalidOperationException when executed:

Numeric feet = new Numeric(100, new Foot());
Numeric fahrenheit = new Numeric(100, new Fahrenheit());
Numeric hotFeet = feet + fahrenheit;

Numeric is too abstract, you see.

Also, getting feet to display as, say, kilometers becomes very annoying:

Numeric feet = new Numeric(10000, new Foot());
Numeric meters = (Numeric)feet.ConvertTo(new Meter());
Console.WriteLine(meters.ToString());
// "3048 m" displayed

// Numeric.Unit exposes a Unit which may or may not be metric
IExponential exponent = (IExponential)meters.Unit;
exponent.Exponent = MetricExponent.Kilo;

Console.WriteLine(meters.ToString());
// "3.048 km" displayed

The Numeric structure doesn't care about the metric exponent of its Unit member. Why should it? It contains a value and a unit, and if you add two Numeric objects that use the same Unit, you get exactly what you'd expect.

But why should the Unit care what its exponent is? Now, when converting to or from other Units, it has to take that extra piece of information into account, or the conversions will be off by orders of magnitude.

There are many other problems and annoyances with the Quantitative namespace, which took me months to tease out. But this morning, on the El, I cracked the code (as my dad would say).

Tell me, doesn't this make a lot more sense?

Length meters = new Length(3000, new Meter());
// Alternate syntax using the implicit operator:
// Length meters = 30;
Console.WriteLine(feet.ToString());
// "3000 m" displayed

Length feet = meters.ConvertTo(new Foot());
Console.WriteLine(feet.ToString());
// "9842.52 ft." displayed

Console.WriteLine(feet.ToString(MetricExponent.Kilo));
// "9842.52 ft." displayed; no exception; simply ignored the exponent
Console.WriteLine(meters.ToString(MetricExponent.Kilo));
// "3 km" displayed

And, of course, our earlier example wouldn't even compile:

Length meters = 30;
Temperature fahrenheit = meters.ConvertTo(new Fahrenheit());
// Won't compile

I'll be refactoring this soon. Everything else I'm building depends on it. Watch this blog for a link to the new demo.

California poli-sci professor wants more labor coverage

Peter Dreier, professor of politics and director of the urban and environmental policy program at Occidental College in Los Angeles, writes in today's L.A. Times that the paper should revive its history of reporting on labor issues:

Up until the 1980s, most major newspapers, including The Times, had a regular labor reporter. Today, few papers, The Times among them, have even one reporter exclusively assigned to cover labor.
That may be a consequence—even a cause—of declining union membership. But The Times serves a metropolitan area that has become the U.S. capital of the working poor, where more than 800,000 workers (almost twice the national rate) are union members and where (unlike most parts of the country) labor union membership is actually growing.

I couldn't agree more.

Inner Drive neighbor quoted in Tribune

Down the hall from Inner Drive Technology World Headquarters is the office of nutritionist and author Monique Ryan, who, in yesterday's Chicago Tribune, weighs in on the pressing issue of Anne's and my favorite TV show, Lost: Why is Hurley still fat? Says Ryan:

You would expect that maybe he would [lose weight], but you'd have to sit down and look at what he's eating the whole day. He might also be an individual with a very slow metabolism. We tend to assume that everybody has complete control over things like that, but they don't. Some of that is genetic.

The article has more. We at IDTWHQ eagerly await for February sweeps.

Cross your fingers: the new Webcam works

A while ago we at Inner Drive attempted to install a new Webcam which, in short order, stopped working. Logitech promptly sent a replacement, which so far works fine.

So the Inner Drive Webcam is now much sharper, and less prone to falling, than it used to be:

The only disadvantage is that it doesn't work in Terminal Server mode, so if the server kicks over unexpectedly, the Webcam will be static until we can get to a terminal and fix it. (We'll experiment with that later on.)

Also: The camera, a Logitech QuickCam Orbit MP, is adjustible--so it will change angles every so often.

We are very happy.

P.A. stands for "<b>Public</b> Address"

It seems a train conductor in Chicago had some musings about the new Chicago smoking ban, which he shared with riders on an inbound commuter train yesterday.

Seems these musings contained a bad word:

Veering from his script notifying riders about the ban, the conductor used a vulgar sexual epithet over the Metra train's public address system to describe the city officials who enacted the ordinance.

Seems he's looking for a new job now.

For my part, I can't figure out what epithet he used, but I'm guessing it was close to "putz."