2023年7月

如果人们能停止争论谁算谁不算,那就会加倍了。

Linux 现在占据全球桌面操作系统市场略超过 3%,不包括 4% 多的 ChromeOS(虽然 ChromeOS 实际上 也是 Linux,但是它是“错误类型”的 Linux)。

Web 服务器统计聚合网站 Statcounter 上周宣布,截至 2023 年 6 月,Linux 占据 全球桌面操作系统使用量的 3%。然而,ChromeOS 的使用量仍然超过 Linux,这意味着 Linux 桌面占不到一半的 Linux 桌面市场的份额。如果你感到这话有点奇怪,那你是对的。

显然,Linux 桌面的使用量为 3.08%,落后于 ChromeOS 的 4.15%。问题在于,ChromeOS 实际上 也是 一种 Linux 发行版。它是一种奇怪的发行版,在几个方面不符合标准,它目前的版本基于 Gentoo Linux 构建,是几年前从基于 Ubuntu 转换而来的。

我们认为更准确的计算结果应该是,Linux 现在占据了 Statcounter 统计的使用数据的 7.23%,而 ChromeOS 占据了一半以上:总计 57.4%。这似乎是一个更积极的解释,Linux 粉丝应该会乐于接受,但显然事实并非如此。例如,Linux 布道网站 Linuxiac 在其报道中甚至没有 提到 ChromeOS。

(顺便说一下,我们怀疑 “未知” 类别下的 3.23% 操作系统很可能也是 Linux 用户,只是他们的极度谨慎遮掩了他们的用户代理或其他信息。)

为什么 ChromeOS 算进去呢?它是一个在标准 glibc C 库之上构建的 Linux 内核和 Linux 用户空间。你可以打开 Shell。如果你愿意,你还可以运行一个 Debian 容器,并在其中安装和运行任何 Debian 应用;我们的实验性 ChromeOS Flex 机器运行着 Firefox 和 DOSemu。

如果有人说 “安卓不是 Linux”,这还是有一定的道理的。你不能轻松免费地下载它,也不能在自己的通用个人电脑上运行它。尽管有一些实验性的基于安卓的桌面操作系统,但迄今为止它们都失败了。在其原生平台的智能手机和平板电脑上,你无法在安卓上运行普通的 Linux 应用程序。它是一种不同类型的系统,尽管从技术上讲,它是一个带有 Linux 内核的系统。但仅此而已。它甚至使用了奇怪的、非标准的、非 GPL 许可的 libc,名为 "Bionic"。默认情况下,除了内核之外,它没有任何其他类似 Linux 的东西。没有 Shell,没有桌面,没有 X11 或 Wayland,什么都没有。

但 ChromeOS 不是如此。在其独特的 GUI 层下(与 macOS 不同,它是 开源 的),它是一个相对标准的 Linux,可以直接在 x86 和 ARM 平台上运行标准的 Linux 应用程序。因此,它是目前最成功的桌面 Linux。

它不是典型的 Linux,因为典型的 Linux 是给怀有技术痴迷的黑客人群使用的工具,这种操作系统永远不会成为主流,除非有人强迫人们使用它。

ChromeOS 是一个去除了 Linux 特性的 Linux 桌面。没有关于分区的选择。没有奇怪的双启动机制。不用选择桌面环境或软件包管理器。甚至没有软件包管理器!

从重要的方面来看,ChromeOS 是一个主流、商业成功、精心设计的面向最终用户的桌面操作系统,而且它确实是一个 Linux 系统。

因此,自由开源软件(FOSS)阵营的力量自然对它充满敌意。当然他们愿意这么做。他们是如何表达这种蔑视呢?他们声称它不是一个“真正的 Linux”。

Unix 就像一种宗教:不知何故,它鼓励分裂和分散的派别,每个派别都否认其他派别的合法性。这几乎成了 Unix 的定义特征之一。

如果我们忽略所有商业版的 Unix,因为它们实际上都已经 不复存在,只关注 FOSS 阵营,有大约十几个竞争派别:NetBSD、FreeBSD、OpenBSD、DragonflyBSD、Minix、HURD 和 L4 及其 各种分派、Plan 9(9front、HarveyOS、Jeanne 等)、Inferno、xv6v7/86,当然还有 Linux 和数千个不同的发行版。

确切地说,只有 两个 基于 Linux 的操作系统在面向非技术用户的 GUI 系统中取得了大规模的商业成功。一个拥有 数十亿用户,另一个则有 数亿用户。它们都来自谷歌,并且都具有一个定义性的特征:自由开源软件(FOSS)世界拒绝接受它们。

ChromeOS 有两个版本:普通的 ChromeOS 只能通过购买专门为其设计的硬件来获得(就像苹果的 macOS 一样),而另一个是 ChromeOS Flex。Flex 过去被称为 Neverware Cloudready。Neverware 起源于 Hexxeh 对普通个人电脑 重新混编和重构 的 ChromiumOS。Hexxeh 开发了 ChromeOS Flow,它是 ChromeOS Flex 的直接前身:两者都是可以用在通用个人电脑硬件上的 ChromeOS。这是其中一个重要的方面,它表明 ChromeOS 就是又一个 Linux 发行版。

ChromeOS Flex 不像安卓。从重要的方面来看,它就是一个 Linux。它既是自由 开源 的,也有多个混编和重构版本。它可以在通用的具有普通 BIOS 或 UEFI(包括安全启动)的设备上运行。它有自己独特的桌面环境。你可以打开一个 Shell,并安装和运行任何任意的 Linux 应用程序。

外观上它看起来像一个 Linux,行为也像一个 Linux,并且像任何其他桌面 Linux 一样运行。它基于通用的 Linux 内核,使用与其他桌面 Linux 相同的 Linux 二进制文件执行 Linux 相关的操作。

它没有 systemd,但感谢伟大的 Torvalds 大神以及他的使徒圣·Cox,它还不是 Linux 发行版的要求。它使用的是 upstart,这是一种最广泛使用的初始化系统之一。

当某种特定形式的基于 Linux 的操作系统开始变得主流,并被 大约一半 的人使用时,Linux 世界的真正信徒们会放弃它,这完全符合 Linux 世界的特点。安卓不是 Linux。好吧,他们某种程度上是对的。

但是对于 ChromeOS,尤其是 ChromeOS Flex 来说呢?当然,所有的倡导者都会声称它不是真正的 Linux,但随之而来的很快就变成了一个“没有真正的苏格兰人”的争论。红帽族认为 Ubuntu 是垃圾,Debian 迷们认为其他一切都是垃圾,Arch 族认为自己是真正的前沿,Slackware 爱好者认为其他人都是新手,而 NixOS 的那些人则认为其他所有人仍然停留在某个石器时代……

(题图:MJ/3dcb3470-0b08-41bf-b826-be5afac57775)


via: https://www.theregister.com/2023/07/18/linux_desktop_debate/

作者:Liam Proven 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Meta 发布新大语言模型,可免费商用,采用特别的“开源”方式

Meta 周二发布了 Llama 2:这是一套经过预训练和微调的基于文本的人工智能模型,有三种不同的规模,分别包含 70 亿、130 亿和 700 亿个参数。与之前的 LLaMA 模型不同的是,任何人都可以申请下载 Llama 2,开发人员可以用它来构建商业产品或服务,以及开展有趣的项目。Meta 表示,不会对访问或使用其开发的模型收费,而是通过向其他公司开放该技术,如与微软和亚马逊合作,在 Azure 和 AWS 上提供该模型。值得注意的是,Llama 2 采用了专门的 许可证,有一些独特的限制,因此不符合“开源”的定义。除了常见的免责声明外,开发人员不能利用其输出结果来改进其他类型的大型语言模型。以及,如果将 Llama 2 用于支持那些拥有超过 7 亿月活跃用户的应用程序的大公司,必须申请使用 Meta 技术的特殊许可。

消息来源:The Register
老王点评:虽然不是规范定义的“开源”软件,但至少是开放的。值得注意但是,从 LLaMA 到 Llama 2,Meta 都采用了非同寻常的“开源”方式,这或许是 Meta 既想利用开源的优势,又有一些不确定的担忧。也许人工智能领域需要一种独特的开放许可证。

美国启动物联网安全标签计划

该计划的正式名称为《美国网络信任标识》,旨在帮助美国人确保他们购买的互联网连接设备具有强大的网络安全保护措施,可防范网络攻击。长期以来,物联网一直被认为是网络安全的薄弱环节。符合该标准的设备将要求具有唯一且强大的默认密码、保护存储和传输的数据、提供定期的安全更新以及具备事故检测能力等。

消息来源:Tech Crunch
老王点评:越来越多的物联网设备,其实是埋在信息社会底层的空洞,你不知道它什么时候就会导致塌陷。

印度大部分外包程序员将在两年内因人工智能而消失

Stability AI 公司的 CEO 表示,印度的大多数外包程序员将在未来一两年内失业。不过他认为,在法国等受《劳动法》保护较强的国家受到这种影响的可能性较小。他重申了他之前的说法,五年后将 “不再有程序员”,不过,他也说明,他指的是传统意义上的程序员。他说,“当你把编程这件事从错误测试、单元测试到构思进行解构时,人工智能可以做到这一点,而且做得更好。但这不是自动完成的,而是人工智能‘辅助驾驶’完成的。”

消息来源:CNBC
老王点评:其实也不用特别慌,就像计算器、计算机出现,并没有让原来的财务和文员失业一样,只是如果你掌握不了新工具,那这种“古典程序员”被淘汰也是自然的。

当你开始在桌面上使用 Linux 时,你可能会选择像 Ubuntu 或者 Linux Mint 这样的 对初学者友好的发行版

随着你逐渐熟悉 Linux 并且开始喜欢上它,你会加入各种社交渠道上的 Linux 相关社区,关注分享 Linux 内容的网站。而当你这样做的时候,你也会发现一些新的、相对不知名的发行版。

因为你对这个领域还比较陌生,你可能会被诱惑尝试一个接一个的发行版,从而陷入“发行版快闪”的陷阱。

让人心动的发行版

于是你开始问自己这个问题:“我应该使用一个未知的发行版,还是像大多数人那样使用流行的发行版呢”?

简单的答案是坚持使用主流的发行版,但真正的答案需要你自己思考。

使用新的、较为冷门的发行版存在的问题

使用“全新的、个人开发者的发行版”存在一个主要问题,那就是不确定性。你无法确定这个项目将会存在多久。可能是一年,也可能是一个月。

我曾经见过几个发行版出现这种情况。比如,SemiCode OS 由于为程序员而创建而变得流行。类似的发行版 Emperor OS 最近消失了。这只是被停止开发的发行版长列表中的几个例子。

你可能会说,一个有一定用户基础的旧发行版也可能出现同样的情况。这是对的,但通常情况下,有一个社区和多个开发者参与项目。这样你就有一定的保证。

由于开发者的经验不足,新的发行版可能会缺失关键功能。例如,在撰写本文时,看起来令人惊艳的 Garuda Linux 官方并不推荐双启动。

尽管 Garuda Linux 拥有相当数量的支持者和几名开发者参与项目,但仍存在这个问题。

大多数新的发行版没有提供实质性的内容

你经常会遇到一些全新的发行版,它们基于一些其他流行的发行版,比如 Ubuntu 或 Arch Linux。唯一的不同可能只在于默认的应用程序、主题和壁纸。

如果它是一个“面向程序员的发行版”,它可能会默认安装一些编程应用程序。如果它是一个“游戏发行版”,它可能会默认安装一些工具,如 Steam、Wine 和 Lutris。你不太可能在图形或硬件方面看到真正的优化。

这就是为什么很多人说,已经有了数百个发行版的拥挤空间中,我们不需要更多的发行版。毕竟,在主流发行版中安装所需的应用程序并不难。

我反对这些新的发行版吗?

绝对不是。

你可能会觉得几乎没有提供任何价值的新发行版是多余的。你可能是对的,因为这些项目可能对你来说无关紧要,但对于开发它的人来说,它们是重要的。

你有没有试过学习一门编程语言?第一个教程通常是一个“Hello World”的程序。即便是高级程序员也是从“Hello World”开始的。

婴儿不会直接开始跑步。到达那个阶段需要时间。

我对这些项目的看法也是一样的。如果有人热爱 Linux 并且对创建自己的“操作系统”感到兴奋,就让他们去做吧。如果你不想鼓励他们,也不要泼冷水。

大多数项目都是从相同的方式开始的。Linux Mint 是一款非常受欢迎的 Linux 发行版。它于 2006 年开始,并以 Kubuntu 为基础。

真的需要“一个基于 Ubuntu 的类似发行版”吗?实际上并不需要。但看看 Linux Mint 如今的地位。

那么,你应该使用新的发行版还是不应该使用呢?

总体而言,这取决于你自己。

如果你不喜欢频繁格式化你的系统,并且希望继续正常生活,那就坚持使用主流的发行版。

如果你喜欢实验,不介意频繁更换操作系统并且愿意冒着搞乱系统的风险,那么你可以尝试新的发行版。就个人而言,我建议你在虚拟机中尝试它们。如果你能有一台空闲的系统专门用于实验,那就更好了。

你也可以使用那些在社区中存在多年,但不如 Ubuntu、Mint、Fedora 和 Debian 等发行版流行的发行版。像 PCLinuxOSPuppy Linux、Peppermint OS 等项目拥有一个较小但活跃的社区。它们绝对是一个可靠的选择,即使用于你的主系统也没有问题。

在选择发行版时,除了基础发行版外,你还应该看看该发行版是否经常更新,并拥有一个活跃的社区。你只需要查看该项目的论坛,看看社区中是否有足够的活动即可。

你更喜欢哪种类型的发行版?

这是我在选择新的较为冷门发行版和流行的主流发行版之间提出的想法和建议。

那你呢?你更喜欢哪种类型的发行版?

(题图:MJ/930988c0-443d-4d61-a603-1466a5e33d85)


via: https://news.itsfoss.com/obscure-or-maintsream-distro/

作者:Abhishek 选题:lujun9972 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

blendOS v3 已经来到,并带来了重大升级!

blendOS

blendOS 是一个 不可变发行版,它的目标(野心)是取代所有 Linux 发行版。我们最近 介绍了它 之前的版本。该项目由 Ubuntu Unity 的首席开发者 Rudra Saraswat 领导,其进展一直良好。

在最近的公告中,他们推出了一个带来了许多改进的新版本,使 blendOS 更加接近其目标。

让我们看看这个版本有什么内容。

? blendOS v3 “Bhatura”:有什么新内容?

a screenshot of blendOS v3's desktop

作为一个支持大多数软件包的 基于 Arch 的发行版,最新版本的 blendOS 的名字来源于印度美食中的一道美味佳肴 “印度炸麦饼”。

这个版本提供了很多东西,值得注意的亮点包括:

  • 更好的桌面环境支持
  • 直观的应用安装
  • 支持附加发行版
  • 改进的系统更新
  • 新的命令行程序

更好的桌面环境支持

a banner showing the new desktop environment support on blendOS v3

blendOS 现在 支持 7 种桌面环境,其中包括:

现在支持的太多啦! ?

你可以通过在终端中运行 system track 命令轻松地在这些之间切换。

直观的应用安装

a banner showcasing the updated application install experience on blendOS v3

此版本的 blendOS 现在提供了双击 DEBRPMpkg.tar.zst 甚至 APK 包将它们安装到容器中的功能。

? 对于 APK:你需要从设置启用安卓应用支持。

支持附加发行版

blendOS 现在支持在容器中运行十个发行版,并且能够通过单用户/多用户安装 运行 NixOS。以下是支持的发行版:

  • Arch Linux
  • AlmaLinux 9
  • Crystal Linux
  • Debian
  • Fedora 38
  • Kali Linux (滚动版)
  • Neurodebian Bookworm
  • Rocky Linux
  • Ubuntu 22.04
  • Ubuntu 23.04

改进的系统更新

a banner showing the new system update flow chart on blendOS v3

blendOS v3 使用 ISO 进行系统更新。 与传统发行版不同,它允许重建系统,更新大小在 10-100 MB 范围内。

多亏了 zsync,更新下载的大小才如此之小。更新在后台下载,下次启动时,当前的根文件系统将被替换,同时保持任何自定义系统包完好无损。

根据开发者的说法,此更新系统解决了 Arch Linux 等滚动发行版的重大缺陷,防止任何数据丢失或系统故障,提供了出色的稳定性。

新的命令行程序

a banner showing the new cli utilities on blendOS v3

最后,它引入了两个新的命令行程序; 一个是 system,另一个是 user

system 将允许你安装软件包,甚至切换桌面。而 user 将使你能够创建/管理容器及其关联。

就是这样。对于此版本的亮点,你可以通过 发布公告 博客来了解有关此精彩版本的更多信息。

? 下载 blendOS v3 “Bhatura”

blendOS v3 有七个不同的版本,从 GNOME 版本一直到 Deepin 版本。

你可以从 官方网站 获取它们,你也可以在其中查看安装指南。

blendOS v3 “Bhatura”

via: https://news.itsfoss.com/blendOS-v3-released/

作者:Sourav Rudra 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Wayland 正在成为 Linux 图形用户界面的首选方式

越来越多的证据表明,Wayland 显示服务器可能很快就会取代 X11,成为 Linux 上最常用的 GUI 方式。比如,为苹果芯片 Mac 开发 Linux 的团队表示,他们没有足够的人力来开发 X.org 支持。被许多 Linux 应用程序和桌面使用的 Gtk 工具包的开发者说,下一个版本可能会 放弃 对 X11 的支持。Budgie 桌面的下一个版本将只支持 Wayland。KDE 6 会话 默认使用 Wayland。甚至还有人尝试让 Wayland 在 OpenBSD 上运行,而它已经可以在 FreeBSD 上使用了。

消息来源:The Register
老王点评:再想想 X.org 多少年 没有 实际开发 在进行了,连 董事会选举 都差点凑不够人。所以,是时候全面转向 Wayland 了。当然,Wayland 自己还有一些问题需要解决。

安装量超百万的 WordPress 安全插件明文记录密码

All-In-One Security(AIOS)是一款安装量超过了百万的增强 WordPress 安全性的插件,在其 5 月发布的 v5.1.9 中引入了一个错误,用户登录使用 AIOS 的网站后会以明文方式记录其密码,并将其存储在管理员可访问数据库中。上周释出的 v5.2.0 修复了该问题,并从数据库里删除了相关数据。在公告中,他们还给出了一些安全建议,其中包括已被认为是糟糕的安全实践“定期修改密码”——因为这会事实上迫使用户使用弱密码。微软认为这种做法 “古老而过时”。

消息来源:Ars Technica
老王点评:无论如何,不用明文存储密码都是最起码的安全常识。从这一点和该插件开发方给出的安全建议看,他们或许并没有真正的安全意识。

网站建设公司提供创建整个网站的人工智能工具

Wix 是网站建设领域的老牌公司。该公司发布的新人工智能网站生成工具可以让 Wix 用户描述他们的意图,并生成一个包含主页、内页、文本和图片的网站,并可以包括活动、预订等特定业务板块。在一个类似聊天机器人的界面中,该工具会询问一系列有关网站和业务性质的问题,并尝试将其转化为定制的网站模板。Wix 认为客户不会特别在意花时间定制网站外观的方方面面。

消息来源:Tech Crunch
老王点评:很多年前,开发一个网站是一件艰巨的工作,而现在,通过新的工具,开发一个网站可能就像快餐一样简单。

一些系统管理员、网页设计师、工程师和程序员分享了他们在命令行上经历的最可怕的经历。

每个开发人员内心最害怕的事情是什么?在你的代码开始运行前的宁静时刻,什么最让你感到恐怖?你见过或写过最可怕的代码是什么?

错误的权限

我负责一台服务器,然后我通过 FTP 上传了一些东西。显示了一些奇怪的东西,所以我想权限可能需要改变一下。

不用说,我愚蠢地关闭了读取权限并使网站瘫痪了。(当没有人能访问时,网站就没啥用了。)

我花了几个小时才修复好。这是很多年前我在一个机构担任唯一的网页开发人员时的事情。

Miriam Goldman

混乱的 HTML

我曾经因 WordPress 的默认主题有可用的更新而使一个客户的网站瘫痪,这个客户当时是《华尔街日报》畅销书榜上的一位作者。

他的开发人员在主题中硬编码了 HTML,而不是创建一个子主题。而我运行了更新操作。

那个年代,人们不容易实现每晚备份,所以我花了几个小时打电话给托管提供商。像分阶段发布、子主题、每晚备份或手动备份这样的东西现在都很常见,还有自动更新和手动回滚的能力。但在那个时代并不常见。

Courtney Robertson

密钥不再秘密

我想我们中的许多人在公共代码中看到过密钥。或者另一个经典案例:我的一个朋友从开发服务器向 10 万个用户发送电子邮件。

John E. Picozzi

Unix 混乱

这是一个 Unix 的故事。今天在 Linux 中已经修复了这个问题。

在我要向管理层进行一个重要的新组件演示的前一天,我需要更新我的代码(这是在 Git 存在之前的年代)。我进入我的主目录,找到项目目录,然后删掉了一切。不幸的是,在那个版本的 Unix 中,该命令会跟随符号链接进行删除,并且我有一个链接指向代码的最新版本(并不是所有代码都在源代码系统中,因为它还处于测试阶段)。

好在一天后,大楼里出现了网络问题,因此演示推迟了一天,我们设法恢复了代码。那是三十多年前的事情。即使现在我也不知道网络问题是巧合,还是我们的系统管理员试图帮助我们(如果是这样,那确实奏效了!)

Josh Salomon

命令式编程

看到 CSS 文件中到处都是 !important; 而不是正确使用特异性。

我曾经不得不覆盖和定制一个 WordPress 主题几乎所有的 CSS,因为该网站的所有者坚持不换一个更接近他想要的设计的新主题。

那个主题开发者最后一次更新是在 2018 年,但网站至今仍在使用。

Christi Nickerson

错误引用

在我以前的职位上,我的前任在代码注释中引用了 Journey 的《Any Way You Want It》歌词错误。

Ben Cotton

Algol68 的幽灵

在上世纪 60 年代末到 70 年代初,Algol68 的复杂性使许多有影响力的人望而却步,包括 Niklaus Wirth 在内。我记得当时最常见的抱怨之一是:“谁能为这样一个复杂的怪物写一个编译器呢?” 但是事实上,许多人都开发过。此外,许多在 Algol68 中发展出来的或至少以形式化的概念出现在后来的其他语言中,尤其是在 C 语言和 Bourne shell 中(感谢 Steve Bourne)。

Algol68 的一些概念并没有经过很好的演化。例如,处理“书”和“章节”等的 I/O 概念在今天有些奇怪。像将字符集等问题留给实现本身处理似乎相当过时。

但是其中一些概念在今天仍然极为重要,例如产生值的表达式、强类型化(Algol68 中称为“模式”的类型)、堆内存和垃圾回收、运算符的定义和重载等等。

有好的地方,也有不好的地方。

Algol68 是一门值得学习的语言,即使只是为了了解现代计算中的许多想法的来源以及在路上丢失了多少。

Chris Hermansen

密码暴露

我为一个新的支持客户进行技术审计时,发现之前的开发人员将密码以明文形式存储在整个主题中,并使用了糟糕的方式连接到远程数据库。他们的 composer 文件也异常庞大。每次我尝试在本地运行网站时,需要花费五分钟的时间。过时的依赖项、我无法访问的仓库,问题还有很多。

Miriam Goldman

迷宫般的代码

我见过的最可怕的代码是一段 PDP-11 汇编语言,位于一个名为 RSTS 的操作系统的内核中,今天已经没有人记得它了。当时源代码记录在胶片上,我跟随这段代码路径经过几个转折,试图弄清楚正在发生的事情。然后,我遇到了这条指令:

MOV R5,PC

我举起双手尖叫了起来。真的,我尖叫了。办公室里的人以为我撞到头了,或者心脏病发作了。

那个年代,内存是宝贵的,MOV 指令使用的内存比 BR(即“分支”)指令稍微少一点。将寄存器 5 的内容复制到程序计数器实际上是一个廉价的无条件跳转,跳转到寄存器 5 中存储的地址。但是,我不知道寄存器 5 中存储了什么,也不知道如何找到它。

时至今日,将近 40 年过去了,我仍然想知道是谁写出这样的代码,以及如何调试它。

Greg Scott

差一个

我在自动化行业工作,其中的可编程逻辑控制器(PLC)使用一些相当奇怪的语言进行编程。

让我印象深刻的一个例子是,在 ST 语言中,你可以定义数组从索引 1 开始。这意味着第一个元素在位置 1 而不是 0。每当我看到这个时,我都会抓狂。

Stephan Avenwedde

分歧

有一次在一个从测试环境到生产环境的发布期间,我让 MongoDB 实例停机了 40 分钟。我们的测试环境与生产环境有所分歧。只是一个数据库配置的差异,没什么太激动人心的东西。但这是一个很好的教训,要确保你的测试和生产环境保持同步!

Em Nouveau

神秘的低语

这是一个仍在运行且正常的项目,但我已经修改了代码以隐藏源代码。

for(int c =0; y < yyy && c < ccc; y++, c++){// some code here}

乍看起来,它似乎是一个无害的循环。但也许你会问为什么有两个变量、两个停止条件以及两个增量。然后你会意识到只有一个初始化器,第二个变量(y)在这个循环之前在不同的代码块中被初始化。

当我意识到这一点时,我花了大约一个小时的时间来理解为什么代码是这样编写的,以及它应该如何工作。显然,代码中没有 c 的注释,并且变量名是无意义的(代码中被称为 cy 有一个稍微具有意义的名称,但不足以解释它的意义,即使是今天我也不知道它的作用)。

Josh Salomon

关键数据

大约在 1980 年,我在大学毕业后得到了我的第一份工作。我是印第安那州一所工程学院的计算中心副主管。这是一个两人 IT 部门的辅助职位。我在 PDP-11/40 上处理行政计算,使用 RK05 可移动的“披萨碟”磁盘驱动器(每个驱动器容量为 2.5 MB)。每个行政办公室都有一个驱动器,而我工作的一部分就是每周进行磁盘对磁盘的备份。但是那个夏天我很忙,连续四周没有备份过注册办公室的数据。然后我意识到了风险,所以我确保开始进行每月的磁盘到磁带备份。

我从 11/40 上卸载了注册办公室的磁盘驱动器,然后装在了带有一台 9 磁道磁带驱动器的 11/70 上,并开始进行备份。几分钟后,我听到磁盘驱动器里传来一阵刮擦的声音。是的,磁头撞上了磁盘。在短短几分钟内,我摧毁了所有注册办公室的数据,以及最新的备份 —— 一个四周前的 9 磁道磁带。

当我不得不面对注册办公室主任,并告诉他我已经摧毁了他所有的数据时,那一刻真的很尴尬。

如今,我告诉新的 IT 人员,只有在你摧毁了某人的关键数据,而且无法恢复时,你才算是专业人士。永远记住你胃里的那种感觉。

Greg Scott

愤怒的暴民

一个客户篡改了 WordPress 核心代码以添加后续在常规更新中发布的功能,但他们却不明白为什么在每次尝试更新 LearnDash 时网站都会崩溃。(他们也不喜欢我们的报告指出了他们糟糕的开发实践。)于是他们赶我们走,称我们是骗子和无能之辈。但直到今天,我仍然具有他们域名的委派访问权限,以及两个域名的生产和开发环境的 wp-admin 访问权限。

此外,尽管我们给了一个加密位置的链接用于共享访问凭据,他们却通过电子邮件发送了我们的登录信息。

Laura Byrne

不要忘记备份

我在企业网络上的工作经验不多,所以我没有使任何服务器崩溃过。然而,作为一个年轻人,我曾经试图帮助一个人解决 IT 问题,不知何故导致 Windows 95 崩溃,并不得不免费重新安装。

作为一个非常年轻的 Amiga 用户,我最悲伤的时刻之一是我的保存磁盘坏掉了,里面装满了所有我的文件,原因是某种机械故障。如今,我已经学会更好地备份我的重要个人文件。

Rikard Grossman-Nielsen

万恶之源

当时我刚开始接触 Linux,之前我用的是 DOS,借助 Norton Commander 进行操作。后来,Midnight Commander 发布了,我非常喜欢它。当时我使用的 Linux 发行版(Jurix)没有打包 Midnight Commander,所以我自己从源代码编译了它,就像我那个时候使用的其他软件一样。它完美地运行了,突然间我在 Linux 上感到更亲切了。

这不是一个恐怖的故事。

我的同事告诉我不要以 root 身份运行 Midnight Commander,无论它有多么让人舒适。但是 root 权限很方便,感觉更像 DOS,所以我无视了他们的建议。结果就是:我意外地删除了整个 /etc 目录的内容。在那之前,我从来没有用过备份功能,但是那一天我意识到备份实际上是有用的。

27 年过去了,我仍然记得这个故事,并定期进行备份。

Peter Czanik

幻觉

最糟糕的项目是一家代理机构让我做的一个一屏的页面,一开始看起来很简单。我说我可以用一些 HTML、CSS,也许加点 JavaScript,将其组合起来。但他们特别要求我不要这样做。他们希望我将设计图剪切下来,然后使用 CSS 在页面中定位这些元素。他们还要求我将所有的 CSS 内嵌到 HTML 文件中,因为他们真的只想要一个页面

其中的文本都不是真实的文本。

除了定位这些图片所需的元素之外,其他都不是真正的 HTML 元素。

我告诉他们,设计足够简单,我可以用实际的代码将其组合起来,但他们不想要那样。他们只想让我花时间将这些碎片拼凑在一起,然后转而做其他项目。他们让我做了两个类似的一屏网站。

这实在伤害了我的前端灵魂。为我来说,这个项目在身体上是痛苦的。这是一个试用合同职位,当他们给我提供全职工作时,我礼貌地拒绝了。

Rachel Vasquez

内存破坏

对我来说,最可怕的事情就是 ANSI C99 中可能发生的内存破坏。在一个屏幕录像中,我捕捉到了这个(不完全是)超自然现象,可以在这个 YouTube 视频片段 中观看到。

Image of gseqencer before memory corruption.

标有 file 的 GtkEntry 显示了一些随机的符号。我检查了一下 代码,但没有发现任何问题。

ags_export_soundcard_open_response_callback() 函数是一个回调函数,用于处理 GtkFileChooserDialogresponse 事件。(顺便说一句,用于解决这个问题的工具是 valgrind。)

Image of gsequencer after memory corruption.

Joël Krähemann

Python 的恐怖之处

我见过的最可怕的编程特性是 Python 中对 dict 的访问权限。在运行时改变对象的类型违背了我的编程行为准则。

缝合怪网络

在 2006 年,我用 Fedora 和一些脚本构建了一台防火墙,并说服了一家托管在合作数据中心的大型网站的客户,将其专有的防火墙替换为我的防火墙。我建立了系统并在一个清晨的 4 点到达现场进行安装。那时我才发现(饱受痛苦地)他在防火墙后面有一个带有公共 IP 地址的负载均衡器。客户经历了一个 5 分钟的停机时间,但我重新连接了一切恢复到原来的状态。

我发现了一种通过使用代理 ARP 来处理他复杂的网络配置的方法。这个想法是,当外部世界的任何人发出负载均衡器的 ARP 请求时,我会进行回应。几天后,我再次在凌晨 4 点出现并安装了我的系统。这次,我把整个数据中心的所有设备都给搞宕了。我设置了我的代理 ARP 来回应所有请求,因此局域网上的所有流量最终都找到了我并消失在黑洞中。

当我意识到我做了什么时,我把一切都恢复到原来的状态。但是损害已经造成。如果有人在 2006 年的一个清晨美国中部时间大约 4 点钟尝试浏览你最喜欢的网站,它没有响应,那可能是我的错。我通过在机架上安装并启动一个系统,让整个数据中心的网站都宕机了。

网站运营商愤怒地抗议,而我则黯然离开。他们再也没有邀请我回去再试。真是遗憾,我觉得再试试桥接可能会起作用。

Greg Scott

你的恐怖故事

你最喜欢的与技术相关的恐怖故事是什么?在评论中告诉我们(但要友善,并更改项目名称以保护无辜者!)


via: https://opensource.com/article/22/10/technology-horror-stories

作者:AmyJune Hineline 选题:lkxed 译者:ChatGPT 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出