Slashdot Mirror


Making Your Code OSS-Appealing?

goldcd writes "A while back I wrote some pretty reasonable forum code, a PHPBB alternative. A few years down the line it's pretty stable, I've stopped tinkering with it, and it's standing up by itself. I have neither the time, inclination, nor inspiration to do anything more with it, but would very much like to give the code to the world to use and expand upon. Now I could just upload it as it is onto SourceForge, but currently it's very specific in its usage and I'd be ashamed of what 'proper' coders would think of my amateur offering — I'm afraid it would be laughed at and ignored. On the other hand, I don't want to waste hours of my own time perfecting it for people just to 'rip off' as is, and never contribute anything. My question is, what do you have to do to make your code 'OSS appealing?'"

21 of 180 comments (clear)

  1. Just let them come by Anonymous Coward · · Score: 4, Insightful

    Post the code and let the people who want to clean it up clean it up. If people see potential in your existing code, that's what'll be done.

    1. Re:Just let them come by Psiren · · Score: 5, Interesting

      I agree. I was somewhat worried when I put my first code out there, but once you take the plunge it's really not that bad. I remember a guy mailing me with a patch to replace a really dumb subroutine (this was a Perl script) with a one liner. He was very polite and helpful about it, considering how awful it must have looked to him. And he took the time to submit the patch, which makes all the difference.

      Just do it. It's highly unlikely anyone will laugh at you. Anyone that has spent time to read through your code is unlikely to be so juvenile as to mail you just to point out how bad it is.

      Of course, it may be ignored by all but a few people. Some of my stuff certainly has been. But those few people that have used it have mailed me to say how helpful it has been to them. Even if you just help one person, thats one person more than if you'd left it sitting on your hard drive. Getting that single thank you mail can really give you the warm fuzzies.

      It's also interesting to see where it might end up being used. I've had people that use my stuff at NASA, the Pentagon and even Disney. Have code, will travel! :)

    2. Re:Just let them come by Anonymous Coward · · Score: 5, Insightful

      I agree wholeheartedly. Most systems fail to gain popularity not based on their code quality, but on their documentation. The more documentation, the better - especially for PHP projects, where documentation tends to lead developers by the hand, often spoon-feeding them.

      If there is guides on how to customise this, add things here, remove things from there, etc people will be more inclined to adopt the system.

      When checking out any software, I always check for documentation, from the specific itty-gritty (like API references), to tutorials, blog postings and articles on the system. It means if have problems, I stand a chance of identifying a fix by doing a quick Google search, instead of unnecessarily trawling through code myself.

    3. Re:Just let them come by Ash+Vince · · Score: 4, Informative

      Just do it. It's highly unlikely anyone will laugh at you. Anyone that has spent time to read through your code is unlikely to be so juvenile as to mail you just to point out how bad it is. Actually they might point out how bad it is, but they might point it out in helpful way that helped to make you a better coder. I have written an awful lot of shit code in my time, but I very grateful to the people who have given me constructive advice on how to improve it in future.
      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    4. Re:Just let them come by Psiren · · Score: 4, Insightful

      Absolutely. Nothing wrong with constructive criticism. I was just trying to say that anyone that mails you to tell you your code is shit without offering any helpful advice is at best a juvenile arsehole and should just be ignored.

    5. Re:Just let them come by Savage-Rabbit · · Score: 4, Interesting

      I agree wholeheartedly. Most systems fail to gain popularity not based on their code quality, but on their documentation. The more documentation, the better..... That is so true and it is also amazing how many developers have trouble understanding that. I'll pick a second rate solution over a faster/less bloated/better written one every time if it has superior documentation. Nothing pisses me off more than people whose idea of documentation is setting up a Wiki and having the users write the docu for them. Wiki's are nice, I use them, but properly written developer and user guides are better. The only thing that will make me rethink this policy is stability and security issues. When I can't get the software running, or in case of a software library, get a simple demo app coded in a reasonable time with the documentation on the project website I'll write the application/library off unless I have no alternative but to use it. If there is anything in the software developing world that needs fixing it's introducing more developers to various documentation tools like Javadoc, Doxygen, Visio, ROBODoc, Omnigraffle, .... the list goes on. User documentation is even simpler, just fire up OOo Writer, Pages, VI/Emacs if you are a hardcore developer or even, dare I suggest it.... it MS Word.
      --
      Only to idiots, are orders laws.
      -- Henning von Tresckow
    6. Re:Just let them come by vtcodger · · Score: 5, Funny
      Sure EMACS is powerful. But that's almost irrelevant to the needs of program documentation. Mostly documentation authors don't need a lot of power. They need a modicum of communication ability, a basic text editor, and a willingness to do a not especially fun job.

      (I'll pass on vi. If you can't say something nice ...)

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  2. Well by SpacePunk · · Score: 5, Funny

    Considering the majority of OSS code, if I were to release any of my code, I'd have to make it more amateurish.

    Don't worry about it. There are those that will like it, those that won't, but they'll all cream their star wars underoos because it's free (as in beer).

    1. Re:Well by rucs_hack · · Score: 4, Informative

      I released my first OSS project as a horrifically badly organised mess of dissertation code. I got feedback from some domain specialists and better coders, and the codebase got better.

      Now its a mature project with a very specialised user base, but its provided me with more fun then I ever imagined.

      Code is never finished though.

      Incidentally, I'd have replied to the main article, but for me there was no reply button, don't know why.

  3. Nothing by Anonymous Coward · · Score: 4, Insightful

    Well, I started in on a comment on this issue, but then I realized I was drunk and babbling on about some shit so fuck it...I've hit AC, and I'll just tell you to stop being self concious and release your code, open source isn't supposed to be a judgmental thing, release what you have and if there are improvements to be made take them as constructive criticism and learn from it.

  4. Release. by srothroc · · Score: 4, Insightful

    Well, you could just release it as-is and see if anyone's interested.

    Alternatively, you could go through and write up some documentation so that even if your code is messy and/or idiosyncratic, other people can find their way around with the help of the documentation. If they don't like the way things are set up, or if things are inefficient, they can fix it on their own -- isn't that a part of what OSS is about?

  5. Release it anonymously by Colin+Smith · · Score: 4, Funny

    Problem solved.

    --
    Deleted
  6. Make it a needed product. by webmaster404 · · Score: 5, Interesting

    If its a needed product, and it has decent enough code, it will be accepted. For example, Linux is loaded with: Text Editors, IDEs, Media Players, Browsers based on the Gecko engine, simple rip-offs of games. Its the niche products that will survive, although there might not be 100 developers on it, it will be used by those that need it. The worst that will happen is its ignored, generally if theres a need for a program no one is going to flame you for bad code, they will either live with it, help you with it or privately fix it themselves. The reason most OSS projects don't succeed is because they end up falling into the "monopolies" (Not abusive monopolies that of the MS world but 1 de-facto standard) of the OSS world, for example, vi, emacs and somewhat nano are the only terminal based text editors that will be used by the majority of users, so whenever someone else comes up with one, its largely ignored, but things that put a "friendly" GUI on a common CLI program (Such as Synaptic for apt-get) it is usually appreciated, but bottom line, if it does something nothing else does, and does it better it will be accepted, if not then it will be largely ignored, you won't have people yelling at poorly documented code it will just be silently ignored.

    --
    There is no "disagree" moderation, and troll, flamebait and overrated are not valid substitutes
  7. Reply Button by Anonymous Coward · · Score: 4, Informative

    The reply button is on that annoying little floating widget to the left (or above comments, if you press the button with the arrow point up).

    Not the best visibility, though, admittedly.

  8. Do you see a sign that says "dead code storage"? by ameoba · · Score: 5, Insightful

    If you don't want to put any more work into it, it's effectively dead. OSS isn't just about giving away the source, it's also about allowing other people to contribute - simply posting it on SF.net and walking away does nothing if you're not willing to review submissions, process bug reports and/or bring people into the project.

    --
    my sig's at the bottom of the page.
  9. It works? by fishbowl · · Score: 5, Insightful

    If it works, don't be ashamed of it.

    It you planned it, and then executed the plan to completion, there's nothing "amateurish" about that. This is one
    *definition* of professional work.

    --
    -fb Everything not expressly forbidden is now mandatory.
  10. Nobody would care, most likely. by Anonymous Coward · · Score: 5, Interesting

    I make video games and release them under the GPL. Hardly anybody cares. There are plenty of BB programs out there already. The world doesn't need another one. Same goes for my video games.

    I also make music and release it for free. Hardly anybody cares, because there's plenty of "free" music out there anyways.

    If you don't think that your code is really all that grand, just quietly release it and hope it somehow finds a place in someone's heart. The few comments you get about it are still nice to have.

  11. Don't bother by Bloater · · Score: 4, Insightful

    > I have neither the time, inclination, nor inspiration to do anything more with it

    Don't bother uploading it. Without its primary developer being involved, unless you've got some users with a real care that they can keep using it *and* that it improves, and who are also skilled PHP dev's (enough to read through and understand somebody else's code on the timescale they need modifications done) nobody is going to pick up your code.

  12. Re:Do you see a sign that says "dead code storage" by Anonymous Coward · · Score: 4, Insightful

    One man's trash is another's treasure. Let the user frantically searching for exactly your code on SF.net decide if it is worth something or not, not some flippant opinion here. Even if it the project is no longer maintained, it's not dead, it's just coasting. It's only dead if you never let it out into the world and then one day the hard drive goes silent.
    Any who cares if people leech it and never give anything back? By a little act you just made someone's day.
    Rate of change is a poor metric of project health anyway. Small robust mature bits of code may stay the same for years but are used by thousands every day.

    -- AC as usual terminal HD catastrophically turned to metallic powder a few days back

  13. A PHPBB alternative? by wytcld · · Score: 4, Interesting

    Here's the question: Did you know what you were doing in terms of security. PHPBB not only has had a terrible security track record, but when you find significant security flaws (I have) they don't even want to hear about them. This isn't to say they haven't fixed their worst security lapses - they've had little choice once the fire gets hot. But they are far, far from proactive about heading off new ones.

    So if you have something secure, that's a decent subset of PHPBB's functionality, not too ugly (PHPBB isn't much in the beauty contest category anyhow), and with an efficient-enough way for moderators to deal with comment spam and Russian spammer registrations (in the PHPBB instance I still run, I've rolled my own extensions to handle this since what's built in is just too damn inefficient) ... if you've got that stuff sussed, there are plenty of people who'd take what you've started with and extend it. PHPBB is a main reason the PHP people have asked other groups to stop putting "PHP" in the names of their projects; gives the whole language a bad rep.

    --
    "with their freedom lost all virtue lose" - Milton
  14. Don't forget the why! by achurch · · Score: 4, Insightful

    Documenting how things work, from both a user's and a developer's perspective, is certainly important. But it's even more important to write down why your program works the way it does. Any reasonably skilled programmer can reconstruct the "how", given enough time--it's in the code, after all--but nobody can read your mind to determine "why" you chose a particular method of doing things.

    Without the "why", another programmer may be hesitant to change your code, even if he sees a potentially better algorithm, because he won't know whether it's safe to do so: Did you use your algorithm on purpose, maybe due to some aspect of the program structure that requires it? Does the rest of your program assume that the function will operate in a particular way? (I'm not going to turn this into a lecture on encapsulation or anything; this is just an example of why the "why" is important.) It's okay if your reasoning is just "it's the only thing that occurred to me" or "I don't like doing this kind of routine so I just rushed through it", and in fact, that sort of note will help others fill in any holes in your design.

    As for the code itself, don't worry! Everybody's gone through more or less the same learning process, so most people will be perfectly understanding, no matter how your code looks. (Of course, there are always those who leave snide comments, but like playground name-callers, the best thing to do is just take them in stride.)