2021-05-08: 1.0版本初步完成,待完善已完成任务回顾

2021-05-10: 1.1版本完成,修改不重要不紧急为将来清单,且新增每周回顾

前言

最近在阅读《小强升职记》,感觉里面讲到的时间管理工具和方法十分有用,自己之前虽然也了解一些工具,例如四象限原则、两分钟方法等,但看完这本书之后感觉之前的理解还是太肤浅了。是时候升级一下自己的时间管理系统了。

在此之前我的工具大致包括: 稍后读软件、GTD工具(滴答清单)、写作工具(一般是VSCode+Hexo)。最近半年沉迷于使用双链笔记软件,目前在用的是 Logseq,后面专门展开介绍一下。目前在尝试将GTD工具、笔记都整合到 Logseq 里面,主要是受了这篇文章的启发 OKR + GTD + Note => Logseq,下面就详细介绍一下我的实践过程。

前置知识

Datalog

首先,需要简单学习一下Datalog语法。Logseq是基于Clojure开发的,它的底层可以简单地理解为是类似于数据库的结构,因此可以天然的支持各种查询,这也是我们能够利用它来实现 GTD 管理的前提。因此这里如果需要掌握如何使用 Logseq 来进行查询的话,最好先学习一下如何使用 Datalog。可以参考 官方的查询教程 以及这篇 Learn Datalog Today,粗略扫一遍,能够看懂大概意思就可以了。

CSS

其次,Logseq本身是列表大纲形式,无法直接支持四象限这种样式,因此需要一些 CSS功底,这里我是直接参考了 OKR + GTD + Note => Logseq 里面的样式,原始版本在 [css+template] eisenhower matrix,可以简单看下。

使用步骤

块属性

《小强升职记》里面提到日常待办事项是分为项目、任务、行动三种的,只有行动才是可以立马去执行的,项目和任务都需要进行分解,拆成行动。

结合Logseq,我目前考虑使用属性来解决,也可以考虑使用标签,不过我认为会对内容有一定的污染,各有利弊吧。

针对一个新的行动或者任务,添加属性type字段,然后根据具体的类型添加行动、任务、项目字段。

样例:

四象限查询条件

注意:所有的待办都必须要有明确的优先级和截止日期,这么做有几个原因:

1. 要求自己对每个待办都设置明确的时间点,避免添加到收集箱中一直不处理

2. 添加了优先级之后才好进行四象限统计

3. 目前还没有找到Logseq的query条件中如何同时查找DDL在限定时间内以及无DDL限制的任务,只能查找其中一种case,这个后续解决

实际使用过程中,可以把一下的查询条件汇总到一个模板中,

## #.v-eisenhower-matrix (用于CSS选择器,最好不要改)
:PROPERTIES:
:template: 四象限
:END:
#### [[重要且紧急]]
#####
#+BEGIN_QUERY
...
#+END_QUERY
#### [[重要不紧急]]
#### [[紧急不重要]]
#### [[不重要不紧急]]

具体查询语句如下:可以根据自己的实际使用需求将属性限制移除或者修改时间限制,代码中均已经添加注释。

2021-05-10 补充: 将设置为Later的事项移动到第四象限,这样就可以定期回顾;同时新增一个每周回顾的query语句,由于目前Logseq还不支持查询当前时间戳,因此用了个笨办法,每次查询的时候手动输入当前时间戳ms进行查询。

[[重要且紧急]] 避免太多进入该象限^

#+BEGIN_QUERY
{:query [:find (pull ?b [*])
:in $ ?end
:where
[?b :block/marker ?marker]
[?b :block/priority "A"] ;; 优先级在A的才认为是重要
[?b :block/properties ?p]
[(get ?p "type") ?t]
[(contains? #{"任务" "行动" "项目"} ?t)] ;; 属性中type字段包含这三种
[(contains? #{"TODO" "DOING" "NOW"} ?marker)] ;; 不包含已完成任务,不包含LATER
(or
[?b :block/scheduled ?d]
[?b :block/deadline ?d])
[(<= ?d ?end)]
]
:inputs [:5d-after] ;; 时间跨度,5天内的算作紧急
}
#+END_QUERY

[[重要不紧急]] 优先完成此象限^

#+BEGIN_QUERY
{ :query [:find (pull ?b [*])
:in $ ?end
:where
[?b :block/marker ?marker]
[?b :block/priority "A"] ;; 优先级在A的才认为是重要
[?b :block/properties ?p]
[(get ?p "type") ?t]
[(contains? #{"任务" "行动" "项目"} ?t)] ;; 属性中type字段包含这三种
[(contains? #{"TODO" "DOING" "NOW"} ?marker)] ;; 不包含已完成任务,不包含LATER
(or
[?b :block/scheduled ?d]
[?b :block/deadline ?d])
[(> ?d ?end)] ;; DDL在5天以上
]
:inputs [:5d-after] ;; 时间跨度,5天内的算作紧急
}
#+END_QUERY

[[紧急不重要]] 尽量委派给其他人^

#+BEGIN_QUERY
{ :query [:find (pull ?b [*])
:in $ ?end
:where
[?b :block/marker ?marker]
[?b :block/properties ?p]
[?b :block/priority ?priority]
[(get ?p "type") ?t]
[(contains? #{"任务" "行动" "项目"} ?t)] ;; 属性中type字段包含这三种
[(contains? #{"TODO" "DOING" "NOW"} ?marker)] ;; 不包含已完成任务,不包含LATER
[(!= "A" ?priority)] ;; 优先级在A的才认为是重要
(or
[?b :block/scheduled ?d]
[?b :block/deadline ?d])
[(<= ?d ?end)]
]
:inputs [:5d-after] ;; 时间跨度,5天内的算作紧急
}
#+END_QUERY

[[待办清单]] 不紧急不重要,定期回顾确认^

#+BEGIN_QUERY
{ :query [:find (pull ?b [*])
:where
[?b :block/marker ?marker]
[(contains? #{"LATER"} ?marker)]
]
}
#+END_QUERY

[[本周已完成]] 近七天统计^

#+BEGIN_QUERY
{ :query [:find (pull ?b [*])
:where
[?b :block/marker ?marker]
[?b :block/properties ?p]
[(get ?p "done") ?finishedTime]
[(- 1620657776000 604800000) ?weekbefore] ;; 由于目前Logseq不支持直接获取当前时间戳,只能使用trick的方式,每次查询前手动输入当前时间戳ms值,算出一周前的时间戳
[(>= ?finishedTime ?weekbefore)] ;; 一周内完成的工作
[(= "DONE" ?marker)]
]
}
#+END_QUERY

CSS优化

这里直接照抄了 OKR + GTD + Note => Logseq, 不过它的CSS中内容较多,我单独提取了四象限相关的部分,放在 四象限CSS 中,查询模板也都放在这里,便于大家使用。

最终效果

目前我的每日笔记大概长这样:

1.1 版本已经解决

可以算是1.0 版本,目前存在的问题包括:

  1. 没有地方定期回顾那些没有设置DDL和优先级的任务
  2. 缺少查看已完成任务和行动的地方(做周报时候很有用)

Logseq是个很棒的工具,期待尽快稳定下来,后面长期使用,作为笔记+GTD一站式平台~

使用Logseq构建GTD系统的更多相关文章

  1. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(二)

    七. 构建临时系统 1. 通用编译指南 a. 确认是否正确设置了 LFS 环境变量 echo $LFS b. 假定你已经正确地设置了宿主系统的符号链接: 1)shell 使用的是 bash. 2)sh ...

  2. Spring Boot中使用 Spring Security 构建权限系统

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,为应用系统提供声明式的安全 ...

  3. 在TensorFlow中基于lstm构建分词系统笔记

    在TensorFlow中基于lstm构建分词系统笔记(一) https://www.jianshu.com/p/ccb805b9f014 前言 我打算基于lstm构建一个分词系统,通过这个例子来学习下 ...

  4. Linux From Scratch(从零开始构建Linux系统,简称LFS)(二)

    七. 构建临时系统 1. 通用编译指南 a. 确认是否正确设置了 LFS 环境变量 echo $LFS b. 假定你已经正确地设置了宿主系统需求和符号链接 c. 对于每个软件包: (1). 确保解压软 ...

  5. LFS7.10——构建LFS系统

    参考:LFS7.10——准备Host系统 LFS7.10——构造临时Linux系统 本文正式开始构建LFS系统,后面所有命令的执行都是在root用户下完成的. 这时开始构建LFS前准备工作 更改$LF ...

  6. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(一)

    一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...

  7. Raspberry Pi(树莓派)上从零开始构建Linux系统(简称PiLFS)(一)

    一. 准备工作 1. 装有Linux宿主系统的树莓派主板,可参考 Raspberry Pi(树莓派)上安装Raspbian(无路由器,无显示器) 2. 参考网址:Linux From Scratch ...

  8. 基于Spring、SpringMVC、MyBatis、Druid、Shrio构建web系统

    源码下载地址:https://github.com/shuaijunlan/Autumn-Framework 在线Demo:http://autumn.shuaijunlan.cn 项目介绍 Autu ...

  9. alfs学习笔记-自动化构建lfs系统

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客 ...

随机推荐

  1. WSL2设置局域网网访问

    标签: wsl2  局域网  docker  WSL2设置内网访问 1.先找到虚拟机的ip 2.设置端口转发(需要管理员权限运行powershell) 3.删除端口转发 4.配置入站规则. 1.先找到 ...

  2. 编译PHP扩展的方式

    编译的两种方式其实很简单,这里记录只是为了以后遇到这种情况时不加思索地运用上,而不是花费一些时间去回忆. C/C++程序编译有两种方式:动态编译.静态编译.PHP 是使用 C/C++程序开发的一门脚本 ...

  3. 控制器view生命周期

    控制器View的生命周期方法:只要是控制器的生命周期方法,都是以view开头. 控制器View加载完成时调用- (void)viewDidLoad { [super viewDidLoad];} 控制 ...

  4. HTML 代码复用

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果是制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面的数量上去了 ...

  5. undefined index: php中提示Undefined ...

    我们经常接收表单POST过来的数据时报Undefined index错误,如下:$act=$_POST['action'];用以上代码总是提示Notice: Undefined index: act ...

  6. 深度学习:多层感知机和异或问题(Pytorch实现)

    感知机模型 假设输入空间\(\mathcal{X}\subseteq \textbf{R}^n\),输出空间是\(\mathcal{Y}=\{-1,+1\}\).输入\(\textbf{x}\in \ ...

  7. Java数据库连接池--DBCP浅析.

    一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出.拓机.数据库连接是一种关键的有限的昂贵 ...

  8. NOIP2021T1报数——黄蓝紫黑的神奇梯度

    7A3T 点击查看代码 #include<iostream> #include<cstdio> #include<cmath> #include<algori ...

  9. Spring 初始化流程

    开始 在SpringIOC中,前面讲述了如何配置BeanDefinition和如何注册BeanDefinition,但是这些知识容器初始化的一部分,在AbstractApplicationContex ...

  10. 最新版的Dubbo Admin 3.0 本地启动方式

    项目下载 项目地址:https://github.com/apache/dubbo-admin 如下图,使用git地址直接构建或者下载zip包构建源码都可以,我用的是下载的zip包, 项目架构说明 d ...