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?'"

27 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 cnettel · · Score: 3, Insightful

      Nah, I'm not so sure. At least put some work in the docs. A guide to the design/architecture and some simple howtos to use the system. If those are missing, people might never even realize whether there is anything to gain from cleaning up the code. Asymptotically, all worthwhile projects will be found and improved upon, but we do not have infinite time, nor an infinite number of monkey^H^H^H^H^H^Hcontributors.

    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 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.

    4. Re:Just let them come by vtcodger · · Score: 2, Insightful

      Sure a powerful program documentation package could be (probably has) been developed. But before we try to run marathons, how about we try learning to crawl -- i.e. writing basic, comprehensible, accurate documentation in English or some other widely read modern language? (i.e. Not Japanese or Hungarian. Nothing wrong with Nihongo but Babelfish does amazing things when translating Japanese to English and probably vice versa. And it doesn't do Hungarian, Finnish, Urdu at all)

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  2. 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.

    1. Re:Nothing by babbling · · Score: 2, Insightful

      Exactly. The most important thing is that the source code is there, not that it is actually good. Once the source code is there, other people can help evolve it.

      Crap source code is better than no source code.

  3. 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?

    1. Re:Release. by snoyberg · · Score: 2, Insightful

      And as an added bonus, if you take the time to document, then even if no one else ever downloads it, it will be a lot easier for *you* to work on it in the future

      --
      Thank God for evolution.
  4. 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.
  5. 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.
    1. Re:It works? by Anonymous Coward · · Score: 1, Insightful

      ALL people who get paid to code are not writing professional code.

  6. 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.

    1. Re:Don't bother by Anonymous Coward · · Score: 1, Insightful

      so many negative vibes man, it gets me down. the person looking for the code may well be able and willing to work on or adapt the code themselves. why let your can't-do attitude kill the possibility for someone else to take over the project?

      -- AC due to hardware failure

  7. Crowded by shmlco · · Score: 2, Insightful

    I think it also depends how "crowded" that space is, in that if there's already a ton of decent to excellent forum packages out there, why dilute the space even further by posting your own?

    One of the strengths of F/OSS is that there are usually a lot of solutions to any given problem. One of the major weaknesses is that often there are too many solutions to a given problem, with the end result being that there are too few contributors spread across too many projects.

    --
    Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
  8. Dont want it 'ripped off'? by nurb432 · · Score: 2, Insightful

    Then you dont want to release it to the world as OSS. That is the nature of the game.

    Id not worry about being made fun of either, 90% of the 'coders' out there are probably worse. Your stuff runs and does what it should, be proud of that.

    --
    ---- Booth was a patriot ----
    1. Re:Dont want it 'ripped off'? by someone1234 · · Score: 2, Insightful

      Well, if a proprietary software companies don't want people crack their software they shouldn't release at all?
      If RIAA doesn't want their music ripped and shared, they shouldn't issue CDs at all?
      The copyright law should defend FOSS stuff just as much as it defends the above.

      --
      Patents Drive Free Software as Hurricanes Drive Construction Industry
  9. 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

  10. Perhaps rethink the non-contributing users by mr_mischief · · Score: 3, Insightful

    There are lots of established forum packages out there, and most people will use what they know or what Fantastico includes on their cheap web hosting. The way to get known isn't to take up space on SF.net and never get your code downloaded.

    What you want to do if your software is to be debugged and iterated into newer versions is for people to use it. If it's powering some sites that people like, they'll consider it for their own sites. If people are using it, someone will invest some time in fixing issues with it.

    Nobody wants to work with your code if there's no userbase. They can start from scratch themselves for that. If they want to work on something that's got user feedback, there are plenty of people using PHPBB, Postnuke, PHPNuke, miniBB, punBB, and more. Hell, would you ever have heard of Slashcode or Everything if some sites weren't using them?

    If your code takes a different approach to something that makes a difference on the front end or is more scalable than the existing solutions then that's what interests users and developers. Implementing the same features in a slightly different but equivalent way on the back end just isn't important to anyone. Better security, a cleaner plug-in/module interface, better performance on the same system, easier administration, more options, simpler customization of layouts and colors, broader database support, and better docs are big things. Doing a merge sort instead of a quicksort when sorting your posts just isn't.

    In short, differentiate your offering, get people to use it, and let your userbase decide what needs to be improved. Get someone involved who's going to be responsive to implement changes as needed so the users don't all migrate away. That's how you build a developer community around a project -- by making the developers care because they can see their work doing something.

  11. Also: Let us TRY the software, if possible by ivi · · Score: 2, Insightful

    If this system is still "standing up"
    you might give folks a quick preview,
    eg, by opening it to demo access...?

  12. Find a need; Fill that need. by Lisias · · Score: 1, Insightful

    It's not you that makes your code "OSS atractive", but it's the OSS people that decides what's atractive. If anyone finds your code useful, he will be grateful to you and can even make some contribution - the ones that he finds interesting, not you. No one writes good code all the time: it's the usefullness of the code that matters in OSS. However, if you aren't proud of your work chances are that nobody else will be proud of using it.

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  13. Last dude is right.... by axlr8or · · Score: 1, Insightful

    Programming is HARD work sometimes. Usually there is nothing rewarding about it, right down to the finished debugged released version. As long as its well documented, everyone will appreciate it. COMMENTS... That is the key. I like comments that change context within the function and return to the original context outside of the function. I mean other than that, I'm really tired of the so called coding conventions some people use. Its insane. I prefer the conventions taught by Jesse Liberty, Herbert Schildt, and other authors that makes things more uniform. Cuz unless your trying to protect your code, there is no reason to make it illegible. It seems to me, it turns out these hairball professors give you 'concrete' reasons why their way is best. Blah blah. If anything else, let someone else in on your work, and maybe he/she will help you document it. Which by the way, PDF PuhLEASE!!! It really helps to keep things local, specially on those stormy nights when your DSL is out. Just the same, thanks for donating to opensource. Stupid people like me really appreciate it:D

  14. You've got it all wrong by Rix · · Score: 2, Insightful

    First you get the sugar, then you get the power, then you get the women.

  15. Let's talk about Juvenile... by mcrbids · · Score: 2, Insightful

    My very first contribution to the OSS community can be found at PHPBuilder. Notice that the login names match?

    Anyway, take a look at the first snippet if you want to see truly simple, juvenile code. No error checking, etc. Except that it solved a need, and somebody else who was (at the time) more developed than I, took my stupid little proof of concept and turned it into something a little more robust. And so have a few other people.

    I don't recall anybody ever criticizing the simplicity and the juvenile nature of my first contribution. I would never contribute code like that again, but then, the lessons I learned from this guide me to this day.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  16. Re:You nearly had me... by FLEB · · Score: 2, Insightful

    Just as free speech can be an enabler for the distasteful, free code can also be an enabler for the distasteful. If you want the benefits of control, opt for control-- use a permission-based license. However, if you want freedom, understand and accept the lack of control that is freedom's byproduct. And, yes, I understand that one can write a license that prohibits distasteful uses of ones tools, and that is (and should be) in a writer's power. But to my mind, to place a "morally restricted" license under the banner of freedom in software says that author doesn't understand the concept of freedom. Freedom has to be as total as possible, or it's just relative freedom for a selected group.

    Also, consider that if you use a viral/copyleft license, like the GPL or CC ShareAlike, even if Microsoft were to latch onto the code, they'd still be bound by the terms and playing in the same field as anyone else who chose to download it.

    I don't deal in code as much as writing and images, but I've seen people get far too protective over their free work, which they're not planning to commercialize in the least, for no reason other than they think they ought to get a cut for someone else's monetization. (A bit off your point, but relevant to the Microsoft comment.) My personal stance is that when I intend to license things openly, I do it as openly as possible (Credit requested but not required, no verbatim redistribution (for images), and no misrepresentation of source or libelous use. All else is fair game).

    The way I see it is that the playing field is level, albeit a bit higher now-- yes, some work is already done for anyone who wants to commercialize my work, but then again, that same work is available to everyone. Anyone has the same chance to make trillions of dollars off this platform if they can bring the right things to the table. If someone has the further wherewithal and the resources to cash in (using a resource forced to be a commodity, no less), then let them reap the rewards of their industriousness. I sure wasn't going to do it.

    --
    Information wants to be free.
    Entertainment wants to be paid.
    You just want to be cheap.
  17. 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.)

  18. The underlying premise is all wrong by fzammett · · Score: 2, Insightful

    You have entirely the wrong mindset by just asking these questions. Open-source is actually very simple:

    1. Does the code you wrote server a useful purpose for YOU? Is it something that solved a particular use case FOR YOU?
    2. If yes, then release it. Period, end of story.

    I used to be concerned with how my code looked to others, of trying to come up with the "next great OSS project" that everyone would get onboard with. Then I realized how wrong all that was.

    Write code that YOU want to write (that's called "scratching your own itch"). Put it out there for others to use, as-is or by taking it and making it their own my modifying it. If you're releasing code for ego, or to make a name for yourself, that's the wrong answer right off the bat and it's likely you'll never succeed. at doing either.

    That's not to say that if you have an idea that you think is a good one, even if it's something you don't really need yourself, that you shouldn't do it. On the contrary, altruism is a fine motivation, if you think the idea will help others, then by all means have at it. It's better if it's code you yourself intend to use, but that's not a requirement.

    Like I said, it's simple: if the code is useful to you (or you believe it will be useful to others), then release it, and that's that. Don't worry about anything else, you've already succeeded if you do just this. Someone will always bash your code, someone will always think they know better, but that's not your problem because if they actually DO know better, they can take your code, fork it and re-mold it in their image. That's the whole point of OSS, and if you don't get that you shouldn't be releasing anything at all. It shouldn't be about ego, even though it always is a little bit whether people want to admit it or not (the trick is making sure that's a secondary or even tertiary concern, just a very minor part of it).

    --
    If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa