1. Experience with Atom Editor

    I have been a Vim user for a long time. However, I found that Vim is not good enough for me to write blog with Pelican. I need a good reStructuredText previewer, but I am not very satisfied with InstantRst. I wish to have a two-panel editor that I can …


  2. Colon Built-in in Bash

    I came across a weird line in a shell script:

    : ${parameter:=word}

    It is so weird that I don't even know how to search for further information. Fortunately, I found a post after searching bash colon. It is a built-in utility which simply exits with 0. In the other words …


  3. Open and Close Files in Bash

    In a shell script, file descriptor 0 stands for stdin, file descriptor 1 stands for stdout, and file descriptor 2 stands for stderr. In addition, programmers can open, close, or duplicate file descriptors with the exec built-in command and the I/O redirection operator:

    Syntax Description
    exec $fd< "${filepath}" Open …


  4. JavaScript Object.defineProperty()

    In Javascript, we can add a property to an object with:

    obj.property = value;

    However, sometimes we would like to have fine-grained control over properties. With Object.defineProperty(), we can decide:

    Descriptor Purpose Default
    value Property value undefined
    writable Whether the property can be assigned false
    get Getter of the …


  5. NPM Package Manager

    NPM package manager plays an important role in Node.js ecosystem. Every serious Javascript developers should learn how to create a package with npm. In this post, I am going to cover several important npm commands.

    Initialize a NPM Package

    To start a project, we have to create package.json …


  6. Flask and Socket.IO

    Under some scenarios, we would like to push a message from an HTTP server to clients. For example, in a group messaging application, whenever a user sends a message to the server, the server has to push such message to everyone. Since 2001, several techniques have been proposed. Eventually, WebSocket …


  7. Vim Ctrl-P Plug-in

    Ctrl-P plug-in allows us to open files with fuzzy names or regular expression matches. It boosts my productivity at lot! I am glad to know about this plug-in and I would like to share my experience with you.


    If you are managing Vim plug-ins with Vundle [1], you can …


  8. Python New Style Class

    Recently, I am curious about this code snippet:

    class Test(object):
        def __init__():

    Why do we have to extend or inherit from object type?

    There are no differences with or without (object) in Python 3. But there are significant differences in Python 2. If a class inherits (either directly …


  9. A Quick Guide to Grunt

    Grunt is a task runner for Javascript development. Grunt automates the process to bundle, transpile, uglify, and compress the Javascript source code. This post would like to give a quick guide to Grunt.


    Our first step is to create a package.json. We will need a package.json to …


  10. JavaScript Prototype and Object Oriented

    Javascript is a prototype-based object-oriented programming language. Unlike the conventional class-based object-oriented programming languages (e.g. C++ or Java), which ask programmers to write a class and then instantiate several similar objects from the class, Javascript adopts a different approach. In the world of Javascript, we have to craft a …


« Prev Page 2 / 7 Next »