CSS is assembly language
I was struck by a thought today: CSS is an assembly language. This explains a lot of its issues, because (like other assembly languages) it suffers from the problem that you can't communicate your high-level intentions, only your low-level actions.
The whole rat's nest of columnar layout issues and the ensuing irritations are where CSS's true colours show through most clearly. But it's not the only area; almost everywhere you look, CSS is about the low-level stuff. You can set colours, but not colour relationships.
This also neatly explains the experience of creating CSS. Ignoring the browser quirks, it is still just as tedious and irritating as writing any other low-level language; you jump through an awful lot of peculiar hoops to get your results.
Now that I've realized this, I may be a little more relaxed when I have to deal with CSS. It doesn't make CSS any nicer, but it does make it less irritating now that I understand where it's coming from. (I can transfer the irritation to the people who still haven't given us a high-level layout language.)
(This shouldn't be too surprising, since a good part of CSS was designed by people who just wanted low level PDF-like control over page layout. That's an assembly level function if there ever was one.)
Getting your spam crossed
From: Andrew Bailey. <deleted>
Good day partner,
I am Andrew Bailey of International Private Banking at BANK OF ENGLAND. I am contacting you concerning a deceased customer and an investment he placed under our banks management three years ago. [...]
This spam message apparently can't decide whether it's phish spam or advance fee fraud spam. Probably some spammer's mailer software got snarled up, but I like to imagine that the advance fee fraud gangs are now stealing compromised machines from the phish gangs.