What's the difference between a hacker and a cracker?

Lets get this question out of the way right now:

On USENET, calling someone a "cracker" is an unambiguous statement that some person persistently gets his/her kicks from breaking from into other peoples computer systems, for a variety of reasons. S/He may pose some weak justification for doing this, usually along the lines of "because it's possible", but most probably does it for the "buzz" of doing something which is illicit/illegal, and to gain status amongst a peer group.

Particularly antisocial crackers have a vandalistic streak, and delete filestores, crash machines, and trash running processes in pursuit of their "kicks".

The term is also widely used to describe a person who breaks copy protection software in microcomputer applications software in order to keep or distribute free copies.

On USENET, calling someone a "hacker" is usually a statement that said person holds a great deal of knowledge and expertise in the field of computing, and is someone who is capable of exercising this expertise with great finesse. For a more detailed definition, readers are referred to the Jargon File [Raymond].

In the "real world", various media people have taken the word "hacker" and coerced it into meaning the same as "cracker" - this usage occasionally appears on USENET, with disastrous and confusing results.

Posters to the security newsgroups should note that they currently risk a great deal of flamage if they use the word "hacker" in place of "cracker" in their articles.

NB: nowhere in the above do I say that crackers cannot be true hackers. It's just that I don't say that they are...