This was a presentation I gave at the 2013 Clojure Conj, focusing on core.matrix and related libraries.
Posts Tagged ‘clojure’
Tags: clojure, live-coding, machine-learning
My machine learning talk from the Clojure Conj 2012 is now online:
Tags: clojure, macros, tutorial
“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….
Tags: clojure, incanter, matrix, vectorz
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
Tags: clojure, interop, java
Tags: clisk, clojure, live-coding, namespaces
“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.