against the uppercut:
This punch can be sneaky when used in combination with others.
One defensive technique that can work against the uppercut is surprisingly simple. The defender simply pushes the arm back towards the attacker. The point of contact is on the attacker's forearm as the uppercut is in progress. The beauty of this is that the defender is not dealing with or canceling out the force of the opponent. He/She is not matching force against force. One is simply redirecting the punch back towards the attacker.
As with all techniques timing and speed are essential. When applied properly this defense should work.
Of course one can always step back too.