December 2017: Please note that this post has not been updated for a while and there could be differences in terms of commands, screenshots and problems in running the code.