Lisp, Programming

Tutorial: Running Hunchentoot on Webfaction

Lately I’ve been playing around with the Lisp web framework Weblocks that runs on Hunchentoot, and it seemed like time to test it in a deployment environment. There are not many web hosts that officially support Lisp, however, so short of setting up my own local server machine and getting a dedicated connection to the internet, it was not immediately obvious whether I could accomplish this.

Luckily, my hosting account from Webfaction—that I use for testing web apps under development before deploying them on my clients’ servers—allows me to install basically whatever linux software I want from source under my home directory. So I installed CLISP and SBCL on my server, followed by Quicklisp, set up a custom app (listening on port), forwarded a domain I wasn’t using for anything else, and installed Weblocks and CL-Prevalence through Quicklisp. Et voila! I didn’t even have to run Hunchentoot through Apache. If you’re looking for a powerful and flexible web host, WebFaction is definitely the way to go.

That being said, there were a few catches along the way, which some of you might like and/or need to know about up front.

Continue reading

Advertisements
Lisp, Programming

Meditations on Lisp

Lisp is a fantastic programming language, one which I’ve toyed with for many years, but have been taking far more seriously in recent months.  One of the more interesting secrets about Lisp is that singular moment of clarity that hits every aspiring Lisper, where they finally begin to ‘grok’ Lisp, the universe unfolds about them and even the toughest programming challenges suddenly become a mere macro away.  Then they start thinking about all programming languages in terms of Lisp.  Then they start dreaming in Lisp.  Then they see their own mind unfold as a Lisp program in endless recursion.  The world and the mind become more beautiful and intricate as they dance among the cons cells to the rhythm of cadaddr and lambda calculus…

Well, unless you’re already a Lisper, I’ve probably lost you.  Even if you’re a professional developer like me, it’s unlikely that you’ve communed with your code so deeply that you’ve found yourself reduced to self-referential software.  This is normally an exclusive gift of functional programming languages, such as the Lisp family (including Common Lisp, Scheme, Clojure, Arc, etc.), Haskell, and OCaml.

Continue reading