I shouldn’t complain, really: I have a decent and stable job, which is mostly
fun; I have a certain amount of
freedom in what I do, as long as everything that has to get done gets
done; I work with all sorts of interesting
people, both formally and informally. But things that I want to do have to
live a long way down the priority
queue; preparing lecture materials, paper drafts, committee agendas,
bursary agreements, course
proposals, courseworks, exams, student feedback, paper redrafts, reports,
meeting notes, grant proposal
drafts, paper reviews, examiners’ reports, reading lists, grant proposal
redrafts, and the like all seem to take
priority over even the research on a funded project that I am part
of, let alone the discretionary research that I might actually
want to do.

So sometimes I have to be sneaky, and combine my hacking with
teaching-related work instead. One of the
more fun things I’ve learnt over the last couple of years is enough colour
theory to be dangerous; it started
off because I was casting around for ideas on what to teach students on
our Creative
Computing programme
– and I do teach them about colour, among other
things – but it’s
sufficiently interesting as a technical area in itself that I can see writing
code to illustrate aspects of it. So,
here’s a (not very good) colour picker “application” for McCLIM, whose only redeeming feature is
that it uses knowledge of the colour
attributes of consumer-grade display hardware to present colours of the
same intensity together. That’s a
bit hard to visualize, so here’s a screenshot, where all the colours in the
triangle should seem to have about
the same brightness (viewers might need to adjust their viewing angle):

Source code is here; I’m not particularly
proud of it, and it needs work in all sorts of directions (optimizing,
generalizing, cleaning up). One of the
reasons I had put off blogging about this is that I was hoping for a lovely
literate-programming system to
optimized for single-file Lisp programs to appear, generating HTML and
PDF output from minimally-marked-up
Lisp code. Sadly, that hasn't happened, and my best
attempt can only be described as, well, deranged... so no impeccably
formatted and indexed code
snippets in this blog, not this time anyway.