信件

作者:Staff

Infocom 游戏

在2006年1月的“Get Your Game On”专栏中,Dee-Ann LeBlanc写道:“这次我最接近的体验是拿出我的Classic Text Adventure Masterpieces CD,里面有老式的Infocom游戏。”

您和您的许多读者可能不知道,您已经可以在Linux下非常流畅地玩这些游戏了。事实证明,Infocom游戏是为虚拟机编写的(有点像Java);它们分为两部分,实际游戏和虚拟机解释器。已经编写了几个可在Linux上运行的替代虚拟机解释器,并且它们都基于GPL。其中一个叫做Frotz,当前版本是2.43。它可以从www.cs.csubak.edu/~dgriffi/proj/frotz获得;它也为Debian和可能其他发行版打包。还有很多其他的。

您必须稍微试验一下才能找到实际的游戏文件在CD上的位置,因为每个游戏的存放位置都不同。对于zork 1,它位于pc/zork1/data/zork1.dat中,因此运行frotz pc/zork1/data/zork1.dat在控制台中,您就可以开始了。一些游戏文件具有.zip扩展名而不是.dat扩展名(那是Infocom在PKZIP之前的日子里称其虚拟机格式的名称)。

Frotz在带有图形的游戏(如Zork Zero)上无法正常运行;对这些游戏的支持在一个衍生的GPL程序中,该程序仅在Windows上运行,名为WindowsFrotz2002,并有望在将来移植回原始程序。同时,WindowsFrotz2002可以在Wine下运行,可以从www.ifarchive.org/indexes/if-archiveXinfocomXinterpretersXfrotz.html下载,但这需要将图片翻译成Blorb格式,您需要自己在网上搜索。


Nathanael Nerode

Dee-Ann LeBlanc 回复: 非常感谢!我想我可能在很久以前的某个时候知道这一点,然后就忘记了。当我从旅途中回到家时,我很可能会再次拿出那张Infocom CD并介绍一下这个。

一位快乐的订阅者提出的建议

多年来,我一直是《Linux Journal》非常高兴的订阅者。在过去的一年左右,我感到自己有几个信息来源,包括《LJ》。所以我决定让我的订阅过期,只接收剩余的副本直到停止。然后就出现了勒纳先生关于Ruby On Rails的文章,该文章非常翔实且令人鼓舞[《LJ》,2005年10月]。这使我改变了不续订的想法,所以我刚刚又订阅了两年。

即使我是一个(非常快乐的)FreeBSD用户,时间几乎和我订阅《LJ》的时间一样长,但《LJ》中的许多文章对于FreeBSD和其他开源操作系统也同样适用,我相信这是开源的真正力量。

开源是从彼此借鉴和发展想法和原则的可能性。许多文章写得很好,但我仍然希望其中一些文章不要那么以Linux为中心,而能采取更广阔的视角。

请记住,在试图抢占一家大型公司主导的服务器和桌面领域更大份额的努力中,Linux倡导者应注意不要使用与该供应商相同的言辞。您可以尝试的一个想法是偶尔设置一个BSD专区(或其他开源操作系统专区),以便Linux用户稍微接触一下其他概念。


Claus Guttesen

Linux的另一个名称

关于轻松一刻,“可能刚刚好”[《LJ》,2005年12月,第94页],Lagom这个词是否适用于Linux?我认为可能适用,但也许另一个适用于Linux的词是Gaia,因为Linux由许多生物作为一个单一的有机体共同运作。Linus Torvalds并没有创建一个操作系统;他创建了一个内核,通过获得一系列GNU实用程序的合作,使其成为一个成功的操作系统,而GNU实用程序又催生了世界各地许多计算机极客使用这个新兴且在某种程度上实用的UNIX系统来修复和增强该系统及其实用程序,使其他东西适应Linux并从头开始编写新东西等等。您明白我的意思。没有真正的主要有机体,但是有许多有机体自发地为了共同利益而共同努力。

另一个定义:Linux是近乎完美的无政府状态的例证,原因与使其成为Gaia的原因相同——所有人为了共同利益的进步而共同努力,没有政府或所有者指导他们的活动。亚历山大·伯克曼会感到自豪的。

我听到的是黑鹰直升机朝这边飞来的声音吗?


理查德

澄清

我鼓励泰勒大师提醒他的“Work the Shell”专栏的读者,他的工作环境特定于Bourne shell,并且由于任何数量的合理原因,一些用户可能会遇到C-Shell环境。为了对这些读者表示友好,也许可以快速介绍一下如何获得他们自己的Bourne shell环境?[请参阅戴夫·泰勒的“Work the Shell”专栏,《LJ》2005年12月号开始。]

感谢大家辛勤的工作!


Michael C. Tiernan

戴夫·泰勒回复: 我知道我们不可能在不提及shell脚本世界中伟大的宗教战争(即使用哪个shell)的情况下持续太久。我在我的第一篇专栏文章中试图强调,我将为Bourne Again Shell编写文章(尽管几乎所有内容都适用于任何现代Bourne Shell,特别是如果它是符合Posix标准的发行版),但为了澄清,我认为您选择使用哪个shell真的无关紧要;只需进行一些相对较小的语法更改,脚本编写的基本概念以及如何利用Linux命令在短短5-10行代码中完成极其困难的编程任务仍然保持不变。

此外,您当然可以将C Shell或其变体之一作为您的命令行解释器/登录shell,并且仍然可以使用Bash作为您的首选脚本编写环境。

要找出您当前正在运行的shell,只需键入以下命令ps -p $$它会显示sh, csh, bash, tcsh或类似内容。整个shell脚本编写专栏中使用的语法适用于sh或bash。

感谢老派文章

Matthew Hoskins在2005年12月号上发表的文章“UNIX:老派”是一颗宝石。我发现令人着迷的是,1974年发布的UNIX老版本可以在PDP-11模拟器下启动并亲身体验。这是一次了不起的回顾。


Troy Hanson

喜欢2005年12月号

只是想快速写个便条,说一下这一期非常棒。我对新的专栏“Work the Shell”感到非常兴奋。这是过去几年中最令我喜欢的一期。我热切期待下一期,看看它是否能保持水准!


杰西

关于专利

主题:回复:关于专利

Roger Wolff对Don Marti的回应[参见《LJ》2005年12月号的信件]显示了他对专利的理解很薄弱。他使用专利的描述来决定它们涵盖的内容。这行不通。要理解专利涵盖的内容,您必须阅读权利要求部分。其他一切都只是花哨的装饰。不幸的是,权利要求部分是用法律术语编写的。阅读专利的其余部分可能有助于为权利要求设置上下文。但这仅仅是它的作用。

对于他的例子“用于编码音频信号的方法”,权利要求可能非常狭窄,也可能非常广泛。很大程度上取决于专利审查员的细致程度。但是您根本无法从描述中判断出来。

免责声明:我不是律师。但我确实拥有一些专利。


Allen Brown

更多关于专利

我发现阅读Kari Laine的“档案,专利”信件以及《LJ》的回复很有趣[2005年11月号,第10页]。当您与您试图对抗的事物形成共生关系时,该答案完全避开了所涉及的问题。Kari的信件给人的印象是专利是邪恶的,但Kari却提出了一种模型,开源社区的一部分依靠专利来填满银行账户。您如何全心全意地对抗那些让您有饭吃的东西呢?

现在,我并不是说专利共享项目不好,因为它与专利制度形成了共生关系——如果需要,开源纯粹主义者会进行讨论。

也许《LJ》可以澄清与您试图对抗的事物形成共生关系的含义,让Doc Searls撰写关于它的文章,从在内核中放置钩子到仅二进制模块(pwc/pwcx),到模拟“未选中的操作系统”(Wine),再到当您实际上不喜欢专利时,却通过专利赚钱?


Martin A. Bogelund

关于可用性的一些话

我对2006年1月号《LJ》中的文章“将可用性引入开源”有一些评论要分享。

首先,我必须感谢Nate和《Linux Journal》刊登这篇文章。我必须强调,可用性应该是所有软件创建者(无论开源与否)的首要目标之一。观察用户是无可替代的,因为正如Nat指出的那样,他们通常具有与开发人员不同的思维方式。此外,开发人员通常认为当某个功能“工作”时就完成了,而没有意识到普通用户如何每天使用他们使用的流程。我无数次地坐在用户面前使用我的软件,并立即意识到我完全错过了可用性,因为我看着他们经历了几个艰苦且令人沮丧的步骤来完成他们的任务,而这些步骤是我从未设想过的。在大多数情况下,这不是“坏用户”的问题,而是“坏软件”的问题——这对我这样的人来说很难承认。

但是,我认为在使软件更“可用”时,必须小心,不要同样被少数用户的行为蒙蔽双眼。

作为一个练习,想象一下您带一个小孩到您的车旁,架起摄像机,并要求孩子“带我去商店”。虽然这是一个非常简单的任务,但您可以想象您的小朋友可能会抓住方向盘,踩几下踏板,转动钥匙(离合器分离),撞到车库门(哎呀,那不对),然后放弃并承认他或她不知道该怎么做。

在我看来,这绝不意味着从可用性的角度来看,汽车是“坏”的。一位善意的工程师可能会将此反馈理解为车辆应以某种方式进行更改,以确保这位新手下次能够成功。问题是,任何有驾驶经验的人都会进入这辆“固定”的车辆,并立即对不得不经历一些新的步骤感到恼火,这些步骤很可能会花费更多时间,并最终变得更难用。

在Nat关于“新建”按钮错误的具体示例中,我不得不恭敬地表示不同意。首先,在许多软件包中,“新建”按钮的使用非常一致,用于开始一个新操作。“新建”可能太简洁,但从概念上讲是正确的。在我看来,“发送”是不正确的,因为该选项不会发送任何东西,它只是创建一个新消息。如果您想发送消息,则需要按“发送”。这当然是我的解释,但这并不意味着它是正确的。

在这种情况下,我可能会建议该按钮应显示“新邮件”(对于说英语的人)。这既更清晰,又与它代表的操作保持一致。也许这位用户不会因为这个微小的改变而感到困惑。

重点不是不同意这篇文章或Nat的意图。重点是确保软件工程师和开发人员理解非常认真地对待可用性的必要性,并在做出决定之前从多个角度看待问题。因为编写坏软件比编写好软件容易得多,而且错误的方法比正确的方法多,所以选择最佳方法是一个巨大的挑战。

有很多因素会影响软件的可用性。我一直认为,一些关键要素是:1)一致性,包括内部一致性和与其他应用程序之间的一致性。2)清晰度——语言应精确地适合动作,并辅以用户可以依赖以进行澄清的详细工具提示。(工具提示应始终存在,以保持一致性)。3)效率——显示应呈现所有组织清晰的相关信息。应提供充足的帮助。帮助永远不应重复问题(也就是说,像“排序按钮将对您的结果进行排序”这样的帮助实际上并没有什么帮助)。完成任务所需的击键次数和鼠标单击次数应最小化。重复性任务应具有快捷方式。应始终考虑流程流程。诸如允许多选而不是单选之类的操作可能意味着一小时的工作与五秒钟的工作之间的差异。始终在适当的地方自动化,但要提供选项。永远不要将用户锁定在一个流程中,但要确保最基本流程的设计良好且流程顺畅,并且“减速带”最少。允许用户关闭或跳过旨在帮助新手的特性。您可以尝试预测用户想要什么,但不要坚持。

我可以轻松地举例说明已编码到软件中的“糟糕”可用性。只是为了好玩,考虑一下我在运行Windows时遇到的一些功能。每次我放入新CD时,操作系统都会尝试“猜测”我想用它做什么,浪费我的时间,而我已经可以开始做了。而且我真的很喜欢Windows试图“帮助”我清理桌面上的图标。是啊,我真的很想删除这些链接,谢谢您每天都问我(每天)。这并没有改善我的体验,而且即使对于一个相对的专家来说,在没有大量时间去寻找方法的情况下,也很难禁用这些行为,这令人沮丧。

是的,我也可以在Linux中举例说明。

我相信我可以就这个主题写上几天。虽然我不认为自己是界面设计方面的专家,但我对软件可用性的需求充满热情,而且我也犯过不少错误。在我完成日常任务时,我也遭受了很多糟糕软件的折磨,我相信大多数读者都有同感。

我希望这篇文章和Novell Usability Labs的工作将有助于进一步推动这方面的工作。Linux桌面的成功更多地与心智份额有关,而不是其他任何东西。平台已经准备好了。我们快成功了,伙计们!让我们继续努力!


JC Simonsen

加载 Disqus 评论