My Crash Course in Weblog Hosting

Buzzword.Com was offline yesterday for reasons that remain shrouded in mystery. Server uptime has been better than expected, considering the number of weblogs and my inexperience hosting a Manila server, but I am finding that UserLand's software runs itself well most of the time.

Because I host most of my own Web sites on another server (a Linux box running Apache, MySQL, and PHP), I don't always catch downtime as quickly as I should.

If you're publishing a weblog on Buzzword and can't reach it, or you experience problems posting entries and performing other tasks, don't hesitate to send an e-mail or post a message on UserLand's customer support forum. I tinker with the server like a gearhead puttering around on a car, so I'm always looking for user feedback on how well the engine is running and whether I've done anything that causes it to crash through the guard rails and go flying into a ravine.

I'm a big fan of Salon.Com, but I have to call out a tasteless metaphor by Publisher David Talbot in a story about the survival of his magazine and Slate:

I think once the Internet bust got into full swing, it was like being survivors of a tsunami. Everybody was glad they were still there, no matter how they felt about each other before it hit.

I'm Joining the Pod People

One of my favorite presidential traditions is the weekly radio address, a practice revived by President Nixon and carried on today. Bush treats them like homework, but in the hands of a natural politician like Reagan or Clinton, the short speeches are an inspired throwback to the days when Americans hovered around the family Victrola to hear FDR's historic fireside chats.

Every Saturday afternoon, the president delivers a short address followed by a response from a member of the opposition party. Both can be heard on C-Span Radio beginning at around 2:50 p.m. Eastern time, and they're also carried by some radio stations around the country.

The president's speeches are archived on the White House site and often make news.

The Democrats occasionally grab headlines with their speech, such as when an Iraq War veteran in May criticized the government for the lack of body armor, but for the most part they're a missed opportunity. There's no archive on the Web, as far as I can tell, and no publicity aside from a press release on PR Newswire.

I'm going to offer the Democratic response as a regular podcast on Workbench, beginning with today's speech by U.S. Rep. Jim Clyburn of South Carolina.

I've attached the audio to this weblog entry as an enclosure, which you can download automatically using a news aggregator that supports podcasts.

A transcript of his remarks:

Good morning. This is Congressman Jim Clyburn of South Carolina, Vice Chair of the House Democratic Caucus.

Allow me to pause for a moment to speak on behalf of all Democrats in expressing our deep condolences for the terrible loss of life in South Asia due to the massive earthquakes and tsunami this week. Our thoughts and prayers are with them and their families, and all Americans stand ready to work quickly to provide the appropriate assistance to help with this enormous tragedy.

These events remind us as we embark on this New Year of what is most important to each of us. New Year's follows our nation's most reflective and redemptive season -- Christmas for many of us, Kwanzaa for some, and others, Hanukkah. Regardless of what we call it, it's a period of rededication to the principles and various faiths that make us who and what we are.

As a new Congress convenes this month and President Bush is inaugurated for a second term, we must remain steadfast in our support of those who have been placed in harm's way defending this nation's honor. And we must be resolved in our stewardship of the values that make us Americans. We can do this by making, and keeping, a few New Year's resolutions.

First, President Bush and this new Congress must resolve to adequately equip our fighting men and women. Our soldiers should never want for proper equipment and accurate intelligence. Their patriotism and sacrifice should never be doubted or compromised. And they and their families should always be treated with dignity, respect, and fairness. Our first responders, who are the frontline defenders of our homeland, should also receive proper support and due deference. That was not always the case last year, and we must do better by those who provide for our safety and security this year.

Second, this new Congress and President Bush should resolve to give renewed hope and confidence to our future generations. It violates the basic tenets of our nation's values to saddle our children with unparalleled debt and unprecedented deficits, while underfunding 'No Child Left Behind' -- shortchanging our children's education and leaving millions of them behind. And we need to make a college education more affordable, not cut student loans and Pell Grants.

It is unacceptable that nearly 13 million American children live in poverty and 8.4 million have no health insurance. We must do more to lift the poor into the middle class and to extend health insurance to parents and children.

Finally, the President and Congress should resolve to keep faith with those whose blood, sweat, and tears have provided us with a country worth fighting for. Our seniors and vulnerable neighbors deserve better than the politics of fear that is being heaped upon them.

A surprising number of people view Social Security as only a retirement benefit. In fact, Social Security pays more benefits to children than any other program. Social Security also pays survivors' benefits and helps the disabled. It is a safety net for many of our nation's most vulnerable citizens. To jeopardize the solvency of this resoundingly successful program by gambling Social Security benefits on the stock market is a risk that President Bush and this Congress should resolve to avoid.

Democrats are resolved to protect Social Security and we will continue to do so. Our New Partnership for America's Future reaffirms our commitment to a strong and well-funded national security force, prosperity at home, fairness to all and opportunity for everyone. We are resolute in our pursuit of safe and secure communities, and accountability in government.

We call upon President Bush and the Republican leadership in Congress to join us in this new covenant with the American people.

This has been Congressman Jim Clyburn, Vice Chair of the House Democratic Caucus. I wish you and yours a safe, secure, and prosperous New Year, and I thank you for listening.

As I said in the podcast, I have no idea how to properly encode audio, which I'm attempting in Cool Edit 2000. Technical advice from sound geeks would be appreciated.

Politics · Podcasts · 2005/01/02 · 10 COMMENTS · Link

Thinking Outside the Box

Although I have been touting the new autoboxing and unboxing feature in Java 2 version 5, I didn't realize how far the language is willing to go with these automatic conversions.

The following code doesn't work in version 4:

public void setDeposit(Float deposit) {
  if (deposit >= 0) {
    this.deposit = deposit;
  }
}

You can't use a comparison operator like ">" to compare a Float object and a float value -- an "incompatible types" error indicates that you have made Bytecode Jesus cry.

Instead, you have to call the object's floatValue() method:

public void setDeposit(Float deposit) {
  if (deposit.floatValue() >= 0) {
    this.deposit = deposit;
  }
}

In Java 2 version 5, you can write statements that treat objects as if they were the corresponding primitive types, so the original method compiles successfully.

I prefer a statically typed language like Java over a dynamic one like PHP because of the dumb mistakes that are caught. I thought it was heresy when Hans Nowak suggested recently that these highly praised error-catching capabilities are self-fulfilling:

Rigid languages make types important, so whenever you get a type "wrong" (i.e. different from the declared type signature), it's a bug, and the compiler balks loudly. No wonder a lot of these bugs are caught; the language sets the programmer up to make them.

Now that Java has become smart enough to remove a bunch of my dumb errors, my opinion on this issue is no longer static.

Addressing a PHP Name Resolution Glitch

My PHP error logs have been filling up with an ominous error message:

PHP Warning: main(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure)

I don't know about the low-level cause for the problem, but I've figured out why it's happening so often on my server. I had the bad habit of using URLs in include statements for local pages, like this:

include 'http://ekzemplo.com/menu.htm';

This was causing some pages to require three or more extra domain name lookups, just to pull files from my own server! I'm switching these statements to local file references:

include '/www/ekzemplo/menu.htm';

Server performance has improved noticeably, though I still have no idea what any of this has to do with IPV6.

Multiple Item Enclosures in RSS 2.0

I'm gathering information for the RSS Advisory Board on the issue of multiple item enclosures in an RSS 2.0 feed.

On first reading, it appears to me that an item must contain either zero or one enclosure elements, but I have to do more research about how existing implementors have interpreted the specification.

I created a test feed that contains a single item with two MP3 enclosures. Surprisingly, this feed validates in the Feed Validator and RSS Validator. I'd like to find out if any podcasting-capable aggregators retrieve and present both of the feed's audio files.

Recounts Bring Us Closer Together

In the Washington gubernatorial race, Christine Gregoire has passed Dino Rossi in the hand recount for a 10-vote lead, which will probably grow when 700 votes that were improperly disqualified by one county are examined.

Whether Gregoire wins or Rossi overturns the count in court, the winner's going to have little legitimacy with half of the electorate. As this race and the Bush/Gore debacle demonstrate, this country can't handle photo-finish elections, because no one believes the recount process won't be gamed by one or both parties. (I'm gaming the process by describing Gregoire as the presumptive winner.)

Around 2.8 million people voted in Washington, so the next governor will sweep into office on a mandate that amounts to 1/300th of a percent.

This is no way to run a shining city upon a hill.

If we can't settle maddeningly close races with dueling pistols, there should be a threshold, such as 1/10th of one percent, that triggers a new 30-day registration period followed by a new vote. This would give the electorate a second chance to make up its collective mind and put an end to some recount lawsuits and grandstanding, because both sides would fear the second batch of voters.