An arbitrary-palette positional dithering algorithm | Hacker News Reader