Excellent column by Bruce Schneier:
A future in which privacy would face constant assault was so alien to the framers of the Constitution that it never occurred to them to call out privacy as an explicit right. Privacy was inherent to the nobility of their being and their cause. Of course being watched in your own home was unreasonable. Watching at all was an act so unseemly as to be inconceivable among gentlemen in their day. You watched convicted criminals, not free citizens. You ruled your own home. It's intrinsic to the concept of liberty.
Too many wrongly characterize the debate as "security versus privacy." The real choice is liberty versus control. Tyranny, whether it arises under threat of foreign physical attack or under constant domestic authoritative scrutiny, is still tyranny. Liberty requires security without intrusion, security plus privacy. Widespread police surveillance is the very definition of a police state. And that's why we should champion privacy even when we have nothing to hide.
Direct Democracy has a wonderful pair of maps showing, shall I say, a subtle change in political colors since the 2004 election.
For those keeping score at home, there are only 171 days and 22 hours until the 2006 election.
The Chicago Tribune reports that Anheuser-Busch is buying a stake in Goose Island Brewing Co.:
Anheuser-Busch Inc., which brews Budweiser, Bud Light, Michelob and other beers, is close to purchasing up to 35 percent of the local brewery and taking over distribution of the Chicago beer that is growing in popularity.
Neither Goose Island president and founder John Hall nor his son Greg, Goose's brewmaster, could be reached for comment on the negotiations that have stretched on more than six months.
A deal will relieve Goose Island of the marketing and sales problems that have hung over the brewery since it terminated its sales and marketing agreement with United States Beverage LLC in 2004.
The company had been using the firm to help market to retailers and bars and assist in contracting deals to use excess brewing capacity at its West Side brewery.
For those readers outside Chicago, Goose Island makes the best beer in Chicago. I hope, if Busch buys a third of them, that they continue. But it's sad.
In the ongoing, and now expanded, case the Electronic Frontier Foundation has brought against AT&T for its role in aiding the National Security Agency's efforts to spy on us, U.S. District Court Judge Vaughan Walker will allow confidential AT&T documents into the case:
The evidence at issue was filed as support for EFF's motion for a preliminary injunction against AT&T, seeking to stop the company's ongoing violations of the law and the privacy of its customers.
AT&T had requested that the evidence be returned to AT&T, and not used in the case. Wednesday, Judge Walker denied that request. Although the allegedly proprietary documents will remain under seal, Judge Walker instructed AT&T to work with EFF to narrowly redact any confidential material from EFF's brief and supporting declarations so that they can be made public as soon as possible.
Salon (reg.req.) reports that the documents came from retired AT&T technician Mark Klein, who "was motivated to blow the whistle in 2004 'when it became clear to me that AT&T, at the behest of the National Security Agency, had illegally installed secret computer gear designed to spy on Internet traffic.'"
It's about time.
After years of being robbed and lied to, a new ABC/Washington Post Poll shows Americans finally connect the Republican control of government with the theft and lies:
Dissatisfaction with the administration's policies in Iraq has overwhelmed other issues as the source of problems for President Bush and the Republicans. The survey suggests that pessimism about the direction of the country—69 percent said the nation is now off track—and disaffection with Republicans have dramatically improved Democrats' chances to make gains in November.
Democrats are now favored to handle all 10 issues measured in the Post-ABC News poll. The survey shows a majority of the public, 56 percent, saying they would prefer to see Democrats in control of Congress after the elections.
We'll find out if this holds up about 174 days from now.
Incompetence and cronyism, the handmaidens of the Bush administration (980 days left), explain its failure to create a working prescription drug program. Simply put, they (a) don't want government to work and (b) want to enrich their friends, as Paul Krugman underscores (sub.req.):
[W]hile a straightforward addition of drug coverage to Medicare would have been good policy, it would have been bad politics from the point of view of conservatives, who want to privatize traditional social insurance programs, not make them better.
Moreover, administration officials and their allies in Congress had both political and personal incentives not to do anything that might reduce the profits of insurance and drug companies. Both the insurance industry and, especially, the pharmaceutical industry are major campaign contributors. And soon after the drug bill was passed, the congressman and the administration official most responsible for drafting the legislation both left public service to become lobbyists.
Remember, this is the administration that wants to shrink the government so small they can "drown it in the bathtub." What made anyone think the prescription drug plan would work?
In the four days since USA Today reported that the NSA has millions of phone records, millions of decent, hard-working Americans have said, "So what?" I think there are two reasons for this: first, data security seems like an esoteric and hard-to-understand sub-field of computer science, which makes people disinclined to think about the problem; and second, most people need concrete examples to understand things clearly.
How about this simple, concrete example: ABC News is reporting today that reporters' phone logs are being used in the ongoing CIA leak investigation.
By figuring out who reporters called and when, and who called the reporters, investigators—and heck, any modestly-trained chimpanzees for that matter—will have little trouble figuring out who leaked information to them.
Let's all say it together, shall we?
The right of the people to be secure in their persons, houses, papers, and effects, against unreasonable searches and seizures, shall not be violated, and no warrants shall issue, but upon probable cause, supported by oath or affirmation, and particularly describing the place to be searched, and the persons or things to be seized.
Polls open in 175 days, 18 hours.
I arrived in Nashua, N.H., from Chicago just a few minutes ago, and two hours later than anticipated because of rain. Lots of rain. In fact, it turns out, they've had more rain than during any May on record—and the month isn't even half-over:
Two weeks into the month, rainfall totals in Concord were expected to wash out the May record of 9.52 inches set in 1984, Cannon said. Official totals have been tracked since 1864.
I believe it has rained almost every day this month, and rain is forecast every day until Saturday. Wonderful.
Reported by Bruce Schneier:
The NSA would like to remind everyone to call their mothers this Sunday. They need to calibrate their system.
Don't know whether that's funny or scary...
Here's some code I discovered while tracking a bug this morning:
const string DATE_FORMAT = "M/d/yyyy";
string dateString =
ConfigSettings.GetString("Some setting", DateTime.Now.ToString(DATE_FORMAT));
DateTime someDate =
DateTime.ParseExact(dateString, DATE_FORMAT, CultureInfo.InvariantCulture);
The DateTime.ParseExact method throws a FormatException if the string (dateString) doesn't exactly match the format string. I mean, exactly. So when dateString comes back from the configuration settings class as "5-12-2006" (instead of "5/12/2006"), guess what happens.
DateTime someDate = DateTime.Parse(dateString, CultureInfo.InvariantCulture);
The DateTime.Parse method takes any legal input and attempts to parse it, freeing the developer from having to know what formats may occur. The DateTime.ParseExact method has some specific applications, but when you don't know what you're getting, it's risky—especially when you don't actually catch the FormatException anywhere.
Of course, the DateTime.Parse method could also throw a FormatException. In the code I'm debugging, since the date isn't really coming from a configuration set that we control and is, in fact, coming from an unknown third party, I'm actually going to go with an even more forgiving option:
string dateString = ConfigSettings.GetString("Some setting", string.Empty);
if (DateTime.TryParse(dateString, someDate) == false)
someDate = DateTime.Now;
Moral: Never assume anything about inputs you don't directly control.
 You could tell all that from the name of the class, right? I mean, if you see something called "ConfigSettings" you kind of assume that the class has something to do with configuration settings, and doesn't have anything to do with talking to computers in Ohio, right? I'm not making this up: the method call in question may go to Ohio for its data. This highlights the importance of naming your classes correctly so that people trying to use your code don't curse your name unto the generations.