Hi! I’m thunkli. Thanks for landing on my about page.

I live in China, and I’m the guy who manages this blog.

I am currently working as a freelance Web developer here, and apart from developing things for web, I blog here on w3cmm.com.

I created this blog to share my favorite ways of creating things for web, and also the tools I use to do that. What you’ll find on this blog? Tutorial guides, news, handy code snippets, goodies, and tips n’ tricks kind of stuff that revolves around Web design and dev.

On this blog, I give my best to create and explain things that can be helpful to other web and front-end developers, as well as other DIY entrepreneurs. You may keep up with me and the blog by following us at GitHub.

(function() {
    function object(o) {
        function F() {}
        F.prototype = o;
        return new F();
    function inheritPrototype(subType, superType) {
        var prototype = object(superType.prototype);
        prototype.constructor = subType;
        subType.prototype = prototype;

    function Person(name, mail) {
        this.name = name;
        this.mail = mail;
    Person.prototype.sayName = function() {
    Person.prototype.sayMail = function() {
    function subPerson(options) {
        Person.call(this, options.name, options.github);
        this.mail = options.mail;
    inheritPrototype(subPerson, Person);
    var me = new subPerson({
        "name": "thunkli",
        "mail": "moc.qq#ilknuht".split("").reverse().join("").replace("#", "@")

Reference books