Skip to main content

· One min read
Xiaohai Huang
  1. Browser cache. - cookie.
  2. Breadth-First Traversal and Depth First Traversal.
  3. script tag. async and defer.
  4. React Hook
var obj = {
a: 1,
foo: function (b) {
b = b || this.a;
return function (c) {

var a = 2;
var obj2 = { a: 3 };, 1);;

· 2 min read
Xiaohai Huang

When we are discussing about my projects. The interviewer asked the following questions:

  1. How do you achieve infinite play effect in a carousel?
  2. Use JS to achieve #id's scroll to element effect.
  3. CSS animation.

After done talking my projects, I was asked a few questions about Promise, linked list, and heap sort, insertion sort.

· One min read
Xiaohai Huang

git stash with a stash name.

git stash push -m "stash_name"

stash untracked files

git stash push -u -m "stash_name"
git stash push --include-untracked -m "stash_name"

· 2 min read
Xiaohai Huang

The ENTRYPOINT specifies a command that will always be executed when the container starts.

The CMD specifies arguments that will be fed to the ENTRYPOINT.

  • ENTRYPOINT can also be overridden using --entrypoint flag
  • CMD will be overridden when running the container with alternative arguments (e.g. bash).

· One min read
Xiaohai Huang

Just a simple command

docker run -itd --restart always --cap-add=NET_ADMIN \
-p 1194:1194/udp -p 7070:8080/tcp \
-e HOST_ADDR=$(curl -s \
-v openvpn_conf:/opt/Dockovpn_data \
--name dockovpn alekslitvinenk/openvpn

Then download the config file from the http://<public-ip>:7070 and then import the config file (client.ovpn) to the vpn client.


· One min read
Xiaohai Huang

This is my first blog written in CodeSandbox.
I like this app very much. I would enjoying using it to document my study. With this app, I can read notes on both my phone and laptop. In short, it provides a very nice user experience. Now, I am going to finish this commit and deploy the app to vercel. vercel deployment