# 无聊的网络：我发帖，故我在

> “Usenet（新闻组）是污水坑，是粪堆。”
>
> ——Patrick A. Townson

我们被告知信息高速公路就在拐角处。然而，我们已经不得不应对堵塞高速公路动脉的缓慢移动的垃圾车。这些满载垃圾的车辆就是 NNTP 包和压缩的 UUCP 批量文件，每天运输着数以千兆字节计的垃圾。这些垃圾统称为 Usenet。

## Netnews 与 Usenet：增长带来的无政府状态

1970 年代末，北卡罗来纳的两名研究生在他们各自的大学（UNC 和 Duke）之间架设了一条电话线路，并编写了一个 shell 脚本用于交换消息。与电子邮件不同，这些消息存储在公共区域，所有都可以阅读。在任何一台计算机上发布一条消息，都会将其副本发送到这个新兴网络上的所有系统。该软件因此被称为“news”（新闻），因为其初衷是让大多数 Unix 站点（通常是大学）的人们（通常是研究生）宣布他们最新的一批黑客工具和补丁。在大多数时候，这些消息是 news 软件本身的源代码，像病毒一样传播。随着时间推移，“netnews”这一术语被采用，进而演变出“Usenet”以及众多戏谑性的变体（例如“Abusenet”、“Lusenet”、“Snoozenet”和“Net of a Million Lies”）。

该网络像葛藤般迅速蔓延——站点越来越多，用户越来越多，消息也越来越多。Usenet 面临的基本问题是扩展性。每当一个新站点加入网络，该站点发布的所有消息都会自动复制到网络上的所有其他计算机。据传，新罕布什尔州的一台计算机在 DEC 觉醒关闭它之前，月电话费曾高达五位数。

这些高昂的费用很容易被掩盖成管理开销，掺杂在 1980 年代对计算机的大量投入中。那时，一群黑客设计了一个通过互联网传输 Usenet 的协议，而互联网完全由联邦赤字资助。容量提升后，Usenet 真正变成了“百万只猴子在全球不停敲击键盘”的景象。到 1994 年初，估计已有 14 万个站点，4.6 百万用户每天产生 4.3 万条消息。

Usenet 的拥护者称它是一种基于合作的伟大契约，但他们没说的是，这个系统同样充斥着谩骂、人身攻击和“炸弹信件”。

### 邮件致死困境

基于无政府状态的网络如何自我管理？靠暴民统治和公开私刑。请看：

> 日期：1992 年 7 月 10 日 星期五 13:11 EDT
>
> 发件人：<nick@lcs.mit.edu>
>
> 主题：在 LuseNet 上拆分 BandyHairs™
>
> 收件人：VOID、FEATURE-ENTENMANNS、Unix 痛恨者
>
> news.admin 新闻组最近陷入瘫痪（并非说它以前就正常过），原因是一场由 <bandy@catnip.berkeley.ca.us> 发起的漫长口水战，他可能是你们中的某些人认识的。显然，他试图通过实现某程序来减少 Lusenet 上的噪音，该程序会取消交叉发布到 alt.cascade 的文章。“cascade”是个昵称，指一连串引用早期消息但几乎没有新内容的回复；由此产生的不断缩进、无意义的废话和末尾的取消缩进显然受到某些排版能力欠缺者的青睐。我们大多数人只是把这些人（黑话叫“perp”）加入屏蔽名单。
>
> 遗憾的是，Bandy 对这一（可说是值得称赞的）想法的实现包含一个不太明显的错误，导致它开始取消并非 cascade 的文章，在有人关闭程序之前，约有 400 条无价的网络智慧珍宝被删除。
>
> 他在发送给 nntp-managers 邮件列表（UseNet“秘密小组”残余）的一条消息中承认了他的错误，但要求他“公开道歉”的呼声仍在持续回响。有人聪明地将他发给 nntp-managers 的消息转发到了 news.admin（其中包含了他的网络地址），然后有人（无疑是为了防止可能的 sendsys 爆破攻击）开始取消所有提及该地址的文章……啊，“言论自由！”和“私刑暴民！”的喊声震耳欲聋，层出不穷的比喻交锋是网络心理学真正鉴赏家的美妙乐章。
>
> 总之，这是一个 Un\*x 和 UseNet 混乱的经典案例：蠢上加蠢，不断扩散螺旋。我很抱歉（公开）承认自己也禁不住忍不住发表了我的 $.02 意见：
>
> > Newsgroups: news.admin
> >
> > Subject: 分裂 BandyHairs™
> >
> > Distribution: 全球
> >
> > 我很高兴我们有 nntp 管理员来更或少合理地讨论运行 netnews 的问题。但既然我们在 news.admin 这里浪费时间和带宽：
> >
> > 认识那个人（天哪，我讨厌这个词）的人也知道他过去……嗯，有些冲动。而且为他的鲁莽付出了沉重代价。他已经受够惩罚了。（什么，你是说坐在浴缸里大喊“用那个 X-Acto 刀小心！”还不够惩罚吗？对任何事情都是？）有人说那段肮脏的往事应该保持不被记载（甚至不该被 ACM 记载——尤其不该被 ACM 记载）……
> >
> > 有人抱怨“懒惰或不专心的系统管理员”。只要看一眼 news.admin，你就会立刻明白为什么这大多是浪费时间。
> >
> > LuseNet 没有什么是铁板钉钉的，虽然 Bandy 已经被钉死了。无罪的人请先投石。\
> > ——nick

## 新闻组

到目前为止，我们实际上还没真正说过什么是 Usenet，也就是说，我们还没说清楚如何判断一台计算机系统是不是 Usenet 的一部分。那是因为没人能真正说清楚。最好的定义可能是：如果你能通过某种方式接收一些新闻组，并且你能写消息让别人阅读，那么你就是 Usenet 的一部分了。再次联想到病毒的比喻：只要你接触了它，你就被感染了，并且可以扩散这种感染。

什么是新闻组？理论上，新闻组是 Usenet 的杜威十进制分类法。一个新闻组是由用点号分隔的一组单词（或常见的缩写）组成，从左到右阅读。例如，misc.consumers.house 是讨论买房或拥有房产的新闻组，而 sci.chem.organomet 是讨论有机金属化学的新闻组，不管那是什么。名称中最左边的部分称为层级，有时也叫顶级层级。Usenet 是国际性的，虽然大多数新闻组名称是英文的，但用户也可能遇到像 finet.freenet.oppimiskeskus.ammatilliset.oppisopimus 这样的珍奇名称。

（顺便说一句，名字中第一个点号的发音是“dot（点）”，所以“comp.foo”念作“comp-dot-foo”。在书面消息中，当语境清晰时，名称的各部分常缩写为单个字母，比如讨论 comp.sources.unix 时可能用“c.s.u.”这个缩写。）

Usenet 的一个部分叫做“alt”，就像书店或唱片店的打折区，或公司的开放书架——你永远不知道会找到什么，而且通常没什么价值。例如，一个对 Muppets 玩偶秀有恶作剧幽默感的粉丝曾经创建了 alt.swedish.chef.bork.bork.bork。像 Unix 发烧友那样，他们大致摸清了规律，现在有些站点上可以找到这样的内容：

```sh
alt.alien.vampire.flonk.flonk.flonk
alt.andy.whine.whine.whine
alt.tv.dinosaurs.barney.die.die.die
alt.biff.biff.bork.bork.bork
alt.bob-packwood.tongue.tongue.tongue
alt.tv.90210.sucks.sucks.sucks
alt.american.automobile.breakdown.breakdown.
breakdown
```

正如你所见，这个玩笑很快就失去了新鲜感。但这并不妨碍 Usenet 上的其他人继续玩下去。

### 抛掷层级体系

Usenet 最初有两个层级体系，net 和 fa。术语“net”的起源已无从考证。“fa”是指来自 ARPANET 的（from ARPANET），它是一种通过 netnews 接收一些最受欢迎的 ARPANET 邮件列表的方式。“fa”组有个特殊之处：只有一个站点（加州大学伯克利分校计算机科学系的主网关，一台超负荷的 DEC VAX 计算机）被授权发布这些消息。这个概念非常有用，所以 Usenet 软件的后续版本将 fa 层级改名为 mod，其中“mod”代表 moderated（受控的）。软件被修改为将发布到受控组的消息转发给该组的“版主”（在配置文件中指定），版主会阅读消息，进行一定程度的审核，然后重新发布。重新发布时，版主会添加一个带有“Approved”（已批准）字样的头信息，通常会附上版主的地址。

当然，任何人都可以伪造受控组中的文章。虽然这并不常见，但也不是难事：这就像闯入保险箱，而保险箱的密码就写在门上。受控组是邮件和新闻首次紧密结合的例子；它们可以被看作是迈向信息高速公路的初步尝试。

“net”这个词出现在 Usenet 讨论中，随之形成了一种非正式的阶级体系。普通用户，被称为“net.folk”或“net.denizens”，主要是阅读文章，偶尔发帖，处于最低层；以其特别有洞察力、惹人厌烦或高产的发帖闻名的人被称为 net.personalities。在阶层的顶端是 net.gods，偶尔还有 net.wizards，是那些对某个新组主题拥有极其深入知识的人。net.gods 也可能是那些能促成重大事情发生的人，可能是因为他们参与了 Usenet 软件的编写，或者因为他们运营着重要的 Usenet 站点。就像神话中的神灵一样，net.gods 往往表现得高高在上，拒绝一次又一次回答他们早已烂熟于心的问题；他们有时也会表现得嫉妒且小气。他们经常因为一时不快退出 Usenet 的参与，且往往会公开宣泄自己的不满。但大多数人对此并不在意。

## “大重命名”

随着越来越多的站点加入网络，更多的新组被创建，net/mod 体系崩溃了。一个只想接收技术类新组的接收站点，必须明确列出所有这些组，这反过来导致配置文件中的行变得非常长。不出所料（尤其是如果你是从头到尾认真读这本书，而不是在书店随便翻翻的话），这些行经常超过了 Unix 工具的内置限制。

在 1980 年代早期，Rick Adams 解决了这个问题。他研究了当时的组列表，像现代的林奈一样，将它们分类为如今仍在使用的“七大类”。

|      |                 |
| ---- | --------------- |
| comp | 计算机讨论（硬件、软件等）   |
| news | 关于 Usenet 本身的讨论 |
| sci  | 科学讨论（化学等）       |
| rec  | 娱乐休闲讨论（电视、体育等）  |
| talk | 政治、宗教及议题导向的讨论   |
| soc  | 社会问题，如文化        |
| misc | 其他所有内容          |

显著缺失的是“mod”，组名将不再指示文章的发布方式，因为对读者来说它们看起来都是一样的。这个提议当时引发了一些讨论（这是 Usenet 的一个真理：一切事情迟早都会成为讨论话题）。当然，软件不得不再次修改，但这没问题：Rick 也成为了维护者。更大的讨论焦点是所谓的“talk 区”。许多“高量低质”的群组被归入了 talk。（比如 net.abortion 的典型讨论可能是“堕胎是邪恶的／不，它不是／是的，它是／科学不是邪恶的／它是一个生命体／不，它不是……”等等。）用户抗议说这样管理员很容易删除这些群组。当然——这正是目的！当时，大部分欧洲通过长途电话连接到美国，比如斯堪的纳维亚地区的人们并不关心，更不用说参与 Roe v. Wade（罗诉韦德案）的讨论了。

尽管这看起来又是一个短视且短期的 Unix 式补丁，尽管用户反对，Usenet 由 Unix 思维的管理员控制，变革还是发生了。过程出奇地顺利，主要在几周内完成（至于所有内容该归入何处并不明确。在关于水族箱养护新组的归属引发激烈争论后，最终产生了两个组——sci.aquaria 和 rec.aquaria）。对于不同意的人来说，主要网络站点的软件会自动改写文章以符合新组织结构。这次命名大修被称为“大重命名”。

像“net.god”这样的术语仍被使用，不过主要是资深用户在用。然而，在这些粗俗无礼的时代，你更可能看到的是“net.jerk”（畜生）这样的称呼。

## `alt.大规模.谩骂区`

在“大重命名”（Great Renaming）时期，Brian Reid 一直在主持一个名为“mod.gourmand”（美食家）的群组。来自世界各地的人们会把他们最喜欢的食谱寄给 Brian，他会审阅这些食谱，并以统一格式发布。他还提供了脚本，用于保存、排版和编制食谱索引，从而创建了一个属于群体的私人食谱集——一个终极的自我出版平台。总共发布了 500 余份食谱。在新的分组方案中，mod.gourmand 被重命名为“rec.food.recipes”（菜谱），而 Brian 非常讨厌这个寡淡的名字。

John Gilmore 也不满意，因为新方案里缺少一个非主持的源码发布群组——人们无法直接发布代码，必须通过中介。于是 Brian 和 John 与一些其他管理员合作，创建了“alt”（alternative）这个分层结构。正如你所料，它始于旧金山湾区——那个六十年代激进主义与煽动主义的温床。因此，alt.gourmand 和 alt.sources 被创建了。“alt”的主要规则是：任何人都可以创建群组，真正意义上的无政府状态（anarchy）得以维持：每个站点自行决定要接收哪些群组。

Usenet 成为了自己的一个缓慢运行的自我讽刺的产物。例如，Usenet 食谱集没有出现在 rec.food.recipes 中，而 Brian 很快就不再主持 alt.gourmand——也许他开始节食了？至于 alt.sources，如今人们会抱怨帖子中如果没有包含“官方”的归档名称、描述文件、Makefile 等内容。而 alt.sources 原本是为绕过主持群组而设，如今却变成了它所试图取代的主持群组的克隆体。与此同时，alt.aquaria（水族馆）和 alt.clearing.aquaria 为水族爱好者们提供了更多的交流论坛。

## 这条信息高速公路需要信息

除了对 Unix 的几次挖苦，我们在前面的叙述中几乎没有真正批评过 Unix。我们为何如此宽容？因为从根本上说，Usenet 并不关乎技术，而是关乎社会学。即便 Unix 为用户提供了更好的进行国际讨论的技术，结果也不会有什么不同：那就是对斯特金法则的响亮印证，该法则认为一切领域中都有 90% 是垃圾。

新闻组要想拥有像样的信噪比，一个必要但不充分的条件是由版主筛选信息。若缺少这一简单条件，网络的匿名性就会把本来理智的个体（嗯，至少是具备计算机素养的个体）降格为六岁的孩子，他们的最高辩论水平是“不是你是，不是你是……”

计算机素养的用户结构，更重要的是 Usenet 的接入结构，是造成这些损耗的罪魁祸首。大多数发帖者是男性理工科本科生，他们往往既不具备进行公共讨论的知识，也不具备相应的成熟度（事实证明，参与 Usenet 发帖的女性非常少；一旦发帖，就会立刻被成千上万“友好”的消息轰炸——这些网络上的性饥渴者都在指望结识新朋友）。而这些人也实在是太闲了。

噪音严重的新组，很少能留住那些能够为其增值的订阅者。其结果是新闻组的极化：一类是低流量高质量，另一类则是高流量低质量。这种极化有时是种缓慢的侵蚀力量，把所有讨论都拉低到最低的共同水平。当一个高质量组引起注意后，更多人加入——起初只是阅读，接着开始发帖。

如果没有版主，或没有像许多非 alt 组那样明确定义而又范围狭窄的宗旨，新组的消息质量就会不可避免地下降。几次大规模的骂战（flame fest）后，这个新组就会和老组一样糟糕。Usenet 开始自我模仿。新组的原始成员要么去建立另一个新组，要么另起炉灶创建一个邮件列表。除非他们格外小心地将列表保持私密（例如不将其放入列表索引中），否则这个列表也会逐渐膨胀，最终跨过变为新闻组的门槛，于是恶性循环再度上演。

## rn、trn：一分钱一分货

就像几乎所有的 Usenet 软件一样，人们用来阅读（和发布）新闻的程序也是以可自由再发布的源代码形式提供的。这种政策主要是出于作者自我保护的考虑：

* 让别人来修复 bug 和移植代码要容易得多；你甚至可以反过来解释这点为何是开源代码的优点。
* Unix 并不标准化；可怜的作者根本没有可能写出在所有现代 Unix 上都能“直接运行”的代码。
* 即便你搞出了一套在所有地方都能工作的源代码，不同的 Unix C 编译器和库也会确保你编译出来的文件只能在构建它们的那台机器上运行。

早期的 Usenet 软件附带了一些用来阅读文章的简单程序。这些程序叫做 readnews 和 rna，简陋到无需多谈。

最流行的新闻阅读器可能是 Larry Wall 编写的 rn。rn 的文档声称“即便它不是更快的，也会让你觉得更快”。rn 引入了 killfile 的概念，从而改变了新闻阅读器的范式。每次 rn 读取一个新闻组时，它还会读取你为该组创建的 killfile（如果存在），里面包含一些模式和对应的处理动作。这些模式是正则表达式（当然，它们与 shell 模式有点相似，而可见检查却无法区分二者）。

Killfile 让读者可以在喧嚣的 Usenet 中建立起自己的小岛。例如，如果某人只想读公告而不读回复，他们可以在 killfile 中放一条 `/Re:.*/`。但如果 rn 对“狡猾”的主题不小心，这可能会带来问题。

> 日期：1992 年 1 月 9 日，星期四，01:14:34 PST
>
> 发件人：Mark Lottor <mkl@nw.com>
>
> 收件人：Unix 痛恨者
>
> 主题：rn 的 kill 功能
>
> 我只是想用 rn 把一个新闻组里几百条未读信息赶紧看完。我看着标题一条条跳出来，如果主题不感兴趣，我就按“k”来执行 kill 命令。它会显示“将主题 `<foo>` 标记为已读”，然后把所有相同主题的未读消息都标记成已读。
>
> 然后发生了什么呢……我看到一条主题是 `*******` 的消息跳出来，按了“k”。没错——它把所有消息都标记为已读了。完全没法撤销。彻底毁了。又一次掉坑了。
>
> ——mkl

rn 的命令都是单个字母，这本质上就是个严重的问题。因为命令很多，所以许多字母的分配完全没有道理。为什么“f”是发布跟进（followup），而 followup 究竟是什么意思？你会希望用“r”来回复文章，但那意味着直接发邮件给作者。你不能用“s”表示发邮件，因为那是“保存到文件”的意思；你也不能用“m”，因为那表示“把文章标记为未读”。而且，谁能理解这些术语，真的明白它们是什么意思？或者，有谁能真正记住“k”、“K”、“^K”、“.^K”等等的区别？

它没有详细模式，帮助信息从来都不完整，也没有脚本语言可用。另一方面，“它确实感觉更快”。

像所有程序一样，rn 有它自己的 bug。Larry 引入了用一种标准格式的消息来分发修复补丁的做法，消息里包含“diff”的输出。也就是说：这是我的修复代码与你的有问题代码之间的差异。Larry 还写了 `patch` 工具，它可以把旧文件和修改描述合成为新文件。每当 Larry 发布一个官方补丁（当然也有“热心人”不定期发布一些非官方补丁），全球各地的站点都会应用该补丁并重新编译它们自己的 rn 副本。

Remote rn，是 rn 的衍生品，可以通过网络读取新闻文章。它之所以有趣，只是因为它迫使管理员同时维护两个几乎完全一样的程序，并且所有人在说这个名字时都像海豹一样发出声音：“rrn”。

trn，是 rn 的最新版本，它融合了 rn 和 rrn 的所有补丁，并增加了将文章归为“线程”的功能。线程是由一篇文章及其所有回复构成的集合，trn 会在阅读时在屏幕右上角用一个小图示显示这个“树”。例如：

```
+[1]-[1]-(1)
\-[2]-[*]
| +-[1]
+-[5]
+[3]
-[2]
```

不，我们也不知道那是什么意思，但确实有一些 Unix 怪胎对此类图示和那些“操作”这些信息的特殊非字母按键奉若神明。

rn 系列程序高度可定制。另一方面，只有真正强迫症式的 Unix 怪胎才会在意 killfile 到底是存成：

```sh
$HOME/News/news/group/name/KILL,
~/News.Group.Name,
$DOTDIR/K/news.group.name
```

有时候，这种功能（必须通过“% 字符串”和“转义序列”硬塞进一个不灵活的环境中）会反过来咬你一口：

> 日期：1991 年 9 月 27 日 星期五 16:26:02 EDT
>
> 发件人：Robert E. Seastrom <rs@ai.mit.edu>
>
> 收件人：Unix 痛恨者
>
> 主题：rn 咬了个 Unix 呆瓜一口
>
> 当时我正浪费时间在读 abUsenet 新闻，偶然看到一篇我觉得值得保留的文章。
>
> RN 有个挺方便的小功能，能把当前文章通过管道送进任意一个 Unix 程序，所以你可以在合适的时候输入 `| lpr` 来打印这篇文章。
>
> 此外，你还可以通过输入 `| mail jrl@fnord.org` 把它寄给自己或另一个幸运的人。
>
> 现在，这篇我想保留的文章跟我工作内容直接相关，所以我想把它寄到我工作的邮箱。
>
> 我们的系统通过 UUCP 和 uunet 相连（这本身就让我无比“愉快”，不过那是另一个喷点了……），但是我们没有域名。
>
> 因此我把信寄到 `rs%deadlock@uunet.uu.net`。显然 `%d` 对 rn 来说有特殊含义，因为几小时后我去读邮件时，发现邮箱里躺着这样一封信：
>
> ```
> Date: Fri, 27 Sep 91 10:25:32 -0400  
> From: MAILER-DAEMON@uunet.uu.net (Mail Delivery Subsystem)  
> ----- Transcript of session follows -----  
> >>> RCPT To:<rs/tmp/alt/sys/suneadlock@uunet.uu.net>  
> <<< 550 <rs/tmp/alt/sys/suneadlock@uunet.uu.net>... User unknown  
> 550 <rs/tmp/alt/sys/suneadlock@uunet.uu.net>... User unknown  
> ```
>
> —— Rob

## 不懂就发帖

> 我在 net 上发了个问题
>
> 但还没收到回复。
>
> —— Ed Nather
>
> 得克萨斯大学奥斯汀分校

在 Usenet 的早期，帖子传播到大部份网络节点可能需要一周时间，因为通常每一次长距离跳跃都是通过夜间长途电话完成的。因此，Usenet 讨论常常像是一种音乐轮唱和儿童游戏“传话”的结合。链条上“早期”的人会补充新信息，甚至常常转移到别的话题，而链条末端的人收到的消息往往是无序或断章取义的。电子邮件经常不可靠，所以直接发帖回答别人的问题是合理的。人们也觉得问题和答案会一起被传送到下一个节点，让那里的用户看到问题已经被解答。其净效果是，令人惊讶地减少了信息量。

现在 Usenet 快得多。你发一篇文章，如果你在互联网中，五分钟内它就能传达到数百个站点。然而，正如原子弹一样，人类还没跟上技术的发展。人们看到一篇文章，就急于立刻回复，而不等别人是否已经回答。软件在这方面部分有责任——没有一个好办法能轻松查找是否已有答案。当然，自尊心也是原因之一：“看啊，妈妈，我的名字出现在聚光灯下了。”

因此，Usenet 上的问题往往会收到大量公开的答案。这些答案常常互相矛盾，很多也是错误的，但这是可以预料的。免费的建议，其价值往往取决于你为它付出了什么。为了减少常见问题的频繁出现，许多新组都有志愿者定期发帖，称为 FAQ（常见问题集），包含常见问题及其答案。这似乎有所帮助，但并不总是如此。经常会看到帖子问“FAQ 在哪？”或者更粗鲁地说“我猜这就是 FAQ，不过……”

## 无聊网络的七个阶段

* 作者：Mark Waks

Usenet 发表者的七个阶段，附带示例说明。

### 懵懂期

你好，我是新来的。为什么大家都叫这个 talk.bizarre（离奇古怪）？我觉得这个新闻组，呃，新组 —— 呵呵，呵呵 —— 东西真不错。 :-) <—— 我的第一个笑脸符号。

你们有有趣的笑脸符号吗？请发几个吧；我觉得它们很酷。有人有怪异的死婴笑话（黑色幽默）吗？

### 热血期

哇！这些东西太棒了！但我注意到每次有人试图讲死婴笑话时，大家都说不想听。这真让人失望；其实我们有很多人 *喜欢* 死婴笑话。

因此，我提议专门为喜欢这些笑话的人创建一个新闻组 rec.humor.dead.babies。有人能告诉我怎样创建新闻组吗？

### 傲慢期

在消息（3.14159\@BAR）中，<FOO@BAR.BITNET> 说：

＞\[死鸡笑话已删除]

这种笑话根本不属于这里！你难道没看规则吗？Gene Spafford *明确指出* 在新闻组列表中：

rec.humor.dead.babies —— 死婴笑话交换

够简单吗？仅仅是死的生物还不够，*必须* 是婴儿——明白了吗？

这个人明显是个渣滓——他们甚至躲在假名背后。我是说，FOO 这个名字算什么？我正在给 BAR.BITNET 的系统管理员写信，要求立即撤销此人的网络访问权限。如果该管理员不配合，显然是同谋——我将敦促切断他们的新闻源，以便他们无法在网上传播这种 `#%!T`。

### 厌恶期

在消息（102938363617\@Wumpus）中，James\_The\_Giant\_Killer\@Wumpus 写道：

＞问：怎样把 54 个死婴塞进一个保鲜盒？

>

＞答：La Machine（机器）！哈哈哈！

你们难道完全没有想象力吗？我们在过去三个月里 *至少* 听过这笑话 20 次！

当我们刚开始这个新闻组时，它充满活力和创新。我们交换的死婴笑话是真正新鲜的，没人听过的。半数笑话是这个组 *完全* 原创的。现在，我们只剩下一些只想听自己说话的废话者。你们真无聊至极。我放弃了，从现在起取消订阅。你们自己继续争吵吧，不用我了。再见！

### 无奈期

在消息（12345\@wildebeest）中，wildman\@wildebeest 抱怨道：

＞在消息（2\@newsite）中，newby\@newsite（Jim Newbs）写道：

>

＞＞怎样把 500 个死婴塞进一个垃圾桶？

> >

＞＞用厨师宝！

>

＞啊啊啊！我们专门创建了 rec.humor.dead.babes.new，目的就是为了躲开这种老笑话！走开，去老新闻组 r.h.d.b 吧，直到你能有点想象力，好吗？

嘿，wildman，冷静点。当你像我一样在网上混久了，你会明白傻子是网络生活的一部分。这样看：至少他们还没有把我们淹没。rec.humor.dead.babes.new 里的大多数笑话仍然新鲜有趣。

我们可以希望像上面的 newby 那样的人会潜水，直到他们理解死婴笑话创作的微妙之处，但如果他们不理解，我们也该包容他们。保持冷静，别让这些事烦扰你。

### 僵化期

在消息（6:00\@cluck）中，chickenman\@cluck（Cluck Kent）大声说：

> 在消息（2374373\@nybble）中，byte\@nybble（J. Quartermass Public）写道：
>
> > 在消息（5:00\@cluck）中，chickenman\@cluck（Cluck Kent）大声说：
> >
> > > 在消息（2364821\@nybble）中，byte\@nybble（J. Quartermass Public）写道：
> > >
> > > > 在消息（4:00\@cluck）中，chickenman\@cluck（Cluck Kent）大声说：
> > > >
> > > > > 因此，我提议创建 rec.humor.dead.chicken。
> > > >
> > > > 在他们申请这个新闻组之前，我指出他们应该遵守规则。指导方针明确说明，你必须能证明有足够的活跃度。我在 rec.humor.dead.babes 中没听到有这种活跃度，所以我必须得出结论，这个提议从表面上看就是骗局和欺诈。
> > >
> > > 上次我们试图在 r.h.d.b 发表死鸡笑话时，被大声斥责叫我们滚开！你这个废物，竟敢说我们没有活跃度？
> >
> > 这类人身攻击实无必要。我只是想说：如果有人对死鸡笑话感兴趣，那么我们肯定会在 r.h.d.b 里听到一些关于死 *小鸡* 的笑话。我们没有听过任何这样的笑话，所以很明显没人对鸡的笑话感兴趣。
>
> 那甚至都不合逻辑！你的推理完全错误。

现在大家应该清楚，这个“Cluckhead”（“鸡头”，带侮辱意味）满嘴胡说。rec.humor.dead.chicken 没有人感兴趣，所以不应该创建它。这种人真的让我火大。他难道没意识到，只要多几个这样的新闻组，这整座纸牌屋就会倒塌吗？首先，我们会有 rec.humor.dead.chicken（毫无疑问，还有 rec.humor.dead.chicken.new）。接下来，他们会要求 rec.humor.ethnic，然后是 rec.humor.newfy。到那时，全世界的新闻管理员都会决定彻底抛弃我们。Cluck，你想要这个结果吗？想要促使 Usenet 的终结？

哼！我呼吁大家投票反对这个提议。现有系统运作良好，我们不应该去挑战它，以免它崩溃。

### 怀旧期

他们刚刚创建了 rec.humor.ethnic.newfoundland.bizarre。哎，事情发展得真快。感觉我刚加入这个网络的时候还很短暂，那时在幽默分类下只有两个新闻组：rec.humor 和 rec.humor.funny。我真惊讶事情如何分裂开来。现在，你必须在新闻阅读器里有 20 个新闻组，才能跟上 *新* 笑话。啊，那些美好的旧时光，我们还能在一个地方读到所有的内容。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/unix-tong-hen-zhe-shou-ce/di-yi-bu-fen-yong-hu-you-hao/wu-liao-de-wang-luo-wo-fa-tie-gu-wo-zai.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
