I have a printer on my CentOS machine, running CUPS, which I could print to from any machine in the house, be it Linux or Windows. It all just magically worked, but that machine is only used as a workstation so it’s turned off when not in use.
I wanted to move the printer to one of my servers running Ubuntu which is available 24/7, so I don’t have to turn on the workstation to print things.
You’d think it would be easy; after all, both run CUPS and one of them just works. So I’ve configured the printer on Ubuntu and… nothing works. Every time I try to print it asks for some kind of password.
I’ve been through cupsd.conf trying to figure out how to tell it ‘just print any damn thing we send you’, but the file is arcane gibberish. Even copying the cupsd.conf file from the CentOS machine to the Ubuntu machine doesn’t solve the problem. I understand that people running this in a business with thousands of users want a lot of control, but how can they make a simple configuration where it just prints so difficult to set up?
The best thing is that every time it fails to print I have to tell it to cancel the print job, I have to tell it that yes, I really did mean to cancel the print job and then I have to re-enable the printer and then I have to ‘apply’ the changes, even though I didn’t have to apply the change that automatically disabled it even though I’m trying to get the damn thing to work. I can hardly imagine a worse user experience.
I think this demonstrates one of the big problems with modern sofware: massive overconfigurability. If you can’t decide how something should work, allow users to configure it to work in any way they want. The end result is that only an expert can get it to work at all.
IPSEC is a glowing example. There is typically one way to configure it to connect properly and roughly ten trillion ways to configure it not to work; and when it doesn’t work there’s generally no way determine why it doesn’t. The end result is that when you magically find a combination which does work you stick to it, even if that’s a less secure configuration than just giving the users a choice of half a dozen options selected by the developers.