Anti-Debug & Anti-RE Techniques?

I'm interested in anti-debug and anti-reverse engineering methods, and can't seem to find any good examples that I can use. UPX is stupid since you can de-UPX anything packed with it, but Ollydbg is a very good tool in Debugging. Any good methods of anti-debugging?