<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.calvinhappy.com//</loc>
<lastmod>2026-05-29</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog</loc>
<lastmod>2026-05-29</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//projects</loc>
<lastmod>2026-05-29</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//tags</loc>
<lastmod>2026-05-29</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-02-26-my-new-website</loc>
<lastmod>2015-02-26T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-02-27-reading-notes-one-of-advanced-programming-in-the-Unix-environment</loc>
<lastmod>2015-02-27T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-02-28-sed-an-introduction-and-tutorial-translated</loc>
<lastmod>2015-02-28T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-03-10-curl-and-wget</loc>
<lastmod>2015-03-10T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-03-23-prepare-well-before-begin</loc>
<lastmod>2015-03-23T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-03-31-.a-.so-file-under-Linux</loc>
<lastmod>2015-03-31T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-02-tcpdump-command-short-tutorial</loc>
<lastmod>2015-04-02T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-06-how-to-install-local-file-using-brew</loc>
<lastmod>2015-04-06T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-09-several-useful-mac-commands</loc>
<lastmod>2015-04-09T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-15-host-in-http-request-and-nginx-configuration</loc>
<lastmod>2015-04-15T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-16-kill-killall-commands</loc>
<lastmod>2015-04-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-04-21-core-dump-sample</loc>
<lastmod>2015-04-21T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-06-12-my-new-job</loc>
<lastmod>2015-06-12T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2015-11-16-reading-notes-of-peopleware</loc>
<lastmod>2015-11-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2016-03-24-year-plan-for-2016</loc>
<lastmod>2016-03-24T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2016-04-05-hackers-and-painters-notes</loc>
<lastmod>2016-04-05T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2016-10-22-Protocol-Oriented-Programming-in-Swift</loc>
<lastmod>2016-10-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-02-03-Method-Dispatch-in-Swift</loc>
<lastmod>2017-02-03T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-02-16-How-To-Fix-Constraint-Conflict-in-iOS</loc>
<lastmod>2017-02-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-07-25-useless-notes-on-iOS</loc>
<lastmod>2017-07-25T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-08-11-UILayoutGuide-example</loc>
<lastmod>2017-08-11T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-08-22-how-to-read-swift-language-source-code</loc>
<lastmod>2017-08-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2017-08-22-swift-source-code-Bool</loc>
<lastmod>2017-08-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2018-01-22-create-game-app-called-free-world</loc>
<lastmod>2018-01-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2018-01-22-modify-the-tsc-for-layabox</loc>
<lastmod>2018-01-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2018-01-23-list-in-layabox</loc>
<lastmod>2018-01-23T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2019-12-13-fastlane-update-certificate</loc>
<lastmod>2019-12-13T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2019-12-19-python-flask-enable-gzip</loc>
<lastmod>2019-12-19T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2019-12-23-capture-http2-using-wireshark</loc>
<lastmod>2019-12-23T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2019-12-30-develop-a-game-ended</loc>
<lastmod>2019-12-30T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2020-09-04-why-react-hooks</loc>
<lastmod>2020-09-04T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2020-09-24-webpack-tapable-usage</loc>
<lastmod>2020-09-24T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-02-01-move-blog</loc>
<lastmod>2021-02-01T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-02-02-encodeURI-vs-encodeURIComponent</loc>
<lastmod>2021-02-02T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-05-vite-1.0-source-code-explanation</loc>
<lastmod>2021-03-05T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-06-vite-1.0-preparation</loc>
<lastmod>2021-03-06T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-06-vite-1.0-simple-introduction</loc>
<lastmod>2021-03-06T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-07-vite-1.0-boot-code-analyze</loc>
<lastmod>2021-03-07T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-08-vite-1.0-HTML-plugin</loc>
<lastmod>2021-03-08T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-09-vite-1.0-module-rewrite-plugin</loc>
<lastmod>2021-03-09T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-09-vite-1.0-serve-static</loc>
<lastmod>2021-03-09T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-15-vite-1.0-module-reresolve-plugin</loc>
<lastmod>2021-03-15T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-16-vite-1.0-CSS-plugin</loc>
<lastmod>2021-03-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-16-vite-1.0-client-plugin</loc>
<lastmod>2021-03-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-17-vite-1.0-HMR-client</loc>
<lastmod>2021-03-17T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-21-error-on-deploy-my-website</loc>
<lastmod>2021-03-21T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-21-python-subprocess-pipe-communication</loc>
<lastmod>2021-03-21T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-22-vite-1.0-HMR-plugin</loc>
<lastmod>2021-03-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-03-23-tencent-geeks-chanllenge-match</loc>
<lastmod>2021-03-23T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-05-29-optimize-bundle-output-from-webpack</loc>
<lastmod>2021-05-29T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-06-03-useful-git-command</loc>
<lastmod>2021-06-03T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-06-08-git-stash-partially</loc>
<lastmod>2021-06-08T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-06-13-learn-computer-network-by-using-wireshark</loc>
<lastmod>2021-06-13T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-06-19-how-to-use-react.memo-to-improve-performance</loc>
<lastmod>2021-06-19T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-08-16-learn-CSS-combinator</loc>
<lastmod>2021-08-16T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-08-18-custom-react-hook-fetch-and-cache-data</loc>
<lastmod>2021-08-18T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-08-19-alibaba-hooks-source-code-analysis-useToggle</loc>
<lastmod>2021-08-19T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-08-21-command-line-operator-to-execuate-multiple-commands</loc>
<lastmod>2021-08-21T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-09-05-alibaba-hooks-source-code-analysis-useClickAway</loc>
<lastmod>2021-09-05T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-09-24-learn-react-portal</loc>
<lastmod>2021-09-24T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2021-09-26-alibaba-hooks-source-code-analysis-useCookieState</loc>
<lastmod>2021-09-26T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2022-02-28-refactor-less-file-using-Python</loc>
<lastmod>2022-02-28T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2022-09-22-how-immer-works</loc>
<lastmod>2022-09-22T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2025-01-12-my-blog-has-been-updated</loc>
<lastmod>2025-01-12T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/2025-06-02-cursor-yearly-billing</loc>
<lastmod>2025-06-02T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/the-time-machine</loc>
<lastmod>2018-08-15T00:00:00.000Z</lastmod>
</url>
<url>
<loc>https://www.calvinhappy.com//blog/nested-route/introducing-multi-part-posts-with-nested-routing</loc>
<lastmod>2021-05-02T00:00:00.000Z</lastmod>
</url>
</urlset>
