https://yangyangli.top/posts/025-learning-notes/