与许多朋友一样,我很喜欢Evernote的服务,碎片化的各种数据同步至云端,使用本地客户端,支持各种平台,提供API接口,可与各路网络应用互动。
当然,Evernote也有两个细节让我非常不爽:
- 没有官方Linux客户端。
- PC客户端不支持设置代理。
一直期待Evernote官方能解决这两个问题,没想等到却是“在大陆建立数据中心”这样狗血的商业策略。
还是自己动手吧,谁让你生在中国。
需求分析
- A 网络中心数据库,同步汇总各平台客户端的数据。
- B 网络数据库提供API接口,供各平台客户端接入,同时开放API,可与其他网络应用互动。
- C 跨平台桌面客户端,支持windows、mac、linux,支持同步、搜索、上传。
- D 跨手机平台,支持主流智能手机(ios,android,Blackberry,webos,s60……)。
- E 支持PC网页客户端,可在线可视化html编辑,上传,显示图片与其他格式附件。
- F 提供基本的手机网页客户端。任何移动互联网设备都能通过移动浏览器访问。
- G 提供浏览器插件,可方便把网页剪辑保存至网络数据。
- H 支持系统快捷键发送至桌面客户端。
技术选型
既然是自己用的,够用即可,只要能实现需求中所列需求,尽量使用现有技术与工具。
所以我选择—— wordpress 做为打造私有Evernote的基础。
理由:
- 开源,搭建方便,从自有主机到sinapp这类云服务器,甚至直接上wordpress.com申请即可拥有。
- 开放API,使用标准XML-RPC协议,各路语言都有现成支持,ifttt已内置支持。
- 有大量插件,扩展性强,例如可以备份数据至S3,dropbox等。
- 有大量现成桌面客户端和移动平台客户端,几乎涵盖所有移动平台。
打造私有Evernote一:使用现有工具
- 开通一个wordpress站点作私人Evernote专用。
- 使用插件将wordpress“私有化”,就是设置阅读与发布的权限,关闭用户注册功能,且不允许非注册用户查看post与rss输出。
- 打开wordpress的xml-rpc,允许客户端应用远程访问wordpress的数据。
- 将wordpress后台,工具-快速发布下的“快速发布”链接拖到浏览器的快速书签栏中。(这样我们就有了与Evernote类似的“网页剪辑”收集插件)。
- 选择一个适合自己桌面平台的wordpress客户端。例如 live writer, linux用户甚至可以使用vi或emacs作为客户端。
- 选择适合自己手机的wordpress客户端。几乎所有平台都能找到。
- 为wordpress安装mobile插件,方便手机浏览器直接访问。
打造私有Evernote二:优化使用体验
我们必须承认:使用现有工具很难达到与Evernote相同的使用体验。
以下供程序猿们参考:
- 使用python做一个跨平台客户端,xml-rpc有现成库,千万记得要能走代理。
- 做个wordpress theme,加大量JQ,外观类似Evernote在线版。
- windows全局快捷键可用AHK
- 手机客户端可用phonegap + jqmobile.