de·vir·tual·ize vt.

[计][编译优化] 去虚拟化:将间接调用(虚拟方法调用)变换为等价的直接调用。

And I’m trying to devirtualize my own life in 2022.

长懒看版本

我将尝试在 2022 年实践个人生活的脱虚向实—— 灰度减少花在纯粹虚拟世界,也就是编程工作的时间,而增加现实生活的比例; 包括但不限于找个健身房开始复健, 重拾纸质化的时间管理规划(“手帐”,anyone?), 以及一般性地在线下生活多花些时间等等。

希望能真地做到这些事情,这样 2022 年的 flags 估计能达成多一些。

引子:提升情商与挖坑不填的因果关系

在很多好友口中,博主都是“鸽王”,本次也不例外—— 如您所见,10 天前把“翻新这个博客的前端主题”默默从 TODO list 划掉的博主, 默默把博客技术栈整个换成 Hugo 了, 拿了个现成的主题替换了之前年久失修的浅色模式-only 主题hhhhhh。

[略]

由于时过境迁,作者已不再有足够时间、精力自行维护先前简陋的静态站点生成器与主题模板,使之满足作者的高标准严要求。 目前本博客的技术栈已经更换成 Hugo;本文中描述的内容都放在本博客储存库的历史分支了。

——《这个博客是怎样搭建的》,2022 修订内容

正所谓“当所有人都觉得你会咕咕的时候,你却没咕,这也是一种咕”…… 😂

那么为何要做这么一件事呢?我自己想了想,可能还是为了寻求一种仪式感:试图以一种方式在时间轴上做标记,标记过去生活的告一段落。

我更倾向将此处的“告一段落”理解为字面意义——一篇文章总有多个段落,每一段都不尽相同,但每一段也都是文章的有机组成,不能与其他段落割裂开来; 人一生也总由许多阶段组成,它们前后衔接着,定义每一刻的“你”、“我”。

回顾这些年,已经习惯被贴上“钢铁直男”标签的博主在近两年竟然渐渐减少了被如此评价的次数; 在一些周围的人和事情上,反而似乎隐约看到了几年前的自己,这偶尔使我在夜深人静后为先前的自己感到羞愧难当。 这些年发生的事情终究还是改变了我,至少我的外在。 这不见得是坏事,虽然当年的我肯定在至少一个场合夸下过海口,说自己这性格将一生不变。 年轻真好!

这些“情商”方面的改变,客观而言,是神经网络接受训练的结果: 先前没有建立的概念及其相互的联系,在这些年期间集中地初步建立起来了,而一般人的这个过程想必是在整个青少年时期渐进地完成了。 这个对比意味着,对我的神经系统而言,在这个阶段,它的输入和注意力一定要强烈地偏向于“情商”方面的内容—— 上下文、神色、语气、更多的上下文——比其他人在当下的人生阶段这样做的比例更高。 因为只有这样,才能在更短的时间内收集足够多的“训练集”,才有可能赶上其他人的情商发育进度,进而符合目前的观测。

这也就意味着,我花在“传统项目”上的时间比例一定减少了;这两年的事实表明,确实是这样的。 曾经的我基本不会出现填不完坑的时候:

  • 本科时期嫌 Django 太重,web.py 太轻,就从头边学边做了一个 Python Web 框架
  • 当时初入二次元坑,关注到“萌战”这么一个“赛事”,无奈 Linux 下没有好用的计票器来实时“观赛”,就火速做了一个
  • 后来有次手机摔了,各种卡顿死机重启,当时手头只有一台魅族 MX4 Ubuntu 版,Ubuntu Touch 没生态,就花 9 天时间移植了一个 CM,后来还维护了好几年;
  • 差不多同一时期入了龙芯坑,3A2000 跑 autojump 很慢,就用 Rust 重写了一个
  • 差不多同一时期入了 LL 坑,2016 Fan Meeting Tour 前夕观察到许多同好们苦于日式应援复杂难记,就和伙伴开发了 LoveCall 并光速上线、官宣,广受好评;
  • 后来工作了,发版要写 Changelog,生成工具是 TypeScript 的,想都没想就用 Rust 重写了,现在全部门都在用;
  • 当然,最明显的例子还是本博客的第一版,说干就干了。

而翻看近年来我的 GitHub 项目,我脚趾简直能抠出三室一厅:

  • autojump-rs,做出来之后基本就没维护了;
  • go-workwx,我 star 数最多,最多人用于生产的项目,彻底没心思管;
  • cloud-provider-shim,开了个头就太监了;
  • maidata-rs,本来想做个完整的网页版集成写谱环境,结果只写了个解析器,还没弄完;
  • protobuf-gogogo,工作中用的 GoGo Protobuf 失去维护了,准备做个翻新实现,开了个头,也太监了;
  • 没开源的项目不计其数……

时间都去哪了?我想正是用来填补先前那个时期没有进行的社会活动了吧。

当你审视从前与当下两种状态,并为当下的一些现状感到不满时,可能第一反应是“回到从前”; 但当你继续思考,发现你不喜欢先前的生活更甚于当下,那就是另一回事了。

这意味着你需要直面现实,接受当下这些现状,这是你能够以更好姿态走到今天的代价;在此基础上,重新开始规划。

脱虚向实的导火索

使我产生这些思考的导火索其实很简单,是一年一度的年终总结,需要整理这一年来都做过什么。 我突然发现单凭 JIRA 系统工单是完全无法记录丰富的工作内容的,以至于只能在本就急迫的日程中再多花几个小时, 去挨个 issue 观看、回忆。

我想如果每次在被打扰的时候,都能迅速记录下这件事情;如果每个想法都被记录即便它从未成熟过, 那么回过头来看,自己的生命是否会丰富许多?

就不会像现在一样,大量当时认为有意思的想法仅仅因为不方便打字而化作热能消散了;

就不会像现在一样,工作快 5 年了还不能 100% 准确统计工作时间,导致每周排上的工作也不能保证 100% 完成,甚至经常连 90% 也不能保证了。

这时我想到,曾经的我也有过一段时间不是这样的——

具体世界的往事

我上大学之前没有智能手机,除了周末回家的两天,无法连接到互联网。 在学校的时候,我只能使用各种纸质的信息记录与传递方式,和所有其他人一样。 当时的我度日如年,生活的全部目的就是快点上大学,这样就能始终在线了。

后来确实做到了这一点;但反过来,却也经常感受到纯数字生活的另一些不便。 字体与排版能力在许多软件的欠缺,画图的不便,数据丢失的风险,多软件平台互操作的人为障碍—— 到头来,那些从未移民虚拟世界的人们,生活质量可能还比我这个互联网原住民高。

的确,先前我看待这些“三次元住民”多多少少是有些优越感的,这要承认并道歉; 但在工作之后,透过形形色色的人和事,接触了现实生活的具体之后, 显然光怪陆离的具体生活有着许许多多观察视角,犹如高维空间的投影或切片, 在这里生活对虚拟世界的我甚至是有益的。

虽然由于脸盲,早年的我经常由于错误理解电影、综艺而被同学笑话并有意无意排挤(这仅仅是我当时的个人感受), 而使得我这些年来完全不看电影、综艺等一般性大众休闲内容,知识缺失太多,无法轻易“回坑”(正如多数人无法轻易“入宅”一样), 但仔细想来,这思维定势不知从何而来:“活得具体”当然不必然意味着“你要听中文歌看综艺看电影”,或者“普通人做啥你也做啥”。 这个真的对我来说有点困难 😂

事实上,这两年的经历也表明,小众活动也一样能将你连接上具体世界,并不是非要跟你周围的人保持一致才行。 比如,通过 maimai 这个游戏,我居然能在现实世界认识几十个很不错的朋友,而这一切仅仅是因为打 maimai 必须去现实世界的机厅站着。

有什么不是普通人都会去做的,具体世界的,又能解决我记录生活记录工作的需求的活动呢?

也许 10 年前放下的纸笔与文字能够帮助我吧!

Devirtualization

我在思考这些东西的时候,devirtualization 这个概念在脑海中反复浮现。 如果把那些表面上通过 interface(与虚表是同义词),但实际上一定指向确定的具体实现的方法调用,就直接编译成调用具体实现,能实现可观的性能提升。 显然,在性能上,具体好过虚拟;那如果把类似的想法应用到生活呢?

前面分析过,当下我的大量项目没能正常完成,可能是生活方式改变造成的必然结果。 而这时候要做的,不是想办法回到以前能够有了想法就全部快速实现的状态,因为这会使得我绝大多数业余时间都在写代码,甚至业余时间都不够——先前的恐怖效率很大一部分是拜学生不用工作所赐; 相反,要“服老”,然后 move on。

考虑到先前定下的 2022 年 flags,“活得更具体些”,这正是 devirtualization 的意思。写成文章要用汉语,怎么翻译呢?“脱实向虚”是会产生系统性风险的,是不好的;那就“脱虚向实”好了。

是时候承认自己生活进入新的阶段,即便要写代码,也要少一些,换一些写了,一些先前被写代码踢出生活的事情要接着做下去了。

纸笔和文字,这几年好像有了个新名字“手帐”(其实就是日语“记事本”),围绕这个事情甚至有成熟的产业和社区,重新研究一下拯救下自己的时间管理(没有双关)自然是好的。

工作以来很少泡健身房了,身材管理出现了松懈,这对一个既不高也不帅的人来说是致命的,maimai 对燃烧脂肪有用,但也作用有限,达不到我的预期。这个事情要做。

35 岁以后如果别人不想雇我写代码了,我自己又没成功创业的话,干点啥好呢?我离 35 岁只有不到 6 年了!高三那年招飞,如果不是身高限制,我现在基本一定在天上乱窜;如果到时候真写不了代码谋生了,去个通航公司开开小飞机,或者飞行俱乐部教别人开小飞机,貌似也不错。这样的话最好现在就开始了解相关知识了。

至于写代码,先前总是放不下这个爱好,怕如果搞了其他活动,我就与开源社区说再见了; 其实现在想一想,人总有惯性的,何况这个活动已经持续了十几年,属于无聊了就会去做的事情了,好像是没有担心的必要。 读到这里的朋友们也放心,@xen0n 不会人间蒸发的,我仍将时不时给大家带来优秀的代码,致力于为人们的数字生活提供一个开源的选择。

写在最后

写着写着,这篇文章果然又变成了支离破碎的流水账,其实就是把上一篇文章的几句话扩写了它们背后的思考。

这是一篇在 Vim 里用 Rime 双拼输入的文章,字节流是它从头到尾最具体的存在形式。希望年后能不要忘记这边立下的 flag,用纸和笔重新开始写些不是字节流的文章了吧……

2022.01.13 - 2022.01.15