Bootstrapping approach to understanding lisp
Once you learn lisp, you almost immediately want to convert ten friends to the church of lisp. But there's a fundamental problem. You've learned things about programming that your friends haven't. You will use vocabulary and metaphors and examples which will have absolutely no meaning whatsoever to your intended converts. This is hugely frustrating and leads most people to just give up the evangelism (or at least back off a little ;-). You either wallow in the frustration or re-adjust your expectations for a longer-term conversion. Your friends aren't going to get it until they walk down the path to lisp on their own.
defmacro has made a valiant attempt to explain lisp using things you already know. If you're not already a fan of lisp, go read The Nature of Lisp. Hopefully you'll see the light. :-)
Thanks to James Duncan Davidson for pointing to this great link.
Commenting on the content itself, it was a thing of inspiration to use XML and Ant in particular for this bootstrapping. But I can't resist the need to rehash my most recent complaint about Java. It's a code smell that Duncan had to invent another language in order to build tomcat. Java isn't flexible enough on its own to let you build your java apps. Sure the parser is in Java, but the build language is still Ant or Maven.