I'm currently reading What Happened, former White House press secretary Scott McClellan's 323-page stab in the back to the Bush administration. The book wasn't supposed to be out until June 1, but the publisher lifted the embargo yesterday and I grabbed a copy at Barnes & Noble.
Current and former Bush administration officials are playing dumb on McClellan's motive for writing the book, but he makes it crystal clear in the preface: Valerie Plame leakers in the White House used him to pass along lies to hide the truth and save their own asses, and Scotty don't play that way.
I had unknowingly passed along false information. And five of the highest-ranking officials in the administration were involved in my doing so: Rove, Libby, Vice President Cheney, the president's chief of staff Andrew Card, and the president himself.
For my next two years as press secretary, the false words I uttered at that Friday's briefing would stand as the official White House position on the Plame case.
I'll say more on the book later, since I'm just 66 pages in, but the chapter where McClellan tells his life story makes him sound hopelessly out of his depth as a senior White House official. In a place you'd normally expect a 40-year-old man to describe the intellectual and professional accomplishments that had brought him to such an esteemed position in government, McClellan focuses almost entirely on his childhood.
He mentions that he graduated in the "with honors in the top 20 percent" of his high school class, waged an unsuccessful battle to stop his University of Texas fraternity from paddling, guided his high-school tennis team to second place in state, visited Six Flags over Georgia, and dated a Hispanic in elementary school. He even names her.
Before she lost interest in me, my smart, pretty sixth grade girlfriend was Camille Mojica, a Hispanic girl. Such a relationship was considered unusual in those days.
Mojica appears to have grown up to be a science reporter. Apparently they had a lot of chemistry.
Yuvi Pandian's a 17-year-old in Chennai, India, whose interests in statistics and tech have combined, in true "you got your chocolate in my peanut butter" fashion, to form Stat Bot, a blog that crunches numbers to produce graphs, pies, and other visualizations of our sad corner of the web. I discovered Pandian today when he turned up in my Meme13 feed.
In the four weeks since he began the site, Pandian has shown us how Digg headlines have changed over time, which Twitter clients are favored by Twitter obsessives, and how often TechCrunch pimps TechCrunch.
His most promising field of study has been the gluttonous online activity of Robert Scoble. Thanks to Pandian, we now know when Scoble sleeps, based on an analysis of the 10,598 Twitter messages he posted over a 523-day period:
Scoble never lets you down, especially when it comes to providing data: He's on twitter, friendfeed, flickr, qik, a blog and god-knows-how-many-other-services. I will be analysing the rest of his "Online Life", with posts about them on regular intervals, starting now with his Twitter Stream. ...
As you can see, tweeting gets going at around 7 PM and goes on till 12 AM, and slowly dies down at 1 AM. Usually sleeps from 2 AM to 7 AM, and Twittering picks up again after 9AM.
Though I'm frightened at the prospect of learning more about Scoble, it's cool that a teen in India can worm his way into the tech blogosphere through sheer love of numbers. Sometimes the world is pleasantly small.
Over the holiday weekend, my wife M.C. Moewe wrote a news story for the Daytona Beach News-Journal on the Volusia County optical scan voting machine that registered 16,000 negative votes for Al Gore right as the networks were scrambling to decide who won Florida:
HBO's new docudrama Recount stars Kevin Spacey and Denis Leary, but the real scene-stealer hails from Volusia County -- a voting machine that registered 16,000 negative votes for Al Gore in the wee hours of election night 2000.
"A machine in Volusia went crazy," says Leary in the film, portraying a Gore campaign strategist. "It actually added 3,000 votes to Bush's total and subtracted thousands of votes from Gore. I mean Gore's count right now is negative 16,000 in that county."
What caused the voting machine memory card glitch is not a topic in the account that premieres tonight at 9 o'clock. In fact, it still remains unknown and begs the question: Could it happen again? ...
At the time, employees with the machine's maker said in internal e-mails that an unknown "second" memory card caused the problem. After inquiries from The News-Journal, officials with Diebold Inc.'s Premier Election Solutions recently said there is a problem with a part on the machines in question -- 25,000 are used across the U.S -- which could cause memory card failures.
In Volusia County, the same "crazy" optical scan machines that delivered Gore's negative vote total are still in use.
The negative votes in 2000 could have been caused by four problems according to internal e-mails written by the machine's manufacturer, then called Global Election Systems. A corrupt memory card, an invalid read from a good card, corruption of memory or a card from an "un-authorized source."
As a programmer, I've never understood how Diebold's voting software accepted negative votes and lowered a candidate's total. You'd think the logical impossibility would've caused the input to be rejected before it altered the course of American history.
CNET moved a bunch of its blogs to a different domain this weekend, including Beyond Binary, Coop's Corner, Geek Gestalt, One More Thing, Outside the Lines and The Social. I mention this because the change hosed Meme13, which treated all six as if they were newly discovered sites.
One of my ground rules for developing Meme13 is that I won't hand-edit the site to make it smarter. I need the application to recognize when existing sites in its database have moved.
Meme13 monitors sites using a Java application I wrote that downloads web pages with the Apache HTTPClient 3.0 class library. Web servers indicate that a page has moved by sending an HTTP redirect response of either "301 Moved Permanently," which indicates a permanent move, or "302 Found," which is intended for temporary changes. I wrote a Java method that can find the current location of a web page, even if it has been redirected one or more times:
public String checkFeedUrl(String feedUrl) {
String response = feedUrl;
HttpClient client = new HttpClient();
HttpMethod method = new HeadMethod(feedUrl);
method.setFollowRedirects(false);
try {
// request feed
int statusCode = client.executeMethod(method);
if ((statusCode == 301) | (statusCode == 302)) {
// feed has moved
Header location = method.getResponseHeader("Location");
if (!location.getValue().equals("")) {
// recursively check URL until it's not redirected any more
response = checkFeedUrl(location.getValue());
}
} else {
response = feedUrl;
}
} catch (IOException ioe) {
response = feedUrl;
}
return response;
}
The HeadMethod class requests a web page's headers instead of requesting the entire page, consuming far less bandwidth as it checks for redirects. My Java method looks for both kinds of redirects, because web publishers have a bad habit of using "302 Found" when they've moved a page permanently.
Today's New York Times has an amazing sequence of photos taken by a wedding photographer in Bailu, China, during the May 12 earthquake. Five impeccably dressed Chinese couples were getting their photos taken at an abandoned French missionary church as the disaster struck.
There are more photos on a Chinese-language media site. Photographer Wang Qiang's caption for one photo, which he posted on his blog: "What is happiness, happiness is safe and sound. Having gone through a life-and-death test, they surely will clasp hands and grow old together."
While in college in the late '80s I freelanced for Amazing Heroes, a comics magazine that paid slightly more than the postage required to mail the checks. I was part of a reviewing stable that included Adam-Troy Castro, a writer with a misplaced hyphen who recently wrote Emissaries from the Dead, his first science fiction novel set in a world of his own making.
Emissaries, which is subtitled "An Andrea Cort Novel," carries forward a protagonist and setting from his short stories. The world's wonderfully bizarre, an artificial planet built on the inside of a miles-long cylinder by millenia-old sentient software called the AIsource. Each advanced civilization explores space first with its software, and this code has outlived its coders, joining together with programs from other worlds to form one megabloated Windows release that controls the universe.
The software has engineered sloth-like, spider-armed primates who hang from the vines and roots growing on the outer edge of the world, surviving only as long as they can hold on. These creatures are called Brachiators, from the verb brachiate, and they're the most fascinating thing about the novel.
The battlefield was a patch of Uppergrowth indistinguishable from any other, marked only by the thirty nearly immobile figures wrapped in what their species must have considered to be frenetic combat. There were two groups, whose paths prior to this moment in their respective histories were easy to track by the vines they'd shredded in their wake. They hadn't collided head-on, but rather at an angle, joining in battle as soon as both tribes realized that they'd now be competing for the same patch of their world's ceiling.
The fresh, juicy manna pears hanging in bunches from every vine in sight revealed the conflict as ridiculous, as even Brachiators forced into a course change could have found more food than they could possibly eat within an hour's travel, but that didn't matter to them; their armies had met, and their war had to be fought. ...
The Brachiator battlefield looked like an orgy where everybody had fallen asleep in mid-hump.
Unfortunately, the Brachiators aren't the focus. The novel's about two murders that take place in the small colony of human researchers sent to the planet. Cort's an unloved diplomat sent to solve the crimes without implicating the AIsource, and the bulk of the 386-page novel consists of her talking to potential suspects and interacting with the AIsource, who pose a constant threat to go all deus ex machina and kill the suspense. Castro's story is all talk, ending with Cort's uninterrupted six-page Scooby Doo monologue on how she solved the crimes.
Despite the weaknesses in plotting, Castro's setting carries the book and makes the prospect of another "Andrea Cort novel" intriguing. She just needs a mystery that hangs on a species as compelling as the Brachiators.
I'm continuing to work on Meme13, a site that packages together the last 13 sites to show up on the Techmeme Leaderboard so they can be sampled as a feed or web site. The site has attracted around 25 RSS subscribers in its first month.
I've added a ShareThis widget on each entry that makes it easy to share content from Meme13 on sites like De.licio.us, Digg and Facebook.
Normally, ShareThis links to the page the widget has been displayed on. That doesn't suit my purposes on Meme13, because I'm trying to promote the originators of the content. If someone reads the article about landing a startup job by Ryan Spoon on Meme13, the ShareThis widget should link to the article on Spoon's blog.
ShareThis has a JavaScript API that can be used to teach the widget new tricks. Here's the JavaScript code to set the widget's target link and display the widget:
<p><script language="javascript" type="text/javascript">
SHARETHIS.addEntry({
title:'<TMPL_VAR title>',
url:'<TMPL_VAR link ESCAPE="HTML">',
}, {button:true} );
</script></p>
The <TMPL_VAR title> and <TMPL_VAR link ESCAPE="HTML"> tags are part of the template language used by Planet Planet, the software that publishes Meme13. Here's how the same thing could be done in PHP:
<p><script language="javascript" type="text/javascript">
SHARETHIS.addEntry({
title:'<? echo $site_title; ?>',
url:'<? echo $site_link; ?>',
}, {button:true} );
</script></p>