Instead I think that an impressive amount of energy and work is often wasted because many developers will design & code an important patch before getting in touch with the author of some project. So the author will see a patch that probably makes totally sense but is not what was desirable for some reason (future directions, too bloat, there is a better way to do that).
If it's the kind of project where you can join some IRC channel or drop an email to some mailing list and get in touch with one of the developers, it's really a good idea before starting to code.
For trivial changes as describe in the article? I tend to disagree. Decentralization saves you this administrative issues, like getting in touch with people in advance, before they can see if you are really interested by actually coding. I think it shows your value of this community if you are contributing in the small at first if it is a larger project.
After reading this article I went ahead and forked the Konami-Unicorn-Blitz project (the same one this article references). Added a hideAfter property that autohides the unicorns after 30 seconds and submitted a pull request. We'll see if the change is accepted :)
You do not need github to do that. You just need git and any git hosting. Forking is just a clone, you push in your hosting (whatever it is) and ask the guy on the other end to pull. No centralized control, real distributed development.
Linux is developed like that every day. My own forge software http://indefero.net is also developed like that, with forks on github, on other instances of Indefero or just on 'hand rolled git hosting'.
So, the title should really be "Git (or any good distributed SCM) is the best thing ever".
True, you don't need github. But it's killer feature is that provides the initial grease on the rails so that Joe Blow can come along to quickly and easily add a feature or fix a bug. As someone who just this week made some doc contributions to 2 different projects on GH, I can tell you the feeling is addictive.
It is totally true (as I said, I am using github too), but take it as a reminder that git itself provides all the machinery to allow you to fork, share with pull request etc. independently of any provider. You do not need a forge hosting like Indefero or Github or you name it, to use it.
What I really like for example, is that I can pull a project from anywhere, be stuck on a local network with other developers, work on the code with branch/commit/pull in all the directions and then later, push back the results without the fear of losing something in the merge.
Actually I think GitX (note: you want the Brotherbard fork of it) is that. I haven't learned much about Git from using Github, but GitX is great for that.
The only thing I don't understand about github is that "hardcore archiving in process..". I mean why do I have to wait a minute before I can start downloading the archive? Isn't it costly if the server has to create an archive every time someone requests a download?
Archives are generated when they are requested and cached for fifteen minutes. This cache length results in an average of 3.5GB of cached archives on disk at any given time. We have to serve a large number of archives for arbitrary revisions, so making you wait a few seconds for a tarball is currently the best tradeoff. It's possible that in the future we will increase the cache TTL (and the size of the cache) so that you are more likely to hit an already generated archive.
It's because the server has to create a tarball on demand, which can take a while.
So, instead of having your web request unresponsive for a minute while it's processing, they queue up a background task on the server and give you a "hardcore archiving in process.." response immediately.
Then I imagine they do some ajax polling to check when the background task has finished and the archive is ready.
It's a really good technique if you want your web app to be responsive. We do it at work for basically anything that will take more than a second.
Github was also first, I believe. I think many git-persons find there are other services better than Github (in some areas they're interested in if not all of them), but the brain/market share of Github makes it basically a requirement.
It's exactly the same reason why I love GitHub. Got this moment when I forked three20 when it first published on github, and contributed a little patch to it for http auth.
Yeah. I like BitBucket as well. I'm just more of a Git guy right now, and all of my favorite projects and people are on GitHub.
It's got a social-network lock-in effect for me right now. I can't leave and go somewhere that has none of my friends. But boy, I love BitBucket's pricing. I wish I could get at least 1 private repo on GitHub without paying a monthly fee. It'd be nice to have a personal repo to store configuration files and such that contain passwords... :(
A day where X people fork, make at least one contribution, and request a pull.
Set up a cool site targetting people who are interested in coding, but haven't yet gotten the courage to contribute, and you could have something.