I'm looking at Google Code, SourceForge, BitBucket, and GitHub, since they seem to be the big players. Now, I haven't broken down all of the features that they provide yet, but I'm really looking for a place to put various code that I write (my solutions for Project Euler, code that I might write for the Code Golf/Programming Puzzles Stack Exchange, and so on) in a centralized location.
So, my first question is: For a situation like this, does one service stand out among the others?
Once I've chosen a service, I then need to choose how I'm going to distribute the code. There are a few options that I see for setting up the repositories and projects. A single repository can hold any number of projects - for example, I could have a "Tom Owens's Project Euler Solutions" repository for all of my various solutions to Project Euler, with projects for each language and environment in directories within this repository, another repository for my various Code Kata solutions and so on. Or I could break something like that down by language (have Project Euler solutions in Python in one repository, PE solutions in Java in another repository, and Code Kata C++ solutions in a third repository).
My second question: Are there any limitations or conventions that exist for determining how you should share your code samples that you choose to make open, especially in terms of how you create your repositories? My thought is that this might be dictated by the service that you choose (based on the conventions of the community).