Anil has a great post up today about leveraging the power and experience of weblogs to understand problems and encourage change, and in so many ways, it rings true to me. Specifically, it reminds me of the annoyance I feel when I read a weblog post that is clearly based on the superficial understanding of a situation someone gleaned by merely skimming a single perspective on something (or, worse still, skimming the text of a single link to a perspective on something, a phenomenon I’ve started to call MetaFiltration). Too often, I find that weblog authors don’t delve any deeper than the link someone sent them in their email (punctuated by fifteen exclamation points) as a call to action; they don’t even try to figure out the context in which the supposed travesty exists. Anil does a good job of pointing out the alternative, an alternative that we’ve even seen wield an enormous amount of power at opportune times. I’m all for exploiting that alternative when the need arises, since I’m generally for using anything and everything to right wrongs and iron out ineffeciencies in systems.

Does anyone have any specific recommendations (or warnings) when it comes to DNS hosting? A friend and I are looking for a paid service to handle DNS for a few of our domains, and in taking a peek around the web, there aren’t a whole slew of companies competing for that slice of the market. The ones I’ve found are EasyDNS, ZoneEdit, Nettica, DNS Made Easy, and World Wide DNS, but the first thing that jumped out at me as I tried to compare them was that none of them has made it easy to find out exactly what I’d be getting if I were to sign up. (How many records would I be allowed in each domain? What does the web-based interface look like?) Based on just the information available on their websites, I’d be inclined to give Nettica a shot; the price can’t be beat (especially for bulk services), and they seem professional enough.

If anyone has any personal experience, with any of these DNS hosts or any others, I’d love to hear it.

A lot of people have complained about a recent uptick in spam, but I have to say I’m not getting hit all that much. I get around 3,000 unsolicited emails a day, and only about a half dozen slip through my net, a net composed only of SpamAssassin (with Bayesian filtering turned on) and ClamAV (for antiviral goodness). Here are the particulars of my setup, all of which takes place on my mail server so that I can use any old client and still enjoy the benefits.

  • When an email comes into my server, it first gets scanned by ClamAV, and quarantined if it’s dangerous.
  • Once an email proves that it’s not harboring any nasty viruses, it gets compared to a short roster of mailing lists to which I subscribe, and if it harkens from one, it gets sorted into my mailing list folder.
  • If it’s not from a legitimate list, the email gets fed to SpamAssassin.
  • SpamAssassin checks it against its own rules, the spam databases at Vipul’s Razor and the Distributed Checksum Clearinghouse, and my Bayes database. It assigns the email a spam likelihood score.
  • Email with spam scores of over 10 get deleted immediately, email with spam scores of over 5 but less than 10 get thrown into a spam folder, and email with scores of less than 5 get put into my inbox.
  • If a piece of spam manages to defeat all of this and make it into my inbox, I throw it into a reject folder. Thanks to a nudge by Ben Hammersley, this reject folder is processed every morning, teaching my Bayes filters that everything within is spam.
  • Other choice bits: ClamAV updates itself every night, SpamAssassin’s automatic whitelisting is turned off (due to a nasty prior bug that left a bad taste in my mouth), and I wrote a few custom SpamAssassin rules that make sure that all of MovableType’s comment notifications make it through unscathed.

I openly acknowledge that this all takes a little bit of maintenance every now and then, and that as a result, it’s probably not the solution for everyone. I have to keep up with the latest version of SpamAssassin (which is about to hit 3.0) and its related spam database clients, I have to dabble in Linux system administration in order to get it all configured, and of course, having the mail server sitting in my house helps a ton. All that said, I’m pretty happy with the current state of things, given that the less than two percent of my incoming mail that’s legitimate makes it into my inbox, and it’s the rare spam that comes along for the ride. And as a bonus, the other people that have accounts on my mail server get the benefit of all the work!

Every time I begin to forget what a jackass John Ashcroft is, someone takes the effort to remind me. I particularly love Krugman’s concluding paragraph:

After my last piece on Mr. Ashcroft, some readers questioned whether he is really the worst attorney general ever. It’s true that he has some stiff competition from the likes of John Mitchell, who served under Richard Nixon. But once the full record of his misdeeds in office is revealed, I think Mr. Ashcroft will stand head and shoulders below the rest.

Posted mostly as a bookmark for myself: how to perform dynamic text replacement (or, described a bit simpler, how to have your webserver instantly create an image that contains whatever text you want rendered in whatever font you want).

Remember that unbelievably short-sighted Mozilla Firefox cookie issue? The one wherein it only remembers the last 300 cookies, forcing you to log back into your bank sites, news sites, email sites, and the like if you do anything but the most lethargic web surfing? Well, despite the bug getting fixed and checked into the Mozilla source code tree back in April, it looks like Firefox 0.9 (which was released this past week) doesn’t incorporate the fix. (That last link is to a chart which traces the revisions of the source code file that manages the cookie issue; the fix was introduced in version 1.25, and as you can see, almost every major revision of the Mozilla browser branches off back at version 1.22.)

I was wondering why, after a two-month respite, I was being forced to log back into my bank site every few days again. That just sucks.

Enriched Uranium: What Every Parent Should Know, brought to you courtesy of Timothy McSweeney’s Internet Tendency. One choice gem: “Enriched uranium is what is known as a gateway element. Children who try enriched uranium are more likely to try plutonium and wine coolers.”

Once again, the mad syndication ninja has elevated his art with Feed on Feeds 0.16, adding XHTML and CSS, a one-page console and viewer, and a lot of bug fixes. Go forth and download!

FoF 0.1.6 screenshot

(Kellan McCrae, the author of the parsing library that sits at the core of Feed on Feeds, has also started experimenting with ways of extending the tool to allow both consumption and production of syndication feeds, and released a patch that allows you to republish posts into your own feed. Very, very interesting.)

I mean, this can’t be real, can it? Burning in your audio component cables to get better sound? I guess if you’re the kind of person who’s willing to drop between $500 and $750 on a freakin’ power cable, you might want to make sure that cable is burned in!

I’ve talked about the idiocy of Boston drivers before, but today I realized that I’ve been staring at the best example of how bad their behavior really is without even knowing it.

At work, I park in an underground garage, the first two levels of which are devoted to patient parking. In order to get to the levels that allow employee parking, I have to spiral through the two patients-only levels, and every day, it’s like negotiating a maze. People jam their rides into these two levels in ways that leave micrometers between cars, obstruct the driving lanes, bottleneck the ramps, and even block in other cars. Now, let’s reiterate: in order to park on level 1 or 2, you either have cancer yourself or you’re driving someone who has cancer. And as if that isn’t bad enough, and as if going to hear bad news, get chemo, or be blasted with radiation isn’t worse, there’s a decent chance that when you get back to your car, some jackass has made it hard for you to get your car out, all because he couldn’t be inconvenienced by continuing on to the next tier of the garage.

It’s sad when you pine for your old, calm days of driving in Manhattan!

Michael Pusateri says it better than I ever could. I just found it a bit odd that all the sites were shut down without even the smallest of notices on the high-traffic home page of the man who shut them down; it’s a page that’s been used as a bully pulpit for so many other things, but I guess this was a decision that didn’t need the extra public scrutiny. Alas, scrutiny has arrived.

By far, the best break-down of the controversy around the Pentagon how-to-justify-torture memo is currently over at Randy Paul’s site; he provides the most logical explanation I’ve seen of how the Bush administration’s attempt to justify torture under newly-invented wartime or enemy combatant rules is complete and total bullshit.

Update: if Randy’s post is the best analysis of the legal reality, then Billmon’s post about Mary Walker, the woman who led the legal team which assembled the memo, is the best analysis of how pathetically hypocritical one person was in her quest to justify torture. I mean, people are having a blast with this, because apparently, it’s just so damn easy!

Hey, who knew — feedback works! This morning, CNET’s published an article about a possible shift within Google to extending syndication support for users of Blogger to include RSS. It was generally a good piece, except for one glaring issue — a false premise that sat at its very beginning. As posted this morning, the second paragraph of the article started as follows:

In April, Google seemingly chose sides, dropping RSS support for new — but not old — subscribers of its Blogger publishing tool in favor of rival Atom.

In other words, the article laid the foundation as one where, rather than thinking about adding RSS to the options available to users, Google was thinking about adding back the ability to use RSS, as if Google had taken it away from the users at some point. (As is pretty well-known to most people involved in the world of syndication, though, prior to the support for Atom, non-paying users of Google’s Blogger tool never had any syndication options available to them.) The error didn’t sit well with me, so I decided to use those little mailto: links in the article’s byline and let the authors know that they were perpetuating a myth.

Imagine my surprise, then, when the authors personally acknowledged my feedback, and then changed the article! I received a polite email from Evan Hansen saying that they agreed that “drop” was too strong a term, and as of this afternoon, the same section of the second paragraph now reads:

In April, Google seemingly chose sides, bypassing RSS support for most subscribers of its Blogger publishing tool in favor of rival Atom.

There are a few people in the syndication community that wouldn’t mind a major media outlet promulgating the fiction of Google lashing out at RSS by dropping support for it, since it would have the potential to drum up a lot of sympathy. Alas, I’m not one of them, and CNet’s willingness to set the record straight without any muss or fuss pleases me, and makes me respect the company all the more for its efforts.

After quite a bit of WiFi wrangling, around a month ago I begrudgingly admitted to myself that there was really no good way to boost the signal from my 802.11g router enough to provide any access worth a damn in the back of our apartment. And given that the root of the problem was the presence of thick, century-old plaster and lathe walls, the last solution I was interested in considering was drilling holes and running an ethernet cable all the way back. The only other option I could really think of was to set up wireless repeaters, but until just recently, they were either too expensive, too limited, or completely unreliable. Once I saw that the latest firmware for the Linksys 802.11g access point included the ability to serve as a repeater, though, my interest perked back up in the idea — we already own a Linksys wireless router (the WRT54G), so if all we needed was one of their access points (the WAP54G), then we were willing to give it a go.

Yesterday, Shannon and I went to Best Buy to pick up the access point, and learned that despite it having less inherent functionality than Linksys’s corresponding wireless router, it costs more ($20 more, at least at Best Buy). And while the stock firmware for the router doesn’t include the ability to use it as a repeater, I remembered that there is a flourishing community of alternate firmwares for the box (given that, underneath the pretty blue exterior, it just runs Linux!), and that some of those alternatives provide the repeater functionality. We made a quick decision to give it a try, and after getting home and doing a little research, I settled on Sveasoft’s latest firmware. I put around two hours of work into the configuration last night, ended up sleeping on the last remaining obstacle, and then awoke this morning to finish the setup — and it works!

The fancy name for the standard that provides wireless repeater activity is WDS, which stands for Wireless Distribution System. Setting WDS up in Sveasoft’s firmware is as confusing as it gets, hence needing two hours and an overnight of dream-based contemplation in order to get it working; that being said, now that it’s set up, our apartment is virtually bathed in WiFi goodness, and Shannon’s office computer is happily churning away on the network. (After personally hitting most of the potential stumbling blocks full-on, I plan to write up a how-to for what I did to get it working, and generally, what anyone needs to do to get WDS enabled on a Linksys WRT54G.) This all makes me realize, though, that once a company gets WDS distilled down to a single-click interface, it’ll make home wiring nearly obsolete.

An update on the Apple iBook Logic Board Repair Extension Program saga: I finally received my refund request letter on April 3rd, and sent it right back in. The letter said to expect my refund in four to six weeks. As of today, it’s been two months, and I have yet to see a single red cent from the company. Of course, that led to a phone call.

I spoke with a nice young man (of course he was nice, he was named Jason!) who offered to “escalate the issue with accounting” and get back to me in three to five business days. I told him I wasn’t really willing to continue to wait for them to return my money to me, so he offered to pass me on to his supervisor, Sheila. She acknowledged that Apple processed my refund request on April 26th, and that there was no clear reason why I hadn’t seen the refund yet. She offered up her direct phone number, and said that unfortunately, she could only do the same thing — escalate with accounting, and get back to me in three to five days.

So, here’s our timeline to date:

  • December 9, 2003: I brought my broken laptop into the Apple Store for repair.
  • December 11, 2003: I received my fixed laptop back, and was charged $289 for the repair.
  • January 28, 2004: Apple acknowledged the inherent flaw in the iBook logic boards, and started the “proactive” process of contacting people who paid for repairs to offer refunds.
  • March 23, 2004: After having never received any contact from Apple, I called them only to find out that they mailed my refund letter to the Apple Store that performed my repair. They quoted one week to get me a new letter to, you know, the place where I live.
  • April 2, 2004: I still had no letter in hand, and Apple told me to be patient.
  • April 3, 2004: I received my letter, quoting a four to six week turnaround for the refund.
  • April 4, 2004: I mailed the signed letter back to Apple.
  • April 26, 2004: Apple processed my letter.
  • June 8, 2004: After still not having my refund, I called and was told that they now need to escalate the process, and that they will get back to me in three to five business days.

The dates pretty much speak for themselves; I wonder how long this next hurdle will take to get over. I also wonder how long it will take for me to be willing to give Apple any of my money again.

Two quick observations on the Apple AirPort Express with AirTunes, announced today:

1. Wow — waaaaay cool, integrating stupidproof music into the mix.

2. Why do all the 802.11g repeaters/bridges only work with access points from the same makers? Read the small print on the AirPort Express page: “AirPort Extreme and AirPort Express can extend the range only of an AirPort Extreme or AirPort Express wireless network.” I’ve yet to see a consumer-level repeater that works with other vendors; is the WDS spec so difficult to work with that each vendor has developed an independent implementation?

I am exceedingly glad that there are people willing to stand firm on the ways in which gay nuptials threaten the institution of marriage, for I would never want the wedding of Jennifer Lopez and Marc Anthony to be understood as anything but a sincere statement of lifelong love and commitment.

Dahlia Lithwick is en fuego in her piece, “Proof, Negative” which was posted to Slate yesterday. In it, she takes a look at the information about Jose Padilla unveiled by the Justice Department on Tuesday, and wonders whether or not the release of supposed facts gathered via secret, coercive military interrogation does more to hurt the government’s case than it does to help it. And while I generally try to avoid copy-and-pasting huge blocks out of the articles I link to, when it’s Dahlia and her piece is as good as yesterday’s, I cannot avoid it.

The U.S. Constitution didn’t simply hatch out of an egg one morning. Like the Magna Carta, the Bill of Rights was largely conceived to correct for failures of earlier systems. In 1603 Sir Walter Raleigh was tried for treason and not permitted to cross-examine his accuser. This, it turns out, engendered unreliable evidence. The Sixth Amendment’s confrontation clause was the constitutional remedy for this problem. Unremitting and unwanted prosecutorial interrogation could lead to false confessions. This made for unreliable evidence. The Fifth Amendment was, in part, the constitutional remedy for this. Years of delay prior to trials degraded evidence. The Sixth Amendment’s right to a speedy trial was the constitutional remedy for this. Indefinite government detention without charges led to innocent men languishing in prison without recourse. The right to habeas corpus is thus codified in Article I, Section 9 of the Constitution to remedy this. We sometimes forget that the purpose of these and other constitutional protections is not only to let guilty guys roam free (attractive though that prospect may seem), the purpose is also to protect the quality of the evidence used in criminal trials. A conviction based on a tortured confession isn’t justice. It’s theater.

I only wish I could have been the one to break it down that simply.

I’m not one of those people who puts pets on completely equal footing with humans, but still, I wonder what this woman’s attitude will be like when her new baby comes out — a baby that, at least for the first few years, will be “unbearably needy,” have “a tendency to drool when receiving her scant portion of affection,” and could (god forbid) have health problems! Sorta bolsters my belief, built up over years of seeing people’s various coping abilities in the face of the health problems of their kids, that quite a few folks don’t think through the full ramifications of becoming a parent.

I’ve been a hardcore user of Steve Minutillo’s web-based aggregator, Feed on Feeds, for about five months now. It’s awesome, allowing me to keep up with all the websites I’d love to have time to read individually; chances are that if I subscribe to your syndication feed, you’ve seen the URL of my Feed on Feeds installation in your referrer log a few times. I currently subscribe to nearly a hundred feeds, though, and when I go one or two days between checking in for updates, the list can get to be a couple hundred posts long — unwieldy enough that it discourages me from checking in, further exacerbating the problem.

A month ago, I noticed that Steve had set up a SourceForge tracker for feature requests, so I asked for an addition to the FoF interface that would let you mass-select the group of entries you’ve already seen with one click. I figured that at a minimum, people would discuss alternatives to my request, and felt the worst thing that could happen was that Steve would ignore my request. How happy I was, then, when a little birdy alit in my email inbox this morning chirping away about the latest version of FoF which including my requested feature! To me, it makes FoF that much more usable, and Steve that much more of a mad syndication ninja; I’ve moved from hardcore to evangelical. Go forth and use Feed on Feeds!

Let me be the one quadrillionth person to say how terrific Alexandra Polier’s story is. She’s the woman who was wrongly accused of having had an affair with John Kerry, and her story provides a fantastic look at how rumors and spin get turned into hard news in politics. After reading the piece, I feel like the “reporting” being done by all involved was a bit like the friend-of-a-friend thing, each level adding a small detail to the story that he or she thought would make it more palatable to the public, and never caring much that the small detail was invariably false. In the end, Polier played things perfectly by refusing to provide more grist for the mill (and being in Nairobi, inaccessible to a lot of the hungry carnivores!).