Some of you may have read Eric Raymond’s CUPS configuration rant and critique of the state of UI design titled The Luxury of Ignorance. He makes the point that UIs need to be so clear and smooth that the user doesn’t have to know anything at all about what’s going on behind the scenes. It’s a pretty picture he paints, one of trouble-free computing for everyone — except maybe the people who do the UI design and programming, of course. The point: developers should insulate users from what the developers know. The “luxury of ignorance” is key to good UI design.
Unfortunately, there’s a class of user that get screwed over by that kind of thinking. The genuinely ignorant end user just clicks on buttons and hopefully everything works — and if it doesn’t, tough. Call your local geek. Wait for ESR to write a rant about it. Try a different Linux distro.
Really, the problem is that there’s never a perfect UI that provides all the interface you’ll ever need while insulating you from having to know anything about what’s going on behind the scenes. Sometimes, it doesn’t work, and you need to have some way to get into the guts of the problem. The first priority shouldn’t be providing a point-and-click “don’t worry your pretty little head” end user interface — it should be sane, simple back-end configuration and maintenance so you can make things work even if the point-and-click doesn’t work (or is missing). You also need to make it consistent across implementations.
I just spent 45 minutes trying to get CUPS working on the SigO‘s Debian system. I wrangled with the web interface, wrestled with lppasswd, fiddled with CUPS configuration directory and file permissions, and spent entirely too long looking at Google results that showed me people having all kinds of problems with CUPS — but none of them quite like the problems I was having. The real problem wasn’t that the easy front-end interface didn’t work: it’s that I couldn’t get the thing to authenticate me when I tried to finalize a configuration.
Here’s the ironic, painfully amusing part of the whole thing: I started working on CUPS on the SigO’s Debian system right after I got CUPS configured and working perfectly on a FreeBSD system that is, aside from the OS, basically identical — in under five minutes. The big hurdle in that case was simply realizing I needed to start the cupsd process. Easy-peasy.
Same steps? Hell no. On Debian, you have to somehow magically authenticate for configuration without being able to set up authentication. Apparently, the root account isn’t good enough.
Maybe I just haven’t gotten enough sleep. I’ll try again later. For now, I guess I’ll just print stuff for her.