Creating templated Systemd services

2 minute read

Last time I wrote an article about NAT traversal using FRP, which has been my personal solution for exposing SSH access of machines behind NAT to the interne...

Using SSH deploy keys on CircleCI

2 minute read

A year ago back I wrote an article on automating build & deployment of GitHub Pages website with Travis CI. It’s a great CI service at first, but since T...

How I saved a lost commit from GitHub

2 minute read

Earlier today I force-pushed to my repository USTC-RV-Chisel for testing purposes, without noticing that my local ref origin/master is 1 commit behind the ac...

Bootstrapping Make

4 minute read

Have C or C++ project to build? You may think, “Yeah this is very easy, I’ll just call the compiler to do so”, and yes, let’s take a look at an example.

Setting up Ubuntu in VMware Workstation

3 minute read

A quick step-by-step guide for those wanting to get in touch with Ubuntu in a virtual machine with minimal effort. For example, at the start of a semester of...

Access your Raspberry Pi remotely with SSH

3 minute read

Do you have a personal server at home but can’t access it from work or travel because your home doesn’t have a public IP? If so, then, this article is what y...