Last November I wrote a molecular simulator called Go Replicants! that uses Go potentials to simulate protein folding processes and study some of their thermodynamic properties. Its source code and some instructions can be found here.
Last November I wrote a molecular simulator called Go Replicants! that uses Go potentials to simulate protein folding processes and study some of their thermodynamic properties. Its source code and some instructions can be found here.
I decided to follow the zeitgeist and declare .emacs bankruptcy. This is the outcome.
The pros and cons of doctests have been discussed elsewhere so I won’t enter that debate here.
I was told it was trivial to roll your own doctest suite in Common Lisp. I have done that and it is easy indeed but I have included the code in incf-cl for those who would like to use it right away.
Continue Reading…
Chris Ball asked everyone who likes Unix for a tool which would be to function calls what strace and ltrace are for system and library calls respectively.
I wanted to write this myself for a long time but what prevented me from doing so was the fact that I had come up with a trivial shell/awk script that achieved almost the same goal. Continue Reading…
List comprehensions are a programming language construct that closely mimics the way you declare a set in mathematics and sometimes are more succinct and readable than using a composition of mapcar, delete-if or an ad hoc imperative loop.
Having list comprehensions in Lisp was something I was missing from Python and Haskell. So I tried to find something similar and discovered that Continue Reading…
I’ve just released the first version of cl-buchberger, a Common Lisp
implementation of Buchberger’s algorithm for the computation of
Gröbner bases.

There are many improvements waiting in the pipeline but the basic
functionality is there.
You can read more about cl-buchberger here.
Tailor is an application that lets you migrate changesets between different kinds of source code repositories. It is written in Python and supports most open source SCM systems.
With Tailor you can:
Here’s an example of using Tailor to import a branch of Axiom (uses Subversion) into a local darcs repository:
First of all, we create a configuration file for the project
$ tailor –verbose –source-kind svn –target-kind darcs \
–source-repository https://svn.sourceforge.net/svnroot/axiom \
–source-module branches/build-improvements \
–start-revision INITIAL \
–target-repository file:///home/rwx/lab/math/axiom/axiom-darcs/ \
–target-module axiom-build-improvements axiom-build-improvements \
> axiom-build-improvements.tailor
Now that we have the config file stored in axiom-build-improvements.tailor, we can launch the tool to do the initial import
$ tailor –configfile=axiom-build-improvements.tailor
After a while, we have a local darcs repository for that branch and we can write:
$ darcs get ~/lab/math/axiom/axiom-darcs
to get a working copy in which to do your modifications.
Today, there are a myriad of SCM tools available and projects like Tailor will become increasingly important because they let you stick to your tools of choice. In this way, instead of learning the details of other source control systems, you can focus on what you do best: writing code.
Because a picture is worth a thousand words I uploaded some screen shots of halberd in action
I just released the next revision (0.2.1) of halberd, my load balancer detection tool. If you’re curious about the way the program works, you can read this part of the user’s guide.
Halberd has been tested in real world scenarios for quite some time and it seems to be solid. I hope the wider audience it is gaining now will uncover some bugs and after fixing those I’ll think of it as stable software. Future work could happen in the following areas:
A Brave New Hope briefly reviews an interesting text on the lambda calculus. This reminded me of one of the books that got me started in functional programming: An introduction to functional programming through lambda calculus by Greg Michaelson. It is an enjoyable and fast-paced text which I’d recommend if you’re looking for a good introduction to the subject.