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:
Well, if ease-of-use is paramount, why aren't Macs more popular?
There's your problem right there "I have a desktop machine named 'snark'."
- Nick Busey
www.pedalbmx.com
www.nickbusey.com
That's not necessarily true. Mandrake set up CUPS and just about everything else I've needed with no problems at all. It's all about what you're doing. For some programs under some distros you need to be a programmer to install and / or set them up. Under other distros, and with other programs, it can be a breeze. (Just look at how well Knoppix does!)
I had a very hard time configuring cups for the first time, but after I learned how to do it, it proved to be '''much''' easier to administer and manage than it is in windows. It was also easier to change configurations without breaking multiple user's print settings. This is true with a lot of open source things. Hard at first, but once you get the hang of it, there is no going back.
The Television Wiki
What a rant! Im going to send mod points to Eric Raymond's house by mail.
Ignorance and the user won't step out of their bounds beyond their Internet Explorer and Outlook. Unfortunately, others like Gator and BetterInternet will do it on their behalf.
In the end, a computer is more like a car than an oven, capable of great power but requiring a good deal of knowledge to use (and not run over people in the process).
Doing the Right Thing should not be preempted by making a buck.
...ESR was found beaten severely, with the names of several CUPS developers found tatoo'd on his forehead....
It is punditry, but it's also something that has been said quite a few times before, including by Miguel de Icaza of GNOME fame.
Really. There is a ton of OSS software with really shitty user interfaces, but anything involving fonts or printing seems to be crappy beyond belief.
Congratulations on perfectly illustrating the attitude that keeps anyone from solving the problem. Congratulations to the moderator who gave you +1 Funny for doing exactly the same.
Anyone who can't use an interface you understand isn't as smart as you and therefore is not worthy of consideration. Is that it? You can see where this leads when a developer hears criticism of the UI - they designed it, so of course they understand it. Stupid users! Of course it's their fault.
And then they go and blame the same users for choosing windows...
Everything depends on what system you are configuring CUPS on. I'd agree with you for Mandrake Linux, but configuring CUPS under Slackware is anything but easy. I think one of the major problems is that people come out with great tools (i.e. CUPS), but they require a certain amount of effort / sophistication to use / configure, so distros like Mandrake, Suse, and Red Hat write their own configuration tools. Only problem is that because each distro is set up slightly differently, configuration tools aren't portable across distros. Perhaps what we need is a collaborative effort by the major distros to create 1 size fits all config tools.
The entire nation considers your written and spoken rants both condescending and highly obnoxious.
Are you kidding me? This is precisely the thing that we need to concentrate on. If we can't be critical of ourselves - MS sure can.
How Important developers of the GNU and Open Source Movement are living the obscure land of kernel hacking and going to write some userland code. Many times, in Free Software, the underlying system, the lower level development is made by the most competent developers, and so is robust, stable, actually the best out there, but the front ends, well, they just don't have the same quality, so, for the unexperienced user, it looks like crap. I think it's time that we change this, and start showing that GNU can also be reliable on the Desktop, not only showing how fast it is, but also good end-user interfaces. It's not that i don't like KDE, GNOME, XFCE, etc,etc, they are ok, but i think that if we put the best people to work on it, they will be even better.
Linus has been talking about this recently, are we going to start seeing things like Linusorganizer, Linword??, hehe, that would be nice.
WTF am I doing replying to an AC at 5 A.M on a Friday night?
It's true that the OSS community needs to beef up many area of the developpement process.
Software isn't just about the code the same way that a car isn't just about the engine.
For people to want to use it in the first place, to enjoy it once they've started using it and to stay with it, a "product" needs many qualities.
This (often) explains why an inferior design can becomes the norm.
So lets get cracking with artists, GUI/interface designers and and documentation writers!
I will anticipate the "Well, why don't you do something! Where's the patch?" posts and answer:
I'm doing what I can with the talents that I have (often amounts to writing suggestions to developpers, bug-reports, spreading the word on new stuff and donations).
Treehugger? Treehugger... Treehugger!
I honestly have not ever heard someone use that term outside of The Clash. I shall use it tomorrow a minimum of twice.
.-=Wit is educated insolence=-. -Aristotle
Dear ESR - :)
We will accept your critcisms of CUPS when you fix it. It is, after all, open source
-Your OSS pals.
Talk about luxury of ignorance. I pitch open source software to family/friends/bosses every chance I get. Now this one time, I was telling my boss about OpenOffice when MSOffice bailed out on him.
Boss: Damn. This MSWord thingy sucks.
Me: You should try using Open Office once. Its a good sub and its free!
Boss: Free? I am telling you one more time. Stop downloading things off of KaZaA damnit
Me: No. No. No. You got me all wrong. Its free as in 'free as a beer' free.
Boss: Does it have Clippy?
Me: What?
Boss: I looovvvvee Clippy. He is so cute
Me: Well, it doesn't really have a Clippy per se but...
Boss: Oh common. How do you expect me to use it if it doesn't have Clippy. I am a PHB
Me: What?
Boss: I am a pointy handed boss
Me: Handed? Ohhh well. Nevermind.
At that point I just walked away defeated by clippy and luxury of ignorance.
Free XBox, PS2
Uhm, I guess you've never heard of ESR before. When he talks about the open source community as, "We," he really means "we." He is actually doing the work.
ESR is part of the community. He's not some teenager whining that the software doesn't work - he's a respected figure pointing out a problem in hopes that it will be recognized and fixed.
--
http://nemilar.net - Not your grandmother's soup kitchen
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.
Either I can take his side and be called an idiot because I'm sure someone will claim to have an easy solution to my problem. That's what someone claimed the last time I mentioned I couldn't get MPlayer working and then of course the suggested solution didn't work. Or, I can stay out of the discussion entirely. I think I'll do the latter instead.
That rant, to me, sounds like another programmer who can't cope with the idea that most people do not think like programmers when it comes to understanding software, and would rather blame the user than have the strength to take an honset look at the situation and what he/she could do differently to improve it.
I know writing GUIs is a pain (I'm not a professional programmer, but I've had to do nothing but coding for 2 years), but programmers have to stop blaming the users and other people who point out things like this. It's just a denial that 95% of all people using a computer need something simple because, to them, IT IS JUST A TOOL, and they need to use it to produce a product, not to hack on and explore.
ESR has a good point -- if FOSS is going to replace closed source, or hold its own, or even continue to grow, FOSS programmers will have to get realistic in understanding how users think instead of blaming users because the programmers don't want to make the effort to understand the other side of the issue.
For the good of the FOSS community, ESR needs to speak out more, and people like the above poster need to "please shut up" and listen to other points of view, instead of hiding their head in the sand in denial.
First of all, as a self-taught Linux user I am delighted that someone as talented as ESR can have a hair-pulling session doing something like setting up CUPS. I have had many an evening like this. Excruciatingly close to getting something done, something that should be simple, and instead spending hours feeling stupid and incompetent. He's right, and he's right about the fact that this is why there are countless unused Linux install discs littering desk drawers under Windows machines, tried and abandoned by people who hate Micorosft, hate Windows, who would LOVE to support an alternative, but can't make it work.
The user is the loser. There's a clubby, exclusive, snotty attitude among user's groups. The online resources are hopelessly disorganized or relentlessly dinged with ads. The vision that Stallman has of software as knowledge, rather than product, is lost among the throng of sociopaths that spout RTFM at users that ask the same questions over and over.
Well, you know why people have the same questions over and over? Because the software is obscure and the documentation is unhelpful. GNU is based on people solving their own problems and then giving other people an opportunity to use thier solutions. Documentation, at best, is an afterthought. Once you have solved a problem, there's no need to go back and explain it to yourself, any documentation that does exist arises purely from the virture of developers, not because they need it themselves.
The fact that the most useful thing you can have with this enormously powerful gem of human progress (the computer) when trying to use Linux is a printed-out HOW-TO, probably downloaded and printed from a Windows box, is more than ironic, it is shameful. The tools for providing context-sensitive help are there, they just are unused. The developers don't care about the user, they've solved thier problem by this time.
If OSS developers needed robust documentation in order to distribute their product, they would either develop it or not distribute their code. But they don't. There's no reward for the developer.
This brings me around again to the notion of licensing software developers and then making them accountable for the usability of the product. Not as an avenue for exclusion, but to build a community of developers devoted to the user, a Mr. Goodwrench sort of certification standards, that tests it's releases against naive and novice users. How you make this work I have no idea.
Red Hat should be doing this already, but they've clearly left the home user at the altar.
The best way to do is to be.
I always try and get an open source-coding friend of mine to understand this, and it never seems to sink in.
Interface design is an incredibly important part of any software project - it's like the clothes you wear to a job interview. Sure, you *might* get the job if you wear your regular jeans and t-shirt, but if you take the time to dress up, you will create a much more favourable impression on the potential employer you are meeting.
Similarly, taking the time to make your user interface polished and intuitive is one of the best ways to end up with happy end users who tell other people how great your software is. It lets them know that you care enough about the software you create to spend a few extra hours making it look nice instead of shoving it out the door as fast as possible.
"...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
You're all missing the point. Trying to configure CUPS does suck if you're on your own trying to figure it out. Anything with Linux is this way. I'm not a college-aged dork sitting in a dorm not getting laid with 20 other dorks playing EQ. I'm trying to figure out how to use this powerful tool, and if I have to spend 3 days studying dusty man pages to set up a frickin' printer - forget it. Takes me 10 minutes to write a script to install a queued novell printer when I click on a NAL - and then leverage that against 10,000 machines that I don't have to touch. Will Linux do this one day? I hope so.
- [no response. evar]
- This is different from Windoze - I know that! I don't want "Windoze" (how cute, BTW) I want to tell you that your fucking design sucks rocks!
- If you want stupid, use Windoze instead - Again, very cute. Also arrogant and stupid.
- This is how it's done in Linux - Well shiieet, of course it is. That doesn't mean it's correct.
- Did you RTFM|Google? - Well of course, for the last fucking 4 hours, just.
- The next version will have... - That's great except that if I Google for what you said about this version I see the same thing. Wow, Usenet is great, eh?
- We're not going to add that, that's stupid - Of course!
- Use [x] instead - Yeah, except that [x] has been in alpha for the past nine years.
- Check out [this page] - Fantastic. If that's not a 404 I guess I'll have to learn Japanese! Weee!
- You're welcome to ask for a refund - Wahahaha!!!
It takes a rant from ESR (who despite his pretensions doesn't know much about human interaction) to get people to do things right? Wow.I always get a chuckle when people compare Linux to OS X or Windows in usability terms. KDE looks absolutely fantastic after I log in, but the fun stops there. If I actually want to do anything else I have to fire up vi and edit 1,000 conf files. Give me a break.
And yes, ESR is right. This is one of the things that keep Windows users in Windows and perpetuate what you folks call "monoculture". Whining about it and blaming everything on "M$" won't fix anything. Great software ultimately sucks if I can't use it.
Yes... exactly his point. IF you want Linux to succeed on the desktop, you will have to one day realize that the *vast* majority of users will have little to no technical experience or expertise. Not only will they have criticisms but they will not, and have absolutely no desire to, fix such issues. Instead, they will abandon it and go find something else easier to use.
It's attitudes exactly as yours that will relegate Linux to a niche. You are not helping Linux and OSS, you are hurting it.
show me the code, or shut up
Have you looked for the code?
Your post tells of smacks of an attitude all too typical in open source... You believe only code gurus should criticize software. Eric may or may not be a code guru, but that argument is flat wrong. Bad interface is why Linux is taking so long to make inroads on the desktop. It's a legitimate problem that needs to be addressed and maybe *JUST MAYBE* people who write code are not the best user interface designers. Maybe users are simply not as deterministic as software.
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
The article was insightful, and it contains some things I still did not know after wrestling with integrating CUPS, Turboprint (crappy Canon printer) and Samba, but to be fair to the CUPS developer, they did not write redhat-config-printer; Red Hat did.
CUPS and Turboprint works well, as it turns out, the problem is that printing from OOo (Linux), printing from OOo (Win) using CUPS' postscript driver, and printing from OOo (Win) to a Windows printer results in different page margins being used. Bummer. At least the fonts look identical if the same fonts are used on both ends.
And for those people with new Winprinters wondering why raw printing from Samba does not work anymore, you need to add the Windows user as a printer admin. Not documented *anywhere*.
Michel
Fedora Project Contribut
Perhaps Mr. Raymonds' problem is that he EXPECTS all open source stuff to work flawlessly first time out of the box instantly just BECAUSE it's open source.
In the Windows world it's always a little like being a landmine tester by hitting it with a hammer. So we expect that the configuration dialog for the printer device will just hang or crash for no obvious reason. We expect that MS common UI design isn't and most of the critical functions are never in the same place.
Predictable Failure. We hope for a minimal effort, at best. But in the OS world we think sheer brilliance will save us all no matter how obscure. So when it doesn't we experience a level of frustration and disappointment we're not accustomed to.
My mom and dad have a computer (but 10 years ago they wouldn't touch mine) and there's no way in hell they'd figure out how to configure Linux to print, or network or even change the display resolution. The number of people with personal computers today is astronomically higher than it was 10 years ago and one of the core reasons for that is that they are no longer intimidating to the uninitiated; if you take all those people and throw them back to the usability of ten years ago they'll just give up on computers like they did back then.
You can shout RTFM all you want, Joe Blow doesn't want to read it. So if you want Joe Blow to use your wares make them as easy to use as the competition.
With closed source the responsibility lies solely with the company to solve the problems.
With open souce, problems are just an excuse to try to force people who find problems to "join the cause" or you can just ignore any problems they find.
Here's a crazy idea members of the Open Source community such as yourself need to get through your thick skull: take responsibility for the crap you write. If you write the code, it's YOUR responsibility to fix the problems. No one else is obligated to fix a line of code and is more than free to point out the flaws.
He didn't write CUPS so why should he feel obligated to fix it? He's a USER. He didn't write the code. He didn't design the interface. As a USER he's in a position to criticize. It's what users do.
Whinning he doesn't treat you like a king and kiss your feet for blessing him with what he sees as crap, is not going to do anything to win support for the project.
This is why I choose what Open Source projects I use very carefully and rarely recommend them and never because they are Open Source.
Ben
Work Safe Porn
The way to get help with your linux problems is to troll and say "Linux is teh suxx0rz because XYZ doesn't work!"
Then 4,000 penguin-fanboys will come out of the wood work, each with a distinct solution to your problem!
Now had you asked for help, they would have said "Read the man page! n00b!"
As for me, I can't really help you. I run AIX. And some other window'd operating system that allows to to remotely access my AIX boxes.
In the future, I would want to not be isolated from my friends in the Space Station.
All in all a pretty decent article.
I agree with many of his points, if there is one thing I dislike in the *nix culture it is the elitism, and holier than thou attitude that many people in said culture have towards users. This is just one more sign of that elitism, we spend hours and hours making very good stable, well designed software, and then we demand that you read a 1500 page book to be able to use it... That's stupid, now you can say "if they don't want to learn they shouldn't be using this software" but that's dumb too... my dad is an attorney, he wants to work on cases, and do legal research and the like, thats what he's interested in, he doesn't want to spend an hour a day figuring out how to share printers/files and send emails, and he doesn't want to have to pay someone $150/hr every time he needs to add a printer to his network. My wife is a psychologist, she wants to care for her patients, and work on her book, she doesn't want to be bothered with figuring out how to configure her computer, and she shouldn't have to be... That said, the author shouldn't have been bashing the CUPS guys, the configurator in question is an inhouse product by redhat/fedora, no other distribution uses it, and the default setting of having the broadcast turned off was also a decision by redhat/fedora not the CUPS programmers (well it might have been made by the CUPS devs, but redhat/fedora had every opportunity to change that default behavior). I appreciate the article though because he is right on in critisizing the community for their lack of vision in this regard. (btw, I admin a 7000 node network, and the entire thing is controlled by linux and unix servers, there are windows nodes, but I would never run windows on the server side, and I rarely use it on the desktop either so don't count me as some MS apologist)
Contrary to what you think, the least expensive Mac is the entry-level eMac, which costs $799. Check it out for yourself.
Ignorance like yours -- particularly to compare a $300 Intel box with a Mac -- is a huge reason for Apple's lack of market share. Apple has made a LOT of mistakes on its own, but people like you who THINK they know something about Macs are just as big a source of the problem.
It's really easy to jump on the Anti-Microsoft bandwagon when it's time, and say "Linux is ready for the desktop, it's high-quality and easy to use, why doesn't it overtake that crap from Redmond". But, when push comes to shove and sombody points out the things that scare off non-technical users from using Linux, OSS "advocates" really seem to have a hard time accepting constructive criticism.
Look -- if it's just a hobby OS, fine, this criticism is totally baseless and cruel. But, if you all want to see your labor of love have a real shot at the desktop market, you're going to have to take criticism like that and work with it -- if it seems angry, it's because end-users get frustrated when they're promised an easy-to-use system, and they have to spend more time wrestling with configuration than actually doing what they need the OS to do.
Either take the criticism as advice and use it to add value to your software so it can be accessible to a larger audience, or accept that your OSS project is just a hobby.
Communism was just a red herring.
Well, in fact, setting up a network printer in Windows is certainly not better.
You have the choice between "Local printer" and "Network printer". If you do have a network printer like an HP with a JetDirect card, the correct choice is NOT "Network printer". It is "Local printer", and later you have to add a "Standard TCP/IP port". ("Network printer" is only to add a printer shared over SMB by another computer)
So while he has a good point on a bad interface, and while it is true that for some things Windows may have a better interface, it certainly doesn't for networked printers.
I remember trying to get fetchmail to work. What a nightmare.
The kernel configuration system back in 2.4 was crufty and not very user-friendly. So Eric decided to build a new system, CML2. It ended up not going in for a variety of reasons, not the least of which was probably a lot of people don't like him all that much. However, in that case he was practising exactly he is preaching here - making software easier for non-gurus to use.
Any sufficiently advanced technology is indistinguishable from a rigged demo
--Andy Finkel (J. Klass?)
on the other hand, the "squeaky wheel gets the grease"
i think the more noise everybody makes about a particular shortcoming, the more the entire community will pay attention to that particular shortcoming. yeah, it might be annoying that people keep harping on this, but in it's own way, it will help get things done
just a thoughtIt's fine to say RTFM to a spotty student who spends his entire free time in front of his Linux box, but ESR is making a valid point that no-one seems to pick up on:
.conf files to get Linux working, only to attract abuse from the same people who encouraged me to use it in the first place?
Most of us don't have the time
I work from 9am to 3am every day, including weekends. I would love to run Linux, purely because Microsoft's pricing and attitudes bother me, but the last time I tried to set up Red Hat, it took me 4 days to get the system to even recognise my video card.
We're not just talking about Aunt Tillie, we're talking about Joe B. Power User, who may have the skills to work it out eventually but simply does not have the time.
Wheras, I plug my Windows XP machine (and yes, I know this is only a recent thing) into the network and Universal Plug and Play makes network printers accessible without my having to so much as touch the PC. Now that's what we want from a Linux distro, and it's not even hard to implement. Why should I have to wade through a dozen
sig:- (wit >= sarcasm)
This is especially true if its a non-trivial piece of software. Several times new programmers have come into software packages I've been working on, don't bother to read the structural documentation or even the useful other code that serves as examples for how to improve and extend upon the existing structure.
Instead they try and do things their own way, often end up doing things redundantly or breaking something else and just otherwise fouling more than they contribute.
The best person to improve upon software is the person who designed in the first place! Or someone who's worked on it extensively enough to know the quirks, the reasoning behind non-obvious parts and knows the rest of package throughout.
Telling a user to fix a poor piece of software is incredibly frustrating and lame to those of us who, god forbid, have other things to do in our lives.
-
I've held a fairly obvious view for a long time with regards to interface design (be it computer or otherwise):
;)
Unless you're working under a predefined framework, chances are, your design is going to differ from someone elses when you both attempt an identical solution.
This isn't an answer on how to deal with this issue, as the answer(s) are everywhere, it's more of a thought process that keeps me from going crazy.
How many times have you worked with a piece of software or hardware only to move on to another one that was similar in concept, but totally different in execution? It's gotten to the point that I've stopped trying to become an expert at everything, and simply want things to work (maybe I'm just getting older, and have less time and/or memory).
Maybe that's why companies like Apple have a strong following, with a mantra of "it just works".
The next time that Joe Administrator is getting cocky with "oh, you didn't know how to configure file XYZ for ABC", remember, they're just being programmed to use an arbitrary interface, thought up arbitarily by some designer.
And that folks is why I'm working to get out of System Administration, and into programming
[end rant]
Q: What do you think about American Culture?
A: I think it's a good idea.
(adapted from Gandhi)
Here's my idea of a dream setup: the best of both worlds. The consistent GUI of Windows or Mac OSX, and then the rest of it consisting of all that is good from linux(stability, etc).
.conf file. Why would you only have a few configuration options?
I envision mullet computing. Windows/Mac in the front, Linux in the back.
I love how I have some nice GUI configuration options for Samba(in Fedora), but to completely configure it, you still have to dig in the
And who are the (l)users? The persons who use a computer as a tool to get their job done? The persons who don't think of their OS as a religion? The persons who given in and try Open Source software only to find that a good deal of software isn't as usable as it could be? When they ask or comment they are thrown to the wolves.
OMG..imagine a guy who has done a good deal of visible work for the Open Source cause, points out a weakness or simply an area that needs some improvement, and the most visible and shocking comments on /. are the ones knocking the guy. Very little in the way of, "yeah things could be better...How do we fix this? How do we help?"
You missed the point of the article. He's speaking about Open Source projects in general, and he has a very good point. I only started using Linux and other open-source software about three years ago, and I've gone through the exact same process with at least a dozen different packages. Most of this could and should be fixed on the documentation level - if someone like myself with 20+ years of computer (coding x86 and TMS9900 assembly at age 10) experience gets frustrated, there is a serious problem.
:). Even then, the other Eric and myself can't fix everything.
It's all well and good to put out an excellent piece of software like CUPS, but it's also important to communicate its workings (and CUPS is just an example; we could go down a list if we wanted to). Even though I have extensive coding experience, I think the best way I could contribute to Open Source is on the documentation side... if I can just figure out what I'm doing first
Beyond that, open source developers need to develop the mindset (pun semi-intended) that their user knows either little-to-nothing for desktop applications, or basic server administration for daemons. Each piece of documentation should begin with something like "In order to comprehend this documentation, we suggest you be knowledgeable about: (shell scripting, OpenSSL CA management, installing CPAN modules, etc)." Pointing to some good references would be a bonus. Listing knowledge dependencies is every bit as important as listing library/package dependencies.
Once that's out of the way, you have to communicate everything necessary to configure and run the software. Writing documentation from a naive (in terms of program functionality) perspective is difficult and tedious, but it is doable. You just have to ask yourself "If I didn't write this, would I know what the hell I'm talking about?" after eveyr paragraph.
And that's just to be "reasonably" useable. If we really want to "take over the desktop," then we need perfectly polished wizards and other GUI tools to help those users that are are not inclined to RTFM, spend a few hours with Google, or (shudder) RTFS. The bottom line: it's wonderful to put out a really cool and useful piece of software, but the job isn't done until it's documented (daemons) and / or idiot-proof (end-user software).
Help save the critically endangered Blue Iguana
Come on, are you telling me when something ticks you off about a piece of code you download the tarball or cvs the code and learn the whole thing and dedicate yourself to its betterment??? I hope nothing about the kernel or Mozilla or Mysql tick you off or you are looking at six months of hard study.
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.
Well, as a matter of fact CUPS is one of the few projects which actually put some effort into making a GUI. It's not that it would have taken significantly more skills/code/time to make a much better GUI. After all, all the auto-detect code is there. It's just that the programmer didn't think too hard about the interface, and -- most problematically -- didn't think with the user in mind. It's not like it would have taken more than 2 extra minutes of programmer time to put in short explanations of what each option does. That's what ESR is really getting at.
Meetings: None of us are as dumb as all of us.
Nerd: Derogatory term typically directed at anybody with a lower Slashdot ID than you.
I notice that most of the comments thus far seem to be along the lines of "We don't need to improve the interface, the users need to get better because they're too dumb to use it right, and they should just learn cause then they'll realize how much better it is!"
This is a common mistake made by programmers. The problem is that not that users are actually all that stupid. The problem is that we tend to think of things in terms of how they're doing something, whereas users want to think of them in terms of what they're doing. For example, I want to set up DHCP to distribute IPs to my OSX box so I can use SMB to pull MP3s off my XP box. This is not the way a user thinks; the average user wants to hook his Compaq to his Mac so he can move around his music. He doesn't want to know what any of those acronyms stand for. He just wants to accomplish a simple task.
Bottom line: the best way to write a good interface is not to think in terms of "what is my software doing" but rather in terms of "what is my user doing." Like my human interface design professor used to say, if people can't use your software, it's not because they're stupid, it's because you designed it poorly. Users prefer usable software to powerful software, when given the choice.
Another point to consider is that, in the eyes of the Managers of potential corporate users of your system, any time employees spent learning all the details of your software is time taken away from getting actual work done. Not to mention that sloppy interfaces that haven't been properly checked often actually COST most companies money, since their employees actually often take longer than it would have otherwise. Good interface design is not a luxury, it is a mandate.
I generally take ESR's rantings with a pinch of salt. I understand where he is coming from but I think sometimes he has a tendency to go over the top. However in this piece he is right on.
/etc/rc0.d is for.
I am a geek. Not only do I know a shitload about computers I actually work in the industry as a field troubleshooter technician. I have to say though, that although I use Linux on a daily basis on my work PC as my main OS, it still throws me for a loop sometimes when I go through what ESR went through with whatever piece of technologically advanced, functional but ultimately borked UI software I happen to be trying to set up at the time.
He is right - this IS keeping Microsoft in business. Case in point - I get customers constantly asking me if there is a better alternative to Windows. There is of course, but I would NEVER recommend Linux to an end user who just needs to get on with the business of running a business simply because of the lack of intuitive UI's for Linux apps.
There are great, shining examples - K3B, Firefox, Thunderbird, Mozilla, Openoffice, Evolution, KDE control centre etc. Let these apps serve as an example to UI designers for other projects.
It's one thing to have all the functionality in the world, but that amounts to sweet FA in the eyes of a gumby user that would rather give money to Microsoft than learn what
"And then I visited Wikipedia
Seriously.
Try having your grandma setting up a printer with gnome or kde. Better yet try a usb printer.
Send grandma a small video and watch her try and figure out how to play it on linux.
Or best yet watch grandma try and use xcdroast.
Try reading through man pages for stuff like ssh keygen, or X, or any other sort of technical software. Is it really that hard to give human readable description of how to use the shit?
this is what will do, here is an example, here is another example, dont try and use it to do instead should be used.
instead of stuff like this
-e Convert OpenSSH to IETF SECSH key file
?????
seriously documentation is so damn important, and so easy to make. If you write some software, you know what you wrote, so just write a paragraph for each feature, it only takes like 5 minuets and then your software might acually get used.
The same principals go for graphical interface as well as command line interface. Think of a gui as just a extention of cli. This doesn't apply for all software, obviously things like openoffice dont have a cli. But these apps are pretty rare, and the few that exist work pretty good, browsers and office and stuff.
Bottom line, this guy is right. We need better quality apps and configuration utilities for linux.
Adam
Selling software wont make you money, selling a service will.
Why? Because he's a USER. Not a programmer. Developers have a responsibility to listen to their userbase. If you want market-share, then when your users say "I don't understand X", you DO NOT say "well, FINE, fix it yourself!" That is ENTIRELY the wrong attitude. ESR may be confrontational, but you're even more so.
Why doesn't your approach work? Because they're simply going to walk away. Software is so complex these days that many people, even programmers, couldn't possibly contribute without investing a serious amount of time. Hmm, which is a better use of resources- 12 hours of a user messing around learning your functions, conventions, library calls etc(and probably introducing more bugs than features)- or 15 minutes for you to add the button yourself?
I know -exactly- how he feels. Countless times I've found software that has a super-spiffy web page, touts how damn good it is to anyone who's reading- but you unpack the source and Jeeeeesuschriiiiiist you can't figure out which way is up- and I've been building and compiling unix packages for almost 10 years(when i was yer age, we had to edit makefile library paths ourselves! None of this automake...) Then, if you get it built, you run it and menus have confusing names, there's no help file, there are secret options nobody mentions that are in the ~/.myprogram directory, and so on.
The mldonkey p2p client was an excellent example. The developers continuously worked on all sorts of weird theoretical schemes for this and that, while the userbase clamored for a manual(there was none), a description of what each setting did(ditto- the developers would cheerfully add some oddly-named option and not explain to ANYONE what it did), or for features that were common in other clients. Such as the ability to share a file without having to restart the client(shocking!) But hey, you got three different algorithms to pick from for how it managed sources for files. Yaaaay!
Please help metamoderate.
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.
My recent experience was trying to print to an inkjet connected to a windows machine. Since it was remote, I decided I didn't need a spooler, so I didn't install cups. Instead, I found foomatic, which is supposed to cut through the many layers of drivers in one slice. Through no efforts (reading several confusing and inconsistent tutorials) could I get foomatic to produce a file in my printer's format. Nor did it give me intelligible error messages. I finally posted to the main list at linuxprinting.org (lp.general); but in the weeks I've been subscribed, I've not seen a single useful reply to anyone's question!
Oh, I finally got the printer working. I just have to run gs -DSAFER -sDEVICE=ijs -sIjsServer=ijsgimpprint -sDeviceManufacturer=EPSON -sDeviceModel='escp2-c82' -sOutputFile=out -DNOPAUSE -- file.ps , and send the result with smbclient.
The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
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
... a decent try at best. At first glance it alienates me a _LOT_ less than lprng, which is fully managed with an arcane /etc file that lists configuration directives in no particular order.
But that doesn't mean that CUPS is all peaches and roses. I had to discover what `foomatic' was in order to figure out how to extract a driver for my Epson Stylus C42UX from a large xml file. Its wizard to create the printers was rather friendly, although a belaguering dropdown box full of stuff I didn't have asked me where my printer was. Luckily it identified itself as USB PRINTER #1 (EPSON C42) so I could choose that - but most wouldn't have the slightest idea of what to choose and just stare at the screen glaze-eyed...
Really, all I wanted to do was print a school assignment. I fully agree with esr on this issue. This whole CUPS ordeal should have taken me 10 minutes, not 10 hours (on and off) to get working. And it still doesn't fully work, for example with printing to a SAMBA host.
But CUPS is the best we've got for Unix now. Isn't that sad?
It takes a real man-geek to admit "issues" when installing new software or configuring devices. He loses points for his longish rant though.
/etc/cups/cupsd.conf file.
However, I found myself nodding in affirmative at EVERY single step he took during his trouble shooting. I made a lot of the same assumptions (wrongly). The funniest was when he finally figured out he had to configure the server machine to broadcast, and then he couldn't connect to it. HAHA, it took at least 15 minutes of loud swearing for me to figure out how to configure the &*#&#((#&$&^
You know you're in trouble when the first like in the man page is RTFM.
I swear, if I have to configure another CUPS network, I'll go postal. It works... ssssh, don't touch it, and speak in hushed tones when in the vicinity.
Toddlers are the stormtroopers of the Lord of Entropy.
The biggest problem I've seen with open source programs is that when you do get end-users to test things out, be it a UI issue, or some other functional issue, is giving feedback.
Most of the times it seems that they don't want to look into issues or fix items. The advice is always "what does the debug output say?" or "submit a patch for it". Neither is something that the end user, who we are trying to convice that Linux is so much better than windows, is going to be able to do.
Listen up everybody out there in Geek Land! User interface design is hard . Read Landauer's The Trouble With Computers .
I like "free as in freedom" software, and I fear the society that will be created by proprietary stuff like Windows, but we won't get the freedom we want if we can't deliver the benefits of freedom to the average user. If you can't be bothered to read the book, remember this: test, test and re-test. For really important stuff, borrow the most clueless of your relatives and friends, and have them try to use it while you are watching (keep your damn mouth shut, though). If you do this, you will create easy-to-use software, and if you believe in the political value of F/LOSS, you need to take this seriously.
The developers of CUPS have scratched their itch. I personally have no desire to scratch Aunt Tillie's itch. She isn't paying me. Neither is Raymond.
My printer works. If Aunt Tillie wants hers to work, she can pay me to set it up for her, or she can pay me to write software that makes it easier.
Why the hell is it CUPS's (or anyone else's) responsiblity to do this? If IBM and Red Hat are going to profit from easy printer sharing, let them write good config utilities. The CUPS team got the reward they were after. Their printers work.
When someone gives you a gift, try not to kick them in the nuts and ask for more. They have every right to stop giving.
"Joe Blow" could have written the same article and it would have been just as pertinent, and would have deserved being listed on the front page.
The point is that people know his name, they use the software he wrote, they read the crap that he spews, and he's more often right than wrong.
Front page because we'll read it, we'll coment on it, and we'll debate whether or not he has sufficient celebrity status (which brings us right back to your point).
It's not that he's profound, and it's not that he's well spoken (he's definately not). It's not that he's a well known blogger, as most probably don't consider his claim to be due to his blog. He's been around since before you could reach the keyboard, and he's written utilities that were once among the most widely installed on unix boxes. Even those of us who may think he's somewhat of an ass still like being notified when he's got something poignant to say.
He might be considered front page material because he's not really known as a blogger, but because even those of us who think he's an ass probably are using or have used software that he wrote or maintained, or because we begrudgingly acknowledge that he often has something worthwhile to say.
Read, L
Sorry, this is one that Eric Raymond should have researched a bit more. Not because the interface he's talking about is any good, but because he's firing at the wrong target, as others have pointed out. I wouldn't expect someone who doesn't know Linux to figure this out, but Eric should have been able to tell the difference between a Red Hat hack and CUPS proper (at least the localhost:631 web interface).
While I haven't used it myself, the number of complaints about it on the linuxprinting.org forums (vs. the lack of complaints about Mandrake, SuSE, etc. in this regard) suggests that there's a problem. From my standpoint this is a real nuisance, since a lot of the people blame Gimp-Print for their problems (reasonably enough from their perspective -- I don't blame them for that). However, ESR should know better, and should be able to pick his targets more accurately.
It takes all of two sentences to explain networked printing to Aunt Tillie. "You hook the printer up to this computer over here, and you can print to it from this computer over there. Just be sure and shoo the cat off the printer before you hit 'print.'" If you'll notice, the second sentence is a bit gratuitous.
ESR never claimed to be an ignorant newbie. In fact, he's pretty computer literate, and this was the only thing that allowed him to beat it into submission. His point is correct: if Linux is going to make inroads on the desktop, the learning curve has to be flattened enormously.
You want the truthiness? You can't handle the truthiness!
Here is my quick account of setting up a Mac (10.3.2) to print to a Brother MFC-8820D.
I plugged one end of there ethernet cable into the printer and the other into my laptop. So far so good.
Being a highly competent user, I then went straight to the Printer Setup Menu and click add printer. I chose IPP printing. Then I turned to the sales guy and asked for the default IP address of the printer. He didn't know. I didn't know. It wasn't in the manual either.
I cursed. I yelled. I was annoyed. I sent two people off the go and find out the default IP of the network card.
While sitting there quietly spouting profanity I looked in my list of currently configured printers. Well buff my nuts and serve me a milkshake! There, in the list was the Brother printer all configured and ready to go. I didn't have to do anything.
I selected it and pressed the "Configure" button. It launched a web browser and brought up the configuration page.
I fell off my chair.
I later learned that the printer supports ZeroConf network discovery. Apple takes that further by selecting the correct driver automatically. It work just as well via USB, only if I think want to share it to other Macs I then have to follow the very complex task of clicking the "Share Printer" box in the System Prefs.
I submit that it *would* confuse an inexperienced user. I personally found it easier to sit down and read the man page for fetchmail. This is not because I love me a conf file, but becuase I tried fetchmailconf, and was confused by it.
Take a look again and tell me why
#1 There are ok/quit/save buttons at the top and what they apply to,
First, if you have't read the original Macintosh user interface guide, do so. There are some strict rules, which today even Apple forgets, but which all competent programmers must know.
One of the basic rules in that manual is this:
-
You should never have to tell the computer something it already knows.
What this means, in terms a programmer can understand, is this:From a design perspective, it's useful to divide information the system knows into "definitions", "references", and "caches". "This printer is called FOO" is a definition. "BAR normally prints on FOO" is a reference. "FOO is a PostScript printer" on BAR is a cache item. Caches must be regeneratable. References must be checkable. Definitions should be protected against inadvertent change.
One of the big problems of the Windows registry is that it mixes all three types of information. This is also true of the contents of "/etc" in the UNIX world.
Once you start thinking of the problem in these terms, it's much clearer what to do. For the printer case, it's obvious that the system should find the printers in the neighborhood by itself, and should probe them to find out what they are and whether they will let you use them. It's also clear that if something changes (a printer is replaced, for example), the system must notice this and do something reasonable.
Once all the heavy machinery for that is in place, the user interface for "configuring a printer" should go away entirely. The ordinary print dialog can do the work. It might need a "search for more printers" button. But there's no real reason from a user perspective to have to configure printers at all.
We will now hear from the "just edit the /etc/xxx file with 'vi' and send a SIGHUP signal to the daemon" people. You guys are dinosaurs. Give it up.
I hate the CUPS UI also, but the writer lost me here:
If the designers were half-smart about UI issues (like, say, Windows programers) they'd probe the local network neighborhood and omit the impossible entries.
This is exactly what I would expect from Windows, and what I don't want in Linux. Because eventually a) something will be greyed out when I know it shouldn't be, or b) something will be greyed out when I think it shouldn't be, or c) I know something SHOULD be impossible, but I want to select it anyway for troubleshooting or experimentation. Who's to say I don't want to configure my print queue before I go down the elevator to bring the printer host online?
Evil is the money of root.
Okay, so let's play a game. You tell me what you have to do to install a printer on any flavor of Linux you want, and I'll tell you what you need to do to install the same printer on WinXP.
Let's use a HP Photosmartt 7350 (semi-random printer make and model I happen to be familiar with, since I just set one up for my mother. It's also USB, which is getting more and more common nowadays)
I'll go first:
1) Plug in printer power
2) Connect printer to computer
3) Turn printer on
4) Wait about 30 seconds for Windows to detect the printer
5) Click "Okay" a few times (about 4 times I think...)
Sure, you won't have the super-duper software (which you'ld have to install seperately), but you can hit "print" and it'll print. For fairness I'll exclude the software because there's no Linux version anyway.
Okay, your turn!
=Smidge=
The following needs to happen before any Linux distribution can be accepted by the masses.
I can sit down with 3 networked computers with printers attached. Two with windows pre-installed and sharing turned on, and another fresh out of the box. Without having to read through a HOWTO file on the internet, I should be able to:
1. Install Linux on the new machine.
2. Install Linux on one of the old windows machines, while preserving the data on it.
3. Get the network to work and see shared hard drives on any machine from any other machine.
4. Read and Write to shared hard drives, and set up passwords and security if I want to.
5. Be able to print to any printer from any machine.
6. Access the internet though dialup and DSL.
I tried various Linux distributions over the last 5 years, and sadly, none of them come close to meeting all six requirements. These are pretty basic requirements that users will regularly have. If Xandros or Lindows or someone can set up a lab and work on it until their distribuition can handle them, they should dominate the market.
Yes, the fact that the dialogs don't follow an established STANDARD does hurt the usability, but I don't think that they are BAD.
Yes, that is pretty much the definition of a bad GUI program.
I live in a giant bucket.
Eric has some excellent points, but just to muddy the waters a bit, Windows often isn't any better.
For example, I have to set up printing to JetDirect network printers at work under Windows, and it's horribly unintuitive.
1 Run the printer setup wizard
2 Say you're setting up a LOCAL printer, not a network printer
3 Un-click "Detect automatically" and press Next
4 Say you want to create a new port. Selecct TCP/IP port from the dropdown. A new TCP/IP port wizard pops up. Type in the IP address of your printer
5 Select the printer make and model.
It would probably be easier to set up CUPS on a JetDirect printer than Windows, based on the menus Eric cites. Too bad that wasn't what he had.
D
I've been using Linux as my main OS at both work and home for about 7 years.
/etc/X11/Xf86Config. All accompanied by extremely liberal doses of docu searching online, of course.
Here's a list of my recent hardware config experiences on my home machine, which dual-boots Gentoo and Windows XP:
1. Canon Powershot A40 digital camera. WinXP detected and configured it in about 25 seconds. On Linux, it required two kernel recompiles, and searches through several sources of information (gphoto2 manual, message boards, Google) before I finally got the command-line interface to gphoto2 to work. Never got any GUI front-end working.
2. Creative Webcam Pro NX. WinXP detected and configured it in about 25 seconds. Despite hours spent banging my head on the problem, it has yet to function under Linux.
3. Nvidia GeForce4 Ti4200. WinXP detected and configured it in about 25 seconds. Linux: kernel recompile, install additional Xfree86 module, tweak, retweak, and re-retweak
I love Linux like my brother, but seriously, hardware config on it is a huge PITFA, and provides the single largest contrast to the Windows world.
I long for the day when I get a new gizmo, plug it into my box, and it "just works". Man, that would be so cool.
Liberal (adj.): Free from bigotry; open to progress; tolerant of others.
Please just remember that part...
:
:
I happen to have recently installed a Laserjet on my gf computer, and it's Win2000, and the whole process took me 5 minutes (1 config failure, 5 seconds of intensive neuronal action and then the right click on the right button)
I simply used KDE printing tool that came with the nice Knoppix-Cluster cd, and took 5 seconds before hitting buttons.
Also, please remember
COMPUTER WEREN'T MADE FOR PEOPLE !!! Computers were made for experts in companies, the fact that windows is "easy to use" (damn, it hurts !) or even "intuitive" (I actually wrote that ?) has been the main cause of problems, because the configuration was a "One-Size-Fits-All" solution.
=> Most Windows computer are configured almost all the same, default, and so more or less all exposed to the same problems. They work "perfectly" (my hands start shaking) as long as everything is in the "Normal Scope" (everything open and accessible from anywhere, except if you change it, which users don't)
=> Microsoft made 2000 and XP. One is clearly a server Os, where even access to cdwriter for users has to be configured by hand. Many things are accessible, but you have to RTFM a bit and you can get it almost secure (MS notwhistanding)
XP, on the other hand, is a nice "plug-and-play" thingy with lotsa grease and help so that even Aunt Milly can do it herself (or pester her nephew/son/grandson, as in the 99.99% of real life cases)
You want an easy to use OS ? get a playstation.
You want a desktop computer that just works ? get XP.
You want a hard, rugged and stable server ? get linux.
You want a nice Linux desktop easily running in no time ? be ready to lose most of your security, or wait some more time... MS had 20 years to learn how an UI should look, and they do extensive usability tests, have specialists, teams, and so on dedicated to the problem.
It will come in time, but Linux wasn't thought for the desktop, so the transition will take some time. The poor guys making cups did an excellent job as the server works 100% (for me). If you dislike the UI, please follow usual Open source procedure
1 / Email the dev and tell him (gently) what's wrong in your opinion and what should be done. If he has the time, he'll fix it. (99% of real life cases ?)
2 / DO IT YOURSELF AND STOP COMPLAINING FOR CHRIS'SAKE !!! you are a guru Linux wizard, so get emacs runing and do your conf files, or write a better UI.
Ahh ! No point in this post, but I somehow feel better 8)
Linux is about choice and RTFMing : always had, server-side, never will, desktop-side...
If Users knew how to do it, they would be sysadmins...
It takes 40+ muscles to frown, but only four to extend your arm and bitchslap the motherfucker
Why isn't the OSS community looking at those with proven interfaces? Apple, of course comes right to mind, as well as BeOS. The thing is, programmers could have all the graphic designers working on their projects that they needed - IF the graphic designers had a way of creating a GUI without having to learn some new esoteric scripting language!
Do I (as a graphic artist and layout guy) expect a programmer to:
1) Come up with a fantastic, beautiful, informative interface to their software?
2) Spend a year on the GIMP or Photoshop or Illustrator to learn how to make one?
3) Understand that the super-cool lens-flare skull with glowing eyes might be a cool T-shirt for a poor high school metal band, and not for the interface to his software?
No. Just like I'm not going to learn the ins and outs of C, ruby, python, perl, etc. I don't want to. I'm good at what I do. I'm good at what I know. I'm getting better at the things that interest me.
Listen. Make it easy for artists to submit interfaces. A plugin. A skinner. A template. I don't know, IANAProgrammer. I do know that I was able to build an interface in 5 minutes with Apple's tools. Again, I know NOTHING about programming.
The point I'm making is this: You (the programmer) make it possible (read: easy) for me (the artist) to make visual GUI changes, and I'll do it! For nothing! We like to do stuff like this!. Make it possible and together we can get this linux thing on everyone's desktop.
Continue to avoid/ignore/and deny this issue, and it'll be a short time to Longhorn, which from what I've seen, has the worst Winamp skinners already sewn up.
Designing a useable interface is difficult and the skills required for it are dramatically different from those needed to implement the back-end software. The CUPS wizard that ESR described was designed by programmers. Microsoft's equivalent was designed by usability experts.
The thing is, most people think of software development as just writing code. It's not. Writing a useful program requires first understanding the problem and its possible solutions. It requires experts in the problem domain. That's why all of the really successful OSS projects have been things like programming languages, libraries, development tools and operating systems--those are all are things that programmers are already experts in.
It's possible that a naive-user friendly Linux is beyond the abilities of the open-source community. Maybe there are no good usability experts willing to volunteer their time on some of these projects. In that case, somebody is going to have to pay for the work. So far, some of the distributions have already done just that and I keep having less trouble with Mandrake on each new release, so there's hope. Maybe in the future, different Linux distributions will be compatible but completely different in look and feel, each targeted toward a different market segment. That wouldn't be so bad.
However, if the OSS community wants to solve this problem in an open-source way, we need to take it more seriously than just telling the programmers to smarten up. Linux is infrastructure, written by infrastructure experts. The configuration tools need to be designed by usuability experts and implemented separately from the things they are configuring.
We need, in other words, a collection of UI geeks, a group of people who know how to deal with non-technical users and by programmers who will listen to them. This is the group that will write the control panels and configuration wizards and spend their time and energy making them better and more usable.
The CUPS team (to pick one) isn't going to do that and shouldn't have to. Their job is to understand printing. Usability is a different problem entirely.
Some of the most usable UIs don't conform to an established standard. For example, there are shopping cart apps that can be used by people who've never used a computer before, yet they don't get in the way of the expert user much either. Some custom-designed kiosk systems serve their purposes very well without following any standard other than "touch me".
Apple and Microsoft seem to throw out their own guidelines whenever they feel the need to "innovate". There's no hope of improving usability if no one's allowed to experiment.
Check out Alan Cooper's books if you want some solid reasoning behind this (better than I could give you). Edward Tufte is also a classic.
Bzzzzzzt. Wrong. This guy was talking about setting up a network printer. You know, a printer you plug into a router that is *NOT HOOKED UP TO ANY COMPUTER*. He's right, you know. After you click "local printer", it gives you the option of specifying an IP address directly to the printer itself. What the fuck is that doing there? That should be in "Network Printers", except that Microsoft considers a network printer a printer configured locally on another computer accessible via SMB.
So, I guess TCP/IP is not considered a network, according to Microsoft.
Read: Rabbit Rue - Free serial nove
Yes, a self contained kiosk can use whatever UI suits the data. This isn't a self contained kiosk, it's a gui app using standard widgets in a nonstandard and rather confusing way.
When designing a form using standard widgets, use them in the standard way. Think about it this way, would you purchase a car that had a rediciously nonstandard dashboard? I wouldn't.
I live in a giant bucket.
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?
The fact that his made that mistake in the past makes him all the more qualified to critique the subject now.
Your comment about the Mac using CUPS and yet being easy to configure for printer sharing goes right to a point Eric Raymond completely missed. His problem is primarily with the KDEPrint user interface and not with the CUPS print server. The Art of UNIX Programming, written by a very bright guy, does a good job of explaining the desired separation between the UI and the server.
CUPS is an amazing print server full of options that can be configured to suit a particular environment. It is the best print server in the Linux/UNIX world and, I would argue, the best all around print server in existence. (Bonus points because, in the finest Linux tradition, it is an active open source project being led by a uniquely talented individual)
KDEPrint is also a very nice piece of software, but it suffers from a failing common to many Linux/UNIX user interface programs: it presents too many options to the user. Rather than presenting a few simplifying assumptions to the user, these programs try to present the full power of the server. This is great for the advanced user but it floods the general user with too many choices.
The Mac user interface on top of CUPS is a counter example. When the user hits the "Share my printers with other computers" button the cupsd.conf file is altered to broadcast the availability of printers and to accept jobs from machines on the local subnet. The print server is then restarted. This one simple button takes several steps that are very useful for most users; it does not however provide access to many of the more powerful, less common features of CUPS.
And so, at the end of the day, I think Eric Raymond is noting that KDEPrint does not "dumb down" the presentation of CUPS options enough for the typical user.
Every non-technical user I know has similar sounding Windows troubles. And me, who rarely uses Windows, has to figure it out, and let me tell you right now - it isn't intuitive or easy to use in any way for the non-initiatied into "One Microsoft Way". This whole rant could well have been about any number of Windows sub-systems I've had to struggle with over the years.
Honestly, this problem is pretty much endemic in all software. And that's not a good thing - it's a important lesson for *every* software developer to learn.
Absolutely, I can't believe ANYONE was holding them up as a pinnacle of good design. They truly are horrible.
"To accept this choice, click OK. To cancel, click CANCEL".
Well fucking duh. You know what I'm talking about: For an example, enter your computer BIOS (press 'Del' on most PCs during boot), and read the "help" for any of the entries. Do you know what every single setting there means? Quickly, what's Spread Spectrum Modulation? What are its effects and side-effects? What are the potential dangers? When would you want to use it? Can you answer any of these questions by looking at a UI that is packed with acronym laden yes/no choices? Probably not. I doubt most people outside of a motherboard design company could explain in detail what every single option does.
Users aren't all stupid, even the non-computer literate ones. It's the user interface that is at fault, for not providing all of the information required to make a decision. Given sufficient information, most people can make the right decision. Given a yes/no question full of acronyms with no other information, even programmers and computer scientists can be stumped.
A great example of how effective providing information can be, think back to the original Norton Disk Doctor for DOS. The dialog boxes in that program usually had several paragraphs of text, and asked one question. The text usually explained:
Now, I clearly remember relatively computer illiterate people running that program, and making highly technical decisions without even realizing it. My father could easily decide whether he wanted to mark a sector bad, what kind of surface scan he wanted, and how he wanted to treat corrupted files.
While Windows is in general mediocre (not great, just mediocre) in its UI design, at times it has glaring flaws. My favourite examples are applications that ask for a DSN connection string. Do you know how to construct a DSN connection string by hand? I don't, and I've been programming with databases for years. However, the doubly stupid thing is that the ODBC control panel already includes a dialog box that automates the process! So why do some applications, including some written by Microsoft, still ask for a DSN string?
Command-line software (open source, or otherwise) is particularly prone to exhibit this problem, often to the same extent as the BIOS example. When executed with a "-?" option (or whatever), most programs will give a list of options, but rarely tell the user anything other than the existence of the option. This is no better than a dialog box asking a yes/no question with no further explanation.
But of course that doesn't sit well with those who have an agenda to get Linux to fight their crusade. Or even worse to get them to not to have to pay Microsoft anymore.
But it is a sign of the time we life in. Give someone dying of a heart attack in the street CPR and they will sue you if you break a rib. Write an excellent printer sharing protocol and people will only bitch about how they need to read the manual.
Opensource doesn't just work with developers on one side and users on the other. If it is going to work then we need manual writers, forum guru's, gui designers, beta testers, patch submittrs.
Users are like customers. MS loves customers because they pay. Opensource is free. What do we care how many customers we have? 1 * $0 is the same as 1000 * $0 but it costs a hell of a lot more to have 1000 people asking stupid questions.
Rant: Old saying is there are no stupid questions only stupid answers. This was true before the invention of the net. Read any forum and you will see time and time again the same question being asked because the asker can't be bothered to first look. Then they will bitch that noone helps them. Obviously their time is more important then everyone elses. Recently saw the worst of all. 9 pages down a ***** said "I am not going to read all those pages give me the answer". ARGH!
End rant.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
"We blow this stuff off because we want to make it workable for those smart enough to deserve to enjoy it then quickly move on to the Next Great Thing that Needs to be Made Now."
I think you've hit the nail sharply on the head there... the problem with far, far too many nerds is that they are entirely utalitarian... if it works, well, dang it, that's good enough. I've proved I can get that to work, so I'm bored with it now.
There kind of needs to be a whole set of other 'design nerds' who come along after the 'worker nerds' have done their bit, and make it all pretty and sensible to use... these 'design nerds' would have a good understanding of what the 'average Joe' is comfortable with in an interface.
Either you are one of the few technical writers or you never developed a software project.
Writing a good manual is damned hard. In many ways even harder then coding itself. Why?
Compare it with being an expert in your field and being an expert teacher in your field. Wich would you say is harder? The latter really needs to be good at three things. A good coder, a good writer and able to imagine how someone not intimatly familiar with the subject would look at it.
Maybe you are a natural at this but most are not.
For a laugh ask say a doctor to explain a complex medical condition in layman terms or a lawyer to explain SCO vs IBM in english. Now why should coders be any better?
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Fedora, CUPS, whatever...
PC here. Printer there. Make it so.
In clear, precise, EASY directions.
Ok, personal OSS rant.
RMS says that coders should give code away. You work as a waiter, or do something else for a living. I don't want to be a waiter. I want to write code. So, "something else" has become service and support.
Here's the rub -- when you make your pennies on service and support, you have no economic motivation to make it easy and self explanitory! You make MONEY when it's hard to use.
This I think is the downfall of the current OSS business models, and I haven't found a way out of it. OSS projects are destined to remain difficult as long as there is no economic motivation (and we've already established that there's no artistic/ego motivation) to make it beautiful and easy.
I'm not saying that Windows is right or that Mac drool-proof design is right, or that OSS is fundamentally wrong. But I'd like people to understand the motivations that their choices steer them to. I feel bad when I get harangued by OSS types for making non-OSS products. Just understand that not everything is as cut and dried, and that most OSS business models have yet to be proven successful.
Let the GNU/GPL/RMS/OSS/ESR flaming begin. I'm ready for it. I've thought this out for a long time, and I make a living writing software. And no, my software is not a paradigm of simplicity, but I'm not having delusions of taking the desktop away from Bill G by conquest.
-- There is no truth. There is only Perception. To Percieve is to Exist.
here's my experience with setting up a HP Color LaserJet 4600:
win 2k/XP - find way to add printer->select local printer->turn off probe for PnP printers->create new port->select standard tcp/ip port->enter printer ip number->click custom device type and then settings->click raw protocol and enter port 9100->enter printer driver info->click a few more next/finish buttons->print test page
linux (RH9 & FC1) - go to system settings->go to printing->enter root password->click forward->enter desired name and description->select networked jetdirect->type in printer hostname->click on printer manufacturer and then model->click finish and then print test page
OS X - go to the printer configuration utility and find the printer already detected, configured, and set to be the default
sure, the linux config could be worded somewhat more intuitively, but windows is a complete disaster for any non-SMB networked printer. the whole having to select 'local printer' to do it is just hysterical. at least linux refers to it as networked.... my only real niggle so far with the RH/fedora printer config tool is that the sharing properties are hidden under the Actions menu and it doesn't let you configure sharing on a per queue basis.
that all said, the rendezvous support in the HP printer is pretty damn sexy. any mac on the network sees it automatically and understands everything it can do. that's the way it's supposed to be. once i enabled the printer's CUPS support, then the linux boxes were almost there, too. poor windows users still need to go through that long drill, though....
tim
hiding in shadows / i hear you coming closer / you will explode soon -- a quake haiku
I'm busy. I have things to do. I don't have time to fiddle with someone else's idea of cleverness, or a badly designed interface that can't decide on how to assign command key functions consistently, or which lacks any useful help (the CUPS example is just a case in point). Nor am I interested in solving puzzles or pondering the greater mysteries of my Inner Tux. I just want to get the damn thing up and running so I can get on with what I wanted to do in the first place.
Perhaps it's a matter of perspective: If the computer is an end unto itself, then things like usability for a wider audience aren't really relevant. But for a lot of folks, myself included, the computer is nothing more than a tool with which I hope to get some useful work accomplished. I'll use whatever works, even if it is Windows. Occasional crashes and lock-ups aside, Windows does help me get the job done and I don't have to spend half a day reading man pages and badly written "manuals" trying to figure out how to install and configure something, and that's what really counts for me.
The bottom line is that I'll rm -rf a badly written tool's source tree just as fast as I'll pitch a cheap pair of pliers into the trashcan. They're both useless to me if they waste my time and impede my progress.
Eric Raymond sums it up nicely with the statement that "the problem is that these simple things never occurred to developers who bring huge amounts of already-acquired knowledge to bear every time they look at their user interfaces."
So the next time you look down your nose at some poor slob who just can't figure out how to install and configure something that you could do in your sleep, just keep in mind that there's a reason MS still rules the desktop, and it has a lot to do with millions of those poor clueless slobs.
"If they were really smart (like, say, Mac programmers) they'd leave the impossible choices in but gray them out, signifying..."
Greying out menu items is one area open source can actually surpass Mac OSX and Windows. When I try and use a new desktop app I have never used before I am always puzzled why some menu options are greyed out. Everything else I find intuitive. Greyed out items confuse me.
Why is is greyed out? How do I get to it? Why can't I get to it now?
What would be really nifty is some tool-tip text saying something like "This menu item is only available when you are in xyz mode."
Am I the only one who experiences this difficulty?
OSDL is possibly the one organization that could help various projects test their usability. It would be expensive, and we would really need to squeeze large corporations like IBM, Novell/SuSE and Oracle to provide some serious funding. Perhaps the reason they don't is because the developers could still simply ignore suggestions or demands for improvements. Of course, perhaps the major distributions could choose not to include programs that don't meet some minimal level of usability or conform to one of the guidelines listed above. That might provide some incentive.
I'm a grain farmer. I don't know the first thing about programming anything and didn't have a computer until Windows 95. My tractor was built in 1967. I'm not even close to being a techie kind of guy, but I had zero trouble getting CUPS going and I kind of liked the GUI setup tool.
Actually I've never had any trouble getting printing going on linux and I've been using linux since RH 4.2. I never did upgrade from windows95, don't like it. Might boot windows two, three times a year now max.
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
The truth is, that despite the intensity of the point, the point still holds truth. I love linux, I have used it for almost 10 years now, and have done everything from kernel hacking, to my own C programming etc.
However, what began as an enthusiasts project, became an essential part of my work, has now become to some degree tiresome, and laboured. It's simply because binary distribution and configuration designs between OS's varies so much, that it becomes difficult to release software that easily integrates into ANY environment. Permeatations on OS's means many more for the software.
However, it is up to successful programmers to fix this, and trust me, if it can happen, it will happen with linux, and open source, if not demonstrated by the current wave of self booting, nice looking Linux distro's, the installation menu's these days, etc....sure it needs more work, but it will have it shortly.
Just think of the next wave of Linux Distro's in 12 months time, how much easier even still they will be to use, install or download software.
Now imagine 24 months.
Now compare that to Longhorn?
Microsoft knows it's coming....
When you're reading a mailing list and someone emails "how do I do X", the usual response, as ESR has pointed out, is to simply answer them. If the problem comes up a couple of times, perhaps it goes into a FAQ. There is one missing thing, though, that doesn't happen. The author should ask "what could I change in the *software*, not the documentation or FAQ or whatnot, that would keep users from coming to ask me about this again."
May we never see th
But everytime I point out someone's interface flaws, someone in the OSS community screams at me "it's volunteer work" or "program your own version then."
Then I realize I don't want to work with a bunch of anti-social programmers.
I'm a longtime reader of Slashdot, longtime observer of the open-source community, never posted before, hope someone takes my opinion seriously.
I use some open-source applications and have installed Linux a few times. The reason I don't use it now is because of the exact problems ESR mentioned. Obscure problems, poor documentation, and having to wade through a zillion man pages just to get an idea of what the problem is.
Far be it from me to tell any programmer how to do their job, but most of us in the Real World don't have time for this stuff. We just want the bloody thing to work without too much trouble, so we can get on with our jobs and/or lives. Microsoft, for all its many and fundamental shortcomings, understands this. Far too few Linux developers do. Ergo, when an end-user encounters a problem like ESR's and can't muddle his way through it, he's just going to shrug his shoulders and take the path of least resistance, which means Windows.
I hate Microsoft, I hate their shoddy software, I hate their security problems, I hate their handholding, I hate their interfaces. I've been saying for years that if I ever meet Bill Gates, I'm gonna smack him. But I keep using his software, because if nothing else, at least I know it's going to do what I need it to do, dangnabit, and I won't need a computer science degree to make it work.
A similar diatribe to ESR's could be written on trying to burn a backup DVD under RH9. Gave up; I just FTP my backup over to my Lose2003 box, where the driver worky-worky.
No, no! The driver works *perfectly*, it's just that it requires correct entry of hardware parameters in one of the assembly language sources! Yeesh! Don't blame the hard-working open-source developer for your MCSE-like lack of computer knowledge!
Seriously, though, I'm so glad to see ESR ranting about the state of userland GUI stuff. I've been doing it for a while, but it's often dismissed as a FUD campaign by people who don't like what I'm saying.
Fire and Meat. Yummy.
He was obsessed with the Macintosh being a work of art. He was so picky about the look of the damn calculator app, the designer got tired of revising it and made a calculator interface designer for him. The final design Steve made stayed with MacOS up into the 90s. He even had the Mac designers sign their names on the inside of the mold for the casing. That's a mentality I like--the connection between emotion and computing. The creation of a computer that blendds into someone's life as a useful tool and portal to computing.
What happened to that melding of art and computing? OS X still has it, but without support for x86, it's not exploding like it should. That leaves Linux--and Linux is completely missing the ball here because it's been written by developers for developers, and still is. It's massively technical and powerful for dev-heads, but the other front--the one that Windows lacks--is the intuitive, artistic side.
But, I fully expect everyone to stick with crappy XFree86 for another 10 years and espouse how great their poorly designed "KDE" and "GNOME" interfaces are. Five years after Longhorn comes out, KDE will finally get around to attempting hardware acceleration and also speeding up the horribly shit-slow app-loading.
Nobody's artistic about computing anymore, except Apple. We should be too. Obviously, that means rethinking the way people are writing their apps/environments, which ain't gonna happen.
By not writing software for non-technical users the so called 'digital divide' widens so much that we are no longer 'in danger' of creating a digital underclass, but we are guarenteed of creating it. An interface to a piece of software should be elegant, simple and intuitive. If the ATM's we all use had been more complicated than remembering a 4-digit pin and pushing a plastic card into a slot, then the every-day consumer wouldn't use them.
When it comes to documentation and making things more intuitive, you just cant blame the FLOSS developers,
they are developing all that software because of their love for writing software, when that software is in a proper functional state(according to their expectations) they start losing interest in that(and thats natural as their first love is writing software, not documenting it), they just want to handle complex programming problems instead of firing an editor and writing about how the whole thing works.
To them "Documentation" is kind of "shitty" work which no one wants to do, and thats where money comes in picture, in closed source or professional organizations you have to write documentation, you like it or not. and often you have dedicated guys who are responsible for that, also enough thought goes into look and feel of software along with core functionality of software.
I remember reading Linus statement somewhere where he said companies like RedHat did what he never wanted to do like documentation and i think that clearly conveys the point.
Linux: Self-mutilation is a snap.Be a geek!!!
I am SO happy Eric Raymond wrote this... just a few days ago I too was trying to set up my printer via CUPS, and ended up giving up/swearing up a storm. Bitchy comments from some Slashdot readers aside, we ought to listen to this man... Linux's main strength AND disadvantage is that the majority of the code writers/users are (like moi) tech-savvy geeks. But, the UI should not force us to become a full-fledge sysadmin every time we want to install a damn printer (or plugin, or etc...) Believe it or not, even though I am a geek, sometimes I just want to use the printer without giving a rat's ass how it happens as long as it happens. It's one of the few times that I don't hate MicroBarf or (cr)Apple. What many of the open source projects need is to recruit a local WinDoze/Macinosh weenie (their boss for example), and have them run through the projects' UI. If the user finds the UI easy, then great! Otherwise, it should be back to the (G)UI drawing board. Obscurity does not lead to usability, people!
Fine, then don't bitch about "M$" being the dominant monoculture when you're to lazy to bother making your software usable for other people. If you only want to scratch YOUR itch, keep your software on your private network and don't let major distros pick it up. Understood, Mr. I'm-the-poor-unpaid-volunteer-developer?
Guess what? Users don't care either. They'll drop your shit like a bad habit and go back to what works.
I installed a GNOME desktop for my wive. She has never used a computer before and just wants to use EMail and WWW.
The GNOME desktop works perfect for her. There are no obscure things that could mess up the system and she immediately was able to work with the system. I had explain almost nothing to her.
Before I installed GNOME for her, I had a look and KDE and found it terrific - from the UI point of view. Menus loaded with items rarely used, bloated toolbars and the like.
Afterwards I had once installed WINDOWS XP on a square patition to run a specific program which only runs on WINDOWS. She had a look at it and - immediately wanted GNOME back. She could not stand the "Lunar" style of XP and also complained about this tiny task bar at the bottom.
I find that currently there is nothing better than GNOME for people who just want to do some specific tasks with the computer and who do not want to bother with configuration and tweaking.
While his style is, as usual, not quite professional, the points he makes are right on target. Usability is sorely lacking in most Unix/Linux setups.
But instead of pointing to various short user-friendliness rants and mini-howtos, I suggest reading a few books, to see what the current state of the art is.
I suggest the following two, which I am using for my thesis work on this subject as well:
Donald A. Norman: The Design of Everyday Things
This book focuses on everday gadgets and appliances instead of computer interfaces, but the advice Norman gives is perfectly applicable to our field of work. Highly recommended.
Alan Cooper, Robert Reimann: About Face 2.0: The Essentials of Interaction Design
Now this book is pure gold. Excellent advice on user research, goal-oriented design and lots of insight on GUI design as well. Yes, Microsoft gets some praise for parts of their efforts - where they deserve it. They also are criticized properly - just like everybody else - where they failed. If developers would apply at least a little of this stuff, we would have vastly better software.
I agree with ESR's analysis, but not with the conclusion: What he found out was the usability problems in Fedora.
I've set up network printers in SuSE many times for years and it has never been a problem.
But what is a problem is that this mindless bashing discourages any improvement. So SuSE and Mandrake solved the issues. Do they get any kudos from ESR? Nope. To the contrary, they are lumped into the same category and it is claimed that they are as unfit as Fedora for the desktop. So those who have worked those usability problems are punished, too and get bad PR for mistakes they didn't make.
This is really sickening.
Nobody expects ESR to try out every distribution, but he should be honest enough to make conclusions and claims only about Fedora and not "Linux".
Although I happily agree that most OSS leaves lots to be desired in terms of user-friedliness, I don't like ESR's rant much. Here's why:
He criticizes CUPS for having a subobtimal configuration interface. I am impressed that it even has such an interface at all. A friend of mine once said that hackers often stop where the product becomes almost usable. This is very true, and the CUPS developers probably just focus on the implementation, rather than the interface, which, IMO, is the Right Thing to do.
Secondly, what he tried to do should have required no action on his part, as it says in the documentation. It's not CUPS's fault that the Fedora Core team decided to ship their system with the required feature turned off. There are good reasons for turning the feature off, e.g. security considerations: don't run services that are not required, and remote printing certainly isn't required for everyone. Sure, they should have mentioned this and provided instructions for re-enabling it, but remember that all this is under development; there is room for improvement.
Finally, I have to say that I have had both good and bad experiences with CUPS, but finally quit using it because it is much too heavy and complex for my needs. I just want to print, locally, and magicfilter takes care of this just fine.
Please correct me if I got my facts wrong.
The problem with bad GUIs and guides in open source software comes from the fact that creating a good user interface is the most boring and tedious programming task there is. One has to handle all the possible wrong uses (there are about 100 per correct usage) in a way that gives good feedbackt to the user.
Since most people developing software for Linux work for free and out of their own will there usually isn't enough incentive to do the boring stuff. An employee for a software company however could lose his job if he didn't do it.
Open source is the art of letting other people write your bad code.
There was earlier article that compared *nix and Windows programmers...
*nix programmers write programs for other programs to use (hence command line arguements that are easy to parse/create etc). Ie they do the guts first, then bolt on an interface later.
windows programmers write programs for users. ie they write the interface first, then the guts.
Would be interesting to see how the Mac guys concentrate their efforts.
Why doesn't the software help file clearly state that? The insistence that Linux users ferret out these tidbits in order to get something to work is what is making people stay with MSFT. I installed SuSE 8.2 and discovered that it didn't install a functional DVD burner even though it was distributed on DVD... there was vague mention of some things I had to acquire and install and configure if I wanted to use a DVD burner. To hell with that ... Win2000 happened to be available and the DVD burner software that came with the drive works fine wiith it.
Maybe OSS needs a central repository of OSS development "best practice".
A collection of technical howtos (subversion/cvs, patches etc), articles on UI design, documentation writing, managing distributed volunteer teams, handling users. Things like "Dos and Donts", articles from experienced OSS developers and users - maybe a little less inflammatory than ESR's, though. A Wiki maybe?
All this information must be out there, distributed in mailing lists, forums and developers' memories. Surely it would improve OSS quality if new developers sent a few hours reading through that sort of material before starting to contribute.
While I certainly agree with you that following standards may not lead to a good user interface for all applications, I would submit that (at least for end user applications on mainstream PCs) it is usually better than not following the standards, and that most attempts to "innovate" are usability failures. To wit:
This is true. And as a professional developer using Visual Studio .Net, I'd like to thank Microsoft personally for giving us:
and all the other "innovations" that cost me several minutes of my valuable time every day.
To their credit, Microsoft's developers (at least those I've talked to) do seem to have a genuine interest in improving this, and their hearts are in the right place. Some of the nasty context-sensitive stuff can be disabled in the 2003 version, for example. But a lot of these "usability innovations" gain me nothing, while slowing me down and/or wasting valuable screen real estate.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I agree wholeheartedly with the article, and it's not just CUPS. It's pretty much everything open source. Guys like me are very open to pushing open source into the workplace, but until these problems are solved, it will not happen. Period.
An example of a good product made correctly is Mozilla.
Mozilla was easy to roll out, starting with the development teams. I just told them, "run the installer". Then I show them tabbed browsing, javascript debugging and error description, and better W3C support...and BANG...50% of the developers are now using some flavor of Mozilla and/or Firefox.
This is the ONE THING keeping OSS from real influence.
Software designers need to realize that the clueless users aren't the only ones who have trouble with the software; plenty of intelligent programmers and sysadmins are just as screwed when it comes to configuring complicated stuff like printing, sendmail, and Apache. The problem is that there are just too many options. Sure we can read the documentation, when we have the time, but there is rarely time to read the hundreds of pages of documentation that go along with a lot of really complicated software packages. It's not that I don't appreciate the flexibility that all the nifty features provided by large software packages, it's just that I rarely use most of them, and don't have time to sift through the documentation.
If you want to add cool features to the software, go for it. We'll love you for it. But if you want us to actually use the software, stop every time you add a feature, and make sure that you are providing simple, straightforward, easy-to-find documentation, or create a nice GUI. Otherwise I'm left with the options of sifting through my book collection and google results or just using Windows software with a nice automatic setup wizard.
If we get some top-grade developers motivated to work in this area, it will all get fixed. I actually think that it will happen quite soon. XFree86 configuration is another place that comes to mind, just try even an advanced distro like SuSE, with a popular Nvidia card, and a 1600*1200 monitor, and you will see what I mean! it ends up in a black screen of death every time, because the stupid configuration program runs in X, misconfigures to the point that the monitor gives up (or goes bang?), and dies. The bit which is without excuse is that if you get it working with a manual edit of the config file, and later run Sax, it blows away all your hard work.
SuSE is no worse than the others, in fact it is better than most, but like a lot of excrement found in the Redmond sewage system, it tries to be too clever without knowing all the facts.
Samba is another thing that needs attention, same sort of reason. I have full sympathy with the Samba developers, there are only so many hours in a day, and they have to interwork with bug-infested, undocumented protocols that change as often as Sir Bill changes his underwear. So, it needs more people, working on the user and administrator interface. It does not help that every distro does its own thing, needlessly duplicating effort. In the case of Samba, almost all of the work could be common across all Linux distros, BSD, BeOS, Solaris, even the hated SCO.
I hope these issues get serious action soon, it will enormously help in the process of getting OSS established on the desktop. It is even far more important than developing the next version of the kernel, after all we have reliable kernels now, thanks to the hard work of Linus and many others.
Although he might be right about OSS having poor UIs, it's really getting to the stage where there are so many things in general UI design that are broken that it's becoming ridiculous. Let's see:
.INF file to add the connection name. Ok, UI folks, another principle to bear in mind: anything the computer knows may be wrong.
[i]Trying to be clever and failing[/i]. The author wanted server autoprobe. Funny, that, it wouldn't be the first time when I've wanted to tear a configuration system to bits because it insisted on using an autoprobe and offering a selection box, when I [i]knew[/i] where the appropriate server/connection was but couldn't select it because the autoprobe wasn't finding it and there was no free entry box. This even got to one stage where I had to manually edit an
[i]Using the passive voice[/i]. As in "the system is waiting for the Close Programs dialog box to be displayed". Um, excuse me? That's like me sitting in my office saying "I'm waiting for my work to be done". Just as it's my job to do my work, it's "the system"'s job to display the Close Programs dialog box, and it isn't doing it.
[i]Abuse of OK and Cancel[/i]. I should not have to say that an error message is "OK". Unix had this alright with "Dismiss".
[i]Nested OK and Cancel[/i]. Got IE? Tools, Internet Options, Delete Files. Are you sure you want to delete files? OK. Now you're back at the Internet Options screen, but there's still an OK and Cancel button showing. Does clicking Cancel cancel the deletion? Nope. So why is it there? Again, "Apply" and "Dismiss" avoid all of these.
[i]Not saying why things are the case[/i]. Tell me why options are ghosted, tell me why errors occured. I know [i]you[/i] know why, because you just came off the if statement that checked the condition in question.
[i]Confusing information with help[/i]. Information is possibly unrelated facts. Help is directed at progressing the task the user is doing. If you aren't smart enough to figure out how to do that, you can't offer "help", no matter what you name the button.
[i]Non-temporal progress bars[/i]. The progress bar should show the % of time left, out of the total time the process will take. I don't care about the arbitary tasks your program breaks the function down into, I just want to know how long I have to wait. Oh, and a 100% progress bar should never appear. At 100% progress the task is done and the progress bar disappears. If you have other things to do with the results of the task, then from my POV as a user, that's all part of my wait so should be part of the task the progress bar allows for. Setting a progress bar to 100% should be an assertion failure.
There are many universities that have technical writing programs. If you asked their professors to assign or accept documentation for OSS as course work, you could probably find plenty of fledgeling tech writers who could join the project and clean up the writing and the GUI.
Dude, I'm sorry but I have to reply...
.01 seconds - BUT WHAT THE HELL GOOD WOULD IT DO ME.
About your "4 seconds to load home" thing. The problem is you aren't seeing the fact that Konquerer is ATLEAST 400% better than windows explorer.
You can't do ANYTHING with windows explorer - you have to load up a hundred different programs to get the same functionality. With konquerer you can quickly preview just about ANY file format. You can open most formats directly in the window. You have tabbed browsing, in your file manager! (which internet explorer doesn't even have).
You can connect to many different protocols (such as: smb://, http://, ftp://, nfs://, imap://, fish:// and a whole bunch more) and manipulate the files just as if they are on your local machine.
And a WHOLE BUNCH MORE!
Everyone keeps yelling at the KDE people because of startup times for opening the home folder. They keep comparing that time to opening My Computer. The problem is - that's like comparing the startup time between Windows 3.1 and Windows XP. Sure I could start 3.1 in
Quit ranting about shit you don't stop to think about first.
Derek
Note: I'm not trying to flame!
There's a great difference between advocating something--Linux, in this case--and really opening your eyes, seeing both the good points and the warts. Far, far too much Linux advocacy has been of the blind variety. People who use Linux for a handful of geeky uses rant and rave about how its superior and how everyone should use it. When someone asks "But is there a program as good as Blah that runs under Linux?" The response is almost always an enthusiastic "Yes! There are dozens! And they're open source! The best one is XYZ." Then in reality the dozens turn out to be half-baked personal projects unsuitable for general use, and XYZ tends to be better, but nowhere near what the person is wanting in terms of polish and quality. Those endearing advocates who insist that The GIMP is on par with Photoshop come to mind.
The next level of advocacy is realizing that this is true. JWZ, and now ESR, have followed this path, and many, many others who are not so egotistical.
Some projects still do not get it. There is an unconscious assumption that merely wrapping commands in a menu/GUI is making an app user friendly.
The biggest culprits seem to be projects that port command line tools to a GUI like emacs, x-cdburn, and oracle's sql interface ( not oss ).
One of the ways a GUI makes an app user friendly is if the GUI takes away some of the need for knowing how to do something in the app.
X-CDBURN ( name? ) is a good example of this. It is GUI, but the user still needs to know how to use the command line tool commands in order to burn a CD.
What is the point in wrapping the command-line tools in a GUI then? Those sequence of commands could just as easily be typed into a shell without the overhead of the GUI.
In contrast there is K3b where a user can burn a CD without having to read a HowTo to learn the theory/practice of making CDs.
Not to pick on X-CDROAST, other apps do this as well.
If you are not going to design a GUI that eliminates some of needing to know how to do a task it is not worth porting an app to a GUI.
If I have to know a string of commands and how to use them Xterm tastes great and is less filling.
Steve
Yes, you TOTALLY missed the point, which was that SuSE distributed a version on DVD, and despite knowing that the users were going to have a DVD player and maybe even a burner, didn't bother to make sure that burner and player software were installed and configured. They took the easy way out and expected EVERY user to track down the necessary information and download other files to install and configure the DVD burner/player.
Implying that I am a software pirate helps Linux improve? How? I have a LEGAL copy of Win2000 and the DVD software that came with the burner is also legal. Looking at the Program files, everything I have on my system is legal: either FOSS or purchased.
What WAS your point, anyway?
Apple and Microsoft have large UA (User Assurance) departments that they can show existing and new UI designs to, and get feedback. This step is expensive, and as it involves non-geeks, is not done often in the FOS world. To make an interface user friendly, you need feedback from people who are not familiar with the system. People who are familiar with the system will say things like "Why would users do something like that", "Oh, to do that it would be easier to use the command line," or "RTFM." Whereas user who are not familiar with the system will have much different expectations, like being able to do what they want from the GUI, and not having to jump through a large number of hoops. Btw, this problem is not limited to FOS projects, but to all development that does not go through rigors UA step. In the book Insanely Great, Steven Levy gives a few anecdotes about how Apple got its first UI right. It involved bringing in computer illiterate people on a regular basis to try out the system while it was still in development. Feedback was given to the designers and programmer immediately about what had to be changed or polished up.
Too many FOS projects just try to make the UI "the same as" Apples or MS's interface. This works if the project does the same thing as what is being copied (plus users can move over to the FOS product without much addition training), but breaks down if there are too many differences. This is what has happened here. I don't know if the CUPS team even designed the GUI or not, however it appears the GUI was not well thought out ER is ranting about.
There is an additional problem here in that rigors UA does not currently fit very well into the FOS development model, and until we figure out a way to include it, then FOS projects will suffer from the "its too hard to use" syndrome. As I mentioned before, proper UA is expensive, and I fear that it will be done only for large and well funded projects. Some designers have a good intuition about what works and doesn't, and a crude form of UA could be done by showing the design to family and friends, but this has its own set of problems (but its still better then none at all)
> The trick to getting dvdrecord to work is to know that it only supports "-dao" on most drives."
Why doesn't the software help file clearly state that?
I so agree with you, but I'd go even further: Why does the software not set this flag automatically if it's the only one that works?
The luxury of ignorance. If only one flag works, and/or is required for correct operation, then I should not need to know about it at all.
Unfortunately, writing such software is difficult and, most importantly, boring. It's not C00L to have written software which is trivial to use, and the FLOSS community is unfortunately still driven by the wish to become famous for having written something C00L.
So what we should ask ourselves is: how do we make it 1337 to write software that grandma could use?
The second the Free Software community started trying to push their stuff on schools, governments, and corporations, every Free Software developer earned a moral obligation to improve the usability of their stuff and they lost the right to say "Quit whining about what you're getting for free". The instant you put your software in areas where people don't have a choice in the software they use, you are no longer "just a volunteer".
Free Software Developers either need to make their usable or they need to stop their lobbying and go back to the server closet they came from.
We talk about world domination, but we'll neither have it nor deserve it until we learn to do better than this. A lot better.--ESR
Ergonomica Auctorita Illico!
What if there was a project whose sole job is to look for this kind of problems. There are projects for documention , drivers, devices, hardware for linux.
Why __not__ for this. This would requred mostly non-technical people and an efficient feedback system to the project maintainers. And the Linus's "enough eyeball's" Law which applies to the Software bugs would work extremly well in this case, since the core project developers can't do this alone. And at the same token, depending on non-technical end-users to look for these & report would be a wait for ever.
My two cents.
The problem with having the "worker nerds" do their thing first is that the very architecture of their system may preclude (or make difficult) some necessary newbie functionality. To paraphrase Alan Cooper, code is to design like concrete is to architecture: once the concrete is poured, it's REALLY hard to change it, no matter what changes you make on the pretty blue paper.
Ideally, you let the design nerds do some user research before you start coding at all. Who is the target audience? What design metaphors are the already used to using? How much (usually, how little) experience can we assume?
Then you prototype. Prototyping isn't much different from coding: prototype your designs (on paper for starters), find out where they crash (i.e. where people get "hung"), debug, rinse, repeat. You won't work all the bugs out with a paper prototype, but you can nail an awful lot of them.
THEN you start coding. And you test and refine as you go, since some things (scrolling, for example) can be hard to simulate with paper. But you can get so much information if you just take a couple of weeks at the beginning and put some thought into your design, and then find some people who are representative of your target audience, and say "You have a printer attached to a different computer on your home network. You want to be able to print from this computer to the printer on the other machine. Here is the first screen..."
(Spoken, by the way, as someone with a foot in both worlds -- a design nerd who has also co-written a C compiler).
I am impressed it only took him one night. I lost three days trying to get cups to work. I now have my own vodoo ritual for getting a printer on another machine to print. I sort of understand his complaint but, If you want something clean, packaged, and perfect buy a completly integrated network and peripherals from someone like IBM. I still do not understand why any individual feels like this stuff has to conform to their standards. It is what it is, no more...no less. I get frustrated daily, I am constantly hosing boxes sometimes I can recover sometimes I can't. So what do I do? I reinstall a lot. If you don't like it abandon it. Life is too short. I for one am grateful that all of this capability with it guts hanging out is available. To me this is an adventure not a task. If you demand professional go and pay for it, don't scream and holler at those who were brave enough to stick their work out there for all to see. If you can't afford it then shut up and take what you can get.My first computer had one floppy disk and 64 kilobytes of memory and displayed 32x16 graphics on a green television screen. It costed thousands and was useless. I'd say the present state of affairs is pretty good. If you want to be critical and demanding then open your wallet not your mouth.For the record I don't care who uses it, I only care that I do.
One of the (many) reasons that the various *ix's are better than the Massive Microsoft Monolith is that most programs are designed to do one thing (and only one thing). That means that most *ix programs come with a simple (read: stupid) user interface, usually from the command line or from STDIN/STDOUT. (Frequently, they have both.) Therefore, some digigeek can write the program that does the bit manipulation and only speaks geekish, but someone interested in User Interfaces can write an application that provides a clear and functional interface. The connection between the two may be a System call or a Pipe. What a simple and powerful idea: the developers that understand bits and hardware write the part that interests them and those that understand users can write the parts that interest them! The connection between the two is a standard interface. In Gates' world, everything is part of a single entity - Microsoft. If someone wants to add a new feature or improve an interface, that person must understand the entire monolith. User interfaces are completely controlled by M$. Although this guarantees a minimum acceptable interface, it leaves no room for growth. I have always thought the simple interface idea was one of the most powerful features of *ix. This is the reason there are multiple shells in *ix. It allows the possibility that programs with poor user interfaces can be easily improved, with encapsulation (wow, just like OOA/D).