The Daily Parker

Politics, Weather, Photography, and the Dog

Google is not evil

I'm shaking my head over the report Federal prosecutors want Google search data. It seems a little poorly-timed, coming as it does during an escalating row over the government's domestic spying (reg.req). Kudos to Google for refusing to turn over the data. Google's press office doesn't have anything up yet, but I'll keep checking. Meanwhile, the Washington Post reported:

"This is the government's nose under the search engine's tent. Once we cross this line it will be very difficult to turn back," said Marc Rotenberg of the Electronic Privacy Information Center, a [Washington]-based nonprofit group that advocates privacy protections. "If companies like Google respond to this kind of subpoena... I don't see why the next subpoena might not say, 'Give us what we asked for the last time—plus a little more.'
"Google has always been a kind of ticking privacy bomb because Google retains personally identifiable information," he added. "Even though Google may intend to protect online privacy, there will be circumstances beyond their control that will place Internet users at risk, and they include government warrants, as in this case, or future security breaches which have plagued the financial services sector over the past couple of years."

In an unrelated report of Bush administration political meddling with science, evidence that whale beachings in North Carolina may have been caused by U.S. Navy sonar tests disappeared between drafts:

The federal court order to release the report came at an awkward time for [the National Oceanic and Atmospheric Administration] and the Navy, which has been holding public hearings on its controversial plan to build an underwater sonar training range.

Only 1,096 days left in this administration...

It's March..no, January...no...

It's 12°C (54°F) in Chicago right now. Fifteen degrees (25°F) above normal is great in January. I may have to open a window...or go outside...things we don't normally do around here mid-winter.

Tribune news roundup

The Chicago Tribune had several stories of interest this morning.

Meterologist Tom Skilling noticed more daylight, possibly because he reads my blog. Unfortunately, he got the number of minutes more daylight a little wrong, because he only looked at half the equation, and even still didn't subtract correctly. First, the difference between 4:23 and 4:50 is 27 minutes, not 28; second, sunrises got later before getting earlier, so we actually have 9 hours 35 minutes of daylight now, which is 26 minutes longer than December 21st's 9 hours 9 minutes.

Technology writer Steve Johnson has a primer on starting a blog, which wasn't any more or less than expected except it had a notice about the Chicago Blogger Meetup on February 21st. (Of course, http://www.chicagobloggers.com/ has nothing about the meetup, and Meetup.com mentions it for February 15th. I've emailed the author about the discrepancy.)

Finally a news item about a high-schooler expelled for a doodle, showing that McHenry County schools exemplify the Peter Principle in action:

The drawing is of a cross, with a spider web on one side and a crown at the top. In the middle of the cross are the initials "D.L.K." The teen, whose full name is Derek Leon Kelly, said the initials are his. School officials have alleged that they could stand for "Disciples Latin King," his mother said. The Latin Kings and Latin Disciples are rival gangs.

Forgetting Occam's Razor for a moment, I must ask, what's going on here? Even if he was drawing gang symbols, that's not the same as being in a gang--which is actually irrelevant, because freedom to assemble is in the same amendment as freedom of speech. Sure, expel him if he brings a weapon to school, or gets into an actual gang fight. But for drawing? That's just stupid.

Update, 11:26 CST/17:26 UTC: Steve Johnson replied as follows:

Suspect what you saw may have been an earlier, tentative date (or maybe a different meeting, but I don't think so).
Hey, if you blog about my piece (and I hope you'll take into account the severe restrictions of a 100-line limit), maybe I'll blog about the blogging. And so on, until the whole Internet crashes under the strain of extreme self-reference.

So, to clarify, any implicit criticism of his column I may have had should be directed rather at Tribune Co. for imposing an unrealistic size restriction on it, rather than at the writer, who did a good job with the space he had.

Let's hope the Internet can keep up with us...

President appoints yet another fox to guard a hen-house

The President today appointed Nicole Nason head of the National Highway Traffic Safety Administration, apparently to reward her for her good work lobbying against the National Highway Traffic Safety Administration. This is like appointing Al Capone to run the Women's Christian Temperance Union, or Mike Brown to run, well, anything.

This is another in the President's long history of appointing people totally unsuited for their jobs, but unsuited in a particular, deliberate way. The appointments guarantee incompetence, either by accident through the character of the appointees, or deliberately through the agendas of the appointees. I imagine someone in the West Wing cackling gleefully at yet another appointment that will (a) harm the reputation of the Federal government enough to make people take it less seriously and (b) make us on the left howl in protest. I fear the strategy is working.

If our party could just stop self-immolating, I have no doubt that we could win elections based on this history of whittling away government's effectiveness. We could point out, for just one example, that FEMA under Clinton actually saved lives when major disasters struck.

As Tom Lehrer once said, you begin to feel like a Christian Scientist with appendicitis.

Update, 3pm CST/21:00 UTC: The Washington Post has (a) corrected the article to say that Nason was not, in fact, a lobbyist on transportation issues; and (b) has added a link to this posting.

The corrected article still contains this sentence:

Nason, as assistant secretary of transportation, acted primarily as a lobbyist for the Bush administration in opposing safety proposals that the agency now has the responsibility to enforce, said Joan Claybrook of the consumer advocacy group Public Citizen.

If Claybrook is correct, then my earlier conclusion stands: Nason has opposed the NHTSA's mission in the recent past, which makes her unsuitable to run the agency, which in turn makes her a typical Bush nominee.

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.