解决 OmniFocus 中 Applescrpit 脚本输出文件中文乱码问题

在学习OmniFocus 入门与进阶 - 少数派教程中,了解到了一个 Applescript 脚本 Weekly project report generator(周报生成器)。这个脚本可以将 OmniFocus 中前七天活跃的项目以及完成的动作导出成为一个.md文件。这样子,可以大大减轻周回顾时回忆本周完成任务的压力,也可以将生成的文本粘贴到周报中使用。

但是当我第一次运行这个脚本时,生成的文件中所有的中文字符都变成了问号。

错误

由于,之前没有接触过中文显示为问号的问题。所以,与少数派教程的作者联系,他很快给我回复了一份邮件,并给出两个建议。

回信

按照邮件中的建议,我进行了下面三个尝试。

  1. Sublime Text中安装转化编码方式的插件ConvertToUTF8,最终发现无法识别出生成文件的默认编码。
  2. 使用系统自带的文本编辑打开时,还是显示编码错误。
  3. 利用homebrew安装了enca软件,使用enca -L zh_CN file无法检测出文件的编码方式。

无奈这些方式都没有找出问题的所在,只好打开脚本编辑器,查看这个脚本是怎么写的。

如下图所示,该脚本将需要输出的字符串指定为Unicode text 格式,用 write 将这个字符串写进文本中。

根据之前的编程经验,输出文本一般都能指定编码方式。所以又用 Dash 来查看 AppleScript 中 Write 的相关语法。

最终,找到 as 可以用来指定编码方式,成功解决乱码问题。

IMG_0233


GTD 实践 1 个月心得

不知不觉混到大四,突然感觉有一堆事情把我压的喘不过气来。所以就想学习一种任务管理方法。GTD 正好在这个时候重新进入我的视线中。根据 wikipedia 上的介绍:GTD,全称 Getting Things Done ,中文一般翻译为搞定,是一种行为管理的方法,也是戴维·艾伦写的一本书的书名。GTD 的方法根据一个理念,大脑是用来思考的,好比计算机中的 CPU。所以,我们需要把要做的事情从大脑中移除,放在一个可靠的外部系统中,这就是 GTD 系统。

根据网上的教程,学习 GTD 第一步是阅读戴维·艾伦的书《搞定I:无压力工作的艺术》(读书笔记链接)。这本书,其实我在大一就借来看过,但是由于翻译的实在是太差了,所以没有看完就还回去了。所以这一次重新学习时,我选择从阅读《小强升职记》(读书笔记链接)开始,这一本书通过讲述一个职场新人小强的虚拟故事,介绍了很多任务管理、项目管理、个人心智成长的方法。最后,还阅读前人实践的心得。貌似 GTD 这几年不是很热门,很多文章都很旧了,没有太多的实际意义。我只推荐两个系列文章,第一个是申龙斌的博客园博客搞定GTD - 随笔分类 ,他践行 GTD 五年多的时间,写下很多心得体会,是很不错的参考资料,目前他选择在微信公众号(申龙斌的程序人生)中更新为主。最关键的一点,他也是一名007er。第二个是滴答清单与GTD时间管理知乎专栏,从名字中可以看出这个系列的特点。不要因为你不用滴答清单而错过里面的内容,毕竟 gtd 方法是通用的。

开始打造 gtd 系统之前,还需要挑选一些工具。《搞定》书中是介绍的是利用纸笔和篮子来完成gtd,这是一个不错的方法。但是,结合实际,我没有太多的实体材料,所以选择使用软件。前几年,我也使用过很多任务管理软件,有 2Do、奇妙清单和滴答清单等。考虑到目前使用的组合是 iPhone + MacBook Pro,所以我选择了 OmniFocus 。第一次打开这个软件简直让我头皮发麻,功能很强大,但是需要深度学习才能运用自如。我是跟着这一个教程OmniFocus 入门与进阶 - 少数派,才掌握初步的使用方法。OmniFocus 吸引我的是任务过滤功能,也就是透视。简单来说,通过定义一些规则,来展现你的任务。

介绍 gtd 时,我将结合下面这张图,来讲讲我是怎么做的。一般来说,gtd包括 5 个步骤:收集、厘清、组织、回顾和执行。

(一) 收集
对应图中开始的一步,将材料放入系统的工作篮(inbox)。这里的材料是一个很广泛的概念,可以是你要做的事、想读的一本书或者是要学的技能等等。根据最开始的介绍,成为一个可靠的系统,需要将你所有的材料都放进这个inbox。所以,你在打造系统前,需要找个空闲的时间(书中说是2天)和过去做一个告别,好好的把任务整理出来。

在第一次收集前,我利用幕布把自己的材料来源整理了一下,主要分布在手机和电脑的一些软件中。根据这张大纲的顺序,最后整理完成时大概有300多件。完成这一次整理后,再有要做的任务记录到inbox中,自己定时清空就完成这一步了。

GTD整理思考

(二)厘清

在完成上一步收集后,我们需要开始第一次过滤这些事情。从inbox的顶端开始一件件评估我们收集的事情,对于每一件事情,考虑这件事件需要现阶段去做吗?对于不需要去做的事情,我们需要将他们分成三类:垃圾(没有任何价值,直接抛弃)、将来/也许(以后有机会做,放在一个专门的列表中)、参考资料(需要时再来参考)。

(三)组织

这是GTD中最复杂的一步。我们把需要现阶段去做的事情继续分类:第一类是行动,只需要一步完成的任务,第二类是项目,需要执行多个步骤才能完成的任务。首先是项目,书中提供了一种分析项目的方法:自然项目分析法,通过这个方法可以有效的把项目搞明白。当然,对于我们这样的新手,虽然有了这个强力的武器,但还是不容易一开始就将项目拆解的明明白白。这时候,我们只需要考虑一个问题:下一步行动是什么?比如说,如果你看了我的文章,也想要学习 GTD ,这时候就有了一个项目:学习 GTD。由于你更本不知道这是什么东西,所以无法分析项目,所以只能考虑下一步行动:利用搜索引擎来搜索 GTD 相关的介绍。完成这个行动之后,下一步行动就可能变成去买几本书了。通过这种每次思考一步的方法,来完成大的项目。说完项目,接下来就是动作。这里又诞生了一个很厉害的方法:两分钟原则。如果在组织的时候,这个动作可以在两分钟之内完成,那就直接去完成它,不用下面的步骤,特别声明这里的两分钟指一种很短的时间。对于其他动作,你还要考虑是否可以由其他人完成,如果是直接去委托他人完成。对于有时间限制的事情,比如明天下午开一个会之类的,就要写进日程表来提醒了。如果都不是,那么就放进你的文件夹中,等待后续执行。

(四)回顾

可能有些奇诡,事情还没有执行,怎么就开始回顾了。是的,书中就是这么安排的。这里的回顾是指,看看你做了什么,有什么需要反思的。主要用两种方式,第一种:完成项目之后回顾;第二种:定时回顾,可以是日回顾、周回顾、月回顾以及年回顾。目前,我主要做的是日回顾和周回顾,日回顾主要是简单看一下做了什么,周回顾有专门的检查清单,以及会写回顾记录。

(五)执行

这里就要认识到任务管理的本质是管理任务,而不是帮你完成任务。所以,还是需要你去执行。GTD 提供的只是一种简单的挑选方法。当你没有空闲时,考虑当前的情景(在什么户外还是家中,有手机还是电脑),有多少时间可以用,当前精力(精力旺盛还是昏昏欲睡)以及有没有重要的事情需要做。综合这些情况,找出需要做的事情,然后去做吧。

最后,根据一些人的说法。GTD 执行一年之后,才能算是懂了,上面就是我这个执行一个月的菜鸟的见解。由于时间有限,GTD 的六个层次、三个原则、自然分析法都没有写到。更关键的是,也没有结合 OmniFocus 来写我是具体怎么执行的。总结一下,这一个多月来,我第一次认识到要做的事情居然有这么多,真是时不我待。用原来的方法确实能做很多事情,但是接触 GTD 之后,我开始关注目标制定以及回顾方面的实践。

IMG_0233