I have one rather odd thing I use for memory that I've never heard of anyone else using, and while it's probably not useful to anyone who isn't already very familiar with hexadecimal, I thought I'd mention it in case it's useful to somebody else out there.
I use 3-cycle (learned from Macky's website). I'm able to memorize and execute orientations very quickly (for me, anyway) by using hexadecimal to memorize them. I use one bit for each position for edges, which requires 3 hexadecimal digits - one digit for top face, one digit for middle layer, and one digit for bottom face. Then I use 4 hexadecimal digits for corner orientation - 2 digits (one for top face, one for bottom face) for those that need to go counterclockwise, and 2 for those that need to go clockwise. So it's just 7 hexadecimal digits for the entire orientation, and I find hexadecimal easier to memorize than decimal because of the letters. Many times the patterns make a word or some other thing that's easy to remember. And it's nice for the corner orientations if you're good with hexadecimal, since you can just count the bits to see if what you've memorized is really legal or not - they either have to be the same or off by a multiple of 3 bits. After a while of using this, you quickly get to where you can just glance at the edges or corners and instantly recognize them as a particular hexadecimal digit, and that's where it gets really fast.