硕大的汤姆

硕大的汤姆

The official website of Minhua Chen

12 Oct 2020

geohash

64 words, ~0 min read

今天你想吃火锅,于是你问 siri,"离我最近的火锅店有哪些?"。 怎么实现这个功能呢?首先你应该抽象地想想,这是一个什么问题? 这是一个「二维空间查找最近邻」问题,而「最近邻」又比较容易让人想到”KNN“。(KNN 是说每个新样本的...
23 May 2020

不要在错误的位置和错误的人发生错误的竞争

14 words, ~0 min read

程序员行业是一个准入门槛极低但竞争非常激烈的行业,但高级程序员是一个准入门槛不高但竞争非常不充分的行业。尽管我还没有达到高级程序员的水准,但据我的观察,我觉得从初级程序员到高级程序员的路,并不坎坷,只是很多人都走歪了。 记得《Becom...
07 Feb 2020

隔离 -- 我们都是这疯狂世界的受害者

107 words, ~0 min read

John Lennon《Isolation》的最后写到「你不必受到责怪,你也不过是一个普通人类,一个疯狂世界的受害者。我们害怕每一个人,害怕阳光。太阳永远不会消失,可留给这个世界的时间已经不多了。」 > People say we go...
16 Jan 2020

事务

356 words, ~1 min read

尽管大多数程序员都认为事务是如此简单和自然,但事实上事务不是一个天然的东西,而是人为创造出来的,目的是为了简化应用层编程。 对应用层来说,底层可能出现的错误实在太多了。网络可能中断,数据库软件可能崩溃,应用程序自身可能突然崩溃,机房可能...
11 Jan 2020

软件随想录(by Joel Spolsky)

143 words, ~0 min read

这周在地铁上读完了 Joel Spolsky 的《软件随想录》,译者是阮一峰。摘录或提炼一部分有趣的东西于此。 - 1991 年,Joel Spolsky 加入微软 Excel 开发小组,担任 Program manager。他当时需要...
25 Dec 2019

Haystack(facebook是怎么存照片的)

40 words, ~0 min read

本文写于 21 世纪 10 年代最后一个圣诞节的晚上,内容为 facebook 的论文 《Finding a needle in Haystack: Facebook’s photo storage》的阅读笔记。该论文旨在解决社交网络中海...
24 Dec 2019

LSM Tree vs B-Tree

92 words, ~0 min read

本文为《数据密集型应用系统设计》第三章第一节的读后感 数据需要持久化,将内存中的状态落到磁盘上,就需要使用存储引擎。最简单的存储引擎就是一个数据文件呗,每次写入就写到文件上,而读操作就去数据文件上找数据。但是数据量大了,把所有文件找一遍...
21 Sep 2019

隐马尔科夫链与维特比算法

189 words, ~0 min read

## 马尔科夫链 明天的天气怎么样?明天的股市怎么样?用户下一个输入的单词会是什么?这些问题都是一个随机过程的问题(就是「随机过程随机过」的那个随机过程)。 对随机过程的研究要比随机变量复杂得多,在任何一个时刻 t,对应的状态 st ...
04 Sep 2019

P99与蓄水池算法(reservoir sampling)

407 words, ~1 min read

## 一个监控问题 假设你是一个运维工作人员,维护着一个访问量巨大的服务,然后有一天,老板跑来问你这个服务的 p99 响应时间是多少?(p99 响应时间:系统 99%的请求都快于这个时间,而 1%的请求则慢于这个时间。即响应时间的 99...
24 Aug 2019

Cuda实战入门2: 将矩阵乘法速度提升 5000 倍

589 words, ~2 min read

本实验采用不同的方法来计算 8192 \* 8192 的整型矩阵乘法运算。 ## C 语言版 C 语言是大家公认的高性能语言,那我们就从 C 语言开始吧。 ```c // 用一位数组表示二维矩阵 mat1 = (in...