Don't stray too far from well supported language, tool and platform combinations
I have been doing a lot of customer work lately using Java EE 6 and Glassfish. Fairly nice development environment even if Java EE 6 is heavy on ceremony (but better than J2EE). Just for fun today I took small play apps I had written in Rails and Clojure + Compojure and shoe-horned them to run on Glassfish. Interesting exercise, but unless there is an overwhelming need to create a custom deployment setup, it is so much better to go with the flow and stick with well crafted and mature setups like Java and Java EE 6 Clojure + Compojure running with embedded Jetty behind nginx for serving static assets Rails app hosted on Heroku Web apps written in either Java or Python hosted on AppEngin using the supported frameworks etc. I must admit that I enjoy hacking not only code but also deployment schemes - enjoy it too much sometimes. Sometimes it is worthwhile, most often not.