Well spake! But I would argue, based on your own explanation, that in the definition here (except for the word "naive," which I just noticed--duh--and which seems a bit ambiguous in this definition), a hacker is by definition a geek (knows a lot about hacking), and not necessarily a nerd ("naive"). Signed, One Who Loves a Geek
Of course there's a difference between nerds and geeks. A nerd's defining characteristic is general smartness. A geek's is a deep and obsessive love of a specific subject. A nerd can be a geek when it comes to a certain topic, but not all geeks are nerds, and no one can be a geek about everything.