Fixing low command error distances

Suppose that you have a command with an unnervingly low error distance , either because a vendor stuck you with it orbecause it's the natural way to structure the command's arguments.The way to fix this is to change the sort of error required to makea mistake, so that you move from a likely change to an unlikely one.

(If you are working with a vendor command, you will need to do thiswith some sort of a cover script or program. If you are working witha


An update to the ZFS excessive prefetching situation

A while back I wrote about how I had discoveredthat ZFS could wind up doing excessive readahead when faced with manystreams of sequential read IO and wind up throwing 90% to 95% ofthe IO that it had done (with terrible consequences for applicationperformance). It's time for an update on that situation.

First, for various reasons we wound up moving to Solaris server machineswith 8 GB of memory (SunFire X2200s instead of X2100s)


Another problem with SSL identities

On top of SSL's general issue there is apractical problem with how SSL information is presented in browsers, onethat makes it very difficult for anyone except very technical people toactually meaningfully verify who a SSL certificate is issued to.

The issue is simple: browsers normally only show you the name of theorganization that the SSL certificate is issued to. But organizationnames are not unique , especially not across the entire world, whichmeans that just the organization name alone tells people less than theythink it does.


Why noting security fixes in Linux kernel changelogs doesn't really help

People periodically ask for the Linux kernel commit messages andchangelogs to mark changes that are security fixes, generally sothat they can easily know that they need to cherry-pick just thosefixes into their own kernel versions. Ignoring the higher levellevel issues with this for the moment, there are at least threepractical difficulties:

  • not all security fixes are recognized as such at the time; sometimeseven the people making a change think that they are just fixingan ordinary bug, and the security implications are only recognizedlater.

What you select for when you make something harder

There is a general belief that when you make it harder for people to dosomething, you will get better results; better bug reports, better blogcomments, and so on. This is simplistic and, I am convinced, false inpractice.

The basic principle is simple: when you make things harder, you do notselect for quality; you select for people who care enough .

(Well, not entirely; you also select for people with lots of spare timeand for people who don't realize how


An illustration of why syntactic sugar matters

Consider a couple of imaginary languages with different approaches tohandling simple structured data :

  • in the first language, anonymous structured objects are created with obj = {'field1': value1, 'field2': value2} and then accessed with obj['field1'] .

  • in the second language, anonymous structured objects are created with obj = {:field1 = value1, :field2 = value2} and then accessed with obj.field1 .

(Both languages also support the


The problem with using tuples and lists to hold structures

If you need to hold several bits of data about something in Python, it'sawfully tempting to just put everything into a tuple or a list and bedone with it; it's certainly the easiest way, and so crops up often .

(I've read that that Pythonic way to decide between a list and a tupleis whether or not the data is all the same type, in which case you use atuple, or different types, in which case you use a list. I don


Thinking about the best way to handle command registration

Suppose that you have a Python utility program that does a number ofrelated things; it's invoked as ' program command .... ', and decideswhat to do based on what the command is. The obvious way to implementthis in Python is to have a function for each command and a top-leveldispatcher that looks up the function to call for each command andpasses it the arguments to process. Clearly you don't want to hard-codethis in the dispatcher function in a big


Another reason to avoid having comments

To go with my previous thoughts about the purposes of comments , here is another reason that people might want to nothave them on their blog: they eat your limited time.

In a sense, comments on your blog carry with them an implicit duty toreply; while you can skip this, it may look odd andcause bad reactions. However, comments that you write will probably getless of an audience than a new entry. So if you only have a limitedamount of time to write things for your blog


Why your blog comments have less of an audience than new blog entries

Expanding on a remark in the previous entry : Ithink there are several reasons why your comments are likely to get lessof an audience than new entries. First, in most blog setups new commentsare less obvious to readers than new entries, as your readers have to goback by hand to look for them. This is especially so if people are onlyinterested in a few comments.

It's possible to work around this with a different blog layout, but itdoes mean a moderately radical change from how people