четверг, 2 мая 2013 г.

Slime/Swank, Quicklisp and long running programs

I have a small problem with Slime/Swank and long running servers.

These servers run for weeks and month, with an older version of Swank loaded. I periodically connect to them to change a function or two (quick fixes and small functionality updates), without restarting.

Now, when a Quicklisp update arrives, versions of Slime on my local machine and Swank on remote machines diverge. Even if I upgrade Swank in all remote installations, I need to reload Swank  in each of these image. 

That's quite interesting if it is possible to do so w/o actually restarting the image. Will try.
Typcally slime/swank version difference does not matter much, but to be on the safe side, it is better to keep them syncronized.

A wider questoin is whether it is a good practice to upgrate your dependencies inside your running servers. And whether it makes sense to automate this.

пятница, 19 апреля 2013 г.

nconc

Lispers know that destructive list functions are dangerous, that you should know that the data is fresh consed. I've known this too, but still today I was still bitten by nconc. When I applied it to two arguments that shared structure, it returned a circular list. Try this:

(setf *print-circle* t)
(let ((x (list 1 2 3)))
   (nconc x x))

Be careful!

Lisp Blog

Recently I have been programming quite a lot in Common Lisp. Full time for about 5 months on a professional code base, written by some cool guys who now work either at Lisp vendor companies or as successful independent consultants.

I have learned a number of lessons.

Community

The Lisp community does exist :)  only it has to be viewed globally. There is merit in attempting to maintain local communities, of course, but one cannot hope to achieve as much of activity around Lisp as we have around Python, for example.

Therefore, I will not continue writing this blog in Russian. Need to reach out to a wider audience.

Using Lisp in startups

It might be hard to persuade your company to use Lisp, (no, quoting Paul Graham is not enough, though it helps). However, if you encounter a company, especially a startup, that does use Lisp, despite the obvious obstacles such as lack of good Lisp programmers, and a rather steep learning curve for existing programmers, that company deserves attention. Chances are something interesting is happening there.

Lisp Libraries and Technologies

I have learned and used GBBOpen, Screamer, have seen how Weblocks is being used as a RAD tool (and want to try it myself later). I am going to write about this later in this blog so stay tuned :)