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. Func<>用法

    Func是一个委托,委托里面可以存方法,Func<string,string>或Func<string,string,int,string>等 前几个是输入参数,最后一个是返回 ...

  2. HTML Flex 布局

    感谢原文作者:在路上de 小白 原文链接:https://www.cnblogs.com/likun123/p/9518466.html#commentform 目录 一.Flex 布局是什么? 二. ...

  3. C3P0数据库连接池数据库插入中文乱码问题解决

    问题描述 近期修改一个学生信息管理的JavaWeb项目,其数据库连接池使用了C3P0.在实际测试时,发现在学生信息模块添加中文学生信息会在数据库(MySQL)出现中文乱码问题. 如图所示: 问题分析 ...

  4. transition过渡2D、3D效果

    过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果. 帧动画:通过一帧 ...

  5. linux+nginx+tomcat负载均衡,实现session同步

    第一部分:nginx反向代理tomcat 一.软件及环境 软件 系统 角色 用途 安装的软件 ip地址 Centos6.5x86_64 nginx 反向代理用户请求 nginx 172.16.249. ...

  6. MinIO简介和java Api的使用

    本文出自jvm123.com-java技术分享站:http://jvm123.com/2020/02/minio-jian-jie-java-api.html MinIO是一个对象存储服务,非常轻量, ...

  7. 01 MySQL数据库安装(Windows+Mac)

    目录 MySQL数据库安装 Windows 1.主要版本简介 2.软件下载 3.文件目录简介 4.使用 4.1配置环境变量 4.2登录 制作MySQL服务端开机自启动 运行MySQL 4.3 密码修改 ...

  8. CPU优化上下文切换之线程上下文切换案例分析

    对于线程上下文切换,如果同进程内就是只是线程上下文切换,如果非同进程内则是进程上下文切换.下面进行线程上下文切换场景模拟. 一.环境准备~模拟工具sysbench. 1)安装git yum -y in ...

  9. 聊聊几个阿里 P8、P9 程序员的故事

    大家好,我是对白. 阿里 P8 程序员年薪百万已经是公开的秘密了,有人关心他们年薪百万,而我更加关注阿里这些 P8.P9 程序员的成长故事,在聊这些大牛的故事之前,跟大家稍微简单聊下阿里技术人等级制度 ...

  10. kafka3.x原理详解看这篇就够了

    一.概述 (一).kafka的定义 1.定义 1)kafka传统的定义:kafka是一个分布式的基于发布/订阅模式的消息队列,主要用于大数据实时处理领域 2)kafka最新的定义:kafka是一个开源 ...