Ordered list of blogs will go here with a widget
I will admit it, I have a Github account. You will notice one public repository for one of my initial ruby projects used to track time spent working on a given project for a given timeframe. Its somewhat useful for my one-off client work or the occasional project where I need to track time, but it works. However this post isn't about that project and I digress.
Ultimately this is a post about a conversation I had while at LayerOne last week, and another well timed blog post called Why aren't you using github?. In short Github seems to be the place to go for open source software ranging from random one-off rails/python projects to major projects such as Go and the Linux kernel. The thing is that I do like the interface, the issue tracking, and the pull request concept which allows for an awesome code review experience when integrating someone else's changeset.
However there are two notions that have been growing rather substantially over the last few years. In particular is that the value of a developer's worth based on the number of commits made to the master branch of a github project for public and/or private repos (this depends on the settings and how the data is sold to interested parties such as head hunters). The second notion is that github's pricing structure is designed to emphasize open source contributions, but they themselves leave their infrastructure closed as well as leaving the state of the projects in their hands. The later, from the contributing to open source standpoint is quite admirable, given the recent sourceforge episode, and Google code shutting down, it makes me wonder what will happen when things start to turn as Atlassian's Bitbucket seems to be the only other real alternative as far as Git based project hosting, and even then their main business focuses on SaaS based dev tools.
Then there's the former point, and where things are more pointed for my development model. Since I dabble between sysadmin and developer, I've been running my own repos for years. Sometimes I'll expose them when its a project worthwhile to share, but I will also use them to host client specific work. While I have no issues with presenting code for open source contributions or to show off a project portfolio for potential clients/employers, what I do take issue with is that this must be hosted on github to be considered a legitament developer. Yes it does require a dedicated system to host your common repository, but thanks to Mercurial and Git both being python based, they both make use of the built in http server, and can be used to expose your repo in a web-friendly fashion. Granted you're still without the wiki or bug tracking aspect, but that's where another open source project comes in: Trac It orginally supported subversion, but has since been updated to include Git as well.
Essentially when it comes to hosting your code somewhere, it boils down to two components, convenience and control. The nice thing about Github, Bitbucket, Google Code, and Sourceforge is that they all for a very convenient place to host and organize your software project. What you end up losing is control not just over the software you upload, but also any additional on your development methods and possible client work. Self hosting is still an option, and with Git or Mercurial, its very easy to just host it on your workstation at home, and then expose it to the outside world. Plus you have the full control of what happens to the repo, and the data associated with it. You don't need to feel compelled to open source your project nor will you need to worry about paying for repo slots you won't be using, or need to worry about how many private organizations you can setup to share your private code.
Funny thing with self hosting, is that if you want it to be open source, it will still be open. It'll just be a tad harder to find: i.e. you will need to use google to locate the project instead of github's repo searching capability. And no, self-hosting does not mean you don't believe in open source.