Open-Source Software and "The Luxury of Ignorance"
Bootsy Collins writes "Using the recent experience of trying to configure
CUPS
on his home network, Eric Raymond has
written an interesting new screed on poor design of user interfaces in general, and configuration interfaces in particular, in open source software, entitled
The Luxury of Ignorance.
A sample quote: 'This kind of fecklessness is endemic in open-source land. And it's what's keeping Microsoft in business -- because by Goddess, they may write crappy insecure overpriced shoddy software, but on this one issue their half-assed semi-competent best is an order of magnitude better than we usually manage.'"
JWZ was trying to get video to play on his box. More than a year old, but still a good guide to interface design.
So, if you are out there writing GUI apps for Linux or BSD or whatever, here are some questions you need to be asking yourself:
The problem is in Fedora, not Cups. Cups works just fine, and more or less like he wants it to, if that is all you ever use. Fedora, using whatever configuration system it uses placed some unuseable stuff there.
Granted Cups could use a lot of help, but he wasn't using a Cups configurator, he was using some other configurator that can work with not only Cups, but also SMB, LPR, and a bunch of other stuff. I don't know the solution, but bashing the Cups guys won't get you any closer to it.
Last I checked to print to a network printer under Windows using IPP or LPR you don't choose Network, but instead choose Local. Network printing really means print server printing under Windows, but esr somehow holds that up as an example of a standard to live up to? No thanks. CUPS may be a little rough, but at least when I connect to a printer using ethernet I don't have to choose non-network as the printer type. Of course really it is a print device under windows since according to Microsoft Introduction to Network Printing "The printer is the software interface between a print device and the print clients". Yeah right.
And here I was all set to moderate. Oh well.
.dvi preview and a TeX eq -> eps Service) I could switch to open source for all my work.
pdfTeX, Latin Modern, and FontInst to name three opensource projects involving fonts and printing which are absolutely fabulous.
pdfTeX in particular is so robust it's used to do things like provide railroad timetables on-demand and to run commercial printing imposition systems. Take a look at http://custompub.aimsapp.com to see an interactive example.
Latin Modern is an excellent example of taking an opensource thing (the venerable Computer Modern), applying a new opensource application (MetaType1) and getting a new result (an up-dated and corrected and Type 1 font which is Unicode encoded so as to be suitable for use w/ a wide variety of the world's languages)
FontInst (a font installation utility for TeX written in TeX) is in a class by itself, and anyone who wants to be humbled should read _The TeXbook_, then look at its source code. Amazing. The only thing in the same class is the BASIC interpreter BASIX which was written in TeX (find both on http://www.ctan.org)
Other new and up-and-coming projects include: Scribus (page layout) and Cenon (drawing) and pfaedit (interactive font editing). If there were only alternatives to / equivalents of Adobe's TouchType.app, Fauve Matisse / Corel Painter / Alias Sketchbook (natural media painting) and Creaturehouse Expression (and a handwriting recognition program), TeXView.app (IPC
The want of something like to Creaturehouse Expression is especially painful since Microsoft bought out Creaturehouse last year, and despite a promise, purchasing of the program did _not_ come back on-line in November of 2003.
William
(PS - and Latex3 should be in the works soon now that _The LateX Companion, 2nd Edition_ is soon to hit the presses)
Sphinx of black quartz, judge my vow.
Then why keep saying Linux is ready for the desktop? Why WHY WHY?
.Net, ASP, Javascript, HTML, VBS, PHP, SQL, VBA. The only commonly used languages (scripting and other) that I haven't write code in that I am aware of are Java and python and I've read a fair bit about java. I write my utilities to manage my computer, for example I coded a quick C++ app to manage my backups recently and I coded a perl utility to find duplicate bookmarks in my mozilla. I'm trying to establish here that I'm pretty technically oriented.
I write code for a living. I can code in Perl, C++, C, VB6,
Guess what? I don't run linux. There are two reasons:
1. I write code generally for windows and occasionally I take work home.
2. I don't have hours on end to spare learning how to use Linux effectively.
I love the idea of Linux and at times have made the attempt to migrate my desktop to Linux, with the plan of starting by dual booting, and migrating my environment across bit by bit. Well guess what: each time the GUIs didn't work and I spent half my time hacking around in RC files. You get *awfully* tired of that after a while (or I did).
I might think about running Linux for servers, but I want to see a lot more work of the quality of knoppix done before I consider it with making the effort. Unless of course I get fired and have a lot of spare time on my hands.
If you want linux to achieve market acceptance it must be written to work for the dumb home users and it has a hell of a long way to come.
PS I'm not interested in being told that Ruby, D, ALGOL, Brainf**k or $favorite_language are commonly used languages.
meh
My question is - How can *I* easily setup a printer in Linux? Without the easier GUI offered by KDE or GNOME, I've found CUPS and other printing systems virtually impossible to configure. I have an HP5L printer. I'm really happy to see ESR write about this.
I'm a fairly adept technical user. I prefer to use Slackware and a bare minimum Window Manager ie Window Maker. KDE and GNOME offer nice GUIs to configure CUPS but its overkill to install either to setup a printer.
I've been planning on switching all my essay writing to Linux for practical reasons. One of the only reasons I'm using Windows to do work on is that printing is really hard to setup on 'Nix. I'm not using a lot of fancy fonts - mostly Times - but I do all my writing in either OO or AbiWord. My understanding is that of the older printer daemons don't work/output.
What options do I have?
ESR also did fetchmail. Fetchmail has an *excellent* configuration interface.
* First, the config file is simple and small. A typical configuration should be simple and small. Take a look at the difference between the size of a basic sendmail and a basic postfix installation, and you'll notice an astonishing size difference -- thousands and thousands of lines.
* Second, fetchmail enjoys good defaults. If you enter the minimal set of options in the config file, it generally works properly.
* Third, and this is the biggie, fetchmailconf is an excellent GUI config tool. It can autodetect most of the configuration, and if there are multiple supported protocols/auth methods, it uses the "best", which is really better than most commercial email clients can do. Note that one *still* has full access to the simple, readable output that it produces. It doesn't hide anything from you at all, so it doesn't hurt power users that know exactly what they want the software to do, but it makes things much easier for new users.
May we never see th
Maybe it has something to do with the way you point out those flaws...?
If you're a programmer working on something which scratches your itch, there a good chance that you already know how your own program works. Having someone come and say "Nonono, this interface is crap!" without actually providing suggestions for how to make it better is annoying at best.
Annoying as it may be, the "program your own version" may also be a valid argument from the programmer's perspective. If changing a UI is a lot of work, then the programmer may not actually have the time (or motivation; remember they've already scratched their own itch) to implement your set of changes. But you can still do it or get someone else to do it if you feel strongly enough about it. Remember, what you're getting is free (probably as in beer and freedom), so the programmer has no moral obligation to do anything for you.
But I've usually found that if you are polite and above all humble when you suggest fixes (be it UI fixes or regular bug fixes), then people will usually do it out of the goodness of their hearts. Btw, you might check this link:
How To Report Bugs Effectively
Most of it also applies to UI bugs.
HAND.