重新发现莲花议程(MS-DOS,1989)

2020-10-23 05:38:37

我从未使用过Lotus Agenda,但我听说它是80年代末MS-DOS的一款流行的生产力工具。最近我热衷于重新发现复古软件,所以我决定试一试,写下我的经历。使用废弃已久的软件有什么吸引我的地方。也许是更新疲劳了,当然没有必要担心重大更新会破坏什么!

无论如何,我总是喜欢寻找新的生产力工具来试用,我不怕学习曲线陡峭,也不怕弄脏我的手。我通常会选择功能强大、灵活的软件,而不是简单的软件。

目前我主要使用任务勇士,但我已经数不清我试过的所有其他游戏了!

议程是PIM,即个人信息管理器。这个词已经过时了,我想一个快速的总结可能是“任何管理我们所有人都要处理的小信息的东西”。比如联系人、待办事项列表、笔记等等。

我发现1989年电视节目“电脑编年史”中的一集讨论了当时人们对注射吸入器的看法。

在21分钟的时间里,有一个莲花议程的演示,但是很难跟上,看看这个片段,你就会明白我的意思了。不过,您确实看到了一些有趣的特性:

显然,这是一个800美元的软件包(这是从1989年起经通胀调整后的395美元),哎呀!你不必付钱,莲花在开发停止时是免费提供的。

在准备试用议程时,我在eBay上找到了一份原版手册,只花了几美元。看看这个怪物,光是用户指南就有700多页,这还不包括补充指南。我的补充资料有:“使用宏”、“使用定义文件”、“设置议程”和一些其他传单。

我想那是我睡前看书的时候了。实际上,我收到的宏参考仍然是原始的收缩包装,打开它几乎是一种耻辱!

我正在使用DOSEMU2运行Agenda,它也适用于Windows上的WSL。与其他选项相比,DOSEMU的主要优点是它具有将VGA文本模式转换为终端转义序列的终端模式。这使得旧的MS-DOS应用程序看起来和感觉上都像本机ncurses应用程序。

像GNU Screen这样的终端工具可以工作,您可以在本机应用程序之间复制和粘贴,并且可以在ssh上使用它。当然,它还支持文件系统和shell重定向,因此您可以访问主机目录,并像执行DOS命令一样执行主机命令。

你可能已经注意到空屏区域了,这是因为议程只支持标准的VGA文本模式。我通常使用100x30的终端,所以会留下一些空白。如果你使用GNU屏幕,你可以在里面放一些其他的东西,ncal怎么样!

我将DOSEMU配置为映射几个目录,以便可以将文件保存在通常的位置,您只需将类似lredir i:\\linux\fs\home\taviso\document的内容添加到autoexec.bat。

我开始浏览快速入门指南,我在网上找到了一个扫描,如果你想看的话。该指南让您使用Agenda作为任务计划器来输入即将到来的活动,如“本周五给Sarah打电话,就她的建议给她反馈”,并演示了Agenda如何从您输入的文本中提取日期和活动。

下面是一个gif演示,我输入了一个任务,它正确地填充了其他一些列。尝试了不同的编写任务的方式,我发现元数据提取非常有效。时间规范解析尤其完善,像“从周二开始每四个月检查一次数据保留策略”这样的事情就行了。我也松了一口气,因为它似乎符合Y2K标准(哈哈!)。

“快速入门指南”中的重点是,如果您与Tom通了电话,您可以快速为您想要讨论的所有事情生成一份报告。如果你要去一个特定的地方,你可以列出你需要在那里做的所有事情,以此类推。

Agenda是一种灵活的软件,它不仅仅可以用于任务管理,但为了保持本文的简洁性,我坚持将其用作计划器。

现在我已经输入了足够多的任务来了解使用情况,并且所有的标准内容都工作得很好。如笔记、设置闹钟、添加联系人、分配优先级、搜索和排序等等。那些变得单调乏味的事情可以自动完成,比如标记所有搜索结果,然后批量分配或标记完成。

议程相当稳定,我猜这395美元中的一部分花在了QA上。我确实发现了一次崩溃,我试图在显示视图中为伪类别进行赋值操作!我想我是第一个发现这一点的人,我找不到任何其他的参考资料!

我不得不稍微改变一下我的工作流程,我习惯于将我的任务组织成子任务,例如,我可能会有一个待办事项列表,如下所示:

这实际上并不是议程的工作方式,相反,您可以创建这些任务中的每一个,并将它们分配给同一个项目。这对我来说是一种转变,但它也有好处,比如允许将一项任务分配给多个项目。

您可以在此剪辑中看到我更改了布局,您可以自由添加或删除列,并更改它们的顺序、宽度等。您还可以添加筛选器,因此您可能只想查看今天到期的任务。

您可以保存不限数量的布局(议程称为这些视图)。您可以切换到适合当前任务、首选信息密度级别等的视图。

您可能在家时有一个“家务”视图,它只显示您需要在家里做的事情,或者在处理代码时有一个“开发”视图。这可以让您以最合适的方式显示任务。

老实说,我认为Agenda在这方面做得很好,得到一个精确设置了部分和过滤器的微调视图是相当令人满意的。还有不同种类的视图,如记事本视图(如日历)、费用视图(用于计算与项目相关的费用)等等。

我实际上把过滤器写成了“前天”,然后它自动重写成了2天前。干净利落。我还有几个包含更多列和项目过滤器的视图,我可以在需要时切换到它们。可以按F8浏览视图列表,也可以使用Alt-N(下一个)和Alt-P(上一个)在视图之间循环。

议程确实有一个用于记录笔记的内置编辑器。没关系的。它支持一些基本的编辑选项,并且有可退缩的键和宏。幸运的是,它支持导入外部文件,所以您可以只使用Vim。

实际上,我编写了一个宏,每当我在编辑器中键入Ctrl-F5时就切换到Vim。下面是我打开宏管理器的一段视频,显示我有一个绑定到{CtlF5}的“Editor”宏,然后在Vim中编辑笔记。

我希望我能说宏观语言很漂亮,但事实并非如此。它是为阅读屏幕上的内容和模拟击键而设计的。它具有基本的控制流、字符串操作等。它是有功能的。

关于宏语言,我可以说一些积极的东西,手册非常好,而且附带了很多示例。它可以自动化议程的所有部分,但我主要只是用它来重新绑定密钥。

事实上,在20世纪80年代,第三方开发者为Agenda编写了商业插件。显然,有一个很受欢迎的套餐叫做“总统计划”(President‘s Planner)。我还没有试过,但我想我有一种病态的好奇心,用这种语言编写的应用程序能做什么!

您可能需要使用其他应用程序或服务,并将您的数据与您的手机同步。从DOSEMU外部写入和读取文件是没有问题的,所以如果您只想同步文件,这是没有问题的。

因为它是一个终端应用程序,所以您也可以通过SSH登录并运行它。

从Agenda导出数据有两种方式。如果您有一个可以传递参数的命令行工具,那么您可以编写一个宏来调用它。

议程可以将项目导出为称为STF的格式,即结构化文本文件。手册中(大部分)记录了该格式的规范,但它并没有流行起来。

我编写了一个快速解析器,可以将其转换为JSON,所以现在您可以使用像JQ这样的现代工具随心所欲地操作和转换数据。

以此类推,自述文件中有更多的例子。如果您可以与其他应用程序交换数据,则现在可以使用stfjson生成正确的格式。

您可以自动导出,Agenda在类别选项中有“特殊操作”。或者,如果只是关闭或用于宏,则可以使用Transfer>;Export命令。

如果有一个命令行工具可以导入数据,例如,TaskWarrior用户可能会使用任务添加在干洗店投放衣物,那么您可以在Agenda中创建一个宏,只需启动该命令。

令人惊讶的是,Agenda支持导入任意文本数据。Agenda附带的手册之一是使用定义文件(Definition Files),它解释了如何编写允许Agenda解析任何内容的配置文件。

我很喜欢议程。它做得很好,但你可以用现代工具复制它的大部分功能,这是绝对正确的。然而,我确实喜欢使用它,而且我是一个足够大的书呆子,以至于我相当喜欢使用复古软件的挑战。

我认为与议程最接近的现代等价物应该是taskwiki。它不是完美的搭配,但是如果你喜欢你在这里看到的一些东西,但是对复古软件不感兴趣,试试吧!

两周后,我仍然在使用Agenda,并且完成了大约40%的手册😂。

鲍勃·纽威尔(Bob Newell)的议程页面上有很多旧文件。特别是,我觉得这个1990年的旧Lotus Support FAQ很吸引人。

任何人要认真使用已有30年历史的软件,必然会遇到一些小问题。以下是我遇到的一些问题。

答:Lotus提供的免费磁盘映像包括某种形式的复制保护。您不能只解压缩文件-您需要模拟软盘驱动器。如果您不想为此费心,这里有一个预装的ZIP。

答:您可以使用宏重新绑定关键点。现在可以使用Ctrl-F4而不是Alt-F4。您可以对您不喜欢的其他绑定执行相同的操作。

我按Ctrl-S保存,按Ctrl-F查找。默认值为Alt-W(??)。和Alt-F6(?!)。

问:我无法在终端中输入Alt-F3,因此无法重新绑定密钥!

答:从这里下载SCANCODE.COM,这是一款可以模拟击键的DOS TSR。安装后:键入SCANCODE Delay 3,Alt-F3(如果SCANCODE不在%PATH%中,请键入完整路径,例如:C:\SCANCODE\SCANCODE.COM。

几秒钟后,将出现宏管理器。我建议将其重新绑定到Ctrl-F3,这样您就不必每次都这么做了!

问:当我退出议程,尝试打印一些东西,或者运行外部命令时,我收到类似EInternal Error的错误。

答:您正在非标准文本模式下使用DOSEMU。这里有一些可能的解决方案,您可以选择您喜欢的方案。在启动DOSEMU之前,键入stty cools 80。如果您使用不寻常的终端(如Windows终端),您可能会收到类似不支持操作的错误。一种解决方法是安装xtermcontrol并键入xteramcontrol--geomety=80x${lines}。

使用GNU Screen,为DOS应用程序创建布局(这就是我要做的,请参见下一个问题)。

当然可以,这是我的主屏幕,这是我的档案专用屏幕。

我在我的.bashrc中使用别名Agenda=";screen-c${home}/.creenrc.dosemu dosemu-Term-E Agenda";来启动Agenda。

问:Agenda在空闲时使用100%的CPU时间,这会阻止我的CPU进入低功耗状态。我该怎么解决这个问题呢?

问:Agenda不会使用100%的CPU时间,但它使用的时间仍然比我希望的要多。

答:DOSEMU使用setiTimer()模拟计时器中断,并且在默认情况下,它会尽可能快地请求它们。如果DOS应用程序在每个中断上都做了大量工作(Agenda查询时间),那么它可以使用一些CPU。

这里有一个折衷方案,您可以模拟较慢的中断计时器,但响应速度会下降(即应用程序对键盘输入的响应速度有多快)。你可以尝试这些数字,找到最优的平衡。

如果你在玩DOS游戏,你可能会想要调高它,但对于像Agenda这样的办公应用程序,你可以把响应性调低,这仍然是完全可以接受的。

为此,请设置计时器选项。默认值是18,但我发现8是完全可以接受的,甚至可能是6。您只能在命令行上更改计时器设置,而不能在.dosemurc中更改。

A.议程不在%PATH%中,请将类似路径%PATH%;C:\Agenda的行添加到某个初始化文件中,如fdppauto.bat。

答:S-lang试图通过执行strncmp($TERM,";xTERM";,5);检查您是否正在使用与xterm兼容的终端。GNU屏幕与xterm兼容,但它将终端设置为creen.xterm-256颜色。

一种解决方法是只为这个以“xterm”开头的术语上限条目创建别名。首先,获取TERMCAP条目的副本,例如。

现在,在文件顶部添加一个以xterm开头的别名,例如,我使我的别名如下所示:

现在重新编译它,将其命名为tic Termcap.txt。TIC会自动在$HOME/.Termcap目录中安装该条目,因此它应该立即可用。现在,将Term xterm-256Color.screen行添加到您的.creenrc中,问题就应该解决了。

问:我正在使用GNU屏幕,它可以工作,但是Esc键似乎很慢,不可靠,或者需要按两次?

答:首先将maptimeout50这一行添加到您的creenrc中,看看是否有帮助。如果感觉好些了,但没有修好,试着调整一下数字。

如果它一点帮助都没有,那么我认为你的术语上限定义是错误的。也许您使用的终端声称与xterm兼容,但事实并非如此。

找到以kmous=开头的行并删除它,这就是鼠标事件报告。我发现在一些基于VTE的终端中这是不可靠的。

看看这样能不能解决问题。TiC将编译后的定义放在$HOME/.Termcap目录中,如果您想要返回,可以删除它们。

答:将行$_lpt1=";dosprint";添加到您的.dosemurc中,然后在名为dosprint的$PATH中创建这个shell脚本,您可以根据自己的喜好进行调整。Ps2pdfwr实用程序是ghostscript的一部分。