playground zhengwei aka zenv antlr asm collection design pattern flink hadoop java kali leetcode netty perl5 scala spark thread