On a marginally related note, I use a simple trick when going into areas (e.g. foreign ports) where I can't pack heat.
I simply carry two wallets.
One wallet is real. The other wallet is a decoy, packed with a few $1 bills and an expired credit card.
No mugger will ever ask for 2 wallets. So since you can't always shoot the SOB's, be sure to at least out-think them.
I already do that and it NEVER works.
Oh, wait. I've been giving them the WRONG wallet...