Remember that it is important to announce early and announce often on Freshmeat. Adding a new #include line to your program is usually all the reason you need to make an announcement. In fact, most programs contain less code when they are labelled version 0.0.1 and posted. With just this much, you are certain to get lots and lots of capable programmers to contribute to your infant project. After all, there's nothing like a blank slate to call a throng of rootless hackers to your aid. All coders are really just looking for a home, and you are providing them one in your new project. So go forth and announce.
Didn't get the overwhelming response to your project that you expected? That's okay. Sometimes hackers get overwhelmed by a busy day of trolling at other Web sites. This has become less of an issue since segfault.org turned off the user-comment feature, but still, the inherent human right to talk about Natalie Portman and repeatedly try for a "first post" can eat into one's productivity, and cause the exhausted hacker to miss a few Freshmeat postings. Therefore, you must simply make more announcements. Make two or three a day. Go ahead; bandwidth is cheap, and chances are you still won't generate more daily announcements than the Linux kernel.
It is also important, when submitting applications to Freshmeat, to have a good name for the program. Remember that the Linux community doesn't need any advertising, so there's no need to waste those precious Perl-coding brain cells on a marketable name. To simplify the matter, the Linux community has a naming scheme that it borrows from a system known as "Hungarian Notation."
Follow this simple algorithm: Is your program GNOME-based or KDE-based? Prepend a 'g' or 'k' to the name, respectively. If it is not specific to either environment, graphical apps may usually prepend an 'x'. Java apps may use 'j', with written permission from Sun Microsystems. Database-related code may use "sql". Some other important letters are 'e' for Enlightenment-related programs, 'z' for compression algorithms, and 'b' for BeOS apps. You thought all those hours of watching Sesame Street were a waste, didn't you?
To make your application truly cool, what you really need is a RECURSIVE acronym. You get bonus points for using the word "not" in the name, too. Some examples of this are "GNU's Not Unix", "Pine Is Not Elm", "Wine Is Not [an] Emulator", and "Linux Is Not Useless [without] X-Window."
Contrary to what was stated previously, it's important to note that the 'G' in "GNU" does NOT stand for "Gnome". It doesn't stand for anything. This is merely a necessary evil in the Linux Application Naming Scheme.
Numbers are also permitted. Following the lead of artists such as MC Hammer, the Video4Linux and ISDN4Linux projects have made the replacement of words with their phonetically equivalent numerics an acceptable practice.
After you've selected all the letters that relate to your program, pick a simple word (try to avoid words that contain vowels, as vowels generally are frowned upon in Unix circles), and prepend the letters to it. A good example is a GNOME-based, database-enabled program for caching Web pages. It might be named something like "gsql4httpBy". Note that 'y' is not considered a vowel in all situations, so this is a valid name for your new program, even though it isn't a cool recursive algorithm. This will give the whole of the Linux community all the information it needs about your app.
Since you've expertly encoded all the relevant information about your project in its name, there's really no need to fill out that section in the appindex entry labelled "description." In fact, this was placed there merely to satisfy those without the creativity to come up with a decent project name. Since you are capable of producing a proper name in the first place, you may use this section to give a shout out to all your homies. An example is:
"Yo, wassup from the PhreakMaster?! Yours truely, Sir Cracksalot, is bestowing onto you all this 37337 new demo app. I wanna give some props to my buds in #visualbasic, Linux Torvalds (you kick b7tt, dude!), Loki 4 giving me stuff to pirate, and 'A' through 'F' in the phone book."
Versioning schemes are important to consider. Gone are the days of DOS when programs used a MAJOR.MINOR versioning scheme. After all, why be so direct as to increment the minor number for bugfixes, and the major number for new features? Where's the DRAMA in that? Also gone are the days of Windows, when programs started at 1.0 and never, codewise at least, made it much further. Linux programs are versioned as a fraction of one, and as they travel towards perfection, they get closer to being an integer. The astute reader has already figured out that this means Emacs must clearly be the perfect program, since its version is currently much, much greater than one.
But hey, at least we haven't adopted the Solaris versioning system. This means that Linux programmers do not need an advanced degree in calculus in order to write applications, which has helped jumpstart the Linux application market. Thanks to this easing of the programmer's burden, you can get on Freshmeat any day of the week and see a proliferation of IRC clients and Napster clones available for download.
Which brings us to the point of cross-pollination. You might be thinking that you are now ready to hack some code and submit it to Freshmeat, but golly gee, whatever should you work on? You could perhaps find a lacking feature in Linux and implement it, or find a radical new concept and make it a reality. But until you've been in this business as long as Stallman, you probably want to take it easy and hone your hacker skills. Clearly, the best way to do this is to reinvent the wheel.
Is there a cool KDE application? Rewrite it from scratch with the GTK+ toolkit. Don't contribute enhancements to the existing project. Don't even evaluate their codebase for potentially reusable code; that goes against the spirit of COMPETITION. You need to write something... cooler. Is there a Java version yet? Rewrite it. What about a console version? Rewrite it. A applet? Rewrite. An EPPLET? REWRITE. A pure assembly version? RE. WRITE. Make sure that every program exists for every possible user's exact configuration. We are talking about the very soul of user friendliness here! Also try not to forget about BSD, BeOS, OS/2, and... uh, Windows. Remember that rewriting is always a more creative process than porting, and there's nothing more important in mental health than a creative outlet. Doing a search on the appindex for "icq" will demonstrate how popular this method of project development/psychotherapy can be.
For those that aren't inclined towards end-user applications (those pesky user interfaces!), you may also delve in at a lower level. There are many libraries that need to be cross-bred. Do you like SDL? You can help make sure it can use GGI, SVGAlib, X, FBcon, and AAlib as video backends. BUT -- does GGI have an SDL backend? Is anyone working on linking clanlib into this? And you can help make sure that clanlib can use DRI. And DRI should be able to use SDL as a backend. You should be able to link all graphic libraries together so they can call each other in a perfect Zen-like circle. Remember that Linux is not complete until every possible graphics library is really just wrapping every other one. Compatibility is key. And don't forget sound APIs; I haven't even mentioned OSS, ALSA, and ESD yet. Look at all the work we have to do!
So, with this preparation added to your programming toolkit, you can now submit your applications to Freshmeat with confidence. Get hacking.
After years of being oppressed by the computer industry, Ryan is coming out of the closet; he was an English major in college. He can be found sleeping on Scott Draeker's laundry room floor, or alternately at email@example.com.
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 freshmeat t-shirt from ThinkGeek in addition to 15 minutes of fame. If you think you'd like to try your hand at it, let firstname.lastname@example.org know what you'd like to write about.