http://www.wikihow.com/Tip-Your-Server-at-a-Restaurant
not that I agree with all of it.
For example, should you give the benefit of the doubt:
"If the waiter is forgetful, it might be that they're new. Waiting tables requires a lot of multi-tasking and for many, it's a steep learning curve."
And if the service is really bad:
"Even if the waiter was undoubtedly terrible, you should still leave at least a 10% tip. In many restaurants, tips are pooled and shared with other employees who might've done their job well. 10% is enough to avoid punishing people who might not be at fault, and to let the establishment know that you're not happy with their service on the whole."
Uh...has this been covered here before....
