我一直都在回味前不久过了三十岁的生日,这个年龄坎悄无声息的就来了。
那晚,我和以往一样,回家的比较晚。老婆孩子都在等我,他们做了火锅,庆祝我生日。孩子还用压岁钱,送了我一瓶香水。
我知道那天是我生日,只是我自己也没有多少在乎和关注。但破防的夜宵,还是让我语言沉默和大脑峰回路转。

三十而立了。

当自己走到了三十的路口,停下来看看左右,再看看回头路,才发现目前正在停驻的路口,心里是多么的不想面对以及情绪复杂。
哥哥什么时候三十的,我没有注意。老婆三十的坎,我也没什么顿悟。而父母今年也是六十了,我写文章这一刻才发觉。奶奶也已经九十八了。
其实我本该对亲人,嗯,本该多一些关心的。老婆评价过我,说我对亲人没得感情。我不承认,但也不否认。真要做个度量的话,还是 “不否认” 占据多数的。

张学友近期发布了「又十年」,听着听着,就感慨万千,想表达的能表达的,都在一首歌里。
「一眨眼 又是一個十年」
「生命給我們什麼都不可能拒絕 這句話我當年不了解」
「那些瓜葛糾結 在某一天突然迎刃而解」

前两天教孩子玩 9 皇后版的数独游戏,对于全盘多个空格,如何尽可能快的填充。我提到得找到最容易解决的哪些空格,解决的空格越多,后面空格的数字约束也就越多,也就越好解决。
这个游戏的本质就是如何把每一个空格填充,并且效能最大,贪婪嘛。
今天说的双拼,就是这样一个文本处理的软技能,工作和生活上都是通杀,在之前的提高效率的手艺里也有提到。
生活上手机聊天打字,工作上项目汇报打字,各行各业各个人群都可以用得到。
2 天时间就可以熟练掌握的受益终生的软技能。

一年前写了一篇提高效率的手艺,提到了 Vim 作为划时代的文本编辑工具,可以有效的提高文本编辑的效率,对于写作或者 coding 都非常有用。
今天整理一个稍微进阶的教程。vimer 十几年的 95% 的操作使用,应该都在这里。

Vim 作者,Bram 于 2023.08.05 日去世了,享年 62 岁。像我这种只要碰键盘就离不开 vim 的人,对 vim 的感激,是十分强烈的。悼念 Bram。
计算机的基石和发展,也就这几十年。那一批有卓越贡献的人,后面二十年会相继离去。C 语言之父丹尼斯十年前走了,70 岁。后面会越来越多。

端上日志系统非常重要,对于用户侧的异常、排障、动线、行为等很多重要数据,都可以通过端上日志来做检索。如何搭建一套准确、高性能的完备日志 SDK 就显得尤为重要。 (另一个重要的排障信息源是埋点,通过埋点可以获取更精准的用户动线。后面有时间做一下埋点数据化方面的总结)。
移动端日志系统,将承载 Native、h5、动态化等多技术栈环境下的日志收口工作,同时要兼顾日志不丢不乱和高性能,其实还是有不少挑战的。
这一方面 CocoaLumberjack 其实已经做的很好,很多公司都用它作为自己的日志系统的基础框架。但它还不能作为大型 app 的流量日志收口系统。因为流量大了以后,少量的日志丢失也会带来很大的缺口,而性能方面它也有很多短板。
mmap 可以在 IO 性能方面有显著的提升,也就是后端比较通用的零拷贝技术。在移动端上 FastImageCache 对 mmap 有较深的应用,但它业务绑定太强,一般无法直接使用,更多的是学习 mmap 的落地。

本文会对日志系统的一些完备要素做一些说明,并特别讲解下 CocoaLumberjackFastImageCache 两个技术库。

  • 日志是否全量。很多业务开发同学不使用日志 SDK 做日志输出,可能使用系统日志做打印,这一部分日志是否需要做收口,需要权衡一下。
  • 分等级和模块。分 Level 和 modules 进行记录和检索,可以提供问题排查速度。这方面有专业的 Debug/Info/Error 等标准。技术上比较好实现。
  • 性能。主要是卡顿和耗电。日志系统会底层基础架构,大流量的打入,会频繁的内存释放、I/O,过多的占用 CPU 会导致卡顿和耗电,也会影响拖延上层业务异步代码的执行时机。
  • 数据不丢不乱。没有办法做到完全的不丢日志,只能尽可能少的减少。在 crash / CPU 繁忙 / 压缩加密严重耗时拖延队列等异常场景,这方面问题尤其突出。不乱就需要增加串型队列或者锁,这些同步机制都需要保障阻塞和性能。
  • 实时观测。开发和测试同学需要能够实时看到日志打印情况,这在开发和提测阶段非常有用。
  • 压缩 + 加密。压缩和加密都是耗时操作,对 CPU 的压力比较大。
  • 上报。得有回捞机制,得保障数据传输安全。
  • 后端系统。前置的采集完成后,后端系统的数据化检索、数据可视化等工作都是重中之重。
  • 隐私安全。这一块国内所有厂商都极度匮乏。大厂的开发同学也可以随意捞取用户日志,异常日志在内部系统可以随意传播。如果有这方面的诉求,那么整套安全体系都需要建立起来。

数字签名可以解决数据安全里面的完整性身份认证不可否认三大特性,但是解决不了机密性问题。机密性需要通过对称密钥 / 公私钥解决,所以数字签名其实和加解密 / 密文 / 机密性这些在概念上非一个层次。
签名的本质不在于加解密,而是加验签。
数字签名,定义上是拿着私钥的一方,通过私钥 X 对消息 M 进行加密 (加签),生成签名 N,并把消息 M 和签名 N 一起给出去。拿着公钥的一方,用公钥 Y 对签名 N 进行解密 (验签) 生成 M’。用消息 M 和 M’ 做比较,如果相等,则数据没有被篡改。如果不想等,则数据不再安全
对于公私钥,我们一般是使用公钥加密私钥解密,这样可以保障单向数据机密性。而私钥加密公钥解密是解决不了机密性问题的,如果要通过公私钥完全解决数据机密性,则需要双向认证。
数字签名就使用了私钥加密公钥解密这套方案,所以数字签名是没有密文 / 机密性可言的。在数据签名里,一般把私钥加密叫做加签,公钥解密叫做验签

时间流的实在是太快了,又是白劳的一年。也不忍回首,也不堪展望。站在年尾的节点,四处都是狼藉。
工作上没有大的建树,生活上没有啥起色。好像什么都不做,也应该是现在这样子。但今年实在太累了,在工作和生活上都投入了巨大的心血,也正因如此,越发感觉到徒劳。

在两个月前写《三年疫情五味杂陈》的时候,就是要放开了,所以当时想着写一篇,对疫情三年稍作记录,毕竟是一个时代的拐点。
那片文章过后半个月,就开始有放开的动作了,部分城市已经松动,我还给被隔离的小伙伴留言,说赶上了最后一波封控。

只是没想到,这个国家干啥都是一根筋。我以为这么大的人口,怎么也是省级别的逐步放开,没想到是全国一下子放开。赌气呢吧,一下子就放开了。

想起了一个老问题:浏览器按下回车的时候,后续流程是怎么变化的。
这个问题非常精妙,基本上把网络问题一次打包了。
对相关知识面了解越多的人,能说的内容也越多。越资深的人,能说的时间也越长。
我对网络也一直感兴趣,索性这次就做了大图,越做就盘子越大耗时越多,每个点都可以延伸一个举足轻重的行业。

浏览器按下回车键后,发生了太多太多事情,我文字理下图中写不下的重点,详细看下面大图。大图下载地址

DNS

  1. 重点是时机。DNS 查询是为了域名和 IP 映射,所以它的时机非常非常靠前,是所有网络活动的第一步。
  2. 发挥大作用的是负载均衡。
  3. 误解最大的是根 DNS。有镜像 DNS 在,不要拿封锁大陆域名后会怎么怎么样来做文章,技术同学说这话是要丢人的。如果这么做,我能想到的最大影响就是:大陆主动拒绝外界网络,外界都不愿意打开大陆访问,其实都是自由的选择。
  4. httpDNS 可以解决 DNS 污染和劫持问题,还有运营商偷懒导致的跨网非最近节点不准确问题,加快域名和 ip 的映射。一般只用在移动端,技术方案是 hook gethostbyname api 这个环节。别想着请求前把域名换成 ip,坑很多,尤其是 TLS 证书验证的时候。

Socket 套接字

  1. 网络通信的基石,只要是网络通信,这就是绕不开的大山,这就是中流砥柱。
  2. socket 的核心在于 socket 描述符和发送接收缓冲区。发送接收缓冲区不是 socket 特有的,是计算机基础的一部分,我们使用终端的时候,输入指令和参数的时候都在使用这套缓冲区。
  3. 大名鼎鼎的三次握手就在 socket 建联的时候发生的。成也萧何败也萧何,因为 socket 是内嵌计算机的底层服务,也包括 TCP。所以即使三次握手已经拖慢了互联网这么多年,但依旧无法做升级。Quic 的出现就是忍不了 socket tcp 的队头阻塞而破釜沉舟的东西。
  4. socket tcp 的详细过程,可查阅之前文章:TCP 数据传输过程分析
  5. 谈 socket 离不开端口,谈端口离不开进程。可查阅之前文章:Shell 和进程 - 两种进程创建方式
  6. socket 本身可查阅之前文章:IM 和 Socket 的关系及 Heart 的必要性

update:2022.10.29 昨天听说开始有解封迹象了,今天我收到了运营商发出的 “奥密克戎感染后的身体事项” 的说明短信。能收到这样的短信,就是一叶落知天下秋,看样子是要逐步解封了,应该会在一两年内全部解封。不好的消息是:没有听说 ICU、医疗、特效药、病房有做准备,即使逐渐放开,这些必要的医疗准备工作也要提前半年到一年就要开展起来的。目前看是打算逐渐解封 + 硬扛,要带走不少老年人了。老年人得注意。

COVID-19,从 2019 年可能在 10 - 11 月初步感染人体,到 12 月底被媒体曝光,再到现在,已经 3 年了。

这三年发生了太多太多事情,刻骨铭心的不计其数。我开始以为以前也是有很多很多事情,只是我没有关注。后来想想,或许就是这几年,发生的重大事情比较多。因为疫情和国际局势,中华人民坎坷的这几年。
金字塔的每个层级每个人都受到了很大影响,所有影响最终都会归到生活和金钱,质量总归是下降了不少。
也有很多人说没有受到影响,甚至蒸蒸日上,有些是身不由己,有些是笃信不疑。差异也都能理解,毕竟各种原因,真的是各种原因,不想再去细究,意义不大。

简单回忆下三年疫情,因为不知道什么时候才会结束,就当作是对个人疫情的期中总结。

我应该是最早一批知道武汉有疫情的人,当时只知道有人被感染,还没联想到非典这些传染病。当时有些朦朦胧胧,也有些对未知的恐惧。当时也快过年了,还有不少同学的婚场。
再过了几天,听到疫情严重了不少。已经记不清是在李文亮之前还是之后了。
我和亲人说过年可能回不去了,这次病毒没有媒体报道的那么简单,感染会很严重。过年人流大,火车站这些场所风险比较大。亲人说就是非典一样吧,开车应该好些。最后我们开车回去,老家过了三天赶着高速封路前回到了居住地。我姥姥说这就是古代的 “瘟疫 / 人瘟” 吧,好久没有听到这个词了,但很赞同。
我大学同学的婚礼是过年前段时间。我之前已经答应了我和老婆都会到场了,但是婚礼前我还是和同学说了抱歉,我说肺炎(那是还不叫 covid 或者疫情,只叫做武汉肺炎)不简单,火车站有风险,到场计划得取消了。

之前写有提高效率的手艺这些年我的软件清单两个推荐,一个用来提高文字编辑的效率,一个推荐了手机和电脑可以安装的一些高效率的软件。
这次推荐一些日常生活的避坑指北。生活还有几十年,掉坑在所难免,所以这篇推荐清单打算做长期更新。

指北概要

  • 日常物品避免线下消费,可以线下试用。线下的售后保障和价格上都比不上国内线上。
  • 不要担心购物资损,电商平台都有 7 天无理由退货。有些人已经有了线下消费阴影,不敢退换货了。其实就是手机点下退货,接一下快递员上门电话的事情。
  • 同一个系列,在价格承受范围内可以选贵一点的。也许多花了一点没意义的钱,也许底线就在那个便宜和贵中间。别想着讨巧,便宜是有原因的,商人从来不吃亏。
  • 买东西前多了解下要买的东西,包括组成、作用或者配置等,花不了多少时间。别瞎几把乱买,比如震动去脂、啥离子之类的,不主动了解就得做好被动收割的准备。平台的评价系统真假参半,但也是避雷的最好途径。
  • 对于想买的贵重物品,延迟一周后再决定下不下手。不缺那一周的时间,但钱是真金白银。
  • 对国产保持警惕,尤其是贴近皮肤和肠道的物品。
  • 拼多多的百亿补贴挺香,比其他知名平台要便宜不少。百亿补贴里面的海淘也非常好用,东西不多,都是实用系列。

洗漱

  • 男士洗面奶 - UNO(拼多多海淘 ¥15 一支,130g)
  • 牙膏 - 狮王 white&white,不要买国产那款,买产地日本的(拼多多海淘 ¥8-11 一个,天猫海淘 ¥15,150g)
  • 儿童洗手液 - 日本狮王泡沫式(拼多多海淘 ¥20-25,500ml)
  • 护发素 - Fino(又称红宝石,拼多多海淘 ¥30-40 一罐,230g)
  • 牙线 - 刚需,一定要用。不用一下都不会知道牙缝有多脏。
  • 抽纸 - 清风,金色外包装款
  • 剃须刀 - 吉列锋隐手动版。如果胡子比较茂盛,那可以把剃须当作生活的一部分。建议不要用电动的,虽然方便,但没有剃须的快乐。(要配合剃须泡,洗澡的时候胡子会变软,是动刀的好时机。剃须膏体感非常差。)
  • 水杯水壶 - 买好一些的自己喜欢一些的。自己喜欢的,就是可以多喝一些水。多喝水非常重要。
  • 浴巾 - 毛巾给身子擦水,又慢又累。洗澡后用浴巾两下子就擦干净了,省事。省的时间干其他的事不也很香么。
0%