时间管理GTD利器 – Doit.im

工作和生活中常常会有很多琐事,稍不留神就会忘记,为了解决这个问题,相信很多人都会用各种各样的方法去记录和管理这些事情,但是很多时候,由于采用的方法不是非常的有效,导致得不到很好的效果。

当我发现时间管理成为常常困扰自己的一个问题后,我尝试过各种方式:用Post-it记录事情贴在显示器上,用Outlook/Google Calendar管理日程,用Google Task管理任务,用Remember the milk提醒要做的事情……各种方法和工具各有利弊,最终,迷失在工具中了……

GTD是英文Getting Things Done的缩写,是由David Allen提出的一种行为管理的方法。这种方法和常见的一些时间管理的方法相比,最大的特点就是要让一个人把头脑中的想到的各种事情直接记录下来,并把它们遗忘掉,让大脑不要被太多的“需要完成”的事情所困扰,而是关注在正在完成的任务上,提高工作的效率。GTD的具体的方法论和原理,在David的《搞定1:无压工作的艺术》一书中有着详细介绍,这里就不再具体介绍了。按我的理解,GTD本身只是一种方法论,在实践中,每个人还是可以根据自己的实际情况,去慢慢形成适合自己的具体方法。

对于我来说,要成功的实施GTD,一个好的工具是必不可少的,虽然曾经迷失在工具中,但倒也是从中总结出自己对GTD工具的两个基本的需求:

  • 轻量级的任务记录:当添加一个新的任务时,必须足够轻量级,不然我会因为操作烦琐而放弃。
  • 跨平台的支持和同步:电脑和手机间必须具有良好的同步能力,我不可能时时背着电脑去记录或查看我的Task。

这两条看似基本的需求秒杀了上面我所有用过的工具,虽然网上也有流传各种的用Gmail或者EverNote之类的工具来实施GTD的方法,但是它们很多用起来都感觉不是很得心应手,并常常是操作成本太高。

偶然的机会让我了解到了Doit.im这个专门为实施GTD设计的任务管理平台,相比一般的任务管理工具,它具有这些特点:

  • 遵循GTD原则的设计
  • 支持各种平台并在它们之间同步:Web版,Android版,iPad/iPod/iPhone版,Windows版等。抱歉,官方没有BlackBerry和Palm的版本。
  • 免费
  • 有公开API,只要有需求就很适合折腾
  • 可以同步到Google Calendar。任务和日程其实是两种有关系但并不太一样的东西,所以同步到Google Calendar的功能曾经很让我困惑。后来才明白,当Doit.im专注于做“任务”的时候,这样可以把日程管理的需求无缝的转换到可以把它做的更好的Google Calendar中,扬长避短,很聪明。
Doit.im的Android版应用程序主界面(图片来自Doit.im博客)

Doit.im的Android版应用程序主界面(图片来自Doit.im博客)

试用了它的网页版和Andorid版后,非常满意,完全满足我对“轻量级”的需求:在手机上创建一个新任务只需要点一下屏幕,大部分情况下一行文字就可以定义清楚这个任务,不需要填一个复杂的表单。

有了“收集”的步骤,对于GTD方法中的“处理”、“计划”、“回顾”这些需要较多操作的步骤,虽然Doit.im的手机客户端也提供了不错的功能,但我还是更倾向于在电脑上网页版来完成。对于“行动”步骤,则大部分情况下也可以通过手机客户端去完成,通过手机上的桌面Widget,可以很方便的查看任务的清单并从中找到需要下一步执行的任务。

从9月初开始试用Doit.im到现在正好是3个月时间过去了,虽然我还只是使用doit.im所提供的强大的功能中的一部分,但我已经觉得GTD的方法和这个GTD工具有效的帮助我提高了对很多事情的执行力,“贵人多忘事”的问题也得到了较好的控制,所以强烈推荐对时间或任务管理有需求的朋友试用Doit.im。

当然,Doit.im的有些功能和客户端软件给人的体验还并不是很完美的,它们都还有很大的提升空间。曾经有幸与Doit.im的创始人聊过Doit.im未来的方向,感觉还是非常值得期待的,即便就是在我试用的这短短三个月时间中,Doit.im也发布了不少新的东西,跟随一个自己喜欢的产品一起成长,是一个不错的感觉 :)

calibre使用技巧与常见问题

本文最后更新:2012-02-27,使用calibre版本0.8.41。

最近因为开发盛大锦书Bambook的SNB格式的calibre插件,更多的使用了calibre和研究了它的实现,也在论坛上看很多对calibre使用上的问题。干脆在这里写上一贴,把常见问题(尤其是中文相关的问题)做一总结。本文会不定期更新。

  • 什么是calibre?

calibre是一个一站式的电子书籍管理软件,提供电子书籍管理、元信息整理、格式转换、阅读设备书籍同步、新闻下载等功能。可以近似把它类比为电子书界的iTunes。它使用Python开发,是一个跨平台的自由软件。

calibre不是一个电子书下载软件,它只能从网上下载书籍的信息,但不能下载书籍本身。calibre不是电子书制作工具,虽然它提供格式转换功能,且在转换过程中提供一些定制功能,但这些功能非常有限,并不能用于精细控制和从头制作电子书。

  • calibre的优缺点

优点是功能全,可定制化程度高,可以折腾。缺点是体积庞大、速度慢、BUG较多(不过修得很快)。

  • 中文TXT文件转换成别的格式后全部变为乱码

因为Windows上大部分中文TXT文件是用System Codepage编码的,而calibre默认用UTF-8编码解析。解决方法是:可以把文件转成UTF-8编码后再放入calibre转换格式;也可以在calibre的转换对话框(在主界面上选一个文件,点“转换书籍”,或按C键)中左边选择“外观”,然后在右侧的“输入字符编码”中填入“gbk”或“gb18030”,calibre就可以正常转换格式了。必要的时候也可以在也“首选项”->“常规选项“中的”外观“设置组中做全局的设置。

  • 中文文档转换后内容全部变成拼音

在calibre的转换对话框中左边选择“外观”,去掉“转换unidcode字符到ASCII”的选项。

  • 自动生成的封面图片中的中文字符变成问号

calibre自带并硬编码了一些字体文件,这些字体中不包含中文字符,渲染出来的图片就只能显示成问号了。解决方案是:打开首选项->优化调整->设置在生成默认封面时所使用的字体,分别修改generate_cover_foot_font和 generate_cover_title_font的值来改变封面标题和页脚的字体。比如:generate_cover_title_font=”c:\\windows\\fonts\\simhei.ttf”就可以改用黑体。修改后需要重启calibre才可以生效。如果电脑上没有 simhei.ttf这个字体,也可以换成任意路径下的任意字符文件。

对于0.7.25以前版本的用户:用中文字体替换掉英文字体:在calibre安装目录下找到resources\fonts \liberation目录,用中文字体(比如文泉驿微米黑)替换掉里面的LiberationMono-Regular.ttf和LiberationSerif-Bold.ttf即可(删除原来的字体文件,把中文字体文件放进去并改名成这两个名字)。

还有一个解决方案是直接安装Generate Cover插件,用它可以更精细的定制生成的封面样式。可以在首选项->插件->获取新的插件中直接在线安装。

  • “保存到磁盘”和“发送到设备”后中文文件名变为拼音

为了保证在各个平台各种文件系统下文件都可以正常的保存,calibre的作者采用了把非英语字符转为英语字符的方式来解决多语言文件名,中文就变成拼音了。对于“保存到磁盘”,可以去掉“首选项”->“保存图书到磁盘”->“将非英语字符转换为对应英语字符”的选项来强制calibre以原始字符保存文件名。不过这个功能有Bug,对于有些字符,保存后会乱码。对于“发送到设备”,目前没有解决方案。不过总的来说,只有极少数阅读器设备(如iRiver Story)的书架是用文件名而不是用图书元信息来显示的,所以对大部分阅读器而言即使用拼音文件名也不会带来太多的不便。

  • 什么叫“排序作者”?

老外的名字常常是名在前,姓在后,而称呼他们的时候又常常要用姓。比如Bill Gates,我们通常称呼他为Gates,这样如果直接用Bill Gates来排序所有的作者,就会不太好找。为了解决这个问题,常常就把“作者”字段设为“Bill Gates”,把“排序作者”字段设为“Gates, Bill”,这样就又好看又好找了。对于中文书籍的作者字段来说,其实是基本不存在这个问题的,直接把两个字段设成相同的就可以了。所以“排序作者”的实际含义是“用于排序的作者名字表示方式”,只不过这个词实在不知道有什么好的翻译方式,就只好用了这个生硬而难以理解的直译。

同理,还有“排序标题”也是类似的意思,就是“用来排序的标题”。

  • 元数据字段太少,可以自定义增加吗?

在“首选项”中的“增加栏目“中添加自定义字段。添加后在书籍列表中就会出现相应的列,在编辑元数据对话框中会多出”自定义元数据“的页面。

  • 书籍在calibre的书库中保存时,能不能不要用拼音文件名?

不能,calibre的作者不会针对这个问题有任何的改变。因为calibre就是这么设计的,它希望你通过它的界面去操作它所管理的文件,并不希望你直接去碰它的书库目录,而且用拼音保存可以有最好的跨平台和跨文件系统的支持。

  • 用calibre抓取新闻时常常抓不下来,或者抓取的内容不完整

你可以提交一个Bug报告给calibre项目或我,附上抓新闻的任务的日志。这类问题需要一个个有针对性的分析。不过有一点要提醒的是:在国内因为众所周知的原因,有些网站和RSS提供商是无法访问的,Google Reader也可能会间歇性的无法访问,你可能要先设法排除一下是不是这个原因引起的新闻抓取失败。

  • cailbre抓取新闻生成的电子书中,每一个新闻频道的标题中中文都是乱码或方框

可以修改所抓取新闻的Recipe的代码,加入一个自定义的masthead_url。详见:http://www.hi-pda.com/forum/viewthread.php?tid=892915&extra=page%3D1

对于0.8.41以后的calibre版本,首选项->优化调整->设置在生成默认封面时所使用的字体中的generate_cover_title_font值对标题图片生成也会生效。可以参考上面的“自动生成的封面图片中的中文字符变成问号”一问的答案做类似的修改。

  • 任何阅读书籍或书籍格式转换任务都失败。日志中有UnicodeDecodeError字样的错误

可能是由于Windows的用户名中包含非英文字符,导致临时文件目录路径中包含非英文符。 以前calibre在处理非英文临时文件目录时有问题,但在0.8.41以后的版本中,这个问题应该已经被修复。

如果你发现问题仍存在,请向我或calibre项目提交Bug报告,临时应急的解决方案是:在“我的电脑”上右键点击“属性”,然后选择“高级”,再点“环境变量”,在变量TEMP和TMP上面点“编辑”,把原来的默认值%USERPROFILE%\Local Settings\Temp改为不包含非中文字符的路径,比如C:\Temp。

  • 可以用calibre编辑/修改电子书吗?

calibre是电子图书管理工具,所以并不适合用来编辑修改电子书。如果硬要做也只能通过格式转换过程中的正则表达式替换来完成,所以还是建议用别的软件来修改电子书。

对于epub和HTMLZ格式的电子书,calibre提供了“调整书籍”的功能,实际上是把电子书文件解包,用户手工修改后再自动打包起来而已。

  • calibre可以从豆瓣网下载图书元信息和封面吗?

可以,但这个功能在英文界面下默认是禁用的,只在中文界面下默认启用。但不管有没有自动启用,都可以通过首选项->元数据下载设置页来启用或禁用它。

豆瓣网不提供精确匹配书名和作者的搜索接口,所以有时会返回一些不太靠谱的结果,这个只能靠人工来选择有用的结果了。

我是calibre豆瓣元信息和封面下载插件的作者,如果对此相关功能有疑问,可以直接向我咨询。

  • calibre可以支持盛大锦书(Bambook)吗?

calibre为Bambook提供了最基本的支持,包括SNB格式的读取和转换,也可以向Bambook上直接传送SNB或PDF书籍。这些功能在Windows, Linux和Mac OS上都可以使用。

如果要使用除了格式转换外与Bambook设备相关的功能,需要先安装Bambook的运行库。盛大Bambook SDK的网站一直在维护中,我个人临时提供的SDK下载地址:http://www.freemindworld.com/tmp/BBSDKAll.zip

SDK解压后,把对应平台的文件放到系统库路径或calibre的lib或DLLs目录下即可。

USB 连接Bambook后,系统应该会增加一个网卡,在安装过云梯的Windows中,这个网卡会自动配置好,不需额外的操作。如果在没有安装过云梯的Windows下或者在Linux/Mac OS X下,需要为它手工配置192.168.250.1的IP。然后只要把Bambook用USB线连接到电脑上,calibre就可以连接这个Bambook设备了。

如果要通过Wi-Fi连接:在calibre的首选项->插件->设备界面插件中选中Bambook Device Interface,点下面的“定制插件”,在“设备IP地址”中输入Bambook的IP地址,然后保存并重启calibre。这时在主界面上的“连接/共享”菜单中就会出现“连接到锦书”,点它就可以通过无线连接到指定IP地址的Bambook。

我是calibre的Bambook设备插件的作者,对此有任何问题可以直接向我咨询。

如果您有任何有关calibre的问题,可以下面留言提出,我会尽量解答并挑选有代表性的放入正文。我也会不定期更新本文,添加更多常见的问题和calibre的使用技巧。

电子书籍管理软件 – calibre

calibre是一个免费的跨平台电子书籍管理软件,可以完成对各种格式的电子书籍的管理和格式转换。尤其对于拥有手机/iPad等电子阅读器或E Ink设备的同学来说,这个软件尤其具有价值。如果把电子书想象成MP3音乐的话,calibre的功能可以类比于iTunes。它还可以把网络上的新闻或RSS下载转换成电子书格式,同步到相关的阅读设备中,这是一个非常实用的功能。

calibre可以从Google Books或Amazon等网站下载书籍的元数据,包括书籍的名称、作者、出版社、封面或者读者评价等信息。对中文图书而言,豆瓣上的数据应该是一个不错的书籍元数据来源,所以我就给它加上了这个功能。

今天发布的0.7.7版本中正式具有了从豆瓣下载书籍元数据的功能,可以从“首选项”->“插件”->“元数据下载插件”中启用它。由于考虑到这个功能只对中国用户比较有价值,所以这个插件默认是被禁用的。

本来还实现了从豆瓣下载书籍封面的功能,但calibre的作者不喜欢我的实现方法,所以还在进一步讨论合适的实现方法。需要尝鲜的朋友,可以参考我在Launchpad上的calibre-experimental代码树中的版本号为5550-5553的代码改动。

对这个插件有任何建议或功能改进需求,可以在此留言或去calibre的Trac上提交一个Ticket。

在Debian Squeeze下安装Dropbox

听说Dropbox这个在线存储服务商很久了,不过一直没有去用过,因为我一直认为在线文件存储在ADSL小水管上是一个不靠谱的服务——上传速度太慢了。

这几天我订阅的若干个RSS上都不约而同的出现一些有关Dropbox的文章,有使用技巧的、有商业模式分析的、还有创业经历的等等。病毒式、口碑式的营销是Dropbox取得当前成功的一个重要因素。好吧,我承认我被这个“病毒”传染了,现在正在继续放毒,文章开头的Dropbox的链接是我的推荐注册链接,如果你通过它注册,你我都可以获得250M的额外存储空间。

Dropbox能迅速感染我的主要原因还是在于它的体验做的还是不错的,整个产品与操作系统的集成做得不错,使用起来非常自然,性能也远比想像中的要好。不过如果要在Debian Testing (Squeeze)上获得这样的体验,还是需要花一点功夫,因为Dropbox提供的Linux deb安装包只有给Ubuntu提供的版本,在Debian上安装会遇到依赖关系的问题:

nautilus-dropbox depends on libnautilus-extension1 (>= 1:2.22.2); however:
Version of libnautilus-extension1 on system is 2.30.1-1.

看上去只是版本号上的一点点小问题,可以直接强制安装:

sudo dpkg -i --ignore-depends=libnautilus-extension1 nautilus-dropbox_0.6.2_i386.deb

后果就是aptitude或者Synaptic都会发现存在broken的依赖关系,然后系统的包管理就不能正常工作了:不能安装别的包、不能升级……

搜索后找到了一个简单的解决方案,适合解决类似的deb依赖关系的问题(Debian/Ubuntu都适用):编辑/var/lib/dpkg/status文件,在里面找到存在依赖关系问题的包所在的位置,编辑它的Depends后面的项,改成一个可以被满足的版本号或干脆把无法满足的依赖项删除。在本例中,可以把“libnautilus-extension1 (>= 1:2.22.2),”改成“libnautilus-extension1 (>= 2.22.2),”或者干脆删除它。

这个方法很有效也很暴力,请确认知道自己在做什么并仅在必要、合理的时候使用这个方法。在大部分的情况下,也许自己重新编译生成一个适合自己的安装包是更正确安全的做法。

最后分享一下非常重要的几个小技巧:

1. Dropbox的Public文件夹文件外链的功能在国内不能正常使用,解决方案很简单:把生成的外链URL中协议由http改成https就可以了。

2. 在Linux下,可以用软链接把不属于Dropbox文件夹内的文件同步到Dropbox,但注意尽量只使用文件夹的软链接而不要对文件做链接,因为Dropbox在把文件同步回来的时候可能会把软链接变成普通文件,导致实际的文件不同步。

3. 在Windows的NTFS分区下,可以用Junction或mklink(Windows 7)把文件夹做链接,实现任意文件的同步,但要记得与Linux不同的是:只能把Dropbox文件夹内的文件夹建链接到外面,而不能把外面的文件夹链到Dropbox文件夹内,不然同步只会做一次,以后文件再变化就不会再同步了。

更多技巧可以参考:Dropbox免费网盘高级使用技巧

GMobileSync

Google前天发布了Google Sync,用于手机等移动设备与Google Calendar或Contacts进行同步。试用了一下,还是比较好用的,性能很不错。

可是这一利好消息却让另一件本来有点得意洋洋的事变得有点郁闷,唉,生不逢时啊。故事是这样的:

最近事情比较多,所以打算用Google Calendar来合理安排日程,于是希望找一个同步Google Calendar与Windows Mobile Pocket Outlook的软件。找了一圈,免费的软件和服务还真是不多,不过在CodePlex上有叫个GMobileSync的小软件倒是比较符合我的需求。下载试用一下,天哪,把我的日历搞得一团糟,该添的被删了、删了的又被加上了、所有的日程还都给我加上了几个小时的偏移量、农历日历被同步成每天一次的全天事件%!@#$

看在它是GPL的份上,自己来修改一下吧,下载了一份代码,虽然写得一团糟,但看起来并不太难,三下五除二把BUG修复,加上一些自己要用的功能。

有收获更要有奉献,申请成为这个项目的开发人员吧,看上去这个项目已经沉睡很久了,如果真的已经死掉了,就我自己在Google Code上另起个炉灶好了。不过在我即将动手之际,项目的负责人同意我成为GMobileSync的开发人员了。于是很积极的把修复的Bug和新加的功能提交,然后跟项目负责人商量产品版本发布计划,发完邮件等回复……

然后故事就讲完了,Google发布了Google Sync。

好吧,为了让我的劳动没有白费,在得到上级领导同意新版本发布前先出个Private Build吧。有兴趣的朋友可以下载试用,下载地址:

http://www.freemindworld.com/GMobileSync/GMobileSync_1.3.7_rc.cab

为了尽可能适用多用机器,这个cab是在Windows Mobile 5 Smartphone SDK下编译打包的,所以可以适用所有Windows Mobile 5/6的Smartphone或PocketPC用户。

至少,它比Google Sync多一个功能:支持一个帐户下多个日历。Google Sync只能同步用户的主日历。

敝帚自珍,近期还会继续维护GMobileSync项目。下一步计划完善多日历和多帐号(包括Google Apps)支持,这个可以看成是GMobileSync的核心竞争力。同时还要解决目前性能差、流量大的问题。GMobileSync用的是Google Data API实现的,而Google Sync是用了ActiveSync或OpenSync协议,显然后者会更适合这个任务,也许可以学习过来用用。