An Easy Way to Build a Multi-Language Blog with Hexo
Common Multi-language Blog SolutionsThe simplest way to use hexo to build a multilingual website is to directly build two independent sites and make a jump link to each other. Here’s how to implement it. Solution ComparisonSuppose I now have a Chinese blog and plan to add an English site Hexo Dual-site Implementation Details Copy the entire blog directory as the English blog directory. For example, my blog root directory is called blog.source, and copy a blog.source.en. After this, if source...
Zhihu Enhancement Tool — Comment Timestamps Down to the Second
Zhihu, as a high-quality text community, often features deeply insightful comment discussions. However, Zhihu’s default comment timestamp format has a subtle but frustrating problem — it only shows relative times like “3 hours ago,” “yesterday,” or “5 days ago.” That’s fine for casual browsing, but if you’re trying to trace the timeline of a discussion or compare the order of different comments, this fuzzy time display is completely inadequate. The Problem: Limitations of Relative TimeRelat...
How to Scientifically Browse Zhihu at Work
Everyone knows what kind of website Zhihu is. Today, let’s look at it from a different angle — I’m sharing a small tool to make “browsing Zhihu at work” safer and more efficient. The Economics of Browsing at Work: Why Zhihu?I was looking through my own Zhihu account analytics recently and noticed something quite interesting: over 40% of traffic came from the PC side. In the mobile internet era, that number is unusually high. I also learned from other sources that Zhihu’s traffic on weekends...
Book Notes: Thinking in Systems - How to Face Complex Problems in Reality
The primary purpose of this book is to teach readers how to think more effectively when facing complex problems in reality. The book itself focuses on basic systems concepts, which are actually quite easy to understand. Additionally, the author provides numerous examples. When first reading this book, you might feel that the theory and practical examples are somewhat disconnected. But gradually you’ll realize that this topic is indeed not easy to explain in a way that’s easily accessible — it...
Common Patterns in Distributed System Design
Previously, I translated an article about distributed systems (https://lichuanyang.top/posts/3914/) which received positive feedback across various platforms. So I recently reorganized the related knowledge, combined with new insights gained over the past year, and rewrote this article. First, let’s clarify what kind of distributed systems we’re discussing here. Simply put, they need to satisfy two conditions: multi-node and stateful. Multi-node is straightforward to understand. Being state...
What Are SSP, DSP, RTB, and ADX? Understanding the Concepts and Evolution of Internet Advertising
In this article, I will introduce the current state of internet advertising and untangle the underlying logic of internet advertising, to help everyone better understand this industry. What Is AdvertisingWhen discussing internet advertising, we must first start with what advertising itself is. Only by understanding the underlying logic of advertising can we better understand what problems exist in internet advertising, why programmatic advertising trading emerged, why various systems like A...
From Redo Log and Undo Log to Isolation Levels: A Deep Dive into Database Transactions and ACID
Recently, I read Zhou Zhiming’s book “Phoenix Architecture” and gained deeper insights into many aspects of technology. I plan to make some summaries. Today, I’ll start with the section on transactions, combining content from the book with my own understanding, aiming to explain local transactions clearly and thoroughly. If there are any inaccuracies, I welcome corrections. A transaction ensures that data in the database remains in a valid state. Through continuous CRUD operations, the data...
Practical experience using kubernetes in java projects with low learning costs
Compared with large manufacturers, many start-up companies have a very important disadvantage that their infrastructure is imperfect and they do not have a variety of complete tools. Therefore, I plan to sort out how to build a development process with a good experience based on the capabilities provided by the open source community with as little operation and maintenance and development costs as possible. First, let’s sort out the necessary steps in the entire development process. I will ...
2021 in Upheaval — A Mid-Career Engineer's Year-End Review
2021 was a year of upheaval for me personally. A job I had planned to pursue long-term — one with excellent comfort and promising prospects — suddenly collapsed due to certain reasons. Consequently, I faced a critical crossroads regarding my future direction. At least so far, I feel I’ve made some correct choices. I’ve also made good progress on the personal growth goals I set at the beginning of the year. So I’m approaching this year-end review with a reasonably positive mindset. Career Re...
A Canary Release Approach in Kubernetes
Canary release is actually a process well-suited for cloud-native environments, so I believe many people have the need to perform canary releases under Kubernetes. In this article, we introduce a very simple approach to canary release. What is Canary ReleaseFirst, let me introduce what a canary release is. The name “canary” originates from the fact that miners discovered canaries are very sensitive to gas. Before descending into the mine, miners would send a canary down first. If the canary...













