I don’t know if the Nowadays system is the best I have ever heard, but it is for sure the most even across the entire dancefloor, which is amazing in itself.

Also, Eamon Harkin played Dominator, a weird mix of Energy Flash, and then a Justin Timberlake remix. Well played, lads.

Cats in the world


Jaron Lanier still knows things:

There are four cats

Come meet the new boss


Back to the future.

the power nine

A nostalgically named but forward-looking set of sets for 2018, starting with TIMETWISTER:

It is maybe worth me thinking about how much I still process music like I might need to DJ with it – which is patently ridiculous, as I don’t DJ any more.  There’s lots of knowledge about how people’s music tastes are set in their teenage years and in their early 20s.  I wonder how much people’s habits around buying / listening / learning about music are set in those selfsame years – or if I’m just stuck in my adolescent ways.

how to solve problems

This is a book by a man with the fantastic name of Wayne Wickelgren – and I want to mention it because Wickelgren was a psychologist and a cognitive scientist, and the problem-solving methods he discusses all tend to map one-to-one to the algorithm design methods that are taught in computer science.

In CSC, the main three are:

Brute Force

Enumerate every possible combination, solution, or problem state – then optimize to determine the actual solution.  This is very slow, but is usually the easiest to think about.  Wickelgren talks about “classifying action sequences” by trial and error, including random trial and error.  A key note from Wickelgren is the idea of limiting your action sequences by ignoring things that have the same result – which is also about the same as memoizing a function.

Dynamic Programming

Solve a smaller version of the problem, then use the result of that to (inductively) build up the solution that you want.  Usually involves some tricky ways of storing the results of the smaller version of the problem.  The book talks about “hill climbing”, mentions getting stuck in local maxima, taking odd detours (sound like graph theory, anyone?), and so on.  Wickelgren likewise points out that evaluating what your end state should be can be tricky.

Divide & Conquer

Split the problem into smaller version, the combine them (usually in a recursive way) to find the solution that you want.  Wickelgren mentions “subgoals”, which are distinct from hill-climbing, as they’re not inductive – there’s even a binary tree as an example!

So those are the big three, which each get a chapter in the book.  The book also mentions proofs by contradiction, and “working backward”, which relates to both dynamic programming and divide & conquer solution – if you start from your solution and work “down”, or start from nothing and work “up”.

There’s likewise a chapter on “relationships between problems”, which is a thing that happens in computer science all the time – both in the software engineering sense of having done this before, and the computer science sense of being able to solve a known or simpler problem to get to the problem you want.

The most striking two points in the book that are not in typical computer science theory are a section about how if you can’t solve a problem, take a break, and all the reasons why taking a break is good for you.  The other point is about inferring new information from the given information, which is a constant bugbear of mine.  What information do you need to have that you don’t have?  And can you get that information from the given data?  Or, (in the software engineering sense) do you need to obtain it from somewhere else?

software & experiments: the archives

I had the pleasure of doing a radio show on for most of last year – you can find the archives on this server, or on the Mixclouds.  I’d recommend both Morocco Specials, (No. 8 and No. 9), the closing show (No. 13) and the Funk Special (No. 11).

one more time

Happy solstice, everyone.  2018, we’ll make it happen.