# Blog

> Dated updates and reflections.

---

LLMS index: [llms.txt](/en/llms.txt)

---

Dated updates and reflections. The current posts are available in both Chinese and English; use the language switcher to read either version.

---

Section pages:

- [How Hugo and Oink Integrate Giscus Comments](/en/blog/hugo-oink-giscus-comments/): A complete walkthrough from Hugo parameters and Oink templates to the Giscus iframe and GitHub Discussions, including shared comments across languages and deployments.
- [Installing a Custom Linux Kernel in a Virtual Machine](/en/blog/custom-linux-kernel-in-vm/): Stabilize VMware Ubuntu's NAT network, compile and install a custom kernel, then load a hello module—a complete operating-systems lab workflow.
- [DNS Notes: Domain Lookups, Resource Records, and HTTPS Certificates](/en/blog/dns-cname-notes/): How domain names become IP addresses, what A/CNAME/NS records do, and where CNAME values and TLS certificates fit into the process.
- [SSH Login and Security Hardening on Linux Servers](/en/blog/linux-ssh-security-notes/): Practical CentOS/Ubuntu VPS notes, from connection failures and private-key permission errors to port changes, UFW rules, and key-based authentication.
- [Building a Personal Site with Oink, from Setup to Publication](/en/blog/oink-site-setup-notes/): Notes on building a documentation site with Hugo and Oink as a frontend beginner, covering content structure, blog posts, hugo.yml, and local preview commands.
- [Migrating and Consolidating ROS Workspaces](/en/blog/ros-workspace-migration/): Practical notes on consolidating ROS robots and catkin workspaces into one clean source chain, including duplicate packages, build-time snapshots, and udev rules.
