President Obama has fired General Stanley McChrystal and replaced him with Gen. David Petraeus. And no matter what you think of Pres. Obama, he had to do it.
The military operates under a "chain of command" system. And under our Constitution, the President is the commander-in-chief of the Army and Navy. So while Gen. McChrystal, had he been a civilian, would have been protected by the First Amendment, as a soldier, he was bound to defer to higher rank.
As commander-in-chief, Pres. Obama outranks any general, even the highest. And certainly, when such people as Sens. John McCain, Lindsey Graham, and Joseph Lieberman (none of whom is a great friend of Pres. Obama!) condemned McChrystal's remarks, it was clear that they were beyond the limits of his free speech rights.
I cannot say how justified McChrystal was in his comments. But whatever their accuracy, they certainly constituted insubordination. I am one of the few people still alive who remembers Pres. Harry Truman's dismissal of Gen. Douglas MacArthur, and as a child I was with MacArthur and against Truman. But if Truman was justified then, and after 60 years I think he probably was, so Obama is justified in getting rid of McChrystal.
Insulting Vice-President Biden was not such a great thing to do, either!