0%

今年值得回忆的事情并不少:回国举办婚礼、解锁高空跳伞的成就、深度体验意大利的风土人情。不过,我打算跳过年终总结,聊一个更为重要的话题。

对我来说,今年是世界观和方法论走向成熟的一年。我逐渐感觉到,面对纷繁万千的事物,自己形成了特定的思维模式,并且在价值判断上持有越来越鲜明的立场。世界观、方法论和价值判断没有对错之分,但是有高下之别。有一些世界观更准确地描述了世界发展变化的规律。有一些方法论和价值判断让我们做出更好的人生选择。希望我的分析和解释能为你带来一点点启发。

Read more »

最小结婚成本

在中国大陆办理结婚登记,以前需要花 9 块钱人民币,现在是免费服务。在美国,结婚需要花多少钱呢?这要从美国的结婚流程说起。

Read more »

你的数学老师可能向你提及过『哥德巴赫猜想』。这个猜想认为,任何一个大于 2 的偶数,都可以表示成两个质数之和。这个猜想自 1742 年提出,尽管未能找到任何反例,但没有人能证明它。是否存在这样一种可能,即虽然哥德巴赫猜想是一个真命题,但是我们永远都无法证明它呢?哥德尔向世人展示,这种可能性是存在的。

哥德尔证明了,在一个定义了自然数(非负整数)、加法和乘法的数学体系中,假设这个体系没有矛盾,也就是不存在既真又假的数学命题,那么一定存在无法被证明的真命题。这一结论被称作『哥德尔不完备定理』。所谓的不完备,是指无法从几条有限的公理出发,推导出所有真命题。也就是说,我们可能无法从自然数公理出发,证明哥德巴赫猜想。哥德尔不完备定理的证明过程十分巧妙,本文将向读者展示,哥德尔是怎么做到的。

Read more »

买房战争

前年上日语课的时候,老师曾经问我,为什么中国人那么喜欢买房子。我说,按中国的传统,没有房子不能娶老婆。老师听罢,连连说道『大変ですね』(太难了)。结婚是许多人加入买房大军的一个原因,而且今年还有其他的利好消息,比如极低的利息,以及科技公司如火箭般蹿升的股票价格。这些因素叠加在一起,也让今年的抢房大战格外激烈。

Read more »

各种编程语言都支持对象(object)的构造、复制、读取、修改和销毁等操作。其中的复制(copy)操作,就是在计算机内存中的某个新地址,构造一个和原对象一模一样的新对象。

少数语言,例如 C++ 和 Rust,还支持一种叫『移动』(move)的操作。对象的移动,顾名思义,就是把原对象从计算机内存中的某个地址搬运至新的地址。听上去,移动操作做的事情似乎和复制差不多。那么为什么 C++ 和 Rust 要引入移动操作呢?为什么其他大多数语言都不支持移动操作呢?

Read more »

本博客网站由 nginx 驱动,服务器运行在 AWS 上。与其它有固定公网 IP 的服务器一样,我的服务器也时常受到外界的攻击。今天讲解一种常见的攻击方式:基于时间的 SQL 盲注(time-based blind SQL injection)。

Read more »

经历了炼狱一般的 2020 年,每个人都期待着 2021 年能少一些波涛汹涌,多一些风平浪静。尽管没有人知道病毒还会肆虐多久,但是至少,我们可以怀着积极的心态,构思新一年的蓝图。

Read more »

在美国,有一种叫 401k 的养老金计划。个人和雇主可以每年向 401k 养老金账户存入一定数量的钱,60 岁之后就可以取出来。在 2020 年,个人每年可以向 401k 账户中存入最多 $19500 而不用上税。这个数字给人的直观感受,应该可以用杯水车薪来形容。很难想象,经历 30 年的通货膨胀,每年能支出的养老金却只有两三万,会是一种怎样的生活水平。所以,401k 账户中的养老金,真的能撑到人死的那一天么?

答案有一些反直觉。需要担心的,不是人还没死,钱就花完了,而是人死了,钱还没花完。假设你所在的公司稍有一些良心,愿意按个人出资的 50% 向你的 401k 账户中存钱。也就是说,每年 401k 账户中新存入的资金有 $29250。如果资产的平均年投资回报率有 7%,如此坚持 30 年,账户的最终余额是 296 万!

为什么说这个答案反直觉呢?大脑的正常思维是,每年存入 $29250,需要大约 100 年的时间才能达到 296 万。但是实际上,这一过程只需要 30 年。这其中的奥秘,就是复利。在复利的帮助下,资产价值会随着时间流逝指数增长。

Read more »

今年的股市因为受到新型冠状病毒的影响,走出了不寻常的行情。虽然一只股票的短期走势受到外部因素的影响很大,但它的长期走势,主要是由公司的经营状况来决定的。要想了解一家上市公司的经营状况,最直观的方式是阅读公司的财报。

在美国上市的公司,有义务在每年和每个季度披露公司财报。年度财报和季度财报都可以在 SEC 网站上查询。考虑到大部分行业都具备一定的季节性,分析公司基本面一般会重点考察年度财报。

大多数公司的年度财报通常有 50 页以上,可见其中包含的内容极为丰富。作为投资者,我们最关心的有如下一些信息:

  1. 公司在过去的一年中,收入和支出分别是多少。这些信息可以从损益表(income statement)中获取。
  2. 公司当前的资产和负债分别有多少。这些信息记录在资产负债表(balance sheet)中。
  3. 过去一年中,公司账户上现金数额的变化及其原因。现金流量表(cash flow statement)里包含了这方面的信息。

下面以苹果公司 2019 年度的财报为例,提取上面三个维度的信息。注意,本文的分析结果仅供参考,并没有推荐购买相应的股票。


Read more »

I used to run a VM in my mac with VMware Fusion. As my mac is getting older, the VM is becoming slower and slower. One day I got an ESXi host which had sufficient resource to run that VM, but migration from VMware Fusion to ESXi was not a straight forward task. If you are facing similar problem with VMware Workstation or Fusion, the following steps will help you.

Read more »

创业路上

从 2017 年 2 月开始,我在 VMware 工作已经有近三年的时间了。前两年在平台组做了一系列项目,大部分和分布式系统治理有关。不能否认在那里学到了很多知识技能,但总有一天我会彻底厌倦看日志修 bug 的循环往复。2019 年 3 月,我换了一个组,投入到了新产品的开发工作中。

进组的时机正逢项目从第一行代码起步。全组像一家创业公司:我们有大致的目标和方向,但所有的宏观设计和微观实现都需要自己摸索。与许多其他创业公司一样,踩各类知名开源软件的坑是大家都会经历的事情。

我们的项目决定使用 druid 作为时间序列数据库。新数据通过 kafka 源源不断进来,经索引后存放在数据库中,这一过程称为数据摄取。官网上的文档和例子还算齐全,示例程序运行起来也一切正常,但换成我们自己的数据后就立刻出现各类错误,以至于不得不深挖源码一探究竟。这么一个看似照葫芦画瓢的任务,最后花费了我三天时间。

之后我们想比较两种不同的数据摄取方式,其中一种依赖于 twitter 某个 scala 开源库的两年前的代码。那些代码过于古老,存在一系列编译和运行的问题。每一次运行,我都觉得,这是最后一个错误,再过片刻就可以把程序跑通了。但每一次,又会出现新的错误。那些莫名其妙的异常信息迷惑着我,但我没有时间探索这个开源库的细枝末节,与其确切地知道为什么会出错,不如凭借直觉把解决的方法猜出来。经历近一星期的煎熬,我终于跑通了流水线,拿到了两种方案的对比结果。我们最后没有选择这套开源库,但我不认为这是一项做完即被丢弃和遗忘的工作。对创业公司而言,知道为什么某种方式不好,并且有理有据地避开它,可能会在未来节约不小的成本 [1]。

从三月到九月,经历过一周连续五天的 war room,经历过打团战从上午十点到晚上九点半,经历过周六周日接连两天来公司点外卖,我们终于发布了产品的第一个版本。正当所有人想好好庆祝一下的时候,我们的客服电话被打爆了。

Read more »

1936 年,阿兰·图灵发表了图灵机理论,证明了存在一种计算机可以执行任何能被算法表达出来的计算过程。1945 年,第一台图灵完备的电子计算机 ENIAC 投入使用,它和后续的电子计算机改变了人类的历史进程。关于量子计算的研究始于 1980 年代。尽管时至今日,尚未出现能进行复杂计算的量子计算机,但量子计算的相关理论已经成熟。

一般来说,完成一次计算需要做三件事:

提供输入 -> 执行计算过程 -> 提取输出

对于电子计算机而言,输入和输出都可以表达为一串比特。计算过程,就是处理单元在程序的控制下,通过 AND, OR, NOT 等逻辑门电路修改这些比特的过程。

而量子计算机,输入的是量子比特(qubit)。计算过程是量子门(quantum logic gates)修改量子比特的状态(quantum state)。输出的是量子比特观测的结果。

因此,理解量子计算,需要搞清楚量子比特、量子门和量子观测。考虑到量子计算的物理实现有多种方法,且许多细节均为机密,本文只会阐释量子计算的理论基础。

Read more »

尽管相机厂家为了推动低端单反/微单相机的销售,很少特意强调相机是全画幅还是残画幅,但我们并不能因此低估它的影响。

所谓相机的全画幅和残画幅,是指相机感光元件的大小。全画幅使用 36 x 24 mm 的传感器,常见的残画幅 APS-C 使用 23.6 x 15.7 mm (佳能是 22.2 x 14.8 mm)的传感器。全画幅与某种画幅的传感器的长度之比,称为裁切系数(crop factor)。很容易算出,全画幅的裁切系数为 1,普通 APS-C 画幅的裁切系数为 1.5,对于佳能来说这个值是 1.6。

常用的相机画幅

知道裁切系数有什么用呢?由于画幅不同,为了取得相同的摄影效果,在不同相机上需要设定的焦距、光圈大小和感光度并不一样。有了裁切系数,我们就可以在不同画幅间进行转换:

使用残画幅,在已知某张照片焦距、光圈大小和感光度的条件下,若改为全画幅相机,需使用的焦距、光圈大小和感光度。

或者反过来:

使用全画幅,在已知某张照片焦距、光圈大小和感光度的条件下,若改为残画幅相机,需使用的焦距、光圈大小和感光度。

Read more »

这周日,我被拉去本地某个基督教会听福音。传道者精心准备了演讲,在一个小时里把基督教的核心逻辑说清楚了。这篇文章我就加上自己的理解,以一位非信徒的身份转述一下。各位读者阅毕如果有兴趣,可以去教会聆听正宗的版本。

宗教可以认为是一种高度严密和仪式化的信仰。至于信仰,按照我的理解,便是那些无需证明就自动为真的命题。基督教作为一种宗教,它的信众会相信下面几个基本命题:

  1. 世界上存在着一位神,他创造了万事万物。
  2. 神依照自己的形象创造了人。
  3. 所有人都是有罪的。
  4. 人在死后会经过审判,有罪的人会下地狱,无罪的人可以上天堂。
  5. 凡相信这位神和基督耶稣的存在,便会得到救赎,可在审判时洗刷一切罪过。

这些命题都是无法证明的。传道者正确的做法,是通过举例,让听众觉得这些命题应当是真的。当听众不再质疑命题的真伪时,他们就完成了从福音听众到基督徒的转变。

下面我来逐条解释一下这几个命题。

Read more »

在热血的战斗场面从脑海中逐渐消退之后,《心理测量者》留下的,是虚渊玄对正义、理想社会与人生信念的诸多思考。

在这样一个架空的世界里,西比拉系统(Sibyl System)通过测量人的犯罪系数来预测犯罪行为,并允许刑警对犯罪系数高的人实施惩戒。在这个世界,何为正义,是由西比拉决定的。那么正义到底是什么呢?正义与非正义又是如何界定的呢?假设火车会轧死铁轨上的五个孩子,但是你只要把一个胖子从桥上推下去就能救那五个孩子的命,这种行为是正义的么?因为判定正义,是西比拉拥有的特权,所以西比拉可以使用任何逻辑上自洽的判断标准。比如说,比起不作为,把胖子推到桥下的人拥有更高的犯罪系数,因此用一个胖子的命救五个孩子的命是非正义的。更广义的说,正义与非正义并不存在一个绝对的界定,它只要能被普罗大众接受即可。

Read more »

一线的程序员可能会遇到这种事情:领导安排一个任务,按照自己的能力两个小时就可以做完,但领导偏偏要你用半个小时设计,然后花三个小时给同事讲怎么做,同事做完之后又用半个小时评审,最后觉得还不如自己一个人做得好。既然如此,为什么要把任务交给别人去做呢?

Read more »

去年用微单相机开始摄影以来,我时不时会遇到一个怪现象:一张照片乍看起来很好,但稍稍放大就会发现画面是模糊的。这样的照片,即便构图很好、人照得很精致、色彩也很有吸引力,依旧只能算作废品。在拍过好几个月的照片之后,我终于搞清楚了这背后的原因。

Read more »