Minara CL Conversion Complete

Minara’s codebase is now converted to Common Lisp and I have added the functions and constants to cl-opengl that are needed for polygon rendering.

Now for debugging…

The Year In Albums 2007

In no particular order:

Strange House – the Horrors

Excellent hammond-organ-and-grinding-guitar driven gothic pastiche of garage rock that starts with a cover of “Jack The Ripper” just to let you know that they know that you know. A vibrant, literate and surprisingly affecting wild ride of an album that, like all the best Goth, lets you in on the joke.


A sexy, mischievous energy and a love of American New Wave and 80s pop make for Brazil’s coolest export since Sergio Mendez. Fun, infectious, and liberated/ing.

Mantaray – Siouxsie

Free from the weight of the history of her previous bands, Siouxsie survives her transformation into an “artist” in the “content industry” with dignity intact and voice better than ever. She deserves better backing but this is still an excellent album. Find the videos “leaked” on YouTube and catch her live next year.

Fur And Gold – Bat For Lashes

A wonderful continuation of the English tradition of fey, visionary, referentially open popular music that starts with a harpsichord riff and goes on from there. “Prescilla” is my favourite song of the year.

The Imagined Village – The Imagined Village

If a camel is a horse designed by committee then The Imagined Village is Bat For Lashes delivered late and over budget by a PFI conglomerate.

Prinzhorn Dance School – Prinzhorn Dance School

Sadly for an art school joke band, “The Horn” have some good songs and an often melancholy vibe that distracts from the important stuff like them making their own teapots. A slow, disquieting, stripped down, bassy, indie rock sound.

Sighs Trapped By Liars – The Red Krayola with Art & Language

The American rockers and the English conceptual artists team up for an album with a very contemporary-sounding retro psychedelia and cool rock feel and a pair of female vocalists mirroring the pair of male lyricists. The songs are about Rimbaud, the editors of October, Samuel Beckett, various economic idiocies and several artworks by Art & Language. They are understated, savage, and very successful both as left-field music and left-wing art.

We Are All Pan’s People – The Focus Group

More of the excellent same from one of Ghost Box Records’s stable of English retro-electro outfits. Analogue synths mashed up with library albums of spoken word and incidental music tracks underwitten by the brooding feel of a countryside that is more Summerisle than Ambridge.

An End Has A Start – Editors

If Coldplay’s management had told them to try to sound more like Joy Division this would have been the result. Near-empty stadia await.

Our Love To Admire – Interpol

No, you can’t be the next Coldplay either. Not yours. What happened to the band that produced “Turn On The Bright Lights”?

War Stories – UNKLE

Heavy, rocky, gothy, post-Trip Hop dirty beats from UNKLE. Forget the insipid electronica of their second album and enjoy the sonic attack of this affecting and danceable return to form.

Myths Of The Near Future – Klaxons

Dance opportunism from some very well-read indie boys but who cares when it sounds this good? “Atlantis To Interzone” is a classic and if they can avoid going prog rock then great things await them.

OK, what did I miss?

Like That And Metaprogramming

Like That is a series of moving images made using Processing. It’s intended as a long series of works. So far I’ve been writing each one by hand, which has hampered my rate of progress.

Inspired by Lisp metaprogramming techniques I’ve realized that the best way of making Like That will be to generate the code for each piece using another program. Rather than messing around with OOP where it isn’t needed, each component of a piece (the shapes, colours and animation) will be defined as a procedure with set parameters that can be combined with a skeleton or scaffold programatically to make a .pde file to build using Processing.

Each set of different versions of functions will be stored in a separate file then parsed and combined. Like That will be the cross product of the sets of versions of each function. This ties in nicely with the maths pieces I’ve been working on as well.

I’ll use Lisp for this. It would be nicely recursive if I used Processing instead, but Lisp is my language of choice for most things and this is well within its out-of-the-box capabilities.


Weareâ„¢Collaborative textile fashion design under a BY licence.Very cool.(Via zeroinfluencer)

Sharing Creative Works

Sharing Creative Works – CC Wiki
Sharing Creative Works is a new comic about Creative Commons. It aims to explain the basics of CC licensing as simply as possible to a general audience, including children. To make remixes and translations as easy as possible, the artwork is in SVG format and the script is plain text. Please contribute


“Different sexps, same project.”

Orlando is the codename for a port of Minara to Common Lisp. Minara was originally written in Scheme with some C code for rendering. A port to Common Lisp has the following benefits:

  • Better development and debugging support.
  • A richer programming language with more expressive potential.
  • Stronger object system.
  • A language that I (the developer) am more familiar with.
  • Library support for OpenGL.
  • Hopefully a speed increase, or at least no appreciable speed loss.

The target Common Lisp is SBCL, which runs on all major platforms. There will be very little implementation-specific code included and this will be carefully factored out.

I’m currently aiming for an April 2008 pre-alpha release.

Practical Common Lisp

Practical Common Lisp
Read the book online or buy a print copy. This is the current standard introductory text for Common Lisp. Read it and be ready to hack on the new version of Minara due next year…

Setting Up A Development Environment For Common Lisp Minara

Install sbcl

sudo apt-get install sbcl

Install flexichain using asdf-install

sudo sbcl

(require :asdf)
(require :asdf-install)
(asdf-install:install :flexichain)

Install cl-opengl from its darcs repository

cd ~/.sbcl
mkdir site
cd site
darcs get http://common-lisp.net/project/cffi/darcs/cffi/
darcs get http://www.common-lisp.net/project/cl-opengl/darcs/cl-opengl/
cd ..
mkdir systems
cd systems
ln -s ../site/cl-opengl/*asd .
ln -s ../site/cffi/*asd .

Test loading the libraries


(require ‘asdf)
(asdf:operate ‘asdf:load-op ‘flexichain)
(asdf:operate ‘asdf:load-op ‘cl-opengl)

Two Common Errors

A society where I am free to own you as a slave is not more free than a society that does not allow me to own you as a slave.

Owning slaves is a restriction on the freedom of others (the slaves). It reduces the sum total of human freedom in society. Yet how can this be if preventing it removes my freedom to own slaves, thereby also apparently reducing the sum total of freedom in society?

In fact preventing me from owning slaves does not restrict my freedom. It simply removes a means to an end, a demonstrably immoral means that also prevents others from pursuing their own ends (the slaves).

Banning slavery within society therefore increases the sum total of freedom within society. This can be explained in any number of ways, but the practical effects are clear.

A naive robust individualist might object that society is just an abstraction and it’s every man for himself. But society consists of individuals, robust or otherwise, and in saying that the sum total of human freedom in society is reduced we are simply saying that the probability of an individual’s freedom suffering is increased.

With the abolition of slavery in the West, Indentured Labour became popular. The intent of abolition was to free slaves, the effect of indentured labour was to remove the freedom of individuals. This ironised abolition. The forms of slavery and indentured labour might be different but their content and practical effects are similar, and deliberately so. Supporting human freedom meant opposing both despite one being legal and the other economic.

I mention this example because of two errors common made in discussing Free Software. (It is an extreme example, and if anyone has one less likely to offend that makes the same point I will gladly use it instead.)

The first is the claim that preventing people from removing the freedom of others as an end in itself is a reduction in freedom. This argument is usually made those who recommend the BSD licence for ethical rather than practical reasons. Indeed it is often the only “freedom” that is seen as worth defending. The flaws in this argument are obvious from the example above. Preventing people from removing the freedom of others is not an infraction on anyone’s freedom and will not prevent them from pursuing their ends within society.

The second is the claim that DRM or Tivoisation are technology rather than law and that Free Software licences have no business defending users against them. This argument is usually made by people who really should know better. The flaws in this argument are also obvious from our example. Free Software licences defend against the content of restrictions on freedom, not the form. To insist that a new form of restriction should not be defended against despite its effects is an aesthetic rather than an ethical argument.


As well as interviewing me for the FSF magazine, Matt Lee has been helping me move to a new, GNU, laptop. So I’m typing this in Ubuntu on a Lenovo Core Duo. Matt gloats blogs about this here, and I explain more in the comments.

But basically GNU just works for me for my art, design and programming work now.