Author | Logan

  1. 2014 Year End Review

    It's the end of 2014. It has been an amazing year with a lot of astonishing moments!

    • This is my first year to work as a full-time software engineer. I have learned a lot from the real world software development, including the PMD, annaul planning, software schedule estimation, and etc …

    More

  2. Debian Backports

    It is well-known that Debian stable release is very stable, i.e. the packages are very old and well-tested. However, this become a problem to me.

    Since Git 1.9, we have to run the following command to silence a warning when we are running git push.

    $ git config --global …

    More

  3. Count Trailing Zeros

    How to count the number of trailing zeros of an integer? The simplest way is to use the built-in function __builtin_ctz():

    uint64_t count(uint64_t n) {
      return __builtin_ctz(n);
    }
    

    What will happen if we don't have __builtin_ctz()? If we have another built-in function __popcount(), which can compute the Hamming weight (the …

    More

  4. RISC-V Microprocessor

    RISC-V is an instruction set architecture (ISA) released by UC Berkeley. Besides, a high performance, power efficient, and royalty-free open source implementation Rocket Chip is available.

    RISC-V was developed by Krste Asanović and David A. Patterson. In their technical report, they claimed that an open instruction set can benefit both …

    More

  5. Autossh and Ubuntu Upstart Daemon

    Since I am sharing the network without public IP, I would like to maintain a SSH tunnel so that I can connect to my desktop from the remote site. After searching the web, I found that Autossh fits my needs. Autossh is a utility that can start and monitor the …

    More

  6. C++ Virtual Destructor and Inheritence

    It is a well-known idiom to define a virtual destructor for the classes with virtual functions. If we don't define a virtual destructor, then the base class destructor will be invoked when you are deleting the object through the base class pointer even if the object is an instance of …

    More

  7. LLVM Bugpoint

    In this post, I would like to introduce the bugpoint command line tool. This is a automatic test case reduction tool which can help us generate minimal test case.

    As a compiler developer, the first step to debug is to create a minimal test case which can still reproduce the …

    More

  8. Vim Vundle

    In the past, I didn't like to install the Vim plug-ins or new syntax highlight because all of the files were messed up in the .vim directory which makes it difficult to uninstall a plug-in.

    Recently, I have come across with Vim Vundle. It is a vim plug-in manager which …

    More

« Prev Page 5 / 7 Next »