GPL 2-3: If you want to create a comunity around your code.
AGPL: Same as GPL but it can't be used remotely without releasing the source code.
BSD: If you want to be flexible enought to let companies to use your code without releasing back the source.
GPL 2-3: If you want to create a comunity around your code. AGPL: Same as GPL but it can't be used remotely without releasing the source code. BSD: If you want to be flexible enought to let companies to use your code without releasing back the source.
Of course, these are simplifed explanations.