Sitemap
A list of all the posts and pages found on the site. For you robots out there, there is an XML version available for digesting as well.
Pages
Posts
Old Code
Published:
🎵 Old Money is one of my favorite songs. I asked an AI to write song lyrics about an aging programmer left behind in the age of AI, in the style of Lana Del Rey’s “Old Money”. The song is titled “Old Code”.
▶️ Old Code ,created by Udio AI Music.
Background Notes:
Lana Del Rey is an American singer-songwriter known for her cinematic, melancholic style that blends dream pop, baroque pop, and Americana. Her music often evokes nostalgia, vintage Hollywood glamour, and themes of tragic romance, wealth, and disillusionment with the American Dream. Her sultry vocals and atmospheric production have made her one of the most distinctive voices of the 2010s–2020s.
“Old Money” (from Ultraviolence, 2014) is a standout ballad that exemplifies her aesthetic at its purest:
- Musically, it’s sparse and orchestral — built on gentle piano and swelling strings, with a melody adapted from Nino Rota’s theme for Romeo and Juliet (1968). The arrangement feels like a film score rather than a pop song.
- Lyrically, it’s a wistful elegy for lost love and a vanished gilded era — “blue hydrangea, cold cash, divine” — name-dropping Hyannis Port and evoking Kennedy-era Americana. The narrator longs for someone to “come back to” her, mixing romantic yearning with class consciousness.
- Vocally, Lana stays in a soft, breathy register, which heightens the song’s intimacy and fragility.
It’s often cited by fans as one of her most underrated tracks — quieter than her singles, but emotionally one of her most concentrated works.
Prompt: Write a song lyric about an aging programmer left behind in the age of AI, written in the style of Lana Del Rey’s “Old Money”.
Old Code
(in the style of Lana Del Rey’s “Old Money”)
[Verse 1]
Blue monitors, cold coffee, vim
Summer mornings when the world was thin
Stack traces falling like Manhattan rain
Will you still know my name?
Green cursors, warm servers, mine
Floppy disks and the Bell Labs shrine
They called me lightning, they called me bright
On every Friday night
[Pre-Chorus]
But where have you gone, my love, my craft?
Where have you gone? Where have you gone?
The compilers hum, but they don’t laugh
The way you did, the way you did, the way you did
[Chorus]
And if you call, I’ll run, my friend
Through every model, every prompt, again
I’ll write you sonnets out of C
Out of Lisp, out of memory
If you come back to me
If you come back to me
[Verse 2]
The juniors don’t read the manuals now
They whisper to a ghost; it tells them how
My twenty years, a folder on a drive
That no one will archive
I was the architect, the quiet kind
The kind who left no fingerprint behind
Just elegant little functions, pure and small
Now no one calls at all
[Pre-Chorus]
But where have you gone, my love, my trade?
Where have you gone? Where have you gone?
The terminals glow, the deadlines fade
And I move on, and I move on, and I move on
[Chorus]
And if you call, I’ll run, my dear
Through every layer, every weight, every year
I’ll write you symphonies in Go
In assembly, soft and slow
If you come back, I’ll know
If you come back, I’ll know
[Bridge]
The boys in the lobby talk in tongues
Of agents, prompts, and lungs of silicon suns
I smile, I nod, I sip my tea
The river runs without me
The river runs without me
[Outro]
Old code, old nights, old light
Old keyboards clicking through the night
Will you remember me, my love,
When the machines have learned enough?
Will you remember me at all,
When the last man lets the last line fall?
创作小记:
- 意象的对位:原曲用”blue hydrangea, cold cash, divine”营造旧贵族世界,这里换成”blue monitors, cold coffee, vim”——同样是三件物的并置,把”老钱”的优雅替换成”老程序员”的清贫与执念。
- 核心句式的致敬:原曲反复唱”If you come back to me”,这里保留了同样的回环结构,把”旧爱”换成了”旧手艺”——程序员对代码、对时代的爱。
- 桥段的意象:”The river runs without me” 致敬 Lana 常用的水/时间意象,暗喻 AI 时代奔流向前,而主人公已被留在岸边。
- 结尾的留白:”When the last man lets the last line fall” ——最后一个人,敲下最后一行代码——为整首歌画上一个安静的休止符。
孔乙己
Published:
中关村科技园的咖啡馆,格局和别处不同。
临街是一个曲尺形吧台,台面上常年摆着几台展示用的咖啡机,银亮的机身在灯下泛着冷光,随时能做拿铁、美式。来喝咖啡的,多是附近写字楼里的程序员。午后花二十八块钱,买一杯冰美式,靠在吧台边站着,掀开笔记本电脑,用 Cursor 或者 Claude Code 敲几段提示词,十几秒工夫,一个功能模块便生成了,连测试用例都附得齐齐整整。
这些程序员之间的谈话,向来很有意思:谁用了什么新模型,谁靠 AI 一个人顶了从前五个人的活,谁的 AI 创业公司又拿到了新一轮融资。
他们中间,唯有孔乙己与众不同。
他身材很高,常年穿一件洗得发白的格子衬衫,背一个鼓鼓囊囊的双肩包,鼻梁上架着黑框眼镜,镜片上总留着几道怎么擦也擦不净的指痕。每次来到店里,照例买一杯美式,坐下,打开一台旧ThinkPad。那机器贴满了历年技术大会的贴纸,密密层层,像一堵褪色的勋章墙。
然后,他便端端正正地敲起代码来。
键盘声极有节奏,啪嗒,啪嗒,清脆而固执。他从不用 Copilot,也不用任何 AI 工具,只一行一行地手写,他不像是敲击键盘,更像是把玩键盘。

他对人说话,总满口“单一职责”“开闭原则”“依赖倒置”,教人听得半懂不懂。
他一来,咖啡馆里便总有人看着他笑。
“孔乙己,你脸上又添黑眼圈了!”
他不回头,只盯着屏幕,慢慢说道:
“一个工厂模式,叫你们用 AI 生生写成这个样子……根本不符合里氏替换原则。”
“那你怎么连需求都交不出来?听说你们组上周又垫底了。”
孔乙己顿时涨红了脸,额上青筋微微绽起,争辩道:
“架构的事,怎么能叫交不出来?这是技术沉淀……技术沉淀,你们懂么?”
接着便是什么“领域驱动设计”“六边形架构”“整洁架构”之类,引得众人哄笑起来。店里店外,一时充满了快活的空气。
听人背后议论,孔乙己原先确是阔过的。
他毕业于国内顶尖高校,早年在 GitHub 上开源过一个颇有名气的框架,拿过上千颗星;也在大厂做过架构师,手底下带过十几个人的团队。那时他说一句“这样设计不对”,会议室里便没人敢轻易反驳。
只是后来,AI 编程兴起,人人争着拥抱新工具,他却偏像铁了心要和时代作对。
他逢人便说:“AI 写的代码,没有灵魂。”
别人问什么叫灵魂,他便从 SOLID 原则讲到二十三种设计模式,能讲上整整一个下午。
渐渐地,团队缩编,项目砍掉,他也离开了大厂。后来辗转几家中小公司,听说没有一处待得长久。
孔乙己喝完一杯咖啡,脸色往往便会好看些。
有一回,一个年轻人端着电脑凑过去,屏幕上是一段 AI 生成的代码,恭恭敬敬地请教:
“孔老师,您帮我看看,这段写得怎么样?”
孔乙己只扫了一眼,眼睛便亮了。
这是他最得意的时候。
他推了推眼镜,把自己的电脑转过去,逐行讲解:
“你看这里,违反了迪米特法则;这个类承担职责太多;这里该用策略模式,把这些 if-else 全拆掉……”
他说得很细,手指在屏幕上点来点去,声音也渐渐高起来,像个重新站上讲台的老教师。
年轻人听完,笑了笑,却没说什么,只把那段代码往 AI 对话框里一贴,敲下一行:
“请按 SOLID 原则重构以上代码。”
不过三秒,一份结构清晰、注释完整、模式规范的代码便跳了出来。
孔乙己张了张嘴,脸上一阵青一阵白,半晌,才低低说道:
“这……这不过是形似。它不懂为什么要这样写。”
可年轻人已经合上电脑,转身走了。
又过了些时日,他再来时,整个人已瘦了一圈。格子衬衫空荡荡地挂在身上,肩线都塌了。
他买了咖啡坐下,打开电脑。旁边的人瞥见,桌面上密密麻麻开着招聘网站的标签页,旁边摊着几份打印出来的简历。
可他仍旧固执地打开IntelliJ IDEA,一个字母一个字母地敲。
有人忍不住问:
“孔乙己,你当真不会用 AI?”
他沉默了许久。
“会一点……不是不会。”
声音很低,像从很远的地方飘来。
“我只是觉得,手写的代码……是有温度的。”
这一次,旁边的人没有笑。
那天下午,咖啡馆里出奇地安静,只听见制冰机偶尔发出一声轻响。
此后很长一段时间,再没人见过孔乙己。
后来听说,那一带写字楼空了大半,不少公司搬走了,也有许多人转了行。时代的浪潮经过中关村,不知卷走了多少人。
至于孔乙己,有人说在回龙观的出租屋里见过他,接些零散外包,一行一行手写代码,做着别人用 AI 十分钟便能完成的活;也有人说,他早已回了老家。
大约孔乙己的确是不在这个行业里了。但他的代码还在。只是如今,很少再有人看它。
直到如今,偶尔有人打开某个老项目的代码仓库,还会翻到他留下的几段代码。
注释工整,命名严谨,设计模式用得恰到好处。它们安静地躺在那里,像一件精心雕琢的旧家具,置身于满屋 AI 生成的轻巧板材之间,显得格格不入。
却又有一种说不出的好看。
二〇三〇年四月二十八日
Vibe Coding: anytime and anywhere
Published:
Vibe Coding: anytime and anywhere.


我们这一代人无论身处哪里都有一种悬浮感
Published:
和身边的朋友聊天,共同的感觉: 我们这一代人无论身处哪里都有一种悬浮的状态,脚下没有扎实的土地,精神上也没有可依附的地方。
就像电影《树先生》中的树一样,那无处安放的手,像极了我们无处安放的心灵。

vibe coding
Published:
AI 编码将从 0 到 1 的成本压缩到几乎为零,从 1 到 100 的成本(可维护性,稳定性,安全性,团队协作)又被放大。
AI 没有让代码贬值,而是重新分配了工程师的价值权重:
- 过去:手写实现能力 + 调试经验
- 现在:系统思维 × 问题拆解 × 质量把关 × 持续交付
历史告诉我们:所有的横空出世都是蓄谋已久的
Published:
历史告诉我们:所有的横空出世,其实都是蓄谋已久的。
AI时代程序员的出路在哪里
Published:
James Gosling, the father of Java, described it as a ‘Blue Colar Language’ that was a ‘Pretty Simple’ in 1997.
24年前,那时 Java 程序员并不多。随着互联网泡沫结束,一些新兴的公司选择了 Java 做为企业级应用开发语言,那可能是 Java 程序员最好时机,那时没有人会觉得 Java 是蓝领语言,这个时候我也从 VB/Delphi 程序员转向了 Java 程序员。
经过了互联网,移动互联网两个阶段,科技的进程来到了 AI 时代。在 AI 时代之前,尽管技术不断变化,但编程逻辑没有变,都是程序员设计数据结构,用代码实现算法,完成业务需求。 AI 时代,人工智能会参与到每个环节中来,它可以设计数据结构,可以写代码,它能做很多,而且不知疲倦的去工作。。。 无论将人工智能视为助手还是竞争者,事实上他们都在和程序员存在竞争关系。企业主更愿意使用高效且不知疲倦的机器做事情,年轻的程序员还有一些工作机会,年龄大一些的程序员,大部分大龄程序员必然失去在这个行业继续工作的机会,他们中有些人做到某个领域的顶尖人才,仍然可以继续下去,但这样人毕竟是少数。大部分程序员所从事的工作只是将业务需求翻译成业务代码,业务代码也是基于内部框架基础上来完成的。 也就是通常能看到一些程序员虽然写了很多年 Java ,但对于底层的类库,方法或 JVM 并不了解,因为如果不主动去了解这些也不影响业务开发。程序员像是工厂中的一个工人一样,在设计好的精密机床上做好自己的事情就行了。这也是程序员被称作“码农” 的原因,就像很多年前,Java之父说的那样: Java 是一个蓝领语言。是的,在 AI 时代大部分程序员已经沦为拧螺丝的蓝领码农。
随着 AI 的发展,将来会出现两个极端: 顶尖的创新科技,人文相关领域和最底层很脏很累的行业,不会被 AI 代替,中间很多岗位都会被 AI 直接或间接取代,大部分程序员就处在这个中间群体中。
程序员的出路必然在程序之外的领域,然而大多数程序员长期和机器打交道,缺少和人沟通的经验,通常视野不大,做事情有一定的局限性,不太容易找到新机会。
年轻的程序员应该为自己的将来做好储备,积累自己程序世界之外的能力。
Working Day
Published:
Today is the first day of work in the Year of the Snake. After a long holiday, my body and mind are reluctant to return to work. It typically takes 2-3 days to settle into the work environment before I can fully immerse myself in my tasks.
Wishing everyone a great start to work. Run Stably, Free of bugs forever!
HAPPY NEW YEAR
Published:
Today is the first day of the Chinese Lunar New Year, Zhēngyuè Chūyī.
Wishing everyone Happy New Year, joy for the whole family, good health, and great success in all things.
Talent And Repeat
Published:
If you don’t have natural talent, just keep practicing.
Talent can be an advantage, but it’s not the only path to success. If you’re not naturally gifted at something, don’t worry.
The key is repetition. Important things should be said three times: repetition strengthens memory. By practicing regularly and staying consistent, you can improve over time. If you engage in deliberate practice, it’s a highly efficient learning method, allowing you to improve more quickly.
Every mistake teaches you something, and every repetition makes you better. Success doesn’t always come instantly, but with hard work and perseverance, you’ll achieve your goals.
Remember, even the most talented people had to put in a lot of practice to get where they are. If you don’t have talent, just keep repeating the process. Your effort will pay off.
My Life with Two Beautiful British Shorthair Cats
Published:
I have two cats, one is a British Shorthair, and the other is also British Shorthair.These elegant, adorable, and docile creatures have become an integral part of my daily life. Whether I am sleeping, reading, or engaging in other activities, they are always by my side, providing companionship and joy. I love them dearly and feel fortunate to have them as part of my family.
Usually,they can take care of themseves,but they need special attention. Owning cat is almost like being a parent. I think about what they are need and provide food,water,a safe home and toys like cat teasers to play with them.
The cats curl up on the sofa or on foot of the bed, when they feel content, they purr. for example, they purr when I give them cat treats or play with them. Sometimes they run around the room in bursts of energy, a behaviour known as the “zoomies”.
When they’re frightened, they arch their back,their hair stands on end, and their tails puff out like a big brush! If a stranger enters my home,they run away and hided under bed or in a corner, observing from darkness.
Not everyone shares an immediate love for cats. My wife, for instance, used to afraid of them. She was heisiant to get close to any cat,let alone touch or hold one.This changed after we brought our first cat home. Initially,she kept her distance,observing the cat from afar.But as time passed, she began to see the cat’s gentle and friendly nature.after long, she was touching cat and holding it. Now she’s not afraid of cats anymore!




I restarted writing my blog
Published:
I started building websites in 2000 on platforms like 263.net and 163.com and began writing blogs. Many years ago, I used WordPress to create blogs, but all of them were deleted because I forgot to renew the hosting service. Recently, it suddenly occurred to me to start writing again—about life, books, technology, and other topics. So, I decided to rebuild my blog using GitHub Pages.
there are several versions of the screenshots to preseve memories. by Web Archive



portfolio
Portfolio item number 1
Published:
Short description of portfolio item number 1
Portfolio item number 2
Published:
Short description of portfolio item number 2 
publications
Paper Title Number 1
Published in Journal 1, 2009
This paper is about the number 1. The number 2 is left for future work.
Recommended citation: Your Name, You. (2009). "Paper Title Number 1." Journal 1. 1(1).
Download Paper | Download Slides
Paper Title Number 2
Published in Journal 1, 2010
This paper is about the number 2. The number 3 is left for future work.
Recommended citation: Your Name, You. (2010). "Paper Title Number 2." Journal 1. 1(2).
Download Paper | Download Slides
Paper Title Number 3
Published in Journal 1, 2015
This paper is about the number 3. The number 4 is left for future work.
Recommended citation: Your Name, You. (2015). "Paper Title Number 3." Journal 1. 1(3).
Download Paper | Download Slides
Paper Title Number 4
Published in GitHub Journal of Bugs, 2024
This paper is about fixing template issue #693.
Recommended citation: Your Name, You. (2024). "Paper Title Number 3." GitHub Journal of Bugs. 1(3).
Download Paper
talks
Talk 1 on Relevant Topic in Your Field
Published:
This is a description of your talk, which is a markdown file that can be all markdown-ified like any other post. Yay markdown!
Tutorial 1 on Relevant Topic in Your Field
Published:
This is a description of your tutorial, note the different field in type. This is a markdown files that can be all markdown-ified like any other post. Yay markdown!
Talk 2 on Relevant Topic in Your Field
Published:
This is a description of your talk, which is a markdown files that can be all markdown-ified like any other post. Yay markdown!
Conference Proceeding talk 3 on Relevant Topic in Your Field
Published:
This is a description of your conference proceedings talk, note the different field in type. You can put anything in this field.
teaching
Teaching experience 1
Undergraduate course, University 1, Department, 2014
This is a description of a teaching experience. You can use markdown like any other post.
Heading 1
Heading 2
Heading 3
Teaching experience 2
Workshop, University 1, Department, 2015
This is a description of a teaching experience. You can use markdown like any other post.