After 15 years of running GNU/Linux as my primary Operating System I’ve recently decided to move to FreeBSD.Continue reading Moving from Linux to FreeBSD
For this post i decided to explain how i’ve setup Common Lisp Hunchentoot webserver running on Ubuntu 8.10 and how to set it up for remote interaction using Emacs and SLIME (Superior Lisp Interaction Mode for Emacs).
Continue reading Setting up Lisp & Hunchentoot on a web server
At work we have been using Google apps to host some of our customers domain e-mail accounts. The other day one of our customer collaborators complained that when accessing e-mails through IMAP (on Outlook 2007) he was getting the following error:
Web login required (Failure)
After repeatedly checking his IMAP settings i decided it was not a problem with his settings so I looked around the web and found a quite dated tutorial (back from 2008). Since all my other approaches hadn’t worked i decided to try it, here’s the steps i followed:
- Logged in to the web portal with the gmail account that was returning that error
- Disabled both POP3 and IMAP functionality and logged off
- Logged in with a Administrator privileged account for that domain
- Goto “Domain Settings” and section “New Services and Pre-release Features”
- Disable “Automatically add new services when they become available” and “Enable pre-release features”
- Saved these changes
- Re-enabled “Automatically add new services when they become available” which was the one i wanted
- Saved these changes
- Logged off (as Administrator)
- Logged in to the web portal with the gmail account that was returning the error.
- Re-enabled both POP3 and IMAP functionality.
After this the user reported that IMAP was working again for him. It amazes me that such a simple and dated (almost 2 years now) solution like this has worked but luckily it did.
Having a lightweight http server (in this case Nginx) proxy request to Hunchentoot offers some advantages over letting Hunchentoot speak directly to the web:
- You can have nginx serve all the static files for you app, this way serving them faster while freeing lisp process for generating only dinamic content.
- You can take advantage of nginx caching strategies.
- You can use nginx for load-balancing.
Picking up from “Remote login with SSH key pair” and the updated “Setting up Lisp & Hunchentoot on a web server”, when i run emacs locally and connect to my running lisp + hunchentoot process on the server, the REPL alone, although awesome, is insufficient for my hacking need. I’ll need some way to work with remote files…
One secure and easy way of logging in to your remote server is by means of SSH keys. Basically you generate an SSH public/private key pair on your local machine, you put the public key on the remote server and the private key on you local machine, that way people trying to login on the remote box must have a matching private key. Here’s how i’ve done it.