Posts Tagged ‘clojure’

Enter The Matrix

Posted: December 7, 2013 in matrix
Tags: , , , ,

This was a presentation I gave at the 2013 Clojure Conj, focusing on core.matrix and related libraries.


My machine learning talk from the Clojure Conj 2012 is now online:


“The first rule of macro club is: Don’t write macros”

I wrote this originally as an answer to a StackOverflow question. But the question got closed by some trigger-happy mods before I clicked post. How unfriendly!

Anyway, in case it is useful to people wondering when they should and shouldn’t use macros, I thought I would post it here instead….


Matrices and vectors are the fundamental building blocks of many of the areas of programming I find most interesting: machine learning, simulations, statistical analysis, 3D games, computer-generated art etc.

Unfortunately, using matrices presents some problems in the Clojure world. There are actually a number of really good libraries available, but they are all incompatible and designed / optimised for different use cases. Choosing the right one is hard, and a lot of effort gets wasted converting between them and duplicating code.

This post is about how we might fix this in the Clojure world


Invoking Clojure code from Java

Posted: December 24, 2012 in Uncategorized
Tags: , ,

I often see people trying to call Clojure code from Java and having some trouble doing this. So I decided to write a quick utility to do this (inspired by Rich Hickey’s Lightening Talk), and provide a simple example.


“There are only two hard things in Computer Science: cache invalidation and naming things (and off-by-one errors)”

Clojure is a great language, and one of the few things I dislike about coding in Clojure are namespaces.

It is not because namespaces are fundamentally a bad idea – in fact namespaces are a great feature and I believe they are fundamentally important if you are trying to manage a code base effectively.

But they are particularly fiddly to get right in Clojure. They cause a lot of unnecessary grief. They are not Simple. This is the story of my battle with the namespace demons to construct a decent namespace for Clisk live-coding.


Enlight starts to emerge

Posted: December 13, 2012 in Uncategorized
Tags: , , ,

Spent a bit of time this weekend hacking on Enlight, my little Clojure raytracing project. Here’s one of the first outputs: