我的生活记录经验及个人工具与方法
2021-09-25中学的时候,我开始写日记,记录琐事和当时再正常不过的一些小心情,就这么一写一直写纸质日记到 2020 年。工作之后,我把上学时候写的日记也带在了身边,不过中学时候的只剩了高三复读时候那一本,早先的记得应该是被我以一些现在看来蠢蠢的理由烧掉了。偶尔兴起会翻一翻自己的日记,重温当时的一些感动,记得有一年翻日记翻到和大学同学的事情,觉得特别感动,没头没脑地给同学发了条信息说「想起当时的XXX觉得好温暖啊」,对方大概会觉得莫名其妙吧。
图1 我的纸质日记
我经常想起曾经朋友见到后会说的两句话,一句是“你变了”另外一句则是“你一点都没变”,每次听到这两句话,都特别想问问,对方看到我没变的东西是什么、变了的东西又是什么呢?当然,有些人我可能永远也没有机会去问这个问题了,但幸好我还能从我的日记里,大致地知道自己发生了怎么样的变化,而不是只靠回忆里那些印象深刻但寥寥无几的事件来知道自己是个怎么样的人。当然,在开始写日记的那些年里,我并未意识到这些价值,只是惯性和表达欲使然,再加上潜意识里觉得记忆不靠谱产生了把一些有价值的事情记录下来的想法吧。真正发现记录的深刻价值是在我工作后。开始工作后,我发现自己有很多东西要学、有很多事情要做,每件事情又充满了不确定性和意外,且有时候极其复杂,于是开始在本子上写工作日志 —— 说是工作日志,其实也没有什么章法,写得也很潦草。据说招我进去的领导特别喜欢我学习和记录时候的认真劲,不过工资太少了最后我还是跳槽了。
图2 一篇调试错误的工作日志
从 2015 年第二份工作起,我便开始在电脑上记工作日志,简单做了下统计,去掉空行和空格后,从 2015 年 3 月 10 日到今天(2021 年 9 月 25 日),累计写了 15.3 万行共 734 万字,平均每天写 64 行共 3070 字,也不算很多,但是能一做就是这么多年,我还是挺自得的。我的工作日志按日期来顺序记录,都是尽量追求把处理问题的完整过程(包括思考和执行)都记录下来,可复现性还是比较高的,现在同事如果问一个几年前我经手过的事情,我基本上都能在日志中找到过程,如果有必要的环境把当时做的事情重做一遍基本也可以做到 —— 事实上我自己在工作中隔了半个月甚至几个月要重新做一件事情也并不少见,这种情况下工作日志也帮到我很多。
图3 2017年工作日志片段
到 2018 年下半年的时候,我开始关注自己的时间使用情况,用 Life Cycle 这款 iOS 软件对自己的日常时间开销做一些粗粒度的自动记录,并且在年终总结(见2018年总结和2019年总结)的时候用来做一些简单统计和分析。说实在的,这个记录的粒度非常粗,大概就是根据我的位置之类的,判断我在什么场所做什么事情,如果我在一个场所做了两类不同的事情,就需要我自己去手工修正类别,但因为它自动记录和分类的特性,作为一个初步的尝试还是不错的,用了几年后,至少对自己的时间使用情况有了一个数字上的认识。
图4 "Life Cycle 记录"
如果说写工作日志是为了更好的工作,那么写个人日记和做时间记录则是为了更好地认识自己,而 Life Cycle 这样粗粒度的记录并不能满足我的要求,于是在 2019 年下半年开始,我开始摸索更适合自己的时间记录方式,并在 2020 年逐步进行完善后开始正式使用,目前基本上能把我每天的时间使用情况按事情精确到分钟级进行记录,虽然不是自动化的,但也不会耗费太多精力,写今年的半年总结的时候就用到了这个方法产生的数据。
对于我的记录方法,有若干网友在我的数篇文章的评论里表示感兴趣,所以在这里简单说一下,其实并没有什么很复杂的东西,就是用 org-mode 的 org-agenda 功能,下面是我的 agenda 视图:
图5 我的 agenda 视图
在这个视图里,我可以按一下 I(大写) 开始某项任务的计时,按一下 O(大写) 则结束任务的计时,操作是很简单的,我要做的是调整一些短期任务让他们显示到「今日事项」这个区域里,这种短期任务一天不会超过十件,只需要在每天做梳理和计划的时候处理即可,而这个梳理和计划我又是通过图上「写今日计划」来进行的,所以这个梳理和计划的耗时也可以得到记录。用 org-mode 来管理任务,这个对 org-mode 用户是很自然的事情,我做的一点点微小创新(其实是不是创新都不好说),就是把一些日常的事情作为“纯计时任务”纳入到这个体系里面了,就这么简单。公司有同事看到我这个方法后有和我讨论,他不用 Emacs 更别说 org-mode 了,但其实是可以借鉴思路的,要能把这个记录过程进行下去,最根本的一点就是操作要尽量的简单和快捷:(1)任务的查找和定位要快,org-agenda 的好处就是提供了一个统一的视图来展示不同来源的任务,其他工具如果也能做到这点的话也会很棒;(2)任务的计时操作要简单便捷,最好是按一个键就能完成。基于这个共识,我们讨论了几种可能的方案:(1)使用 Alfred,自己写点 Apple Script 来定位任务、进行计时;(2)使用 zsh,通过自动补全功能来迅速定位任务并进行计时。
如果对我用 org-agenda 进行时间记录的方法有兴趣,可以看看我准备的示例配置:https://github.com/Linusp/org-agenda-example
需要强调的是,对我来说,自我记录和自我管理,是两个完全不同的事情,我绝对不会想要把这两个事情混到一起去 —— 记录强调时序、强调过去、强调忠于事实,而管理则尝试控制未来的走向,这对我来说太难了,而且我也不认为人能要求事情的未来按照自己的要求或期望进行。我们没有办法减少未来的不确定性,只能去应对它们,但通过记录来减少对过去的记忆的模糊,是每一个人都能去做的。