A main theme in critiques of President Barack Obama is that he's a cold fish, too controlled to lead the country -- unlike, say, Bill Clinton or George Bush, who knew how to bite a lip and squeeze a shoulder.

Well, he's had all too many opportunities lately to show real emotion -- and I'm not talking about his finally agreeing to have dinner with congressional Republicans. When he delivers eulogies at memorials, as he did today, he barely makes it through.

And yesterday we saw an emotion even rarer in a president: anger. You can count on one hand the times we've seen anger in the White House: Richard Nixon swearing he would never dignify his opponents by getting angry. Clinton swearing he did not have sexual relations with that woman. Bush swearing he would get Osama bin Laden dead or alive. You have to go back to FDR welcoming the hatred of bankers to see a full-throated, righteous display of anger.

On Wednesday Obama was angry. Appearing in the Rose Garden, the president delivered a few choice words about the Senate's failure to pass a watered-down piece of gun-control legislation in the face of 30,000 gun deaths a year. It wasn't much. It wasn't going to solve the problem. But it was the most he could hope to get.

Not getting even that made him genuinely angry. He used language almost never heard in Washington, speaking about lies and cowardice and shame. If 90 percent of the American people want something, and it's admittedly slight, why can't they get it? Weakness in his own party must be hard for Obama to take. What about Senator Heidi Heitkamp of North Dakota? Or Mark Begich of Alaska? If doing the right thing against a pernicious lobby such as the National Rifle Association isn't worth risking your seat, what is? Why be in the Senate if not to do great things?

A running sidebar during the BP oil spill of the summer of 2010 was Obama's lack of anger at the inability of the multimillion-dollar men running the company to plug the hole. When he commented on the spill, he often sounded like an accountant. One day spokesman Robert Gibbs addressed the criticism by saying that "to feign, through method acting, anger" wouldn't stop the leak or get a shrimper back his job, so we should all chill out.

Obama wasn't faking it in the Rose Garden. And today at the interfaith service in Boston, amid the sorrow and tears, I saw something akin to anger. Near the end -- after quoting the eight-year old victim Martin Richard's famous handmade sign, "No more hurting people" -- Obama talked about next year's marathon. "This time next year, on the third Monday in April, the world will return to this great city to run harder than ever and to cheer even louder."

As the applause grew, he finished with the kicker, "Bet on it." It was almost a taunt. There was a time he wouldn't have added that. But that was a long time ago.

(Margaret Carlson is a Bloomberg View columnist. Follow her on Twitter.)