domingo, 10 de mayo de 2009

Lisp, scheme and live coding

I've been looking at some lisp books lately. When wise people I know talk about lisp, they only say great things about it. That's a clear sign of 'Hey, you should take a look at this, and see what you get from it'.

First, let's start with some books I've been reading/glancing (easy reads and hard ones are mixed, you'll have to find out which is which by yourself).

Warning: Lisp and Scheme are not the same language, but at my level, I just wanted to look at lispy codes, so I read everything I could.

Once we have a basic idea of lisp concepts, and we have already been striked by the "WOW! WTF! what's this?! Oh, ok, hahah! :) ", we can start typing some superlittle project, little bigger than 'hello world'.

Live Coding?

Two weeks ago, Jordi Delgado, in our weekly smalltalk meeting told me about post called 'hacking perl in nightclubs' and its scheme-like version 'Impromptu' . It's about coding in an environment where your code produces sounds or images (or both), and you evaluate the code you're writing at the moment. Unfortunately, impromptu is only available for Macs, so I kept looking for something that worked in my Vectorlinux. Then I discovered fluxus . I only had to build it and start hacking, and mixing scheme with music and graphical effects.

Compiling fluxus in Vector linux (and other Slackware derivatives)

Vectorlinux repositories are getting bigger and bigger, but they aren't big enough to have strange packages like those. shows how to compile fluxus and which dependencies it has. you'll have to install plt scheme (don't forget the --enable-shared flag).

Another package you'll have to tweak a bit is glew. In slackware, glut and glew can't be used by the same app, because of a macro redefinition in the codes. Here is an explanation of how to fix it .

Once you have it all. you're ready to start typing '(draw-cube)' lines and evaluating in a graphical environment.

This post is only meant to be a bunch of links to lisp and live coding projects. I hope you can compile it in vector linux. If there's something you want me to clarify, please, comment.