To be honest, I still find it hard to accept this fact. It just doesn't feel real. The legend, Chen Hao, has passed away.
0 #
Yesterday at noon, just like countless other boring moments before, I was scrolling through my WeChat Moments on my way to the office. Then I saw a buddy post a screenshot. The gist of it was: "Confirmed by XXX, our dear friend XXX suddenly passed away from a heart attack."
"What???"
I replied asking for details, and started cross-checking on other platforms. I was ready to tear into these rumor-mongers once I confirmed it was fake news. But as I pieced together information from here and there, I fell silent.
Counting on my fingers, I realized that day was my birthday. Like so many birthdays before, I had spent that quiet, uneventful Saturday. I had no idea that at that very moment, a senior I deeply respected had already passed into another world.
Also, I won't publish a book before I'm at least 45, because I feel that before then, I won't have accumulated enough knowledge, and I'm not qualified to publish one.
I still remember this passage from Uncle Chen Hao's blog. So where's the book? So you're just going to leave us hanging like this? Out of nowhere, this strange thought welled up inside me.
1 #
My parents know nothing about computers. Back in college, as a computer science major, I would regularly receive calls from my dad "teaching" me, often asking: "Been on the internet lately?" I would answer irritably, "Yes, I'm online 24/7." In his mind, "being online" simply meant playing online games.
As for me, with my clumsy hands, honestly I had limited interest in single-player games, and in MMOs I was basically someone else's content. But even earlier than that, I had fallen deeply in love with the world of code. I remember when I was very young, my family gave me a Wenquxing electronic dictionary, which came with a built-in GVBASIC. There were no tutorials, only a built-in API reference, so I fumbled around on my own. When the teacher explained quadratic equations and root-finding in class, I would look at the API and try to implement it myself, and felt endless joy. Oh, and RND and the various drawing commands were great too — I'd always waste a few extra lines to draw myself a little splash-screen animation.
My family also gave me some odd books about hackers, which I thoroughly enjoyed — they felt just as fun as The Smiling, Proud Wanderer.
But when I tried to explain the broader world of computing to them — software development, artificial intelligence, and so on — they could rarely grasp these concepts. I once tried using simple language and concrete examples, but their response was usually a blank stare and a confused expression. I didn't know how to share my joy with them, nor did I know where the joy I was pursuing should lead.
2 #
皓 (Hào): white, bright
- 日出~兮 (the sun rises, bright) — from The Book of Songs · Chen Feng · The Moon Rises
- ~月千里 (bright moon across a thousand li) — Fan Zhongyan, Yueyang Tower
I don't remember exactly how it happened, but one day I stumbled upon CoolShell.cn, and I browsed a bit, and then kept browsing...
CoolShell has its share of fluff pieces, but it also has a lot of content truly worth mentioning. There are conceptual pieces like Functional Programming, technical deep-dives like Transaction Processing in Distributed Systems and Cache Update Strategies, discussions of concrete engineering issues like 12306.cn and Website Performance, and straightforward tool tutorials like A Concise Vim Leveling Guide, A Concise AWK Tutorial, and A Concise SED Tutorial.
What's more, long before that, his compiled document Writing Makefiles with Me was exactly what I imagined the best kind of technical writing to be. No deliberately "humorous" remarks, no attempt to make things needlessly profound — just walking through the documentation together, sharing his own understanding. Although at first I understood nothing, it didn't take long before, upon finishing it, I suddenly felt I could actually do something, and even felt I could use the same approach to write many other things.
"I hope my articles can have a long lifecycle — long enough that people will still read articles I wrote more than ten years ago." — Chen Hao
Although his original document lived in a rather rough place, we can see that over the years, people have kept reformatting and republishing it on better platforms. Like this one, and this one. I believe this document will continue to be passed down, and more people will benefit from it in the future.
For me, it was indeed like the rising sun, bright and luminous; like the moon, shining across a thousand li.
Sometimes, the blogger would also talk about ideals. For example, An Interlude in LINUX 2.6.39-RC3 and Thoughts Inspired by a Low-Level Apple Bug. Many commenters expressed differing views, along the lines of "too idealistic — let me teach you how the real world works."
At the time I didn't understand either, and felt perhaps both sides had a point. But at the same time, deep down, I felt that maybe what Chen Hao described was a future worth striving for.
Now, many years later, looking back: it turns out insisting on doing things the right way isn't that hard. Sure, a quick-and-dirty "rough, fast, and fierce" approach may bring short-term gains, but careful refinement and iteration yield a solid, reliable foundation that makes all your later efforts feel secure. Overall, you barely lose any development efficiency, yet the system becomes far more robust and dependable.
3 #
Chen Hao had long been a senior figure in this field — "highly respected" wouldn't be an overstatement. What was special, though, was that he always kept a remarkably gentle, down-to-earth attitude. Back when I knew nothing, I would casually @ him on Weibo — asking about how to use his WordPress plugin, or venting about my boss dumping a pile of machine learning assignments on me that I couldn't make heads or tails of. And to my surprise, I actually got responses. He earnestly discussed with me whether some plugin was useful or not, and regarding machine learning, he said he didn't really understand it either, then reposted my question to pull others into the discussion. And so on.
Thinking about it now makes me blush a little — it's part of my embarrassing past, but also an incredibly warm memory.
He never seemed to care much about the topic of discussion. Sometimes you'd mention something, and he'd put on the persona of a slightly older programmer pretending to be new to it too, exploring it together with you. Before you knew it, you'd forgotten who he was, and all that remained was a kind "Uncle Haozi."
And this little humble blog of mine — it was also after watching his delightful sharing that I found myself thinking: what a wonderful idea! Let me give it a try too! And now, more than ten years have flown by. Oh, right — back then the blog's domain wasn't this one. I once posted my super, super long domain name on my Weibo too. He occasionally reposted it, drawing an unwitting crowd that basically DDoS'd my little server into the ground. Today, that traffic would be totally effortless for me, but I no longer know who to show off to.
N #
Over the years, I've gradually written ton after ton of code. But when it comes to open source, I've only occasionally fixed small bugs and submitted a few trivial PRs — honestly, I'm too embarrassed to show them to anyone. Sometimes I browse his recent updates, thinking that maybe one day, I'd have a chance to meet him and say thank you to his face.
Sadly, that chance will never come again.
Comments
No comments yet — be the first to write one.