2019年终总结

这是最后一个2019的周末,感慨有一年即将结束。

这应该是回成都以后,主观感受过去最快的一年。细细想来,似乎又没有什么特殊。坐在凳子上坐立不安的自己总归还是想不怀好意的看看过去,看看这未来十年最不景气的一年有什么东西能带给不那么糟糕的下一年。

最大的成长应该是开始学会在不确定中系统的思考出确定性的方案,开始要求自己深度思考。我以前挺反感这种方式,总觉得是一些自诩为具有思考能力的一小撮人比较作的方式。但是现实给了我深刻和沉重的教育。其实很多观点在没有深入思考之前,无论你对他的客观判断和主观喜好是怎样,其实一点都不重要,因为那都是基于你选择性阅读的随机掷色子罢了。时刻提醒自己从这种随机中走出来,剔除不确定性,逐步缩小和锁定确定性的范围。这其实远不是什么高明的做事方式,也许只是自己以前低头做事太久,突然抬头看天的时候,发现天空这时也挺美。

最大的不甘是今年在技术上没有尝试和探索太多有意思有趣的场景。工作的角色有了些许的变化,至今依然有些事必躬亲的事情放不下,但是重点主次在特定时间投入上还是要拿捏清楚的。但也有回头看感到温暖的代码,这段代码不多,甚至基本都是在业务碎片时间完成的,但是里面的注释我看到了6月份在达州酒店逗女儿跳舞,也看到了6月在江西三清山那个极度不安中又有不屈的自拍,当然还有婆婆去世时候,留在代码注释中的哀思。特定时期的代码有时候会在不经意间成为程序员的日记,不仅仅告诉机器如何工作,也记录自己如何成为更好的自己。

最大的遗憾应该是婆婆离开了。我至今很难接受这个事实。婆婆确诊是在今年2月14日,三姐跟我电话说了情况以后,直接去了华西,回来的路上在车里哭的稀里哗啦,那是我到目前为止唯一一次后悔没给车贴深色防爆膜。婆婆7月9日离开,7月14日下葬。上个月还去看了她,并且给了我一次好运气,我……就是没法接受。

最不知如何总结的是老家拆迁的事。亲身经历了以租代征下的各种荒唐事。但也因此很对上以前很多不熟悉的邻居真正相互认识。其实生活中有很多类似的事情从身边经过,很多时候我们只是需要多一点耐心,以及十年以后回首往事的心性。

最有意思的出游是带妞儿和女儿去了趟海螺沟。转眼8年过去了,在雪山当年跟妞儿两个人拍比心的位置拍了一个全家福。时间真是一个神奇东西。

今年想去做的几件事情都没有拿到满意的结果。倒是以前延续过来的事情不但带来了收益,也在有时候心烦意乱的时候如同一道道希望之光,让一切都变得没有那么不堪。感谢时间!

明年的压力会很现实,其实这也是一种幸运。因为并不是所有的事情都有耐心等你漫不经心准备好的时候给你递上台阶。既然已经看到前面是道坎,不如主动迎上去使劲向上爬。

2020年,有几个希冀特别希望自己能够以平和的心态实现。惟愿,感恩时间,希望至美!

最近的一个创造-又开车了

过了而立之年,很多事情会不期而遇,无论好的还是坏的,有准备的还是意料之外的,不一而足。有人说,哪有什么岁月静好,唯有负重前行罢了。

一个人有一两项长期的兴趣爱好是非常重要的。有时候,实在累了的时候,驻足看看自己的爱好,如同一道希望之光,给你难以言说的温暖与慰藉。而我,作为一个喜欢驾驶的老司机,除了美剧,工作之余也会跟一些自媒体汽车节目,关注汽车本身,也关注汽车相关的文化和生活。

但是,当前的汽车自媒体平台比较分散,并且每个平台都有自己的APP,推送消息也非常不克制,这就导致要订阅这些内容变成了一个非常繁琐,还经常被推送消息打扰的事情。于是有了又开车了微信服务号这个创造:

  • 在微信中聚合你的汽车自媒体订阅,免去安装各个平台的APP,来回切换内容查找的烦恼。
  • 当你订阅的汽车自媒体有内容更新的时候,你会收到一个微信消息提醒,除此之外没有其他任何推送打扰。
  • 支持订阅历史管理,历史内容一目了然。
  • 当前接入了1000+的自媒体频道,喜欢开车的你也许能在这里发现更多精彩的内容。

生活需要仪式感,在这个逐渐被奶头乐所占据的时代,希望你无论多么忙碌都能时不时抬头看看自己一直以来的兴趣,看看那不经意间的希望之光。如果你有跟我类似的兴趣爱好,欢迎关注我的微信服务号:

Go 1.12 TLS 1.3 简单测试

《TLS 1.3 当前(2018.10)支持与部署之现状》中,我们提到 Go 将在 1.12 中支持 TLS 1.3. 作为一个 Gopher, 终于在前几天盼来了 golang 1.12 的发布。

但是从 release 日志看,本次对选择性的部分支持 TLS 1.3, 且默认处于关闭状态:

Go 1.12 adds opt-in support for TLS 1.3 in the crypto/tls package as specified by RFC 8446. It can be enabled by adding the value tls13=1 to the GODEBUG environment variable. It will be enabled by default in Go 1.13.

如果要开启 TLS 1.3, 需要设置环境变量:GODEBUG=tls13=1.

本次发布的 TLS 1.3 的 cipher suite 无法配置,也不支持 0-RTT 模式:

TLS 1.3 cipher suites are not configurable. All supported cipher suites are safe, and if PreferServerCipherSuites is set in Config the preference order is based on the available hardware.

Early data (also called “0-RTT mode”) is not currently supported as a client or server.

要知道,没有 0-RTT 的 TLS 1.3 是没有灵魂的,对本次版本的失望那是肯定的。但是依然在第一时间升级了 Go 版本,简单测试了一下国内网络环境下 TLS 1.3 与 1.2 的握手延迟。如果对 TLS 1.3 握手延迟还不太熟悉,可以参见拙文《TLS1.3/QUIC 是怎样做到 0-RTT 的》 以及 TLS 1.3 Handshake Protocol.

测试代码

需要说明的是,这个测试是不严谨,里面没有考虑 cipher suite 以及 early data 的差异。测试结果定性意义大于定量意义。

测试结果

测试使用的目标服务器地址是 blog.cloudflare.com:443, 我的网络环境下,ping 延迟为 226 ms (1-RTT).

从结果看,有如下结论:

  1. TLS 1.3 平均比 TLS 1.2 建立连接的延迟低约 1-RTT, 跟理论分析是吻合的。但是,
  2. 从 max 项可以看出,部分时候国内到目标服务器网络不稳定带来的波动比 TLS 本身协议优化的 RTT 大的多。因此,稳定高延迟的网络链路有时候比低延迟高抖动的网络更有实际意义。
  3. TLS 建立在 TCP 基础上,TCP 的握手延迟在 TLS 层面是优化不掉的,或者说不是 TLS 的管辖范围,因此,在允许的情况下,尽量复用连接。