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.
For as long as the problem has been stated its been overlooked for even longer. GNOME has an elephant to eat, but thats no excuse, and even your wording emphasiss the problem, "to make it better for the common man" remember your mantra and realize you should have said "to make it easier for the common man".
The configuration problem is simple. I have a desktop machine named 'snark'. It is connected, via the house Ethernet, to my wife Cathy's machine, which is named 'minx'. Minx has a LaserJet 6MP attached to it via parallel port. Both machines are running Fedora Core 1, and Cathy can print locally from minx. I can ssh minx from snark, so the network is known good.
(my emphasis)
He's given up his right to claim newbie ignorance right there. Aunt Tillie couldn't even conceive printing through a network.
It's a reference to Eris, Goddess of Discordia. Give this a read, and DO NOT take it seriously. If you do, you have missed the point. ;)
http://www.principiadiscordia.com/
'Standards' in computing only impress those who are impressed by things like 'standards'.
anatomize-1. dissect in order to analyze; "anatomize the bodies of the victims of this strange disease"
...so, your problem is what, exactly?
2. analyze down to the smallest detail; "This writer anatomized the depth of human behavior"
(www.cogsci.princeton.edu/cgi-bin/webwn)
http://www.farmerbob.org
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.
It's hard to know whether it's worth replying to an anonymous moron who can't understand the point of a post. But just in case there are any other children out there who also missed the point, the guy I was responding to quoted a price for the least expensive Mac that was 50 percent higher than the real price. THAT was my point. The poster was displaying gross ignorance about what Macs cost. And if you are stupid enough to believe that a $300 white box from Uncle Fred's Computer and Taxidermy Shop is the equivalent of buying a Mac, you're displaying vast ignorance, too, but just of a different kind.
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
Macs aren't popular because A) they cost a lot, B) people perceive, rightly or wrongly, that the software market isn't as large as for PC's, C) they cost a lot, D) they cost a lot and lastly, rightly or wrongly, the upgrade path for your new costly Mac is more expensive and not as large as for a PC.
Oh yeah and they cost a lot.
"And then I visited Wikipedia
How about you join this century?
On Windows XP on the machine the USB/Parallel Printer is attached to.
Start | Printers and Faxes | Select Printer | Right Click - Properties | Share Tab | Share this Printer | Type in a name, press OK. A little hand appears under the Printer Icon to show that it's shared.
On the Windows XP Network Client.
Start | Printers and Faxes | Add a Printer | Next | A Network Printer, or Printer attached to another computer | Browse for a Printer
Select the machine the printer is on, select the printer.
Driver get's installed automatically, test page prints, and it just f*ing works.
I had already, through a lot of pain, setup my printer when I upgraded to KDE 3.2 but i just checked the printer manager in 3.2. It looks very good and easy to use. I didn't try to setup my printer again (not that brave) but the interface looked clean and well organized and you can use it to setup a CUPS printer. I guess somebody already "submitted the patch".
ack, apparently I can't use any interface, so take anything I say with a huge grain of salt. (the submit button submits the post, can you believe that?)
I'll have to recreate them here, but my other points were
(some of the problems can't be seen from the screenshots)
The ui of fetchmailconf is completely different from any other mail configuration program I have ever seen. (yes, IMO very different == less usable)
It suffers from the usability problem of "configuration modes" - advanced/beginner mode.
It segments the parts of the dialog very strangely
Poll interval is to be entered in unspecified units
If you click edit, it pops up an error telling you to select an item from the (empty) list.
I'll stop there, there is really a lot wrong with the program. I'm guessing you have never used the program, but it is definitely not a shining example of usability, not just due to its use of tkinter.
-Mark
1) aptitude install foomatic-db hpoj hpijs hotplug /usr/share/cups/model/HP-PSC_750.ppd /etc/init/hotplug restart
2) foomatic-datafile -d hpijs -p HP-PSC_750 >
2) plug printer in
3)
4) http://localhost:631, add printer, not hard
As I said, I had to put in a bit of work up front learning that, but it's not that hard.
The downside is the extra effort required on my part to learn stuff. The upside is the cost and the freedom.
I'll tell you which I'll pick.
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?
Begin here http://gcc.gnu.org/ml/gcc/2002-12/msg00800.html , tangent how you see fit...
ESR needs to get a clue. It's evident by his initial environment description that he's quite out of it in terms of what "Aunt Tillie" will be doing with her computer.
Aunt Tillie will not have multiple systems, let alone have a small personal LAN. She will have a boxed Gateway or Dell that comes preocnfigured with a printer. If she needs anything more done than plugging in cables, she will call you, her dear nephiew/niece, to come "fix her printer" for her.
What's more, most detect such things on install just fine. There's not much of a chance she'd not have her stuff set up physically prior to installing the software, if she ever felt so bold to try Linux.
The only people claiming that Linux is ready for the desktop of mere mortals - or will be anytime soon - need to get out more and meet some common folk. Computers in general aren't really ready for common folk, but they're lucradive enough for companies to sell them, and cool enough to make commoners want them anyway.
I digress.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
I can hardly believe it, I just came home after giving a talk to a Perl group, talking about a bunch of stuff (freedom, accessibility, diveristy in the tech culture, how things need to change, etc) and the user interface was a large portion of it. Maybe things have finally begun to change! Anyhow, an outline of it is here:
:)
http://abuzar.com/
Please, feel welcome to give me feedback
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
Not quite, OS X's printer setup does fall into some of the same pitfalls he's talking about. For instance, if I fireup print manager and go for IP printing I'm presented with a menu of printer types (rendezvous, LPD/LPR, IPP or Socket/HP Jet Direct and an adress and que name field. Granted the help is a little more useful, but not much. I think he probably would have written the same rant, if he was only writing about CUPS
T Money
World Domination with a plastic spoon since 1984
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.
That's a lot of typing. Not only is the parent post absolutely correct, but lots of typing introduces the possibility for typos. Typos make things not work. When something you don't really understand doesn't work it's very frustrating because you have no idea why it didn't work, and thus no idea how to fix it.
For example, you have no step 3.
Think of it this way: Every time a person has to touch something, the chance of them screwing it up (either by accident, apathy or by their own lack of knowledge) increases. Microsoft has reduced installing a printer to four "touches" - Plug in power, plug in data, press power button, click "okay".
You method required about 164 "touches" to type all that in... and that's not counting all the "touching" you have to do looking for and reading various documentation just to figure out how to do it in the first place!
Also, I'd like to ask how you know where "http://localhost:631" came from. Nobody associates printing with the internet (And EVERYBODY associated http:// is "the internet"...) This step is especially confusing. It's completely non-obvious. You can not use "experience" as an answer, because the average user will not have any.
Why can't "hotplug" do that for you?
The fact that much of the Linux community is so condecending towards users who "don't get it" isn't exactly helping the cause, either. Unless you're already established a name for yourself in one of the social circles it's almost imposible to get any real, straightforward, one-on-one help.
You also mention cost. I don't know about you, but my time isn't always free. This point has been brought up by other posters already.
And considering the Linux Revolution has yet to happen, despite it being heralded for years now, maybe one is better... I'll give you a hint in case you misinterpret it: Microsoft. It may be crap but it's crap everyone can use, and when you get right down to it the job gets done. That's a pretty steep mountain to climb.
=Smidge=
In any case, Windows terminology dictates that a JetDirect is a 'Local' printer (in the sense that there is no computer on the network managing the print queue to qualify it as a 'Network' printer, equivalent to the Unix terminology of 'remote') and in order to set up such a printer one must Add a Port (Standard TCP/IP). It is at this point, and only at this point, where various versions of Windows will attempt to autodetect something. So ESR is giving Windows designers credit for far more than they've actually done
[100% ISO 646 Compliant]
SVM, ERGO MONSTRO.
It's not another distro, it's "run the newest version of your software". You don't *have* to change distros just to upgrade the software, but that seemed the easiest suggestion given that the question was asked by an appearent newbie ('cause you're running whatever was bundled with the distribution which happens to be about a year old).
The k3b site is http://www.k3b.org/ and there's a binary package up there for SuSE 8.2, so you don't have to do that really hard thing known as "compliling" or "figuring out how to read the INSTALL doc". Heck, you don't even have to go to google and click on the first link returned by a search for k3b - the homepage is linked right in the "about k3b" box in the application on your computer right now.
As I've already explained my position on KDE usability, I won't bother posting it here.
Ergonomica Auctorita Illico!
The CUPS copyright is owned by Easy Software Products. A company that wants to sell you ESP Print Pro, their commercial counterpart to CUPS, for you to do your printing on Linux.
And it took them seven damn years for KDE to make that simple, most necessary change. Seven years. Any project that makes such a stupid mistake like that to begin with (Apple didn't do it in 1984), and then takes seven damn years to fix this usability problem (with some people fighting tooth and nail against it being fixed) doesn't have a hell of a lot going for it.
To me it doesn't matter that this problem was finally fixed; that the problem existed in the first place and that it took so long to fix (with many not considering it to be a problem) really says a lot about the KDE project in general.
Ergonomica Auctorita Illico!