一个GTD的替代系统

本文翻译自“GTD sucks for creative work. Here’s an alternative system. -by- Dave Lee”,他认为GTD在创意工作领域表现很糟糕,并在本文介绍一个替代的系统。

这篇文章在Hacker NewsReddit上很火,本文的评论中也有不少有意思的内容的说。


我的一个朋友问我使用什么系统来管理我的TODO清单(Todo List,待办事项清单):

你的TODO清单可能和我的一样,有上百万条那么多,而且还在持续增长中……你是否使用某个或某些系统来管理TODO清单呢?我以前曾不严格地使用GTD,目前则在使用文本文件来管理我的TODO清单。这个文本文件十分巨大……我喜欢它的简易的特性,复制、粘贴和再组织的效率……但排序是个痛苦的过程。我刚刚下载了Mac版Things,看看它能否减轻一些痛苦。

因此,我在这里写下我对GTD的看法。从2002年开始以及之后的4年里,我是GTD的死忠。我认为自己在使用GTD方面达到了“黑带”的水准,同时我也影响周围的人。然而,一段时间之后,GTD系统变成了累赘。有太多的项目(Project)和太多的下一步行动(Next Action)包含其中,已经信息过载了。我的大脑无法处理50-100个正在进行中的项目和下一步行动。

我认为GTD对简单的工作是有效果的,比如销售。销售时,你要打一堆的电话和发送一堆的电子邮件,因此你需要一个系统来跟踪所有的条目。然而,在创意工作领域,更多的是不断变动的内容而不是有100个要跟踪的条目。你需要专注,来推动项目的开发与创作。

虽然我仍然喜欢GTD的一些原则(下一步行动,设定项目的目标,清空大脑等等),我认为这个系统会对创意革新者产生不好的影响。当革新者需要空间去尝试和发现的时候,他们往往会被GTD系统中洪水般的任务吓到的说。

大部分任务/待办事项管理软件是基于项目和任务这两个概念的。这真是太失败了。成打的项目和任务最终将填满你的任务管理软件。每天当你察看接下来几周项目和任务时,得到的只有沮丧,它就像一条永无止境的充满压力的河流。

对于创意工作者来说,最重要的不是无穷尽的待办任务,而是发现并专注在重要的事情上,深入其中。创意工作者需要深入到功能或问题中去,越深入越能发挥出更多的创造力,从而给最终用户创造更多的价值。

因此,我的任务管理系统是什么样的呢?

  1. 我喜欢将我的一周划分为每日关注点,并且每周都是这样。我选择我的业务中最重要的5个领域,集中精力在它们上面,每天一个领域。
  2. 我选择3条本周最想要达成的目标,将它们作为本周的目标和愿景。
  3. 在开始一天的工作前,我选择3条今天最想要达成的目标。所有这3条目标与今天的关注点契合。
  4. 我使用番茄工作法,每25分钟专注地工作。我使用Mac软件“ My Little Pomodoro”进行管理并有规律地休息。
  5. 我将每日关注点视作独立的项目,因此,我只需要跟踪5个项目。
  6. 5个项目中的每个项目,我只保留需要关注的最少的信息。我不会让大量的任务和笔记充斥在项目中。我记录一些我需要处理的工作和相关的关键信息。我也会保持对关键指标的跟踪,目前在使用Google Spreadsheets和Asana(虽然设置软件的过程让我很不爽,不过至少让它们能够工作)。
  7. 对于当前的5个项目不重要的信息,我会将它们移动到团队Wiki中。Wiki作为一个快速参考空间供我放置哪些不那么重要的笔记和想法。它们是我不想遗忘的事物,也许将来某一天我会需要用到它们。我将它们与我的项目分离开来保证项目空间的简洁。
  8. 其他的不需要随手获取的信息将存储在Dropbox或邮件归档中。这将作为我的远程参考,在我将来需要的时候去搜索查找。
  9. 每天我优先处理每日关注点所处的领域和3条今日目标。在一天结束的时候,我会处理其他次重要的内容,如电子邮件。
  10. 保持工作台、系统桌面和电子邮件收件箱的干净整洁,以此来让混乱熵保持在较低的水平,并使得前面的1-9更好的运作。

就个人而言,我无法忍受使用Mac版Things(或类似的任务管理软件)来组织管理工作的想法。通常,你会创建一些项目,然后给它们添加一些任务,在你意识到你有那么多的项目和任务之前,它已经被淹没的。整个事情变成了一种干扰和阻碍。它使得工作变得很无趣。

每日关注点和最少的任务让我保持专注且超高的效率。它让创意工作变得有趣。

试一下吧^.^

重新学习面向对象编程

使用PHP已经一年多了,这个过程中开发的项目大部分都是过程式开发。最近的一些事让我意识到我已经不熟悉面向对象编程了。

  • 阅读一些文章,比如“Skinny Controller; Fat Model”、“Tell, Don’t Ask”等,发现自己的程序严重违反这些原则;
  • 这两天在学习使用PHP的命名空间的特性,虽然知道命名空间的作用,但是使用起来感觉及其不习惯;
  • 尝试使用面向对象的方法设计我最近在做的小程序,感觉很困难的说,不知道从何下手;
  • ……

以上的种种迹象表明我已经忘记了如何进行面向对象编程了,看来是时候重新学习面向对象编程的说。

第二次iOS开发分享

今天是同事的第二次iOS开发分享。

起初迟疑要不要过去呢,因为去年的第一讲我几乎什么都没有听懂。但发现其他同事没什么响应,感觉这样太对不起分享的同事了,就权当过去充充人数吧。不过听完之后,还是很有收获的,这次白参与的说。

首先,回顾了下第一讲介绍的Object-C的语法,然后介绍了下Xcode,并开发了个入门程序——输入姓名,点击按钮,显示“Hello,XXX!”,其间穿插着介绍了iOS应用的基本模型。

这次做的比较近听的比较认真,感觉如下:

  • Object-C的语法挺怪异的
  • Object-C没有命名空间
  • Object-C需要手动去控制内存分配
  • Xcode的语法提示太牛X了
  • iOS App开发入门不是很难
  • 感觉开发好的App的难点主要应该在交互设计上(自我感觉)
  • 以后iOS开发的分享,我要积极地参加的说(虽然现阶段我不会去学)

PS:下半年或者2013年有时间可以学习一下iOS开发的说。

《正则表达式30分钟入门教程》学习笔记

最近业余时间在写的小说抓取程序需要进行内容解析,比如解析小说的章节信息、提取小说的正文内容、移除页面的水印,这个过程中要用到正则表达式。虽然用Google找到可以使用的正则表达式,但想要更加深入的学习一下,于是上周末找来网上推荐的《正则表达式30分钟入门教程》,以下是我的学习笔记。


正则表达式是什么?

正则表达式是描述一串文本特征的工具。

什么是文本的特征?

比如,中国电话号码的特征为:以0开头的3或4位数字(区号),然后是连字符(-),最后是7或8为数字(本地号码)。3位区号8位本地号码或者4位区号7位本地号码组成的电话号码的正则表达式为0\d{2}-\d{8}|0\d{3}-\d{7},使用该正则表达式你就可以查找一个文件中所有符合规则的电话号码了。

元字符(metacharacter)

元字符是正则表达式规定的具有特殊含义的字符。比如:\s表示任意的空白符(包括空格、制表符Tab、换行符、中文全角空格等);\d表示0-9之间的一位数字。

字符转义

字符转义就是让元字符表示它们自身,如:\s 就代表\s,而不是空白符;. 就代表点(.),而不是除换行符以外的任意字符。使用反斜线(\)进行转义,代表字符\s的正则表达式为\\s;代表点的正则表达式为\.

未完待续…

要不要玩滑板呢?

之前,忘记是什么时候了,曾考虑过这个问题。在了解了些滑板的基本信息后,对自己说先放一放,免得又因为自己一时脑热,买回来后不玩了。今天又想到了这个问题,找了张A4纸,画了个思维导图,得到了如下的结果:

方便(vs. 轮滑与11号)

  • 长条形,不占用空间,比轮滑便携
  • 不需要系鞋带之类的,踩着滑,落地走呗
  • 比11号速度快

  • 极限运动,演化自冲浪运动
  • 踩着滑板去上班,比较帅气(是不是也有点2呢?)

学习

  • 场地,小区附近的公路比较空闲
  • 时间,夏天到了,下班后还要很久才天黑,天黑了也有路灯的说
  • 基础与技巧,可以逛社区、看视频来学习,购买滑板时也会有教程赠送

其他

  • 消费不多,基本入门板,300元左右可以搞定
  • 锻炼身体,有事做,自然不会老宅在家里

障碍

  • 会不会在意路人的眼光呢?(与路面摩擦的声音还蛮大的)
  • 我能够坚持多久?

结论是:可以玩滑板,接下来多了解些滑板的信息后再购买滑板。

假如今天是你的最后一天,你会做些什么?

知乎上看到这么一句话“如果明天是世界末日,还会选择创业,这是一种人生态度。”,感觉很虚。

突然联想一句话“假如今天是你的最后一天,你会做些什么?”(我一直误以为是乔布斯2005年在斯坦福毕业典礼上演讲提及的。)

我多次问过自己,好像每次的答案都是“享受最后的生活”,细想一下,我会做的事情有:

  • 给父母打个电话,平静的告诉他们这件事情
  • 通知殡仪馆或者能够收尸的人
  • 出去逛逛,用心看看这个世界
  • 安静地睡上一觉

经过考证,乔布斯2005年在斯坦福毕业典礼上演讲的原话如下:

If today were the last day of my life,would I want to do what I am about to do today?
如果今天是我生命中的最后一天,我会不会完成今天要做的事情呢?

其表达的意思是做自己真正想做的事情。对于这个问题,我应该还是一样的回答吧,除非这件事情对他人会有影响,而且必须完成。

另外一个原因是我还没有不甚明了自己到底想要什么,还在摸索中,“So keep looking. Don’t settle.”。

扩展一下吧

乔布斯的演讲听过好多遍,当年还尝试过背诵/模仿,目前只有零星的记忆——“Connecting the dots.”和“Stay hungry, stay foolish!”。

我最喜欢的是“Connecting the dots.”这句,我常用它来解释自己做的一些事情,来激励自己前行。

“Stay hungry, stay foolish!”我一直没有很好地理解,倒是看到一些比较新颖的解释

讲稿中文 @ 福布斯中文 | 演讲视频 @ 优酷

刚刚快速回顾了一下演讲的内容,这次又有新的发现。

PS:这次我要把它背下来。

不用密码进行SSH连接

开发测试或维护VPS时,我们会使用SSH远程连接服务器,登陆后进行相关的操作。

ssh hutushen222@192.168.200.137

为了保证账户的安全,一般我们会设置一个复杂的密码,这样导致每次连接时输入密码成为很不爽的事情,即使使用了KeePass之类的工具来管理密码。

其实有一种一劳永逸的方法来解决每次输入密码的痛苦——使用密钥进行安全验证,过程如下:

$ ssh-keygen -t rsa  # 选择加密方式 rsa/dsa
Enter file in whitch to save the key (~/.ssh/id_rsa): vps_rsa # 输入保存密钥的文件名
Enter passphrase (empty for no passphrase): # 设置密钥密码,可以不设置
Enter same passphrase again: # 确认密钥密码
Your identification has been saved in vps_rsa. # 私钥
Your public key has been saved in vps_rsa.pub. # 公钥
The key fingerprint is:
10:e1:02:57:15:7a:b7:37:b3:f3:a7:de:78:6f:ec:ff hutushen222@Sailing
...
$ ssh-copy-id -i ~/.ssh/vps_rsa.pub hutushen222@192.168.200.137 # 将公钥添加到远程服务器的authorized_keys文件中
经过上述的步骤后,再使用SSH远程连接时就可以不输入密码或者输入设置的简单的密钥密码完成登陆。
注:如果机器只有自己使用可以完全不用密码;如果其他人也可以使用该机器,建议设置简单的密钥密码。
注2:要保证服务器端~/.ssh(755|700)目录和authorized_keys(600)文件都只有当前用户拥有有写权限,否则会验证无效。

参考链接