Added by request of Gábor Novoszádi from community feedback and thanks to the gist from @kkirsche. I have supplied a link to the gist as it is well written, with permission we may look to rework for direct inclusion at some point :)