The risks of using CentOS are split
Recently (for my value of recently) I wound up reading Matt Simmons'entry, CentOS 6 - Great, but for how long? ,in which he worries about the delay in CentOS releases compared toRHEL, especially the CentOS 6 release, and what happens if CentOSupdates stop being timely. My reaction is that there are two verydifferent risks being conflated here, because major releases likeCentOS 6 are not at all like updates to existing releases.
CentOS is strongly based on RHEL, to the point where it
A little thing that irritates me about common WSGI implementations
One of the issues that WSGI has to deal with is the question ofhow to connect a WSGI application and a WSGI server together, orto put it the other way, how to tell a WSGI server what to doto actually invoke your application. The WSGI specification specifically does not coverthis issue, considering it a server specific issue. However, somethingof a standard seems to have grown up in WSGI implementations; yousupply a module name (or sometimes a file), and the WSGI server expectsto import
On documenting (or not documenting) binary protocols
In an aside in SaneBinaryProtocols , I noted that part of a sane binaryprotocol was documenting it, something that the people responsible forthe sendmail milter protocol had failed to do. Today I have an asideon that general issue.
The traditional excuse for not documenting your protocol, at least inthe open source world, is that you don't want to commit to supportingit over the long term; by not documenting it you preserve your freedomto change it without having to worry about backwards compatibility. Theproblem is
What good secure string expansion on Unix should look like
In yesterday's entry , I covered some optionsfor how to make string expansion and tokenization of command lines awareof each other. Before I pick what I think is the best approach, let'stake a step back and talk about what results we want.
Consider the following hypothetical example:
av_scanner = cmdline:/opt/avscanner ${if isset{$heloname}{-h $heloname}} $recipients %s
Assuming that %s expands to a single argument, the straightforwardreading
String expansion and securely running programs on Unix
One of the corollaries of how to securely run programs on Unix is that a general purpose, generic stringexpansion system is a bad fit with securely running programs. Theproblem is that there is a fundamental clash of goals between the twosystems: a generic string expansion system wants to treat everything asa generic string to be expanded (regardless of what it actually is), anda secure system for running programs wants to tokenize everything usingsimple rules.
At this point I am going to pick on Exim for illustrativeexamples
Our ZFS spares handling system (part 3)
In part 1 I mentioned that our spares systempulls what disks to use as spares from files and how the files aremaintained was beyond the scope of the entry. Well, time to talk aboutthat.
From more or less the beginning of our ZFS fileserver system we've had an administrative system that captureda record of all pools on each physical server and a list of all disksvisible to that server and how they were being used by ZFS. This systemis relatively crude; it's shell scripts that
Why I would like my mailer to have a real programming language (part 2)
In illustrated form, to go with the previous explanation of this .
The actual configuration change that I just made, amounting to part ofone line:
< require_files = $local_part:$home/.forward
> require_files = <; $local_part ; $home/.forward ;${if !IS_SPAM {!$home/.forward-nonspam}}
(additions and changes have been bolded .)
The amount of added comments necessary to explain this configuration:
My view on ORMs
Via Hacker News, I recently read ORM's hidden cost .As you might guess, I have an opinion on this.
First off, I agree with the article; ORMs have problems. Amongother things that the article talks about, there are fundamentalmismatches between the objectoriented approach and the SQL approach to a problem. But ultimatelythe issues about ORMs are a lot like the SQL hairshirt issues : they matter in theory but they do not matterin practice to most people.
Despite all of these issues,
Thinking about when SQL normalization can improve performance
To follow up on an aside I wrote a while back in SQLNormalization , I'mgoing to take a crack at describing the sort of query where a normalizedschema could win over a denormalized schema. First off, I'm goingto restrict this to queries that need to join all of the normalizedschema tables to create something that's equivalent to the denormalizedtable. As noted in a comment on the original entry, if you only needpartial information normalization can provide you with an immediate win,but it
Another reason to reject spam at SMTP time: as a signal
I'm sure that people know all of the usual reasons to reject spam atSMTP time; in part they boil down to the fact that if you accept spam,the best you can do later is discard it, while rejecting at SMTP timemeans that if senders will find out if their email got mis-characterizedas spam. You'll probably also lessen the load on your systems and havesome other benefits (and avoid things like the forwarding problem ). It's recently occurred to me that there