How can I play SMP when minecraft.net is down?
The way to do this, is to have a server. Have the server set "online-mode" in it's server.properties file to false. Then start the minecraft client without authenticating it.
You can do that via typing this into "run" on Windows:
java -Xms512m -Xmx1024m -cp "%APPDATA%\.minecraft\bin\*" -Djava.library.path="%APPDATA%\.minecraft\bin\natives" net.minecraft.client.Minecraft "yournamegoeshere"
Or on an Apple Mac, open "Terminal" and enter:
java -Xms512m -Xmx1024m -cp "$HOME/Library/Application Support/minecraft/bin/*" -Djava.library.path="$HOME/Library/Application Support/minecraft/bin/natives" net.minecraft.client.Minecraft "yournamegoeshere"
The only downside of this is that anyone can log in with any name. But the upside is you do not need any third party programs, many of which are illegal.
A strategy we have used before is to build your own authentication server (the protocol is available) and run that when minecraft.net is down.
You do ofcourse need to have a dabatase with usernames/passwords for this to work, and you would have to place a record in the hosts file whitch will point minecraft.net to the new authentication server.
This used to be possible by placing both online-mode=false and verify-names=false... but it seems with recent updated the verify-names parameter was removed, and all players now come in as 'player'
In the past it would still let you connected to smp with these options and you would have your name as your regular minecraft name. The only way to do this now is to have a minecraft client that is downgraded to an older version and not letting it patch for these times.
If there are only two of you only 1 person would need the downgraded client, however I am not sure of the legality of downgrading his code using the methods easily found online so im going to not provide any links on how to do so.
EDIT: Some extra info verify-names command when it was in the game, checked your minecraft name against the authentication servers to make sure noone else was trying to use your name at the same time and that it was a valid account even after logging in.