A JS/D3 solution to the XKCD knapsack problem