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

10 of 180 comments (clear)

  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.

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

  3. Make it easy to set up by Anonymous Coward · · Score: 1, Informative

    The most important thing is to make it easy to get your code up and running in a sandbox quickly. If people can try it out and find that it meets some or a lot of their needs, they'll be willing to tweak it the rest of the way, often regardless of the amatureishness of the code.

  4. 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.
  5. Calm your Ego. by jellomizer · · Score: 1, Informative

    While there are a lot of people willing to criticize your coding including yourself. Very few people write code and when they look back at in a year or so go what the heck was I thinking! Sure it works but what was I thinking I could have done this much simpler.

    That is part of gaining experience. When a problem is hard one year the next it becomes common practice. I use to be worried about things like this and looking good to other programmers. But after spending a lot of time with other peoples code, much of it written when I was just learning to program... Back when I was 6.... I realize that most of the time the program that does the job best is not the one that will get you an A+ on you Computer Science Final. GOTOs Ugly Comments, Global Variables, over sized arrays, all those things that will make a CS Professor cringe in fear is actually quite common in real life and much of the time it is organized in a useful manor... GOTO for error conditions so you don't need levels on levels of IF statements to check you code. Global Variables So you don't need to pass by reference, so you can fix a module without having to add an other reference, then having to fix all calls to use module to add the extra reference... For a big project this could be a major problem. Ugly comment are better then No most of the time. Over Sized arrays to avoid pointers makes sure you don't leave memory leaks, as easily. Real Life and School Computer Science are much different. Sure strive for good form as much as you can but don't force it to a point where it is hindering your efficiency.

    --
    If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  6. Re:Just let them come by jschimpf · · Score: 2, Informative

    I agree with this sub-thread. I've been on both sides of this as a user and as an author. I can tell there is not much more frustrating that wanting to use some piece of code (that does close to what you want) but being prevented from using because you cannot figure out how to change it and the author has no internal or external documentation. In effect you have to do the whole thing again and get inside his head to get to the point of changing it. At that point you usually bail and do your own kludge.

    If you want your stuff received well try to document it so others can understand what you have done. There are many ways of doing this but two I have found most useful are (1) Good external documents (it goes in here and comes out here) documenting how to use the code and some examples are really nice. (some of the best I've seen was in libsndfile http://www.mega-nerd.com/libsndfile/ where I've never needed to change the code and external descriptions make it a breeze to use). (2) Internal documentation where you document how it works and have meaningful headers on your routines so the user can see what the input/output variables are and what the routine does. This has worked on code I have put out. I have been pleasantly surprised by users adding things (which I've incorporated) or fixing things.

    Also you have to see it as a gift whenever you get a note about the code from someone, even if they want a bug fix. I try not to get burned out on this and try to see it that someone was interested enough to try to use my code even if it doesn't work and they are giving you another chance.

  7. post it up anyway, with disclaimer by smash · · Score: 2, Informative
    ... don't be ashamed of it, acknowledge that there are areas to be fixed, and see how it goes.

    If there's any good points to the project, it will either survive, or be integrated into something else, either way software (on the whole) will progress.

    Hiding it away never to see the light of day benefits no one...

    --
    I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
  8. Re:Don't bother by Anthony+Boyd · · Score: 2, Informative

    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.

    Don't listen to him, goldcd. Nothing is inevitable. I have picked up a number of dead projects and resurrected them. In fact, in some cases I've then left the project to atrophy, and someone else picked it up from me. In fact, my work has been right in your domain, goldcd. I've done something like 35 or 36 phpBB modules. I resurrected the phpBB blog module, the phpBB custom fields module, and a lot of others. Many were dead, some just needed a senior developer to clean up code, some just needed features. One of my feature specialities was adding EasyMod compatibility, so that n00bs could install modules without needing coding skills.

    Post the code. Yes, put it on Sourceforge... or whatever the GNU equivalent service is. There are a lot of places to put it. Don't worry about the quality of the code. That's what people like me are for. Many people do cleanups on the weekend, for fun. Post it. Stop worrying.

    (But I will agree with a previous poster -- if you have any inclination to do documentation, that's really, really helpful. You need a high-level install guide for beginners, a low-level mod guide for developers, and liberal comments in the code. Well, you don't NEED it. But if you do that, adoption will go two or three or four times faster. And having some is better than none, so post something incomplete rather than nothing.)

  9. Licensing? by sumdumass · · Score: 2, Informative

    I would just release it with the comment about some stuff you did when learning and now you don't have time to mess with it but hope someone can use it. Sort of what you posted in the article submission but a little more compressed.

    But something you should look into is the license you would like to release it under. And I mean look carefully. If you go the GPLv3 route, you are basically certifying it to be patent free or if there are patents that everyone has a license to use it. This is mostly important for plausible deniable-ility which probably won't get you out of trouble if something is actually in the code, but it goes a long way to lessening some of the ramifications. On the other hand, if you are certifying it by the requirements in the GPLv3, you loose that innocent look. For me, this would be a no go because I'm not taking the fall for something I don't care enough about to research. I would use the GPLv2 and maybe let someone else take it to v3 with the or later versions. The only question there is would you agree with later versions of the GPL. And that is something you will have to look into yourself.

    So anyways, it doesn't really matter which license you place it under. As long as you understand the implications of those licenses along with the attempted goal of them. It sounds like a BSD license isn't going to be good for you (people just to 'rip off' as is, and never contribute anything.). But at least understand what you are getting into with the licenses and make an informed decision over them.

  10. someone might need a small bit by pruss · · Score: 3, Informative

    It's worth noting that if you post the code, it will get into Open Source code search engines, and then someone searching for, say, a particular subroutine, or a newbie trying to figure out how to do something (perhaps something very simple), will be able to benefit and either use or learn from the code.

    I've posted a lot of very messy code that does various Palm-related things. I get a lot more downloads of binaries than source typically, but nobody's complained that the code is messy, ugly or whatever. It's a gift horse, after all, and in my experience everybody understands that. Put a disclaimer about the code being messy if you like.

    My advice is: Swallow your pride and post it. Nobody loses (unless you can make some money from its staying closed), and someone might gain.