关于日历和Todo整合的一些想法

这两天Any.do团队开始发布日历应用Cal的测试版了,我也迫不及待的申请测试并下载来玩,第一印象是惊艳、Cool、趁手……

申请方式很简单,只需要在G+里面加入Any.do社区,然后按照上面的链接说明进入Play中申请成为测试用户就可以下载了。

这个Cal除了外观清爽、手感舒服之外,还打通了 Any.do,使得后者的Task(Today、Tomorrow)可以直接在Cal里面查看到(点击之后还会跳转到 Any.do的界面,这点感觉不是很爽)。

目前看来这两个工具比较不错了,不过我的想法可没有到此为止。

关于整合

作为一个重度健忘症患者,日历、Todo之类的应用一直是我必需的工具,可惜到目前为止,符合我想法的好像还没有出现,即使Any.do。

对于这样的应用我向来觉得应该在一个工具中呈现(有类似的工具,可惜实现的很生硬)。

所谓记事分为两种:时间性强的日历(Cal),时间要求弱的任务(To do 或 Task)。

但是这二者不该是完全隔离,应该是可以互相转换的,例如一条日历条目可能需要转成Todo记录,反之亦然。还有一点就是日历的布局很适合作为日志查看,那么一条已经完成的Todo应该可以自动转成日历的历史条目,可以在日历视图查看,而不该在提供个单独的“已完成Todo”页面。

关于提醒

Any.do这两个软件的提醒界面都蛮酷的,Any.do的提醒界面可以让你设置已完成或者延期一小时、两小时之类的,而Cal就只是单纯的提醒。

日历有一个缺陷就是在某个时间点固定存在,时间过去了条目变灰,Android Widget 上面可能就消失了,至于那件事做没做,日历应用不 Care。而现实的情况往往是需要动态调整日历信息的,谁也不能保证原计划10点给客户的电话不会被一场临时的会议推迟吧?

那么一个更好的选择是弹出提醒(一般10分钟前)的时候也应该给个选择是否推迟。

Any.do有个功能叫做Plan,也就是说每天在你设定的时间会把所有的Todo一条条显示出来,让你统一安排,这是个很酷的功能,如果能够包含Cal的记录就更酷了。

关于 Todo 的分类

目前 Any.do 的分类(按时间分)是四个:Today、Tomorrow、Upcoming、Someday。

我觉得还是多,而且Today、Tomorrow也与时间相关会让用户产生被强迫的感觉(好吧,我有),毕竟Todo这种东西应该是与时间弱相关的。

我希望是分为:Focus、Upcoming、Someday。

Focus类别是表示我需要重点关注的,但不一定非要今天解决(当然,也不一定是明天)。

关于信息展现

目前的Cal是把Any.do中Today、Tomorrow两个分类下的记录在日历中的今明两天中展现,后面有个对号表示这是Todo记录。

照我的想法,当然是在Cal的Today中展现Focus的内容和日历的内容。也可以在这个界面直接操作日历和Todo,二者打通合二为一才是王道。

关于现实

好吧,上面这些其实是我长久以来的幻想,合乎我的需要,不一定会满足别人,估计只能靠我自己学习下手机编程来实现了……

是时候切换到 sublime 3 了

首先得强调的是 sublime 真是个神器,前前后后算是用过不少编辑器了,例如 Editplus、Ultraedit、Vim、Notepad++、Textmate等等等等,最后还是觉得 sublime 让人赏心悦目、心情舒畅、兴趣大发、食指大动……

甚至一激动花了70美刀买了个 License,就为了体验 sublime 3——要知道,我的 Win8才花了98人民币。

其实作者已经很良心了,不买除了偶尔会弹出个提示对话框外毫无影响,而这个对话框只需要 Esc 就可以关闭了。最新版的sublime 3也已经面向所有人开放了,模式同样。

前一阵 sublime 3基本还只能处于把玩阶段,无法实操,因为很多插件还不支持。不过现在很多主流插件已经问题不大了。Pockage Control(以下简称PC)的作者列了个兼容清单可以看看,对了,Package Control也支持 3 了,当然用法稍微有些不同,可以到官方网站看看具体安装方式——需要使用git clone一份源码到 Sublime 3的 Data\Packages 目录下,然后切换到 3 的branch就行了。

3 的插件格式稍有不同,是打包的 xxx.sublime-package 文件,这玩意其实就是个压缩包,使用PC安装之后这些文件位于 Data\Installed Packages 下面。当然,3也支持 2 的文件夹格式——例如通过源码clone安装的那些——仍然位于 Package 目录下。

展示一下我的 sublime 界面先:

Sublime 3 Blusted Scheme

Sublime 3 Flatland Theme

Read More »

Evernote模版制作简介

作为一个 Evernote 用户,不知道你是否已经厌烦那简陋的输入环境了,反正我是有点孰不可忍。正好在G+上看到  分享的 kustomnote 介绍文章,说的是可以在这个网站上创建模版,填写内容之后还可以自动保存到 evernote 中,于是立刻注册 kustomnote 试用之。

老实说,这玩意是颇不合我口味的东东,尤其是那几个严重拟物模版确实恶心到我了,虽说服务不用,倒是开拓了我的思路:evernote 看来是支持自定义模版样式的。立刻跑去官方的开发网站翻检了一番,果不其然,这篇 Note Formatting 就是说这个的,其实就是 xhtml 格式,不过有了一些个性的定义,例如 body 使用 en-note 代替,可以直接使用 style 来定义样式,也就是说对有 html + css 开发经验的人来说,定制模版是个小 case,不过也需要注意的是,不少标签是不支持的,具体内容可以参见上面贴的那个文档。

不过最最不爽的是不支持 <style> 标签,也就是说无法统一定义 css,只能在标签里面定义 style 了——好吧,我相到了当初做邮件模版做到吐的不堪回首的往事了。

不过这么控制也有他们的苦衷,毕竟还需要在多种平台上展示,说实话,我做了俩个模版发现在 android 客户端上展示就有点问题,编辑就直接没有定制的样式了。

不管了,反正平时都是在 pc 端编辑,我才不会没事跑去手机上长篇大论呢。

另外还需要注意的是,由于需要在 evernote 客户端对模版做导入操作,所以模版内容不能光看上面那个 Note Formatting,还需要用 <en-export> 标签将实际的 <en-note> 包起来,具体方式可以参见我做的这两个模版:

用的是 Google Now 的样式,文章块最大宽度控制在 600px。这些模版其实都是文本格式的,所以完全可以在上述模版的基础上做一些符合自己胃口的自定义。

google now style basic

Evernote Template: google now style basic

google now style code snippet

Evernote Template: google now style code snippet

另外,推荐专门创建个笔记本用来管理自己收藏或者制作的模版,如果需要使用某个模版也不要直接在该模版上编辑,而是复制一个到相应的笔记本里面。见下图:

模版复制

模版复制

Linux 服务器使用 Dropbox 备份数据

这个blog之前一直放在 photonvps 上,结果丫们除了隔三差五宕机、访问速度慢之外,居然还给我来了个硬盘错误,把我的数据全整没了,丫们客户除了给我发了封说明邮件之外啥补偿都没有,你就是给我免一个月的费用我也能顺顺气不是。

所以一怒换到了传说中的高档货 Linode 上了,价格果然很贵,不过速度也确实很快,管理界面也丰富的很,所以说便宜没好货,好货不便宜,这是亘古不变的真理。

其实吧,现在这个blog基本就是半死不活状态,整vps的目的主要是为了翻墙用(妈的,GFW太tm坑人了,搞的我每月花费20美刀啊),不过毕竟ssh、vpn啥的都可以搭建自用,省得天天到处找免费工具。实践证明:时间果然tmd是金钱,想省时间可不就得多花钱了。

之前的wordpress备份主要是用那个备份插件搞的,每天发一封导出的SQL附件到Gmail邮箱,这次准备全都改成 dropbox 来备份。毕竟俺的 dropbox 账号已经有70多G了——好吧,其中的48G是2年期,用的三星手机扩容。

目前网上已经不少文章介绍使用 dropbox 来备份 VPS,有的是定时启动 dropbox 程序来同步,有的是使用那个 github上的脚本调用 dropbox api来上传。后者其实只是进行备份操作,而放弃了“同步”这个优势。但前者也存在一个问题,那就是会把dropbox下已有的内容也同步到VPS上,白白占用空间。所以都不完美。

其实呢,目前 dropbox 官方已经提供了 python 的备份脚本了,用这个来调用 dropbox 进程进行同步很省事,而且最理想的是它可以把那些不需要的目录都排除掉。

既然是vps,估计是没有图形界面的,所以直接命令行安装 dropbox吧,推荐用root来安装,因为我连 /etc 目录都备份了。直接参照官方文档就ok了,然后运行一下命令并根据提示将此vps与dropbox关联。之后下载那个Python脚本(其实就是官方文档里面的那个 CLI script 链接),按自己习惯随便扔到哪个目录下都行(我就放在了 /root/bin 下面)。之后运行 python dropbox.py 就会显示帮助信息:

Dropbox command-line interface

commands:

Note: use dropbox help <command> to view usage for a specific command.

status get current status of the dropboxd
help provide help
puburl get public url of a file in your dropbox
stop stop dropboxd
running return whether dropbox is running
start start dropboxd
filestatus get current sync status of one or more files
ls list directory contents with current sync status
autostart automatically start dropbox at login
exclude ignores/excludes a directory from syncing
lansync enables or disables LAN sync

可以启动、停止 dropbox,重点需要关注的是 exclude 命令——运行 python dropbox.py help exclude 可以查看详细的命令介绍——这个命令可以将不需要同步的文件夹排除出去,使用方式是: python dropbox.py exclude add dir1 dir2 dir3…

尤其需要注意的是,运行上述命令一定要 cd 切换到 Dropbox 目录下(一般是 /root/Dropbox),不像其它命令可以随便在其它位置运行,我就在这被坑了半天。

有了这个脚本就简单多了,随便写个自己的sh脚本将一系列操作组合起来,然后扔到 crontab 下去定时执行就可以了。这些东西就不详述了,比较简单。

我目前的备份策略是:

  • 在 dropbox 里面专门创建个 Linode 目录
  • 通过 dropbox.py 排除其它目录,只保留此目录同步到 VPS
  • 使用ln 建立软连接到此目录,包括内容如下:
    •  /etc
    •  wordpress 以及其它程序所在目录
    •  nginx 配置
  • 定时通过mysqldump导出数据库并压缩到此目录,只保留10天的备份文件
  • 每天晚上启动一次 dropbox,运行30分钟后停止

全都自动化,搞定收工。

造物和造物主

刚刚重看了《我,机器人》,然后去豆瓣把之前打的四星改为了五星。

就我个人的想法来说,机器人统治世界是必然的结局,如果2013年仍然到来的话。作为一个程序员,从来没有觉得程序和人类的思维有什么本质的差别,如果说有什么差别的话,也不过是后者的CPU更加强劲,版本更高而已。

当然,那时候的机器人肯定不是我们现在所想象的机器人,应该是人类和机器的合体,也就是魔鬼生化人。记得哪本书还是电影里面提到,人、半机器人和纯机器人共处(和谐与否那就见仁见智了),我觉得这个才是真正的未来。

不过这些都是后话,我考虑更多的是造物者和造物该如何相处?

人类给了机器人三条定律,不过是为了保证人类的统治权。而上帝给的更多,十诫,第一条就要求只能信上帝,而这相信也是上帝最看重的东西,其它那些不过是掩人耳目而已。不过很遗憾,戒条永远都是用来打破的,看看现今的世界,信上帝的肯定没有不信的人多。

多么简单的道理,对于一个孩子来说,父母就如同上帝一样,强壮、高大,可以解决所有的问题。可惜的是孩童会长成大人。

那么当机器人发展到更高阶段,人类这个父亲注定将会衰弱,想用羸弱的三定律去做那不可能的限制也注定无法获得多少喘息的时间。

想到这,我开始佩服上帝的高瞻远瞩了,“离开”,才是最好的解决之道,才是最好的相处之道。那谁说的来着?第一最好不相识,第二最好不相见……

相见永远都不如怀念。

可惜的是人类的目的是制造机器人为劳工,所以被反抗的结局注定无法避免,不会适时的退场又永远是人类的天性弱点。

最好的结局也许就是祈求机器人高抬贵手,把人类放逐。也许当初我们其实也是这么对待上帝的,只是岁月久远,很多事情已然湮灭,有些事情变成了神话。然后造物们又开始相信神话、缅怀神话,甚至去追朔神话。

世事循环,我们人类也完全没必要为那遥远的将来悲哀,在更遥远的将来,机器人也注定要经历这么一个轮回,再被他们的造物消灭,或者放逐……