| > incomplete projects? It depends on what you mean by "incomplete". 50 lines of code which do almost nothing useful are probably not worth publishing. But why not publishing a half-complete project? Publishing may help you find contributors. And the early feedback helps you to decide if your project is worth more intense attention. > Messy/hacky experiments? If the code is not too bad, I publish even that stuff (as long as it is big enough to be notable), e.g. http://pypi.python.org/pypi/vserver > Completely idiotic/backwards stuff done for fun? I recently published such a project and got surprisingly great feedback: http://news.ycombinator.com/item?id=3061050 > Play-projects purely attempted for "ha I did it!"? Why not? You never know who'll like it anyway, e.g. http://sourceforge.net/projects/hosh/ > Legally-grey (or blatantly illegal) projects? Depending on how much trouble this might cause, you probably shouldn't upload it anywhere. Even a "private" repository on GitHub/BitBucket might be too risky. On the other hand, I know about a Free Software clone of a game that used the original graphics and music. Not quite legal, but the game was very old and the right holders obviously didn't care. However, after publishing the project got a little fan base that eventually included graphic designers and musicians, who replaced the proprietary stuff step by step with their own creations. So the game changed from "legally-grey" to "solid free". This would never have been possible if the game hadn't been published. > Or even school projects? My school projects were about the first ones I published, and I'm pretty proud about what I wrote in that age, e.g. http://davis.sf.net/ http://sourceforge.net/projects/voji/ http://sourceforge.net/projects/volt/ Later I also published some notable university project works (sorry, German language): http://www.profv.de/uni/ However, these are only project works. I will never publish specific solutions to homework excercises, as this would only help cheaters and nobody else. |
Some other examples:
1. You want to keep track of your dotfiles that you use at work. In general, this may be ok to put public, but it may contain work-specific stuff (hostnames, configurations, etc) that might get you in trouble for publishing publicly. For example, my work shell config has aliases that include connection information (sans password) to internal databases.
2. Resumes and/or cover letters. If you update your resume to say that you're looking for work, or looking for work in another area, this could give info to your current employer that you don't want to hand out. You might also want to keep your cover letters in version control if you use something like LaTeX or have specfic parts that you want to be boilerplate (e.g. description of yourself and/or your exerience). If you keep this in public, then everyone knows when/where you are applying for work, which may not be desirable even if your employer doesn't care.