百宝箱:数字人生

创建于更新于文集:百宝箱

我是一个非常喜欢折腾的人,经常去尝试一些新鲜的工具、技术。在信息时代,互联网使得信息的获取变得极为便利,随时可以获取我想要的大量资料。但是,人的时间是有限的,大脑容量也是有限的。面对繁杂的信息,如何将其转化为自己的知识,甚而转化为实际产出,如一篇博客,或是一个开源软件?

在一些科幻作品中,存在将人的大脑数据转移到计算机中,抛弃肉体的技术。虽然当下没有这种技术,但仍可以借助信息媒介,管理与保存各类信息,萨特认为“人就是他行为的总和”,来试试用电信号来存储人生的一部分吧~

数字化人生,当然离不开软件的辅助,我设想的工具大致要满足以下几点:

  • 最好是开源的
  • 随时可用,多终端同步
  • 知识获取 -> 知识提炼 -> 知识输出
  • 时间管理
  • 方便地Review
  • 文本使用通用的格式如Markdown(方便迁移)

通过一段时间的实践,我找到了一些合适的工具来处理我的需求。

笔记记录

相比博客,笔记要碎片化一些,并且其中有一部分属于隐私无法公开。对于公开的部分,我选择了TiddlyWiki来制作一个公开的个人wiki站点。

TiddlyWiki诞生于2004年,它最与众不同的一点是,它仅仅是一个HTML文件。这意味着你可以随意定制,轻松备份,快速部署。

这个笔记应用非常轻量,功能也比较简单,不过社区插件还是很丰富的,官方有句话叫“Hackability as a Human Right",用户自己的内容应该可以由用户自由处理,而不是被牢牢锁在某个应用的笼子里,这也是我尽量避免使用商业软件的原因。

个人笔记记载的内容可以涉及很多领域,这其中可能会有些与个人生活之类相关的往往是不适宜公开的,此外,随手的记录一般还是需要经过一些润色处理,如果一开始就要求记录语句通顺逻辑清晰,那么是不利于养成随手记录的习惯的,所以我还使用了另一款笔记应用来记录私人的笔记内容,那就是Logseq

相比TiddlyWiki,Logseq原生具有双向链接的特性,例如我最近有一个滑动窗口相关的笔记,我可以在这篇笔记内写上[[滑动窗口算法]],当前笔记页面就会链接到”滑动窗口算法“这个页面上,并且在”滑动窗口算法”这个页面会自动获得到当前笔记的链接。

example

所有的关联都是双向的,这样的好处是,我不用手动去建立树形关联,只要所有与滑动窗口算法相关的页面都有指向它的链接,就相当于构建了一棵滑动窗口算法相关的知识树。Logseq会帮你构建一个知识图谱,显示出各个笔记页面之间的关联。

关系图谱

与TiddlyWiki纯文本的特性类似,Logseq所有的笔记都是Markdown文件,笔记不会上传到云端,所有的操作都是针对本地的文件(包括它的Web版),不过由于所有笔记都是文件的特性,不论是迁移、备份都非常方便,官方也提供使用Github同步的方式,但是为了避免污染Github提交记录,我选择使用坚果云在不同设备之间同步笔记。

pipeline

在Logseq上积攒的内容,我会从中挑选一些分享到个人wiki上,如果在一个领域积攒的内容达到一定程度,那么就可以考虑写一篇博客来总结了。一个完整的从知识的获取到内化再到输出的路线形成了。

然而,在获取信息的过程中,一般会碰到不同领域的资源,从各种渠道发现的一篇不错的关于devops的文章、高效命令行工具、新的美观的字体、美食的制作视频等等,“稍后再看”越积越多,最后变成了“再也不看”。如何管理这些繁杂的内容?

知识管理

OKR与PARA

OKR是Objective & Key Results的缩写,意思是目标与关键结果。

okr

OKR的关键点,是将目标拆解为数个关键性的事项,并且在执行过程中不断地review。

PARA则是Projects、Areas、Resources、Archives四个单词的缩写,它们分别代表:

  • 项目:当前聚焦的工作,有明确的目标与时间范围,例如准备月底做一次演讲,一个月后体重减少5斤
  • 领域:需要持续付出时间的活动领域,如健康、收入、专业技能,项目都属于某个领域
  • 资源:知识储备,一闪而过的灵感、想法等,要与当前聚焦的领域-项目相关
  • 归档:当前非聚焦领域的想法、资源

实践

以上是一些理论,在具体的实践中,我参考了P.A.R.A. 的 Notion 实践OKR + GTD + Note => Logseq这两篇文章,将这两个方法结合起来,OKR的Objects与PARA的Areas是类似的,而KR则类似Projects。参考关于OKR的文章,我暂时以年为尺度,划定年度目标,建立一个2021OKR页面,在长期关注的领域,例如社区影响力,添加上一个Key Result或者说Project:平均每月产出一篇博客(12篇博客,截至日期为2021年末)。使用一个有规律的名字,如2021-OKR-O4-KR-1为其打上标记(这样方便程序化处理):

OKR-example

每个KR后面都有一个标签,标签指向另一个页面,这个页面用来汇总review。先看一下如何拆解项目,Logseq中通过/键可以使用指令,输入/TODO回车就可以创建一个TODO,可以更改状态为DOING或DONE,每个TODO块会记录从DOING到DONE的时间。但是并不需要每次都在review页面新建TODO,Logseq每天会自动新建一个以当前日期命名的页面,只要每日的TODO关联上相应的review页,利用双向链接的特性,在review页可以浏览到所有关联的TODO。

此外,Logseq还基于Datalog查询语言实现了强大的查询功能,例如统计当前KR相关的打卡次数:

#+BEGIN_QUERY
{:title "打卡(次数)"
 :query [:find (count ?b)
         :in $ ?current-page
         :where
         [?p :page/name ?current-page]
         [?b :block/marker ?marker]
         [?b :block/ref-pages ?p]
         [(= "DONE" ?marker)]]
 :inputs [:current-page]}
#+END_QUERY

这类查询代码在Logseq里可以右键设置为template,使用/Template命令就可以快速粘贴模板,不用重复输入。

现在总结一下我的工作流:

practice

确定一些当前需要关注的领域的项目,当我在Github、v2ex、twitter等平台发现感兴趣的技术、觉得有价值文章、想法,可以随手记录下来,只有与当前项目相关的内容属于Resources,其余内容放入Archives归档,不时review项目,根据完成情况调整项目数量,如果项目太多,时间不够充裕,那么就降低项目优先级,甚至取消项目,暂时放入归档;反过来如果时间精力充足,那么归档中的内容也可以调整为激活的项目。回顾,整理,是这个工作流程的核心。

时间管理

前面提到的文章里讲到了如何利用查询语句和自定义CSS实现GTD四象限面板,其实除了普通的待办外,Logseq还支持Schedule与Deadline:

示例

如上图示例,可以用这两种形式来表示需要每日重复执行的内容,而一些临时的或者与当前关注的项目无关的内容可以使用普通TODO,每天打开Logseq后,我会先计划今天需要完成的事项,优先完成与项目关联的事项,日程与deadline可以提醒我事项的紧急程度。

总结

notes-graph

上图是我使用Logseq两周后形成的知识图谱,好像宇宙中的星系一样,已经有几个“恒星”崭露头角。

现在有很多关于知识管理、人生管理的概念,最近频繁听到一个词:第二大脑。确实,人的大脑没有像异步运行时一样的任务调度器,人脑是不适合自上而下的思维的,当我们想要探索一个领域的知识,沿着一个线索可以发现其无数的分支,最后很可能会陷入信息的海洋,越来越迷失最初的方向。所以,我们需要工具来辅助。

通过一段时间的实践,我想,要想建立“第二大脑”,最重要的还是“第一大脑”的帮助。将随手网罗的碎片知识丢在储藏室里就此不管是没有用的,不停的回顾,整理,检索,建立关联,对真理的探究,离不开自己的思考。

Copyright © 2020-2021 公子政的宅日常