Articles / Freecode's Stance on "Trivi…

Freecode's Stance on "Trivial" Software

Every day, dozens of hackers send us news of their code and hope for a spot in the appindex. Since we know how much our approval can mean, it honestly does hurt us more than it hurts you when we have to frown over a submission and write back, “You know, this really doesn’t fit here…” In today’s editorial, Nathan Hurst, part of Freecode’s Australian crew, explains what goes through our minds and why we sometimes feel we just have to say “no”.

In the course of reading, editing, and approving the endless stream of Freecode that passes our way, we have to reject quite a lot of scripts, small C programs, and PHP classes. While these are clearly useful to someone, we often have the difficult task of rejecting them on the grounds of triviality. In this editorial, I am going to attempt to explain what metric we use for making this decision, some thoughts on what might be done in the future to reduce the need for such screening, and, finally, what to do if your script is rejected.

REXML could not parse this XML/HTML: 
<p>

Every Freecode submission bin warrior quakes at the thought of that
one submission each day that sits on the edge between clearly in and
clearly out.  Sometimes it's a script for automating the ripping of an
audio CD; sometimes it's a PHP class to display the current date in
Roman numerals.

<p>

The reason for this fear is not retribution from the offended
contributor (although my spam rate increased dramatically after
rejecting one person's script for bulk emailing), but rather the fact
that we feel that we're sending the message "You are not worthy of
contributing to Freecode, and, by association, not worthy of
contributing to Free Software".  This is probably the worst aspect of
the job.  Sometimes it's a 10-year-old who has written his first
Python program, and sometimes it's a seasoned business programmer who
has had her first try at Web programming.  In any case, we are going
to hurt their feelings by rejecting their work.

<p>

<h1>How do we decide what is trivial?</h1>

<p>

Well, there are 3 categories of triviality that programs tend to fall
into:

<p>

<h2>1. It does something that's obvious to a programmer who knows the
language.</h2>

<p>

A BASH script which performs a command on each of the files in a
directory might seem useful to someone who has just learned BASH, but
any seasoned BASHer would have no hesitation in writing

<p>

<pre>
# for i in /usr/*
# do
#   command $i
# done
</pre>

<p>

directly on the commandline.  Another common example of this is a PHP
script that formats numbers.

<h2>2. It reimplements an existing tool without any convincing
advantage.</h2>

<p>

A C program which is equivalent to <code>tr</code>, while an
interesting exercise, shouldn't go on Freecode unless it can do
something that tr doesn't or outperforms tr by a significant margin.
The older an existing tool is, the harder it is to accept a new
version.  In this case, we first ask authors if they can clearly
explain the advantages and that they try to merge their enhancements
into the existing code.  We only accept the code if they have made an
effort to try merging or can give convincing reasons for the two to
remain separated.

<p>

Remember: the reason for this is not that we are tainted by the power
of the delete button (well, usually not) and not because we are
anti-freedom of speech (or software or furniture porn), but because
the cost of introducing a new tool in the place of a well-loved one is
very high.  Just think of the cost of having to learn to use
<code>less</code> after using <code>more</code> for many years.
Unless there is a significant advantage to the new tool, it won't be
used.

<h2>3. It proves a point but doesn't provide a use.</h2>

<p>

This category includes programs which attack a specific version of a
program (which really belongs on bugtraq) and programs written in
obscure languages without an advantage over existing programs (this is
related to the previous point; a program written in another language
which outperforms an existing tool might be reasonable).

<p>

We have received numerous exploits for programs such as Sendmail,
Apache, and wuftp.  Once a security hole has been identified, these
programs should be sent first to the author, and then to bugtraq (if
the author doesn't provide a fix in a reasonable time).  Freecode is
about constructive code, not destructive code.

<p>

Occasionally, we get programs which can be reformulated into a much
smaller program in a more appropriate language.  One such example
might be a 300-line C program which is functionally equivalent to a
10-line Perl program.  Again, unless there is an advantage, we would
consider this too trivial.  Some good advantages include small memory
footprint (not requiring an interpreter), significantly higher
performance, ease of maintenance, or guaranteed realtime execution.


<h1>What should be done</h1>

In the future, there should be no reason for the editors to reject
software, instead letting the community decide.  To do this, there
needs to be some work done on more powerful expression of software's
capability, on better distributed merit assessment, and on improving
the search engine.

<p>

Some work has been done in academic circles on program classification,
but automated classification is probably AI-complete (and hence just
as subjective as the existing system).  Another approach would be to
select trustworthy leaders for categories of software to write
comparative reviews about programs' strengths and weaknesses and
provide that information along with searches.

<p>

Distributed merit assessment could be performed in a style similar to
Advogato, but the number of dimensions of specialty would require
significant changes.  While Advogato measures "guruness", a software
repository would require, for example, "PHP guruness" or "serial
programming guruness", and there are an infinity of skills between any
such categories.

<p>

scoop is putting a lot of work into Freecode's search engine, and
recent changes have certainly been a big improvement (especially
boolean operators and license exclusion), but an experienced Free
Software user will still have to read around to find the right
questions to ask to find software.  Perhaps a Q and A forum for
software solutions might work.

<p>

Although editors rejecting software is perhaps not an ideal solution
to this problem, it is the best solution we have come up with.  If we
allowed all software to enter the database, Freecode would quickly
fill up with troll software (there to elicit a response rather than
fill a need), once-off programs (that were written for a job and
should have been left there), and script kiddie noise that would make
searching for useful tools well nigh impossible.

<p>

If your program gets rejected as too trivial, don't despair. Often, it
is a matter of rewriting the description and homepage more precisely,
and sometimes it is a matter of distilling the problem you are trying
to solve and writing a more general solution.  In other cases, you may
find that your code can be combined with existing code to produce a
better program for everyone, or that an existing tool fills your own
task better than your original code.

<p>
<hr width="60%" align="center" />
<p>

<font size="-1">

Besides being half the graveyard shift operator for Freecode, Nathan
is a PhD candidate researching constraint system applications at
Monash University (Australia).  His other main interests are
mathematics, gardening, photography, and computer-environment
interfaces.  He enjoys playing piano with his small jazz band,
Desafinado.  His homepage is at <a
href="http://www.csse.monash.edu.au/~njh/">http://www.csse.monash.edu.au/~njh/</a>
and he can be contacted at <a
href="mailto:njh@freshmeat.net">njh@freshmeat.net</a> .

</font>

<p>
<hr width="60%" align="center" />
<p>

<h1>T-Shirts and Fame!</h1>


We're eager to find people interested in writing editorials on
software-related topics.  We're flexible on length, style, and topic,
so long as you know what you're talking about and back up your
opinions with facts.  Anyone who writes an editorial gets a Freecode
t-shirt from <a href="http://www.thinkgeek.com/">ThinkGeek</a> in
addition to 15 minutes of fame.  If you think you'd like to try your
hand at it, let <a
href="mailto:jeff.covey@freshmeat.net">jeff.covey@freshmeat.net</a>
know what you'd like to write about.

Recent comments

06 Dec 2011 21:30 Avatar wolfsoftware

Sorry make that 'sneakycode.com' :) sorry it was early

06 Dec 2011 07:16 Avatar wolfsoftware

Given freshbones seems to never happened, we at Wolf Software have registered 'funkycode.com' the site hopes to be live after the new year, and will allow people to post small/trivial code classes and snippets. generally funky things that freshmeat reject as to trival

16 May 2006 02:24 Avatar Rupom

Re: Agreed


> After some attempts to post trivial

> software such as more or less advanced

> shell scripts to make life easier for

> the crowd of us, I realized this is not

> right for freshmeat.net. Freshmeat.net

> is, after all, an index site for

> software with some meat on the bones.

> Thus, I registered freshbones.net. The

> site is not yet online, though I'll try

> to see to that. This is - no meat - just

> bones. Shell scripts and the like.

> I do not plan to make this project some

> competitor to freshmeat or any like

> that. I just want a trivial software

> index as well. If anyone want to join

> this, please post me a message.

>

> Regards

>

> Roy

Wow !! It will be great if we get such site.

Go ahead...

16 May 2006 02:22 Avatar Rupom

Is not a trivial thing useful ?
My "SQL Parsing" class has been declined today. The reason sent to me was its size/complexity..blah blah blah. I would like to tell that it may be simple but useful. It's light weight but it can easily parse and execute a file containing series of mySQL statements dumped by other programs.phpMyadin has such feature but developers those need some light-weight automated system to parse and execute mySQL statements dynamically for their applications could be helpful from this.

I like to get a feedback from FM regarding this recline.

07 Apr 2006 13:28 Avatar thesquid

Re: Classification


> If anyone has an particularly useful

> advice, you can reach me at

> os@irix.penguinpowered.com

> The script download site is currently

> http://os.dyns.cx/fetchhun/

uhh, (replying to myself here), new email (os at udel dot edu), new website, best place to find fetchhun is on archive.org (until i update http://orangesquid.net/projects/) except that i can't find it on archive.org anywhere :-/ well, it'll come back , some day.

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.