围绕RMS、开源、自由软件的两场“战争”

我不是Stallman(RMS)的粉丝,不是自由软件基金会的会员,我用vim而不是emacs,除了最近两三年,我之前的日常应用BSD也多于Linux。但是围绕Stallman产生的争吵,逐渐变成了一个重要事件。

它有太多的特殊性,这个事件不应该被看作针对一个人的评价,而是开源软件和自由软件社区历史冲突的一次爆发,长期以来美国政治和社会影响下产生的社会分裂波及技术社区,最终落在了这个人身上,而他又是以一人之力开创自由软件运动,建立这些社区的人,历史头尾相接,在这里相遇。

Ocsp Stapling 和iOS界面卡顿问题

这个问题成功的吸引了我的注意。

起因:一个Flutter写的app在iOS上偶尔会发生了界面卡顿甚至冻结10多秒,但在Android正常。

开始这个问题没太引起重视,觉得是flutter的问题。但后来随着dart的issue里面报告的人逐渐多起来,看起来不是那么简单。不过非常令人迷惑的是这个现象只在iOS偶尔出现,Android从来不出现,这种不确定性使得重现和调试非常困难。

在issue里面发现报告的人大部分疑似是中国用户,之后发现有人提到更换了阿里云证书之后问题不再重现,这使得我们把问题方向放在https上。最终发现服务器的OCSP Stapling失效,造成了soft failure。之后的行为要看客户端实现,有的浏览器接受soft failure,不进行客户端检查,一切正常。但有一些客户端比如Safari会自己去检查了OCSP状态,从而造成界面无响应。检查nginx log发现ocsp.int-x3.letsencrypt.org请求超时,随后确认此域名遭到了DNS污染。

在服务器开启OCSP Stapling对于提升速度帮助很大。所以无论如何也是应该开启的。

但是仍然有两个问题没有解释:

  1. 为什么Android没问题,iOS有问题
  2. 为什么有时候可以重现,有时候不可以重现

为了回答这几个问题,顺便找一个解决方案,我顺着读了一圈代码和协议,从nginx到openssl,从tls到ocsp。最后终于能回答这两个问题了。

开源是自由的,永远

开源软件到底受不受美国政府管制?会不会应美国政府的要求禁运?最近这个话题成了热点。遗憾的是,到现在中文文章里我没看到能把这个事情说清楚的文章,这让我非常惊讶。中国科技和互联网行业从开源软件中受益极大,也有无数直接和间接参与者,但是这些基本事实还是糊涂的,比较遗憾。

互联网之子 Aaron Swarts 想要看到的世界

首发于: https://mp.weixin.qq.com/s/z4J2KI8LjcfOIZLhGbi_QQ

Jade和我偶尔会聊起一些宏大的话题,最近聊到了Aaron和互联网创建者们的一些历史。她觉得应该正经的来一次对话,记录下来分享给其他人。我们约了个时间,原计划聊2个小时,实际上聊了5个小时。最后形成了一篇交谈形式的文字,她称之为文字版的Podcast。我很喜欢这种形式,我也更认同文字的价值,更好分享,更好检索,也更好修改或者摘录使用。以后我们应该还会继续这样的对话,这次聊天里面很多东西都可以继续讲下去。希望你也喜欢这个形式。