On a recent trip to the local Barnes & Noble, I was surprised to see Russell Baker's Growing Up in the autobiography section. The book came out 26 years ago and Baker has faded from the public spotlight since his retirement in 1998 from the New York Times, where he was a popular columnist. I picked the book up, figuring it must be a pretty good memoir to have outlasted the author's fame, and noticed a week later that the bookstore had already reordered a copy.
Baker's book is a great memoir. He tells the story of his childhood growing up in the Depression, which takes him from a rural Virginia shack without electricity or running water to stark poverty in Belleville, New Jersey; and Baltimore, where his widowed mother must rely on the charity of family members to feed the family. Baker, born in 1925, frames the story with his 84-year-old mother's lapse into dementia at a nursing home, which has untethered her from the present and drops her into random points in her life. One day he comes to see her and is met with the question "where's Russell?" In her mind, she'd become a young mother again with a three-year-old boy and a younger sister. Russell's father, who she met when his car broke down leaving the local moonshine distillery, had not yet died in his early thirties from diabetes because insulin wasn't available.
Although the specifics of Baker's childhood are often grim, he writes with a sense of humor about himself that reminded me of Jean Shepherd's narration in the movie A Christmas Story. This is particularly true when he describes how his lack of aptitude for anything else led him to journalism. "The only thing I was fit for was to be a writer," he writes, "and this notion rested solely on my suspicion that I would never be fit for real work, and that writing didn't require any."
Baker's modesty about his own abilities is misplaced. He writes well, telling the human cost of the Depression through the lives of his relatives. He focuses in particular on his mother and her diminishment of opportunities. A college-educated schoolteacher, she remains jobless for years and can't fulfill her dream of putting the family in their own home until he's almost in college. The Bakers are so poor that at one point she gives up her third child, still an infant, to be raised by childless relatives.
Baker's mother ends up living through her children, leaning hard on Russell to make something of himself and putting him to work on the streets selling the Saturday Evening Post when he's just eight years old. She's so miserly about affection and praise that by the end of the book, I needed a hug. Unfortunately, the story ends with Russell as a newlywed who has not yet made anything of himself as a journalist, so there's never the cathartic third-act moment where the mother makes clear that her sacrifices on behalf of her only son were worth it. That bummed me out.
Although he's retired from the Times and a second gig hosting PBS' Masterpiece Theatre, Baker still writes occasionally for New York Review of Books.
After banning the same person more than a dozen times from the Drudge Retort, I decided to experiment with a new site feature this afternoon that turned into a failure of epic proportions. I'm documenting it here so that other people who run online communities will avoid making the same mistake.
Throughout its history, the Retort has attracted a small number of users who delight in creating a large amount of trouble. They want to prove that no moderation system has ever been devised that can hold them. I am not questioning their decision or their singleminded pursuit of this goal. It is important to have hobbies.
When I see a new user show up who acts like somebody I've kicked off, I have written code that determines whether other users have connected to the server with the same IP address. Nine times out of 10, this reveals the user's real identity and I drop the account.
Since Retort users are conscientious about flagging offensive comments, I thought it would be a good idea to let users check whether a user has shared an IP address with others on the site. No IP addresses were revealed. My site checked the addresses associated with a user and posted a report like this:
ToniTennille has used the same IP address as the following users:
Within an hour, it became clear that this was a terrible idea. So terrible, in fact, that I must downplay my own poor judgment by using the passive voice.
Mistake was made.
If an Internet service provider, employer or school assigns IP addresses to its users from a small pool of addresses, people who don't know each other will share the same IP. I thought the Retort wasn't particularly large -- the site has 18,900 users, 1,700 of whom have logged in the past 90 days -- so the chances were slim that users who don't know each other at all would have ever shared an IP address.
Inaccurate conclusion reached.
As it turns out, there are a lot of people who share IP addresses for entirely innocent reasons completely without their knowledge. This was particularly true on my site of people using BlackBerries. Before I took the new feature offline, there were a dozen false positives. The flaw in my thinking is that I only was looking at shared-IP information when I already had reason to suspect that a user was bogus. So I could tell pretty quickly whether I had caught a troublemaker or not. When I wasn't sure, I ignored the information.
Retort users, on the other hand, gleefully checked out everybody and reported back the results, whether or not they made any sense.
I have a good track record with user privacy on my sites. As a general rule, I don't provide any personal information about my users to people who ask, no matter what the reason. As I've told a few lawyers and one police agency, I only would reveal a user's IP address or similar identifying information in response to a court order.
The new feature never revealed any IP addresses. But it was still staggeringly stupid and misleading, and all I can say in my defense is that I recognized the error and killed the experiment 1 hour and 43 minutes after it began.
Apology offered.
Here's an interesting message for 100 million Super Bowl viewers: If you hate your hectoring shrew of a wife ...
... you'll love a Dodge Ram Charger!
On Jan. 25, James O'Keefe and three other conservative activists were arrested after a weird incident in which they entered Sen. Mary Landrieu's (D-La.) office in New Orleans dressed as telephone repairmen and attempted to gain access to the closet where the phone system was serviced. They were charged with "entering federal property under false pretenses for the purpose of committing a felony," according to an FBI press release.
There's been a lot of speculation about the motives of O'Keefe, who led an attempted sting of ACORN offices last fall that was widely publicized and helped spur Congress to drop millions in funding for the voter registration and lower income charity. Messing with the telephones in a federal government official's office is a serious felony, whether O'Keefe and his associates were planning to bug the phones, vandalize them or achieve some other purpose. If they are convicted, the four men face up to 10 years in prison and a fine of $250,000.
On a web site published by Andrew Breitbart, who has O'Keefe on his payroll but denies involvement in the Landrieu incident, O'Keefe issued a statement after the arrest claiming that "[n]o one tried to wiretap or bug Senator Landrieu's office. Nor did we try to cut or shut down her phone lines."
This statement doesn't explain why some of them were dressed as repairmen and tried to access the telephone closet, as the FBI alleges.
An article that O'Keefe wrote in November 2008 for the online conservative magazine New Guard may shed some light on his actions. In the article, O'Keefe describes a past sting project where he and a young anti-abortion activist named Lila Rose contacted Planned Parenthood offices seeking to donate money to fund abortions and reduce the number of black babies in the United States.
We were able to donate money to the organization for the explicit purpose of reducing the number of black babies born in the United States -- in line with the intentions of Planned Parenthood's founder, Margaret Sanger.
We carefully chose a dozen or so "one party consent" states, where it is legal to audio record someone without their consent. Not a single Planned Parenthood employee we spoke to was disinterested in the prospect of a donation for our stated purposes.
As he did later at ACORN offices, O'Keefe targeted low-level employees of liberal leaning groups and tried to get them to say something damning while he was taping the interactions. Although he says that the Planned Parenthood taping was legal, he also writes this in the article:
Leaders taking on power structures need to be raw, confident, fearless and impermeable. Lila received a letter threatening to prosecute the group for violating wiretapping laws, but it did not stop her from continuing the investigation. After the investigation aired nationally on Fox News, Planned Parenthood could no longer press charges, as Lila would appear the victim.
O'Keefe believed that even if he and Rose were putting themselves in legal jeopardy, the fear of bad publicity would make it impossible for charges to be pressed against them.
I don't know what O'Keefe and his fake telephone repairmen were planning to do at Landrieu's office, but he seems to believe that when you break laws in pursuit of a media stunt, the coverage will shield you from prosecution. That hasn't worked out for him this time around.
Over the past year, one of my side projects has been the development of shopping directory sites for categories such as wargames, sports cards, videogames and farmers markets, the last of which I launched over the weekend. The sites are running on LAMP (Linux, Apache, MySQL and PHP) using my own code and the Smarty template language, which keeps me from cluttering up my web pages with PHP.
As I prepared the newest site, I decided to implement a feature that takes a user-submitted address and finds the closest stores. This functionality was the original impetus for the project -- I thought it would be cool if Wargames.Com had a store locator that could find the closest wargame store when I'm out of town.
To accomplish this, I needed to split latitude and longitude into their own fields in the MySQL database and use the following SQL query to find the closest stores to a user-submitted latitude and longitude:
SELECT *, (3959 * acos(cos(radians({$user_latitude})) * cos(radians(latitude)) * cos(radians(longitude) - radians({$user_longitude})) + sin( radians({$user_latitude})) * sin(radians(latitude)))) AS distance FROM stores HAVING distance < 250 ORDER BY distance LIMIT 0, 10
This query, which I found in a PHP/MySQL tutorial by a Google Maps engineer, employs the Haversine formula to compute distances between two pairs of coordinates on a sphere. The fields latitude and longitude are from the MySQL database. The PHP variables $user_latitude and $user_longitude contain the coordinates of the user address.
An address can be specified many different ways, but most people don't know the latitude and longitude of their location. Fortunately, Google Maps offers a web service that can take an address in a wide variety of formats and attempt to determine its latitude and longitude. The web service, which is a simple URL request, returns the information in either XML or JSON format. It requires a Google MAPS API key:
http://maps.google.com/maps/geo?q=ADDRESS&output=json&oe=utf8&sensor=false&key=YOUR+API+KEY
Plug the address and your API key into the request, changing "json" to "xml" if you want XML data. Here's example output for Disney World in JSON and XML.
I chose JSON over XML because it's easier to work with in PHP. PHP 5 has built-in support for JSON, but my sites are on a server running PHP 4, so I installed the Services_JSON library. After a brutal hour of trial and error that made me question programming as a lifestyle choice, I figured out that the following four lines of PHP code will pull a latitude and longitude out of Google's JSON address data:
$json = new Services_JSON();
$json_data = $json->decode($this->get_web_page($url));
$addr_latitude = $json_data->Placemark[0]->Point->coordinates[1];
$addr_longitude = $json_data->Placemark[0]->Point->coordinates[0];
The get_web_page()
function returns the contents of a web page as a string.
I've added the closest-store search to all four sites, which you can try on the home page of Sportscard-Stores.Com. The next project will be to create mobile versions of the shopping sites so users can hunt stores with their phones.
Last night on the Drudge Retort, I honored the request of a few Republican members of the site to bring back News Alert Banana when the Massachusetts Senate race was called for Scott Brown. The Banana is the Retort's version of Matt Drudge's siren.
The banana has never celebrated a dramatic Republican upset victory with so much glee before. I don't know how he lives with himself.
There are a lot of reasons being batted around today for how the Democrats managed to lose a Senate election in Massachusetts. My favorite is the idea that voters in a liberal state that has universal health care voted for Brown, a candidate who supports the state's health care plan, in order to send a strong message in rejection of health care reform. That's like buying a Red Sox jersey to indicate how much you love the Yankees.
One reason for the ass-kicking ought to be getting more attention today, in my opinion: The Democrat-led Massachusetts legislature changed the Senate succession rules twice in the last six years to benefit their own party.
In 2004, when Sen. John Kerry of Massachusetts was the party's presidential nominee, the legislature faced the prospect that if Kerry won, the state's Republican governor Mitt Romney would be able to appoint his successor. They changed the rules at the urging of Sen. Ted Kennedy so that a special election would fill the seat instead.
Last year, when it appeared that Kennedy would die and leave the Senate Democrats one short of a filibuster-proof majority of 60 members, the rules were changed again with his involvement. The state's Democratic governor Deval Patrick would be able to appoint an interim successor to serve until the special election.
So when a little-known Republican state senator faced off Tuesday against the Democratic attorney general, who was supported by the Kennedys and the state's political establishment, this was the first time that voters had a chance to have their say in the choice of a replacement senator.
Message received.
The American public is sick and tired of insiders rigging the system for their own benefit, whether the system is politics, banking or Wall Street. Kennedy's gamesmanship with Senate seats helped elect the first Republican senator in Massachusetts in 38 years.
The new Fox series Human Target has amazing opening credits:
I caught the pilot during a special preview Sunday night sandwiched between episodes of 24. Regular airings begin Wednesday. The show, based on a DC comic book from the '70s, was a light escapist romp. Mark Valley, who was great a few years ago in a similar role as Keen Eddie, plays an out-of-his-mind bodyguard for hire who manages to get shot, stabbed, blown up and trapped on a runaway bullet train in a single episode. The great Jackie Earle Haley, Rorschach from Watchmen and Kelly Leak from Bad News Bears, plays his unscrupulous henchman Guerrero.