Space and content

One of the things that's been driven into me in the process of writing WanderingThoughts is that the amount of horizontal and vertical spacethat your content sits in does affect its readability (even when itis not absurdly small or absurdly large), and in turn this affectshow you write your content. Some things only look right when insidenarrow margins and look horrible when expanded outside of that, and viceversa. The same is true in many ways for vertical space and how much isvisible at once.

More


A surprising lack: milter clients

There's a lot of anti-spam programs and systems, so I'm generallyaccustomed to being able to find a package to do pretty much anyanti-spam job that I want to get done. Which is why I'm all the moresurprised that it seems to be impossible to find milter clients orclient libraries.

The milter protocol started outas a Sendmail specific interface, but today they've become essentiallythe generic way to connect MTAs with various anti-spam filters andservices. You


Intel

End results versus what's inside the black box

One of the divisions in technology is between people who mostly careabout the end results and people who care (sometimes very passionately)about what is inside the black boxes that they use. The former sort saythings like 'the Pentium is the best-performing CPU right now'; thelatter say things like 'the SPARC architecture is far more elegant thanthe ugly hacks of the x86'.

(This division is not exclusive to computer hardware, but computerhardware and especially CPU architecture is a common hotbed


Why the pam_mail PAM module is not my friend

Traditionally, one of the things that the standard login programdid when you logged in was to look at the state of your mailbox andreport 'you have (new) mail' if this was the case. This worked wellwhen everyone logged in to Unix systems on serial terminals, sort ofwell when people used telnet and rlogin (both of which actually run login ), and went downhill when SSH became common, because SSH does notrun login at all.

Clearly the right solution (in the PAM world)


Mythology about Unix workstations

Talking of Unix workstations , there's somemythology about them that seems to go around, or at least that may begoing around and I feel like preemptively shooting down.

First, people who think that 1990s era Unix workstations were marvelsof performance and features that have yet to be surpassed either have avery selective memory, were using very high end hardware from SGI, ornever really used those workstations. I have used everything from Sun3/50s onwards, and I can assure


How not to design an API (in C): the enum ordering mistake

Suppose that you are creating an API in C and that you have a returnvalue that is just right for an enum ; for example, it communicateseither 'all is okay' or some range of errors and exceptional conditions.Here's how not to write this API:

typedef enum { ERROR_1, ERROR_2, ERROR_3, ALL_OK } error_t;

You don't want to do this, because sooner or later you're going to wantto add another error


Exceptions versus error return values

Python has two ways of signalling that a function has failed; you canraise an exception or return a special error value of some sort. I useboth techniques in different circumstances; since I've recently beenwriting some Python code, I've been thinking about exactly what thosecircumstances are, as far as I can tell.

(Self-analysis is tricky given that I don't particularly think throughthe choice when I'm making it; I handle errors however seems right forthe function I'


Why I don't expect third-party support for OpenSolaris

One of the common reactions to Oracle's potentially ambivalent attitudetowards providing OpenSolaris support is that since OpenSolaris is opensource, third parties can spring up to provide support for it even ifOracle doesn't. However, I'm fairly pessimistic about the chances ofthis; even if OpenSolaris itself becomes reasonably popular, I don'tthink that we'll ever see an OpenSolaris equivalent of Red Hat orCanonical.

There's two reasons for this. One of them is the difference betweenforking code and


Pushing code changes upstream is hard work

This is a followup to SupportingVsForking , where I talked about thedifference between supporting some open source code and forking it beingwhether you could get your changes accepted upstream. One thing that isnot widely understood is that getting bugfix changes accepted upstreamis hard work at the best of times, with a cooperative upstream.

(We can see this from how many private changes to the Linux kernel eachLinux distribution maintains.)

The problems are many. Often there is a conflict between the expedientway for you to fix a problem


PCs are (or can be) Unix workstations

My entry about the end of Sun wasposted on Hacker News and garnered a comment thread . In two comments that I'm condensing andexcerpting here, HN user rbanffy wrote ( in context ):

There is a huge difference between a glorified PC and a Unixworkstation.

[...]

Unix workstations were built to run Unix. A Mac pro is essentially aPC. [...]

The difference looks subtle now, when every desktop computer isessentially the same. For those who lived through this