OpenOffice 无法在周二打印 (2009)
摘要
文章描述了一个错误,导致OpenOffice仅在周二打印失败。这是由于'file'工具中的模式匹配错误,因日期格式问题将PostScript文件误识别为Erlang JAM文件。
<p><a href="https://lobste.rs/s/im3eeh/openoffice_does_not_print_on_tuesdays">评论</a></p>
查看缓存全文
缓存时间: 2026/08/28 13:37
# OpenOffice 周二无法打印
来源:https://beza1e1.tuxen.de/lore/print_on_tuesday.html
来源(通过 Paul Wise 转引自 http://catless.ncl.ac.uk/Risks/25/77#subj14.1)
今天我在一篇博客上看到一个有趣的 bug。问题是某些用户的打印功能偶尔会失败。后来有人提到,他的妻子一直抱怨说周二无法打印!
在查看 bug 报告时,起初人们都坚称这肯定是 OpenOffice 的 bug,因为其他所有应用程序都能正常打印。另一些人则指出该问题时好时坏。一位用户找到了解决方案:完全卸载并重装 OpenOffice(在 Ubuntu 上这很简单)。他在周四报告说这个方法解决了他的打印问题。
两周后,他在周二报告说这个方法实际上并不奏效。近四个月后,一位 Ubuntu 黑客的妻子抱怨说 OpenOffice 在周二无法打印。我能想象那个场景:
妻子:史蒂夫,打印机周二就罢工了。
史蒂夫:那是打印机的休息日——它当然不会在周二打印。
妻子:不,我是认真的!我周二用 OpenOffice 就打印不了。
史蒂夫:(难以置信地)好吧...演示给我看看。
妻子:现在没法演示给你看。
史蒂夫:(翻白眼)为什么?
妻子:因为今天是周三!
史蒂夫:(点头。缓缓说道)好吧...
这个问题似乎最终追溯到一个名为 'file' 的程序。这个 *NIX 工具通过模式匹配来检测文件类型。例如,如果文件以 '%!' 开头后接 'PS-Adobe-',则会被识别为 PostScript 文件。似乎 OpenOffice 会在 PostScript 文件中写入日期。在周二,日期格式会显示为:%%CreationDate: (Tue MMM D hh:mm:...)
由于用于检测 Erlang JAM 文件的模式存在错误,导致 PostScript 文件中的 'Tue' 被识别为 Erlang JAM 文件,因此,大概,该文件就没有被发送到打印机。
Erlang JAM 文件的匹配模式是:
```
4 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2
```
它本应是:
```
4 string Tue\ Jan\ 22\ 14:32:44\ MET\ 1991 Erlang JAM file - version 4.2
```
鉴于这个程序试图匹配的文件类型数量庞大(超过 1600 种),模式中出现错误并不奇怪,而且匹配顺序也可能导致误报频繁。在这个案例中,Erlang JAM 文件的匹配发生在 PostScript 匹配之前。
参考 (http://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-wont-print-on-tuesdays/),Bug 报告 (https://bugs.edge.launchpad.net/ubuntu/+source/file/+bug/248619)
---
更多此类离奇故事 (https://beza1e1.tuxen.de/lore/index.html)
©2023-11-22
相似文章
致办公套件用户的一封公开信,就在Euro-Office宣布之前
文档基金会(The Document Foundation)纠正了关于Euro-Office是首个欧洲开源办公套件的说法,强调了LibreOffice和OpenOffice.org的历史,并批评Euro-Office使用微软专有的OOXML格式,认为这违背了数字主权(digital sovereignty)。
@jeremyphoward:今天 Opus 4.8 出问题了吗?我第一次遇到这种情况(我每天都在用):它几乎完全停止了思考……
Jeremy Howard 报告称,Anthropic 的 Opus 4.8 模型突然停止思考并给出糟糕的回应,而 Opus 4.6 则运行正常。
Euro-Office、开放标准与原生 ODF
文档基金会欢迎 Euro-Office 对开放标准的承诺,但敦促其采用 ODF 作为原生文档格式以实现真正的数字主权,并纠正了关于 Euro-Office 是欧洲首个开源办公套件的说法。
Dates That Don't Exist (2015)
A blog post exploring the nonexistent dates of October 5-14, 1582 due to the Gregorian calendar reform, and how Ruby, Python, and Perl handle these invalid dates.
公元零年二月的一个错误
PHP 的 DateTimeImmutable 中一个罕见的错误导致公元零年二月出现日期偏差一天的问题;解决方法是使用替代的时间戳转换方法。