购买了 OmniFocus 2 for Mac

经过了一段时间的考虑,我终于在今天购买了 OmniFocus 2 for Mac,这下子算是把 iPhone、iPad、还有 Mac 版本都给配全了。

对于 GTD 这类的应用,我从一开始的敬而远之到现在的渐渐投入有一个过程。最早我了解了这个名词,但不觉得对自己有用,也没想过要试验一下。原因之一是这个词在当时很时髦,而我觉得赶时髦——不管是什么方面——都是一件很逊的事。后来我渐渐的需要管理自己的时间,也需要一个应用来帮助我变得容易忘事的大脑回忆起想要做的事,于是我尝试了一些方法。

最早我用 Mac 的日历来记录,通过一个插件来跟我的诺基亚 E50 手机同步。那个暑假算是我的黄金阶段,每天按时起床,走路去学校,自习、读完新闻组的每一个帖子、吃饭、上课、跟朋友运动,回家。到后来又开学后,我的生活规律被打破,之后也没有继续使用这套方法。

然后我试验了一些工具,比如 Remember The Milk,不过也仅限于试验。

有段时间我觉得很需要一个简单的 TODO List,而且对 Clear 这个应用很是动心。不过我当时用的是 Android 手机,找遍 Play Store 也找不到一款类似的应用,有些 Any.DO 之类的,我觉得都太沉重了——我只想简单记录我之后想要做什么,或者想要买什么,不需要确定这些事是几点几分开始做,几点几分必须做完,所以我没有继续用下去。

后来我用了 iPhone,那时候我已经工作了。不规律的工作上的任务需要我随身记录,以免落下什么事没做。那时候我可以关注我之前仅仅是听说而没有使用的一些 Mac 平台的工具了,比如说 Things,还有 OmniFocus 系列。我开始使用的是 Things,因为他的手机版本是免费的。实话说他的几个 Next、Scheduled 弄得我有点糊涂,Move 功能应该怎么用,也是需要学习,还有我也没有找到如何定义一个事件的截止时间,还有重复任务

后来经过去别家的博客上调研,我开始试用了 OmniFocus,这个倒是挺容易理解的,可以比较方便的设定一个任务的各项属性。上下文这个东西也挺不错,在创建任务时进行简单的设置,就可以方便的按照各种属性进行分类,跟 tag 一个作用。还用项目也不错,我用它管理了婚礼和蜜月,把一些没有头绪的工作挨个维护进去,就能把它们串成一串,一次完成,的确减少了焦虑感,也不必有一处是一出了。总之对比起 Things,我觉得是各种适合我,看来它跟我的相性比较相符。

另一个让我对 OmniFocus 有好感的是它同厂的其他产品,最让我感兴趣的是 OmniOutliner,我觉得我上学时最需要这么一个东西来记笔记。我曾经下载了试用版,尝试用来写报告,结果并不算好。我觉得这东西有点像过去我用的 org-mode,不过在使用上和美观性上各自走向了不同的方向。有了同厂其他软件的加成,我自然对 OmniFocus 感觉更好。

当然,OmniFocus 也是需要学习的,说实话这方面我还真算是刚刚入门。直到我在 Mac 上装上了之后,我才知道如何把一个事件设成每个工作日重复,而不是周六日野出现。现在我觉得有点渐入佳境的感觉,当然有些高级的功能我还需要关注一下。

最早 OmniFocus 的价格让我只是在手机上安装了它,因为我觉得这是急需的一部分,不管在什么场景下,手机自然是最容易掏出来的工具。之后看到 iPad 上的版本有折扣,于是就在 iPad 上也装了。说实话之前我觉得用处不大,虽然屏幕大了,看那些事件列表也更清晰了。不过前几天我买了 iPad 蓝牙键盘,这个问题算是解决了。有了比较方便的输入手段,我就可以在不带电脑的时候用 iPad 工作,这样编辑起 OmniFocus 的列表也很方便。而我最近 Mac 用的则不算太多,要是我上学的时候,那就是不一样的情况了。不过因为我在分析数据的时候,需要用 Mac 来运行程序,所以这两天我一直带着它,感觉价格也可以接受,于是就买下了。当时还想在 mou.li 之类的团购网站便宜点购买,不过最后还是不放心,直接在 App Store 上购买了。我看了一下 pro 版的功能,觉得用不大着,就没有买专业版。当然,这下对我的帮助很大,很对之前还比较模糊的概念,这下子就比较清晰了。

圈子不同

今天从 Daring Fireball 看到了这个链接,其中一句话让我觉得比较有趣。作者评价了新发行的 BBEdit 11 收费升级的行为,说自己觉得开心,理由是因为收费,开发者需要提供更优秀的新功能来升级,而不是进行一些小型的变动来应付用户。作者举例:开发者为了加入新特性,更换了 BBEdit 从 1989 年就工作到现在的代码,因为这些代码不支持这次新加入的特性。App Store 里的所有软件都不需要再次付费,与 BBEdit 的收费理念冲突,因此 BBEdit 准备从 App Store 下架,要求大家从 Bare Bones 的商店里购买。

看到这篇文章,我隐隐约约觉得不顺心。一方面从理性的考虑下,这种说法其实有些道理,但从另一方面,也许这种说法太过于激进了,我觉得怎么也让自己从内心接受。对于文本编辑器,我觉得还是喜欢免费的优秀软件,比如 Emacs 之类。确实,BBEdit 的价格够贵,不过如果足够低,我觉得还是希望用更有趣的 Emacs。

最后我只能是用圈子不同来解释了。

真不是盖的啊

今天因为需要下载一个大软件,于是想起了我之前买的 Parallels Bundle 9 套装里有几个软件我还没有使用,其中就有 CleanMyMac,这次正好派上了用场,于是就把它们装上。这套 PD9 中,PD 本身很有用,1Password 是我一直想用的,Fantastical 我还觉得没用,OS X 系统自带的 Calendar 程序(不知道从哪个版本开始不叫 iCal 了,Snow Leopard 还是这么叫)我觉得就够用了,iPad 上的 PD Access 我没有 iPad 自然也用不上,剩下的软件我都挺喜欢的,但是还没有发生需要用它们的情况,所以一直没装。

剩下的两款软件,出了 CleanMyMac 外,另外的一个是 MacHider,都是一家公司出的。CleanMyMac 我很早就知道了,它是一款清理 Mac 系统的软件。MacHider 根据介绍,是一款 Mac 系统的保密工具,它可以隐藏一些你不想让别人看到的东西。我于是把它们都安装上了。

这两款软件给我的印象都很深刻。我还在用 MacBook 的时候,印象里尝试过 CleanMyMac 的试用版,印象不错,不过这么多年下来也淡化了。这次它又重新的震了我一下,上来就给我清除了 3.16GB 的文件。很多东西都是显而易见的,比如应用程序中的语言包,我只保留了中文跟英文,这些的体积就非常可观。除此之外,它还找到了我硬盘里的大文件,它们是我下载的高清版本的 Apple Keynotes,不过我还舍不得删除它们。最后,CleanMyMac 还允许我删除我不用的软件,所以我把我大概永远也不会用的 iMovie 和 GarageBand 给删除了,它们占据的空间可真够大德。另外,我发现 iPhoto 的体积居然超过了 Aperture,这让我小小的吃了一惊。通过点几下鼠标,我方便的清除了数 GB 的文件,这种便利可不简单。

MacHider 则是一个惊喜。我看了网站上的介绍后就喜欢上这款软件了。我有一个目录的文件最好不要让别人看到,于是我就简单的把这个目录拖到 MacHider 的窗口中去,然后当我退出了 MacHider,这个目录就消失了。当我再次启动 MacHider,目录才会重新出现。当然,这里面少不了密码的保护。

这两款软件毫不客气的向我展示了优秀的 Mac 软件是什么品质,它们不是那种在 Windows 下流行的粗制滥造的 freeware 可以比较的。CleanMyMac 的售价为 39.95 美元,MacHider 则为 9.99 美元,我对它们的售价相当服气。尽管要我出这个钱我现在是不会买的,而是自己忍着不用,不过我觉得它们真的值这个钱,这种便利性实在是太可贵了。

靠之

之前我说过,我的 Nexus 4 手机的存储空间用尽了。我在今年 8 月回国前夕,父亲刚弄了一个移动定制版的三星 Galaxy S4,代号是 GT-I9508,连着他的手机卡一起交给我,说是给我用。我嫌这种定制版的手机系统难用,而且没有 Google 的各种程序,于是只把 SIM 卡拿了出来,放进了我带回来的 Nexus 4 里,继续用 Nexus 4。

最近因为出了这个存储空间用尽的事情,我分析了一下,发现没有什么好的解决办法能够彻底的解决问题。我暂时把 Play Music 的缓存给清空了,省出了几百兆的空间暂时解决了问题,但这不是长久之计,随着使用,这些空间被消耗也是必然的。而且在中国不比在加拿大,访问 Google 慢的要死,所以我也不愿意把我这段时间缓存的音乐给删掉。于是昨晚我考虑了一下,拿出来这台 Galaxy S4,看看能不能换到这上面去。这台手机的内置存储空间应该有 16G,还带了一个 16G 的 microSD 卡,组合起来够用了。

安装软件是一个大问题。手机本身带着移动的 MM 市场,我不大喜欢用,于是安装了豌豆荚。过去在我小姨的小米手机上看过,当时觉得乱糟糟的,印象不太好,但这毕竟是我唯一见过的第三方软件市场,而且它的后台也算硬,我就用了豌豆荚。

中间有各种各样的问题。比如我过去在 Google Play 付费买了一款软件,怎么能把付费版的也给弄过来?后来我去豌豆荚一搜,靠!基本上有名气的软件都被破解了,不需要你花一分钱,就可以安装上来用。我安装了 gReader Pro 和 BeyondPod,除了 gReader Pro 的版本不是很新之外,和我花钱买的没有什么的不同。

靠!!!!!!!!!!!!!这样想想,我不成了傻逼了吗!!!!!!!!!

这就是盗版的杀伤力。别人可以免费获得的东西,我出于各种因素,花钱买了,这就陷入了一个心理学上的囚徒困境。我办了好事别人有多少也办好事呢?与其这样,我不如跟别人同流合污,虽说从大环境上看,大家都输了,但至少我不比别人吃亏,我也不会成为别人眼里的傻逼。出于每个正版用户的这种心理,盗版打败了正版。

哪怕我不缺买软件的这些钱(事实上我确实不缺,真要是几百美元的软件,我也舍不得买),但一想到这些钱算是白花了,我心里就有一种莫名的不爽。靠est!

要杜绝这种事情,我觉得靠技术防盗手段也是很必要的。在电脑上我不再用盗版了,一是现在的自由软件、免费软件都可以达到目的,我不需要去买商业软件。另一方面就是要找一个注册号也很麻烦,软件升级后还不知道有没有用,价格能承受的话,还不如掏钱买一份授权,用着放心。我电脑上 LaunchBar、MarsEdit 软件都是这种情况。

当然,也要解决换手机没有 Google Play Market 后怎么把软件跟授权一同方便的移植过去的问题。

OS X 10.6 的 AppleScript 中文 bug

前几天一个偶然的机会我发现了 Shawn Blanc 的 blog。这个 blog 包含了一些时尚科技的评论,更新速度比较高。作者 Shawn Blanc 目前是专职维护这个 blog,blog 本身有收费会员订阅的项目,每月花 3 美元就可以阅读一些更多的内容。但免费的内容已经非常丰富了,作者有这个底气征收付款,在中文 blog 圈子中应该是比较难以想象的吧。

我从这个 blog 中看到一篇 MarsEdit 的评论,因为我自己也在用 MarsEdit,它是我的计算机上的几个花钱购买的商业软件之一,于是我就花了点之间仔细看了一下作者的评论,从中知道了我之前一直以为不存在的字数统计功能,竟然在脚本菜单下面。我知道自己还不是一个比较资深的 Mac 用户,比如像 mac script menu 这样的菜单我从来没有点过。这次知道在 MarsEdit 这个菜单下面,就有对文章的统计功能。于是我点了统计功能后,MarsEdit 的 CPU 占用率马上飙倒了 99%。最后只能把这个进程给杀掉。杀死进程后 MarsEdit 有崩溃报告功能,我就顺便把这个 bug 给报告了。

Apple 本身也有这种功能,不过可能用户量太大,Apple 应该只把它当作一个记录统计的作用。而 MarsEdit 的开发公司 Red Sweater 这种规模不大的公司,收到这种报告的次数可能不多吧,反正我第二天就收到了 Red Sweater 的回信,请我帮助他们 debug。我把造成问题的那篇文章发送了过去,因为我的文章是中文的,我以为 MarsEdit 可能对多语言支持的不够完善,就提了一句是不是 Unicode 方面的问题。

之后对方发来邮件,包含了一个另一个版本的字数统计脚本的附件,让我用这个脚本来试试。我试了一下,仍然有问题。脚本是用 AppleScript 写的,我从来没有学过这门语言,但据说它非常简单,脚本本身也不长,我看了几眼就大体上知道是怎么回事了。稍微研究一下,我想找出来是我的文章的哪个部分让这个程序的哪一行卡住了。于是排除了一下,发现造成问题的原因比较古怪,也不是所有中文都通不过,我发现的一种情况是只有字符串中包含一个汉字,跟上一个空格,再加上一个数字的时候,words of inputString 就会卡住。inputString 就是输入的字符串,脚本中用了 number of words of inputString 来获得字符串中包含的字符或汉字。我的那篇文章中正好有这种情况。实际上,我从几年前写文章就习惯再汉字跟数字及英文字母之间加上空格,这样更清晰一些,所以我的 blog 中一定会出现很多这种情况,我的大部分的文章都没办法用这种办法来统计字数。

我把我的发现发给了 Red Sweater,对方回信告诉我说这个问题在 OS X Lion 中不存在,因此似乎是 Mac 系统本身的问题。出问题的代码仅仅是调用了系统给的函数,因此也不好解决。对方说他们会想别的办法来获得字数统计功能。

另外,我还询问了对方能不能加上一个实时的字数统计功能,在编辑窗口中显示。结果对方告诉我目前 MarsEdit 已经有这个功能了,在状态栏里有显示。只是默认情况下状态栏是隐藏的,但对方担心他们做的统计功能可能不适合中文,因此他们也询问了我对于中文字数统计的要求。我看了对方的说法,他们或许是因为英文统计的是单词而不是字母的关系,所以考虑做中文分词,统计文章中出现的中文词组。我一看这可差老鼻子远了,中文分词本身就发展的不怎么样,还让老外来做这个,猴年马月才能弄出来啊,更何况中国人看字数统计也不管里面用了多少词组啊。所以我赶紧发邮件说别搞这个了,我们关心的仅仅是字数。

之后,不知道什么时候可以解决这个 bug。老外对于中国语言,大概从文化上就和西方语言有差异吧,我用过一些编辑器,里面也有字数统计的功能,但对中文来说都是没法用,因为它们全部是针对英文的单词设计的,字符之前没有空格就认为是一个单词,比如说这篇文章写到这里,MarsEdit 告诉我一共有 173 个 words,这就差的相当远了。不知道是不是所有写软件的老外都有类似的误会,考虑做什么分词,要能统一的给他们纠正过来就好了。

对 LastPass 有些失望

我从开始用 LastPass 后,就逐渐的把我日常使用的密码用这个软件管理了。不过用到最近,我对它感觉失望了。

失望的原因之一是这款软件太依赖于浏览器。软件本身其实只是一个浏览器的插件,负责本地数据和远程服务器上的数据沟通。我对这种方式的不满在于,它没有考虑胖客户端。今天虽然很多东西都可以再浏览器里完成,但浏览器之外的网络客户端依然保留了一些,最典型的就是各种 IM 软件了。LastPass 只在浏览器中管用,当要在客户端里使用密码的时候,就比较不方便了。当然,这是次要原因。

主要原因在于 LastPass 本身的设计。LastPass 保存的密码项目中有一项 URL,可以在浏览器的 LastPass 按钮中点鼠标就直接登陆网站。这样把事情搞得比较复杂。LastPass 本身可以通过检测浏览器的输入框,来判定要不要自动帮你输入用户名和密码。这项功能因为语言识别的不成熟,因此常常会造成误判,最常见的就是把其它内容识别成用户名。当然还有许多,我现在已经不用 LastPass 了,因此举不出更多的例子了。

我考虑过换用 1Password,但这个软件的售价让我觉得有点高,作为一个密码管理软件有些不值。而且它本身的功能是不是过硬,我还需要进一步考察。另一方面我本身也想做个 Rails 项目干这事,同时也是一次锻炼。不过这样子把密码放在自己的服务器上,安全方面就需要考虑了,SSL,公钥私钥什么的,我现在还没有个谱。所以这方面我还没有做决定。

软件工程深夜吐槽

今天中午我有一门《软件工程2》课程要考试。老师没有给任何之前的卷子可以参考,只告诉我们有 4 种题型,考试范围是从第一堂课到考前最后一堂课。老师给的笔记有 8 个 PDF 文件,很多内容让我觉得挺为难的。

主要是简答题,我看了一下 8 个 PDF 文件,里面有很多内容可以出成简答题,问题是我能不能把答案都记住。如果是中文的笔记和用中文答题,我觉得会容易一些。英文的笔记就涉及到理解的问题了,所以相对来说,对母语是英语的人,考试的难度可能会小一些。

不过这们课是软件工程,而不是项目管理啊。我们这门课同样有需要小组完成的学期项目,老师就不能把成绩的比重往项目上移动吗?我觉得软件工程更多的是一门实践类的课程,记忆这些 principles 不一定能让学生在真正做项目的时候采用正确的方法。

这门课有 2 个这种的学期考试,每个占 20%。我现在正在努力的搞第一个。还有第二个要怎么办,我…… 总之,我讨厌这种类型的考试。

我使用的工具之Wget

第一次得知Wget是在王垠的网页上,随后我下载下来试用,结果越用越爱,现在已经欲罢不能了。

Wget是一款源自UNIX的下载工具。虽然它是字符界面下的工具,但它的功能却很强劲。我只用它最简单的功能,就可以完全代替了Flashget和Webzip了。

不仅如此,相对于Windows下的下载工具来说,Wget十分小巧,完全版本只有940K,主程序文件只有252K大小。而且Wget是完全绿色的,不需要安装。

下面我来说说我平时使用Wget的方法。

我要下载一个文件,只要在命令行中简单的输入“wget 下载文件地址”就可以了。如果我要限速(其实Wget不像Flashget、迅雷那样抢带宽,我这里使用Wget下载完全没有卡的感觉)的话,输入“wget –limit-rate=20k 下载文件地址”就可以把速度限制为每秒20K了。如果我有个文件没有下完,要续传的话,使用“wget -c 下载文件地址”就OK了。

其实上面的功能对于要求不高的Windows用户来说意义并不大,Flashget也可以完成这些功能,或许还更方便。不过对我来说,Wget最强大之处,就是它的网站下载功能。

在浏览网页时,我遇到过不少好的网站。它们大多是一部教材,不过是分章节显示的。我要是想把它们存在硬盘上,只能一章一章的打开,然后保存。这样的话,章节一多,我就吃不消了。而且就算把每一章都保存下来,我阅读的时候也相当困难,因为每一页两端的“上一章”和“下一章”链接都没法使用,我还要手动打开下一章。

我在97年左右听说了Webzip工具可以把页面全部端下来,立即下载下来试用,结果当时的我没有搞成功,而且那个软件有使用限制,需要注册。当时的我也不懂可以从网上找注册码(网上注册码也少,而且那是还没有Google呢)。Webzip下载下来的页面很难看,而且还在页面里加上自己的广告,让人很不爽。

后来我完全忘记了这件事,直到我从王垠的网页上得知了这个工具。经过研究,我现在要下载一个网站,只要输入“wget -mp 网站地址”就可以了。Wget可以自动的找出相关页面,把它们一并下载下来。而且相关的链接也被自动修改,我在本地浏览这些页面,与在网上浏览它们一模一样。例如,我想下载《计算机程序的设计与解释》这本书(网址为:http://mitpress.mit.edu/sicp/full-text/book/book.html),就输入“wget -mp http://mitpress.mit.edu/sicp/full-text/book/book.html”就行了,完全不用在操心更多。

如果网站的作者修改了网站,我们怎样跟踪这些修改呢?我们只要把上面那个命令再输入一遍,Wget会找出被修改过的地方,然后同步到我们保存在本地的目录中。

最后,Wget可以从这里下载,马上开始吧。