2003年9月,我上大学,拥有了人生第一台完全归自己使用的电脑,也开始把 Linux 作为主力操作系统。十年过去了,套用 The Setup 的格式,谈谈自己的吃饭家伙。
我是布丁,我是 Google 的一名软件工程师。我以写代码为生,也以其为乐趣。我偶尔也会写中文文章,也是纯为乐趣。
电脑方面,我在公司使用一台 PC 工作站,连接两个 24 寸屏幕。我从来就没关心我这台电脑的具体配置,说实话我在 2003 年上大学攒了我用过的最后一台 PC 之后,我就再也没了解过 PC 配件性能之类。我的手提电脑是 Macbook Air, 我对它的表现非常满意。
我需要纸笔和白板帮助思考,没有什么电子工具能代替他们。我喜欢到处都是白板的办公室 —— 我座位旁边就有一大块可以做白板的透明玻璃,再走几步就是整张墙的白板。在家里我也有一块购自宜家的白板。
工作之外,我在家中使用得最多的电子设备是 Kindle, 但我仍然会买纸书,我用一台 Nexus 7 来看新闻和杂志。出外我就使用一台 iPhone 4S.
最近我觉得 Chromecast 很诱人,我有点想买个 Chromecast 和为之买个电视,但跟看电视相比我还是更喜欢看书。我还打算买一台 Chromebook 取代 Nexus 7, 但是暂时市面上没有一款我满意的产品,我希望今年圣诞节前有新的 Chromebook 出来。
我的桌面电脑使用 Google 定制的 Goobuntu Linux, 在使用上跟一般的 Ubuntu 没有什么区别。我的屏幕上通常只有三个窗口:Google Chrome、终端、和编辑器。我们在工作中使用的要么是命令行工具,要么有 Web 界面,这令我感到非常舒服。我使用 screen 管理多个终端,我通常会在其中一个里长期开着 Clojure 的 REPL 环境,做简单的数据处理再好用不过;我也常会把 Python 当计算器和命令行脚本用,不过因为它启动很快,就不必一直开着了。
桌面环境方面,自从 Gnome3 把 gnome 给毁了之后,我就改用 XFCE4。我只需要一个无需费神学习和配置,能够做好简单的任务:管理上述三个窗口,除此以外啥都别干的桌面环境,XFCE4 完全符合这个要求。
我在桌面和移动电脑上的主力文本编辑器都是 Sublime Text。我使用 emacs 和 vim 多年,为了他们的功能而辛苦地维护着超长的配置,忍受他们怪异的操作,而 Sublime Text 终于让我看到一个现代、跨平台、功能强大而操作正常的开发用编辑器的希望。
在笔记本上,Mac OSX 同时提供了优秀的图形桌面环境和 UNIX 命令行环境,而且不需要像 Linux 一样费神地做系统管理。我用 Alfred 快速打开应用和文档,用 Mac 标准的多点触摸手势管理窗口。应用上,除了跟桌面上一样的浏览器(Google Chrome)、终端(iTerm2)和文本编辑器外,我使用 Evernote 管理随手的笔记,我常常通过拍照把做在纸上和白板上的笔记存进 Evernote. 我用 Mou 写长笔记和文章,用 Mindnode 画思维导图。若要撰写正式文档,我会使用 Google Docs,它的在线协作功能对我非常重要。我的 Mac 上仍有全套 MacTeX 环境,但近来似乎它都没什么用武之地。除了 Mac 自带的命令行工具和开发工具链,我用 Homebrew 安装少数几个我仍需要的命令行工具。最后,我的所有个人文档都用 Google Drive 同步到云端。
我的其他应用都是 Web 应用,尤其是 Google Web 应用,无论是工作还是个人使用皆是如此。除了 Google 应用外,我使用得最多的非娱乐应用是 Feedly 和 Pocket.
我从 2003 年上大学开始就使用 Linux 作为主力操作系统,花了相当多时间配置和维护一个我自己用得非常顺手的桌面环境。但本质上我对“定制最适合自己的系统”这件事并不感冒,我既不是系统管理员也不是 UX 设计师,我希望把时间花在我更擅长、更有意思的事情上。在这个现代社会,我希望享受最先进的科技成果,有一套开箱即用的高效率工具,而不是拿来一个半成品自己打磨,分工促进社会进步。Ubuntu Linux 离这个要求已经很接近,而 Mac 做得是更好,下一步,我希望 ChromeOS 能超越他们。
提起 ChromeOS,这十年来云端 Web 应用逐渐占据了我的应用主流。这些年每次换电脑,我都会发现我花在配置电脑上的时间越来越少,因为越来越多需要自己安装、管理的桌面应用已经被 Web 应用取代,越来越多直至全部的个人文档都可以放在云端。当你不需要依赖本地应用时,ChromeOS 甚至能比 Mac 做得更好,秒速开机,无需配置一登录就能舒心使用,续航能力好,我对它抱有很大期待。
我希望我的设备在任何地方都能享受便宜、带宽近乎无限的无线网络连接,我希望他们充一次电只需要一分钟,然后可以持续使用一星期。我认为这应该跟屋里随时都有电,打开水龙头就有水一样理所当然,虽然从古代人视角看这就是天方夜谭。
我希望我的所有文件和应用都放在云端,在任何设备上都能同步访问。我希望有一个统一的视图管理、检索我在各个 Web 应用上的资料;我希望 Web 应用间能无缝协作——我应该可以用任何照片编辑应用编辑我在Flickr中的图片,我也可以把我的Flickr图片一键分享到任何社交网站,而且这不应需要各应用专门去为别的应用分别开发和适配接口。
Google 自己的应用大都能做到这一点。利用 HTML5 和 Google 提供的 API,其他应用理论上也是可以做到的。但大部分 “Web 应用” —— 或者只能称其为网站, 离这个水平还很远,他们宁愿把精力投在 iOS 和 Android App 上。
进一步的,我希望 Web 应用都有简便的可编程接口,可以轻松组合使用。在 UNIX 命令行,我们使用管道和简单的Shell脚本就可以把很多小工具组合起来完成复杂的功能,这点在 Linux 和 Windows 的 GUI 应用中都无法做到,许多人因此离不开命令行工具,讨厌 GUI。Web 应用呢?API 文档数十页,开发者密钥、接口调试搞死你。就算你不用 API,只抓页面分析 “标准” 的 HTML,难度也大大高于在 UNIX 命令行做文本处理。我不是说我们在开倒车,新不如旧,而是用户需求变高了,应用的功能和交互形式也更多样,实现应用的可编程和组合使用更困难了 —— 但我们应该为此努力。例如,在 Mac 中,利用 Automator 和 Apple Script,我们可以像用 Shell 脚本控制和组合命令行工具一样使用 GUI 应用,证明了这不是一定做不到。Web 应用,或者 Web 应用的支持环境,也该有类似的进化。
如果还能要求多一点,我还希望普通人能更高效地使用电脑,让他们花钱买来的软硬件都物有所值。程序员利用脚本能让电脑自动做很多的普通人只能狂点鼠标才能做的事,但这不是因为程序员就更聪明,更厉害,只是因为他们多懂了一种古怪的跟电脑交流的语言。其实,一个智力健全的人,能毫无障碍地说出:“如果Amazon上这个商品的价格降到100以下,就发信通知我”这样的话,电脑就应该有能力理解和执行这样的需求,为用户服务。比起给个关键字,就能理解用户需求,在浩如烟海的互联网资料中找到最相关,最有价值的文档这种梦幻功能,执行这么简单的一个”if…then…”,不应该被弄得很复杂才对。