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?'"
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.
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).
Steve's Computer Service, Hobbs, NM
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.
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.
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?
http://www.tenjou.net/
Problem solved.
Deleted
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
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.
Unless it is the next big thing, if you wrote sloppy uncommented code don't bother wasting your time and ours. Now even if it is another re-invent the wheel project, if it is KISS, and very well layed out, well commented, with plenty of documentation and finally if it installs easily and is useful: Then somebody somewhere will use it and improve on it. My advice: Learn OSS by contributing -even if very humbly- to existing popular projects, then spend time on your own stuff.
The government has a defect: it's potentially democratic. Corporations have no defect: they're pure tyrannies. -Chomsky
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.
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.
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.
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
> 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.
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.
There's a lack of phpbb like systems after all ... release it immediately!
.. thing is that systems like this take time to document, understand and integrate. At the end of the day does your system add anything to the gamut of CMS (see eg http://www.opensourcecms.com/) - if not why release it? [that's a genuine question, I'm sure there are valid reasons]
@: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 you're better distilling those parts into mods/libraries for currently popular systems. That way the advance that you've made can be used and developed by more people.
I'm really not trying to be down on your contribution, btw.
Obfuscate it as much as you can, use no comments at all, write no documentation, make sure only you can understand every bit of it. Else, it will be stollen by big and evil companies!
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.
Convention/Optimization are both important, they make life easier for everyone using your code. However, it may not be practical for you to do it. If somebody else wants to, that's wonderful. But in many cases, you will have to decide if your revisions will be worth making.
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.
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 ----
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
Loose lips lose spit.
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.
Don't let all the prima-donna crap get you down!
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.
... 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.
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)
"with their freedom lost all virtue lose" - Milton
...being ugly might just help protect it from stupid software patents.....
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.
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.
If this system is still "standing up"
you might give folks a quick preview,
eg, by opening it to demo access...?
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
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
Have you seen the OSS out there? If you're worried about how your code will look, obviously, you haven't looked at what's out there. Unless your code is going to come alive on it's own, creep out of the computer, and strangle me in my sleep, it cannot possibly be the worst code I've read. Get over it, and post it :-)
Beer is proof that God loves us, and wants us to be happy.
How to make your code appealing ? Say you are a girl !
The question was not how to make the code available, any idiot can put the code on SF or Google's code hosting. It was about making it OSS appealing. Dead upstreams aren't appealing, with good cause. Nobody knows the code better than the author, and for something user centric and internet enabled like a phpBB replacement (itself already a security nightmare), you want someone to be watching over the code and accepting security patches at the least.
And SF.net provides little means to determine whether code is worthwhile or not -- it mostly just tells you whether something exists or not. Ohloh at least tells you things like how many comments there are, how many contributers there are and how significant their contributions have been, how long it's been under development, etc. Releasing the code's the first step, but not the only step to making code appealing.
I Browse at +4 Flamebait
Open Source Sysadmin
"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?'"
What? Am I missing something here, or what? If you don't want people to use your code however they please, don't make it open source. This might be a very intentional flame, but I think you're being a whiney bitch if you're complaining about people squandering your hobby-work.
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.
Don't worry about it man. Like some have already mentioned, if you want the project to continue to live, you might have to stay with them for a while to manage the process, then appoint some people to take care of running it after that.
If it's really good and you can't stay, people will just take it and modify it themselves to fit their needs, or some people might feel similar feelings towards it and decide to work together to continue working on it.
Either way, I think it's better to upload it than to simply forget about it; You might not have a life, but not uploading it and forgetting about it would mean that all those years were a waste of time and was ultimately a failure, is that how you want to remember it?
I worked on The Instagib Project on my own for about a year, but the entire time I created documentation, forums, articles, tutorials, and a wiki for it. The Subversion was public so people could check out the code. I stopped working on it though because I got tired of it (Few people were interested in it, then again it could be that very few knew about it). The entire site has been inactive ever since (Like I said, it was all me, with the occasional passer-by awing at the game, then leaving). Although it was technically a failure, it's nice to realize that I was able to do all of that on my own (I started when I was 16 and I only had a little bit of experience in programming), and it'll be great for a resume in the future.
- Jorge Peña
Just cut-n-paste the following lines multiple times in each source file ...
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,
Ok. Then to mention maybe the most important thing to make the code appealing to work on: a clear and commonly used license and copyright statement. If it is isn't licensed as stock Public Domain/ BSD/MIT/X/GPL/LGPL, people may be afraid to spend any time on it as they can't distribute the results, or even know that without visiting a lawyer.
Do-it-yourself licenses are generally a bad idea for the above fear-of-the-unknown factor and the IANAL mistakes. (eg the common "No commercial use" clause is useless. Is a partnered research grant paid university grad student allowed to use it? Are you 100% sure you can prove that in court to some lawyer from outside the campus science culture?)
And a simple "(c) me 2007" grants the reader zero rights to redistribute without breaking copyright law.
suggested license guide, by some random AC on slashdot:
Public Domain: here it is, go for it, walk away
BSD: if you don't care about others potentially getting rich from it, or MS using or abusing it; but some attribution would be nice. Take the chance that more users than the GPL would allow translates into more volunteer code return.
LGPL: It is a piece of infrastructure and you'd like to see it grow into something better.
GPL: It is a client and you'd like to see it grow into something better.
--same AC
First you get the sugar, then you get the power, then you get the women.
The trick is to not release code for something that already exists in a better form with the same open source license and has a strong following. So don't release your ad&d dice roll code and expect people to jump in and support it. Find something new that no one else is doing very well, or where your code offers something substantially different from what already is going on.
I'm curious why you felt it necessary to roll your own 'alternative' to PHPBB rather than support it with your modifications? Why would you expect others to them extend and support yours?
I had had a library of specific types of math operations that I posted somewhere, I think on FreshMeat, where I did get some feedback from at least two people that used it in their own projects, although I was never able to finish the project for which I made the the library.
I'd say post it, with a description including the caveats you just gave. Even if no one is interested now, sometime in the next 100 years or so, computers will learn or be taught (depending on your point of view) how to program, and having a nice, big corpus of Open Source software to learn from will be useful in accelerating that process. Mike
"Not an actor, but he plays one on TV."
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.
I try to write in different colors and decorate the comments with drawings of flowers, pink ponies and those Gnus from Africa (I draw those in brown). I put little hearts over the "i"s and include smiley faces in the output.
It must have been something you assimilated. . . .
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 before where I had figured out some stuff, all the ins and outs, the relevent crap, etc.- and lost it all.
I'll now have to take 3 steps forward and 2 steps back due to my slackness in an offsite backup(DO NOT yell FIRE in my house, you insensitive clod!
I'm getting older than dirt- just can't remember most of it anymore...what I was thinking THEN to make it work?....How did THAT work again (the easy way compared to the hard way)?, etc.
I now am almost fanatical about backups, but looking back on the few things I could recover I have to sometimes wonder: WTF?
You have hit the nail on the head...with an atomic sledgehammer. I salute!
I have learned the hard way that you speak truthfully and wisely. *bows down in homage*
*disclaimer: turn down sarcasm filter-in a strange way I am not joking...I really appreciate your post as a wake up call/WTF?!-Did you forget the basics, fool? kind of thing-really*
Down With Slashdot BETA!!! I've been around the corner and seen the oliphant; you can only abuse me from your perspecti
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.
Note that there is a *lot* of totally unmaintainable crap out there under open source licenses (I will admit to a few earlier projects which fall under that category-- I waked away from them for that reason). If you think your code may be bad, I can pretty much guarantee I have released worse code than you a number of years ago :-)
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 even worse than anything I ever wrote). If you want a taste of how *bad* open source code can be, SQL-Ledger floats to the top of my list.
However, the big issue is that, if you are not there to guide the community, the code won't go anywhere. You are better to advertise it specifically, get other people involved, and then announce it to the world.
LedgerSMB: Open source Accounting/ERP
It's about 1% about how good the code is and 99% about how good you are as a distributed project manager, so I'd stop worrying about the code and start working on your project management skills. If you don't want or plan to be a project manager, then your code is going nowhere if and when you release it, no matter how good and useful it may be.
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.
I agree, if you don't want to keep fixing it, updating it etc... Than you'll be better served by hosting it at your blog, maybe post it at freshmeat... By the way, to answer the question how to make it appealing. Then your code doesn't have to be pro... Just fairly good... there's a lot of very bad OSS code out there, and people doesn't laugh... If you want to make your project appealing, then just write a little documentation. That would make the code very appealing.
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.
Karl Fogel of Subversion fame has written Producing OSS which contains many good pointers on how to run a OSS project. Perhaps you can find some pointers there.
I'd like to know how to get other developers involved in a project as active contributors. I maintain a project where users often send me bug reports or patches, but I'll be leaving student life for a job soon and I'd hate it to just stagnate into irrelevance because I don't have time to drive it. I'm starting on getting the documentation jacked up, but is there any other advice from people who've done this?
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.)
Maybe I didn't put that quite right.
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 people, but if it's never going to get picked up by anybody, then it is wasted effort.
an excellent idea, thankyou.
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.
Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering. I sense much fear in you.
We often refuse to accept an idea merely because the tone of voice in which it has been expressed is unsympathetic to us
By ripping off, I just meant taking using and never extending, raising bug reports/feedback/code changes etc.
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*
Rather than having a subject header page and then X many pages of flat replies posts following, it allows new threads to be posted and replies at any point (i.e. makes a tree). Main page is just displaying x many parents and their respective rely trees on one page.
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
Since taking V1agra(tm) noone has laughed since I whipped out my code. Everyone has been amazed at its size and beauty.
If you'd like your code to "stand up" better, get some pills from $OnlinePharmacy!!
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
Whenever you think your code needs cleaning up, just look at osCommerce.
I would have to agree with this stance whole heartedly. I wrote a little bastard love child utility for Windows C++ coders, and the code itself is written in .NET because I was feeling especially lazy that day. I've since had a few people download it, most say they liked it, and only one person mentioned that I could probably make it run faster if I used a DLL from the Wine project instead of invoking the Visual Studio tools and parsing their results.
The main point being, this was a "throw away" application that I wrote one day in about an hour. I made a few bug fixes here and there, and then I've since left it to rot up on SF.net. I still occasionally use it, and apparently some other people do too. I only uploaded it because I felt that if I had a need for this, someone else out there might need it as well. Apparently I was right.
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 said contribution is not the right question to ask, but rather, exactly how and in what ways will said contribution in fact be uniquely beneficial and/or needed.
OSS is fundamentally a vehicle for the redirection of human effort from perpetual reinvention of the wheel toward meaningful progress, from the perspective of both its contributors and its users. If your contribution helps a teacher somewhere teach more effectively, a group of researchers research and collaborate more effectively, etc., your role in that is something for which you should only take pride.
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
...and any design info, then add in tons of #defines (or whatever language-appropriate construction) to allow for every conceivable platform, have a bizarre source-installation scheme, give Windows short shrift, etc.
I learned all that from Apache. HTH.
Seriously, just post it.
Release it as you see fit. People will whine even if you perfect it, so just do it your way.
'For we walk by faith, not by sight.' II Corinthians 5:7
How many forum software are out there? Unless your forum is way better than any other one out there, which I really doubt, because custom-made software without large deployments tend to have many rough edges that took many years for the major ones to clean up, there is no way the software will evolve without strong leadership. OSS that really works is driven by a strong community. The idea of releasing software you no longer want to support to an OSS community is absurd. Releasing as OSS will take you more effort to start with than if you kept maintaining it by yourself. Developers don't come by themselves. You first need to attract users, which means supporting it for a while. Then some developers will come, but they will need direction. Sure, in a few years, the project might fly on it's own, but not tomorrow or any time soon.
This really seems like a modern cliché for the idea of just placing something on The Internet and making millions. That's the kind of thinking that brought us the dot-com crash.
Seriously, if you don't intend on supporting it, do the world a favor and don't add yet an other forum on sourceforge. Delete the code from your computer and never think of it again.
Qui ne va pas à la chasse n'a pas de gibier
PHP Queb
NT
There already have been GPL related lawsuits where a breacher was forced to reveal source.
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.
Patents Drive Free Software as Hurricanes Drive Construction Industry
One other thing (in addition to "it works, fulfilling a need"). To be really appealing to other devs your code has to either:
1) have good documentation, or
2) be really excellent code.
And too many focus on (and fret about) the latter "Carmack" way. Good -- not great but just good -- documentation is a great differentiator. Good documentation even points out flaws in the code; do not be ashamed of those, as they can make it just even more interesting to somebody maybe seeking nice challenges (or chances to show off, or just places to contribute what they can)! Leave the code confidently in its "works well enough" state, and turn to *explaining* it to potentially interested parties.
Plus don't forget to manage it as a project -- when people approach it, respond. It's like being an innkeeper -- make sure your guests feel appreciated and may want to come again.
[A little artistic license here in assuming Carmack doesn't comment his code very well... I believe he does that, too.]
And what's wrong with a little lechery, anyway? And what does sexual excitement have to do with OSS? You didn't that that "Sex, Drugs, and UNIX" line seriously, did you?
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.
Blogging because I can...
I have a Desktop Search Engine. The Gurus just can't stand the code.
http://forums.thedailywtf.com/forums/thread/124349.aspx
It's the only program I need and I don't give a shit.
Challenge: I have better access to my Video, Music, Pics and Text than anyone on Earth.
Have you validated your HTML code?
You HTML code has no doctype, etc. and you mix uppercase tags with lowercase tags.
Your HTML code looks like HTML 2.
Your javascript code looks outdated, have you heard of DOM?
1356048000 seconds later
Comment your code thorughly so people know what's going on.
Compare your code with the other projects available at sourceforge.net. I'm pretty sure you'll find something that's ten times worse in a short amount of time. Just apply for an account, upload the code, make excuses about the code quality in the release notes (if you must), announce it on freshmeat.net and see what happens. There will always be people that's better than you. Don't chicken out just because of that fact.
TODO
1. Get rid of the machdep and systemdep files, and spread that code out among all the files, using nested #ifdefs!
2. Hardcode all paths; if a make-system *must* be used, try for autoconf/automake and hard-code as many paths as possible.
3. Unwrap those lines wrapped to fit an 80 column terminal: everyone has a widescreen monitor with just one window in it, so long lines are the way to go.
4. Remove vowels from variable and function names.
5. Remove capitalization and punctuation from the comments -- it's a bad idea to seem so condescending. (Likwise, avoid checking spelling and grammar.)
6. Add profanity to comments, it's cooler.
7. Mix tabs and spaces.
8. Make sure to avoid removing revised, rewritten, or redacted code. Leave it commented out, or better yet, #ifdef'd out.
9. Never return the boolean expression; always protect it with an if-else that returns true or false.
10. Devise a complicated, multi-step, baroque process for obtaining the code, compiling the code, providing feedback on the code, and require installation before running the code.
HTH. HAND.
PS: Unit tests are for pansies.
Dear Beautiful Mackenzie (an Actual Girl):
I'd like to sneak up behind you and start fondling you violently and then as you struggle to try to escape I'll take a scientifically-proven magic petrification ray from my bag and zap you with it, and it would first disintegrate all your clothing, leaving you gloriously naked, then it would start the process of transforming your body into marble, inducing in you a massive magically-induced which would be captured eternally as your body is turned into solid stone from the feet up to the head gradually, freezing your final moan of ecstasy as you become a beautiful, cold lifeless statue, but with your mind still alive inside the statue, aware of everything that happens to you. I would put you in display in art museums so that everyone could admire your spectacular naked & petrified teen body, then I would put you on a pedestal in my apartment and admire you constantly, and climb up on the pedestal and make love to your stony form, getting my penis raw & red from the friction, and covering your beautiful hard marble skin with my spooge, my beloved naked-and-petrified queen.
(NOTE: This is just a fantasy; I would not actually do this.)
p.s. I like masturbating to your Blogspot picture4
If your code is PHP, and considering what it's strengths are (the forum display and experience rather than the user registration management, for instance) you may want to look into converting it to a Drupal module and releasing it-- rather more likely to have a user and a developer community this way, though it would be a lot to learn for just one project.
benjamin, Agaric
Is that you?
FRA: STFU GTFO