有了 AI 就不用学计算机了?

09/05/2026

AI 不是在替代你的能力,而是在放大你的能力。
Read more

100%纯手工编码

30/03/2026

我在想若干年后, 人们在购买软件的时候会优先挑选那些"纯手工编程,100%无AI编码"的产品.
就像现在我给我的孩子们挑选零食一样.

A simple Typecho API plugin

11/03/2026

TypechoApi — REST API Documentation
Read more

有人用 LLM 用 ...

07/03/2026

有人用 LLM 用 Rust 重写了 SQLite。576,000 行代码,能编译,能通过测试,README 写得漂漂亮亮。但做一个最基础的主键查询——比 SQLite 慢 20,171 倍。

为什么?不是语法错误。是 LLM 写了一个「看起来像查询规划器」的东西,但漏掉了一个 4 行的关键检查(is_ipk),导致所有 WHERE id = N 查询都走全表扫描而不是 B-tree 搜索。这个检查之所以存在于 SQLite 里,是因为 Richard Hipp 20 年前 profiling 真实负载时发现了这个瓶颈。

作者把这叫做 LLM 的根本失败模式:不是写错代码,而是写出「看起来正确」的代码。

代码面前人人平等,编...

29/11/2025

代码面前人人平等,编译器不认你的后台和人情。服务器宕机时,CEO的裙带关系不如一行修复命令。
你的靠山硬不过服务器报错日志,人脉广不过分布式系统的节点追踪。
在这里,真正的通行证是git提交记录里的实力印记。

Talk is cheap, show me the code.

曾经有一个故事,最开...

18/11/2025

曾经有一个故事,最开始的时候,铁路是靠马拉的,所以铁轨的宽度是按照两个并排的马屁股的宽度来定的,后来火车出现了,但是为了兼容以前的铁轨,所以火车的宽度也是按照两…
Read more

Memo #288

14/08/2024

老当益壮,今天给自己开一个新坑。

func main() {
  router := gin.Default()
  router.GET("/", func(c *gin.Context) {
    c.JSON(200, gin.H{"message": "Hello World"})
  })
  router.Run(":8080")
}

A $50000 mistake

03/02/2021

About two months ago, I made a mistake while programming invoicing system that w…
Read more

叶落的声音很安静

09/05/2013

一个朋友最近劝我回国跟他一起创业。除了coding,我几乎啥都干不了。既然回去还是继续陪着电脑玩,还不如继续呆在墙外好了。趁着自己还喜欢这里,就哪儿都不要去。
Read more

程序人生

09/03/2013

老板,那个该死的bug终于被我修复了...
Read more
About me

I live in Tasmania, an island a little far from the rest of the world and very close to the sea.
Father of two little girls, have two puppies.

Work

Work in IT industry, AI is my working partner.