Medium Archive

个人文章存档 · 从 Medium 导出

OLLOS:一个条目化的个人计算时间线

::: {#ebda .section .section .section—body .section—first .section—last} ::: section-divider


:::

::: section-content ::: {.section-inner .sectionLayout—insetColumn}

OLLOS:一个条目化的个人计算时间线 {#1753 .graf .graf—h3 .graf—leading .graf—title name=“1753”}

我们沿着一条自我组织的维度体验生活:时间。我们经常用它来思考我们的经历和对我们重要的事情。我们的数字环境应该与这种理解相匹配,以支持我们对记忆和回忆、计划等的心理模型。

OLLOS 是一个实验,它将我个人计算环境中的所有内容都组织在一个统一的时间线上。这是我从2021年到2023年一直在研究和开发的个人界面。这篇文章主要是由2022年开发期间所记的笔记组成,后来经过润色以供发表。

让我们从一个演示开始:

An error occurred.

Unable to execute JavaScript.

这篇论文中,将讨论OLLOS如何工作,这个概念和设计是如何演变的,它在日常使用中哪些方面表现良好,它指向的未来工作是什么,以及在该项目中学到了哪些关于个人界面的知识。

我经常发现自己在时间的维度上寻找我的数字物品,但当前的主流软件几乎总是不尽人意。

在当今的个人计算领域,让你在时间维度上查看你的物品的软件是日历。它极其有限:它只允许你在里面放一种东西 --- --- 事件。它也非常离散:每件事都必须有明确的开始和结束日期和时间 --- --- 你不能像我们脑海中处理大多数事情那样有模糊性。这不仅适用于事件,还扩展到它们之外;其他类型的事物也以重要但有时不可预测的方式与时间相互作用。

我们主流的数字环境没有基于对时间的基本理解来运作,这是相当不幸的:

我们在一条线性的时间进展中体验一切。这种简单性让我们能够将许多理解和思考根植于其中。它作为我们对过去记忆和对未来计划的基本组织原则。我们体验并使用它的各种尺度 --- --- 秒、分钟、小时、天、周、月、年、十年、世纪 --- --- 所有这些都不同,但每一种度量都是简单地嵌入在下一个之中。
当我们构建一个数字世界,一个我们的数字文物和体验生活的自由形式环境时,我们可以用对时间的深刻理解来奠定那个无限的领域。

在实验室笔记中,我们探讨了**“条目化”(itemized)**操作系统的概念;这种系统可以将你所有的数字物品聚集在一起,根据需要使用,而不受它们类型或来源的限制(与今天只能使用一个信息孤岛内的东西且只能通过预定接口使用的应用程序形成对比)。

OLLOS 尝试了一个条目化操作系统的用户环境,其中仅包含一个统一的时间线,包含你所有的项目。你拥有一切:你添加到其中的东西,比如笔记、任务和提醒;以及你收到的东西,比如电子邮件或 PDF 文件。所有内容都一起出现,按时间顺序排列,形成一个长长的日志。

当你浏览到过去的某个项目(通过点击引用、搜索等),它会带你到那个项目在时间线上存在的位置。所以如果你导航到上周发送的一封电子邮件,你会看到正好在它上面的会议日历事件,以及你写在它之后的笔记或发送的电子邮件,都在时间线上。

它为你提供了这种新的上下文维度,因为这些事物彼此相关,但你不需要在它们之间设置关联。当时间是你的组织原则时,你的东西会自行组织。

当你回顾过去时,你的时间线可能就像一个杂乱的桌面:你看到到处都是很多东西,但你通常知道每样东西在哪里。你可能会记得去年三月是你那次滑雪旅行的时间,你正在寻找的收据正好在它之后。OLLOS 使这种我们在个人计算中进行的”定向运动”(orienteering)成为可能,我们直接导航到某个已知位置的东西,然后从那里浏览到期望的结果。你可能在手机相册中寻找一张旧照片时有过这种体验:你直接导航到一个已知时间段的照片,然后从那里向前或向后更仔细地查看。当系统的接口深深植根于我们自然的思维方式时,这种”定向运动”得到了很好的支持。

OLLOS让人想起巴克明斯特·富勒(Buckminster Fuller)的”时间档案”(Chronofile)。但它的时间线不仅记录了过去的日志,还包含了未来的计划以及回顾项目的机制。

除了时间线界面中”自由”(for free)提供的环境维度之外,OLLOS中的任何项目也可以回复给任何其他项目,从而在两者之间创建直接链接。实际上,在创建新项目时,你可以通过简单地在时间线上滚动并使用回复按钮选择它们,使其成为对多个其他项目的回复。

这使得OLLOS中的每种项目类型都可能成为所有其他项目类型的新功能。考虑有多少软件应用程序最终包含了在它们所包含的内容上添加笔记和提醒的功能(日历事件上的笔记、电子邮件上的提醒或延迟、笔记中的任务等)。在OLLOS中,由于我可以对任何项目回复一个笔记、任务或提醒,这种功能存在于我系统中的每个项目上,而无需构建任何特定的集成。这种”即插即用”(just works)的特性是因为计算环境的构建方式;这是条目化操作环境(itemized operating environment)的好处之一。

在其时间线中,OLLOS 显示了如上所述的过去;未来,对于任何提前安排的项目,比如日历事件或计划待办事项;以及一个回顾机制,用于在预定时间表上或未来某个不确定的时间返回,当更多的时间可能允许时(例如,你稍后可能想阅读的文章的链接) --- --- 稍后会详细介绍。

大多数项目在它们创建的时间点出现在时间线上。

如果一个项目属性可以更新,比如完成一个待办事项,那么在时间线上的那个时间点会出现一个小的更新线。

如果一个项目被安排在未来的某个日期或时间,它将在那里出现,并且在它被创建和/或安排的时间会出现一个简单的更新线。

这意味着所有(预定的)事件至少会在两个地方显示:首先是它们预定的时间,其次是在它们被创建和/或预定的时间提一下。所以如果我今天创建一个下周的事件,它下周会在正确的时间主要显示(以完整的项目视图),而在今天的日志中,我会看到一个小提示,说明这个事件是今天创建并预定在下周的(我可以点击它来跳转到它)。

显示我创建事件的时间,而不仅仅是它预定的时间,是OLLOS工作方式的一个惯用副产品,它在使用过程中给我带来了几次惊喜。首先,它帮助我完整地看到我的过去一天:我可以回顾我的一天,包括我为未来预定的会议,在一天中发生的其他事情的背景下(例如,在与朋友的通话中,我们安排了下一次聊天,这两个事件在我的时间线上彼此相邻,很可能还有今天通话的笔记)。这种共位是OLLOS通过时间线上的接近性来保持事物松散”链接”的主要形式。

第二,因为我的妻子莎拉和我共享日历 --- --- 一个用于我们的会议,另一个用于我们将要一起做的事情 --- --- 当我看到她安排了某件事情时,我的时线上就会出现更新。这是一个非常有用的交易或记录;我现在知道她为我即将和她一起参加的活动安排了一个约会,或者她安排了未来的会议,而无需任何额外的”通知”功能,也无需定期检查未来的日期以获取更新。

在OLLOS中,我可以安排任何条目(items)在未来的日期(并且,可选地,在特定的时间)。除了事件,这对于规划待办事项或晚餐食谱等事情非常有用。

有提供者从外部世界引入条目(items):一个用于我的Google和iCloud日历上的事件,一个用于电子邮件,一个用于天气预报,等等。其他提供者可以构建以引入其他条目(items),例如电子书中的亮点,通话记录,照片等。

大多数情况下,提供的条目(items)包含在时间线中。电子邮件的工作方式不同:收到的项目被折叠成每天一行。点击这行,我可以查看列表,将我关心的任何电子邮件添加到我的时间线中。发送的电子邮件总是会被添加到时间线上(如果它们没有收到回复,也会被添加到每日回顾机制中)。

条目存放在我用于所有条目化实验的同一个”条目存储库”(item store)中,该存储库维护着事实的按时间顺序排列的列表(每个事实是一个项目ID、属性、值的元组 --- --- 还有一些其他数据;最显著的是时间戳)。这种安排对OLLOS有一个非常方便的特性:其时间线界面是事实的有序列表,每行都选择了适当的界面。在每一天内,OLLOS的核心代码是循环处理当天创建的事实,将该事实传递给注册了该条目类型的条目视图。

设计中一个具有挑战性的方面是将所有这些元素整合到一个界面中。这个解决方案事后看来可能很明显,但经过多次迭代才感觉合适。早期版本有几个独立的视图,特别是”时间线”(Timeline)用于过去,“计划者”(Planner)用于未来,以及”今天”(Today),这是一个特殊的组合,包含了每个部分的元素(因为”今天”总是包含一些过去和一些未来,再加上现在,提示输入就生活在这里)。最终,这些改进将这三个视图整合为一个视角。OLLOS界面左侧的三键切换控制允许将这些特定视图作为时间线的各个部分查看,例如允许我仅专注于今天。

一旦这些部分都连接起来,提示输入就在这个大时间线的中间某处,感觉没有依托;我不能快速浏览它,或者相信它会在哪里。除了让它在会被滚动出视野时粘附在窗口的顶部或底部之外,我还需要一个视觉锚点,让我一眼就能看到它在哪里 --- --- 这就是为什么我加上了它的黄线。点击那条线周围的任何地方都会滚动时间轴,使提示输入位于视图垂直中心的中间。

这些小迭代让OLLOS简化成一个只有几个控制元素的单一界面,但它却支持我个人计算生活中广泛的需求,我已在这篇论文的末尾列出了这些需求。

当时间轴中的”今天”部分打开时,由左侧控制栏中的中间切换按钮指示,设计会稍有变化,更多地突出当天,并且在当天的常规项目下方显示一个条目回顾部分。

回顾部分包括那些没有安排在未来特定日期的项目,但仍然被认为是”活跃的”(例如未标记为完成的待办事项)。项目可以设置在定期的时间间隔内出现在这个回顾部分,例如每周一次,但默认情况下,活跃项目处于”间隔回顾”(spaced review)计划中。

除了其主要功能,OLLOS 让我每天都能看到需要复查的条目:一封我发送但没有收到回复的电子邮件,一个我保存但还没有阅读的链接,或者一个我安排了但从未完成的任务。

它遵循了 Andy Matuschak 发表的关于使用间隔重复来帮助维护收件箱(电子邮件收件箱、阅读列表等)的想法。详细内容可以查看他的笔记,但总的来说:传统的清理操作(例如”删除”)太过激进,所以我们常常不会采取。这导致收件箱不断填满而从未被清理,变得毫无用处。使用间隔重复为用户提供了一个更轻量的操作:“暂时跳过”,这可以更快地让某些东西重新出现,但如果它被不断跳过,系统会等待越来越长的时间再重新显示该项目。

在 OLLOS 中,我们有一个间隔回顾系统,它将我们的条目重新带回我们的视线,出现在今天视图的底部。它显示未完成的任务、稍后阅读的链接、需要复查的笔记、需要回复的电子邮件等。

在我的首次尝试中,我尽量保持它简单直接:

系统与被认为”活跃”的条目一起工作:尚未完成的任务、尚未回复的保存邮件和所有笔记。除此之外,默认情况下,用户可以为任何项目开启或关闭间隔回顾。

每个待回顾的条目都简单地有一个”稍后回顾”(review later)按钮,这大致会使它再次回顾的时间翻倍。如果你完成了某件事,你可以完成任务、回复电子邮件或关闭该条目的回顾。如果你还没有完成某件事,但现在没有时间或兴趣,你可以点击”稍后回顾”(review later)。你越点击”稍后回顾”(review later),该条目返回的时间就越长,允许你不太感兴趣的条目”逐渐远离”,而不需要更破坏性或更详细的操作。

(这是一个故意过度简化的方法来开始。我最初的思考涉及各种复杂的界面;我选择了这种简单的方式来开始这条道路。)

截至今天,我已经使用 OLLOS 一个月。我发现这种间隔回顾系统在以下方面很有帮助:

**浮现过去的待办事项。**许多系统会简单地将所有逾期任务放入一个庞大的”逾期”列表中。或者更糟糕的是,有些系统会不断地将未完成的任务放入今天的列表中。相反,在OLLOS中,创建的任务如果从未完成,以及现在已逾期的预定任务,都成为间隔回顾系统的一部分,并在回顾部分的顶部以组的形式显示。这使得不完成某些任务在任何给定的日子里成为一个压力更小的选择。我知道每个未完成的任务稍后都会在回顾中出现,在那里我将有机会做出一个相当简单的选择:我可以完成它,取消它,或者让它稍微推迟一些,最初是一点点,随着时间的推移更多。

**回顾笔记。**我主要在OLLOS中添加那些还没有归宿或仍在酝酿中的小想法的笔记。相信这些会出现在我的复习列表中,消除了我过去常常在时间紧张时放弃的更多繁琐的笔记复习任务。我非常喜欢能够使用”稍后回顾”与这些项目一起,多次回顾那些需要长期背景思考的笔记。有一个让片段和酝酿中的想法在间隔回顾中积累更多内容的地方,是我在发展思考中意外发现的新帮助来源;我没有意识到这是我之前一直在缺失的东西。它给了我一个地方,让雪球开始滚下山坡;有些会消失,其他的则随着滚动成长为更大的东西。

**推荐阅读的内容。**每当我发现一篇我可能感兴趣的文章,我就把它放入OLLOS的提示输入中,这会把它添加到我的时间线中。如果我那天没有阅读它,它就会开始出现在我的间隔回顾中。

稍后回复电子邮件,并回顾那些还没有收到回复的已发送电子邮件。

这个系统在有时间深入研究时表现不错(比如稍后阅读的链接,以及回顾过去的笔记),但它经常因为那些我需要做但尚未安排或完成的事情而变得混乱(比如需要回复的任务或邮件)。后来通过不同类型的过滤器或排序顺序的迭代有所帮助,但我后来移除了OLLOS的这部分,并用一个新概念替代了它。创建OLLOS的一个主要目标是拥有一个能够反映我们生活中事物重要性发展和衰退的界面,让每一项都能在其自己的时间中生存。这意味着活跃项目的”排序顺序”不同,实际上,这是OLLOS概念的一个特别有用的扩展。它仍然使用这种”间隔回顾”机制,但用于专门审查活跃项目的界面。由于它离开了时间线,我将在另一篇文章中保存对其的讨论。

未来工作的计划:

OLLOS是一个只能追加的日志,所以你不能编辑现有的笔记。相反,你可以通过回复来构建过去的笔记:你可以对任何过去的笔记回复一条新的,这条新笔记会进入你现在的时间线,形成一个讨论串。这维持了OLLOS的永恒日志。它非常适合于突发的想法、短暂的想法和连接早期的想法。但一旦一些笔记中的思路开始积累成更大的内容,我会将这些笔记转移到其他程序中,在那里我可以编辑更大的文档。

如果我在条目化的世界中编写了一份文档,考虑让代表对它所做的更改的条目进入我的时间线,同时能够打开文档的最新状态,这将是有趣的。这引发了关于这些”更改”条目以及它们如何在我的时间线中显示的许多重要但棘手的设计问题。

这份文档也可以与所有导致它的原始小笔记连接起来,允许我轻松地在时间线上拉起那些激发思考的想法,以及它们被记录时的所有背景(在会议期间记录的,阅读不久之前的文章等)。

OLLOS尚未探索的领域:不同的时间尺度。

OLLOS如何在不同粒度级别上展示主时间线?它如何展示更大时间尺度的摘要,比如上周、一个月或一整年?具有线程的条目可能会被合并在一起,而对长时间重要的条目可能会更加突出。

用户能否手动将条目”浮动”到更大的时间尺度 --- --- 表明一个笔记与这个月、季度或整个年份相关?也许在当前时间线的左侧或右侧可以有列,让你看到并放置具有较长时期的条目(例如,左侧的列用于整个星期都重要的事情,再左侧的列用于一个月的事情,以此类推到一年)?或者OLLOS是否有一种方法可以自动跟踪一个项目从其使用中持续的重要性?

查看时间线,你可以开始看到其他方式条目化的环境如何与时间维度协同工作,并考虑它可能以新的方式支持你自己的时间结构化生活。

作为我经常遇到的一个例子,我发现自己经常想要请求OLLOS在与人重复通话前提供一些信息:我们上次通话的时间,我在这次通话中记录的笔记,以及对于我们通常会”跟进”我们各自进展的对话,自从上次通话以来我从事的工作的总结。OLLOS知道我上次与这个人开会的时间,可以获取自那以后发生的一切。它可以根据时间间隔的粒度调整总结的详细程度(如果间隔是几周或几个月,则提供更高层次的总结;如果间隔是几天,则提供更详细的总结)。我还发现自己想要这个”通话准备总结”有一个更完整的我们的关系日志;有时,我想滚动查看以前的会议以查看早期的笔记,或者从开始,以回忆我们是如何相遇的,或者快速查看他们的生活和工作的关键事项的简要笔记。

最后,有一些有趣的项目,它们是时间线上的不错补充,值得独立探索:播放的音乐、锻炼和健康检查、当前位置和即将到来的日历事件的天气预报等。我们对于看到不同领域如何与时间相关联的需求是什么?

OLLOS已经为我提供了很好的服务。我将在本文的结尾分享关于个人界面的总体反思,但在这里我将讨论OLLOS如何具体支持我的日常生活。

我日常生活中想要的一些界面,这个单一的界面机制 --- --- 统一的时间线 --- --- 为我提供了:一个日程表,我可以查看我的活动,并将当天的待办事项放入其中;一个过去的时间线,以便查看我昨天、上周做了什么等;一个未来的规划器,不仅仅是日期上的事件,还包括任务和其他计划项目,如晚餐食谱;一个快速输入日志,比如一个与我自己的聊天界面,我可以轻松地粘贴链接或短暂的思考;一个类似日志但更加专注的界面:一个空白屏幕,只显示我最近写的内容,以便在深入思考时记录笔记;一个类似Google Now的待办事项列表,用于下一步要处理的事项;回顾或提醒事项,如笔记、电子邮件和任务;批量回顾前X小时内收到的电子邮件和其他事项;以及使用间隔重复技术清理”稍后阅读”收件箱中的新闻通讯邮件、PDF和在线文章。OLLOS的许多个人使用案例都是由它的小型基础构件组成的,将这些整合到一个统一的环境中(例如,我的今日视图包含我的通知和今天即将发生的事情,在iOS中这两个地方非常不同)。

OLLOS成为我研究工作的一个小型生态箱,它提供了快速输入笔记和链接的机制,以及条目回顾的功能。看到时间线上出现的小片段最近的想法,帮助我发现看似完全不相关的事物之间的有趣联系;“混乱”的时间顺序有一种方式,可以突出同一时间考虑的看似不相关事物之间的关系。

OLLOS也是我在会议期间快速记录笔记的地方,因为我可以回复日历事件,记录我想记住的任何笔记或任务。由于我可以在时间线的上下文中捕获这些关系,我更有可能捕捉到这些有用的条目。受我的朋友亨里克·卡尔松的启发,他每与几位朋友通话后都会记录下通话笔记,我在与朋友进行即使是非正式通话后,也会在OLLOS中记录笔记,这有助于我们随着时间的推移建立有趣的线索。我更有可能保存和返回我想要阅读的文章,以及回顾对当前工作有洞察力的旧笔记。很多时候,感觉只是提供了正确的支持,就能帮助我做出更健康的决定。

OLLOS是一个尝试将”一个简单的想法”和”认真地对待它”付诸实践的例子。尽管我们可能不希望日常操作系统仅由时间线组成,但它是一个练习,用于发现当今主流操作系统由于未能认真对待时间维度而缺少了什么。我们将这个摆锤摆到另一个极端,以揭示帮助我们理解摆锤位于中间时会是什么样子的见解。

这也有助于减少阻碍进步的存在的根本问题:与完整条目化的操作系统相比,探索有限的概念空间使我们能够深入研究其核心理念,以及条目化操作系统的某些核心魔力,同时能够实际开始使用它并取得更快进展。

这种时间线界面将是未来操作系统的关键部分。将未来操作系统的基础与时间理解相结合,让我们可以依靠我们经过千年磨练的能力,为我们提供更强的定向支持,更好地反映分割,等等。

在一个完整的操作系统中,它将与其他类型的视图互补,或者具有”启动”其他类型视图的能力,表达你的事物的其他组织方式。借助其时间线视图,未来的操作系统可以轻松地调用与环境中我打开的任何条目密切相关的条目。

在构建和使用OLLOS的过程中,我学到了一些关于个人软件的事情:

首先,个人界面是有启发性的。**我的数字界面与我的心理模型更接近,这使我的一天更加轻松 **--- --- 我的软件使用更少地出现不适应我任务的软件中的反模式,以及在较低级别的程序(如文本编辑器)中更少地出现临时界面。

随着核心系统建立后,增加一些我可能需要一周或两周的简单功能变得容易且可接受。在一个我需要完成许多深入任务的一周,我引入了一个”时间块”项目,可以接收一个标题并启动计时器。我再也没有使用过它,但在那五到十分钟的开发时间内,它极大地帮助了我那一周,并保持了系统内所有事物的统一。

然而,处理更复杂的功能要困难得多。为了向系统中添加新的功能或界面,总是需要软件开发,这使得反馈循环往往过长,难以产生有意义的成果。为了使个人软件成功,这个问题需要得到解决。我们将进入与我们创造的数字环境共同进化的循环,需要在我们使用它们时迭代我们设想的界面,并根据我们所学来发展它们,随着我们自身的进化(部分归功于我们为自己设计的改进系统和在其中生活)。这使我走上了出现在LN 037的道路:手势视图构建(LN 037: Gestural view construction{.markup—anchor .markup—p-anchor data-href=“https://alexanderobenauer.com/labnotes/037” rel=“noopener” target=“_blank”}),它关注于在构思更好的界面和生产它之间缩短反馈循环,理想情况下尽可能接近思维的速度。

Ollos --- An itemized personal computing timeline{.markup—anchor .markup—p-anchor data-href=“https://alexanderobenauer.com/ollos/” rel=“noopener” target=“_blank”} ::: ::: :::

← 返回文章列表