development

Using SSH deploy keys on CircleCI

July 08, 2019 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 Travis CI has completely moved away from containers, speed is a real issue to whoever is concerned. On the other side, CircleCI is continuing...

Bootstrapping Make

February 25, 2019 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.

Programming the On-Board SPI Flash of Digilent Nexys4 DDR

November 16, 2018 less than 1 minute read

This semester I have the course “Experiments of Digital Circuits”, the content of which is designing digital circuits using Vivado software, and writing Verilog code. Most of the lab papers require generating bitstream for the project and downloading it to Nexys4 DDR board to verify the functiona...

Making a Reversi game with Python

May 10, 2018 3 minute read

As a casual attempt to accomplish a Grand Assignment, I created a Reversi game with Python. The project is open-source on GitHub and you can view it with the link above.

Joining SmokeDetector

March 14, 2018 3 minute read

After a plain request, an administrator of the SmokeDetector project added me under the Developers section of their team member list, which indicates that I am a known personnel for contributing a non-trivial amount of code to the project.

Append int to std::string

August 04, 2017 1 minute read

For people new to template resolution and template type deduction in C++, they may have written this code and get confused why it doesn’t compile:

Back to Top ↑

study-notes

Converting DFA to Regular Expression

September 25, 2019 1 minute read

This post originated from Lab 1 of course Compilers: Principles that I’m currently taking, in which we were required to write a flex program to parse a subset of the C language. The multiline comment /* */ was the most troublesome to handle for most of us (excluding me, for sure).

How I saved a lost commit from GitHub

June 07, 2019 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 actual master on GitHub. My friend pushed his work (1 commit) to it, and now it’s lost.

Build a minimal Linux system and run it in QEMU

April 07, 2019 6 minute read

Linux is the #1 open-source operating system nowadays, and many people are running a Linux distro, such as Ubuntu or Arch. Linux is also the most popular choice for a server OS.

Bootstrapping Make

February 25, 2019 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.

Programming the On-Board SPI Flash of Digilent Nexys4 DDR

November 16, 2018 less than 1 minute read

This semester I have the course “Experiments of Digital Circuits”, the content of which is designing digital circuits using Vivado software, and writing Verilog code. Most of the lab papers require generating bitstream for the project and downloading it to Nexys4 DDR board to verify the functiona...

Alpha-Beta Pruning

May 23, 2018 4 minute read

As described in a previous article, Alpha-Beta pruning can be used to speed up minimax heuristic searching by pruning branches that will never be reached.

Making a Reversi game with Python

May 10, 2018 3 minute read

As a casual attempt to accomplish a Grand Assignment, I created a Reversi game with Python. The project is open-source on GitHub and you can view it with the link above.

Back to Top ↑

linux

Managing servers with OpenSSH Certificate Authority

December 23, 2019 6 minute read

Since the addition of the website server for an external corporation, I now have 5 Linux servers to manage on my own. I also have 4 terminal devices that I use to connect to those servers: two of my laptops, my Android phone (using Termux), and one of those servers that I use as a workstation.

Creating templated Systemd services

July 16, 2019 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 internet for a long time.

Build a minimal Linux system and run it in QEMU

April 07, 2019 6 minute read

Linux is the #1 open-source operating system nowadays, and many people are running a Linux distro, such as Ubuntu or Arch. Linux is also the most popular choice for a server OS.

Setting up Ubuntu in VMware Workstation

February 21, 2019 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 Operating System Concepts course.

Access your Raspberry Pi remotely with SSH

February 13, 2019 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 you’re looking for.

Back to Top ↑

software

Bootstrapping Make

February 25, 2019 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

February 21, 2019 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 Operating System Concepts course.

Back to Top ↑

stack-overflow

Append int to std::string

August 04, 2017 1 minute read

For people new to template resolution and template type deduction in C++, they may have written this code and get confused why it doesn’t compile:

Back to Top ↑

github-pages

Make your GitHub Pages website faster with Cloudflare

November 11, 2019 4 minute read

This September I employed Cloudflare to optimize my website (https://ibugone.com) in various aspects. It turned out to be a brilliant move and Cloudflare has proved to be a great service to have.

Using SSH deploy keys on CircleCI

July 08, 2019 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 Travis CI has completely moved away from containers, speed is a real issue to whoever is concerned. On the other side, CircleCI is continuing...

Back to Top ↑

stack-exchange

Some ideas about multicore on Android

June 11, 2017 3 minute read

Laptops have usually at most four cores, and dualcores are probably more common. I have recently switched from quadcore to dualcore and I can confirm there is a limited number of use cases for quadcore, even with CPU intensive tasks.

Back to Top ↑

android

Some ideas about multicore on Android

June 11, 2017 3 minute read

Laptops have usually at most four cores, and dualcores are probably more common. I have recently switched from quadcore to dualcore and I can confirm there is a limited number of use cases for quadcore, even with CPU intensive tasks.

Back to Top ↑

algorithm

Alpha-Beta Pruning

May 23, 2018 4 minute read

As described in a previous article, Alpha-Beta pruning can be used to speed up minimax heuristic searching by pruning branches that will never be reached.

Back to Top ↑

gaming

Pairing the new Xbox One S controller (2018) with Android

June 17, 2018 1 minute read

I just bought an Xbox One S controller yesterday, expecting it would pair with my Android phone via Bluetooth. I have learned that the key mapping would be a bit messed up because it’s a Microsoft product, and have already prepared for it by downloading a key layout file and placing it in my phon...

Back to Top ↑

miscellaneous

Back to Top ↑

microsoft-office

Back to Top ↑

networking

Access your Raspberry Pi remotely with SSH

February 13, 2019 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 you’re looking for.

Back to Top ↑

keygen

Back to Top ↑

git

How I saved a lost commit from GitHub

June 07, 2019 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 actual master on GitHub. My friend pushed his work (1 commit) to it, and now it’s lost.

Back to Top ↑

github

How I saved a lost commit from GitHub

June 07, 2019 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 actual master on GitHub. My friend pushed his work (1 commit) to it, and now it’s lost.

Back to Top ↑

speech

My speech at Microsoft Summer Camp 2019

August 14, 2019 10 minute read

This is a translated version from the Chinese (original) script. The slideshow can be acquired here. For comments, please head to the Chinese version of this post.

Back to Top ↑

raspberry-pi

Back to Top ↑

review

Back to Top ↑

benchmark

Back to Top ↑

regular-expression

Converting DFA to Regular Expression

September 25, 2019 1 minute read

This post originated from Lab 1 of course Compilers: Principles that I’m currently taking, in which we were required to write a flex program to parse a subset of the C language. The multiline comment /* */ was the most troublesome to handle for most of us (excluding me, for sure).

Back to Top ↑

cloudflare

Make your GitHub Pages website faster with Cloudflare

November 11, 2019 4 minute read

This September I employed Cloudflare to optimize my website (https://ibugone.com) in various aspects. It turned out to be a brilliant move and Cloudflare has proved to be a great service to have.

Back to Top ↑

lifehack

How to change email of your Nvidia account

November 22, 2019 1 minute read

I recently retired a few old email addresses, and am currently going in a row to change email for accounts associated with those emails. Everything else went smoothly, with my Nvidia account being an exception - There wasn’t an option to change it!

Back to Top ↑

ssh

Managing servers with OpenSSH Certificate Authority

December 23, 2019 6 minute read

Since the addition of the website server for an external corporation, I now have 5 Linux servers to manage on my own. I also have 4 terminal devices that I use to connect to those servers: two of my laptops, my Android phone (using Termux), and one of those servers that I use as a workstation.

Back to Top ↑

web-scraping

High-performance mass web crawling on AWS

December 28, 2019 16 minute read

The 3rd-and-last experiment of course Web Information Processing and Application required us to create a recommendation engine, and “predict” the rating (1-5 stars) for 4M user-item pairs based on the training data of 9M user-item pairs and a social network.

Back to Top ↑

aws

High-performance mass web crawling on AWS

December 28, 2019 16 minute read

The 3rd-and-last experiment of course Web Information Processing and Application required us to create a recommendation engine, and “predict” the rating (1-5 stars) for 4M user-item pairs based on the training data of 9M user-item pairs and a social network.

Back to Top ↑

story

High-performance mass web crawling on AWS

December 28, 2019 16 minute read

The 3rd-and-last experiment of course Web Information Processing and Application required us to create a recommendation engine, and “predict” the rating (1-5 stars) for 4M user-item pairs based on the training data of 9M user-item pairs and a social network.

Back to Top ↑