Press "Enter" to skip to content

Category: Technology

The other shoe

Six Apart changed the pricing and the license. You can now buy addons to a personal license at the rate of $10 for one additional weblog and one additional author. They have also removed the CPU limitation. Finally, although they didn’t mention this specifically in their update, they’ve changed the credit requirement from one link per page to one link per site.

They have not removed the prohibition against reverse-engineering, the restriction on automatic computer-generated publishing, and it’s still not legal to put a PayPal link on your Movable Type Personal License weblog.

Quick recommendations for others: if you’re doing a one-person simple personal weblog, I’d use the free version of Movable Type 3.0. If you’re an author who uses her weblog to self-promote, I would find a new solution rather than buy a commercial license. If you’re doing a group blog, you’re going to want to move, I think.

The new pricing plan is not a problem for me, both because I can afford to pay a little more than I’d like and because I don’t run a group blog on Movable Type. It is a problem for others. For a personal license, it would make sense to have an unlimited weblog/author option. Mean Dean has an excellent pricing suggestion. Probably a little low, but you could boost the base price for a personal license to $50.00 easily enough.

At this stage of the game, I’m going to wait and see. WordPress is proving a little cranky; it is not a polished product. The biggest blocker for me is that Brad Choate’s version of Textile 2 is slightly more feature rich than the version that comes with WordPress; I’d have to do a lot of hand-tuning on hundreds of entries to migrate to that solution. I’ll pause while I contemplate how unwise it is to use a platform-specific markup solution… OK, done.

I’ll keep fooling with WordPress and other blog solutions, however, because I think at this point I might want to be on an open source platform. It’s safer for me as a user. It’s not, again, that I’m not willing to pay for software — I paid $50 for Movable Type already! On the other hand, now that I’ve dug into the new plugin capabilities, I have to step back a little from my comments about new features. Movable Type 3.0 is exceedingly feature rich from a plugin point of view.

So, yeah, we’ll see what the future holds. A basic Personal License would cover everything I do; I may still want to move to another solution, depending on exactly how many cool new things third-party developers do with the plugin architecture.

Stand up

Tim Bray wonders if the use of “stand up” to mean “deploy” is a defense/intelligence IT coinage. I think the answer is yes. I hire ex-military IT people when I can (see below), and they always use “stand up” like that.

Sidenote: in my experience, IT people who’ve spent a while in the military are diligent and responsible and get things done. I look for people who’ve reenlisted a couple of times, rather than people who’ve done one term and left. The kind of discipline they learn is incredibly useful. For example, military IT people will invariably write runbooks. (Hire a veteran today!)

Cautionary tales

Dave Winer warns that syndication feed arguments may have the same result as cell phone content format arguments. Namely, a fractured market in which it isn’t worth anyone’s time to support multiple formats. That’s definitely one possibility. The other comparison I’d make is email protocols, though. SMTP is deeply insecure, and as a result spam now represents a sizable percentage of the world’s email. We’d have been much better off if we’d switched away from SMTP before it was too late.

Of course, both cautionary tales might be true. Or neither.

Fixing obsession

What follows is an untested programmatic method for reducing the flame percentage of any given mailing list. I call it tree-trimming. Since I don’t know Python, I am unlikely to hack this method into Mailman, and since Majordomo is old and grey I’m unlikely to hack it into Majordomo. But one never knows.

Basic Assertions/Observations

  • A piece of email sent to a mailing list can be filtered in any way we find useful. We can block it entirely, we can send it on to the list, we can send it to a subsection of the list, or we can send it to a different list.
  • Email is threaded; the In-Reply-To: header usually tells us what a given piece of email is responding to. Not always, but usually.

Those are easy. Here’s the controversial one. This will not be true for all mailing lists.

  • Email threads that are made up of a small number of people talking to one another are, after a certain point, usually not interesting to the entire mailing list.

List Setup

I’ll postulate a list called, oh, example-list. There are two actual mailing lists associated with the example-list: example-list and example-list-full. You can subscribe to either one of them.

Thread Tracking

  • The mailing list software tracks threads. It must store, for each thread:

    • The thread’s age (which we’ll call A).
    • The number of active participants in the thread (which we’ll call N).
    • The email addresses of the active participants in the thread.

There ought to be a method for associating a thread with an email even if it doesn’t have a In-Reply-To: header, since some mail readers don’t handle this well. You could do it by Subject: line, in which case time needs to be taken into account. You don’t necessarily want all emails with a common subject to be grouped in the same thread, so after a while emails with the same Subject: should be considered a separate thread. Or maybe not, I dunno.

Probably the thing to do is to look at mail reader algorithms. They would tend to define the best practices for this question.

People replying to digest emails aren’t really a problem, because a thread change as a result of that behavior happens at the beginning of a long tedious flame thread, not during.

List Functionality

For each piece of mail that hits the list, the mailing list software must:

  1. Compare A to a configurable value (A1) and N to a configurable value (N1).
  2. If A > A1 and N < N1 OR if the thread is marked as full-only:

    1. Send the email to example-list-full.
    2. Send the email to all the active participants in the thread.
    3. Mark the thread as full-only.

  3. Otherwise, send the email to example-list.

I.e., if the thread is over a certain age and only (say) 2 people are participating in it, then only those people and anyone subscribed to example-list-full should get the email. Everyone else gets to automatically ignore it.

Improvements

Apply this to subthreads as well. Maybe the main thread is active and happy, but a couple of people are just talking in their own little subthread. We don’t care about them any more. This would require keeping track of the entire tree structure of the thread, but it would be cool.

Observations

You could implement this as a client side filter as well. Probably even in procmail. It’d be easier, since you wouldn’t have to keep track of the active participants. However, I don’t actually have any objection to general solutions, because I have found that most client side solutions to flame wars assume that everyone has good self-control.

You have to make it impossible to pull threads out of full-only, or malicious people will subscribe to the -full version of the list solely for the purpose of dragging threads back to the general list.

I have no idea what the useful value of N1 and A1 are. They probably vary from list to list.

Finding the needle

From an interview with Matt Wells of Gigablast:

“Another major feature of Gigablast is its ability to index Web pages almost instantly, Wells explains. The network machines give priority to query traffic, but when they’re not answering questions, they spend their time spidering the Web.”

The more things change, the more they stay the same.

His comments on the reasons for Google’s success are dead accurate, by the by. PageRank was not as important as size and freshness.

Hand-editing

I’m reminded to spread some Googlejuice: jew should not return an anti-Semitic site as the top result, and I personally think Air America ought to return that new liberal talk radio station for those who are feeling lucky.

It occurs to me that Google now has humans hand-optimizing its index. These are the first benevolent Googlebombs I’ve ever seen, and they do potentially represent some sort of group consensus about what pages ought to be top results for certain search terms. Which, I suppose, is what Pagerank has always been. Interesting to see it intentionally manipulated for good ends, though.

(Bush is still on top for “miserable failure” and “unelectable,” by the by. Sadly, I can’t think of a good target for “I eat the flesh of the living, and I vote.”)

Ecto fixed

Full kudos to Adriaan Tijsseling, who tracked down my ecto bug (as bitched about earlier) and will be fixing it in the next version. In the meantime, I skillfully avoid the bug by not using the Text Only option for the toolbar. The fact that he kept track of who was having the problem and let me know personally about the fix wins points with me.