Making Your Code OSS-Appealing? 180
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?'"
Just let them come (Score:4, Insightful)
Re: (Score:3, Insightful)
Re:Just let them come (Score:5, Insightful)
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.
Re:Just let them come (Score:5, Interesting)
Re: (Score:3, Funny)
Re:Just let them come (Score:5, Funny)
(I'll pass on vi. If you can't say something nice ...)
Re: (Score:2)
Re: (Score:3, Insightful)
Re: (Score:2)
Re: (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.
My Hat's off to you, sir! (Score:2)
Even though I did not ask this question (not even thought about it really), your answer got me to thinking about it from that angle, and various little projects I've messed around with and had fun with will now require some more work on my part. I don't see it as an inconvenience, but an oversight on my part that needs corrected.
Even if I could care less about anyone else being able to figure out what I was up to, the benefits for me alone are making the extra work on doc's desirable...I've lost stuff befor
Re: (Score:2)
Don't forget the why! (Score:5, 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 [google.com], but like playground name-callers, the best thing to do is just take them in stride [slashdot.org].)
Re:Just let them come (Score:5, Interesting)
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!
Re:Just let them come (Score:5, Informative)
Re:Just let them come (Score:5, Insightful)
Re: (Score:3, Interesting)
It seems to be working on me
Re: (Score:3)
"> 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,
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
I don't know about that, in my experience anything that is built in to Java is probably best rewritten anyways, at least if you care at all about how fast your stuff runs (I'm a simulation weenie, so to be fair, my POV may be biased too far in favor of speed than the average programmer, which of course does make one wonder why I ever decided to use Java for
Also, it can't be that bad (Score:2)
Note that, in a form of poetic justice, I am not thrown into a system where I am working on refactoring and rewriting someone else's total f%$#ing unmaintainable mess (and it is
Crowded (Score:3, Insightful)
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.
You nearly had me... (Score:2)
I've had people that use my stuff at NASA, the Pentagon and even Disney.
Until that quote I was thinking, 'maybe I should put my shite up on sourceforge'. NASA would be cool, but... I suppose the image in the mind is of one's code being useful to fellow geeks with similar liberal leaning mind set, but so far as I know there isn't an IPL (Ideologically Pure) license. Nothing stopping even Microsoft from using the GPL, other than the fact that they break out in hives at the mere thought.
Re: (Score:3, Insightful)
Re: (Score:2)
Or in other words, forget about it, if it is truly bad, people just won't work on it, and it'll die the
Re:Just let them come (Score:4, Interesting)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Well (Score:5, Funny)
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).
Re:Well (Score:5, Informative)
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.
Reply Button (Score:4, Informative)
Not the best visibility, though, admittedly.
Re: (Score:2)
Re: (Score:2)
Considering the majority of OSS code, if I were to release any of my code, I'd have to make it more amateurish.
People moderated this funny, but I was going to say the same thing. Much of OSS software is *horrible*. My favorite whipping boy is 'ssh'. What a pile of dog-poo that code is, and it's a critical application!
If this guy releases his code, he will have lots of company. Very few people seem to care about making pretty, well organized, well commented code.
Proven solution to making your code look pro ... (Score:3, Funny)
Just cut-n-paste the following lines multiple times in each source file ...
Let's talk about Juvenile... (Score:3, Insightful)
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 na
Nothing (Score:4, Insightful)
Re: (Score:3, Insightful)
Crap source code is better than no source code.
as gandhi said (Score:2, Funny)
I think you have that backwards. First they ignore you, then they laugh at you, then they fight you, then you win.
Re: (Score:2)
Re: (Score:2)
You've got it all wrong (Score:3, Insightful)
Re: (Score:2)
Release. (Score:4, Insightful)
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?
Re: (Score:3, Insightful)
Release it anonymously (Score:5, Funny)
Make it a needed product. (Score:5, Interesting)
Do you see a sign that says "dead code storage"? (Score:5, Insightful)
Re:Do you see a sign that says "dead code storage" (Score:4, Insightful)
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
Re: (Score:2)
And SF.net provides little means to determine whether code i
Re: (Score:2)
Re: (Score:2)
The main point being, this was a "throw away" application
It works? (Score:5, Insightful)
It you planned it, and then executed the plan to completion, there's nothing "amateurish" about that. This is one
*definition* of professional work.
Nobody would care, most likely. (Score:5, Interesting)
I make video games [allegro.cc] 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 [archive.org] 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.
Re: (Score:2)
Small games I liked:
Closed source: Starscape, Lugaru.
Open source: Scorched 3D, Tux Racer (IMO the proof of that it's possib
Re: (Score:2)
Release it then... (Score:3, Interesting)
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.
Don't bother (Score:5, Insightful)
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.
Re: (Score:3, Informative)
Don't listen to him, goldcd. Nothing is inevitable. I have picked up a number
OK (Score:2)
I spent a year or so fire-fighting bugs and bolting on some superfluous Bells and Whistles, but basically it now does what I'd wanted it to do from the start.
Now the functionality is there, the next step would be to convert it from a PoC to a proper product - i.e. re-write all the code from scratch. It's this bit thats not very inspirational, load of work to get something that appears to be the same from the outside. Wouldn't mind doing it if it would be of use to other
Re: (Score:2)
Re: (Score:2)
just what we need (Score:2)
@:0)>
Everyone has pet projects
If it does add something, a new way to handle captchas, cheaper DB access, better CSS templating or whatever then arguably
Calm your Ego. (Score:2, Informative)
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, mu
Re: (Score:2)
There's no excuse for crappy comments, though. Takes the same amount of time to write a good one as a bad one.
Re: (Score:2)
But I quiver in terror at the possibility that the parent is serious, so I'll bite. Simply because the parent is SO wrong that I can't risk it.
For a big project this could be a major problem.
Sorry to be abrupt, but... No. For a big project, coding in the parent-specified manner is a major problem. Lax coding style may make personal/small projects simpler and easier to implement, but it doesn't scale.
Code that "does the job best" is code that is robust, extensible, and maintainable. In a
Dont want it 'ripped off'? (Score:3, Insightful)
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.
Re: (Score:2)
Even the BSD folks seem to want something in exchange of their code.
This is not necessarily money, most people are happy with patches or simply need attribution.
Re: (Score:2)
I'm not saying that they may not want something in return, but if you relase it pure OSS, you take that chance. And, more then likely someone will take you up on it.
Re: (Score:3, Insightful)
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.
Re: (Score:2)
If you release your code OSS style, you have the reasonable expectation that someone is going to reuse parts of it and not contribute back to you. And if they do, they currently have the law on their side.
I really see a difference in the 2 distribution methods..
Nah (Score:2)
The only difference is that many FOSS developers couldn't afford a lawsuit.
But, that is not because of open or closed source. Stacker couldn't afford a lawsuit against M$ either.
Re: (Score:2)
Just release it (Score:4, Interesting)
A PHPBB alternative? (Score:5, Interesting)
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)
Re: (Score:2)
as long as it works.... (Score:3, Funny)
Perhaps rethink the non-contributing users (Score:4, Insightful)
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.
post it up anyway, with disclaimer (Score:3, Informative)
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...
Also: Let us TRY the software, if possible (Score:3, Insightful)
you might give folks a quick preview,
eg, by opening it to demo access...?
Actually (Score:2)
Think what I shall do is take the existing site (bobpitch.com) and try and re-write it nicely (well fix the stuff I know is very wrong). As code comes out the other end I can bolt it onto the demo system. Hopefully this'll let people see what it's supposed to be doing and allows them to make the decision of whether or not they're interested very quickly.
Thanks again.
Give me a break (Score:2)
Licensing? (Score:3, Informative)
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.
post it for SkyNet (Score:2)
someone might need a small bit (Score:4, Informative)
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.
Project Management (Score:2)
Re: (Score:2)
Never wait (Score:2, Interesting)
Announce It (Score:3, Interesting)
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.
Re: (Score:2)
Apparently code quality is not a factor (Score:2)
Use != Lechery (Score:2)
Contribution to the public domain is first and foremost a civic responsibility, whether it be in the form of building a playground, healthcare, scientific research, or software design & development. It is an act of charity that one performs with the hope and expectation that it will benefit the community. Whether or not the community will volunteer its efforts to further develop s
Lechery? (Score:2)
The underlying premise is all wrong (Score:3, Insightful)
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).
The OSS community is not your boss (Score:2)
Not going to work (Score:2)
Contribute it with no worries. (Score:4, Interesting)
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.
It was late and I didn't make myself clear (Score:2)
I could just encrypt the source and hurl it out into the world as it is - take it or leave it. Just if I'm going to put the effort into documenting/re-writing before OSS release, I would like the effort to be appreciated by people reading the documentation and poking at the code.
*whines*
Not really a PHPBB clone (Score:2)
Not really designed to be a repository of information for a large number of users, rather a glorified IRC channel.
Site is bobpitch.com - and was designed to look similar to popbitch.com