探索高效工作生活:Stephen Wolfram 技术设备的一些细节
追寻高效
我是一个工作生活高效才会满足的人。我喜欢解决问题。我喜欢创造东西。我希望我能尽可能的做这些事情。我能做到这一点的部分功劳得归功于我拥有最好的个人装备。通过这些年,我一直在稳步的增加和创造为我自己打造的“个人设备创新”。我使用的这些东西确实很书呆子。但是他们确实帮助我变得高效。同时随着时间推移,他们中越来越多的工具会成为主流,其中的一部分已经实现了。
当然目前我为世界创造出了很长时间的一个庞大的“生产力创新”是围绕 Wolfram 语言的整个的技术栈。对于我个人来说,另外一个巨大的“生产力创新”是我的公司,我在 32 年前创办了它。确实,它可能(或许应该说是应该)更大,拥有更多的商业价值。但是作为一个被运转的如此漂亮的私人公司,拥有超过 800 位员工,它是一个超级变态高效的一个机器,它将想法变成现实。为了借助这个技能我不得不放大我的个人生产力。
我会聊一聊我是如何引导我的生活,同时如何平衡做领导、创新工作、与人们交流和做一些可以让我学习的事情的。我还会讲一讲我是如何努力把事情搞定的,那样我已经创造的一些工具不会让我太忙而不能去做一些创新。但是我要关注的是我更实用的个人基础设施:技术和其他帮助我生活和工作的更好,感觉不那么忙,每天更有生产效率的东西。
从一个学者的角度,构建这个基础设施的关键是结构,精简和让每件事情都尽量的自动化,同时认识到当前技术的可行性和并适合我个人。从很多方面来说,它是一个很好的计算思维上的实践练习,同时也是我花了很长时间创造出来的工具和想法的一个应用。其中很多的工具很可能对其他很多人来说都会很有帮助;一些工具则对我个人、我的情况和我活动的方式来说相当的实用。
我的日常生活
为了介绍我的个人工具设备,首先我不得不说一说我的日常生活。我是一个已经做了 28 年的远程 CEO,这个事情往往会让人感到惊讶。就像他们来的时候一样,我亲自当 CEO。但是我一年中还是有几次真正的出现在我的公司办公室中。大多数时候我都在家里,紧密的和公司保持着联系,但是纯粹的是通过现代的虚拟方式:

我和很多 CEO 一样,自己也会亲自做很多事情,同时也管理其他人的工作。成为一个远程 CEO 帮助我实现了它,同时还保持了专注。可能部分受到我的影响,我们公司推崇了一个非常分布的企业文化,员工分布在世界各地(这都是为了高效而不是为了显摆):

在我的桌面上,下面的图片就是它所有东西最基本的样子:

它一直是以这样布局摆放的。右边是公共显示器将用于和我交流的人们的屏幕分享。左边是我的私人显示屏,用于收发邮件信息和其他我要参加会议不太相关的事情。
大概从去年开始,我已经通过在线方式进行了软件设计的会议讨论,到现在已经累积了 250 个小时的共享屏幕,所有都是用右侧的屏幕进行的。
特别是因为我每天大部分时间都会在我办公桌上,所以我一直都在尝试优化它的工程学。键盘在合适的高度以适合于输入。显示器也在一个合适的高度,让我在盯着显示器的时候能让我的头保持一个正确的姿势,让我不会出现驼背现象,特别是考虑到我用了两个显示器。我现在还在使用滚轮鼠标(因为我是个左撇子,所以鼠标在左侧),因为至少是根据我最近的测试,我使用鼠标要比其他的定位技术都要快。
只要一按开关,我的办公桌就会升到我站立时的设定高度:

虽说站立办公比坐着办公要更好,但是我还是喜欢以一些更有活力的运动开始我一天的工作,我已经坚持超过十年保证每天早晨走上几个小时。你可能会好奇,在我行走的时候我会保持怎样的效率?大约在 15 年前(在站立办公流行之前的很长时间!)我在办公室旁的房间里为跑步机配置了一台电脑:

要保持生物力学并不太难。我发现通过在我的碗关节下正确的顶点放一个胶条(并且把鼠标放到一个平台上)我就可以一边走步一边舒适的打字了。通常我选择 5% 的坡度和 2 公里每小时的设置,至少这样我很适应,在会议的时候我认为没有人能够判断我是在走路。(是的,我会尝试把那些让人沮丧的会议安排在早上的走步时间,如果我确实感觉很无聊,我就可以把跑步机调快一点,这样把无聊走掉。)
我坚持记录我的个人数据已经有很多年,在最近的几年我加入了连续的心率监测数据。去年夏天早些时候,我注意到我休息的时候心率会很明显的下降。一开始我还以为是因为我系统性的做了一些我喜欢的事情。但是后边在夏天的时候,这种情况又一次发生了。后来我才发现:这些时间都是因为我没有在跑步机上跑步行走;而是因为别的一些原因我到户外进行了锻炼。
多年以来我爱人一直都会因为花时间在户外而被赞赏。但是这一直对我来说没有实践意义。是的,我可以通过电话进行交流(或者在很少的情况下,我会同我一起走路的人进行讨论)。或者我会带着一个平板走路,可能拿着看某人的屏幕分享,正如我那样在去年夏天的一个假期旅游中坚持了一个星期,相当的不时髦:

我曾经长时间的认真考虑过走路与工作同时进行。二十年前我曾设想通过一个增强现实显示和一个单手操作键盘来实现。但是这个技术没有到来,我还担心它的工程学是否可行(例如:是否会让我运动困难?)。
然而去年春天,我参加了一个绚烂的科技会议,我碰巧看到了一张画有 Jeff Bezos 和一条机器狗走路的照片。我个人对机器人狗并不感兴趣。而真正吸引我的是图片背后的真相惬意的通过一台固定在他前面的一台笔记本电脑,他就像是在卖爆米花一样。
有可能会有人像这样打字和做其他事情吗?在我发现我的心率问题之后,我决定尝试一下。我一开始以为我会自己做一个,但是我只需买一个行走的桌子,我就去买了一个。在经过了细微的修改之后,我发现我可以用它同时进行打字和走路,并且配合完美,即使是坚持几个小时。我对与我二十年前美想出这个简单的解决方案而感到无比尴尬。但是从去年秋天开始,只要天气好,我每天都会几个小时时间像这样在室外健步走:

同时即使我注意力集中在我的计算机上,在户外也是很棒的,当然这让我的休息心率降了下来。看起来我拥有足够的外部设备的期望,或者或许我应该在足够简单的环境中行走,我还没有绊倒过,即使是在我没有注意力全部集中的时候。当然我没有在公共场合这样行走,所以周围没有人群围观。当然我也没有遇到同我在 1987 年时拿着一个鞋子大小的手机在大街上行走所吸引到的注视的目光。
我的办公桌环境
同一张大木桌子我用了 25 年。不用说,我用了一些特殊材料。我个人组织的原则之一是任何的平面代表了一个潜在的“平衡点”都可能会累积物品,为了避免这种堆积东西的情况出现就是避免他们成为永久的平面。但是还是必须要一些平台,用于签字(现在还不是所有都是数字签名),或者吃点小吃。所以我的解决方案是安装推拉板。如果有需要的话,我就会拉出来。但是我不能让他们一直拉出来,所以在它上边就不会堆积物品了:

最近处理文件不是太多。但是一旦有文件在我桌上,我很喜欢把它归档起来。所以在我桌子后边我有一排抽屉,这里还有一个小技巧,每个抽屉的顶部都有一个槽,我可以不用打开抽屉就马上把东西塞进去:

通常我会几个月时间就把一个盒子装满;而现在似乎要花上几年时间。而且如果像现在的我这样变得无纸化办公,我放在桌子下的打印机都很少使用,而且还是在现在我每年都会读大量的论文的情况下。
这些年还有其他很多事情发生了改变。我一直希望我的主力电脑尽可能的强大。这么多年的话,它需要一个大风扇来处理散热问题。但是因为我真的很希望我的办公室保持超级安静(提高一定的安静程度有助于我保持注意力),我不得不把计算机的 CPU 部分放到另外一个房间中。为了实现这个目标,在这一层我安装了水冷管道,通过这样的手段我就不得不使用长距离的视频线。现在我终于拥有了一个没有安装大风扇的超级计算机,而且我也只是把它放在了我桌子后边。(事实上我在同一间房间里还有三台不那么安静的电脑和我的跑步机一起,这样当我在跑步机上的时候我就可以体验三个主流的运算环境,通过一个 KVM 切换器来进行切换。)
当我跟别人提到我是一个远程 CEO 的时候,他们通常会说:“你肯定会开很多的视频会议。”好吧,事实上我基本上没有开什么视频会议。屏幕分享就很棒,而且很关键。但是我发现视频会分散注意力。通常如果很多人都要参加的话,我会开一个会议,那样我需要获取到他们的信息。但是对于大多数的会议而言,我不需要对所有的会议都加以关注(如果他们把其他工作完成了的话,我会很高兴)。但是如果视频打开的话,如果看到有人没有集中精力的话,从内心里讲,这回毁掉任何一个会议的情绪。
考虑到这个原因,我就没有视频,声音是很重要的,在开会的时候我会特别在意声音质量。不开免提。不允许有糟糕的手机网络。我自己保持着很传统。我使用头戴式耳机(加了个衬垫来弥补我头发稀少的问题)配有吊杆式的麦克风。同时部分出于谨慎的原因我整天戴在头上的设备都是有线的,即使拥有了一根很长的线让我可以在办公室里到处走动。
虽然在会议室我不使用视频摄像头,但是在我电脑旁确实有一个文档摄像头。我会在讨论到手机或者平板的时候用到它。是的,我可以将它们的视频直接接入到我的电脑中。但是如果我们通过手机在讨论用户体验时,能够看到我手指在手机上实际的操作是很有帮助的。
文档摄像头在我需要展示一本实体书的内容或者任何种类的手工的时候也很有帮助。当我想画一些东西的时候,我将会简单的选择使用屏幕共享的注释功能。当我想尝试话一些更缜密的东西时,我会在文件相机下放一张纸,然后用笔来操作。我喜欢通过文档摄像头采集到的画面反馈到我屏幕上的感觉,我可以任意的缩放我想要的大小。(我曾经有一段时间尝试使用画板,但是我不喜欢他们把我整个屏幕都当成是一块画布的感觉,而不是一个我可以到处移动的窗口。)
在路上
某种程度上来说,我过着一个简单的生活,大部分都花在我办公桌上了。但是我离开办公桌的时间也有很多,像我在家里其他地方的时候,或者在室外走路的时候。在这些情况,我通常会带一个 13 寸的笔记本。当我要去到更远的地方时,这就变得有点复杂了。
如果我要做一些重要的工作,或者做一场演讲,我会带着这个 13 寸的笔记本。但是我不喜欢我没有计算机,同时背着这个 13 寸的电脑到处走的话也是很重的。所以我还有一个小的笔记本,只有 2 磅重,我可以把它装到一个小袋子里(不用说,电脑和背包上都有我们 Spikey 的标志):

过去的几年时间,除非我带更大的电脑,我会使用背包之外,不管我到哪儿我都“穿着”我的小电脑。最初我想要一个可以让我笔记本完全放进去的包,我可以找到最好看的包把电脑放进去之后,要露一点点出来。然而另外感到意外的是这样却很好用。当我与某人谈话的时候拿出我的电脑来是很好笑的,他们看起来很疑惑,问:“你从哪里拿出来的?”
我把我的手机一直都放在我的口袋里,如果说有没在口袋里的时候,我肯定把它拿出来了在用手机。用手机来检查邮件,删除和转发一些消息是很好用的。如果我想写一些很重要的东西,我就会拿出我的小电脑,用全键盘来操作。当然,如果我是站着的话,一个手拿着电脑保持平衡,另外一个手进行打字,这样操作是很不方便的。如果有的时候我知道我会站一段时间,我会带一个平板电脑。但是其他时候,我就只会用手机。如果我做完了当前我能做的所有事情(或者我无法连上网络)我通常会浏览我在所有设备上都同步的“要读的东西”文件夹。
回到 2007 年,我发明了 WolframTones,因为我想给我的手机设置一个独特的铃声。但是虽然 WolframTones 已经成为算法音乐的一个成功的代表作品,但是它在我手机上唯一可以找到的痕迹就是 WolframTones 编出来声音的图片,我把它做成了我的手机桌面背景:

当我有事外出的时候怎么记笔记呢?我尝试过很多技术性的解决方案,但是到最后没有一个满足了可操作性和广泛的社交接受度。所以我 40 年来一直保持做相同的事情:在我口袋里我带着一只钢笔,同时还有一张三折后的纸(那样这张纸就和信用卡一般大小)。这样非常的低端。同时每次我出去后回家我都会花上几分钟的时间把我写下的东西抄一遍,或者发送邮件或者别的事情。
我还随身携带了很小的“科技救生工具”。下边这些是我背包里装的一些内容:

中间是一个小的充电器,可以用来冲我的电脑(通过 USB-C 接口)和我的手机。我带了很多种类的连接器,这样我就可以连接像幻灯机这样的设备了。我还带了一个非常轻的三插电源适配器,那样就不至于从频繁使用的插板上掉下来了。
当我要进行“更重要的远行”时,我会多带一些下边这些东西:

我会带一个大容量的充电宝(不幸的是现在已经只能提供很短时间充电了)可以让我的电脑持续运转很多个小时。对于像商演这样事情,我会带一个小型相机,它会每 30 秒就拍一张照片,这样我就可以记住我看到过的一些东西。如过我要去野外,我会带一个卫星电话。(当然,我还会带着其他的东西,例如一顶又薄又软的帽子,塑料袋,眼镜布,洗手液,驱蚊液,名片,还有一些巧克力,等等)
为了让我在旅途上有条不紊,我会特意打包几个塑料信封:

在演讲的时候,会使用适配器(VGA,HDMI,等等)来连接到幻灯机上。有的时候会有一个有线网络适配器。(对于一些比较低调的演讲,我有时也会带一个小型幻灯机。)在车里还有一个二手手机用作 GPS,背后粘了一块磁铁和一个小零件,用来挂在汽车的空调上。还有一个单声道耳机,一个手机充电器,有的时候会放一个逆变器给我电脑使用。如果我拿着卫星手机,车上还有一个为它准备的工具,一个带有天线的磁铁,用来吸在车顶上,那样就可以接收到卫星信号。住酒店的话我会准备双耳的耳机,一个二手电脑充电器,还有一个加密过的我电脑的数据备份磁盘,以防我搞丢笔记本后配置新买的电脑。第四个塑料袋中的信封用来装我旅程中的东西,里边有小的信封,正好一天一个,用来放我的名片。
很多年前,我一直会带着一个很小的白噪声风扇,来作为背景噪音,特别是在晚上。但是在有些时候,我发现我不需要一个真正的风扇,我可以用一个 app 来模拟它(我曾经使用的是粉红噪音,但是现在我只用“空调的声音”)。对于一个人来说要预测室外的噪音有多大声是一个挑战(例如,第二天早上),然后它的背景音需要设置多大声。然后直到我写这篇文章,我才意识到我应该使用 Wolfram 语言中的现代音频处理来听外部声音,并调整背景音来覆盖它们。
我旅行的时候需要的另外一个东西是时钟。现在呢,它就是一个在我计算机上用 Wolfram 语言写的一小段代码。但是因为它是一个软件,它还拥有一些其他的特性。我一直让我的计算机保持在我家的时区,这样这个时钟就有一个滑动条来制定本地时间(不过,如果我要在半小时时区的话我就需要修改代码)。它还有一个睡眠计时器按钮。当我按下的时候,它就开始计时,这让我知道我睡了多长时间,无论我的生物钟给我的感觉是多少时间。(开启这个睡眠计时也会发一封邮件给我的助理,这样他就知道第二天早上我是否可以参加早会。右上角的“鼠标区域”是用来防止计算机进入睡眠状态的小技巧。)

只要条件允许,我都喜欢自己开车前往目的地。这里我和手机有很多不同的故事。但是最近,如果我在开车的话我会高效的进行通话。我会在我的“开车时间”中安排一些不需要我看任何东西的会议(是的,在我手机里编好固定的标准会议电话号码很方便,这样我就可以直接用语音进行拨号)。我维护了一个“开车时的电话列表”我就可以在开车的时候进行操作,特别是在一个对于我很陌生的时区的时候。
我一直有这个问题就是如果我坐在其他人旁边,他们开车我使用电脑的话,我会晕车。我认为我尝试了所有的办法,大车小车,软硬悬挂,前后排。没有一个不晕车。但是几年前,一个偶然的机会我发现我戴着降噪耳机听歌的话,我就不会晕车。但是当我在开车的时候我在用电脑想打电话怎么办?在 2018 年的消费者电子展览上,即使我儿子告诫了我“因为你不能区分他们在摊位上卖的是什么,那也不意味着他们的东西没有意思”,我在一个摊位停下脚步看着这些奇怪的东西,即使看起来很奇怪,但是他们确实可以让我远离晕车,至少在大多数情况下:

演讲
我做过特别多的演讲,给很多的观众。我特别喜欢做那些我以前没有涉足过的话题。我给最花哨的企业,技术和科学团体做研究。给学校小孩做演讲。我喜欢与观众互动(QA 环节是我最喜欢的部分),我还喜欢主动的观众。每次我都会以现场表演写代码结束演讲。
我年轻的时候我经常到处旅游。我也是在 1980 年才拥有我第一台便携式电脑(我第一台电脑是 Osborne 1 代),虽然那个时候我唯一让我保持高效的电脑生产率是把我的工作站电脑快递到我的目的地。然后在 1990 年代,我决定不去那么多旅行了(不仅仅是因为我在很努力的在一种新科学上进行研究工作)。所以有那么一段时间我基本上不做演讲。但是后来科技进步了。通过视频会议进行演讲成为现实。
我经历了几代科技的发展,但是我在很多年前就在我地下室打造了一个视频会议工作间。这套设备可以用很多方式重新配置(讲台、桌子等等。)但是我都有一个背投的屏幕,在上边我可以看到远程的观众们。镜头在屏幕的前面,这样放置是因为我可以直的看着它。如果我在使用笔记本或者脚本(虽然基本上很少这样)我有一个自己做的微型提词器,有半面镜子和一个笔记本电脑组成,那样我可以看到我摄像头。

同时它对我来说当我现场写代码的时候让我可以直接看到摄像头技术上具有可行性,这让我看着观众就像我在盯着太空一样,这感觉有点奇怪。当我明显的在看着显示器的时候,最好往下看一点。实际上通过一些设置过后让观众可以在屏幕正下方看到我电脑的一点点顶部会有一定的好处。
视频会议演讲在很多场景里都很有效(还有一些额外的乐趣,我有的时候会用一个远程临场机器人)。但是最近几年(部分原因是我的孩子们希望跟我一起旅行)我决定出去旅行还是可以接受的,我已经去过下边这些地方:

我清楚的记得 1980 年我买的第一台电脑投影仪。它是一个 Hughes 的“液晶光阀”,只要我把它连到一个 CRT 终端,它就可以漂亮的进行工作。从那几年后我在全球各地用着电脑投影仪,无论是在音频视觉效果极佳的环境,还是在室外用古老和糟糕的设备进行演讲。每次的随机性也很让人惊讶。每个地方都是你无法预期,到投影仪会不正常工作的地方,它却会正常工作。在另外一个没有人会认为投影仪会出故障的地方,洽洽它却停工了。
几年前我在 TED 做一个演讲,在这我看到我见过的最好的视听设备。然而在那里机器却意外的无法工作。幸运的是我们在正式开始的前一天进行了测试。但是它足足花了我们三个小时的时间来让这些顶级的投影仪成功的投影我的电脑屏幕。
由于这个昂贵的经验,我决定我最好自己弄明白计算机是如何同投影仪进行交流的。这是一个复杂的业务,它涉及到了让计算机和投影仪协作找到分辨率、宽高比和帧数等等。他们在两端都需要进行调整。下面有一些被称作是 EDID 的交换字符串,通常这些会被混淆在一起。计算机操作系统在最近几年在处理这些问题上已经大有改观,但是对于那些高调和高产值的会议,我有一个小盒子可以用来模拟 EDID 字符串,强制我的电脑发送固定的信号,而不去考虑投影仪实际上需要的数据。
我做的一些演讲完全是自愿的。但是通常情况我也会做笔记,甚至偶尔会做批注。我会用 Wolfram Notebook 来写这些东西。然后我会编码来编排页次,基本上复制每一页末尾的段落,这样我就拥有自己决定何时翻页的自由。在过去的几年我都会把这些笔记传到我的一台 iPad 上,我都会把它设置为触摸屏幕的时候打开这页。但是最近几年我都一直使用文件同步,用我的小电脑来记笔记,这样有一个优势就是当我在做演讲的时候我可以立即编辑它。
除了笔记以外,有时候我还想把其他格式的材料立马拿到演讲中来使用。现在我们拥有了新的演讲者工具系统,我可以开始创建更多的类似胶片一样的材料。但是这不是我传统的方法。相反我只需输入一段特殊的 Wolfram 代码,而不必花时间去清楚的输入它。或者我想从幻灯片中选一个图片立马展示到屏幕上,例如为一个问题进行解答时。(关于投影的分辨率有很多棘手的问题,例如:细胞自动机的幻灯片,除非他们是像素完美的,否则他们将会很糟,将他们像传统的胶片软件一样放大出来是感觉是不好的。)
所以说我该如何引入这些材料呢?我还有第二个连接到我电脑的屏幕,它的图像没有被投影。(是的这会造成很严重的 EDID 字符串混乱。)然后我就可以在那个屏幕上进行点击和复制。(我有一个 Wolfram 语言的方法,它会从输入和连接中做笔记,同时会给我一个画板我可以点击进行输入、打开网页等操作。)
在以前我曾经拥有一个很小的二手显示器来连接到我的笔记本上。但是它需要很多组装来让笔记本和投影仪连接到我的笔记本上了(有的时候可以用 USB,有的时候用 HDMI 等等。)但是现在我们可行选择使用 iPad,它是原生的软件(虽然与投影仪交互还是很挑剔):

有一段时间,我很时尚,我用了一台拥有 Spikey 标志而且带有背光的logo。但是 logo 里边的小菱形有点易碎,所以现在我大多数时候只在我笔记本上贴 Spikey 的贴纸:

我的文件系统
我每天都会使用的主力应用软件是:Wolfram 桌面,一个浏览器和邮件。我最主要的工作办法就是创建或者编辑 Wolfram 笔记本。这些是我今天记录的一些:

如果一天状态好,我会至少输入 25000 个单词到 Wolfram 笔记本中(是的我会记录我所有的关键点)。我都是以段落和子段落的形式来整理我的笔记本(这样很方便、自动填充到分级的单元中)。有时我会大部分都写文本到笔记中。有时是一些其他地方来的截屏,这也作为记笔记的办法。基于你正在做的内容,我也会在笔记本中做一些计算,输入 Wolfram 语言输入,获得结果,等等。
这些年我积累了超过成百上千的笔记本,演示产品设计,计划,写作和基本上我所做的一切。所有这些笔记都存储在我的文件系统里(当然也和云端同步,使用云端文件,文件服务器等等。)我遭受着保持我文件系统规整的管理痛苦,结果就是我可以通过我的文件系统轻松的索引找到我要找的笔记,比进行搜索还要快。
我确信我第一次认真考虑如何管理我的文件是在 1978 年(那也是我开始使用 Unix 操作系统的时候)。超过 40 年过去了,我经历了五代文件管理系统,每一代都是我在生活中组织管理我工作的一个反应。
例如,在 1991 到 2002 年期间,那时我正在写我的巨著《新型科学》我文件系统的一部分就是根据书的章节那样组织的。

我很满足到今天我还能立即例如说从这本书的在线版本的一个图片马上找到创建它的笔记本(Wolfram 语言的稳定性意味着我可以在笔记本中马上再次运行代码,虽然现在有的时候它们可以用更流畅的方式重写)。
这本书的分段大多都存在我的第三代文件系统的“NewScience/Book/Layout/”目录中。这个文件系统的另外一部分是“NewScience/BookResearch/Topic”。在这个文件夹里为我写这本书时研究的这些宽泛的主题建立的 60 多个子文件夹。在这 60 多个子文件夹中还有研究这些主题所新建的更深的子文件夹,这些主题通常会成为这本书的一个章节或者注释。
一些我对计算机文件系统的思考源自于 1970 年到 1980 年代我自己生活中的真实文件系统。回到那个时候,我还是一个年轻小伙子,研究物理学,我贪婪的为论文拍照。一开始我认为文档化这些论文最好的方式就是以很多不同的类别,不同的类别存储在不同的实体文件夹中。我仔细考虑了类别,常常会对这种以特定类别来关联一个特别的论文的聪明方法感到很得意。同时我还持有这个原则,如果在一个类别中累积了太多的论文,我就应该将它重新分类成新的类目。
最初这些看起来都是很好的创意。但是很快我意识到它有问题。因为当我想找到一个特定的论文却找不到的时候,我时常会想什么样的聪明才会让我将它与哪个类别关联。最终结果就是我完全改变了我的办法。与其坚持比较窄的类别,我允许比较宽泛,普通的类别出现,那样我就可以轻松的在这个单独的类别中找到 50 个或者更多的论文(通常都会找到这个类别对应的多个整理横好的实体文件夹):

是的,这样就意味着有的时候我不得不快速浏览超过 50 篇论文去找到那篇我想要的论文。但是实际上这个过程花费的时间也超不过几分钟。即使是这样的情况一天发生几次,我也获得了很大的胜利,因为这样我可以真正成功的找到我想要的东西。
现在我对我计算机文件系统某些部分也应用同样的原则。例如,当我正要针对某个领域进行收集研究时,我会把所有的这个主题相关的东西都放到以这个主题命名的文件夹中。有的时候我甚至会持续数年保持这样。然后当我真的处理这个主题的时候,我会浏览这个文件夹,找出我想要的内容来。
这些天我的文件系统被分成了一个使用中的部分(我会持续的同步到我所有的电脑上),和一个更归档的部分,这个部分我会保存在一个中心文件服务器上(例如,里边存储我比较老的文件系统上的文件夹)。
在我使用中的文件系统之保留一些顶层的文件夹。其中一个文件夹叫做活动。它里边装子文件夹有很多年了。我会为每一年我外出开展的活动新建一个目录。在那个目录中我会存放于这个活动相关的材料,演讲中使用到的笔记本,我会这个活动做的笔记等等。因为一年时间内我也不会参加超过 50 场活动,为了找到一个指定的活动,浏览某年的活动文件夹是很轻松的事情。
另外一个顶层目录叫做设计。它包括了我对 Wolfram 语言和其他我们正在创造产品做的所有设计笔记。目前里边有超过 150 个不同活动领域设计的文件夹。但是里边也有一个叫做“归档”的目录,里边包含了那些不再运营的领域。
事实上这是我文件系统面向项目部分的一个通用准则。每个文件夹都有一个叫做“归档”的目录。我会尽量保证在主目录的文件(或者子目录)都是一些处理中或者即将处理的状态;任何完成的东西我都会放到“归档”中。(我用大写字母来命名这个目录就能让它在目录列表中脱颖而出。)
对大多数的项目我都不会再去看“归档”中的内容。但是如果我想去浏览历史记录也是很轻松的事情。事实是简单才是最重要的,因为我不需要抱怨“这个已经完成了;让我把它放到‘归档’目录去吧”,即使是我认为这个项目还可能做出一些改变来变得再次活跃。
正如所发生的那样,这个办法在某种程度上来说是由于我在实体文档中的一些做法所启发。当我 1980 年代在贝尔实验室做咨询的时候,我看到我一个朋友,在他的办公室有两个垃圾桶。当我问他为什么的时候,他解释说一个是给真正的垃圾用的,另外一个则是临时垃圾筐,他会把他认为再也用不上的稳定丢到一个里边。他会让缓冲垃圾筐填满,一旦这个垃圾筐满了,他会把这个垃圾筐中比较里边的垃圾丢掉,因为从事实上来讲,他还没有把它们捞出来的话,他认为这些文件即使他丢掉他也不会眷恋它们。
不用说,我没有完全采用这个办法,事实上我保留了所有的东西,数字化或者纸质的。但是“归档”这个文件夹的机制点所在就是让我可以轻松的保存材料,同时让我可以轻松的找到那些正在处理中的文件夹。
我还有其他很多的习惯。当我在做设计的时候,我会特意把我的笔记命名成例如:Notes-01.nb 或者 SWNotes-01.nb 这种规则的名字。这就像我不保持太多文件类别的原则一样:我不会尝试将我的设计内容分类为不同的部分。我只是将它们顺序命名,因为我持续做某个特点的设计的时候,它大多数情况都是最近的或者在最近几个中。同时如果这些文件只是按数字顺序命名,这会很容易去找到它们;一个人不会尝试记住他给一个目录或者创意碰巧想出的一个名字。
很久之前我就开始以顺序的方式:file-01,file-02 等等这样的方式来命名文件。这样几乎任何的排序方法都会将这些文件按顺序来排列。同时,我确实会经常命名到 file-10 等。但是这些年来我甚至达到了 file-99。
把所有东西清楚摆放
当我具体的处理某一个固定的项目时,我通常会只用和那个项目相关联的文件夹。但是如果某一天状态好,我有在不同的项目上都有很多想法。同时每天我还要接收几百封与不同项目相关的电子邮件。但是在我真正认真专注到其中一个项目之前都会通常花费数月或者数年的时间。所以我想做的就是把这些我用这种方式累积的材料进行存储,即使过了很久我也可以随时找到它。
对我来说通常有两个维度决定一个东西应该存储在什么地方。第一个(毫无悬念的)是它的内容是关于什么的。但是第二个是我可能使用这个项目的类型。它是否可能成为某些产品的特性之一?它是否可以成为我某个正在写的文章的原始材料?它是不是可以成为学生项目的启发,例如在我们一年一度的夏令营?等等。
对于某些类型的项目,我存储的材料通常由一整个文件或者多个文件组成。其他的项目我只需要存储可以用几个字或者段落概括的句子。所以,例如,一个学生项目的种子就只是一个想法,我可以用一个标题对它进行描述,或许还可以加上几行文字总结。所以随便哪一年我都在一个单独的笔记本中添加类似的项目想法,例如:我会在我们的年度夏令营项目开始之前拿出来看一看并进行总结。
对于想这样我可能会写的片段,就稍有不同。在任何的时间,我可能会在某些时间点考虑写 50 个片段。接下来我要做的就是为每个都创建一个目录。每个通常都会有类似 Notes-01.nb 这样的文件,在这里边我会积累具体的创意。但是接着这些目录里也会包含完成的文件或者很多组文件,这些文件都是累积下来和这些文章片段主题相关的。(有的时候我会把它们规整到子文件夹中,并命名为“探索”和“素材”。)
在我的文件系统中,对应不同类型的项目都有各自的文件夹:写作,设计,学生项目等等。我发现适量的这类文件夹很关键(即使是我这样相当复杂的生活,也没有超过十二个)。当有新消息进来时,例如说是一封邮件,或者一段对话或者我在网络上看到的一些内容,或者是我想出的一些创意,我需要快速的找到应该和哪个文件夹相关联(如果有的话)。
有些时候它就像提一个“我应该把它往哪个文件夹放?”这样简单的问题一样。但是关键是拥有一个预置的结构让我可以快速做决策,同时这个结构还可以让我在很久以后还可以很快找到我想要的东西。
这里会有很多棘手的问题。特别是当经过很多年以后,一个人对某个主题的想法和称呼可能会有所不同。有时候这意味着在某个时间我会重命名一个文件夹或者其他类似的事情。但是就我而言,最关键的东西是在任何时间我会主动放入文件的文件夹总数足够少,我基本上能够记住它们。不同类型的项目我可能会建很多文件夹。其中关于特定主题的某些特定的项目需要新建子文件夹。但是我会努力限制处理中积累文件的文件夹总数最多几百个。
其中一些“累积文件夹”我已经保存了超过十年时间或者更长时间。一些会在几个月内出现并消失。但是大多数都会最多存在几年时间,基本上是概念化一个项目到这个项目为了实践的目的结束的时间段。
这不完美,但是最终维持了两个层级的文件夹。第一个层级,也是最重要的是我的文件系统。但是第二个层级在我的邮箱里。在邮箱中维护一个邮件文件夹有两个基本的原因。首先是它即时的便利。有的邮件来的时候我会联想“这是与那个我计划要做的项目相关的”,我想把它存储在一个合适的地方。那么如果这个地方是一个邮件文件夹,我所要做的就是用鼠标移动这封邮件到那个目录中去(或者可能是一个按键的问题)。例如我不会不得不查找一个文件或者文件系统目录来存储这封邮件。
同时还有其他好的原因保持邮件是邮件原本的样子:连线。在 Wolfram 语言中我们拥有从邮箱导入和连接到实时邮件服务器的功能。我们会很快发现邮件对话(实际上是超文本)有多复杂。邮件客户端浏览这些对话当然不够完美,但是这也比拥有一堆独立的文件要更好使用。
当项目定义相当明确,但是还没有很好的归档,我趋向于使用文件系统文件夹而不是邮箱文件夹进行管理。一般来说这些项目中的内容是相当独立的邮件。我发现最好的办法是把他们拖入到合适的项目文件夹中,或者复制出他们的内容,添加到笔记本中。
当一个项目相当活跃,可能会有大量关于它的邮件,同时保持关联的结构是相当重要的。同时当一个项目还没有很好的定义时,我就只想把所有关于它的东西都丢到一个篮子中,不用必须去思考如何组织他们到子目录或者笔记本等里边。
如果我看着我的邮件文件夹,在我的文件系统中我会看到很多那样并列的目录。但是有的却没有并行,特别是与长期项目概念相关的目录。我有很多这样的文件夹,他们保持现状以及有十多年了(目前我所有的邮箱目录管理超过了 15 年)。有的时候他们的命名不是特别完美。但是目录很少,我已经看了他们够长时间了,我知道里边我放了些什么内容,即使是他们的名字并没有完全符合意思。
每当我准备处理一个项目的时候都会很有满足感,我会打开这个项目的目录,开始浏览消息,通常从很久以前开始。在前几个周,当我们总结 Wolfram 语言的一个主要的心版本时,我开始往前看,我浏览到的目录都包含有 2005 年的消息了。当我保存这些消息,我还没有一个明确的框架来完成这些文件夹相关的项目。但是现在我有了。所以当我浏览这些消息时,我可以快速的将他们放到合适的激活的笔记本中。然后我会从邮箱目录中删掉那条消息,最终一旦邮箱目录空了,就删除整个邮箱目录。(和文件不太一样,我没有发现为这些消息提供“归档”目录并没有太多的帮助;邮件太松散了,组织的不够好,所以为了找到一个特定的项目,我将可能会最后不得不进行搜索,当然我肯定把我所有邮件都存储下来了的。)
好吧,我使用文件系统,同时还使用邮箱。在我们公司我们还有一个扩展项目管理的系统,和其他所有种类的数据库一样,请求跟踪器,代码管理系统等等。大多数情况下我工作的性质不会让我直接与这些东西接触,同时我也不会将我的个人产出存储到这些介质当中。在不同的时间,不同的项目,我都如此。但是现在我和这些系统的交互关系是我基本保持一个浏览角色而不是作者角色。
除了这些系统,还有很多其他的事情我需要通过网页去进行处理。这些可能是一些公共网站例如:wolframalpha.com 或者 wolfram.com。他们也可能是我们公司的内部网站。他们可能还是一个初级版本(例如:“测试”或者“开发”版),未来会成为一个公共网站或者基于网络的服务。我有一个个人首页,我可以轻松的访问到所有这些东西:

这个首页的源码不用说是一个 Wolfram 笔记本。我可以在我的文件系统中编辑这些笔记本,然后按一个按钮就把这个版本发布到 Wolfram 云上。我为我的浏览器安装了一个插件,那样每次我新建了一个新的窗口或者页签,初始化出来的文档都会是我的个人首页。
当我要去做某件事就的时候,我只会去到某几个地方。一个就是网站首页,每天我都会访问几百次。另一个就是我的电子邮件和文件夹。还有一个就是我的桌面文件系统。基本上来说唯一有意义的另外一个是我的日历系统。
偶尔,我会开到别人的计算机,和他们的桌面系统铺满了文件。我的桌面完全是空的,白纸一张(方便全屏分享和在线直播)。如果说在我的电脑桌面上能看到任何的文件,我会感到很羞愧。我会把它当成是一个我努力把我所做变得有序的一个失败的信号。对于“文档”和“下载”这样的通用文件夹也如此对待。是的有些情况下应用程序等会将文件放在这里。但是我会考虑把那些文件夹挪一个地方。他们中的内容没有一个可能会成为我长期有组织的计划结构的一部分。同时他们也不会同步到云上,或者其他的电脑上。
无论我的文件是如何组织的,他们的一个特点就是我会保存他们很长一段时间。事实上我最古老的文件要追溯到 1980 年。在那个时候还没有云的影子,除非它叫做分时系统。事实上我在分时系统上遗失了很多文件。但是在我内部部署的计算机上的文件还在(但是公平的说,有的文件必须从 9 轨的磁带中读取出来)。
今天,我已经可以让我所有的文件(和所有的邮件)实时的存储在我的内部系统上。是的这机器部署在我的地下室:

最开始的存储是标准的 RAID 磁盘阵列。它们备份到了我公司总部的计算机上(1000 公里以外的),那里用标准磁盘进行备份。(在最近这些年,我只有一次从备份磁盘上边恢复数据的经历。)同时我还将我更多活跃的文件存储到云上,和我所有的不同种类的计算机中。
所有的小便捷
我个人输出最主要的两个形式是电子邮件消息和 Wolfram 笔记本。自从我们 30 年前第一次引入笔记本以来,我们已经将我们的笔记本系统优化到我可以只用按一个键就可以创建一个默认的新笔记本的程度,然后我可以立即下载并执行自动生成的有漂亮结构的文档。(同时通过这样的方法,我们也很高兴我们成功的维护了它的兼容性长达 30 年:我 1988 年第一次创建的笔记本现在还可以运行。)
然而有些时候,我做的笔记本不是给人们使用的,而是给一些自动化脚本提供输入数据的。因为这个原因,我使用各种专门设置的笔记本。例如:如果我想在我们新的 Wolfram Function 仓库中创建一个输入项,我只需要在菜单栏(在 12 版本的系统支持此功能)选择:文件>新建>仓库项目>函数仓库项目:

这样可以有效的提示我增加需要添加的项目和章节。当我要完成添加时,我可以点击“提交到仓库”按钮,将这个笔记本发送到我们中心的仓库项目检视队列中(同时因为我是 CEO 也不能让我免除检视这个流程)。
实际上我创建了相当可观数量的内容,这些内容都是为了将来处理所创建的。一个大类是 Wolfram 语言文档。为了创作这个,我们拥有一个内部系统,叫做 DocuTools,它是基于一个开发了很多年的巨大的调色板,这经常让我想起飞机复杂的驾驶舱:

DocuTools 工具的想法是为了尽可能的符合人体工程学,让他帮助作者写作。现在它有超过 50 个组件(一些组件显示在上边),所有都加一起不少于 1016 个按钮。如果我想新建一个页面来写 Wolfram 语言的函数,我就秩序按新建方法页面按钮,然后就弹出来了:

这个页面一个非常重要的部分就是顶部叫做“Future”的那部分。它表示即使这个页面会在我们控制系统中进行存储,但是它还没有准备好:这还是我们为将来所考虑的东西。这个系统在构建我们的官方文档的时候会忽略这个页面。
通常我们(实际上一般指的是我)会在一个方法实现之前为这个方法写文档。这里我们会囊括这个方法未来所有可能拥有特性的细节。但是当这个方法真正的第一次被实现的时候,他们中的一些特性可能还没有准备好。为了处理这种情况(未来的特性)我们预测了这个文档的一些部分,给它添加了一个很显眼的粉红色背景。但是它还是在代码控制系统中,我们每次看这个代码的文档的时候都会看到。但是当这个文档页面被发布出去的时候是不被包含进去的,人们是看不到的。

当然 DocuTools 也是由 Wolfram 语言编写的,广泛的使用了 Wolfram 笔记本的符号结构。同时经过了这么多年,它已经成长到可以处理很多不局限于文档中的东西;事实上,对于我来说,它成为了我创造所有基于记事本内容的主要枢纽。
举例说明,在 Stephen Wolfram 博客上有一个按钮。只要点击它,你就会获得一个准备好的笔记本等待你输入。但是在 DocuTools 里有一长串的按钮,让用户可以插入建议和编辑。当我写了一篇博客之后,通常会返回以下内容给我:

粉红色的框框意思是“你需要修改一下”;黄褐色的框框表示“这里有评论”。点击框框都会弹出一个小的对话框:

当然,在市面上还有很多修改跟踪和红标系统。但是通过 Wolfram 语言,创建一个定制化满足你需求的文档就变得更简单,所以这就是我已经完成的样子。在我使用这个工具之前,时常会花费我几个小时的时间来浏览编辑建议(我记得我做过一次夸张的 17 个小时的航班,在飞机上我基本上花费了所有的时间来浏览完一篇文章的建议)。但是现在,因为这个软件所有的优化都是针对我的,我可以提高 10 倍左右的速度。
经常这些工具都是为我定制开发的,但是最终都会适配一下让其他每个人都可以使用。举一个授课和创建视频系统的例子。我希望可以单手完成这个操作,和我进行在线直播有点类似。我的想法是创建一个脚本包含要说的单词和要输入的代码,通过录屏实时记录我浏览脚步的视频。但是这个输入如何运行呢?我不能用手来输入他们,因为这会打断我正在进行谈话的流畅性。但是最显而易见的办法就是把它们自动输入到笔记本中。
但是这些东西应该如何策划呢?我从一个脚本开始:

然后我点击“生成录制配置”。马上在屏幕的一个地方就会显示一个小窗口,然后我设置我的录屏系统来录制这个区域。屏幕其他地方就是代码。但是如何控制呢?它们在另外一个 Wolfram 笔记本里,它碰巧和画板里的按钮一样操作:

事实上我该如何操作这个画板呢?我不能使用我的鼠标,因为那样我可能会在我正在录制的屏幕中的笔记本上失去焦点。所以我的办法就是将这个操作板显示在一个扩展的桌面上,这里刚好显示在了一个 iPad 上。然后我就可以通过 iPad 上的按钮演示脚本了。
在操作板上有一个很大的“Advance”按钮。我们假如我们已经读到这个脚本的某一个地方,我需要输入一些内容到笔记本中。如果我想真正的输入内容我可以按“Slow Type”。它会一次性输入字符到笔记本中(我们测试过人们打字的键盘分布,并进行了模拟)。过了一段时间看着这些慢速输入很烦人。所以之后我就开始使用“Type”按钮,可以复制一整段输入粘贴到笔记本中。如果我再点一次,它就会执行它的下一个动作:计算。这也等价于在笔记本中同时按下“Shift”和“Enter”(一些视频的时候还可以弹出额外的窗口)。
我本可以继续谈论我用 Wolfram 语言开发的其他一些工具,但是这还是给人以回味吧。但是我什么时候不使用 Wolfram 语言呢?我使用网络浏览器和访问到浏览器的工具。而且我会非常频繁的访问 Wolfram Cloud,例如:查看或者使用云上的笔记本。
有时我会使用我们公共的 Wolfram Cloud。但是我用私有 Wolfram Cloud 更频繁。我们内部会议大部分的日程安排都发布在我们内部 Wolfram Cloud 中。我在我本地也运行着一个私有的 Wolfram Cloud,上边我跑着越来越多的应用。
下边是我电脑上任务栏即时的样子:

这里有一个文件系统浏览器;电子邮件客户端;三个网页浏览器(是的,我喜欢在不同的浏览器上测试我们的产品)。然后还有一个日历客户端。下边个是我们 VoIP 电话系统的客户端(目前我正在这个软件和同时使用音频和我们的屏幕共享系统间抉择)。然后,是的,至少我还有一个音乐 app。但是我不得不说我每天的安排很少会留有时间去听音乐。可能我听音乐最有可能是我已经有很多很多的邮件没有处理,而我需要调起我的情绪去挨个处理上千个消息的时候。只要我在写任何一般的内容,我就会暂停音乐,否则我就不能集中精力。(我必须找没有人声的音乐,因为如果我听到人的声音就没法全速阅读。)
有时候我会打开一个标准的文字处理工具,电子表格,等等这样的应用,因为我打开了一个和这些应用相关的一个文档。但是我不得不承认,这些年我从未使用这些应用来写一个文档;我都是用我们自己的技术来代替。
偶尔我会打开一个终端窗口,直接使用操作系统的命令。但是这也变得越来越少见,因为越来越多的时候我都在使用 Wolfram 语言作为我的超级终端。(确实,使用笔记本进行存储和编辑命令是难以置信的方便,还能够持续的有图形和结构化的产出。)
正当我在写这篇文档的时候,我发现了我们还未实现的一点点小的优化。在我首页,有很多做了很多复杂事情的链接。例如,首先一个为我发起未事先安排的直播的准备:它会发送消息给我们的 24/7 系统监控团队,那样他们就可以获取到我的种子,进行广播,并收集反馈。但是我发现我还需要操作很多定制化的操作命令,例如我需要从终端窗口输入命令从代码库中更新最新的内容。我需要在我的私有云上设置好这些,那样我就可以只用点我个人首页上的链接就可以用 Wolfram 语言来执行这些命令。(为了公平,一些命令很古老;例如,我的 fmail 命令就可以定时发送邮件消息,这个命令就是 30 年前写的。)
好吧,但是如果我看看我的应用库,Spikey 的应用肯定占了大多数。但是为什么了,例如,是否我真的需要三个相同的标准 Spikey?他们都是 Wolfram 桌面应用。但是有三个版本。第一个是我们最新的发行版本。第二个是我们最新的内部版本,通常每天都会更新。第三个(白色背景的)是我们的“编译原型”,也是每天更新,但是有很多“除血”特性,他们还不准备进入到真正的测试当中。
这需要非常好的操作系统来每晚安装这些不同版本的软件,同时正确的注册文件类型。但是这对我的工作流来说是很重要的。特别是我会使用最新的内部版本(当然我有一个目录装了很多之前的版本),但是偶尔,例如在一些特别的会议上,我会使用原型编译版本或者我会切换到发行版本,因为需求不一样。(处理不同版本这个事情在云上要来的更简单,我们有一整套不同的配置运行在我们的内部私有云上,有所有组合的内核,前端和其他的版本。)
当我做演讲和别的时候,我基本上都会使用最新的内部版本。我发现在观众面前现场编码是一个发现 bug 的很好的办法,即使是有时候让我不得不解释,我把它称作“作为软件公司 CEO 的一种病”:希望一直用最新的版本,即使它还没有被严格的测试,昨晚才被刚刚编译出来。
归档与搜索
我个人基础设施的一个比较重要的功能就是实际上扩展了我个人的记忆能力:我的“MetaSearcher”。在我个人首页的顶部有一个搜索框。输入例如“rhinoceros elephant”马上我就会从过去发送和接收的邮件中找到出现了这个关键词的邮件列表,同时和我计算机上的每个文件,和每个我归档的论文文档:

对我来说显示每年的消息数量是很方便的;它会帮助我回忆起我想要找的问题背后的历史和故事。(通过这种方式,我可以看到 2008 年是一个顶点,那个时候我们正准备发布 Wolfram Alpha 版本,我正在处理很多类型的事情的数据,包括类别。)
当然,我的 metasearcher 可以工作的最重要的原因是我已经存储了这么多东西。例如,我竟然有 30 年来我写下的 815000 或者更多的邮件,同时还有 230 万封接收的邮件(大多数都不是垃圾邮件)。还有,是的,我 32 年来拥有的这个 IT 基础组织良好等等的公司也给予了巨大的帮助。
当然对于邮件来说,它有着生来就是电子化的特性。但是对于那些一开始例如说是纸质的内容?好吧,在我生命的大部分时候都类似于一个“信息化的打包老鼠”。事实上,我一直很好的坚持保存文件,当我 1968 年还在读小学的时候。他们从那之后已经重新打包过三次,现在主要的部分被存储成这个样子:

(同时我还保存了关于人们,企业,回忆,项目和话题的文件目录。)在 1984 年的时候我产生纸质文档的速度就开始提高,然后又迅速下降,因为我变得更数字化。所有加起来总共有 25 万页的非批量打印的文件,大多数都来自我生命的早期。
大概 15 年前,我决定我需要让他们变得可以搜索,所以我开始了扫描他们的一个项目。大多数的文档都只有一页或者几页的长度,所以他们不能够被自动化的处理,所以我们用高分辨率的相机进行处理(这那些日志我们还需要闪光灯)。这花费了一个人几年的时间,但是最终所有的文档都被扫描了。
我们自动进行了裁剪,然后白平衡处理(使用 Wolfram 语言的图像处理),然后将它们文字识别了,然后将文字识别后的文本做为一个图层放在了扫描后的图片上边。如果我现在搜索“rhinoceros”我在我的归档中找到 8 个文档。考虑到搜索的关键字,不出意外的,他们会有一些随机,例如,包括小学时候 1971 年 Easter 的杂志。
文字识别对于印刷文本很有效。但是对于手写文本呢?相应的,即使是手写的,通常至少都是写在信签纸上。当时我有很多页的手写笔记,他们上边都没有任何的印刷字。纯粹的从图像从识别手写文字(不需要时间的累积)还超越了目前的科技水平,但是我希望我们基于神经网络的机器学习系统将会很快攻克这个难题。(幸运的是,我有很大一部分的文档,都有手写版和电子版,所以我希望至少为我的手写体进行机器学习的训练。)
但是即使我不能搜索手写的材料,但是我通常也可以在正确的文件夹里找到想要的东西。我最要的被扫描过后的文档被放在了 140 个盒子中,每一个都涵盖了我生活的一个重要阶段或者项目。对每个盒子,我可以拉起一个盒子中装有文件的缩略文档,以文档进行分组。所以例如这里是我 11 岁的时候在校期间的地理笔记,和我的演讲稿:

我不的不提到的就是,不管我什么时候去浏览我十多年前扫描过后的文档,最终我都会找到一些出人意料和有趣的东西,他们通常都会教会我一些关于我自己的东西,以及我是如何发展到这条特定的方向中的。
这可能对于我的生活来说相当的具体,也是我建立长期事物积累的一个事实,以及我在很长一段时间来与很多人都保持联系的事实,但是令我惊讶的是,我几乎每天都会遇到相当古老的个人历史。某些人或者某些组织会联系到我,然后我会寻找 35 年内的所有与他们的沟通交流记录。或者我会思考一些事情,我会依稀记得我在 25 年前曾经处理过类似的事情,并且回去看看我都做了什么。我碰巧有很好的记忆,但是当我真正看到之前我做的材料时,我又会被我遗忘掉如此多的细节所惊讶到。
我第一次设置好 metasearcher 是在 30 年前。目前最新的版本是基于 Wolfram 语言的 CreateSearchIndex/TextSearch 实现的,运行在我的个人私有云服务器上。并使用 UpdateSearchIndex 每隔一分钟进行更新。metasearcher 同时也获取来自于搜索我们公司网站和数据库 API 返回的结果。
但是不是所有我想要的东西都可以通过搜索查询到结果。另外一个查找东西的机制就是我的“个人时间线”。多年来我一直想扩展它,但是现在它基本上包括了我外部会议的信息,大约每年有 40 场。最重要的部分通常是我“个人旅行报告”,我都精心的记录它们,如果有可能都会在 24 小时内完成。
通常旅行报告都是纯文字记录的(或者至少,在笔记本中的文本结构)。但是当我去例如商演这样的活动时,我通常会带一个小型摄像机,它会每 30 秒就拍一张照片。如果我戴有姓名牌的话,我通常会把相机别在姓名牌的上边,除此之外我还将它放到理想的高度以便捕获我见过的人的姓名牌。当我写我的个人旅行报告的时候,我会特意去看看这些照片,有时候会复制部分到我的旅行日记本中。
但是即使拥有现在我这样多种方式获取归档资料的手段(现在还包括聊天信息,直播文件等等。),邮件始终还是占据着它最重要的位置。几年前,我决定让人们轻松的找到我的电子邮件地址。我的打算是,如果有人想联系到我,那么在现代社会他们通常最终会找到一个方法,但是如果他们可以很简单的发邮件,那这就是他们可以联系我的方式了。是的,把我的邮件公布出来意味着我会收到很多来自全世界陌生人的来信。有的邮件还相当的奇怪,但是很多也很有趣。我会尝试浏览每一封邮件,但是这些邮件也包含了一个请求跟踪系统,那样我的员工就能保证重要的事情可以得到处理。(对人们来说在邮件的主题行看到例如 SWCOR #669140 这样的请求跟踪记录单元数据会很奇怪,但是我认为这是为了保证邮件真正被回复需要付出的一点点代价。)
我曾提到过,几十年以来邮件已经成为了我们公司内部重要的沟通交流方式(因为我们员工分布在全球各地)。同时我们有项目管理,代码管理,CRM 和其他的系统,同时还有聊天软件。但是至少我在公司交流的部分来说,电子邮件是压倒性的主导地位。有的时候个人邮件在人们之间发送。有的时候则是群发邮件。
在我们公司,我们邮件组的数量超过员工数量是一个正在发生的笑话。但是我们已经仔细的去组织这些群组,例如通过名字的前缀去识别不同类型的群组(t- 则是项目组团队的邮件列表,d- 则是部门组的邮件列表,l- 则是一个开放的邮件列表,r- 是一个自动生成的报告邮件列表,q- 是一个请求邮件列表,等等。)对于我来说,至少它让我记住了正确的邮件列表。
人与事物的数据库
通过我生活的不同部分,我认识了很多的人。回到 1980 年,我曾为此维护了一个他们的列表文件(在此之前是一本手写的地址本)。但是到 1990 年的时候,我决定拥有一个更系统化的数据库,并且创造了一个我叫作 pBase 的工具。最近几年 pBase 的原始开发技术似乎有点陈旧,但是现在我拥有了一个更时尚的版本,使用 Wolfram 语言开发,跑在我的个人私有云服务器上。
这非常的棒。我可以通过人名或者属性进行搜索,或者,例如,如果我要拜访某地,我就可以用 pBase 来显示出我最近的信息中有哪些人住在附近:

pBase 是如何同社交网络联系起来的呢?我有一个 Facebook 账号,但是很少使用,但是它总是以实现最大化用户为中心。LinkedIn 我就更认真对待了,都只与我真正交流过的人添加好友(目前,在 LinkedIn 上,我拥有 3005 个联系人,所以我确实很很多朋友讨论过)。
通过 ServiceExecute 我可以很方便的经常下载我 LinkedIn 上的数据,并更新到我的 pBase 里。但是 LinkedIn 也只包括了我认识的一部分人。它不包含很多我更接触频繁的朋友和熟人,还有大多数的学者,学生等等。
最终我肯定会对 pBase 进行更深入的开发,可能会让这个技术适用更广泛。但是在我们公司内部,已经拥有了一个系统呈现了一些潜在的愿望:我们内部公司文件夹,运行在我们内部私有云服务器上,基本上使用 Wolfram Alpha 版本的自然语言理解,让人可以用自然语言进行提问。
我要再次提到我们公司的文件夹,我们还维护了另外一个数据库,至少我觉得很有用,特别是当我尝试去寻找谁可能会知道一些不寻常的问题时,或者我们可以为一些新项目挖据哪些人。我们把它叫做“谁知道什么”数据库。这个数据库给出的每个人的经历和兴趣的资料。这里是一个我个人的例子(这里则是问题的具体情况):

在个人数据库方面,另外一个对我很有用的是一个书籍的数据库。我在过去的十多年并没有购买很多的书,但是在此之后我积累了一个超过 6000 卷的图书库,这不是很常见,特别是当我还在做很多以历史为导向的研究时,我想查阅其中的一部分。但是它们应该怎样管理呢?大型分类模式例如 Dewey Decimal 或者国会图书馆都有点过度,并没有很好的匹配我个人的认知地图的主题。
例如我的文件系统文件夹,或者我的实体的论文文件夹,我发现了最好的模式就是将他们放到尽可能宽泛的类别中,数量足够小,我就可以在空间上记住他们在我图书库中的位置。但是书籍应该如何重新安排在一个类别中呢?
好吧,这里我讲一个警示意义的故事(我妻子经常将它作为案例教育我),在我这个类型的方法中可能会出现什么样的问题。总喜欢了解想法的历史进展,我认为在书架上在一个类别的书中,以历史顺序来排序是很好用的(例如,以第一次出版的时间顺序)。但是这会导致查找一本具体的书变得困难,或者重新摆放它。(如果书籍的出版日期印刷在它们的书脊上将会很简单。然而他们并没有这样做。)
大约在 20 年前,我准备把我所有的书都转移到一个新的地方去,摆放在不同长度的书架上。然后我就遇到了如何在新书架上摆放的问题(“量子场理论有多长,哪里可以放得下他们?”)所以我想:“为什么不只测量每本书的厚度,而我还在量它们的高度,并记录颜色?”因为我的想法是这样,燃文我就可以为每个书架做一副图片,每本书都显示真实的宽度和颜色,然后在这个图里放一个箭头来标识一本书的具体位置(从其他书的标识中可以很直观的识别)。
我有一个色度计(这是在数码相机普及之前)然后就开始测量工作。但是这是一个比预期要来的更体力活的任务,然后,不用说,在搬书之前还没有完成。与此同时,在搬书的那一天,我注意到打包的盒子可以装更多的书,如果说打包的人不从书架上拿一摞书下来,而是将书插到空隙中去的话。
最终结果是 5100 本书送到了,基本都打散成了随机顺序。花了我三天的时间来重新整理它们。这个时候我决定把事情想简单一点,每个类别按照作者的姓名字母顺序来排列。同时这在找书的时候很好用。但是我大书库项目的一个结果就是,我现在确实拥有了一个满意的,可以运行的版本,至少所有书都与写作《一个新科学》相关,同时当然它已经在 Wolfram 数据仓库中了:

个人分析
2012 年的时候我写了一篇关于我个人数据分析和我自己收集数据的文章。回到那个时候,我在归档中有超过上三十万个已发送邮件;到现在大概有五十万封或者更多,同时我可以画出我发送邮件的时间分布图:

(中间比较大的空白部分是我正在睡觉,是的,因为我改变了项目,例如 2002 年的时候完成了《一个新科学)一书,我的睡眠习惯也跟着改变了;我现在还在实验更早的睡觉。)
我永远保存各种类型数据的系统,包括我每次键盘敲击的记录,我走的每一步还有我的电脑屏幕每一分钟的样子(不幸的是,这个电影非常无聊)。同时我还有全套的医学和环境上的传感器,同时还有所有和我交互的设备和系统的数据。
经常用这些 Wolfram Data Drop 数据库来对我的日常生活进行一些数据科学研究是很有意思的。同时,在长期来看,我发现我是极其一致和习以为常的,虽然每天都有不同的事情发生让我的生产力(正如我以多种方式进行测量)波动,通常看起来有点随机。
但是收集所有这些数据的比较有意义的事情就是我可以用它来创建仪表盘,这些我发现对我每一天都很有用。例如,在我私有云上运行的一个检测我邮件的系统:

黄色的曲线是我的全部邮件的数量;红色的曲线是我还未阅读的邮件数量。这些曲线对于我日常生活的所有的特性都很敏感,例如当我紧张的在处理一些项目的时候,我通常会看到我的邮件停顿下来一段时间。但是不管如何,我发现在指导我以什么速度做和应该做什么上我发现这个邮件仪表盘还是很有帮助的。
同时每一天收到前一天的邮件报告是很有帮助的。我在什么应用中敲了多少次键盘?我创建了什么文件?我走了多少步?等等。
同时我还记录我健康和药物的数据,并且已经坚持了很长的时间。在很久以前就开始记录这些数据的话是很有意义的,这样你就可以画出几十年的时间序列,观察是否有任何的改变。事实上,我注意到的事情往往是那些很多年保持数字上一致的数值(例如血压水平),但是很多由实验室给出的“正常范围”在所有的地方已经有所反弹。(事实上来说,实验室从特定的观察人群中推测正常的范围并没有很大的帮助。)
2010 年的时候我获得了我的整个基因序列。虽然我还没有从中发现任何戏剧性的东西,但是它确实帮助我,当我知道论文中提到的一些 SNP 变量时,让我感受到我和基因研究联系起来了,然后我可以马上回去看看我是否有这个变量。(随着各种各样的变迁,方向和构建数字,我趋向于坚持第一原则,只需要寻找侧翼位置的序列。)
正如我在这篇文章中描述的很多东西一样,在我个人数据分析实践中有用的方法都很简单。例如:我从未放弃解决记录我吃过什么食物的问题(我们的图像识别系统还不够好,现在甚至是只为我所用的应该,输入食物时一直还有点太费劲)。但是不管什么时候我拥有了一个可以自动操作的系统,那个时候我就可以成功的收集正确的个人数据了。并且展示在仪表盘和日常邮件汇总,来帮助提供反馈,并且持续检查是否系统出现了任何的异常错误。
前方的路
我已经相当细节的描述了我个人科技基础设备是如何设置起来的。它也一直在变化,而我也一直在尝试更新它,例如,我好像剩下了很多装满东西的盒子,再也不使用它们(是的,我会获得每个我发现有趣的新设备或者工具):

但是想一下设备这些的东西会变化,但是我发现我组织我的基础设施的原则却一直保持着令人惊叹的一致,仅仅变得越来越闪亮。至少它们都是基于我们稳定的 Wolfram 语言系统,我发现这样的规则同样适用于我们创造和实现的软件系统。
未来是什么样的呢?有的事物肯定会有提高。我在写这篇文章的时候发现我现在已经可以升级到 4k 或者更高分辨率的显示器了,以免影响屏幕分享(画质被自动降级了)。不久后我可能就会使用 AR 来实时介绍我的环境了。也可能最终我会用一些办法来做基于 XR 的身临其境的视频会议。还有可能我最终会使用类似于 EEG 的东西来提高我的输入速度,因为我已经估计过这会在 40 多年内实现。等等等等。
但是更重要的改变将是更好的研发,更自动化的工作流。随着时间的推移,我期望它可以使用我们的机器学习工具来完成自动化的计算,例如,为我所做的事情组装一个有用而且适当聚集时间线,例如在一个特定的领域内。
我在历史文化的研究做了很多努力,所以我有机会使用大量的人员和组织档案。通常完成了一个很大量的索引和标签工作。(那个字母是从哪儿到哪儿?什么时候写的?关键词有哪些?在哪里提交的?等等)但是事情变得很颗粒化,通常很难确定发生的事情的走向。
我的第一个目标就是让我所拥有的全部资料都对我有用。但是我在考虑开始开放部分我的旧资料给其他人阅读。在现代社会,拥有云计算,机器学习,计算机视觉,文档计算等,我正在研究如何才能创造出用于展示和浏览归档文件的最好的系统。
正如我思考我每一天,我问自己有哪些方面还没有很好的优化。很多优化都存在于邮件处理和时间花费上,例如真正回复一个问题。当然现在我已经花费了很多时间努力去将事情结构化,那样尽管可能多的问题才会自我解决,或者可以通过我们创造的技术和自动化来解决。同时作为一位 CEO,我也会尽力委托给其他人去处理。
但是仍然有很多的事务遗留。而我肯定好奇用我们现有的所有技术,更多的事务可以被自动化来完成,或者委派给机器来处理。或许我自己收集的所有数据将来某一天可以从基础上来构建一个机器人的我。看了我如此多的邮件,可以看到我所有的文件和个人数据分析,或许它真的可能预测我会如何回答任何的问题。
虽然现在我们还未实现。但是当一个机器人对如何回应,同时和我一样拿起手稿并证明,拥有想法的时候是很有趣的事情。我要深入研究什么方向的所有的问题都由我自己决定,但是如何到达那个目标的细节,我希望可以逐渐被自动化完成。