Slashdot Mirror


Getting Software Added to Unix Distributions?

suso asks: "I've been working on a set of programs called num-utils that I would eventually like to be considered for inclusion in some of the many free Un*x distributions (on the install CDs, etc). So my question is, how does one put their applications on the track to be included in the main distribution of Red Hat, Debian, SuSE, *BSD, and so on? Is this just something that is up to the maintainers or are there submission forms of some kind?"

267 comments

  1. Linux is not Unix by Flounder · · Score: 4, Funny

    unless, of course, SCO wins their lawsuit.

    --

    No boom today. Boom tomorrow. There's always a boom tomorrow. - Cmdr. Susan Ivanova

    1. Re:Linux is not Unix by Anonymous Coward · · Score: 1, Funny

      GNU is also not Unix. :P

    2. Re:Linux is not Unix by Acidic_Diarrhea · · Score: 0, Flamebait

      Quite right, and why exactly does the submitter say Un*x? What else goes in there but an i? Nit picking can be annoying but come on, this is Slashdot - we see *nix in every fifth story, is it so much to ask to get it right?

      --
      I hate liberals. If you are a liberal, do not reply.
    3. Re:Linux is not Unix by Joey7F · · Score: 1, Offtopic

      Well...if you want to nit pick it would be *n?x
      We all know what he is talking about so it is no big deal.

      --Joey

    4. Re:Linux is not Unix by irc.goatse.cx+troll · · Score: 4, Informative

      Un*x is traditional. AT&T can't sue you for trademark infringement if you don't say the whole word.

      *nix is much newer (circa mid-90s, rather than the late 80s Un*x started in) and is actually much less accurate. Un*x refers to Unix(tm), I've heard *nix refer to just about anything POSIX. Why don't more people refer to things by the standards they're actually judging Un*x-a-like systems?

      --
      Pain lasts, kid. Its how you know you're alive. Sometimes I think this growing up thing is just pain management-TheMaxx
    5. Re:Linux is not Unix by Anonymous Coward · · Score: 1, Funny
      Try:
      ^*n[iu]x
      If you're going to nitpick, nitpick properly!!!
    6. Re:Linux is not Unix by MesiahTaz · · Score: 2, Funny

      No. Gnu's Not Unix.

      --
      Are you an open source warrior?
    7. Re:Linux is not Unix by peterpi · · Score: 1

      If SCO win, d'ya reckon GNU will have to be renamed GIU?

    8. Re:Linux is not Unix by radon28 · · Score: 1

      I'm pretty sure that UNIX is the trademarked term (Open Group), and Unix is the generic term, at least according to the courts.

    9. Re:Linux is not Unix by Anonymous Coward · · Score: 5, Funny
      Did I just notice a recursive acronym here?
      Linux Is Not UniX

      Prepare to be modded down.

    10. Re:Linux is not Unix by Anonymous Coward · · Score: 0

      Un*x is traditional. AT&T can't sue you for trademark infringement if you don't say the whole word.

      [...]

      Un*x refers to Unix(tm), I've heard *nix refer to just about anything POSIX.

      Oh no! You've established the reference! Now we HAVE to *nix!

    11. Re:Linux is not Unix by Anonymous Coward · · Score: 0

      No, because GNU is not Linux.

    12. Re:Linux is not Unix by DNS-and-BIND · · Score: 1

      Because cluebies who started "waaay back with redhat 6" assumed that *nix means "any unix", which isn't correct, but hell, there are none so ignorant as those who aren't interested in learning.

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
  2. Usefulness and Popularity by turgid · · Score: 4, Insightful

    If your programs are genuinely useful and well-written, they will build up a user base over time. Eventually they will become viewed as worth putting in a distribution.

    1. Re:Usefulness and Popularity by anshil · · Score: 1

      Nah if only reality would really work that way .... ....not 95%+ of all desktops were windows.

      --

      --
      Karma 50, and all I got was this lousy T-Shirt.
    2. Re:Usefulness and Popularity by perlchild · · Score: 1

      (out of mod points)
      Hear Hear,
      People put in a distro what works, so if the poster's software is good/has a userbase which matches the distro, the only thing left to do is write packages of the type of a favored distros, so the maintainers have something to work with.

      I see the poster has done some of that, by mentioning fink and an rpm on the page. You might also want to get one or more packages that use your software list you as a dependancy, to hurry the adoption of your package.

    3. Re:Usefulness and Popularity by Anonymous Coward · · Score: 0

      NO, you're TOTALLY wrong. First, you've got to have a unique set of command-line switches. Then, you've got to make ABSOLUTELY certain that people will confuse them with other, similar, utilities. For PRIME examples of this in practice, see AWK, SED, and GREP. Study these three, and your confused maintainers will probably want a couple different versions, just to maintain fragmentation between distributions .. uh, I meant "unique selling proposition," not fragmentation. Gotta be unique. Way to go, bro.

  3. Write a text editor by Anonymous Coward · · Score: 5, Funny

    Write another text editor app, then it will be sure to be included in the distro. Distros dont have enough text editors in them.

    1. Re:Write a text editor by turgid · · Score: 0

      ...Or theme-able, skinnable IRC clients with alpha trasparency. Or Tetris clones...

  4. Simple by sporty · · Score: 4, Insightful

    1. port it to as many systems as possible, even non-targert systems. possibly AIX, old Digital Unix.. you name it.

    2. get the werd out. If people know about your package, it could solve a problem somewhere that would get it installed.

    3. support it. if you support it, people will keep using it. even if it is initially crappy, you'll get bug fixes and advice.

    4. package it. no one more than me.. 'cept for those that hate it more than me, hate doing custom compiles on a system that doesn't have /usr/ports or emerge.

    Then you live on w/ your life. If your software is good and fulfills a need, you'll see it get put in.

    Then you can go onto 5. Profit. or ????. YMMV

    --

    -
    ping -f 255.255.255.255 # if only

    1. Re:Simple by Anonymous Coward · · Score: 0


      4. package it. no one more than me.. 'cept for those that hate it more than me, hate doing custom compiles on a system that doesn't have /usr/ports or emerge.


      Huh?! why is that insightful, I had not idea what the hell he's talking about.

    2. Re:Simple by trikberg · · Score: 4, Funny

      2. get the werd out. If people know about your package, it could solve a problem somewhere that would get it installed.

      Somehow I get a feeling that he has that one covered. :)

      --
      This post is free (as in cheese in a mousetrap).
    3. Re:Simple by packeteer · · Score: 1

      The sentence contradicts itself and is layed out wrong but its a good point. Not all valuable posts are well written. The sentence should read like this:

      I hate doing custom compiles on a system that doesn't have /usr/ports or emerge.

      --
      unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
    4. Re:Simple by rf0 · · Score: 1

      "2. get the werd out. If people know about your package, it could solve a problem somewhere that would get it installed."

      Well I know that some memeber of the Linux community can be a bit high strung but I would called the weird

      Rus

    5. Re:Simple by sporty · · Score: 1

      It's just filled with so many negatievs.. some get confused. It's gramatically laid out right :)

      package it. no one more than me.. 'cept for those that hate it more than me, hate doing custom compiles on a system that doesn't have /usr/ports or emerge.

      Me and only me, except those that are an exception, hate doing custom compiles on a system which doesn't support it.

      Synonymous.. but same order :) Don't you love english?

      --

      -
      ping -f 255.255.255.255 # if only

    6. Re:Simple by JamesP · · Score: 1

      port it to as many systems as possible, even non-targert systems. possibly AIX, old Digital Unix.. you name it.

      Except for SCO's systems, where you will produce several bugs and blame it on them

      --
      how long until /. fixes commenting on Chrome?
    7. Re:Simple by sydb · · Score: 1

      Nope, there's no contradiction. Clumsy, but logical.

      --
      Yours Sincerely, Michael.
    8. Re:Simple by Anonymous Coward · · Score: 0

      No one hates it more than me do. Brilliant.

    9. Re:Simple by Anonymous Coward · · Score: 0

      The first thing that jumped out at me was the subject/verb disagreement. "No one ... hate" is wrong. Also, he probably should have used "I" instead of "me"

    10. Re:Simple by Anonymous Coward · · Score: 0

      Yes. it's gramatically wrong. I never said "do" Friggin' live w/ it. putz.

    11. Re:Simple by Anonymous Coward · · Score: 0

      The "do" is implied, which is why you have to say "I," and not "me." Dumbass.

    12. Re:Simple by Anonymous Coward · · Score: 0
      2. get the werd out.
      There's nothing weird about num-utils. I think it's pretty good as it is.
    13. Re:Simple by Anonymous Coward · · Score: 0

      nuh-uh. it's accepted slang. get over yourself numbnuts.

  5. Make noiseb about it by makapuf · · Score: 5, Insightful

    Not to sound flamebait, but you're quite right in doing it : giving it the maximum visibility (for example by posting a link to it on a popular news discussion site) will make a few people notice it exists.

    Now, the main question is does it do ogg ?

    1. Re:Make noiseb about it by DrWhizBang · · Score: 4, Funny

      Now, the main question is does it do ogg ?

      It doesn't matter about ogg. Once it reads mail, then it is feature complete.

      --
      Schrodinger's cat is either dead or really pissed off...
    2. Re:Make noiseb about it by sukottoX · · Score: 2, Insightful

      i wouldn't be surprised to find your utilities included in the next version of some big distro after this nice self-slashdotting. this probably was the most effective way to get your programs noticed!

    3. Re:Make noiseb about it by gl4ss · · Score: 1

      *It doesn't matter about ogg. Once it reads mail, then it is feature complete.*

      well, it would be handy for calculating all the money they tell that i could have just by working at home!

      --
      world was created 5 seconds before this post as it is.
    4. Re:Make noiseb about it by sharkey · · Score: 1

      The "b" is for bargain!

      --

      --
      "Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
    5. Re:Make noiseb about it by schon · · Score: 1

      The "b" is for bargain!

      I thought it was for BYOBB..

      (OBSimpson's reference :o)

    6. Re:Make noiseb about it by Anonymous Coward · · Score: 0

      Can't forget HTTP/XML intergration...

    7. Re:Make noiseb about it by Arthur+Dent · · Score: 1

      Something like this eh?

  6. Feedback forms by Novus · · Score: 4, Informative

    For starters, you could try looking for feedback forms on the distributions' web sites, such as these forms for SuSE. Forms like these are often intended to bring suggestions to the attention of the distribution developers.

  7. Step-wise procedure... by jkrise · · Score: 4, Insightful

    1. Write software.
    2. Take out a coyright in your name.
    3. Apply GPL notices to code.
    4. Publish code via ftp.
    5. Send code to Source Forge and Freshmeat.

    Very difficult?

    -

    --
    If you keep throwing chairs, one day you'll break windows....
    1. Re:Step-wise procedure... by godal · · Score: 1

      ehrm, if you are planning to go into the bsd's you should stay clear of GPL. Another thing people don't mention is to get it added to the ports tree of bsd's, get it into apt-get and so on.

    2. Re:Step-wise procedure... by Anonymous Coward · · Score: 0

      Just like how the BSD people steer clear of the GNU Compiler Collection?

    3. Re:Step-wise procedure... by Aeonsfx · · Score: 0

      > 3. Apply GPL notices to code.

      Nah, omit the GPL. Its viral. How about say... the BSD or MIT licenses?

    4. Re:Step-wise procedure... by __past__ · · Score: 1
      Bullshit. It is highly unlikely that his tools would be included in the base
      system, and all *BSDs come with lots of GPLed third party apps in the
      ports/pkgsrc.



      If you want to get code in the base system, it would be a good idea to adopt
      a more liberal license, or become as important as GCC.

    5. Re:Step-wise procedure... by BlueWonder · · Score: 1
      Nah, omit the GPL. Its viral. How about say... the BSD or MIT licenses?

      It is definitely incorrect to state that distributions don't include programs which are licensed under the GPL.

    6. Re:Step-wise procedure... by Anonymous Coward · · Score: 0

      your instructions are fine if you want your software available on sourceforge and freshmeat...which is pretty obvious. but the submitter wants to know how to get it included in the Red Hat or Debian distributions, which is a different ball park altogether.

    7. Re:Step-wise procedure... by acidtripp101 · · Score: 2, Insightful

      Well, I don't see your point here. The GPL liscence only contradicts the BSD liscence if they are in the same binary (ie kernel code). The BSDs don't have to steer clear of the GNU Compiler Collection because gcc isn't part of the kernel.
      I honestly don't think anyone would be THAT much of a zealot about their liscences, but then again..

      --
      Not Free(as in beer). Free(as in "I'm free to beat you over the head for being a dumbass")
    8. Re:Step-wise procedure... by cygnus · · Score: 1

      1. Write software.
      2. Take out a coyright in your name.
      3. Apply GPL notices to code.
      4. Publish code via ftp.
      5. Send code to Source Forge and Freshmeat.

      6. ???
      7. Don't Profit!

      :)

      --
      Just raise the taxes on crack.
    9. Re:Step-wise procedure... by Anonymous Coward · · Score: 0

      That WAS his point. Nobody in their right mind avoids GCC entirely because of the license.

    10. Re:Step-wise procedure... by Anonymous Coward · · Score: 0

      Well that would be a good idea if he wants his project rebadged as "MS NumUtils 2004" and included as standard in the next distribution of Windows (minus source, of course).

    11. Re:Step-wise procedure... by Anonymous Coward · · Score: 0

      And thanks to SCO we now know #6, #7, and #8...

      6. When used by large corporations, sue for copyright violations.
      7. Get bought out/extort license fees
      8. PROFIT !!!!

  8. debian by Anonymous Coward · · Score: 0

    in debian it's pretty easy, you just have to find someone willing to package it, including you

    1. Re:Debian by John+Hasler · · Score: 1

      > If you want your program to be included in Debian,
      > you may package it yourself.

      That won't get it included in Debian. Only Debian developers can add packages to the distribution.

      > Or, you could file an RFP (Request For Package).

      Yes.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    2. Re:Debian by nvainio · · Score: 1
      That won't get it included in Debian. Only Debian developers can add packages to the distribution.

      True. I should have said that he could become a package maintainer and get a developer upload it for him. But that would require installing Debian, following mailing lists and so on, so perhaps it's too much just get a program included.

      RFP of course isn't for software developers to get their stuff in the distribution, but this way a developer could notice the program and get interested in it.

  9. Publish first to website. by marcovje · · Score: 5, Interesting


    Two ways:

    How we did it (fpc, a pascal compiler)
    - First the app was published on our site only, and gained momentum and peer review. This stage took several years.
    - for the distributions where ordinary users can submit packages (*BSD ports and Debian) somebody
    will do a port in time. You could do that yourself of course and speed up the process.
    - After a time the commercial ones pick it up if it is really good. You can lobby for that too, but maintainers might also contact you if you have critical mass.
    I found SUSE always the most responsive. RedHat is the only major that doesn't include it, and has been promising it for the next major version since 6.x times.

    About SUSE there is a nice anecdote. I mailed our contact that a new version was out, and got a reply back that the final ISO had already been made. Two days later I got a mail back that they had to update a critical bug, and also updated our package to the newer version (which was a fixes only release btw)

    The second way is to try to submit your packages to the FSF, so not just GPL it, but really get in bed with the FSF
    FSF stuff more readily gets into distro's than third party projects. Of course again, they will only be really interested if your work is phenomenal.

    1. Re:Publish first to website. by hanwen · · Score: 3, Interesting

      The second way is to try to submit your packages to the FSF, so not just GPL it, but really get in bed with the FSF. FSF stuff more readily gets into distro's than third party projects. Of course again, they will only be really interested if your work is phenomenal.


      That is not true. The GNU project (the FSF doesn't do this directly, the FSF is the foundation that sponsors GNU) will take on any software, as long as it is free, conforms to the GNU coding standards, and is not yet covered by other GNU packages.


      Savannah (the GNU equivalent of Sourceforge) also carries a lot of near-dead projects.

      --

      Han-Wen Nienhuys -- LilyPond

    2. Re:Publish first to website. by chrysalis · · Score: 1

      I also found SuSE very responsive and helpful.

      For Pure-FTPd, they subscribed to the mailing-list, reported bugs, proposed patches and they helped us to build RPMs, even for other distros.

      The same thing applies to the Polish Linux Distribution.

      --
      {{.sig}}
    3. Re:Publish first to website. by Anonymous Coward · · Score: 0

      > conforms to the GNU coding standards

      Doesn't GPL say something about distributing the source in it's preferred form?

      I doub't everyone likes the GNU coding style.

    4. Re:Publish first to website. by BetterThanCaesar · · Score: 4, Funny

      Savannah (the GNU equivalent of Sourceforge) also carries a lot of near-dead projects.

      Savannah, where GNUs go to die...?

      --
      "Stop failing the Turing test!" -- Dilbert
    5. Re:Publish first to website. by marcovje · · Score: 1


      It wasn't meant as a FSF/GNU criticism, but there is a difference with the "independant" way.

      You need some form of adaptation needed, (e.g. coding standards) and I can also imagine competing with a GNU project that partially overlaps can make things different.

      In our case, our code base was in TurboPascal/Delphi. I don't know if the codebase adheres to the GNU standards though.

    6. Re:Publish first to website. by Anonymous Coward · · Score: 2, Informative
      That's pretty much how it works. Let me try to add how it worked for GStreamer, the project I contribute to.

      1. Write software that people need.
        This is the most important step. You have to have a piece of software that has value for people (and therefore for a distribution). It may be software that is missing, it may be that it does something better than others.
      2. Wait for those people to show up.
        Release your software, work on it. Since it's good people that need it will show up and use it. Open source software gains speed by word of mouth. Eventually someone will package it for Debian and someone will do Redhat packages for your local website or maybe even for freshrpms.
      3. Work with the people that showed up.
        This is a rather important step where some projects fail miserably: Everybody that shows up and says something about your project is a contributor. Take him serious. Even if he only bitches about missing or non-working things. There are probably quite a few valuable feature suggestions and bugs you didn't know about inside his hate mails.
        As an added bonus, listening to your users gives you more publicity and word of mouth for free.
      4. Wait until people want your software included.
        The day will come when someone - it's probably better if it's someone else - suggests you for inclusion in a package. There will probably be quite some other suggestions. There'll definitely be one other suggestion: Don't include anything. You'll have to prove you're worth the work for the distributor. Maybe they won't even inform you about the inclusion of your package.

      From the GStreamer point of view the big breakthrough was the inclusion into GNOME as the "official" media framework. For the first releases (2.0 and 2.2 I think) GStreamer was only used by the sound recorder. They wanted to see if we are good enough. Since we lived up to their expectations they'll now include a media player based on GStreamer in their next release.

      This inclusion into GNOME made other distributions aware of us and GStreamer is now included in Redhat 9 and I think Mandrake 9.1, too.
      I have to say though that I had to find out about that myself since I'm not a Redhat user and they didn't come to tell me. They didn't even ask questions which I would have expected distros to do when they want to include a package.

      Inclusion into a distribution for me is just "Hey, I didn't know I was in!"

    7. Re:Publish first to website. by Dog+and+Pony · · Score: 1

      You don't need their coding standards to GPL something, but if they are to take "responsibility" for it and maintain it, then they want you to follow their coding guidelines.

      Which is butt ugly (at least with the braces), but apparently works for them. :)

    8. Re:Publish first to website. by hanwen · · Score: 2, Informative
      You don't need their coding standards to GPL something, but if they are to take "responsibility" for it and maintain it, then they want you to follow their coding guidelines.

      The GNU project does not maintain any contributed software. The FSF does take responsibility for suing GPL offenders, but that requires you to sign over your code to the FSF (nothing scary, they grant you a no-strings attached license back.)

      As for the coding standards: they are quite strict in enforcing those, in particular the clause that a GNU program cannot link or refer to non-free software. For example, Ghostscript was recently taken out of GNU, due to disagreements over the linking to the non-free Aladdin ghostscript.

      --

      Han-Wen Nienhuys -- LilyPond

  10. learn awk by Anonymous Coward · · Score: 0

    After taking a quick glance at the package I didn't see anythink I couldn't do with a quick awk statement or two.

    1. Re:learn awk by joe_bruin · · Score: 2, Informative

      so let's see:

      you wrote 8 apps, in perl, that should take any perl programmer 2 minutes to do (and are so simple, one should use awk for them).

      the body of your apps has more text that is dedicated to license and documentation than actual code.

      your implementation is crap. i quote from your 'random' man page:
      random is slow when dealing with large ranges to randomly find a number from. This is because it creates a list of all potential numbers before picking one. So it can be memory intensive for large ranges.
      wtf?? if you were my employee, you'd be fired for writing code like this.

      your apps are of very little use to most people. and the ones that do need them likely have just the right variations on what they're doing that they might as well write their own.

      i would say your chance of getting included in any big distribution is approximately zero.

    2. Re:learn awk by Anonymous Coward · · Score: 0

      wtf?? if you were my employee, you'd be fired for writing code like this.

      Thank god. Somebody broke it to him. I can leave this thread now.

  11. Popularity would be My Guess by nucrash · · Score: 1

    I am sure some if you talk to some UNIX/gnu linux distros, they would tinker with it. Mandrake would be a good company to ask to include programs. Distros like Redhat and such wait until the application is more coming of age.

    You could also jump on serveral mailing lists and such. Perhaps, post you thoughts in a public forum to be rediculed.

    --
    Place something witty here
  12. I'm not that innocent by mikeymckay · · Score: 1

    Hmm - I wonder if asking people about how to get noticed will actually end up getting me noticed...

    Too bad this now won't work for everybody - so yeah how does one do this?

  13. Reputation + Packaging by rf0 · · Score: 3, Insightful

    Half of it is about reputation and having a good following. The other thing that helps is to supply packages for each distro. i.e rpm for redhat, deb for debian. For others like FreeBSD which have the ports tree see if you can get your files commited

    HTh

    Rus

  14. GNU? by metalmaniac1759 · · Score: 3, Informative

    I think Gnu should help. Try submitting on their site. If you code according to their guidelines, and if your software is useful enough they will include it in some package (something like what binutils is).
    Your program will then automatically get into *all* distros :)

    Nandz.

    1. Re:GNU? by anshil · · Score: 1

      Nah this is all but Informative, GNU itself only supports software that fits in their strategy...

      If you make software under the GPL, do not expect direct help from the FSF, it's first not their obligation to do so, second you will only get disappointed.

      They have of course savannah, to help you distribute, but do not expect to become a FSF owned package, these are rahter limited.

      --

      --
      Karma 50, and all I got was this lousy T-Shirt.
  15. Is your app a virus by any chance? by Anonymous Coward · · Score: 4, Funny

    If so it will add itself eventually.

  16. Get eyeballs.. by Graelin · · Score: 3, Informative

    The distro maintainers make these decisions based on popularity and dependency. Why include software nobody ever uses?

    The larger distributions will not carry your tool until it's become widely adopted by the Linux community - be thankful, otherwise RedHat 9 would require a DVD or two, instead of (just!) 3 CDs...

    These utilities you have here, while useful, will probably not see much user adoption. However they would be very useful in shell scripting. If a more mainstream user application requires your utilities to function, the distro will be forced into including your stuff - as a dependency.

    1. Re:Get eyeballs.. by chef_raekwon · · Score: 1

      ... make these decisions based on popularity and dependency

      i just thought of something....just get a bunch of other packages that depend on your package....and bingo!! you'll be included right away....ofcourse, this is what leads to dependency hell, but, whadda you care? you just want to get your package in a main distro, then get a good job, make lots of money.......

      --
      We're like rats, in some experiment! -- George Costanza
  17. Make your own binary packages by Cee · · Score: 2, Informative

    I think you should make your own binary packages, or get someone else to do it for you (for the distros/architectures you don't have access to). I've seen you already have rpm's on your site, so that's a good start.
    This way you (or someone you know) can be an inofficial maintainer for your package. When your software becomes popular enough, it may eventually be included with the major distributions.
    So my advice is basically: patience =)

  18. THIS IS THE TROLL U WERE LOOKING FOR by Anonymous Coward · · Score: 0, Funny
    OPEN SOURCE? MORE LIKE OPENLY RACIST

    The Open Source movement, otherwise known as 'Free Software', has been a topic of considerable debate on the Internet's most controversial site. The majority of this debate has centered around the technical merits of the software, with the esteemed editors argueing against adopting Linux by employing the full depth of their considerable intellects, and the other side hurling death threats and similar invective. This has allowed many who would not otherwise receive quality information about Open Source software to be made aware of many of its ramifications, but one issue has been left alone: The overt racism that is deeply embedded in the movement.

    Allow me to explain.

    Alan Cox; Richard Stallman; Bruce Perens; Wichert Akkerman; Miguel DeIcaza.

    What do you see in this list of names? Are there any African-Americans on it? Absolutely not, none of those names sound like one a self-respecting black person would have! No Maurice, no Luther, no Lil' Kim. There are many other lists such as this, you can see one here. Flip through each page, do you see anything other than white faces? Of course you don't, because Open Source and its adherents are ardent racists and they absolutely forbid access to the sacred 'kernel' by any person of color.

    Lets look at another list, this time a compendium of the companies using Linux. Are there any black owned companies on that list? Nooooooo. How about these companies? They all have something to do with Open Source software, any of them owned by an African-American? No again. Here is an extensive collection of photographs from a LUG (Linux User Gathering) meeting, more can be viewed at that link. What is odd about these pictures, and every other photograph I have ever seen of a LUG meeting, is that there is not one single black person to be seen, and probably none for miles.

    More racist overtones can be found by examining the language of Open Source. They often refer to 'white hat' hackers. These 'white hats' scurry about the Internet doing good, but illegal, acts for their fellow man. In stark contrast we find the 'black hat' hackers. They destroy the good works of others by breaking into systems, stealing data, and generally causing havoc. These two terms reflect the mindset of most Linux developers. White means good, black means bad. Anywhere there is black, there is uncontrollable destruction and lawlessness. Looking further we see black lists that inform other users of 'bad' hardware, Samba, an obvious play on the much hated Little Black Sambo book, Mandrake, which I won't explain except to say that the French are notorious racists. This type is linguistic discrimination is widespread throughout the Open Source culture, lampooned by many of its more popular sites.

    It is also a fact that all Unix 'distros' contain a plethora of racist commands with not so hidden symbolism.

    It can hardly be coincidence that the prime operating system of choice of the 'open source supremacists' - Linux, features commands which are poorly disguised racist acronyms. For example: 'awk' (All White Klan) , 'sed' (shoot nEgroes dead), 'ln' (lynch negroes), 'rpm' (raical purity mandatory), 'bash' (bring a slave home), 'ps' (persecute sambo), 'mount' (murder or unseat nubians today), 'fsck' (favored supreme Christian klan). I could go on and on about the latent racist symbolism in Linux, but I fear it would take weeks to enumerate every incidence.

    Is there a single unix command out there that does not have some hidden racist connotation ? Suffice it to say that the racism pervades Linux like a particularly bad smell. Can you imagine the effect of running such a racist operating system on the impressionable mind ? I don't have to remind you that transmitting subliminal messages is banned in the USA, and yet here we have an operating system that appears to be one enormous submliminal ad for the Klan!

    One of the few selling points of Open Source software is that it is available in many differ

  19. Have you considered developing for windows? by 91degrees · · Score: 1

    You can get a much larger customer base, and hence considerably more exposure if its vaguely useful. You can even charge a small $5 shareware registration fee (and maybe even get $5 if someone likes the software enough).

    Once Linux users start realising that they need such a tool, simply release a GPLed version for Linux.

    1. Re:Have you considered developing for windows? by Ace+Rimmer · · Score: 1

      Have you followed the link in the article? I have no idea who would want to pay $5 for a set of tools capable generating a specified interval, summing up a sequence of numbers or taking random of those...
      Though, it may be useful to have those for shell scripting.

      This was ask.slashdot.org. Who would expect a Spanish inqusition?

      --

      :wq

    2. Re:Have you considered developing for windows? by ultrabot · · Score: 1

      For many classes of applications (development tools, libraries, scripting systems...), a $5 $hareware version makes no sense. Such software is expected to be available indefinitely (guaranteed by OSS), and a community is always a plus. You don't get that with shareware.

      --
      Save your wrists today - switch to Dvorak
    3. Re:Have you considered developing for windows? by fruey · · Score: 1

      To be fair, it's a bit more complex than that, although its being written in Perl is not ideal for hardcore command liners

      o search for numbers that are factors of 1024 and multiples of 12 or numbers that are factors of 2333 and multiples of 9

      numgrep /f1024m12,f2333m9/ data.txt

      So, it's like a commandline based spreadsheet, because it can also do adding of columns and rows in text files. I think somehow awk could already handle a lot of the stuff it does do though.

      --
      Conversion Rate Optimisation French / English consultant
  20. Watch them closely by Random+Walk · · Score: 1

    If your application is popular enough, or does something that is in high demand, they (insert any distribution) will include it. Of course they won't tell you (actually, FreeBSD occasionally stands out from the crowd and tells you if your app is in their ports system), and they will also not tell you about the bugs they have found, and the patches they use to fix these bugs.

  21. do some serious work by Anonymous Coward · · Score: 0

    Sorry to say this, but from what I have seen this set of tools can be written in less than a day.
    It seems to me that the first step towards inclusion in the major distros is having a more creative
    product...

    1. Re:do some serious work by Anonymous Coward · · Score: 1, Insightful

      Sorry to say this, but from what I have seen this set of tools can be written in less than a day.

      But if he's put the work in, and got it dead on right, then he might as well save *you* that day, huh? If it's small and useful who cares how complex it really is?

    2. Re:do some serious work by godal · · Score: 0, Flamebait

      Hi! I have written a set of programs called dum-utils. Here are the basic functionality: average: A program that will print out a random number between 0 and the sum of all input. bound: Will bind two number together, e.g. if you bound 6 and 3 then 6 will effectively be a 3 in all subsequent calculations and vice versa. interval: Will give you the time from you started using this tool, until you stopped using them, (the shorter the time, the smarter your are!) dumgrep: Will grep input or files for dumb names like "Brian", "Stevo". dumprocess: Looks for other dumb programs like "ed" and so on. dumsum: The sum of all dumb people on the planet, will contact ftp server of distro and get download count. randum: Generate a random dumb sentence like "Why do people eat food when there are stones?". range: The range a dumb person needs to be at to get shot with a rifle, currently about 400 meters. round: Draws round circles all over the screen. The utils are written in Befunge-93 and will be available shortly.

    3. Re:do some serious work by TooTechy · · Score: 1

      You forgot to put an href in for Befunge-93. This is a language which needs exploring if it can do all these unique things. Given the complexity it has to run on a PDP-11? ;-)

    4. Re:do some serious work by Anonymous Coward · · Score: 0

      But if he's put the work in, and got it dead on right, then he might as well save *you* that day, huh? If it's small and useful who cares how complex it really is?

      As another poster has pointed out, it can be done with a simple Awk statement.

      Average? Min? Max? all done. If I need this utility, I'll just use Awk, which I already have and know how to use.

  22. Simply send it to SCO by Advocadus+Diaboli · · Score: 5, Funny

    They will take care of it and will find evidences that your code is already illegally included in all major distributions, the kernel and the rest of the world. And they will offer a license for using it.

  23. Money talks but here's some free advice... by WIAKywbfatw · · Score: 3, Informative

    $100,000 buys you 10 minutes of face-to-face time with Dubya and I bet a similar "donation" would get you some time with the guys at Red Hat, SuSe, etc.

    But, of course, that's not what you wanted to hear. I'd check out their FAQs, ask questions in their relevant forums, usenet groups, etc. I'd imagine that each distribution has its own criteria for inclusion so your approach to one vendor might have to be completely different to your approach with another.

    Whatever you do, bear in mind two (slightly paradoxical) things:

    1. They probably get asked to include lots of software, some good, some bad and some downright ugly.

    I know of one major magazine that was sent an application for inclusion on its cover disk that calculated sales taxes for you - by taking the figure you gave it and multiplying by the relevant amount. That's the chaff. You need to be the wheat. So make sure that your software is truly worth inclusion (Does anybody already have a similar offering in their distribution? How does yours differentiate itself? How is it superior?) before you start investing serious time and effort into promoting it.

    Also, remember that there will be great pressure, both internal and external, for vendors to keep their distributions free of bloat. Even if your software is unique, does it really offer something that a significant proportion of the target audience will want and use? You could develop the best doll's house design software for Linux ever but if nobody wants to design doll's houses on their Linux machines then you're screwed.

    2. If you really do have a product worthy of inclusion then persevere.

    Once you find the distributions' relevant contacts, harrass and hassle them about it until you get some sort of feedback. If they say 'yes' that's great, but if they say 'no' ask why it's a not a go.

    But remember, although it might be their jobs to deal with new submissions, it isn't their jobs to deal with crap. Don't be offensive, advesarial or overly aggressive and don't become a stalker (leaving two voicemails a day is a no-no) or the only answer you'll ever get is 'no'.

    Good luck.

    --

    "Accept that some days you are the pigeon, and some days you are the statue." - David Brent, Wernham Hogg
  24. Use SCO by Anonymous Coward · · Score: 0

    Give it to sco. They will insert it and then claim ownership wether it is theirs or not.

  25. On Perl and command-line utilities by juahonen · · Score: 5, Interesting

    Your mathematical utilities would be more useful if you had programmed them in C. Your choice of language will limit their adoption. Basically because using Perl scripts is not as fast as calling compiled C programs. This fact alone will make people reductant of using your utils in their code.

    Because FreeBSD doesn't ship Perl as standard part of their distribution anymore, it'll be likely that your utils will not get included in any BSD software because it would pull in Perl. It may be a reason for Linux distributions too for not using your num-utils. Debian may be the only distribution which relies on Perl.

    1. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      Most distibutions are moving towards python. Redhat severn uses it for its installer, and gentoo uses it everywhere. Python is simply more flexible and easier to use, and if it wasn't so anal about tabs/spaces then it's adoption would speed up even more.

      Debian will get left behind if it keeps with obsolete packages (and yes, even sid and sarge use old stuff) we can't let that horrible distro stiffle open source innovation.

    2. Re:On Perl and command-line utilities by BJH · · Score: 2, Insightful

      The other thing is that several of the utilities (or at least 90% of their functionality) can be implemented in 1-2 lines of sh or awk.

      Really, if you're shooting to be included in a distribution, make it for something worthwhile.

    3. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      I don't particularly want either Perl or Python to be mandatory for a distro, it's a lot of work ontop of a base install to replace all perl/py with shell script.

      If these utils belong anywhere it's as a CPAN package.

    4. Re:On Perl and command-line utilities by 73939133 · · Score: 3, Interesting

      Your mathematical utilities would be more useful if you had programmed them in C. Your choice of language will limit their adoption. Basically because using Perl scripts is not as fast as calling compiled C programs.

      I have actually written a lot of this kind of code, working with huge datasets, and you are simply wrong. The performance of these kinds of utilities is dominated by I/O, not CPU. Furthermore, even the CPU-intensive parts of these utilities (conversions, etc.) are implemented in highly optimized C code inside Perl.

      Because FreeBSD doesn't ship Perl as standard part of their distribution anymore, it'll be likely that your utils will not get included in any BSD software because it would pull in Perl.

      I think Perl is a pretty awful language, but not including it in FreeBSD strikes me as a stupid decision. Perl is useful and works well across many systems. It's also not particularly big. If FreeBSD doesn't include Perl in the standard install, then FreeBSD has a problem, not people who write scripts in Perl.

      What is BSD doing instead? Implementing all utilities in C? Gee, that's bright: let's create lots of unnecessary work for ourselves, increase maintenance hassles, make it really difficult to use good algorithms, make sure that there are plenty of opportunities for pointer bugs. That's negative progress: operating systems need less C programming, not more.

    5. Re:On Perl and command-line utilities by sumirati · · Score: 2, Interesting

      Because FreeBSD doesn't ship Perl as standard part of their distribution anymore, it'll be likely that your utils will not get included in any BSD software because it would pull in Perl. It may be a reason for Linux distributions too for not using your num-utils. Debian may be the only distribution which relies on Perl.

      Yes, Perl is no longer a part of the base FreeBSD installation (as long as for 5.x). It is a port instead - like UUCP and some others. And Perl is ALWAYS installed by DEFAULT!

      Please, check your facts before posting ...
      ... ah, but this IS slashdot, or?

    6. Re:On Perl and command-line utilities by PhilHibbs · · Score: 1

      I agree. I was astonished how quick a dictionary processor was in Perl, compared to a C++STL implementation, and a C implementation. I thought that it wasn't working, because it came back so quickly. The C implementation took about five seconds, the C++ took about 25. The Perl version took 2 minutes to write, C++ took two hours, C took two days.

    7. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      Operating systems need less C programming, not more.

      They don't need any bloat either, you say Perl, I say PHP, Python & lua. Good luck loading a different script host for every command you freak!

    8. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      Perl was added to a port because people (like me) got sick of having a version of Perl that was extremely dated. As a port it can be upgraded much more easily. It is still installed by default.

    9. Re:On Perl and command-line utilities by rainer_d · · Score: 1
      think Perl is a pretty awful language, but not including it in FreeBSD strikes me as a stupid decision

      It's not in the base distribution.
      That means that it is an additional package that is installed more or less automatically during install (unless you don't install any packages, eg. because you want PERL5.8 and install that later). It's not in the base-system because it makes "make world" more difficult.

      What is BSD doing instead? Implementing all utilities in C?

      Indeed. The base system works without PERL (beginning with 5.0-REL).
      If you think about it, it's not a bad system design decission to try to make the base-install leaner.

      Rainer

      --
      Windows 2000 - from the guys who brought us edlin
    10. Re:On Perl and command-line utilities by groomed · · Score: 2, Insightful

      The benefits of scripting over languages such as C are grossly overrated.

      C requires painstaking attention to detail, but there is a large number of tools to check C programs for common mistakes such as memory allocation errors and pointer bugs. Scripting languages generally do not have an equally powerful toolset to check for runtime problems such as the typing and dependency errors which may occur when (components of) the scripting runtime are upgraded.

      Scripts are fragile. Truly the last thing operating systems need is more fragility.

      By adhering strictly to a formalized development process which includes unit tests as well as rigorous system tests it is possible to overcome some of this fragility, but then you also lose many of the benefits that scripting is supposed to provide, viz. rapid development and turnaround.

      God only knows why colleges keep churning out students who insist that mashed potatoes are the most flexible material to build a bookshelf...

    11. Re:On Perl and command-line utilities by __past__ · · Score: 4, Informative
      FreeBSDs decision to move Perl from the base system to the ports tree was because it was easier to handle that way, both for developers and users. It was not about not supporting it anymore. In fact, it is supported quite well, including automatic integration of CPAN packages with the package management utils etc.

      This seems to be easily misunderstood, probably especially by Linux users where no distinction between base system and third-party apps exists (or in a less visible way, at least).

      It did indeed mean that some tools in the base had to be reimplemented, either in C or as shell scripts. Obviously the majority of developers decided that this was less pain than having to keep one version of perl around even when users want a newer one, because you could break their systems otherwise, to have to check various important parts of the systems when you integrate an updated perl etc. The result of all this is that having an up-to-date perl is just one "portinstall perl" away, the system is more stable and modular, and, indeed, that trivial perl utilities like those in the article are unlikely to become base components. Big deal.
    12. Re:On Perl and command-line utilities by Grr · · Score: 1

      You are right that for a task that consist almost entirely of dictionary operations perl maybe the better tool, but your reasons are basically just anecdotical evidence.

      I am usually suspicious of claims that higher programming languages are faster than C, since they are almost always implemented in C themselves (like perl). Also factors of speedups greater than 5 usually suggest a design flaw instead of an optimization problem. A skilled C/C++ programmer will have no problem making the same task as fast as perl.

      I agree that implementation time is another important factor, but spending a few hours to make a tool faster so thousands of users can run their tasks a little faster and save many more combined hours is easily worth it.

      For smaller tasks, like comparing or adding a few numbers as num-utils mostly does, accessing the perl interpreter soon becomes a big memory,file io and cpu overhead, so imho C would have been the better choice here.

    13. Re:On Perl and command-line utilities by bongoras · · Score: 1

      I couldn't agree more. I used to do Solaris customization and packaging for a major isp's web hosting department. (that company is no more, by the way. the black rocket apparently crashed on it's way to Iraq or something). Anyhow, we had implemented a ton of awesome stuff in Perl -- really nice code, all object oriented, easy to extend, method based stuff to add webserver instances for Iplanet from the command line. And it turned out to be a major pain in the ass, because we now had to maintain two different Perl packages, one for our own system use that we could guarantee would always have the correct configuration and our own modules installed, and one for the customers' use on the webservers. Packaging Perl for redistribution is a major pain in the ass. But that's actually another story.

    14. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      you don't want perl required in the base system if you plan on porting to new architectures. perl requires a *lot* of stuff to be working perfectly which just makes a port take a lot longer to be self hosting. it's a ton easier to fix those bugs when it the machine is self hosting as opposed to a cross compiler and moving things around

    15. Re:On Perl and command-line utilities by Viol8 · · Score: 1

      Perl - optimised ... nah sorry , those 2 words just don't go together in my mind.

      Replace "Optimisation" with "Obfuscation" and I'm with you all the way!

      You seem to not understand how small utilities are used in unix. They are generally NOT used
      as standalone programs , but rather put in scripts or pipes and called in sequence or
      frequently over and over again in a single script. The one thing you do NOT want when doing
      something like this is having the overhead (and time wasting) of kicking off a large interpreter process (Perl aint a
      lightweight) FOR EVERY LITTLE UTILITY. Anyone who suggests this is the way to go really needs to get a clue.

      "operating systems need less C programming, not more"

      Funnily enough I frequently here this from scripting language "programmers" , I hardly ever hear it
      from programmers who can do both scripting AND low level C/C++ coding. I wonder why....

    16. Re:On Perl and command-line utilities by xchino · · Score: 0, Flamebait

      Have you ever seen a micro distribution with perl? No? Well there is a reason.. perl is huge, and I don't want it on my system w/o my express consent. It was not "stupid" of FreeBSD to not include it in the base distro, it's called giving your users a choice. Of course, maybe you just don't understand how FreeBSD's ports work. Your inability to see the usefulness of this, and instead to insult the intelligence and question the reasoning behind their decision without looking at both sidees is indicative of a troll or just being a jerk in general.

      Anybody who claims perl is less of a hassle or hugely faster to develop with just doesn't know how to program with C properly. As both a perl and a C programmer, each has their place and can often do the job of the other. Neither one is inherently better. Only those who know one but not the other (or those that know neither/nothing) have such gross misconceptions as to what should be done in what.

      --
      Everyone is entitled to their own opinion. It's just that yours is stupid.
    17. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      They don't need any bloat either, you say Perl, I say PHP, Python & lua. Good luck loading a different script host for every command you freak!

      As opposed to loading dozens of megabytes of shared C libraries? If you think that C programs are small and efficient, you just don't know what's going on. C programs combine all the bloat of Perl, PHP, and Python combined with the inefficiencies resulting from using a language that makes it really hard to implement complex data structures and reusable code.

    18. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Indeed. The base system works without PERL (beginning with 5.0-REL).

      I don't view that as a plus. I think a base OS install should come with a full-featured scripting language that gives access to all OS facilities, and as much stuff as possible should be implemented in it.

      If you think about it, it's not a bad system design decission to try to make the base-install leaner.

      The base install would get a lot leaner if it were based on a scripting language and a lot of the utilities were implemented in it--several floppy distributions that have switched from C-based utilities to scripting-based utilities have proven that.

      And for desktop and server installs, Perl is the obvious choice for a scripting language right now. Even if you don't like Perl (and there is a lot there that is not to like), pick some other scripting language, any scripting language. But converting utilities into C code is just completely the wrong direction.

    19. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      FreeBSDs decision to move Perl from the base system to the ports tree was because it was easier to handle that way, both for developers and users. It was not about not supporting it anymore.

      Not including it in the base system is what I mean by "not supporting it": I want some scripting language be available out of the box on any desktop or server, and Perl is the obvious choice.

    20. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      The scripting languages usually require the exact same shared libs in addition to the interpreter itself and the overhead of parsing your scripts into their internal bytecode. You are an idiot!

    21. Re:On Perl and command-line utilities by rainer_d · · Score: 1
      I don't view that as a plus.

      It was reported that PERL often broke make world.
      I didn't have this happen to myself, but smarter people than myself complained, so I guess it had some substance...

      But converting utilities into C code is just completely the wrong direction.

      The effort was very minimal, IIRC. adduser(8) was probably the only bigger one.
      I can install PERL5.6 or PERL5.8 without fearing to ruin the base-OS.
      For me, this is a big ++

      --
      Windows 2000 - from the guys who brought us edlin
    22. Re:On Perl and command-line utilities by eht · · Score: 1

      Wouldn't the obvious choice be sh scripting, since it is available everywhere, and it's not like it's hard to get Perl into FreeBSD, either select a package that requires Perl when you install your system, or select Perl itself, it's on the install CD.

      It's just that if you do a minimal install, it's not there, which if you're talking 100 megs and Perl is another 12 is a good amount you might not want.

      And also for those of us who don't want Perl on our systems there's no extra work of removing it, adding stuff onto a minimal base is much easier than having 400 megs of junk on my system which i then have to remove.

    23. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 0

      > The benefits of scripting over languages such as C are grossly overrated.

      Who are you kidding? In my work experience, scripting languages provide at least a 3 fold improvement in productivity and in ease of maintenance over C. And they are FAR easier to write tests for.

    24. Re:On Perl and command-line utilities by PhilHibbs · · Score: 1
      For smaller tasks, like comparing or adding a few numbers as num-utils mostly does,
      num-utils includes tasks like upper and lower bound, which if used for processing a large number of inputs, would be a good use of perl.
    25. Re:On Perl and command-line utilities by Cyno · · Score: 1

      You must think there are a lot of skilled C/C++ programmers out there. I seriously doubt most people who say they are developers are really skilled at any one language.

      Its not very hard to learn how to write good perl, and perl is optimized very well in the interpreter. It is very difficult, however, to write good C. Most of us just aren't that smart.

    26. Re:On Perl and command-line utilities by mosch · · Score: 1
      All base utilities are implemented in C or sh, but there's no reason they wouldn't include a port which uses perl. In fact there are tons of ports which use perl, and they just pull in perl as an installation requirement.

      Dropping perl from the base distribution was an incredibly good decision as it made it easier to keep perl up to date, while also making it easier for people working in embedded systems to keep perl out of the system. If you don't think the 60 megs which is perl matters, look at the costs incurred when you're using flash storage media, 60 megs can easily become a $50 or $100 per unit difference in cost.

    27. Re:On Perl and command-line utilities by smallpaul · · Score: 2, Insightful

      C requires painstaking attention to detail, but there is a large number of tools to check C programs for common mistakes such as memory allocation errors and pointer bugs.

      First, these programs cannot find all or even most such errors. Second, these programs cannot help you with the fundamental problem that you have written more code and on average the number of bugs is proportional to the amount of code.

      Scripting languages generally do not have an equally powerful toolset to check for runtime problems such as the typing and dependency errors which may occur when (components of) the scripting runtime are upgraded.

      C programs have also been known to break with components of the underlying runtime are upgraded. Type checking tools only catch the most obvious and blatant problems that would have been caught with unit testing anyhow. Subtle problems are as hard to find in either case except that when the script fails it typically gives a very clear traceback whereas the C may merely corrupt memory and then crash at an arbitrary time later. The behaviour of the script is determinstic but the behaviour of the C program could depends on what random crap happened to be in a memory location that you accidentally dereferenced.

      Scripts are fragile.

      I'm sorry, this is just false. Slashdot is widely acknowledged to be written in piss-poor Perl and is no more fragile than sites written in Java and is probably more reliable than those few sites written in C. Yahoo and Amazon are also substantially written in script (PHP and Perl respectively). If scripts are robust enough for them, they are robust enough for me. But then again, some people still claim assembly and FORTRAN are the one try way of writing large-scale software. Every layer will have adherents long past the time when they should have moved on to take advantage of the fruits of Moore's law.

      Truly the last thing operating systems need is more fragility.

      He's adding a few tools for doing numerical computations. This is hardly a core part of the operating system kernel.

      By adhering strictly to a formalized development process which includes unit tests as well as rigorous system tests it is possible to overcome some of this fragility, but then you also lose many of the benefits that scripting is supposed to provide, viz. rapid development and turnaround.

      Let me see if I've got this right. I can spend five days scripting plus five days testing or ten days coding in C and zero days testing. Which code will be more fragile? Or lets try this this way: five days scripting plus five days testing versus ten days coding and five days testing. Seems like I'm still geting "rapid development and turnaround". It is totally, empirically false to say that C-coded programs require less testing than scripts. In general they require more because there is just more code to test.

      I am not going to claim that scirpts are always better than C code (and we've hardly touched on middle grounds like Java, C#, Eiffel etc.). But I strongly dispute the assertion that scripted code is in general more fragile than C code or requires more testing. The secret to reliable software is testing, testing and testing. Programming language is a distant second place but even there, C tends towards the less reliable side of the spectrum. Of course with proper testing you can make rock-solid C code just as you can make rock-solid code in any language.

    28. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Wouldn't the obvious choice be sh scripting, since it is available everywhere,

      That's different kinds of scripting. In Perl, I can do almost anything I can do in C: make system calls, deal with dynamic libraries, manipulate binary data, etc.

      It's just that if you do a minimal install, it's not there, which if you're talking 100 megs and Perl is another 12 is a good amount you might not want.

      There is a lot of stuff in those 100M that I don't want either--people need to make choices. I just think the FreeBSD choice of making the base install consist of C and shell scripts is a bad one and will not serve FreeBSD in the long run.

      If you want a small base install, the best thing you can do is pick a scripting language and rewrite as much stuff in it as possible: init, cron, various command line utilities, etc. Besides generally making the install smaller, that has the other advantage that you can have a system that is easily fixable on-the-fly without having a complete C compiler installation.

      And also for those of us who don't want Perl on our systems there's no extra work of removing it, adding stuff onto a minimal base is much easier than having 400 megs of junk on my system which i then have to remove.

      I don't like C/shell-based base installs precisely because they end up being bloated, messy, and hard to modify; it's just the wrong direction to go IMO.

    29. Re:On Perl and command-line utilities by groomed · · Score: 1

      Second, these programs cannot help you with the fundamental problem that you have written more code and on average the number of bugs is proportional to the amount of code.

      Bugs are not a fixed property of code. Code that was bugfree when it was written may develop bugs over time as a result of subtle changes in requirements or operating environment. The chances of this happening are proportional to the flexibility of the operating environment, i.e. much greater in a scripting environment.

      A larger body of code that is better controlled and understood may lead to fewer overall bugs than a smaller body of code whose behavior is less well controlled and understood.

      Slashdot is widely acknowledged to be written in piss-poor Perl and is no more fragile than sites written in Java and is probably more reliable than those few sites written in C.

      A website is a highly dynamic application which demands a great amount of flexibility. What's more, errors are usually not fatal, both in the sense that they don't lead to data loss, but also in the sense that websites do not generally store important data in the first place (and why is that?). Finally the website runtime environment is tightly controlled and rarely subject to change (it comes as no surprise that Slashdot still runs Apache 1.3.26). Scripting is ideally suited to these kinds of tasks.

      The secret to reliable software is testing, testing and testing.

      The real secret is to minimize the number of things that need testing, which is not something you can do by minimizing lines of code. The relationships, dependencies and exceptions expressed in a single line of Python code may require far more testing than 2 pages of portable C code.

    30. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      The benefits of scripting over languages such as C are grossly overrated.

      No, they aren't. One might say that the benefits of scripting languages over Java, C#, Modula-3, or any number of other languages are grossly overrated. But given C's frail type system and non-existent error checking, it's easier to develop reliable code in even a bad scripting language like Perl than in C.

      C requires painstaking attention to detail, but there is a large number of tools to check C programs for common mistakes such as memory allocation errors and pointer bugs.

      That's like driving with a safety belt on while taking driving lessons, and then taking it off once you get your license. The only way to ensure safety and reliability is to have a consistent type system and consistent error checking built into the language. Perl's error checking is not all that great, but C is much worse.

      Scripting languages generally do not have an equally powerful toolset to check for runtime problems such as the typing and dependency errors which may occur when (components of) the scripting runtime are upgraded.

      Since when does C have any checks for runtime errors, dependency errors, or incompatible library upgrades? Are you perhaps referring to Linux's shared library versioning? That's not built into C or integrated with the language.

      In contrast, many scripting languages have facilities for declaring module versions and dependencies, and they check them.

      God only knows why colleges keep churning out students who insist that mashed potatoes are the most flexible material to build a bookshelf...

      Probably because the professors that teach those students know something you don't.

      Both C and Perl are "mashed potatoes" when it comes to building reliable systems.

    31. Re:On Perl and command-line utilities by BadgerFish · · Score: 1
      To be useful, numutils should go beyond what is trivially available in perl and awk. That might involve using C, or just a sufficiently complex script. I don't think numutils is sufficiently complex enough as it is now to be distributed. The issue is whether it fills a particular void, and how well it meets that need. The random utility is useless as written. To generate a random number why not just read the perldoc on srand?

      Suso Banderas should follow up on this goal to implement the ability to simultaneously operate on columns of data.

      A month ago, I wrote an awk script which calculates mean, standard deviation, variance, min, max, sum, and count (see below) for a given stream of numbers.

      #!/bin/nawk
      $1 ~ /[0-9]+/ { x = $1; N = N+1;
      if (N>1) { if (min>x) {min=x}; if (x>max) {max=x}; sumx = x + sumx; oldavgx = avgx;
      avgx = avgx + (x-avgx)/N; varx = (N-2)/(N-1)*varx + N(avgx - oldavgx)^2; }
      else { min = x; max = x; sumx = x; avgx = x; varx = 0; }
      } END { print avgx,sqrt(varx),varx,min,max,sumx,N }

      This took me very little time to write, and it covers half of numutils scope of effort. The numutils package should shift focus away from calculating means and bounds.

      This is my suggestion: For each utility, determine what numutils does which is a pain to accomplish in awk or perl. Focus on those areas.

      Some of these scripts are excellent examples of what can be accomplished in Perl, though. And better commented than most.

      Personally, i'm interested in finding something that would compute the median and percentiles for a given stream of input data. I was excited to see "numutils" but was dismayed as not finding the variance. I would like to see an open source version of something like the NAG utilities such as nag_summary_stats_1var or nag_5pt_summary_stats.

      I guess I'm just waiting for the the Commons-Math Jakarta Mathematics Library project to get released.

    32. Re:On Perl and command-line utilities by Arandir · · Score: 2, Insightful

      I think Perl is a pretty awful language, but not including it in FreeBSD strikes me as a stupid decision.

      It is included in FreeBSD, and it is installed by default, it's just not a part of the base system. The same situation occurs with XFree86. The base system is the operating system and environment. Stuff that isn't the OS, or isn't expected to be included with the OS, shouldn't be there. Bash isn't there. Emacs isn't there. Why should Perl be there? If you've ever used Slackware, you could consider the base system to be the "A" distribution, and Slackware doesn't have Perl in the "A" distribution. So far I've seen no one argue that it should be there.

      What is BSD doing instead? Implementing all utilities in C? Gee, that's bright: let's create lots of unnecessary work for ourselves

      Actually, it's making things a heck of a lot easier for the user. In the olden days (a few months ago) you used the Perl version that was in the base system. It was very difficult to use a new version. You were stuck with the default. There were several pieces of software that I was never able to use simply because I was unable to update my Perl. But the situation now is that I can use any version of Perl I want. Upgrading is simple and hassle free.

      Rewriting a *few* Perl scripts in C and bourne was a good thing. These are lowest-common-denominator languages, and should be used whenever possible for low level system software (which is not to say that they are necessarily appropriate for higher level software).

      In short, you will see absolutely zero drawbacks in FreeBSD if you are a Perl developers. Zero. But you will see several advantages to it not being in the base system.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    33. Re:On Perl and command-line utilities by groomed · · Score: 1

      The only way to ensure safety and reliability is to have a consistent type system and consistent error checking built into the language. Perl's error checking is not all that great, but C is much worse.

      Safety is only marginally served by stuffing ever more implicit safety measures into your language. It's largely a matter of keeping your eyes on the road.

      From a pragmatic perspective there is no difference between "Safety exception! Program shut down!" or "Type error! No such method!" and the good old "Core dump".

      Probably because the professors that teach those students know something you don't.

      Ignorance is bliss.

      Both C and Perl are "mashed potatoes" when it comes to building reliable systems.

      When you are beholden to some measure of reliability that most people will never need or even want, maybe.

    34. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Code that was bugfree when it was written may develop bugs over time as a result of subtle changes in requirements or operating environment. The chances of this happening are proportional to the flexibility of the operating environment, i.e. much greater in a scripting environment.

      Ah, yes, we can summarize your argument as: "if you just make programming hard enough, people won't write anything worth testing". That may be true, but it's not the way to make software reliable.

      The real secret is to minimize the number of things that need testing, which is not something you can do by minimizing lines of code. The relationships, dependencies and exceptions expressed in a single line of Python code may require far more testing than 2 pages of portable C code.

      That argument would be admissible if you compared Python to a language with a sound type system and with fault isolation. But C is not such a language: in C, there are potentially relationships between everything anywhere in the code because of pointer manipulation and lack of safety. And those relationships require extensive testing in C, far more than in Python.

      Don't get me wrong: I don't hate C as much as it may sound. C is fine for many of the purposes it was originally developed for. But holding it up as an example of something that is better suited to developing reliable software than Python or most other scripting languages is just a joke. The absence of buffer overflows, stale pointers, and index errors in Perl and Python alone dwarfs any problems Perl may have relative to C. Perl, Python, and other scripting languages have plenty of problems, but they are still enormously better than C in terms of reliability.

    35. Re:On Perl and command-line utilities by Arandir · · Score: 1

      I don't view that as a plus. I think a base OS install should come with a full-featured scripting language that gives access to all OS facilities, and as much stuff as possible should be implemented in it.

      So why are you bitching at FreeBSD? Why aren't you bitching at SuSE, Redhat, Mandrake, Gentoo, Slackware and Debian? Some of those system will give you Perl and sometimes Python as part of the minimal install, but none of them implements as much stuff as possible in either of those languages.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    36. Re:On Perl and command-line utilities by Bryan+Ischo · · Score: 1

      Well, for another irrelevent viewpoint ...

      I think I am smart enough to write good C/C++, but I am nowhere near smart enough to write good Perl. In fact, I have never even *seen* good Perl and I'm not sure I'd recognize it if I did. To be honest, I don't think that such a thing as "good Perl" really exists.

      As you can tell, I am quite biased against Perl. I have had to write Perl scripts on a handful of occasions and each time am struck by how hard it is to write anything remotely readable or maintainable in Perl. Normally I would attribute this to my lack of expertise in the language, but because I have also had to read and try to understand a decent amount of Perl written by what I assume are experts (people who have had developed significant Perl applications and had them included in Linux distributions), and found that to be equally unreadable, I can only assume that there is a deficiency in the language itself at work, rather than the collective incompetence of anyone who has ever written anything in Perl.

      Perl reminds me a bit of Java in that running it entails a huge host of difficulties, annoyances, and problems (missing/wrong VM/interpreter, missing/wrong modules/jars, poor memory/CPU/IO performace, etc), but without the benefit of Java's clean and well-designed object-oriented syntax.

      In case you haven't figured it out yet, I really hate Perl.

    37. Re:On Perl and command-line utilities by Arandir · · Score: 1

      Funnily enough I frequently here this from scripting language "programmers" , I hardly ever hear it from programmers who can do both scripting AND low level C/C++ coding.

      I have to program system software in Bourne, Perl, C and C++. Each one has its place. I simply cannot stand people who think one language can do everything. It's like saying you can build a house with only mortor but no bricks.

      When all you know how to use is a hammer, then everything looks like a nail. Likewise when all you know is Perl, everything looks like it should be a script.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    38. Re:On Perl and command-line utilities by eht · · Score: 1

      Then why not Python or TCL or Ruby or CobolScript.

      sh is pretty much guaranteed to be on any UNIX or UNIX like machine you will ever encounter.

      Perl might be on the most of them, but that's no reason to have it installed by default as opposed to another scripting language, where you already are going to need a shell so therefore sh is pretty much going to be there.

    39. Re:On Perl and command-line utilities by Cyno · · Score: 1

      I guess you'd hate programming in ocaml, then. :)

      That will probably be the next programming language I attempt to learn.

      I love Perl.

      As long as I'm using Perl I am limited by the capabilities of the hardware I am working with. If I use any other language I am limited by my lack of knowledge about how to properly make use of that hardware. So maybe its just me.

    40. Re:On Perl and command-line utilities by groomed · · Score: 1

      in C, there are potentially relationships between everything anywhere in the code because of pointer manipulation and lack of safety.

      Uh. OK. But since at the hardware level this is generally true no matter what language is being used I think this argument is rather specious.

      The absence of buffer overflows, stale pointers, and index errors in Perl and Python alone dwarfs any problems Perl may have relative to C.

      OutOfMemoryExceptions, ArrayIndexOutOfBoundsExceptions and NoSuchMethodExceptions break applications just like segmentation faults do. You might argue that the first type of breakage is "better" on the general principle that it yields more predictable behavior, but for the user whose application stops working that's a largely academic distinction.

      Perl, Python, and other scripting languages have plenty of problems, but they are still enormously better than C in terms of reliability.

      Safer, yes. More reliable, sometimes.

    41. Re:On Perl and command-line utilities by Pinball+Wizard · · Score: 1
      I think a base OS install should come with a full-featured scripting language that gives access to all OS facilities, and as much stuff as possible should be implemented in it.

      It does. It's called the shell. But the shell doesn't need to do CGI, database programming or processing XML. When you want a language that can do these things(and many more) as well as do everything a shell language can do, then use Perl.

      --

      No, Thursday's out. How about never - is never good for you?

    42. Re:On Perl and command-line utilities by Bryan+Ischo · · Score: 1

      I guess I'm of a divided mind on this. On the one hand I believe in the freedom of people to use whatever programming tools they like best and feel most productive with. And of course if a person is going to go through the trouble of actually doing *work*, especially if it's software to be released for everyone's benefit under a free software license, then I would never be so arrogant as to suggest that they should observe anyone but their own (and especially not my) opinions about the tools that they should use.

      But, I also feel that the effectiveness of a software package and its general value can be diminished if the "wrong" tools are used. I personally have had too many bad experiences trying to get Perl programs to run, and have formed a negative opinion of not only the syntax and structure of Perl programs, but on their fragility and usefuless at runtime.

      So even though I don't want to discourage anyone from using Perl ... I really want to discourage everyone in the strongest possible terms from using Perl :)

      I'm curious about your statement about Perl allowing you to make maximum use of the hardware when other languages do not. Surely you can do everything in C that you can do in Perl? Also Java (if you allow calls out to C routines, which presumably you would have to allow in Perl as well to really have full access to the hardware)?

      I would suggest that every programmer is limited in their ability to utilize the hardware, by their knowledge of the programming language in question. This doesn't seem to be an aspect of any particular programming language, but to all languages more or less equally. So I guess I don't understand how your statement differentiates Perl from C or any other language, except as they relate to your specific knowledge.

      In which case I'd have to conclude that it really is just you :)

    43. Re:On Perl and command-line utilities by Cyno · · Score: 1

      Surely you can do everything in C that you can do in Perl?

      That's it right there. Of course you can do everything in C that I can do in Perl. But I cannot. Because I'm lazy.

      I don't program for money, I program to get something done, usually to process data. So I could really care less about how the syntax of the language looks and more about how long it takes me to hash out an algorithm.

      I'm sure one day I'll be able to write C like I do Perl.

    44. Re:On Perl and command-line utilities by littleRedFriend · · Score: 1
      Indeed I do appreciate people being enthousiastic about writing their software, but that's why we have awk. It's the most wonderful scripting langauge ever invented. A couple of examples.

      # average: A program for calculating the average of numbers.
      | awk '{x+=$0}END{print x/NR}'
      # bound: Finds the boundary numbers (min and max) of input
      | awk '{if($0<min){min=$0}if($0>max){max=$0}}END{prin t min,max}'
      # interval: Shows the numeric intervals between each number in a sequence.
      | awk '{if (NR>1){print p-$0;p=$0}}'
      # numsum: Add up all the numbers
      | awk '{x+=$0}END{print x}'
      --
      IANAL, but imagine a beowulf cluster of in Soviet Russia all your belong are base to us welcoming the new SCO overlords.
    45. Re:On Perl and command-line utilities by rottcodd · · Score: 1
      I think you mean
      avgx = avgx + (x-avgx)/N; varx = (N-2)/(N-1)*varx + N*(avgx - oldavgx)^2; }
      instead of
      avgx = avgx + (x-avgx)/N; varx = (N-2)/(N-1)*varx + N(avgx - oldavgx)^2; }
    46. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Uh. OK. But since at the hardware level this is generally true no matter what language is being used I think this argument is rather specious.

      No, the argument is not "specious" at all. When I program in a safe high-level language, then the implementor of the language and runtime has worried about pointer bugs in the implementation of that language once and I never have to think about it. With C, I have to worry about pointer bugs with every single program I write.

      OutOfMemoryExceptions, ArrayIndexOutOfBoundsExceptions and NoSuchMethodExceptions break applications just like segmentation faults do. You might argue that the first type of breakage is "better" on the general principle that it yields more predictable behavior, but for the user whose application stops working that's a largely academic distinction.

      The distinction is not at all academic. First of all, pointer errors and index errors often do not cause applications to crash, and that is a real problem because those applications may quietly return incorrect results; this is actually quite frequent. Second, in a language with exceptions and fault isolation (like many scripting languages and most languages other than C), when an exception occurs, a well-designed program can safely recover from it even if the detailed cause of the exception was not anticipated by the programmer. In contrast, when you get a segmentation fault in C, all bets are off: there is no safe way to handle a segmentation fault or other C runtime error because the entire program state is undefined.

      The lack of reliable error detection and the lack of fault isolation in C really make it exceptionally bad among programming languages as a platform for writing reliable code. There are no few other modern languages that are as bad as C, and few that come close.

    47. Re:On Perl and command-line utilities by juhaz · · Score: 1

      RH has used Anaconda (the python installer) at least since RH8, nothing new in Severn on that front.

      Also RHN stuff and lots of rh gui config tools have been python since at least mid 7.x days (can't check further back than 7.2 right now...)

    48. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      From a pragmatic perspective there is no difference between "Safety exception! Program shut down!" or "Type error! No such method!" and the good old "Core dump".

      When I get an exception in, say, Java, the program is still in a state that is completely well-defined. That means that well-designed programs can recover safely even from unexpected errors.

      In contrast, when a C program gets a segmentation fault or other pointer error, the entire program state is undefined; there is nothing the program can do safely to recover from the error.

      And even worse is the fact that C fails to guarantee that errors resulting in undefined program states are even detected. Concretely, you can have a pointer error, it messes up some data structure, and nothing may ever signal that error--it will just corrupt your bank account or do something else bad.

      Basically, your attitude is both common among C programmers and completely uninformed. C error handling is not like error handling in other high-level languages: C guarantees much less, and the consequences of that are dire for the quality and security of C programs.

      When you are beholden to some measure of reliability that most people will never need or even want, maybe.

      We aren't talking about some esoteric notion of reliability. We are talking about the fact that it takes years to get a new major release of the Linux kernel, Gnome, or KDE out, and they still keep crashing. We are talking about almost daily security holes in Windows and Linux network servers.

      It's largely a matter of keeping your eyes on the road.

      Well, the quality and timeliness of Windows, Linux, Gnome, KDE, and other large C/C++ projects shows that most C programmers apparently aren't up to the challenge and are falling asleep at the wheel.

    49. Re:On Perl and command-line utilities by juhaz · · Score: 1

      What do you think Perl, PHP and Python interpreters are written in?

      C.

      You will always end up loading those dozens of megabytes of shared libraries, only if you use scripts you end up loading dozens of megabytes of interpreter code as well. Brilliant logic you got there, "(bloat + bloat) bloat"?

    50. Re:On Perl and command-line utilities by Derek+S · · Score: 1

      Back when I supported FreeBSD regularly, I remember wishing that Perl were set up as a port/package. Easier to maintain and upgrade separately that way. In general, I was not pleased that the core OS was a monolithic entity that was inconvenient to patch in the field.

      I do recall that some people were working on a binary update system for the core distribution, but I don't know whether that went anywhere.

    51. Re:On Perl and command-line utilities by groomed · · Score: 1

      When I get an exception in, say, Java, the program is still in a state that is completely well-defined. That means that well-designed programs can recover safely even from unexpected errors.

      The notion that you can recover from errors that you didn't anticipate is flawed. When your application cannot complete the user's request because of some unexpected error the game is already over.

      Logging the error and moving on is not "recovering". It's limping along.

      When your application encounters an unexpected error then your application needs to be fixed. This is true regardless of the programming language!

      Concretely, you can have a pointer error, it messes up some data structure, and nothing may ever signal that error--it will just corrupt your bank account or do something else bad.

      That's just FUD. The memory could develop bit errors. The DMA transfer might not complete cleanly. The CPU might be hit by a high-enery particle.

      I don't dispute that a pointer error cannot have catastrophic consequences. But contrary to your claim, programs generally do crash when a datastructure is trampled. This tends to weeds out those kinds of bugs very fast. But it is always possible to use checksums to verify the integrity of your datastructures. And powerful tools exist to catch indexing errors and pointer errors.

      You are conjuring an image of evil hidden pointer bugs, lurking in the shadows for an opportunity to destroy your bankaccount. That's just hysterical.

      C error handling is not like error handling in other high-level languages: C guarantees much less, and the consequences of that are dire for the quality and security of C programs.

      The reality is that the most disastrous errors generally do not occur at the hardware, OS or language levels, but at the application level.

      We are talking about the fact that it takes years to get a new major release of the Linux kernel, Gnome, or KDE out, and they still keep crashing. We are talking about almost daily security holes in Windows and Linux network servers.

      More hyperbole. Software reliability has increased by leaps and bounds over the past two decades, even as complexity has ballooned.

      The most exploited security holes aren't buffer overflows or pointer errors; they're in scripting implementations (VB) and poorly written website apps (Perl/PHP/ASP/...).

    52. Re:On Perl and command-line utilities by groomed · · Score: 1

      In contrast, when you get a segmentation fault in C, all bets are off: there is no safe way to handle a segmentation fault or other C runtime error because the entire program state is undefined.

      There is no safe way to handle a segmentation fault because your program should not throw segmentation faults in the first place. There is nothing a Java program can do when it catches an OutOfMemoryException either.

      In any case, C programmers generally achieve fault isolation by separating their program into multiple processes. I think that works a whole lot better than:

      while(godWilling) {
      try {
      prayThisWorks();
      } catch(Error e) {
      System.out.println("Something bad happened, sorry");
      }
      }

    53. Re:On Perl and command-line utilities by bugg · · Score: 1

      Rubbish.

      The fact is your idea of a "base" install is a little off. The operating system is broken into just a few groups, such as manpages, binaries, documents, sources, and a couple others. You can choose the distribution sets that make the most sense to you (me, if I'm installing from a CD I'll typically take minimal+docs+sources) and then you're left with a nice, clean, bare system.

      Perl is icky to have for a few reasons. The first is for most tasks the cost of the interpreter generally offsets any gains you might receive for command-line utilities that are poorly written in C. The second is size: perl is 12 megabytes, and I sincerely doubt you could reduse the entire distribution size by adding perl and rewriting the C utilities. I mean, it's a given you have a C compiler and standard libraries installed, so there's no marginal overhead for a C userland.

      From the point of view of people working on FreeBSD, this reduces the need to have perl imported *and* maintain a port. If the perl folks seriously screw up somehow, it does not mean FreeBSD disintergrates into nothing. If you want to have perl, build the port. Install the package. Do so before you quit sysinstall, if you must.

      Really, looking over the "100 or so megs" of the minimal install, there's not a lot of stuff I find that most people wouldn't want. This is bare, and I like it that way. Perl was just being used in fewer and fewer places...

      --
      -bugg
    54. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      The notion that you can recover from errors that you didn't anticipate is flawed. When your application cannot complete the user's request because of some unexpected error the game is already over.

      Absolutely false. Let's say I write an on-line banking application that loads a third-party communications module. In a reasonable programming language, if I invoke the third-party communications module and it crashes with some unexpected error, I can just tell the user that there is a problem with that module and the user can go on using the rest of the application. In C, if there is an error in a dynamically loaded module, anything could be corrupted.

      The reality is that the most disastrous errors generally do not occur at the hardware, OS or language levels, but at the application level.

      For applications written in C/C++, that is absolutely true.

    55. Re:On Perl and command-line utilities by Grr · · Score: 1

      Well it's not as much being smart as being dedicated. Programming something like numutils is not that hard, even in C. Its strong point is the idea of a bunch of tools that are easy to use. It would be an even better idea if it was made using the best tool for this particular job. If you want to make tools that are included in distributions you should use the best tool, or someone else who knows how to use those tools will.


      Programs that are elligable to be included in destributions have to be very good and I disagree with you that it's much harder to write good programs in C than it is in perl. The hard part is not the syntax of the language used or the speed, but the interoperatability, compatibility, longetivity and some other stuff that ends in -ity.

    56. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      There is no safe way to handle a segmentation fault because your program should not throw segmentation faults in the first place. There is nothing a Java program can do when it catches an OutOfMemoryException either.

      Of course it can; even C is in a well-defined state when memory allocation fails.

      The problem in C is that for most other runtime errors, the entire program is in an undefined state after they occur, and the runtime errors aren't even detected reliably. In contrast, most other programming languages leave programs in well-defined states after the occurrence of errors detected by the runtime.

      In any case, C programmers generally achieve fault isolation by separating their program into multiple processes.

      Yes, traditionally, that was true. Today, they do so less and less: more and more programs use plug-ins, components, and COM-like constructions. Look at Mozilla, the Gimp, the Linux kernel, or OpenOffice.

      Furthermore, lack of fault isolation is only part of the problem with C, another very serious problem is the lack of reliable detection of common runtime errors like pointer errors, memory management errors, type errors, and index errors. And C never has had good answers to that problem--you just get the wrong results.

      C really has some serious deficiencies. Those didn't matter when UNIX started--programs were small, incorrect results mattered less, there were no dynamically loadable software components, runtime error checking was expensive, and lots of separate little command line utilities provided some fault isolation. The world has changed radically, and it's time Linux changes with it. Even Microsoft has seen the light (although I'm unconvinced that a JIT/CLR is the right answer; a batch-C# compiler would be a better choice IMO).

    57. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      sh is pretty much guaranteed to be on any UNIX or UNIX like machine you will ever encounter.

      Yes, but sh doesn't get the job done--it's not a scripting language in the sense of Perl or Python or Tcl.

      Then why not Python or TCL or Ruby or CobolScript.

      Sure, why not. I really don't care. I actually don't like Perl. Pick one scripting language and use it consistently. But writing the entire operating system base in shell and C because FreeBSD can't decide on a scripting language to include is just stupid. This isn't V6 UNIX anymore and people don't wear bell-bottoms. Move into the 21st century, guys.

    58. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Perl is icky to have for a few reasons.

      Yeah, Perl is icky, but everybody else manages to ship it, so why not FreeBSD?

      In any case, Python, Ruby, whatever, would be fine, too. But /bin/sh with ANSI C is not fine.

      This is bare, and I like it that way.

      The notion that 100 megs of ANSI C code is "bare" strikes me as absurd. Just because you don't see the incredible mess that's under the covers because you don't install sources doesn't mean the mess isn't there.

      Perl was just being used in fewer and fewer places...

      Yes, and that's the problem. Operating systems should use more VHLLs, not less. Whether that VHLL Perl or something else, I really don't care.

    59. Re:On Perl and command-line utilities by groomed · · Score: 1

      Let's say I write an on-line banking application that loads a third-party communications module. In a reasonable programming language, if I invoke the third-party communications module and it crashes with some unexpected error, I can just tell the user that there is a problem with that module and the user can go on using the rest of the application.

      You cannot be serious. The module might have acquired critical locks, hardware may be left in an inconsistent state, stray threads may be left running, external programs might be left dangling... Anything could be corrupted.

      In C, if there is an error in a dynamically loaded module, anything could be corrupted.

      Well, yes. Which is why you should make sure that you the modules you use work as intended when you build a system to perform a task. That goes for any language.

      At least in C the dynamically loaded modules don't explode with NoSuchMethodExceptions and InvocationTargetExceptions.

    60. Re:On Perl and command-line utilities by groomed · · Score: 1

      In contrast, most other programming languages leave programs in well-defined states after the occurrence of errors detected by the runtime.

      Which is largely irrelevant in determining the state of the application as a whole. Were all transactions properly closed? Were all privileges relinquished? Generally when you encounter an unexpected error the only sensible thing to do is to terminate the application. Regardless of language.

      more and more programs use plug-ins, components, and COM-like constructions.

      I see your point, but the language level is the wrong place to solve these problems. We're much better off addressing them at the kernel level through orthogonal persistance and a more powerful process abstraction. Some hardware assistance wouldn't hurt either. Software is slow enough as it is.

      And C never has had good answers to that problem--you just get the wrong results.

      Broken code yields broken results. Regardless of language. When a particular programming practice makes it hard to rule out errors, the answer is not to design a fault-tolerant language; the answer is to avoid the practice. Ironically that can be construed to support your position as well as mine ;)

    61. Re:On Perl and command-line utilities by tigga · · Score: 1
      But converting utilities into C code is just completely the wrong direction.

      You got it backwards. If you are talking about BSD utilities - almost everything was written long before Perl ever existed. Only some recent additions like sockstat were written in Perl. And there already exists scripting language - shell.

    62. Re:On Perl and command-line utilities by tigga · · Score: 1
      If you want a small base install, the best thing you can do is pick a scripting language and rewrite as much stuff in it as possible: init, cron, various command line utilities, etc. Besides generally making the install smaller, that has the other advantage that you can have a system that is easily fixable on-the-fly without having a complete C compiler installation.

      Whoa! The full Perl distribution is :
      /usr/local/lib> du -s perl5
      47143 perl5

      It's 47 MB - is it "small"?

      It's already bloatware. And about your suggestion to have init rewritten in scripting language - you are not an administrator, are you? ;))
      Could you tell me what is the point to fix on-the-fly utilities which are not needed to be fixed? Only thing to be changed is configuration data. It is Unix and BSD way. Maybe in Linux it is other way ;))

      One of problems FreeBSD encountered was complain from Perl developers that included with FreeBSD Perl was "not complete". It did not include CGI stuff and other pieces not really needed for just scripting language. One more thing - it was not easy to separate needed and unneeded pieces. So removing it made life easier for maintainers. And you still can have it installed with FreeBSD.

    63. Re:On Perl and command-line utilities by bugg · · Score: 1
      It's 100 megs of compiled code, not C. Also, the overhead of an interpreted language is inappropriate for the kind of command that's expected to be ran often and not take up too much time (like most of the applications found in various toolchains on unix)

      It's also not true that "everybody else manages to ship it." NetBSD doesn't, off the top of my head. And, frankly, when the FreeBSD developers decide to make serious decisions simply because "everybody else" is doing it, that's a sign that the OS will start going quickly downhill.

      C is used extensively throughout the base operating system, in nearly all applications it's faster, it's proven over the course of decades, and it's very widely understood. Why switch to perl? If someone is looking to develop something using perl, they're free to do so. Build the port and get on with your life.

      --
      -bugg
    64. Re:On Perl and command-line utilities by 73939133 · · Score: 2, Insightful

      It's 100 megs of compiled code, not C.

      That's obviously what I'm referring to: it's a 100M of binary code corresponding probably to millions of lines of messy C source code. And the notion that a 100M binary install is "lean" is itself absurd.

      Also, the overhead of an interpreted language is inappropriate for the kind of command that's expected to be ran often and not take up too much time (like most of the applications found in various toolchains on unix)

      That's silly: most of the stuff in a base OS install either is not performance critical at all, or it is I/O bound. You could rewrite init, cron, ps, sendmail, ftpd, apcid, lpd, rpc.mountd, xinit, and almost all other of the programs in a base install in an interpreted language, and system performance would probably improve (because of much better VM sharing) and install size would decrease.

      C is used extensively throughout the base operating system, in nearly all applications it's faster, it's proven over the course of decades, and it's very widely understood. Why switch to perl?

      The notion that "C [...] is faster" is ridiculous; most C programs are probably a lot slower than they would be if an equivalent amount of time had been spent writing them in a decent high-level language because C makes it so much work to build complex data structures or try different implementations and because C debugging and testing takes so much time compared to high-level languages. The BSD and Linux kernels, as well as many of those "efficient" C programs you area thinking of are full of linear search over potentially large data structures because it's so much more work to do anything better in C. And mostly what has been proven about C is that just about any significant C program has serious pointer and memory management bugs.

      C has shown to be particularly unsuitable to building component based software: software built from a framework with dynamically loadable components really needs to be robust against buggy components. What are examples of component based software? The Linux kernel, MS Office, the Gimp, OpenOffice, Mozilla, and lots more. That's why Microsoft is betting on C#--the only way to build large, reliable, component-based systems is to use a language with fault isolation, reliable error detection, and reflection.

      My general point is: much more stuff should be in interpreted languages in UNIX/Linux/BSD systems, in a decent, high-level interpreted language. An all-C/shell base install is just the wrong direction. Whether that language is Perl or something else, I don't really care. Perl is probably technically the worst language you could pick, but it is also the most commonly used one.

      And, in fact, large parts of systems like the Gnome desktop are written in interpreted high-level languages, so it's not even a question of whether it's happening. It's only some misguided notion of "minimalism" that causes the "base installs" to buck the trend. Of course, again, the notion that there is anything "lean" about a 100M binary install anyway is just laughable.

    65. Re:On Perl and command-line utilities by 73939133 · · Score: 1
      Which is largely irrelevant in determining the state of the application as a whole. Were all transactions properly closed? Were all privileges relinquished?

      In a properly written program in a well-designed high-level language, yes, transactions will be properly closed and privileges will be relinquished. Consider:
      ... acquire privilege ...
      try {
      ... invoke potentially buggy plug-in ...
      } finally {
      ... relinquish privilege ...
      }
      ... after ...
      When the code reaches "after", I can know with certainty that the privilege has been relinquished, no matter what happened in the plug-in.

      And the whole point of transactions is that if you don't complete them, the world won't change, so there is nothing to "close"; the resources associated with the transaction will be freed through the usual cleanup actions in a language like C# or Java.

      Generally when you encounter an unexpected error the only sensible thing to do is to terminate the application. Regardless of language.

      For C, that is true, for other languages, it is just false.

      We're much better off addressing them at the kernel level through orthogonal persistance and a more powerful process abstraction. Some hardware assistance wouldn't hurt either.

      People have tried for decades to address them at the kernel level and at the hardware level and it hasn't worked out: trying to do fine-grained fault isolation at the OS or hardware level is far, far too inefficient. Fault isolation at the language level yields much more efficient software (there are a bunch of papers you can dig up on the subject).

      Note also that just because a language provides fault isolation doesn't mean that you can't disable it selectively--in well-tested code. For example, in something like C# or Modula-3, you might turn off index checking in the inner loop of a BLAS implementation. Then, you can focus your testing on only those bits of unsafe code. Furthermore, software that loads components can determine whether the components it tries to load are fault-isolated or not and make decisions accordingly.

      Software is slow enough as it is.

      Software is slow because it is written in unsafe languages: unsafe languages require clumsy and inefficient fault isolation mechanisms (processes, IPC), and they greatly interfere with the ability of programmers to optimize and design for performance.

      When a particular programming practice makes it hard to rule out errors, the answer is not to design a fault-tolerant language; the answer is to avoid the practice.

      There are no fault-tolerant languages. But there is fault-tolerant programming and languages that support fault-tolerant programming. C does not support fault tolerant programming, and that is exactly the problem with C.
    66. Re:On Perl and command-line utilities by groomed · · Score: 1

      When the code reaches "after", I can know with certainty that the privilege has been relinquished, no matter what happened in the plug-in.

      That's a spurious example. If a resource is acquired inside the plugin and never relinquished because of an unexpected error, the state of the application is undefined. Since it is impossible to know in advance what resources a plugin might acquire, the only safe assumption to make is that the application is in an undefined state whenever an unexpected error occurs.

      Note that you cannot dismiss this scenario by saying that the plugin writer should take care to always relinquish resources, since you've been arguing that safe languages protect against exactly those kind of lapses.

      Again, the kind of faults that safe languages help to prevent do nothing to correct the much more insidious and catastrophic failures at the application level.

      Software is slow because it is written in unsafe languages: unsafe languages require clumsy and inefficient fault isolation mechanisms (processes, IPC), and they greatly interfere with the ability of programmers to optimize and design for performance.

      I have no experience with applications on the scale for which that is true. But I know that OpenOffice is a slow bug-riddled pig.

    67. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      That's a spurious example. If a resource is acquired inside the plugin and never relinquished because of an unexpected error, the state of the application is undefined.

      If the plugin acquires a resource and doesn't release it, at worst, that resource would be unavailable to the rest of the application; that doesn't make the state of the application "undefined".

      But actually, even that doesn't happen, because resources are accessed through objects with finalizers and will get cleaned up at the latest when the garbage collector runs again.

      Note, incidentally, that "undefined state" doesn't refer to some lack of knowledge the programmer may have about what happened in a module, we are talking about what the language spec guarantees. If a Java module crashes somewhere internally with an array index error, as far as the language is concerned, the program is still in a well-defined state; whether the programmer has enough knowledge to be able to recover from that is a matter of how the program was designed. If a C program makes an index error anywhere (detected or undetected), all bets are off; there is no safe way to recover from that no matter how carefully the program was designed. And, as it turns out, in languages like Java, it is fairly straightforward to design programs that can recover reliably even from completely unexpected errors, but most C programmers don't understand that because in C it is intrinsically impossible.

      But I know that OpenOffice is a slow bug-riddled pig.

      My point exactly. And what is OpenOffice written in? C and C++. If it were written in a more suitable language, it would be both faster and a lot simpler.

      In fact, a large part of OpenOffice is just implementing in user code what something like a Java runtime implements much more efficiently: COM-like objects.

      (Incidentally, while I give Java as an example, I don't recommend using Java: it's proprietary and Sun's implementation of it isn't very good. Mono is somewhat better, as are Eiffel, Modula-3, gcj, and many other languages.)

    68. Re:On Perl and command-line utilities by eht · · Score: 1

      Then it's extremely simple, at the end of the install check the little box saying you want Perl or Python or whatever, boom done.

      Or if you script your installs you can have it done automagically.

      Actually I wish they would move OpenSSH out of the base install too, because the way it is right now is annoying to upgrade, oh not too hard if you know what you're doing.

      That is one of the main reasons why it's moved out of the base install, try upgrading telnet in Windows to a third party's, your usual end result is that you will have two telnet servers on your machine, not running both but two copies of it sitting around.

    69. Re:On Perl and command-line utilities by groomed · · Score: 1

      If the plugin acquires a resource and doesn't release it, at worst, that resource would be unavailable to the rest of the application; that doesn't make the state of the application "undefined".

      Since it is impossible to know what may or may not have been relinquished and what conditions may or may not have been met, at the application (or perhaps system is a better word) level, the state of the system as a whole, that is, as a situated entity with a well-defined purpose, is undefined.

      The important issue is not being able to recover from unexpected errors, but to prevent them from happening in the first place. The way to do that is to integrate as tightly as feasible and to shun excessive modularity. There is not much use in being able to recover from index errors if the system as a whole is no longer capable of displaying any results (e.g. because the video hardware was left in a partially initialized state). More safety is always desirable, but only in so far as it allows the application (system) to more gracefully return to a known state (i.e. reboot). The Java model does offer some advantages over the C model (or lack of model) in that respect, but just not that many.

      In fact, a large part of OpenOffice is just implementing in user code what something like a Java runtime implements much more efficiently: COM-like objects.

      Exactly. It's not the language or the runtime per se which are responsible for horrible software. It's a development philosophy that puts nebulous notions of safety (as opposed to reliability), flexibility and extensibility ahead of the primary system task. But some languages accomodate this philosophy better than others.

    70. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      Since it is impossible to know what may or may not have been relinquished and what conditions may or may not have been met, at the application (or perhaps system is a better word) level, the state of the system as a whole, that is, as a situated entity with a well-defined purpose, is undefined.

      Look, just because you are using "undefined" in another sense doesn't change the facts, and the facts are that at the language and runtime level, languages like Java make guarantees that C/C++ simply doesn't make.

      If you don't know how to take advantage of those guarantees, so that for you undefined-at-the-language-level is the same as undefined-at-the-application-level, that's your problem. I do, however, know how to take advantage of those guarantees, as do many other programmers.

      Exactly. It's not the language or the runtime per se which are responsible for horrible software.

      The use of C/C++ is, of course, responsible for the bloat and flakiness in the case of OpenOffice. It is simply impossible to implement Java-like object models well in C/C++: it doesn't matter how much work you do, it doesn't matter how smart you are, C/C++ just doesn't support it. Software engineering cannot compensate for error checking that simply does not exist in the C/C++ compiler or runtime.

      A good language and runtime doesn't guarantee reliable software, but an unsuitable language and runtime pretty much guarantees that you will have to spend enormous amounts of time testing and still not end up with something that you can really trust. And that is exactly what we are seeing with large C/C++-based software systems.

    71. Re:On Perl and command-line utilities by Anonymous Coward · · Score: 1, Interesting
      Of course, again, the notion that there is anything "lean" about a 100M binary install anyway is just laughable.

      I just ran ldd on my perl binary and then wc on the perl and the libraries, try it and then we'll talk about laughter.

      I think the best thing for you to do is stop moaning and write an entire OS with Perl compiled directly into the kernel (for speed*), because scripting languages are so great.

      * most of the stuff in a base OS install either is not performance critical at all

      HAHAHAHAHAHAHAHAHAHAHAHAHAHA!

      Thanks

    72. Re:On Perl and command-line utilities by groomed · · Score: 1

      If you don't know how to take advantage of those guarantees, so that for you undefined-at-the-language-level is the same as undefined-at-the-application-level, that's your problem. I do, however, know how to take advantage of those guarantees, as do many other programmers.

      I have had enough of your continued insinuations that I should somehow be unable to divine the true meaning of your words just because I don't agree with them.

      I might as well note at this point that the way you keep obsessing over minor implementation details such as pointer and index errors just goes to show what a lousy programmer you are and how little systems programming experience you really have. If you can't even keep track of an index variable I fail to see how you could ever successfully deploy a large heterogenous system.

      That aside, and apart for the fact that you've repeatedly chosen to ignore the points I made about the primacy of prevention over protection, I enjoyed discussing this with you. Lest I start repeating myself, and assuming there is nothing further to discuss which would necessitate a response on my part, I shall bow out at this point to leave the final word to you.

    73. Re:On Perl and command-line utilities by 73939133 · · Score: 1

      I have had enough of your continued insinuations that I should somehow be unable to divine the true meaning of your words just because I don't agree with them

      There is nothing to "divine". Terms like "undefined behavior" have a standard meaning in programming language definitions. Throwing an exception in Java does not result in "undefined behavior", while an index error in C/C++ does result in "undefined behavior".

      I might as well note at this point that the way you keep obsessing over minor implementation details such as pointer and index errors just goes to show what a lousy programmer you are and how little systems programming experience you really have. If you can't even keep track of an index variable I fail to see how you could ever successfully deploy a large heterogenous system.

      After nearly 30 years of programming in a dozen languages, I'm experienced to know that I cannot reliably keep track of an index variable, neither in my own code, nor in enormous amounts of third party code that I use. It is frightening for me to think that there are practicing programmers that think they can. It's still that old macho programmer ethics. Nor, frankly, even if I could, I wouldn't want to: programming languages are here to make my life easier, and if a language simplifies testing, debugging, and fault-tolerant computing, why in the world would I not use it?

      That aside, and apart for the fact that you've repeatedly chosen to ignore the points I made about the primacy of prevention over protection

      I haven't ignored it. Quite to the contrary: I keep pointing out that prevention obviously isn't working. You have to look no further than the Linux kernel, OpenOffice, Gnome, KDE, Mozilla, IIS, and all those other C/C++ applications that mangle data and crash with regularity.

      I shall bow out at this point to leave the final word to you.

      Thank you.

  26. What about bc ? by i-neo · · Score: 1

    I've read what your tools are about, however I don't feel like it's something people MUST have unlike bc.
    I guess bc is less handy, but it does a great job and has always been enough for command line computations.

  27. Don't be silly by Anonymous Coward · · Score: 0

    He should write a BreakOut or Tetris clone. If he ensures that it has a version number like 0.3.5 and never, ever, reaches 1.0, then it is sure to be included!

  28. Debian by nvainio · · Score: 5, Informative
    If you want your program to be included in Debian, you may package it yourself. Debian New Maintainer's Guide is a good place to start at.

    Or, you could file an RFP (Request For Package). See instructions.

  29. I don't think it's really all that hard... by onomatomania · · Score: 4, Informative

    The people that tend to do packaging are not likely to be influenced by you pestering their Inboxes, or filling out forms, or posting to forums, etc. Instead, ensure that your program meets the following requirements, and you should have no problems.

    - It should fulfill a genuine need. If you're aiming for wide distribution you can't expect to achieve it with a something that's only relevent to a few people or in a few circumstances. You should also have some sort of document that shows how someone would save time or accomplish new things with this tool.

    - It should be small yet robust, minimalistic yet powerful. I don't think anyone would consider adding a tool to a default install that is either too large for the features it offers, or two pedestrian in the type of features that it offers.

    - It should be packaged well. Ideally it should compile and install in the proper locations out-of-the-box on a variety of systems. Make sure that it uses well-known methods, such as autotools (i.e. "./configure --prefix=/usr/local") or some other well-know "make; make install" type of setup.

    - It should be well documented. At the very least you should have full manpages that your install script puts in the right place. Also consider man2html output on a web site, an possibly texinfo for the purists. You can't expect to get away with "just run --help and figure it out" or "look in the README."

    - It should be licensed sanely, and should have reasonable dependencies. No one like a bizarro license, and no one likes a tool that takes sixteen different libraries of particular versions to compile.

    - It looks like you're trying to get these tools standardized so that they could be relied upon for scripting... this will always be very hard to accomplish, but you might look into getting them merged with some popular packages, i.e. 'fileutils'. If there's a particular program that they are well-suited to being used with (like awk or something) then see about getting them added, perhaps in a "contrib" dir, to a project like that.

    Frankly, though, your post was a little worrysome... in the sense that it almost seems like you're trying to get everyone to use these tools because they're there, not for some intrinsic reason. That just won't work, they have to do something really well or make it much easier to do some other task, etc.... You can get the word out and announce to various interested parties, but you will never be able to force anyone to do anything. In other words, view the situation as one of wanting to make the best programs you can, and if they receive universal support that's icing on the cake.

  30. e-mail by jpmorgan · · Score: 3, Funny

    Make sure it can check your e-mail. No software is complete until it can check your e-mail.

  31. Sorry, but by jabbadabbadoo · · Score: 1
    There are numerous free Unix/Linux packages that do what yours do and much more. It takes a few of minutes downloading these for the relatively few people that are interested in such utilities.

    Sorry, but I can't see why would a limited package like "num-utils" would be of any interest.

  32. Perhaps a single utility by TooTechy · · Score: 1

    Perhaps these multiple utilities combined into one with options to alter the behavior, like the way that busybox behaves, might be easier to use. Users will forget the names of these multiple tools.

    A lot of tech users would generate these utilities as required with a couple of lines of awk. Appealing to these folks will be difficult. Each of these can seemingly be repilcated without too much trouble.

    As was written previously above, correct man pages (nroff -man) (see the man macros) will be essential.

    Ask for help developing, and for ideas as to what might be included in the tools. You are the controller but you have to provide what other people want

    my $.02

  33. Why? by Anonymous Coward · · Score: 0

    Why is it such a big deal to you that your software gets included in a distribution? Is that the only reason you're writing them? If it is then I suggest you stop now, because you're only going to end up being disapointed. Seriously, you may think that your num-utils are the bees knees, and that everyone would want a copy, but uh, they won't. Your tools are simply not that useful, and can be done hundreds of other ways (As many others have pointed out already).

    If you're actually writing num-utils because you have a specific need for them, and you could not find any other way of doing what you needed, then that is fair enough. If thats the case though, why should you care; they do what you need, right?

  34. GNU Development Model by isa-kuruption · · Score: 1, Funny

    1) Code
    2) Mention on /. you've written some C code to do what 2 lines of shell could do
    3) ????
    4) Profit?!

  35. HE's from SCO! by servicepack158 · · Score: 4, Funny

    He's trying to sour the batch! Don't let him near it! :) j/k

  36. Meanwhile for Windows developers... by Flashpoint+X · · Score: 5, Funny

    Thankfully in the Windows world I don't have to concern myself about getting included in "official" distributions... I prefer to distribute my software via self-propagating emails. ;)

    1. Re:Meanwhile for Windows developers... by Anonymous Coward · · Score: 0

      Linux developpers can also distribute via email. He wants it to be included in distros so users have it with no need to download it. Thankfully, in the Linux world, if I developed something worthy of inclusion on the install disk, it's my program that will get there, not Microsoft's "quick-copy-that-app" version not compatible with yours. ;)

    2. Re:Meanwhile for Windows developers... by kfuq · · Score: 1

      HAHA

      --
      iF yOu WAnT to C YOUr iP agaIn gAThEr tWO MilLIon dOLLArS IN Non - cONsEcuTivE TweNtY's AnD AWaiT FuRThER iNstrUctIoN
  37. Copyright by Gothmolly · · Score: 1

    You don't "take out" a copyright. Anything you produce, by definition, has a copyright attached. Whether or not that is compatible with other licensing schemes is a different ball game.

    --
    I want to delete my account but Slashdot doesn't allow it.
  38. Step 1: Write something useful... by jrwilk01 · · Score: 2, Informative

    If your app is useful to a large number of people, don't worry, it'll be included. The more people it appeals to, the faster it'll be adopted.

    Just let nature take its course. If no one wants to include your package, there is no point in having it included for the sake of vanity.

    If you are fairly confident of its usefulness, include a debian directory, and a rpm spec file in your source. That'll make it easy for people to package.

  39. Build Mindshare by EvilTwinSkippy · · Score: 2, Informative
    Some distribution, I'm thinking of gentoo, have a user submission feature for new packages.

    Just submit a new ebuild as a bug report. (No, that IS actually the proper way.) After a few weeks in the mill, your package will be out and about and happily rsynced in with every gentoo user. Gentoo are working on porting portage, their source distribution mechanism, to MacOSx and Window (running CygWin).

    Of course, instant gratification is not a hallmark of the portage system.

    You are competing with everybody else's widget in portage. So just make sure you get in cahoots with the folks who write the install docs, and have your software be made the subject of a few ZDnet articles. Writing a HOWTO based around your product is also a good idea.

    --
    "Learning is not compulsory... neither is survival."
    --Dr.W.Edwards Deming
  40. awk by 73939133 · · Score: 1
    While I'm all for writing more command line utilities in general (as opposed to the kind of cumbersome GUI stuff everybody does), these particular kinds of command line tools are usually done using awk. For example, to sum up a column of numbers, write:
    $ awk '{s+=$1}END{print s}' < file
    1. Re:awk by Repton · · Score: 1
      The ironic thing is that, even if you were using these utils, if the numbers you wanted to sum up didn't happen to be in the first column, you'd have to use awk to extract them anyway...

      (actually, the '' is redundant in that command line ... awk takes input files as commandline arguments)

      --
      Repton.
      They say that only an experienced wizard can do the tengu shuffle.
  41. How it worked for me .. by stevey · · Score: 5, Informative

    Once upon a time I wanted an MP3 streaming server, none of the ones I looked at did what I wanted. So I did the standard thing and designed my own.

    After releasing my first version to freshmeat I had about five subscribers to the project.

    These subscribers gave me patches, feedback, and encouragement.

    Doing a websearch for the project name I discovered by accident that the the package made it into Gentoo, and similarly Netbsd without any feedback or involvement from myself!

    The next step was my becoming a Debian Developer so that I could upload it there - and not worry about other people doing a bad job without me. (Not a real concern; I had wanted to join Debian for some time anyway).

    Now life is good - I've no idea if it's in RedHat because I've not touched it for years, but SuSE include it the *BSD's and Gentoo cover it, and Debian gets the latest versions all the time.

    Freshmeat lists 120+ subscribers to the project, and it's probably on the verge of becoming an official GNU package sometime soon.

    If you use it and like it buy something nice? </ObPlug>

    1. Re:How it worked for me .. by gmhowell · · Score: 1

      A copy of 'In the Beginning, There was the command line' should be heading out to you now.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    2. Re:How it worked for me .. by Phroggy · · Score: 1

      Google searches and perusing HTTP_REFERER logs can turn up some interesting things. I've found documentation written for my project in Czech (also a Czech patch), Portuguese and Japanese, as well as a directory listing in German. Free Software is cool! ;-)

      --
      $x='S24;r)>63/* h@<5+oZ)32"5cz';$me='phroggy'x$];
      $x=~y+ -xz+\0-Tx+;print$_^chop$me for split'',$x;
    3. Re:How it worked for me .. by blais · · Score: 0

      i had a similar experience with one of my oss projects. afaik it's the only decent tool that's out there for the job it does, i've had numerous companies send me thank you emails saying they've installed it for their whole r&d dept. for daily use, i even supported it for a few years in a commercial environment where i was working, >50 engineers using it daily. many distros now include it. it was written about in a few magazines.

      yet it still doesn't come with redhat. RH didn't include anything similar either for the longest time, and even the tool that comes with rh9 now does not really address the feature set my project offers yet. i made sure the dependencies were small (qt only). i supported it under many other unices. i've been providing rpms myself for years. i even pointed it out to the RH guys themselves, got a message that it somehow went to germany. eventually it must have got lost somewhere, never heard of it anymore. i know some people at redhat use it themselves.

      i really wonder what their selection process is.

      i also wonder if their recent changes will make it more clear what their selection process is.

    4. Re:How it worked for me .. by stevey · · Score: 1

      Wow - I'm stunned and look forward to reading it.

      Sometimes I worry that I pimp out the list too often' but it was a real suprise to see that, my sincere thanks and appreciation to you for your generous gift.

      Any feature requestions or suggestions will be moved to the front of the queue now ;)

    5. Re:How it worked for me .. by gmhowell · · Score: 1

      I think I sent in a bug report a few months ago as well (it was fixed within hours, but took longer for a fixed package to wind up in Debian:) Does that mean I'm on double secret probation now?

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
  42. Package consolidation in distros. by Anonymous Coward · · Score: 0

    Right now there is a large effort underway to simplify the architecture in distributions, with redundant programs being removed. This is because one the biggest problems with the desktop is that the user is overwhelmed with programs that all do the same thing. Many distibutions don't come with emacs anymore because its to complex for its purpose (read: edit files). So its mostly either VI(M) or pico/nano that comes installed.

    Even gnome/kde are starting to merge some of their core libraries/standards. For example there are plans to stip arts/esd out and replace it with alsa when linux kernel 2.6 comes out.

    So if you wan't your tools included, you got make sure it is a) unique b) dosen't suck c) Good documentation d) Uses the standard architechture.

  43. Re:Don't use the GPL by turgid · · Score: 1

    Why?

  44. Get them to CPAN first by shoppa · · Score: 1
    Seeing as how the tools are in Perl... you might try rearranging them until they're acceptable to CPAN first.

    This probably involves making them more module-like and less command-line like. This may be a fundamental change for you and your tools. (It looks like most/many of them would be single lines in Perl... hard to call that a "module").

  45. Version? by pjdepasq · · Score: 2, Insightful

    Dude, you're only at version 0.3. Don't you agree that it's a little early to be talking about adoption by the distributions?

    1. Re:Version? by julesh · · Score: 1

      I think nasm (which I was working on a lot at the time) made it as far as redhat in a 0.3something release. Of course we jumped straight over all the intervening versions to 0.9, cos it looked like we were nearly ready for a 'proper' release.

      It might happen one of these decades, too...

      Seriously, though, the only real way of getting your software into distributions is to get it used. With nasm, myself and Simon (the primary author) spent many many hours hanging around relevant newsgroups, letting people know that it was available, making sure they knew its advantages over other similar packages, etc. After a few months of that we had maybe a few hundred regular users. That was when we started hearing from redhat & debian (primarily that they didn't like our license and could we change it a little bit... if you want my advice, make sure you're either gpl or lgpl, it saves a lot of hassle in the long run...).

  46. This one's easy... by peterpi · · Score: 1

    Get your app mentioned on Slashdot.
    Oh, hang on....

  47. CPAN by dossen · · Score: 1

    Since your package is written in perl, it might be a good idea to check out CPAN.

    Check if they have anything that looks like your package (there might well be some math packages already (also remember to check what is shipped with perl). If there is, you might consider joining forces with whoever maintains the package that comes closest to yours. Move the logic of your programs into the modules you have found and make your programs as simple as possible, using the features of the combined modules. Then include tests, documentation and anything else you think would be relevant and contact the module maintainer with a patch or a new version. If (s)he accepts the contribution, the result should be a better and more useful package than either of you had before.

    If you think you have found the perfect package to join forces with, but the maintainer does not want to hear your arguments, consider closely what you are offering. It might be that (s)he is right to turn you down, or there might be something you need to fix to fit into the package. If you get nowhere - and you are absolutely sure you have found the perfect home for your code, you might be able to make a fork (e.g. if the package you want to fork is GPL). Stop and think once more, whether this is the right course of action! You should have a good argument ready if you fork a known package, and you will need to do it better than the competition.

    If you didn't find anything like your package, you might still get it into CPAN. But if you want it to be as useful as possible, you should still consider making it a module (or several) and using that module from your programs/scripts. Also again make sure that tests and documentation is good and plentiful. Then read the FAQ about getting your package on CPAN.

    You might also look into the source based distros, the BSDs and debian. They might be more up to including your package than the commersial distros, especially if you make it easy (use the GPL license, provide packages/ebuilds/spells/Makefiles and what ever else is needed for a proper package in their systems).

    As countless others have no doubt pointed out, you may also want to look into making C implementations of your programs, get them on freshmeat, sourceforge, savannah and what not. All this is good advice. And most of all, make sure you expand and improve the programs, support your users and generally do your best to find your niche in the software landscape. That way you might be able to avoid getting labeled as "just another quick script submitted to freshmeat" (not that I have researched your package enough to make that judgement). Then inclusion in the distros is simply a matter of being useful to enough people (and making it as easy as possible to include your package).

  48. It's mostly luck by Cereal+Box · · Score: 1

    In my experience, you're only going to get picked up in a distribution if someone who happens to be a maintainer takes a liking to your program. I released a program about five years ago and not long after one of the package maintainers for Debian contacted me about clearing up the licensing because he wanted to add it to the next release. Some time later it was added to the ports tree for OpenBSD (though no one contacted me about that, not that I really care).

    So basically, I think that if you want your software added to a distro, it's just going to "happen".

  49. unique? by battjt · · Score: 5, Insightful
    Your commands are already installed on my system, or aren't needed.
    average
    awk '{sum+=$1}END{print sum/NR}'
    bound
    awk 'NR==1{min=$1}{max=$1>max?$1:max;min=$1 &lt; min?$1:min}END{print min,max}'
    interval
    awk '{print $1-last; last=$1}'
    numgrep ( 500 < x < 1000 or x is a multiple of 3)
    awk '$1 < 1000 && $1>500 || $1%3 == 0 {print $1}'
    numproc
    awk '{print $1 [[your math expression expressed in standard infix notation]]}'
    numsum
    awk '{sum += $1}END{print sum}'
    random
    awk supports rand(), bash has $RANDOM, Linux has /proc/random for a stream of random data. Any range can be chosen using 'numproc', for instance /1..10/ is 'rand() * 10 + 1'
    range
    Why are you ever instantiatin ranges? It wastes space. Ranges should be abstractly manipulated.
    round(floor)
    awk '{print int($1)}'
    round(nearest n)
    awk '{print int($1/n)*n}'
    These commands are easy to use and have a transparency that makes it very clear what the bugs would be, where as num-utils has warnings like

    round will drop off the decimal places in decimal numbers. This may cause some calculations to be in error, depending on how you are using the data.

    that make me wonder what round does if it has problems with decimal numbers.

    Joe
    --
    Joe Batt Solid Design
    1. Re:unique? by Anonymous Coward · · Score: 1, Informative

      Additionally, it would seem to me that Gary Perlman's unixstat (|stat) is a more comprehensive set of tools with a wider range of applicability for data analysis.

    2. Re:unique? by Anonymous Coward · · Score: 1, Insightful

      The snide parent post makes a decent point: these utilities need more features to be worth using. Here are some things that I would have found useful on many occasions (and yes, they could be done in awk, but so could split, cut, and csplit):

      The ability to pick a column (and the column separator, of course) to work on, rather than the first.

      More statistical functions: what's the standard deviation of a column of numbers, etc...?

      A suite of programs to work on multiple columns. For instance, given a series of numbers, output an n-period moving average of those numbers. Or: add/multiply two columns against each other and output the result.

      Rocket science - no. Able to be accomplished w/ awk and sed? Yes. But still, useful and worthwhile.

    3. Re:unique? by joe_bruin · · Score: 1

      well done. you gotta love awk.

      unfortunately, we cannot include your app in our distribution without a proper man page and license file.

    4. Re:unique? by Anonymous Coward · · Score: 0

      You talk about a solution in search of a problem and then you mention AWK? Stellar troll dude. AWK is the canonical example of a solution in search of a problem.

    5. Re:unique? by booch · · Score: 1

      Wow. You must be a big fan of awk. Seems like a lot of UNIX folks learn grep and sed, but never get around to awk, usually skipping straight to Perl or Python. I know one guy who says that any time you pipe 2 greps together you should use awk instead. It'd probably save me some time searching through log files if I learned how to use awk.

      I would have thought of using bc before awk for math stuff though.

      --
      Software sucks. Open Source sucks less.
    6. Re:unique? by battjt · · Score: 1

      How do you get bc to work on columns of data? Awk is all about processing each line of a file. If you know perl, why not use perl interatively instead of the 'num-utils'? num-utils just seem like a bad idea to me. - weird syntax instead of standard infix notation - weird bugs like the random thing - opaque so you don't know about the weird bugs, unlike typing in the expressions yourself. Joe

      --
      Joe Batt Solid Design
  50. After downloading it... by BuilderBob · · Score: 2, Informative

    You seem to be working explicitely with files, I tried to type "average 1 2 3" and got a file error, why not use?

    cat numbers.file | average

    This would make the commands script friendlier I think.

    Also, echo '1 2 3' | average output 1, which confused me, I fixed this by changing line 117 in 'average' to read

    while (m/\s*(\-?[0-9]*\.?[0-9]+)/g) {

    ,i.e., the if -> while, and ^ has gone, and the 'g' flag is used, this does all white-space separated numbers on a line. (That can be your first(?) bug-fix)

    Also, some countries use spacing to group `thousands` together, where American/English speaking countries use a comma, the French/Germans use commas to indicate decimal points, then there's comma separated values and the locale settings...(at least now I know why your using Perl :)

    random, I hope 'rand' uses /dev/null or something internally,numprocess doesn't like me doing ^ (power) first, after the comma, it's fine, expect that (5*1)^2 != 7 and (5*1)^1 != 4, whatever the carrat ^ does in Perl,it's not power, power is ** (carrat is xor looking at the results).

    I'll stop there, sorry for...um, you know..The only other thing I would say (and this doesn't really apply because your using Perl) is if all these functions are supposed to be doing essentially the same thing (code re-use is clear from the source) then the busybox method of compiling all of the commands as functions (saving some space) seems good, then you can softlink the commands to relevant functions. (e.g. 'numgrep file' would call 'all_function --numgrep file', where all_function is the real executable).

    (having said all that, numgrep does look useful though, grepping template source code for numbers when the templates have each line numbered is not fun).

    BB

  51. num-utils does not look that useful to me by NynexNinja · · Score: 2, Informative

    A big requirement for inclusion in any packaged distribution is the usefulness of the package. This package does not seem useful, from what I've seen already.

  52. Re:Don't use the GPL by thoolihan · · Score: 3, Informative

    Drop the GPL. Your software is much more useful and far more likely to be included in non-Linux systems if the license isn't tainted

    Which systems are you referring to? I know the BSDs avoids GPLed code for drivers and core programs, but user packages is a different story. And OSX includes GPLed code. *BSD, All GNU/Linux, and OS X, I'd say that the GPL can get you into plenty of OSes.

    -t

    --
    http://unmoldable.com W:"No one of consequence" I:"I must know" W:"Get used to disappointment"
  53. Transparent Debian by debrain · · Score: 2, Informative

    I don't know about the rest of the world, but the process for getting something into Debian is fairly transparent.

    Either add your package to the wanted list, or become a Debian Developer yourself.

    I'm not saying becoming a Debian Developer is quick or easy (though few would describe it as really hard), but the process is very transparent, and available to anyone. In part, I suspect this transparency, in combination with its maturity, is why Debian has so many more packages than any other software distribution.

    Never underestimate the power of transparency. :)

  54. What about things like APIs? by gosand · · Score: 1
    Just to throw out a variation on this topic...

    I had an ex-coworker ask me a similar question recently, becaues he knows I am pro-Linux. I didn't really know the answer. I looked around at some distro FAQs, and couldn't find anything. He was working with a company who had written some an API for an SSL/IPsec offload chip that was getting included in major motherboards. They needed to figure out how to get it included into the Linux distros, and were currently working to get it into *BSD. Now that isn't something that the normal user would use, so saying "gain popular support" didn't really apply. I guess every distro would have a different way of handling submissions, and it would just be legwork to contact each one.

    Since there is no representative for *nix, to go to mobo manufacturers and distros to work out the details, I guess it makes it a little tougher. I suppose a company that had created the API might have an easier time than some guy in his basement, but it still seems like getting code submitted to distros could be a little easier. Do the distro guys scan freshmeat every day? Do they just rely on word of mouth to get new packages?

    --

    My beliefs do not require that you agree with them.

    1. Re:What about things like APIs? by dossen · · Score: 1

      Just guessing her, but since you are talking hardware support, might it be possible to make it a kernel module. If there are already soft- or hardware support for this kind of thing in the kernel, you should properly try to conform to the API that is in place. If not, there might be some general class of hardware from which to be inspired. But no matter how the final interface looks, getting it into the kernel sounds like the ticket.

      I don't know how easy it would be to get into the kernel, but this might not be a bad time[1], if the code is properly written. It should naturally not have any impact at all on kernels buildt without it (no changing existing interfaces, breaking drivers (properly best if the code is not even compiled unless requested)). And it would probably not hurt to point out actual hardware, that one gains support for by using this driver (donating a few pieces to some of the relevant kernel developers would probably not hurt either). Then it should simply be a matter of finding the right person in the linux hieracy to contact, or the lkml if no obvious candidates are found.

      If the driver makes the kernel, then it is time to bug the distros to build it (as module, no need to load down people not using it), once they start shipping the new kernel (or you may backport it to earlier kernels[2]). Again it might help if the distros are provided with sample hardware to test against.

      [1]: Yes, I know the current kernels are 2.6.0-test, but I don't think wellwritten drivers are going to be turned down, if they are contributed in a reasonable manner (working, non-destructive etc.). And since this is the begining of a new stable series, it is unlikely that major changes will be made to the driver/module interfaces (AFAIK they have been made already).

      [2]: Yes, I think it would be better to develop it for 2.6 and backport, rather than develop it for 2.4, try to get it in the official release of 2.4, and then having to port it to 2.6 and get it included.

  55. It's in Gentoo... by dotgod · · Score: 2, Funny
    alexscomp alex # emerge -s num-utils
    Searching...
    [ Results for search key : num-utils ]
    [ Applications found : 1 ]

    * sys-apps/num-utils
    Latest version available: 0.3
    Latest version installed: 0.3
    Size of downloaded files: 28 kB
    Homepage: http://suso.suso.org/programs/num-utils/
    Description: Set of programs for dealing with numbers from the command line

    HAHA don't get so excited...just pulling your leg.

  56. you need a security audit by SegaVegas · · Score: 0

    this will increase your chances dramatically

  57. hmm... by kfuq · · Score: 1

    Publish it on sourceforge?

    help it get distributed/more popular?

    --
    iF yOu WAnT to C YOUr iP agaIn gAThEr tWO MilLIon dOLLArS IN Non - cONsEcuTivE TweNtY's AnD AWaiT FuRThER iNstrUctIoN
  58. the FreeBSD perspective by JDizzy · · Score: 3, Informative

    First off, we dislike having gpl code in the base system, but we do have gpl stuff (but always a bsd fall back) for things like tar, gcc, dialog, rcs, sort, gzip, and just a few others. We keep our /bin and /sbin clean of the gpl. We typically think that awk or perl is capable of this sort of thing, and to get a program like this into the base system requires at the very least a commit bit in the cvs tree, or approval form the core team, or membership to the core team (yeah right). Since a text-processing, or rather a number processing, program is considered to be strictly useless to a base system's functionality, it would most certainly be religated to the ports tree. Don't kid yourself, you might think your software is the best thing under the sun since sliced bread, but to be so bold as to think it needs to be included in the base of any Unix-like-system is a pipe dream.

    --
    It isn't a lie if you belive it.
  59. write it for yourself by Eminor · · Score: 1

    I wouldn't worry about getting it included in any distro. Just write the program(s) to fill the niche. Write the programs for yourself, and if other people pick them up, then great!

    There are plenty of fabulous programs for Linux which aren't standard includes like ecasound (it isn't included in Mandrake yet anyway) which is a great tool for mixing and producing sound. Your programs do not need to be a standard includes to be great tools.

    Me myself, I am just starting a project for the first time on sourceforge. It is called Sound Orgy. While do wish for wide spread use of the tool set, the main goal is to write it for myself the way I want it to work. There are loads of sound related projects on sourceforge. I am just trying to do the way I want it, and I'll see what happens.

  60. easy by hexix · · Score: 2, Funny

    Just put a blatant plug for it in the form of a question on Slashdot.

    Oh, wait. Nevermind.

    For real though, just post it on freshmeat and if people have an interest it'll get popular quick.

  61. Port it to windows!!! by Kirellii · · Score: 1

    Go to the RedHat project CYGWIN and make it work in Windows. Then you have made it available to all users. Then you can feel guilty and start working on it again in Linux. Then you can do a double take and post it on Freshmeat and the other sites like Sourceforge. Then you can wonder if you should code it for QT or Windows CE. But most of all - don't give up hope! The more places you get it working the longer you can work on it cause it will survive. This is what I am doing for the Starshiptraders Graphical Client!

  62. Lunar-linux just included your software! by sofar · · Score: 1
    Your software just got included in the source-based distribution "lunar-linux"

    http://www.lunar-linux.org/

    good luck getting it in other distro's.

  63. The Quantian Scientific Computing Environment by Anonymous Coward · · Score: 0

    http://dirk.eddelbuettel.com/quantian.html

    These would probably be the first people to include such a set of utils. A Knoppix / Debian variant tailored to numerical and quantitative analysis.

  64. Trivial solutions to simple problems? by CryptOntology · · Score: 1
    What distributions want are non-trivial solutions. Frankly, "bc" and "dc" are both better command-line calculators that are known and distributed as standard already.

    If you can improve on one or both of these, then your name can be in bright lights. It's doubtful you can complete with them in the niche where they've been specialising in for decades using a few lines of perl.

    (No offense to perl coders -- I'm doing a great deal of that myself these days.)

  65. If you want to make your package a real tool... by Urkki · · Score: 1
    ...then I'd do this:

    1. Make them *trivial* to use with very easy syntax, so they have that specific niche (if it's not trivial to use, then the user might as well write an awk or perl one-liner, and your package wouldn't have any extra value...).

    2. Make them work nicely with other traditional unix fila and text utils (tr, cut, find, xargs...). Consider what features are so important that your utils should do it themselves with simpler command syntax (perhaps like interpreting all numbers as decimal even if they have leading zeroes, so you don't have to use sed or something to remove leading zeroes from numbers), and what operations could just require using other tools and pipeing (perhaps like applying to multiple files recursively with find and xargs, instead of built-in directory recursion and wild card handling).

    3. Combine them into one binary/script.

    4. Do it in standard ANSI C, so it'll compile under just about anything. And use good and consistent coding practices.


    The perl script collection, as your tools are now, is sure nice for your personal use, but for other people I'd say it's just a snippet library... But not useful as a stand-alone tool, as it's not worth the trouble to learn using it, and the headache of making sure you have right perl etc. Sure a nice thing to have in sourceforge or something, I'm sure quite a few people would find it useful, but it's not really anything that could get included in several linux distros.

  66. For Gentoo by carambola5 · · Score: 1

    Just write an ebuild and submit it to www.breakmygentoo.net

    Or, if you have enough of a following, have one of your Gentoo-using minions to write the ebuild for you. Packages that are on breakmygentoo.net have the best exposure you can get while the auditing process on your package over at bugs.gentoo.org makes sure it can be a viable addition to the standard portage tree.

    --
    IWARS.
    People, in general, disappoint me. Politicians even more so.
  67. To be included in Solaris... by Chris_Keene · · Score: 4, Funny

    For Solaris, once your util becomes an essential application used everyday by 99.9% of Solaris users, Sun and your good self can follow this procedure:

    - Use the Solaris package tools to create a package for your program, make the default install directory somethig sensible such as /opt/SUNWats/sun4u/bin/thiswillneverbeinyourPATH/p kg1921u9238/

    - make sure the package requires a few libraries that will take a least a day of pain to install on to any Solaris box.

    - Ensure to include a man page, avoid using words with less 5 syllables, refer to everything as n.

    - now do nothing for roughly six years (more if the program is required for other popular applications).

    - Once that is done, send the package to sunfreeware (because downloading endless packages from the designed-by-satan website is by far the quickest way of installing essential programs via a text based console).

    - It can sometimes only take a few years from this point for Sun to include it on the Solaris CDs!

    - Of course, they will first need to put it through the flag-randomiser to ensure no command line switch is the same as what it is for every other OS in known universe. It will also remove --help and -h, to avoid you having to do this yourself.

    - Just think, by Solaris 27 (aka SunOS 2.9.1) you can see your package installed by default from a Solaris CD!

    cjk
    PS remember, if your program involves text editing, ensure it implicitly uses ed, lord knows what confusion it will course otherwise.

    --
    You will forget this sig before you next see it
  68. Precision? by NortWind · · Score: 1

    How many digits are supported? The claim is made to sum the numbers in a file, so I would expect some sort of unlimited precision system, or at least well defined limits. For fractional parts, how do you control the number of digits shown? The average of 1, 0, and 0 would be 0.33333333333333333....

  69. Intended target audience by jhines · · Score: 1

    It wouldn't be approriate to include mathmatical utilities in the *BSD's, since they (at least FreeBSD) tend towards the server market. They don't install stuff for the sake of having it all.

    Add it to the ports, so that it does ship with the OS, and the user can install if they want to. A cd into the proper directory, and then make install is all that is needed.

  70. For Mandrake Linux ... by buchanmilne · · Score: 2, Informative

    ... you can follow the guidelines on their site, although it may also be helpful to post a link to an SRPM in your mail (which you should also cc to the cooker list, since the employee handling contribs is very busy, but there are a lot of non-employee contributors who will be able to add your package.

    More and more development is being done by the community, so you may want to stop by the cooker wiki which may have more up-to-date documents than those on the Mandrakesoft website.

  71. new trojan??? by Sabalon · · Score: 1

    Note to self...someone is trying to get a program called num-utils installed on as many unsuspecting machines as possible. Must be some new back-door or trojan...do not install. :)

  72. Why not CALC? by MidnightLightning · · Score: 1

    Why not just include calc, a C style arbitrary precision calculator? You can easily write scripts with calc, and calc is quite fast. Plus, the requirement of Perl would no longer exist. Calc itself is a small package.

    --

    -------
    Those who can, do, and those who can't, well ... teach.
  73. Oh My God. by pongo000 · · Score: 4, Insightful

    I'm sorry, but I think we've all just been trolled. I don't believe there's really an attempt to ask a valid question here. This individual has written a couple of perl scripts, and truly believes they will change the world. He hasn't done any research (no mention of CPAN, thinks that FreeBSD does Perl, etc.), and truly believes that a few Perl math routines will change the world. Can you spell "ego trip"?

    But just in case I'm wrong, here's what you do: Point your browser to CPAN. Carefully read the instructions. Submit your scripts. If they're good, they'll get used, you'll make a name for yourself, and will be on the way to The Big Time.

    I really can't believe this made /.

  74. Naming by jgrahn · · Score: 1

    You could start by giving the executables less generic names. I wouldn't want random utilities named round, range and random lying around polluting my namespace unless I used them a lot.

  75. Re:Don't use the GPL by Anonymous Coward · · Score: 0

    What are "user packages"? In OpenBSD at least, GPL is avoided in userland programs too, there's ongoing efforts to replace the gnu crap that is there now with free replacements (diff, grep, etc).

    If you mean packages from the ports tree, then yeah, gpl is fine, but is that what the question about? I assumed he wants to further bloat unix-like systems with even more useless junk in the default install, but it was pretty vague. If he had to ask how to submit an (rpm/deb/pkg/whatever) then we're looking at a new low for ask slashdot submissions.

  76. A few ways to get it on BSD by Geekboy(Wizard) · · Score: 1

    1) It *HAS* to be BSD license. If not, it will be almost impossible to add.

    2) It has to not suck. No offense, but most linux software out there sucks. By sucking, I mean it has to be free of all bugs, free of any linux-isms (like assuming we have an /opt directory), free of silly dependancies and the like.

    3) Whatever it does, it has to do it *well*. BSD s dont take half assed programs.

    4) It has to be useful. How useful is it? How much will a desktop user use it? How much will a server admin use it? Will it make a compile faster? Etc, etc.

    5) If you make a BSD "clone" of a GPL program. Naturally, don't just take the GPL program, change a variable, and give it the BSD license, that's illegal. Re-implement all of the GPL features in a BSD licensed program, and you'll get the BSDs.

    Granted, this isn't the only way to get into the BSDs, but these should give you a start. ;-)

    1. Re:A few ways to get it on BSD by Anonymous Coward · · Score: 0

      BSD s dont take half assed programs.

      Except, of course, ipfw.

      C'mon, doing NAT in user space?!?!?!? Context-switching twice for each packet sent/received?

      I had the displeasure of installing FreeBSD routers in some schools (as Linux's FR doesn't support Cisco LMI), and the load on the boxes is HUGE - CPU use averages about 45-50%, whereas it's consistantly 1% or so with Linux.

  77. Please add my Free quality articles to your distro by MichaelCrawford · · Score: 1
    I have written some articles on the general topic of software quality, which you'll find at http://linuxquality.sunsite.dk/articles/.

    So far the articles are:

    • Why We Should All Test the New Linux Kernel
    • Using Test Suites to Validate the Linux Kernel
    • Use Validators and Load Generators to Test Your Web Applications
    • Free Hosting Service HTML Validation Test Page
    • Pointers to C++ Member Functions
    The Open Source Development Lab has kindly translated the two kernel articles to Japanese. I am actively seeking further translations.

    The articles are all under the GNU Free Documentation License. However, Debian has decided the GFDL is non-free according to the Debian Free Software Guidelines. I plan to change the license to one that satisfies Debian's requirements, but haven't settled on one yet.

    Any non-freeness of the GFDL shouldn't prevent you including it in your distribution, the issue is that invariant sections forbid some kinds of modifications. I discuss this further in Which License for Free Documentation?

    --
    Request your free CD of my piano music.
  78. Almost... by leonbrooks · · Score: 1

    ...but IMESHO it would be more productive to have a SCO-only splash-screen which says "running under protest" and a yellow flag with a black ball, and offers to fire up a web browser to explain why.

    --
    Got time? Spend some of it coding or testing
    1. Re:Almost... by Anonymous Coward · · Score: 0

      wow, pure genius.

      haha.

  79. The way to get into a distribution by Anonymous Coward · · Score: 0

    Write a program that people want to use and eventually one of the distros will pick it up. And if it is really useful then all of them will pick it up. The goal is the program not the distro.

  80. It's not difficult to just look it up! by OrangeTide · · Score: 2, Informative

    It's not hard to look up how to do it, when it's possible to do it. For example to add an item to Gentoo you have to fill out a form in their Bugzilla database pointing to your ebuild file you want to add to the tree. I've submitted a few different things, some were accepted, some were rejected.

    Redhat (last I checked, which was 3 years ago) has a much less formal method, you just email one of the people on the team and they may or may not add it in. Usually they won't, unless you can show that it's worth the trouble since it adds to the cost because they have to test it.

    Adding stuff to Gentoo and Debian are generally easier than Redhat and SuSE because of testing costs associated with commecial distributions versus free/community distros.

    --
    “Common sense is not so common.” — Voltaire
  81. openbsd will not add any gnu software to base by Anonymous Coward · · Score: 0

    and they are actively seeking replacements for all gnu software in the base system

    1. Re:openbsd will not add any gnu software to base by Anonymous Coward · · Score: 0

      Ah, very good, a few years ago I tried to get some NetBSD core folks to make this an active goal. How far along on this is OpenBSD? Are they trying to replace gcc as well? I still like the anti-gpl license that the perl dictd server uses.

  82. commitment and reliability... by Anonymous Coward · · Score: 0
    something else i was thinking... commitment and reliability.


    you might develop something that is one up on something that is in the distro. so you think, mine is better, it should be in there! but if you're just one person who never updates his/her website or you post blogs on your site about how busy you are with school and such, well that won't look too good. especially if your project is very young compared to the app that has been there a while and is therefore trusted and people are familiar with. distro's don't want abandonware.

    moo...

  83. Your own! by Anonymous Coward · · Score: 0

    1. Make your own distro.
    2. Include your software with it
    3. ???
    4. Profit

  84. FreeBSD by Brooks+Davis · · Score: 2, Informative

    Well, the odds of getting a new GPL'd program into the FreeBSD base system hover very near zero. On the other hand, if you want to get added to the ports collection, that's fairly easy. All you need to do is follow the instrucations in the FreeBSD Porter's Handbook.

    -- Brooks

    --
    -- Any statement of the form "X is the one, true Y" is FALSE.
  85. how I am trying it (MultiTail) by flok · · Score: 1
    • submitted it at freshmeat (and all the other software-releases websites)
    • contacted every UNIX-magazine on the planet which has an e-mail address
    • spammed every possibly related IRC-channel. questions like: "i wrote this program multitail and i'm out of ideas how to improve it" and "could someone help me porting it to " and not to forget "could someone help me package it for this or that distribution"
    • mention it in every post you do on websites (at least in your sig)


    result: everyone knows the program and some even use it.

    (and in case you wonder what program I was talking about, see: http://vanheusden.com/multitail/ )
    --

    www.vanheusden.com - home of Multitail, HTTPing, CoffeeSaint, EntropyBroker, rsstail, bsod, listener, nagcon, nagi
  86. ALT Linux by dimss · · Score: 1

    I've found num-utils interesting. Probably I'll use it sometimes if you continue development.

    Don't know much about *nices or Linux distros other than ALT Linux. In ALT individual developers decide whether to include particular package to their RPM repository --- Sisyphus. In fact, everybody (incl. you) allowed to add and maintain any ALT Linux package since they have open development model.

    If ALT users will find your package useful it will be included in official releases --- Master and Junior.

  87. Shortcut to getting it in Debian GNU/Linux by grolschie · · Score: 1

    1). Make sure your software works, is relatively bug free, and is released under a true Open Source license such as the GPL.
    2). Read the Debian guidelines and policies and ensure your program conforms to these guidelines.
    3). Post a bug report (aka Wishlist item) against the pseudo-package WNPP

    Some Developer might see your item and wish to package it. Or you can package it yourself under the Debian Developer Mentor scheme.

  88. Linux is not Posix by Anonymous Coward · · Score: 1, Insightful

    And NT's Posix layer wouldn't really count as a *nix either. GNU/Linux might be Posix compliant, but that's more an issue of GNU than Linux. In general, Un*x refers to the varients of Unix based on Unix code (AIX, Unixware, FreeBSD, etc). *nix means simply Un*x work-alikes which behave reasonably well like a Un*x system. NT really doesnt quality considering its limited Posix layer, but cygwin might. So, in some ways, we're probably more talking about GNU and the like more than the actual OS. But, there's no way to include Unix and GNU is not Unix in a single acronym nicely. If you can think of a better one, I'm all ears.

  89. Example by SpiffyMarc · · Score: 1

    It should fulfill a genuine need

    Yeah, like XEyes!

  90. Re:OPEN SOURCE IS RACIST! by dunng808 · · Score: 1

    I wonder if this stuff has its source in Redmond? Or is this just some SCO stockholders venting about their treatment here? Oh, wait. Summer school is out, and the Fall semester hasn't started yet. That explains it. Unsupervised children banging on papa's keyboard in the middle of the afternoon. No wonder mom can't get through on the phone.

    --

    Gary Dunn
    Open Slate Project

  91. Graphical Voter Interface by RussP · · Score: 1

    Ya, I'd like to get my Graphical Voter Interface GVI into a distribution or two. I think it's pretty cool. Check it out.

    --
    I watch Brit Hume on Fox News
  92. email them by gh0ul · · Score: 1

    why not just email the distributors? is this really worthy of an 'Ask Slashdot'?

  93. For adding to FreeBSD ports tree by phoenix_rizzen · · Score: 1

    Head over to the FreeBSD website and read the Porter's Handbook. That will explain everything you need to know to get it added to the ports tree. It's actually quite simple.