硕大的汤姆
The official website of Minhua Chen
Home
All posts
About
Algo
原则
Tags
Posts
10
Jan 2026
鱼不存在
最近读了Lulu Miller 的《鱼不存在》(Why Fish Don't Exist)。非常喜欢。这本书讲了斯坦福首任校长,大卫·斯塔尔·乔丹的故事。 大卫是一个鱼类分类学家,他的毕生都在致力于给自然界分类,试图在混沌中建立秩序。大...
09
Jan 2026
超越百岁
最近读了 Peter Attia 的书 "Outlive -- The Science & Art of Longevity",中文名为”超越百岁“。本文为一些摘录与读书笔记。 > 解决这个问题的唯一方法不是去更好地接住鸡蛋,而是去阻止...
01
Jul 2025
两种能力
要想在篮球场上抢到更多的篮板,有两个天赋很重要,一个是身高(或者垂直摸高),一个是弹跳。 篮球届有一个名言:You can’t teach height,身高这玩意儿纯看天赋,后天努力对结果的影响很小。而弹跳相对而言则是可以被训练的,你...
30
Jun 2025
风险
最近有个朋友推荐了个股票给我,“数据很好,能涨三倍”。 我将信将疑地打开了软件,公司还在亏损,市值不高,最近涨了两倍多(情绪很高)。很像是那种炒作割韭菜的股票。当然,还有一种可能,公司在未来一段时间可能有好消息要出来,当然市场还没有完全...
13
Feb 2023
先有鸡还是先有蛋
### 1. 先有某个语言的编译器还是先有编程语言? 在编译器领域有个概念叫自举(bootstrapping),也就是用一门语言实现该语言的编译器/解释器,然后用自己的编译器编译出自己的新编译器/解释器。 这是一个经典的鸡与蛋的问题,...
18
Nov 2022
葬礼随笔
2022年,我失去了三个亲人,人生第一次如此近距离地感受到了死亡。 今年4月份,外公去世了。我被封在上海家里,没能送他最后一程。前几天,爷爷奶奶也因为意外离世,我第一时间赶了回去送他们,这也是我人生中参加的第一次葬礼。一直保持稳定平静的...
24
Jul 2022
A little copying is better than a little dependency
quote from https://go.dev/blog/supply-chain: > The final and maybe most important software supply chain risk mitigatio...
24
Jul 2022
Make the choice right
最近看到一个新闻,东南大学建筑学院招不满人,建筑学院录取线接近东大录取线。 东南大学是我的母校,而建筑学院一直都是东大最好的专业,在我上大学的时候,建筑系在江苏的分数线一般都已经接近交大复旦的录取线了。很难想象建筑系分数线会降低这么多。...
20
Jul 2022
How to be successful
再读 https://blog.samaltman.com/how-to-be-successful - 追求复利,你的单位产出应该越来越高。 - 蜜汁自信。 - 独立思考,并找到能分享观点的人。 - 善于销售你的观点,尤其是书面沟通能...
16
Jul 2022
一些职业思考
昨天和最近带的一个同学 1 on 1(下面简称A),A问我有没有什么建议可以给到他。我想了一会儿,和他说了几点,不一定对,但是希望能帮到他。 ### ROI 与 push back 刚入职场的工程师往往有个特点,产品提什么需求都愿意接...
12
Jul 2022
面试反问问点啥
### 如果我加入了,你们会怎么帮助我 ramp up 看看这个团队是不是有明确的 onboarding 机制。如果答得乱七八糟,或者每个面试官说的都不一样的话,小心了,没准你进去第二天就要开始修bug了。 ### 团队的业务是什么,...
20
May 2022
关于保险
> 买保险不是为了理财,是为了应对小概率发生的风险 - 拒绝理财性质的保险 - 看清楚免责条款 ## 推荐险种 - 百万医疗。医疗险是用多少报多少,随报随销,有上限。 - 便宜,60周岁以前都能买,可以续保到80周岁。 ...
21
Mar 2022
2022年3月中概暴跌
**本文不构成任何投资建议** ## 暴跌原因 导火索:PCAOB(public company accounting oversight board) 把五家中概股公司放入外国公司问责法识别清单,将中美监管摩擦再次推到前台。进而引发...
21
Mar 2022
一生的旅程 -- Iger自传
Iger 是迪士尼现任 ceo,曾任 abc ceo,后在迪士尼收购 abc 的过程中加入迪士尼,后主导了如收购皮克斯,收购漫威等关键性项目,帮助迪士尼起死回生。Iger 于 2020 年卸任迪士尼 ceo 一职。本文是我今天读完 Ige...
20
Feb 2022
不拘一格(网飞的企业文化)
> “人才重于流程,创新高于效率,自由多于管控” > > “对于我们的员工来说,透明度代表我们相信员工能够认真负责地对待工作。我们对他们的信任又会增强他们的归属感、使命感和责任感。” > > “自由与责任的关系并不是像我先前所想的那样背道...
03
Mar 2021
服务稳定性建设
## 第一步:梳理现状 - 服务的功能有哪些,对线上业务的影响如何。 - 对服务进行定级,确定是否为重保服务。 - 确定服务请求量级(峰谷特征),是否受节日影响,是否受其他接口波动影响。 - 确定服务部署现状,如是否多机房,是否多集群,...
03
Jan 2021
切尔诺贝利(一键容灾预案引发的事故)
看完了 HBO 的《切尔诺贝利》,真相在最后一集揭晓。 - 故事中的切尔诺贝利 4 号反应堆,原本应该在建成时就完成的安全测试,在投产后三年都没有完成,并且在事故前已经失败了三次。(**容灾演练连续失败三次**) - 原本应该在白天进行...
18
Dec 2020
风险与收益
> “高风险带来高收益。” 这句话乍一看,确实是这么回事,比如你今年买了特斯来的股票,起起伏伏间,一年翻了 10 倍,高风险高收益吧;而如果你买了银行定期,自然没什么亏本的风险,但是年化还不到 4%,收益和特斯拉股票一比,差了几百倍,低...
10
Nov 2020
RocksDB
## 认识 RocksDB ### RocksDB 是什么? - 一个嵌入式的 lsm style 的 kv 存储引擎,一个 c++的库。 - key 和 value 都是 byte streams,key 按序存储。 - 高度可定制...
22
Oct 2020
限流与过载保护
## 过载保护 [微信的这篇论文](https://arxiv.org/pdf/1806.04075.pdf)有个很好的介绍 过载控制往往需要对不同的服务进行专门设计,但是这种过于细致的过载控制对于整个系统来说是不利的,开发者很难估计...
12
Oct 2020
geohash
今天你想吃火锅,于是你问 siri,"离我最近的火锅店有哪些?"。 怎么实现这个功能呢?首先你应该抽象地想想,这是一个什么问题? 这是一个「二维空间查找最近邻」问题,而「最近邻」又比较容易让人想到”KNN“。(KNN 是说每个新样本的...
23
May 2020
不要在错误的位置和错误的人发生错误的竞争
程序员行业是一个准入门槛极低但竞争非常激烈的行业,但高级程序员是一个准入门槛不高但竞争非常不充分的行业。尽管我还没有达到高级程序员的水准,但据我的观察,我觉得从初级程序员到高级程序员的路,并不坎坷,只是很多人都走歪了。 记得《Becom...
07
Feb 2020
隔离 -- 我们都是这疯狂世界的受害者
John Lennon《Isolation》的最后写到「你不必受到责怪,你也不过是一个普通人类,一个疯狂世界的受害者。我们害怕每一个人,害怕阳光。太阳永远不会消失,可留给这个世界的时间已经不多了。」 > People say we go...
16
Jan 2020
事务
尽管大多数程序员都认为事务是如此简单和自然,但事实上事务不是一个天然的东西,而是人为创造出来的,目的是为了简化应用层编程。 对应用层来说,底层可能出现的错误实在太多了。网络可能中断,数据库软件可能崩溃,应用程序自身可能突然崩溃,机房可能...
11
Jan 2020
软件随想录(by Joel Spolsky)
这周在地铁上读完了 Joel Spolsky 的《软件随想录》,译者是阮一峰。摘录或提炼一部分有趣的东西于此。 - 1991 年,Joel Spolsky 加入微软 Excel 开发小组,担任 Program manager。他当时需要...
25
Dec 2019
Haystack(facebook是怎么存照片的)
本文写于 21 世纪 10 年代最后一个圣诞节的晚上,内容为 facebook 的论文 《Finding a needle in Haystack: Facebook’s photo storage》的阅读笔记。该论文旨在解决社交网络中海...
24
Dec 2019
LSM Tree vs B-Tree
本文为《数据密集型应用系统设计》第三章第一节的读后感 数据需要持久化,将内存中的状态落到磁盘上,就需要使用存储引擎。最简单的存储引擎就是一个数据文件呗,每次写入就写到文件上,而读操作就去数据文件上找数据。但是数据量大了,把所有文件找一遍...
21
Sep 2019
隐马尔科夫链与维特比算法
## 马尔科夫链 明天的天气怎么样?明天的股市怎么样?用户下一个输入的单词会是什么?这些问题都是一个随机过程的问题(就是「随机过程随机过」的那个随机过程)。 对随机过程的研究要比随机变量复杂得多,在任何一个时刻 t,对应的状态 st ...
04
Sep 2019
P99与蓄水池算法(reservoir sampling)
## 一个监控问题 假设你是一个运维工作人员,维护着一个访问量巨大的服务,然后有一天,老板跑来问你这个服务的 p99 响应时间是多少?(p99 响应时间:系统 99%的请求都快于这个时间,而 1%的请求则慢于这个时间。即响应时间的 99...
24
Aug 2019
Cuda实战入门2: 将矩阵乘法速度提升 5000 倍
本实验采用不同的方法来计算 8192 \* 8192 的整型矩阵乘法运算。 ## C 语言版 C 语言是大家公认的高性能语言,那我们就从 C 语言开始吧。 ```c // 用一位数组表示二维矩阵 mat1 = (in...
23
Aug 2019
Cuda实战入门
CUDA (compute unified device architecture) 是 NVIDIA 所推出的一种并行计算平台和并行计算 api。 CUDA 在并行计算上可以大显神威,因此,我们先要找到一个可并行的问题。一个很简单的可...
14
Jul 2019
为什么拒绝掉前37%的追求者是错的
## Problem Formulation 假设你一辈子可以遇到 100 个潜在配偶,在遇到每一个潜在配偶的时候,你只能选择接受或者拒绝。如果你选择接受,则意味着你放弃了后面所有潜在的配偶;而如果你选择拒绝,则不能反悔,只能在后面的潜...
23
Jun 2019
机器学习视角下的软件工程过拟合问题
软件工程中充斥着过拟合,它不但刻画了我们在构建系统时常常掉入的思维陷阱,也刻画了我们日常生活中思考与行动的方方面面。 ## 什么是过拟合 在机器学习中,当训练集的数据量比较少,而模型又较为复杂的时候,模型可能会出现在训练集上 fit ...
23
Jun 2019
自我觉知的能力与做事的态度
最近对自己的行为模式进行了一些观察,发现自己很容易在遇到硬骨头的时候出现拖延症的现象。比如在进入某一主题的学习时,发现该主题内容非常丰富,且需要大量背景知识,于是当场演奏起了一段退堂鼓,或者浅尝辄止地看了些基本知识,成为一名“知道分子”。...
18
Jun 2019
Got a PC
从 15 年初购入人生第一台 mbp 之后,再也没有使用过 PC 了。最近趁着 618 组了一台电脑,平时的主力机器是 mbp,然后家里放了台 mac mini,但是最近为了在家里跑一些深度学习的模型,而 mac 的显卡实在是让人一言难尽...
13
Jun 2019
当我们谈论杜兰特,我们其实是在谈自己
**人们谈论问题容易陷入对意义的讨论,这种试图对本质的窥探虽然“有用”,却也十分危险**。 早上看到杜兰特跟腱受伤的新闻,各大媒体纷纷表示,杜兰特在总决赛第五场不应该复出,并指责勇士队在第五场让杜兰特上场的决定(从结果上看,这确实是一个...
04
Jun 2019
语言的雅俗
昨天看到 slack 里面有个网友说:”这是我下午看《洞察》的时候突然冒出来一个问题:钱有许多称呼,比如阿堵物、孔方兄等,可是既然它们指的都是相同的东西,为什么又有雅俗的分别?钱可能还好,现在应该没有太多人会觉得追求钱是羞耻的,更好的例子...
12
May 2019
什么是概率
假设我们现在要扔一枚硬币,我问你这枚硬币正面朝上的概率是多少?你一定知道是 0.5。但是让我们来仔细想想,概率为 0.5 到底意味着什么呢?一种常见的解释是,如果我们扔足够多次的硬币,会有大概一半的情况为硬币正面朝上。 可是,如果这是一...
11
May 2019
生活中的弹力系统设计
艺术来源于生活,系统架构也是如此。 基于微服务的分布式系统架构所面临的挑战非常巨大,充满了各种不确定性。为了能够提高 SLA,我们需要让系统能够更有弹性,在系统部分出现故障的情况下,尽可能地减少损失。常见的弹性系统设计模式有:降级,限流...
10
Mar 2019
信息化与自动化
这些年来,”工业 4.0”,”2025 计划”等新名词越来越多的出现在人们的视野,工业互联网概念得到了各国政府部门以及产业界的重点关注。尽管对于什么是”工业 4.0”依旧还没有一个固定的标准,但是在这条向未来探索的路上,人们渐渐摸出了一些...
10
Mar 2019
关于麻将能不能进入奥运会的讨论
这篇文章来源于一群软件工程师在晚餐时的讨论,论题是中国麻将能不能进入奥运会。这类问题在不同的群体间相信已经发生过无数次,这次当然也毫无例外的并没有得出任何有价值的结论。但这并不妨碍这是一个有意思的问题,并值得花一些时间思考。 先说说我的...
09
Mar 2019
模型设计的两大准则:NFL与奥卡姆剃刀
## NFL(无免费午餐)定理 模型的合理性很大程度上取决于待解决问题本身的特征。 无免费午餐(No Free Lunch, NFL)定理证明了任何模型在所有问题上的性能都是相同的,其总误差和模型本身是没有关系的。可是既然大家谁都不比...
08
Mar 2019
身高背后的统计学
给同年龄的一百个小孩量身高,已经量了 99 个,请问最后一个小孩的身高有 99%的概率会小于多少。 我们只知道这些数据来自同一个总体(服从同一个分布),前 99 个小孩和最后一个是一视同仁的,也就是说,这一百个小孩每个都有 1%的可能是...
07
Mar 2019
一场赌局背后的统计学
A 和 B 两人进行一场赌局,方式是抛一枚特制的硬币。如果硬币正面朝上,则 A 得一分,反之 B 得一分,先得六分的获胜。假设现在 A 以 5:3 领先,请问最终 B 获胜的概率要多高。 ## 概率学派 频率学派认定待估计的参数是固定...
20
Dec 2018
市场营销方法论
最近在看美剧《广告狂人》,于是对广告业产生了一些兴趣,进而去了解了一下市场营销的方法论。Marketing 集成了商业的全部功能,并通过广告,销售以及其他市场活动直接和客户打交道。Marketing 是艺术与科学的混合,其中的知识非常广博...
28
Oct 2018
聊聊微信读书
这两天下了几个读书应用,发现市面上类似产品还真不少,比如微信读书,京东阅读,豆瓣阅读等等。我也深度体验了一下微信读书,这里谈谈个人的感受吧。 ## 社交与用户 很多人都说微信读书试图用社交来撬动阅读,目前看来在这一点上,微信还是非常非...
12
Sep 2018
敏捷开发
在 2001 年,十七名软件开发人员在犹他州的雪鸟度假村会面,讨论这些轻量级的开发方法,并由 Jeff Sutherland,Ken Schwaber 和 Alistair Cockburn 发起,一同发布了[敏捷软件开发宣言](http...
02
Aug 2018
需求变更的一致性
最近在工作中遇到一次重大需求变更,对业务模型的设计也产生了非常大的影响。基本上就是在地基上挖个洞的那种变更。目前迭代还在进行中,但是我觉得是时候进行一些回顾,来思考这次大型迭代中我们做对和做错了哪些事情了。 ## 产品一致性的重要性 ...
23
Jul 2018
三门问题
## 背景 这是一个非常有名的问题,[wiki](https://en.wikipedia.org/wiki/Monty_Hall_problem)。 简单说就是,有三扇门,一扇后面有奖,两扇后面有山羊。如果选手猜中有奖的门,就可以拿...
15
Jul 2018
聊聊面向对象
看到这个标题,可能很多朋友都会呵呵一笑。面向对象谁不知道?可是事实上,能正确理解和使用面向对象编程范式的人并不多,在不同语言背景下的程序员也往往对面向对象有不同的理解。我看过很多有一定经验的程序员写的代码,用着所谓面向对象的编程语言,写出...
10
May 2018
feature vs function
最近看到一段关于微服务的视频:[拆分单体应用](https://www.youtube.com/watch?v=k9QZ4oIOHnk&list=WL&index=3),其中有一段话引起了我的注意:**split code by feat...
05
May 2018
spring aop中遇到的一个小问题
最近做的一个项目使用了 spring+mybatis 的技术栈。实现很简单,在数据访问层写一系列 mapper 接口,定义一系列数据查询的方法。在服务启动时,让 spring 去扫这些接口,并为这些接口生成代理对象,也就是 DAO,这些 ...
02
May 2018
相关与因果
人类天生善于从噪声中寻找模式,这是一种与生俱来的能力。比如发现直角边的平方和等于斜边的平方,比如发现十二平均律以及五度音,比如发现一年有三百六十五天(公转周期)… 很多时候,人们会发现两件事往往同时出现,或者当一件事情发生时另一件往往不...
18
Apr 2018
一件让我愤怒的事
最近在工作中遇到一些事情,让我有点不爽,或者说是愤怒。我觉得很多程序员根本称不上是 engineer,只能勉强算是个”terrible programmer”。 有些程序员不关心自己的代码,能不能被其他人看懂,会不会被别人错误地理解和使...
11
Apr 2018
十年
github 十年了,这个被戏称为同性交友网站的章鱼猫,度过了十周岁生日。 十年前,我还在读高一,凯尔特人三巨头即将捧起奥布莱恩杯,利物浦在欧冠半决赛输给了切尔西,那时候我还不知道啥是程序员(那时的梦想是当一个 DJ)。当然,那时候也没...
08
Apr 2018
聊聊抽象
> 不要抽象。 上面这句是和一个架构师聊天时他说了二十遍的话。这句话对大多数程序员来说,都是非常反直觉的。可以说抽象是计算机软件设计中极为重要的一环,是每个程序员每天都要做的事情。当你在设计一个类来表达一组数据的时候,你正在完成一次抽象...
07
Apr 2018
如何告诉一个外星人什么是树
在《认知开发潜能》一书中,我曾读到这样一段关于树的话,大意是:你可以把一棵树看作一个单独的,离散的对象。但事实上,一棵树至少由两个主要系统连接:树叶和空气的处理循环与根和泥土的处理循环。这段话让我开始思考一个问题,**我们应该如何告诉一个...
06
Apr 2018
move slow and mend things
“move fast and break things” 这是 fackbook 著名的 motto,意思是说,在使用新技术和新工具的时候,尽管其可能会有不稳定的地方,但是为了追求开发速度,应当果断使用那些能够提升开发效率的新技术。由于有...
06
Apr 2018
数学与经济
数学的优势在于,它需要精确定义,而且为多样化的领域提供了共同语言,但是它也有局限性。公式与其基本假设,往往夸大了可以从经济理论预测出来的精密度。比起任何实际的经济而言,许多经济理论,更多关乎一个完全虚构的世界。经济模型可能成为空中楼阁,结...
02
Apr 2018
质数
突然想知道第 n 个质数是多少,比如说我的生日是 11 月 24 日,那么属于我的那个质数是多少呢? 先写个判断一个数是不是质数的函数 ```c bool isPrime(int n){ if (n == 1){ retu...
01
Apr 2018
akka
akka 不是一个 framework,而是一个 toolkit 或者说运行时,用于在 jvm 上构建高并发、分布式、弹性、消息驱动的应用。Actor 执行操作来响应消息。这些操作包括更改 actor 自己的内部状态,以及发出其他消息和创...
29
Mar 2018
并发与并行
很多初级程序员都会把并发和并行搞混在一起,或者认为并发和并行根本就是一回事。而其实并发和并行压根就不是在讨论一个问题。本文我们就一起来看看究竟什么是并发和并行,以及如何实现并发和并行。 ## 并发与并行 并发(concurrency)...
27
Mar 2018
The rule of hole
> The rule of hole: > If you fall into a hole, don't dig. 对很多人来说,承认自己错了并不是一件容易办到的事情,即使他们看上去并不是一个固执的人。有时候是因为害羞,有时候是为了面子...
24
Mar 2018
copy on write
## swift 中的 cow swift 中有 struct 和 class 这两种数据结构,很多入门教程都会介绍说,struct 和 class 最大的区别是,struct 是值类型,而 class 是引用类型。换句话说,struc...
23
Mar 2018
我只是想要一个函数啊
## kotlin 中的可空类型 最近在公司使用 Kotlin 写后端服务(spring + mybatis),遇到 optional 的小问题,如下 ```kt fun getProject(projectCode: String)...
19
Mar 2018
我只是想要一个函数啊
## 从面向对象说起 显然,面向对象编程在很长一段时间内,都是最主流的一种编程范式。那到底什么是面向对象呢?为什么我们需要对象呢? 面向对象的最重要特性有三个:封装,继承,多态。 - 在我看来,多态无疑是这三者中最为重要的特性,它解...
01
Jan 0001
```sh mkdir $HOME/jenkins_home docker run -d -p 8080:8080 \ -v $HOME/jenkins_home:/var/jenkins_home \ --name jenkin...
01
Jan 0001
Writing is hard, even for authors who do it all the time. What should be easy and flowing looks tangled or feeble or ove...