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

51 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 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! :)

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

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

    6. 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
    7. Re:Just let them come by Antique+Geekmeister · · Score: 3, Interesting

      Or better yet, find a more popular PHPBB tool and send the authors a note saying "I did these useful things, do you want them?", and encourage them to merge in the features or make the customization easily available. This works very well for Webmin.

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

    9. Re:Just let them come by Ash+Vince · · Score: 2, Interesting

      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. No, they should not be ignored. Instead try telling them how completely unhelpful they are being are ask them to be more constructive in future. If everyone tells them this they might eventually listen and grow up.

      It seems to be working on me :)
      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    10. Re:Just let them come by garett_spencley · · Score: 2

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

      "> No, they should not be ignored. Instead try telling them how completely unhelpful they are being are ask them to be more constructive in future. If everyone tells them this they might eventually listen and grow up.

      It seems to be working on me :)"


      You are a juvenile arsehole, who is copmletely unhelpful. In the future, should you wish to actually contribute something useful to society instead of just trolling away your adolescent urge to put others down, I strongly suggest you begin by making an effort to offer some sort of constructive criticism. It is completely fine to disagree with someone or feel that they can do something better. However, flaming them and telling them that their code is shit without offering any helpful advice is, as has already been stated, juvenile.

      I hope that as a result of my response you may finally listen and grow the fuck up.

      Always glad to help :)

    11. Re:Just let them come by DMUTPeregrine · · Score: 2, Funny

      I find it somewhat sad that VI/EMACS would be associated with hardcore developers only. I don't use VI much, but EMACS is one of the most powerful editors for any kind of text around. And it is FREE!

      --
      Not a sentence!
    12. 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
    13. 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. 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.

    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.

  4. as gandhi said by User+956 · · Score: 2, Funny

    I'm afraid it would be laughed at and ignored.

    I think you have that backwards. First they ignore you, then they laugh at you, then they fight you, then you win.

    --
    The theory of relativity doesn't work right in Arkansas.
  5. 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.
  6. Release it anonymously by Colin+Smith · · Score: 4, Funny

    Problem solved.

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

  9. 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.
  10. 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.
  11. 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.

  12. Release it then... by croftj · · Score: 3, Interesting

    As I see it, if you want to make it available, you have to risk the luaghter and all. Either that or don't write armature looking code in the first place.

    With that said, I would release as is and work on cleaning it up. If you don't want to make that effort, if it offers decent enough features someone will start the effort of cleaning it up. Otherwise, it will do like 1000s of other projects on Sourceforge and wither away, most likely deservedly.

    --
    -- Many men would appreciate a woman's mind more if they could fondle it
  13. 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 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.)

  14. 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.
  15. 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
  16. 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

  17. Just release it by Eravnrekaree · · Score: 3, Interesting

    Just release the code, and let people decide whether or not to use it or clean it up. Do not be embarrassed about the amatuer code. You can provide it in an as-is condition with a disclaimer that you will not be doing any more work on this code and if people want to improve it, they are free to do so themselves. I would say releasing the code in an imperfect state is better than not releasing it at all. It can't hurt anything, if you provide the proper warnings about its state.

  18. 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
  19. as long as it works.... by 3seas · · Score: 2, Funny

    ...being ugly might just help protect it from stupid software patents.....

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

  21. 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.
  22. 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...?

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

  24. Proven solution to making your code look pro ... by tomhudson · · Score: 2, Funny

    I'd be ashamed of what 'proper' coders would think of my amateur offering -- I'm afraid it would be laughed at and ignored

    Just cut-n-paste the following lines multiple times in each source file ...

    // hack for f*cking Internet Explorer css screw-up

    // g** d*** MicroSh*t - got to fix this next section sometime

    // WTF? Bug only in IE, on alternate Tuesdays, in months with an "R" in them!!!

    // Okay - this works fine in Opera, Moz, Safari - fuck IE. Let a MicroSerf fix it, or fix their ^$%! browser!!!

    // WARNING: *** UNCOMMENT THE NEXT 3 LINES FOR INTERNET EXPLODER COMPATIBILITY MODE! ***
    // if(browser == IE) {
    // alert("get a real browser, you moron!");
    // }

    After all, everyone knows one of the reasons it took so long to make the Netscape Navigator source available was "cleaning up" the source code to remove all the "F*cking Microsoft POS crap" comments,

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

  26. 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.
  27. 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.
  28. 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.

  29. Never wait by Square+Snow+Man · · Score: 2, Interesting

    Release early, release often if you want other people to get involved, if you just write everything yourself and release it afterwards i don't think many people would really care unless it is a really interesting project. The website you are going to host your source code doesnt really matter (that is atleast what i think, i can't think of any good reasons why one site would attract more developers then the other), so you might aswell put it on sourceforge or freshmeat. After using some search engines i found this site which might be of interest for you aswell. In short, try to get people involved early.

  30. Announce It by Evets · · Score: 2, Interesting

    I follow plenty of other people here when I say just release it. I personally have quite a bit of half-written software that had potential at one point but has gone by the wayside because I never released it. It's easy to get caught up in self doubt or waiting until you can clean up the code and add a few comments.

    Just F'ing do it, and announce it to a related community. If it's a phpBB alternative, announce it to their community. Don't spam, but just posting something like - I like phpBB, but I saw a few drawbacks so I decided to get my own thing going, if you are interested check it out. Don't get into arguments, and make it a point that you aren't spamming, just passing on the link and the code to those that might be interested.

    From there, just keep doing your own thing. If it gets to a point where you think it really has potential consider spending some money doing a little bit of advertising - nothing huge, but a few adsense ads or similar in webmaster forum admin communities.

    If you really want to get people to try your software and use it, be sure that it has an easy install and basic system requirements. WordPress' 3 minute, 1-click install was a marketing dream - especially considering how much of a hassle their competitors were to get installed when they first got started.

    Also - if you can, offer binaries or a preconfigured download for common installations. Or maybe just a few sample configuration files that take you beyond a no-frills install. The easier it is to try a piece of software, the more likely people will be to try it out.

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

  32. 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
  33. Contribute it with no worries. by PotatoHead · · Score: 3, Interesting

    I went through this a while back with a 3D STL file viewer. I originally wrote it in the classic, "Scratch an itch" fashion for my own use. It was also to explore OpenGL a bit. At the time, I had an SGI, some docs and some time. Enjoyed it a lot and learned a lot. It was a C project and C was something I really had no serious experience in.

    I'm totally not a professional developer, but I can say it ran good and did what it was supposed to. I could feed the thing ugly, huge files that had nothing to do with CAD, big files that did, etc... and it all just worked nicely. What more does one need? If it were written in total bad ass style, it would still do those things, so who cares?

    When I put the thing on SourceForge, I was nervous. Turned out to be a complete non-issue. (viewstl, BTW)

    Got a lot of downloads and people were totally cool. I got patches sent in for a coupla stupid bugs. No brainer to just add those and bump the project rev.

    One guy, teaching comp-sci, sent me an e-mail about the code. He used it for some class project. Some of it was actual viewing of files. The other use was to give his students an example of some code and pose a, "what would you do?" kind of thing.

    At first, this pissed me off huge. However, he did send me the class notes and my program annotated with great comments! I refer to that document to this day as it's essentially a really solid comp-sci course study, tuned for my specific needs!

    He and I bantered around about this. At the end of the day, it's better to post it as people can use it. They will use it and that's good. Some of the OSS stuff you may be running now is highly likely to be no better than what you contributed and do you care?

    I sure don't.

    That hunk of code improved some as I took some of the comments, learned some stuff, then revised the program. I learned enough to realize maybe some of them were more academic than I cared to deal with, so I ignored those. Nice to get to that spot in the first place! Took that time to rebuild it on Linux, having set a machine up, it was a perfect get my toes wet kind of activity.

    Later, it ended up as part of some product being commercially produced in Germany. They wrote me, wanting license terms that made sense for commercial distribution. The trade was their patches for some new functionality, so the project improved, and my name somewhere on the box, and a donation to the FSF. No worries there. They got their license, the project saw some more code.

    Guess what? Theirs really was not a whole lot better than mine!! Pretty funny actually.

    Bottom line, through all of that, nobody ever contacted me with any kind of "you fricking lamer..." kind of stuff. The code got used and those users would not have had the chance had I been worried about how much of a bad ass I might or might not be.

    So, just post it up. My experience is that most all people are pretty cool. You never know where it might lead to, and it's a great way to give back to the nice body of code you might be running right now. That is how it improves every day. Why not?

    Today, it's just there being used, from time to time. Once in a while I get an e-mail about it. No recent patches these days, and that's likely due to the thing doing what it is supposed to do. Most are some question, or answering my request for occasional feedback. I wanted to know what people did with it, out of pure curiosity.

    If it's useful, people will use it, period. I wouldn't post crap, knowingly anyway. But I would post up something that is useful, because it's gonna matter to somebody somewhere.