离线电脑上的写作感悟

很长一段时间,自己都苦于意志力薄弱,注意力差,不能够在自己想要深耕的领域有足够的学习时间,相反却总是被新闻网站、色情网站以及围棋游戏浪费了大量的时间。我想了很多办法来克服这个问题,从封禁网站,封存设备、坚持工作列表到邀请孩子们帮忙监督等等,但是都是成效不大。离线电脑是自己最新的办法,主要的考虑如下:

  • 很多学习只能在电脑上展开,所以必须有一个电脑。
  • 电脑如果不能上网,那就不会花时间在前面那些无谓消耗时间的事情上了。

一念及此,就行动起来。为了避免额外的花销,自己最终选择了 Acer C871 Chromebook 作为实际的机器,在家庭路由器上禁掉这个机器的 Mac Address,然后在机器上装上 Linux Virtual Machine,就这样开始了。

这样搞了一段时间,我发现离线电脑确实能够达到前面所说的两个好处,在电脑上看了不少书籍、论文,实验了很多程序,学到了很多东西,是个不错的主意。很自然的,我就继续扩展这个主意,把更多的事情拿到电脑上来做,首当其冲的就是想要在离线电脑上浏览以前写的文章,或者是写新的文章。

按道理说,Google Docs 是一个现成的选择,特别是它的离线同步功能做的非常的好,但是 Google Docs 有两个比较明显的缺陷:

  • 它的公式编辑功能比起 Latex 来说那实在是差得太远了。我有很多文章都要写公式,这样可不行。
  • Google Docs 把所有的内容都存在 Google Cloud 上面,没有办法把文章发到自己的博客上。特别在这次 Trump 总统被禁言后,我对于把内容都存放在云端更是多了很多警惕,这些大公司信不过啊。

下来的方案就是用一些先天支持离线编辑的静态站点生成工具,最有名的就是 Jykell。这个东西我用过一阵子,一看就是给技术人士做的,全部都是命令行界面,不过好处也非常明显:

  • git-based 版本管理,完美支持离线操作。
  • static web page,安全快速。
  • github host service,不需要自己花钱租虚拟机。

但是自己还是有些犹豫,自己对于 Ruby 语言以及 Gemfile 这套东西一点都不熟悉,相比之下,Wordpress 虽然很老,但是它并不会很快就消亡,相反,因为庞大的用户群和悠久的历史,这些老软件都很稳定,而且自己也花了很多时间学习和使用这个平台,不应该就这样轻易放弃,再说自己也还没有深入使用 Jykell,对于它的缺点也不了解,不过最少可以想见:

  • 现有文章的迁移是个费时费力的工作。
  • 插件不够丰富,比如如果要自己的围棋能够显示,需要手动做不少工作。

相反,对于Wordpress:

  • 技术架构和源代码自己比较熟悉
  • 有很多文章积累 (已经 600+)
  • 插件支持丰富,围棋、音乐、数学公式,国际象棋,一应俱全。

当然啦,各自的优点就是对方的缺点。通算下来,要把 600+的文章移到 Jekyll 上,花掉的时间实在不值得。一咬牙,自己开始着手开发一个 WordPress Sync Script,期间经历了诸多困难:

  • PHP 的代码自己并不熟悉,连什么是数组都搞不清楚。
  • XMLRPC 的文档奇缺,而且其实现以及Python 接口库有各种各样的 Bug。
  • WordPress 的 Mysql Database Schema 并没有设计为支持同步,好多设计都需要妥协,比如用文章的 Title 而不是用 id 来判断两个文章是否应该同步。

开发过程中经历了各种各样的坎坷,再加上 Jykell 的吸引,数度想要放弃,过程不堪回首。在数天挣扎中,最大的一点体会就是没有什么事情能够一蹴而就,都是要经历一番艰难险阻才能实现,过不去那就是遗憾,过去了就是财富。终于在假期最后一天晚上1点钟明白了为什么自己上传的文件名总是被 WordPress 改名之后,手动修改它的程序,成功的把两个Wordpress 站点的媒体库同步起来了,心里真是高兴。

邓总原来有一句话,叫做“黑猫白猫,抓住老鼠就是好猫”。胡总也有一句类似的话,叫做“不折腾”。大体意思都是说:要抓住主要目的,把大家的物质生活搞上去,把我们的综合国力搞上去,不要管太多意识形态,建设道路等方面虚的东西。 软件工程上把重复别人做的基础工作叫做“重新发明轮子”。 WordPress 虽然老土,但是自己会用,也比较懂,而且现有的东西(博客文章,部分插件、云端主机等等)都已经建好,就比其他看上去高大上的东西(比如 Github Page, Jykell 等等)要好。就坚持这条道路吧。