December 3

A Movable Blog

Once again Nothing Is Perfect is moving, though not very far. Links containing “cgi-bin/blosxom.cgi” will not see any new entries after this one, while those without will land in the transformed space. (Perhaps I could hack things so that the old “cgi” URLs were magically rewritten. Don’t hold your breath.)

The switch is so that I can use Movable Type which has some features that appeal to me—possibly obtainable through plug-ins with blosxom, but I didn’t want to go down that rat hole. On the other hand, this rat hole turned out to be pretty interesting, including a baffling bug that I was able to work around by perseverance when understanding failed.

posted @ 07:08 PM EST

December 4

Blog Entry Migration

In changing blog software I wanted to be able to transfer all of the entries from the blosxom powered instance of “Nothing Is Perfect” into the new system. Movable Type makes that fairly easy to do with a simple, text import format that I was able to get blosxom to generate by making a custom flavour, as it’s called, and slightly tweaking the script so that it didn’t output date headings. The following is all there was to the story file, while the header and footer files were empty.

TITLE: $title
DATE: $mo_num/$da/$yr $hr:$min:00
AUTHOR: hank

I probably could have included the category information, but opted for transferring each category separately since I only had a handful. The content_type file was just a copy of the one for HTML, though I suppose it would have been more proper to use “text/plain” instead.

posted @ 01:03 PM EST

Banner Day in the Alps

The new “Nothing Is Perfect” banner background image is of the French Alps from the Col de la Madeleine on the day that the 2004 Tour de France made that climb.

Elise shows how to modify a Movable Type stylesheet to display a banner image. All I would add is that since it is a template that contains the given code, the image URL can use an MT tag, e.g., url(“<$MTBlogURL$>images/AlpsHeader.jpg”).

posted @ 06:24 PM EST

December 5

Movable Type "umask" Configuration

Yet again Elise Bauer comes through on LMT by providing a link to a support forum topic that helped me understand the problem I had with dynamic page generation by Movable Type. The file creation mode mask for various types can be configured, and needs to be when Apache runs under suEXEC because the server will return an error for a PHP file that is writable by anyone but the owner. The upshot is that in that case there needs to be a line containing “HTMLUmask 0133” in “mt.cfg"—the Movable Type configuration file. One way to tell that suEXEC is enabled is to see that you are the owner of files created by web scripts run by Apache from your directory. Another is to run the following little PHP script that outputs the effective user ID and associated name.
    $euid = posix_geteuid();
    $pw = posix_getpwuid($euid);
    echo "$euid: ",$pw['name'],"\

posted @ 12:47 PM EST

December 6

Trackback Spam

First, a little explication of “trackbacks” (a singularly opaque bit of terminology): with some blogging tools, when posting an entry, you can send a notification to another website that your entry refers to one of its entries. Then, the notified site can add a viewable reference back to your entry. Sounds like a good way to automatically link pertinent, distributed blog articles, right?

The problem is that there’s nothing built into the protocol to validate the relevance of the link in the notification. (As a practical matter, there’s probably no good way to do that.) So, unscrupulous advertisers, aka spammers, are free to send notifications to every website that accepts them and get links to their clients’ products plastered all over the web. Bloggers who want to allow trackbacks, but don’t want their sites littered with (often disgusting) spam, are forced to resort to blacklisting notifiers, content-filtering notifications, and manually deleting the stuff that gets through the automated defenses. The whole mess is just like the current state of the email spam problem. Personally, I don’t like holding that bag of countermeasures and so have disabled trackbacks on this blog. Commenting is enabled but requires TypeKey login, a weak form of ID validation.

posted @ 09:38 AM EST

December 7

Thunderbird 1.0 Released

Thunderbird 1.0 In the wake of the Firefox firestorm Mozilla has released version 1.0 of Thunderbird, their multi-platform, open source, email client. It’s doubtful that there will be the same level of buzz over this as there was over the web browser, but it’s certainly worth a look by those who find something lacking in their current software. Sadly, many of the users who would benefit most from a switch are pretty much locked into MS Look Out! because of their companies’ reliance on its scheduling functionality—one manifestation of the perverse symbiosis between corporate IT departments and Microsoft.

posted @ 07:34 AM EST


Crooked Timber buzzes about a new group blog.

There’s been a lot of hubbub, both here and elsewhere in the blogworld, about the Becker-Posner blog. But if it’s intellectual firepower in a group blog you’re after, you should be reading Left2Right.

Who cares what a bunch of academics think? Well, it turns out that I do and, obviously, some other academics. Anyone else? The blogosphere is getting more interesting, n'est-ce pas?

posted @ 08:21 AM EST

December 8

Foggy on the Left

Unfogged gets at what’s wrong with Left2Right—basically, the mission statement. I’m enjoying reading Left2Right’s entries but keep wondering who the intended audience is: the Right whom they want to find a way to reach, or the Left who wants to find a way to reach the Right? Are they presenting arguments in a way that they hope will persuade their loyal opposition, or are they discussing what the way is that will be persuasive? It seems to me that they’re doing some of the latter and none of the former; not that divisive issues aren’t discussed, just that the discussion of them tends to be rather donnish.

posted @ 02:05 PM EST

The End of the Beginning of Women's Soccer

US Soccer
Tonight in Carson, California, broadcast on ESPN Classic at 8:00 left coast time, the U.S. plays Mexico in the last appearance for the Women’s National Team by Mia Hamm, Julie Foudy, and Joy Fawcett, who along with Kristine Lilly and Brandi Chastain are the remaining members of the 1991 World Cup team and have raised the level of women’s soccer to breathtaking heights, not only in the U.S., but in the world.

posted @ 03:18 PM EST

December 9

Updated to PhpGedView 3.2.1

The Dolben Family software has been updated to version 3.2.1 of PhpGedView. The new version is mainly for bug fixes.

posted @ 07:38 AM EST

Caught on Fire

What I at first thought was fog now looks more like smoke as comments on Left2Right have devolved into flame wars reminiscent of unmoderated Usenet threads, which I also stopped reading (back in the old days, before HTML was a glimmer in the eye of Sir Tim). On Left2Right, just as on Usenet, posters can be anonymous. Threads go off on tangents and get overrun by a few people who just can’t stop bickering. By my unofficial count of a snapshot of the comments on one entry five identities posted 70 out of 115 comments. My advice, which will of course not be followed:

  • put the flame thrower down and step away from the keyboard
  • if you’ve got that much to say, get your own blog.
David Velleman said that “the way to get through to people is to listen to them and be willing to learn from them.” I wonder how much listening to this logorrhea he and his colleagues are willing to take.

posted @ 02:02 PM EST

December 14

Yearly Tables of Monthly Archive Links

The yearly tables of monthly archive links at the bottom of the sidebar on this blog’s pages are produced by a Movable Type plugin that I wrote.

posted @ 08:43 AM EST

December 18

Spam Wars

Chad Everett cooked up MT-Approval, a Movable Type plugin, to thwart a major blog comment spambot by requiring a hash code in a comment posting form. This amounts to a rather minor escalation in the comment spam arms race, easily countered by a spambot developer. Plucking the hash code out of the comment preview page HTML and automatically generating an approved post would be quite trivial. The only hope for long-term effectiveness is that a small enough number of people employ this defense that the spammers don’t bother having their tools modified to blow it away.

posted @ 08:41 AM EST

December 19

Twelve of One and a Dozen of the Other

Wikipedia, the open source encyclopedia, has an article on the song “Twelve Days of Christmas”—notably informing of variations that have recently come to my attention, e.g., in conflicting order of the last verses between a music book and a jigsaw puzzle, as well as colly, not calling, birds, and the meaning of those golden (or gold) rings. Check out the Urban Legends (snopes.com) link too.

posted @ 11:25 AM EST

December 21

Movable Type ≅ π

“Nothing Is Perfect” has been upgraded to Movable Type 3.14, which fixes a couple of bugs that caused overload in a heavy comment spam storm for sites with some configurations.

posted @ 12:57 AM EST

Version 2.0.3 of BlueJ Was Released Yesterday

BlueJ is an integrated development environment designed for learning Object Oriented Programming with Java at the introductory level.

posted @ 07:54 AM EST

Robots Behaving Badly

No, these aren’t the robots of Asimov’s three laws, trying to save us from ourselves. The web is crawling with spiders; robots, like Googlebot, that follow links from one page to the next, indexing their finds or harvesting email addresses. They may be nice and respect a site’s wishes by following restrictions in its “robots.txt” file and keeping their bandwidth usage reasonably low, or they may be rude, like Baiduspider, and load whatever pages they can at resource hogging rates. In the latter case, a webmaster can cut off the big hairy arachnoid’s legs—giving it errors for everything it requests by putting the following, for example, in the site’s “.htaccess” file (presuming Apache and the enabling of the rewrite module).

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider
RewriteRule ^.*$ - [F]

This says if some requester whose name starts with “Baiduspider” asks for anything, tell it that’s forbidden.

posted @ 09:59 AM EST

December 22

SPAM WARS: Episode II - The Webmasters Fight Back

Stop Spam Harvesters, Join Project Honey Pot
Check out Project Honey Pot—fighting back against email spammers. It’s not clear that this will be effective, but at least it gives some visibility into the process.

posted @ 11:31 AM EST

December 23

Don't Panic!

Don't Panic!

Apple’s site has a QuickTime trailer of The Hitchhiker’s Guide To The Galaxy, in theaters May 6th; not much to speak of as movie teasers go, but its existence is noteworthy (intentional bias favoring QuickTime here).

[Having stolen the subtitle for “Nothing Is Perfect” from The Guide, I’m morally obligated to promote derivative works.]

posted @ 10:47 AM EST

December 25

Merry Christmas

Christmas Tree

posted @ 06:00 AM EST

December 27

How Much Content Should Be in Blog Feeds?

Not Quite Random gripes about blog entries that have poor titles and only partial content in the feed, and wonders whether or not this is the result of a default setting in Movable Type, a popular blogging tool. What Movable Type (3.1x anyway) does is provide an entry composition form that has a field for the “Entry Body” and another field for the “Extended Entry”, where one can enter the rest of a long entry. Then, in templates that are used to generate the various web pages (HTML) and syndication feeds (e.g., RSS) one can include the contents from one or both of these fields. (By the way, there’s also an “Excerpt” field, which I don’t see used much.) The default template for RSS 2.0 does not include the “Extended Entry”, or even a hint that it is not empty.

I wouldn’t insist as strongly as Brian that blogs include the complete content in their syndication feeds, but prefer it when they do, so that I don’t have to open the web page in my browser to read the whole article. If all of the entry is not in the feed I think that what’s included should be at least a full paragraph that completely introduces the subject—not just one sentence or, even worse, an arbitrary number of words that do not complete a sentence.

All I’ll say about good titles is that I agree on their desirability, but am sometimes guilty of going for cute rather than informative.

posted @ 10:12 AM EST

December 28

Swampwalker's Journal: A Wetlands Year

From Swampwalker’s Journal by David M. Carroll:

To this day, the sighting of a spotted turtle, particularly the first of the season, carries an aura of my first encounter with one. I was eight years old, wandering alone, when I entered the turtle’s world. I remember the evening green of that place, the smell of the plants and water, the sky light on the pool, the glimmering of a brook that emerged from a shadowy wood. All around me the world was alive. There were ceaseless callings and splashings of frogs, flittings of birds and dragonflies. I had recently moved from an urban environment and had never seen anything like the wetland world that lay before me, never felt anything like what I felt in its presence. I saw movements different from any made by frogs, birds, or insects. I waited and watched. A turtle swam into a clear space in the shallows. It was intensely black, glowing with yellow spots and orange head markings, a stunning living thing that made my heart race. Shoes and all, I waded in and caught the turtle.

Carroll beautifully reveals to us the delicate ecosystems of freshwater wetlands, sharing a perspective obtained through a lifetime of dedicated observation and study. The passage above reminds me of one of the reasons that E. O. Wilson remains optimistic about humanity’s ability to preserve the environment, namely what he calls biophilia.

posted @ 08:53 AM EST

December 29

Oxymoronic "Wildlife Management"

In a rare departure from relating his observations of wetlands in Swampwalker’s Journal David Carroll casts a despairing eye over his shoulder at his fellow man.

It is beyond ironic that we can all but never say no to the housing project, shopping mall, hotel, highway, golf course, or expansion of agriculture, but that after the habitat has been fragmented, funds, agencies, and groups can be drummed up to cage the final nests, relocate buckets of eggs, fast-forward hatchling turtles in aquariums, and dump them into encircled habitat remnants. The most direct, simple, and viable solution, to simply leave the place alone, has no place in the debate. It is rarely a matter of whether or not a project is to go forward but how it is to go forward, with various token, ecologically meaningless compromises and mitigations, together with management plans for the lost landscape. We look to feel good when we should feel ashamed. “Wildlife Management” is a sorry contradiction in terms. There already is a management plan. It has been unfolding since life’s appearance on earth.

And for better or worse, human nature, saturated with incongruity and self-destructive tendencies, is part of nature.

posted @ 01:24 PM EST

December 31


Usually ads in web pages don’t bother me, but sometimes they’re so obtrusive that I can’t stand it—the Flash animation for some vodka on The New York Times front page, for instance—in which case I zap the offender with the Firefox Adblock extension, thereafter relieving my CPU of the task of running some goofy movie loop designed to attract my jaded eyeballs.

posted @ 08:36 AM EST