Slashdot Mirror


Open Source for Dummies?

GNUpowerSoul asks: "I have been working for several years on a large open source library. Ever since we made our first public release three years ago, we have found that the majority of our users seem to have no experience whatsoever with open source ideas and conventions. We have had to dumb down our documentation considerably (to the point where we have multiple pages to describe in excruciating detail the usual 'configure; make; make install' step). Has anyone else had experience in how to deal with a user community who doesn't understand the 'normal' practices for open source projects?"

46 comments

  1. One good example... by kawika · · Score: 3, Funny
    Has anyone else had experience in how to deal with a user community who doesn't understand the 'normal' practices for open source projects?"
    These guys have had a lot of experience. Notice how much work they put into documenting even the bugs.
  2. Unix by Hard_Code · · Score: 3, Informative

    Sounds like your users have problems with Unix, not "open source" per se. I'm not sure how to familiarize people with Unixisms. There was no manual that said "here is how to compile and install stuff" (well, besides the INSTALL file!!). I learned by doing.

    --

    It's 10 PM. Do you know if you're un-American?
  3. i got a better idea... by Anonymous Coward · · Score: 4, Insightful

    get rid of the ./configure, make, make install, and change it to a simple "install" script that handles all those tasks automagically.

    1. Re:i got a better idea... by renehollan · · Score: 5, Insightful
      We have had to dumb down our documentation considerably (to the point where we have multiple pages to describe in excruciating detail the usual 'configure; make; make install' step). Has anyone else had experience in how to deal with a user community who doesn't understand the 'normal' practices for open source projects?"

      WHOA!

      Users and 'configure; make; make install' do not go together. Unless, of course, by "user", you mean a developer foriegn to open source conventions. This would most likely include non-Unix developers.

      While it is appropriate for users to compile and install their own open source software, like the parent points out, this should happen automagically for them: insert CDROM, click "OK", watch it compile and install (or not and offer to email the build log to the development team).

      If your audience are developers not familliar with open source conventions (and, by extention important licenses like the GPL), then, yes, technical things like "here's the standard way to build" a package should not faze them (unless, perhaps their microSofties that have never seen the outside of Developer Studio.

      --
      You could've hired me.
    2. Re:i got a better idea... by Rysc · · Score: 2, Funny

      Why? What's so hard about typing three commands that are always the same, or close to the same? ...

      Whoa. Clock me! Nine months using Linux exclusively and I have become an elitist!

      Set your stop watches for "hacker" and watch me go again.

      --
      I want my Cowboyneal
    3. Re:i got a better idea... by mivok · · Score: 2, Insightful

      Isnt that what package managers are for? Have a developer do the 'hard' work of compiling the program and resolving dependencies, shipping it out as a binary package, and letthing the user simply type apt-get install package (granted with rpm systems the user still has to resolve dependencies manually, but most of the ease is there).
      Of course, typing any commands in isnt always the most end-user friendly way of doing things.. which explains the existence of the myriad of GUI package management tools.

      Personally I like the ports idea of *bsd, donwload a single tar.gz (or use cvs, but we're talking ease of use here), untar it, cd to the correct directory for the package you want to install.. (hmm.. I'm looking to install a networking program, so maybe I should trythe 'net' directory), and just type make install - resolves dependencies, downloads the package, downloads any patches and patches the software for you, configures, compiles, and installs. Presumably gentoo's emerge command works similarly (I havent tried gentoo myself, but anyway).

      An user who is just interested in getting the software working and isnt bothered about patching, or having the fastest build for their processor will be perfectly happy with binaries, and if package management tools are still considered too hard, make an installshield style program that leaves one file for the user to run (most linux games I've seen)

    4. Re:i got a better idea... by renehollan · · Score: 1
      You raise several worthwhile points:

      1. Package managers. Yes, package managers are supposed to help deal with these kinds of issues. So, why not start with the .configure; make; make install description and then go on to discuss the various efforts to simplify this, letting the user know, at least a bit, of what goes on under the hood, when dealing with source packages.

      2. BSD ports. Oh yes, great idea. Trouble is, that it is developer-centric: the front end is "make": which not only builds and installs the package, it goes and gets it to, boldly networking where no build script has networked before. Again, this is developer-centric.

      3. Binary vs. source packaging. Yes, binary packages are convenient. But you know, it might just be easier to .configure and compile for your platform, letting the build process figure out where things are, and designing binaries to do this at installation or run time. Also open source should, to some degree, be about encouraging source distribution. Pre-build binaries have their place, but really should be considered trusted (signed?) caches of what your build process does.

      --
      You could've hired me.
    5. Re:i got a better idea... by __past__ · · Score: 1
      ad 1: Don't. First explain the easy way, then explain what goes on under the hood. Users don't read READMEs anyway, so if you are lucky and have one that does, at least don't assume that he will read all of it.

      ad 2: The primary font end for the ports collection on FreeBSD is "portinstall", which is hardly any harder to grasp than rpm or apt. Of course, if you use another BSD or don't want to wait for your software compiling, there's always pkg_add, which will be happy to download the package from a well-known FTP server, including dependencies.

      ad 3: I completly agree.

    6. Re:i got a better idea... by Anonymous Coward · · Score: 0

      Amen! There is no reason to make installs so complex. There should be one SIMPLE install script!

  4. OK, here is my problem by override11 · · Score: 4, Interesting

    I am an experienced PC user (from 95% windows / dos background), and a sysadmin if a fairly large company. I am mostly self-learned, and the main difficulty I have with open source - linux is that most instructions assume a level of knowledge that I dont have, so I end up getting frusterated and dropping the project. Like, I am trying to get sendmail configured to act as an intermediary between our exchange server and the web, and filter out content. Well I have found some helpful guides, they all say something like 'compile sendmail' and I'm stuck not knowing HOW! I do phone support, and 90 percent of the time I just rattle off..

    'click start' then click settings' and click on the control panel... well, start is the button in the lower left that says 'start'... no, its not a button on your PC, its on the screen... yes, I am sure its not a button on the front of your computer...

    Anyways, you get the idea. Make it simple, or at least someone out there make a basic guide on things that most instructions take for granted! :)

    --
    No I didnt spell check this post...
    1. Re:OK, here is my problem by SLot · · Score: 2, Interesting

      I am an experienced PC user (from 95% windows / dos background), and a sysadmin if a fairly large company. I am mostly self-learned, and the main difficulty I have with open source - linux is that most instructions assume a level of knowledge that I dont have, so I end up getting frusterated and dropping the project.

      I don't mean this in a bad way really, but you are the person that's touted by microsoft as always being cheaper to hire in those TCO studies we are innundated with. Rather than someone with a firm grasp of *computer* fundamentals, you are the guy that has an MCSE with little practical experience outside of a gui environment. I'd highly advise you to run to your bookstore, pick up a Linux administration book, and throw the cd that usually comes with into a spare box and *test* as you *read*. Plenty of newsgroups exist. I too, am mostly self-learned, but I'm not above asking questions, nor am I convinced that OSS is the end-all, be-all.

      Like, I am trying to get sendmail configured to act as an intermediary between our exchange server and the web, and filter out content. Well I have found some helpful guides, they all say something like 'compile sendmail' and I'm stuck not knowing HOW! I do phone support, and 90 percent of the time I just rattle off.. 'click start' then click settings' and click on the control panel... well, start is the button in the lower left that says 'start'... no, its not a button on your PC, its on the screen... yes, I am sure its not a button on the front of your computer...

      I'm not sure if you are trolling or not here, but when a 500+ page book is available on a subject like sendmail, your 'click here' examples show that unless you get into management fast, you might be screwed this time around the karma wheel.

      Anyways, you get the idea. Make it simple, or at least someone out there make a basic guide on things that most instructions take for granted! :)

      No, try this for an idea: Complex software *has* basic guides that come with installation and pretty explicit instructions. Any problems after you install without referring to the stuff that comes with says one of two things:
      1)You'd prefer to wait on a solution to your problem without paying for it.
      2)You have no idea what you are doing, and can't describe the problem you are having.

      Either is not out of the realm of impossiblity, both are likely, IME.

      I do wish you luck.

    2. Re:OK, here is my problem by override11 · · Score: 1

      Well, that will teach me to say what I feel like on slashdot! :P

      Lesson learned..

      --
      No I didnt spell check this post...
    3. Re:OK, here is my problem by __past__ · · Score: 4, Funny
      I am trying to get sendmail configured
      Here is your fundamental mistake: Sendmail is not indented to be configured by humans. The format of sendmail.cf is optimized for bored ancient nordic gods that love puzzles, not for people trying to get a job done.
    4. Re:OK, here is my problem by Anonymous Coward · · Score: 0
      You are an elitist a**hole or a pretender planted on Slashdot by Microsoft to piss off Free software fence-sitters.

      Assuming for a moment that you are just a plain old a**hole, I'd just like to thank you on behalf of all Open Source coders for insulting a potential user who will now probably view Open Source as too overwhelming and bad mouth it to everyone he talks to. He will probably tell the story of the "typical" Open Source, Slashdot guy who was a complete jack a** to him. So lug your fat, stinking, antisocial, never-made-mgmt a** back to your smelly cluttered cubicle and be proud of what an idiot you were today.

      And if you do work for Billyboy, you should ask for a raise cause you are pretty fu*king good at keeping the sheep from straying. I guess I can respect your efficiecy if not your character.

    5. Re:OK, here is my problem by GuyWithLag · · Score: 1

      If you simply want to filter messages, sendmail is the neutron bomb you took with you for the streetfight.

    6. Re:OK, here is my problem by Anonymous Coward · · Score: 0


      I don't mean this in a bad way really, but you are the person that's touted by microsoft as always being cheaper to hire in those TCO studies we are innundated with. Rather than someone with a firm grasp of *computer* fundamentals, you are the guy that has an MCSE with little practical experience outside of a gui environment

      Wow! You are like the prototypical opensource zealot asshole suffering from a case of arrested development, elitism, and virginity at age 39. You are the kind of stupid comic store guy idiot who gives OSS a bad name and I think that it says a lot about slashdot that rather than getting modded down as flamebait/troll you actually got modded up!

    7. Re:OK, here is my problem by Anonymous Coward · · Score: 0

      You are an elitist a**hole or a pretender planted on Slashdot by Microsoft to piss off Free software fence-sitters.

      I disagree.

      The original poster said that he's a sysadmin. This means that he should have some knowledge of what he's doing. If he doesn't, and he doesn't want to learn, then he's in the wrong line of work.

      I'd just like to thank you on behalf of all Open Source coders for insulting a potential user who will now probably view Open Source as too overwhelming

      Again, your mistake is that you're assuming he's a user, when instead he's (claiming to be) a sysadmin.

      If he lacks the skill set to perform his job, he should go out and get some training.

    8. Re:OK, here is my problem by Anonymous Coward · · Score: 0

      I had the same problem once, i could not understand how to configure and compile Linux programs, and even how to use them if i could.

      Then i began to learn how to program in C++, Perl and Java, and after a while those Linux things seemed to get kinda simple.. or atleast logical :)

      I think the problem isn't that it is to hard to do those thing, i think most people don't really know what they are trying to do, and what they would do with it if they could.

  5. Open Source-ism? by Violet+Null · · Score: 2, Informative

    'configure; make; make install' isn't unique to open source, it's unique to *nixes. Ye olde open source Windows program doesn't take it, for example.

    So if your problem is really 'How do I teach newbies to compile on a *nix platform?', then I would recommend, say, Building and Installing Software Packages for Linux.

    On the other hand, there's the ever-so-popular 'RTFM', or the only slightly less popular 'no response', both of which have a long history in open source.

  6. re: Open Source for Dummies? by weicco · · Score: 1, Funny

    Well, I've been doing libraries for Windows which users can use when they want to install network drivers and stuff like that. It basically does all the configuration there is to do. Documenting library API felt really stupid. Function names was so self-explanatory (config_ip_setting, bind_interface_to, and so on...). Even the guys who used that library was very skilled programmers but for some curious reason I had to document stuff like "Function: config_ip_settings Descript: Makes IP setting configuration." Oh well...

    --
    You don't know what you don't know.
  7. Provide binary packages by Otter · · Score: 1

    Get volunteers to make packages for at least recent Red Hat, Mandrake and Suse. A lot of newbie installs won't have the development tools installed, which is sure to confuse them when they're trying to follow your instructions for compiling.

  8. NEWSFLASH! by mildness · · Score: 5, Insightful
    It's not the users that are clueless it's the architecture.

    The usual 'configure; make; make install' step should not exist! This is the single most awful thing about Linux. God help the user that has a dependency problem.

    Binaries should just slide on in. At worst your install program should do any voodoo required.

    Ready to be modded into oblivian now,

    Bill (who started on V7 Unix thank you very much)

    --
    bamph
    1. Re:NEWSFLASH! by aridhol · · Score: 1
      Many people equate configure;make;make install with Linux. However, this is not true.

      The purpose behind these steps is to allow portability among Unix platforms. The configure step does a number of things, including determining what OS you are using.

      However, I think there is a place for a standard install tool. Perhaps one that can understand enough Autoconf to give the user a selection of options, then do configure;make;make install. Then the user can use any autoconfiscated software, and have a nice graphical interface.

      --
      I can't say that I don't give a fuck. I've just run out of fuck to give.
    2. Re:NEWSFLASH! by Anonymous Coward · · Score: 0

      The usual 'configure; make; make install' step should not exist! This is the single most awful thing about Linux.

      What? Virtually every linux distribution has package management as a component. If you want to criticise that then go ahead, but ./configure et al are not aimed at end-users.

  9. look at red hat or lindows by Anonymous Coward · · Score: 0

    If you're users are that stupid/unnerds, maybe you should be dealing with binaries, and leave the source code for people that care about it.

  10. Apple users meet Unix... by Johnny+Mnemonic · · Score: 2, Informative


    ...and the result is fink.

    Really, the situation you describe is very similar to what the oldtime Mac-heads who like OS X are going through. For many examples of how to boil down these kinds of instructions, see Mac OS X hints.
    Basically: KISS. Like, three commands for one concept? How would you like to open an application by clicking it, dragging it to another location, and then clicking it again?

    --

    --
    $tar -xvf .sig.tar
  11. Yup, it's a GNUish Unixism.... by Ashurbanipal · · Score: 4, Insightful

    GNU software installation procedures are the least user-friendly of all those I've used. They generally go like this:

    Download software.
    Search for documentation - find incomplete and poorly written docs that assume too much.
    ./configure
    research and correct 15 badly documented error conditions.
    ./configure
    identify 3 totally undocumented errors.
    join project mailing list and post question.
    be roundly flamed and referred to FAQ
    post references showing errors are not documented in FAQ
    be roundly flamed and referred to list archives
    search list archives for several days
    post again asking for specific references to archives
    Acerbic but kindly guru finds comment written in swahili that is only in the CVS version you can't access, and translates it for you in a private Email.
    remove a single character from the configure script
    ./configure
    edit the makefile to correct unwarranted assumptions about file locations, system capabilities, network architecture, etc.
    make
    correct typos introduced by prior editing (D'OH!)
    make
    research and correct 7 errors caused by missing libaries (these libraries are normally required only by Welsh Morris dancers, but for some reason your GNU software won't compile without them).
    make
    research and attempt to correct 3 errors caused by having a different version of gcc than the software authors.

    make
    give up on correcting the errors and go download the precise version of gcc used by the developers.
    make
    cheer like nobody's watching, which they aren't because it is five O'clock in the morning.
    make install

    Congratulations! You have sucessfully built your GNU software. This amazingly powerful software will now run incredibly smoothly and accurately for unbelievable lengths of time. (Unless it's a 2.4 linux kernel, in which case it'll be obsolete by Monday when the latest remote root exploit comes out, or whenever Linus decides to replace a major subsystem wholesale in the middle of a "stable" kernel series.)

    After a few years of living comfortably with your smoothly running, reliable, low maintenance GNU software, you'll break even on the pain and suffering quotient.

    I recently configured heartbeat and I've done most of the uber-GNU utilities that don't deign to have man pages (info is so much better, the only way it could be more user friendly is if it required all input in Common Lisp) so it's just barely possible I might have some idea what I'm talking about. On the other claw, I may be stark raving bonkers from too many ./configure;make;make install recursions.

  12. Helpful? by Captain+Large+Face · · Score: 1

    I recommend giving each user a report 60 pages in length, and on pages 28, 29, 30 and 31 print in enormous letters:

    R T F M

    Then after they have digested this report, introduce them to the delights of man. :)

    1. Re:Helpful? by Anonymous Coward · · Score: 0

      Then why don't you write T F M so that people who have pointed-and-clicked their whole computing lives can understand it!

    2. Re:Helpful? by Captain+Large+Face · · Score: 1

      Well, T F M or rather, Ms, already exist, so perhaps it might be an idea to W T F M on how to R T F Ms? That way, there would be no problem asking people to R T F M because there wouldn't be a lack of understanding on how to do it in the first place.

      That said, said people would have to R T F M on the topic of how to R T F M as to understand how they could R T F M in the first place. Doing that, IMHO, is the hard part.

  13. Nope, It's the Users... by benjamindees · · Score: 3, Interesting
    And I know, because I was one at one time.

    The single most important concept in Unix is that there is ONE TOOL for every TASK. The "users" you refer to (hopefully we're talking about administrators) think that "compile and install program" is one task.

    For Open Source programs that one has to compile, there are actually three tasks: configure, build, and install. For closed-source software, you have already paid someone else to perform the first two tasks for you, and lost quite a bit in terms of configurability in the process.

    With Open Source, you get to control everything from configuration to compilation to installation. The downside to this flexibility is that for poorly-maintained projects, it doesn't always work. Separating the process into three distinct steps can also help the administrator to diagnose problems with the install.

    --
    "I assumed blithely that there were no elves out there in the darkness"
    1. Re:Nope, It's the Users... by Anonymous Coward · · Score: 0

      "The single most important concept in Unix is that there is ONE TOOL for every TASK."

      That's why everyone uses the same shell, right?

    2. Re:Nope, It's the Users... by Radical+Rad · · Score: 1
      For Open Source programs that one has to compile, there are actually three tasks: configure, build, and install.

      It always seems more like 18 tasks because there are always at least 5 specific versions of libraries or libraries you don't have installed that must be configured, built, and installed before the program you want to compile can be.

  14. +1 funny; +1 accurate description [no text below] by eugene+ts+wong · · Score: 2

    b

  15. Binaries... by spliff37 · · Score: 0

    Provide binaries for major platforms, and all compilation issues will vanish.

    If this is not an option, and the install process is really that complex, and your users are really that dumb, and are unwilling to RATFM (All Those Manuals) -- why don't you provide some hand-holding services and have them pay for it?

  16. Strike that, reverse it. by benjamindees · · Score: 1

    I meant to say that every TOOL performs only ONE TASK. It really should be repeated around here more often, because I still (obviously) haven't heard it enough :)

    --
    "I assumed blithely that there were no elves out there in the darkness"
  17. Please, he was being nice to you... by Anonymous Coward · · Score: 0
    Now if I cared to, I would have gone off ;)



    He made some excellent points, primarily knowing
    how to use an OS is not the same as using a computer
    and sendmail is not designed for point, click, install, running.
    It is a mess and tough to do (even after I've read the book).

  18. Who are you writing your software for? by ctr2sprt · · Score: 2, Insightful
    If most of your users are having trouble with your current methods, then you need to look at your current methods. Supply binary packages via whatever means necessary. By all means, make the source available too, but understand that 90% of even power users never need or want to see the source for a particular package.

    This is a bit of a problem for open source, because most open source developers don't really think about end users (and if they do, think about them as "lusers"). And if they do, they tend to think the end users are as smart and experienced as they are, which is seldom true. So open source programs tend to get written for, well, programmers. If they work for other people too, that's viewed more as an added bonus that a requirement. I'm not mentioning this simply as a rant, but because you may be suffering from this yourself. And, more constructively, thinking about your program as a whole in this way may help you to improve it even more by making it useful to an even wider array of people.

  19. My lecture by epsalon · · Score: 1

    My lecture from the Haifa GNU/Linux Club talks about basic administration of GNU/Linux boxes. Check out the entire "Welcome to Linux" series, which includes several other lectures.

    In addition to that, the Haifa GNU/Linux club has made many lectures about various subjects, all available online.

  20. Dumbing down documentation? by More+Karma+Than+God · · Score: 2, Insightful

    You've just discovered that the people wanting to use your resource arn't the same people you expected to want to use your resource.

    Creating documentation to meet the needs of your users is educating your users, it isn't dumbing anything down.

    --
    Go here to create your own Slashdot dis
  21. Binaries take server space by yerricde · · Score: 1

    Have a developer do the 'hard' work of compiling the program and resolving dependencies, shipping it out as a binary package

    For a small operation, renting HTTP[1] server space to hold binaries for 20 different platforms can be prohibitively expensive unless the application is designed to run only on Microsoft Windows operating systems on x86 computers.

    --
    Will I retire or break 10K?
    1. Re:Binaries take server space by mivok · · Score: 1

      The users who would benefit most from having binaries (new users who dont know how to compile from source) are unlikely to have non-x86 computers - I would expect a user of a (say) sparc machine to at least know how to type in ./configure && make && make install, so if space is really at a premium, provide binaries for just the x86 platform, and have source for everyone else.

      Of course, the best solution is user education, perhaps instead of writing 4 pages of how to do an install step, point new users to a central place on how to do it. However, this doesnt help those who simply want to get their computer working and dont want to learn yet another method (e.g. those who migrated from windows systems), which is why we have binary packages that take any work out of the users hands.

  22. Reading the manual but not understanding it by yerricde · · Score: 1

    Any problems after you install without referring to the stuff that comes with says one of two things:

    So how do you handle those people who do read the READMEs, FAQs, and HOWTOs but fail miserably to understand them?

    --
    Will I retire or break 10K?
  23. "IDNUTFM" by yerricde · · Score: 1

    Then how do you respond to support requests containing

    I D N U T F M

    (I Did Not Understand The Intercourse-having Manual)?

    --
    Will I retire or break 10K?
  24. err, what exactly does 'configure' do? by Anonymous Coward · · Score: 0

    I can't figure this out. Why does source code need to be "configured" anyway? Can't you write your program in ANSI or POSIX C? Are you too lazy to write your own makefile? (I think Make is a piece of crap, but that's a subject for another rant...)

    A web page for one program (Microwindows, I think) crowed about using 'configure' to make itself more portable. I laughed out loud at that. To run 'configure', you need many megabytes of ported UNIX tools installed -- not to actually compile or run the code, but just to "configure" it! Not my idea of portable...