Lisp is Not an Acceptable Lisp

Interesting to go back to Stevey’s Blog Rant from 2006.
Quite perceptive … the ascendent Lisps today, at least the ones that have caught my attention, are Clojure and Racket. Neither of which really existed at the time he was writing (although Racket’s ancestor, Dr. Scheme did). Both of which do, indeed, have offered a layer of practicality and accessibility that perhaps other Lisps of the time lacked.

Tab Stack

Here’s a thought. Wouldn’t it be awesome if editors / environments that could open multiple windows / tabs could have a “stack” semantics for it.
I mean in browsers, the terminal application etc. It would be great when I have something new to do to be able to open a new environment / tab to do the new thing, have it replace the existing one (rather than have 20 open at the same time) but when I finish, be able to fall back to the previous state / history etc.
Actually, maybe this is more or less how screen works. Still it would be useful in other places, eg. the browser.

Websites Under Attack

Some of my websites seem to be under attack at the moment. Or rather, WordPress hosting is infected by some kind of PHP virus.
So, I’m in the process of containing and fixing the issues. First I’m using the extremely useful HTTrack to make flat copies and swap the live-sites for these.
In fact, I’m using too many WordPress sites for small static sites. Time to move them to Project GeekWeaver.
Then, I’ll be exporting the databases of the bloggier blogs and either creating fresh new WordPress installs or looking into alternatives.
So for a while, this blog, and other of my self-hosted blogs will be going fairly static.
Don’t worry though, I’ll be back soon.

Patterning …

So I wasn’t actually planning this. But I’ve been working on Patterning again in the last week or so.
There’s a new version coming.
The bad news is that it’s going to break the “API” and your existing code. 🙁
The good news is that there will now actually BE an API. A real one, made with Protocols and defrecords that should be usable directly from Java without yet another wrapper. And will hopefully be more stable in future. 🙂
So, sorry for any inconvenience. But I think it’s all going to be a lot better from here on in.

Colourize Clojure Errors

Clojure is a wonderful language. The more I use it, the more I like it.
But the default error reporting is catastrophically bad, forcing you to look through screensful of Java stack-trace for the needle of a bit of code that’s actually yours.
I’m sure there are better solutions, but today I just hacked a very quick and dirty python program to filter this result, highlighting the lines that I care about.


#!/usr/bin/python
import sys
p = sys.argv[1]
for line in sys.stdin :
    if p in line :
        print '

I made this code in an executable file called “colourit” in my bin directory. Now I can do this :

lein test |& colourit patterning

to, for example, highlight lines containing the word “patterning”.