Using mdBook to Keep a Personal Diary

I have not updated my blog for a LONG time. It seems that my blog is on the edge of distinction again history repeats itself. The post Twenty Two Plus Plus in memory of my undergraduate years has been staying in the _drafts folder for nearly three months. I NEED to finish it before it is too late 24歳、学生です.

The underlying reason is quite simple another new excuse I made to justify my laziness: I was struggling with graduation last summer semester. After I arrived at Ithaca, I found a new way to keep a personal diary/journal. I had tried lots of tools, including paper textbooks, Word, DayOne, OneNote, etc., to help myself keep a personal diary since I was a little boy. None of these attempts lasted for more than two months. But for now, I have successfully kept a diary for two months. Thanks to mdbook: Create book from markdown files. Like Gitbook but implemented in Rust.

Read more

MIT 6.828 Toolchains Setup on macOS

There are many tutorials and posts introducing environment setup for the prominent operating system course MIT 6.828. However, most of them do not target at macOS. Even if some of them do, they often choose to directly compile and install the related tools without using any package management technique to keep everything clean.

After searching on the Internet for quite a while, I finally found a promising solution: By creating one’s own Homebrew tap, toolchains for 6.828 could be deployed swiftly & cleanly.

Read more

Automatically Sign Commits Using GPG Suite on macOS

To make my commits marked as “verified” on GitHub, I tried to sign them locally using GPG. It worked fine using the following command line command:

> git commit -S -m your commit message

But when I tried to sign commits within JetBrains IDEs, like Clion, things did not work out so easily. JetBrains IDEs do not provide native supports/integrations for GPG. So I need to make use of GPG Suite to sign commits automatically without being prompted for password from the terminal. This post records how to do so.

Read more

Configure Multiple Users for Shadowsocks-libev

The original Python release of shadowsocks supports multiple users through configuration, by assigning different passwords on multiple ports.

"server": "",
"port_password": {
"8381": "foobar1",
"8382": "foobar2",
"8383": "foobar3",
"8384": "foobar4"
"timeout": 300,
"method": "aes-256-cfb"

Currently I am using shadowsocks-libev, which is the libev port of shadowsocks. And I also need to support the usage of multiple users.

Read more

Build My Own Nest

Every ostrich needs a nest. So do I.

There are many posts that illustrate how to create a Hexo-driven blog hosted on Github. However, when it comes to personal VPS, such step-to-step tutorial vanishes. Since I need to use shadowsocks to access the outside world beyond the wall, I happen to own a VPS provided by Bandwagon. So I do not need to(also not willing to) use Github to store the static webpages. As a result, this website is deployed on my personal VPS(Ubuntu 16.04). And here are some of the crucial procedures I have taken to build this website(my own nest):

Read more