开放原则将如何影响未来工作

# 开放原则将如何影响未来工作

>
> 在许多方面，我们的工作性质塑造了我们。那么，未来工作的性质将发生巨大变化，我们又该做何准备呢？
>
>
>

<img src="content_image/album_202212_28_094540cru0c2b8g2rz2ur2.jpg" alt="团队合作，忙碌的工作生活" title="Working on a team, busy worklife">

如果我们将“工作”定位为获得某种回报的任何形式的付出，那么工作是，并且一直是，决定我们是谁的主要因素之一。工作是我们生活的一个重要方面。在工作中（不论这对我们意味着什么），我们结识朋友，我们获得智力激励和情感满足的源泉，我们得到成长，我们感受自身无穷的创造性。对于我们的家人、朋友、社区和社会而言，工作极其重要，我们不应轻视工作的重要性亦或视其为理所当然。

因此如果未来 [工作的性质将发生变化](https://opensource.com/open-organization/18/7/transformation-beyond-digital-2)，这可能意味着恰恰是我们 *自我认知* 中的某些关键要素将发生变化。我们应该认真准备应对这些转变。

考察自第一次工业革命（18、19世纪）以来的工作转变，很多人从从事农业劳动转为进入城市工厂工作，这从根本上改变了他们的生活方式。新的工作方式需要全新的、更专业的工作技能，而不再是农村经济中常见的手艺。接下来的几十年里，当我们检视我们的个人工作环境时，我们可能会发现工业时代以来的这一趋势可能发生逆转：从层级制度、可代替的通用技术与活动，重新转变为横向协作与对专业知识的熟练掌握的更高要求（回到手艺时代）。

不过，这一次，这些转变的到来将是全球性的而非区域性的，而且转变的速度要快的多。

在这一新的工作环境中，[开放组织原则](https://theopenorganization.org/definition/) 将扮演关键性的角色。

本系列中，我将回顾 [Lynda Gratton 教授的作品《转变》](http://lyndagratton.com/books/the-shift/)（LCTT 译注：中译本：《转变：未来社会工作岗位需求变化及应对策略》，ISBN:9787121152894），本书成书于 2014 年（LCTT 译注：本书原版有 [2011 版](https://isbnsearch.org/isbn/9780007427956) 与 [2014 版](https://isbnsearch.org/isbn/9780007525850)），书中数据于 2010 年收集，但今天仍然适用（将来也一样）。本书中，Gratton 教授指出了工作将在 2025 到 2050 年间如何变化。这是关键信息，因为它有助于我们在准备和发展我们的职业生涯时作出正确的选择。

Gratton 教授阐释了在上述时间段内影响未来工作的主要因素。本系列中，我们将对它们做一个总结并解释开放组织原则如何融入它们之中。

### 影响未来工作的五个因素

煤炭与蒸汽动力的发明推动了第一次工业革命。[Gratton 教授](https://en.wikipedia.org/wiki/Lynda_Gratton) 说，今天，五种微妙的力量导致了类似的转变：

1. 日益增长的全球化活动
2. 技术的快速进步
3. 人类寿命与人口数量
4. 社会与家庭结构变化
5. 低碳经济的需求

简而言之，计算机更快了，材料更强了，药物能治疗更多的疾病使得人类的寿命更长。这些都在不同程度上影响了我们未来的工作方式。以下针对上述每一点的一些说明。

#### 1、全球化

在以前的文章 [《全球化：开放的历史》](https://opensource.com/open-organization/20/7/globalization-history-open) 中，我讨论了全球化的多种动力与影响因素，其中之一就是贸易。从 1950 年到 2010 年的 60 年间，全球贸易量增加了 60 倍，与此同时运输成本降低了，发展中国家不仅看到了贸易增长，而且看到了新的创新。我还在我的另一篇文章 [《历史变迁中的开放组织》](https://opensource.com/open-organization/20/8/global-history-collaboration) 中讨论了历史早期的全球化。我另外在我的文章 [《全球性的开放组织是怎么样的》](https://opensource.com/open-organization/20/9/global-open-organization) 中探讨了从现在到未来全球治理的重要性。如 Gratton 教授所言，全球化在未来工作中将发挥不可否认与不可避免的影响。

>
> 如果未来工作的性质将发生变化，这可能意味着恰恰是我们自我认知中的某些关键要素将发生变化。我们应该认真准备应对这些转变。
>
>
>

#### 2、技术

计算成本一直在以惊人的速度下降，它还将继续下降。这有助于连接到目前为止仍然大部分被隔离在更大的全球经济之外的数十亿人。他们将开始进入劳动力市场并成为更有影响力的消费者。与此同时，计算机与高级自动化在未来将 [取代人类工作](https://opensource.com/open-organization/19/9/claiming-human-age-of-AI)，这都将影响未来的工作转变。

#### 3、人口数量与寿命

Gratton 教授还记录了不同世代的人对未来工作的影响，尤其是在美国。年轻一代在未来将扮演主要角色，他们的态度将不同于上一代。此外，全球不同地区的出生率将影响经济繁荣。由于一些地区的人口降低而另一些的将会增加，将会出现更多的移民。他们将移民至 Gratton 教授谓之“创新集群”的地方。最后，Gratton 教授认为全球预期寿命将会变化。截至 2025 年，世界人口的 10% 将超过 65 岁，这些人口将更可能希望继续工作，以得到持续的收入、精神刺激、身体活动，与他人的联系以及生活的意义与目的的源泉。考虑到今天的很多儿童都更可能拥有超过 100 岁的寿命，如果他们在 65 岁退休，他们余下的至少 35 年里将做不了太多事情。基于这样的考虑，在未来职业道路的多次转换以及在社区与志愿服务项目中的积极参与将会大大拓展。

#### 4、社会

常规的变化之外，Gratton 教授还描述了一些社会变化。她说，未来女性在工作上的角色将会变化，人们将比以往拥有更多的选择来塑造他们希望的生活；随着个人劳动生产率的提升，平均空闲时间将比以往更多。

#### 5、能源

我在 [资源工业革命](https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution) 上的一篇演讲中讨论了资源节约型工业的扩张。格拉特教授为该对话补充了一些有价值的观点。她认为气候变化将逐渐成为主要议题，并导致运输与消费的降低。尤其是世界范围内的水资源供给将无法跟上用水需求。海水淡化项目将大幅扩张（可能由正在开发的 [第四代](https://en.wikipedia.org/wiki/Generation_IV_reactor) 分布式小型模块化核电站提供动力）。环境灾难将使人们背井离乡，并在世界范围内形成移民社区。更多能效高的生活方式将会被发现和引入，这将影响未来工作。

### 为未来提前准备

上述五种力量将推动未来工作方式发生根本性的改变，Gratton 教授认为我们现在就需要开始为这样的未来提前做准备。本系列的下一篇文章中，我将介绍 Gratton 教授对未来的展望以及应对快速变化的未来的一些情境。个人如何将这些变化视作职业机会？另一方面，如果简单地选择对即将到来的变化 *视而不见* 又会发生什么？我将回顾 Gratton 教授在这些问题上的思考。同样的，我也将解释开放原则如何形成必经的变革的核心。

---

via: <https://opensource.com/open-organization/21/1/open-is-future-of-work>

作者：[Ron McFarland](https://opensource.com/users/ron-mcfarland) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Gamerzilla：一个开源游戏成就系统

# Gamerzilla：一个开源游戏成就系统

<img src="content_image/album_202212_28_130203fbp933w71r7b2zg9.jpg" alt="" title="">

>
> 了解开源游戏成就系统 Gamerzilla。它使游戏开发者能够独立于游戏平台实现成就系统。
>
>
>

一些开源游戏的质量已经媲美商业游戏。尽管还难以比肩 3A 大作，但开源游戏在独立游戏中已颇具竞争力。不过，游戏玩家的期望是随时间变化的。早期的游戏只有高分成就。不断增加的成就种类促使玩家反复重玩游戏。比如你可能达到了满级，却还没有找到所有隐藏物品或没有完成全物品收集。Xbox 360 推出了首个在线多游戏成就系统。随后其它游戏平台也纷纷推出了自己的成就系统。

开源游戏在很大程度被游戏平台的成就系统排除在外。你可以在 Stream 上发布开源游戏，但这需要付费。游戏平台主要与公司合作，而不是与自由软件社区合作。这也进一步把玩家锁定在了非自由的游戏平台上。

商业游戏开发商也没有得到太多好处。由于不能共享成就，一些享受成就的玩家拒绝从其他商店购买游戏。这种锁定效应增强了游戏平台的话语权。由于各个游戏平台使用不同的系统，开发者不得不针对它们分别进行适配和测试。较小的游戏平台则可能完全被忽略掉。并且平台方能够访问到所有使用该平台的公司的成就数据，这些数据可以被用来扩大竞争优势。

### Gamerzilla 的架构

[Gamerzilla](http://identicalsoftware.com/gamerzilla/) 是一个致力于改善这种现状的开源游戏成就系统。Gamerzilla 在设计上同时考虑了开源游戏和商业游戏。你可以运行自己的 Gamerzilla 服务器，使用游戏商店提供的服务器，甚至 Linux 发行版提供的服务器。服务器也可以由其他团体来运行。在哪里购买游戏不再重要。成就数据都会上传到你的 Gamerzilla 服务器上。

一个基本的成就系统需要两个要素：游戏和 Gamerzilla 服务器。然而随着游戏数量增长，这种设计会暴露出其缺点。每个游戏都需要证书才能上传数据到服务器。由于拥有大量的游戏资源，并且能够在不同游戏商店之间同步数据，游戏启动器成为了众多玩家的选择。通过让启动器支持 Gamerzilla，游戏本身就不再需要证书了。游戏结果直接从启动器上传到 Gamerzilla 服务器。

[freegamedev.net](http://freegamedev.net) 曾提供了社交网络系统 Hubzilla。我们基于此开发了一个插件来进行 Gamerzilla 的开发。不幸的是 Hubzilla 的一次升级导致了 [freegamedev.net](http://freegamedev.net) 的服务故障，因此 [freegamedev.net](http://freegamedev.net) 决定不再提供它了。

目前 Gamerzilla 服务器有两种实现。维护 Hubzilla 是一项复杂的工作，所以我们用 .Net 和 React 开发了一个独立的 Gamerzilla 服务器。游戏调用的 API 是相同的，所以不用关心连接的服务器是哪种实现。

游戏启动器的开发和支持工作通常是滞后的。为了方便启动器增加对 Gamerzilla 的支持，我们开发了 libgamerzilla。这个库负责处理启动器、游戏和 Gamerzilla 服务器之间的交互。目前只有 GameHub 实现了一个支持 Gamerzilla 的版本，并将在近期整合到项目中。Fedora 上的 libgamerzilla-server 是一个临时解决方案。它不启动游戏，而是监听成就并把成就上传到服务器。

支持 Gamerzilla 的游戏在不断增长。与游戏启动器一样，开发者使用 libgamerzilla 来完成 Gamerzilla 的集成工作。这个库由 C 语言实现，已经被 Python 和 nim 等多种编程语言使用。对于那些已经有成就系统的游戏，只需要花几天时间就可以完成对 Gamerzilla 的支持。其他游戏想要支持 Gamerzilla，大部分时间都是花在收集信息和授予成就上。

### 架设服务器

架设服务器最容易的方式是使用 Hubzilla 插件。但是运行 Hubzilla 站点却不是一件轻松的事情。在 Fedora 上架设基于 .Net 和 React 的服务器相对来说要容易一些，尽管这仍然需要许多步骤。详细步骤请参考 [readme](https://github.com/dulsi/gamerzilla.net#readme) 文件。需要这么多步骤的一部分原因是目前没有预编译好的发布版本。这意味着你需要自己安装 .Net，动手构建 React 源码部分。构建完成之后，React 代码会直接运行在 Apache 中。.Net 后端则运行在单独的服务上。Apache 作为代理负责把所有 Gamerzilla API 请求转发给后端服务。

按上面的步骤操作，Gamerzilla 已经运行起来了，但是现在还没有用户。当然应该有一个简单的方式来创建管理员和注册新用户。但是该功能还没有完成。目前只能通过 sqlite3 命令行来录入用户信息。具体步骤请参考 [readme](https://github.com/dulsi/gamerzilla.net#readme) 文件。用户可以是公开可见的，也可以是隐藏的。批准标记可以让新用户不立刻使用该系统，但是网络注册是必须的。在设计时我们已经考虑了用户相关模块的可替换性。通过替换 `backend/Service/UserService.cs` 就可以与其他站点进行集成。游戏网站也可以通过这种方式来为用户提供 Gamerzilla 成就系统。

目前 Gamerzilla 的后端使用的是 sqlite 数据库。我们还没有对它进行过性能测试。我们预计较大型的应用安装需要改进系统以使用更鲁棒的数据库。

### 测试

目前要找一个支持 Gamerzilla 的游戏启动器太难了。如果你安装了 libgamerzilla-server，就可以在命令行中运行 `gamerzillaserver` 命令。首次运行该命令时需要输入 URL 和登录信息。以后再运行时会直接从配置文件读取这些信息。目前更正错误的唯一方法是删除 `.local/share/gamerzillaserver/server.cfg` 再重新运行 `gamerzillaserver` 命令。

大多数游戏还没有支持 Gamerzilla 的版本。[itch.io 上的 《Pinball Disc Room》](https://dulsi.itch.io/pinball-disc-room)，它的 Linux 版本支持 Gamerzilla，但是它的网页版是没有成就系统的。这款游戏只有两个成就：一个是存活 10 秒钟，另一个是解锁并使用隧道。只需要稍加练习，你就能获得一个成就。由于这款游戏没有可视化的成就提示消息，你需要查看 Gamerzila 服务器才能确认成就。

目前打包到 Fedora 中的游戏都还不支持 Gamerzila。《SuperTuxKart》 已经整合了对 Gamerzila 的支持，正在等待发布新版本。《Seahorse adventures》 和 《Shippy 1984》 添加了成就，但是新发布版本还没有打包。还有一部分游戏由我们独立完成了对 Gamerzila 的支持，但我们的<ruby> 拉取请求 <rt>  pull request </rt></ruby>或其它联系尝试还没有得到开发者的回应。

### 后续工作

Gamerzilla 需要更多游戏的支持。目前已经有很多游戏支持 Gamerzilla，并且正在以大约每月一个的速度增长。如果你有喜欢的游戏，可以请求开发方支持 Gamerzilla。如果你是游戏开发者，并且在支持 Gamerzilla 上需要技术支持，请联系我们。

服务器的开发工作在缓步开展中，我们希望不久之后就会有一个可用的注册系统。在那之后我们可能会建立一个永久托管站点。目前你可以看到我们的 [测试服务器](http://108.49.106.217/)。一些人对于使用 .Net 作为后端表示担忧。我们的 API 并不复杂，可以很容易用 Python 重写。

最大的不确定性来自游戏启动器方面。GameHub 希望有一个通过用的成就接口。未来我们可能会在这方面与他们开展合作。增加对 [itch.io](http://itch.io) 应用的支持可以提升系统的关注度。另一种方案是完全抛开启动器。也许可以将 gamerzillaserver 添加到 Gnome 中。然后你就可以在一个设置页面里配置 URL 和登录信息。这样任何启动的游戏都可以记录成就了。

---

via: <https://fedoramagazine.org/open-source-game-achievements/>

作者：[Dennis Payne](https://fedoramagazine.org/author/dulsi/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[toknow-gh](https://github.com/toknow-gh) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #864 Alphabet 改组以应对 ChatGPT 威胁

Summary:
❶ Alphabet 改组以应对 ChatGPT 威胁
❷ Meta 和 Alphabet 失去对数字广告市场的主导地位
❸ 基于 20.04 的 Ubuntu Touch 发布测试版

# 硬核观察 #864 Alphabet 改组以应对 ChatGPT 威胁

### Alphabet 改组以应对 ChatGPT 威胁

据一份内部备忘录，谷歌已经“推翻了公司内部许多小组的工作，以应对 ChatGPT 的威胁”，并且正在从其他部门抽调人员，以应对 OpenAI 计划的威胁。谷歌主导搜索市场已有 20 年，任何威胁到这一高利润业务的东西（它占 Alphabet 利润的 90% 左右）都是谷歌必须心的事情。

>
> **[消息来源：The Register](https://www.theregister.com/2022/12/25/in_brief_ai/?td=rt-3a)**
>
>
>

>
> 老王点评：现在想想，通过 AI 搜索到要找的东西，显然是一种更合理的情况。
>
>
>

### Meta 和 Alphabet 失去对数字广告市场的主导地位

据报告，Facebook 母公司 Meta 和谷歌所有者 Alphabet 今年在美国广告收入中的份额预计将下降 2.5 个百分点至 48.4%，这是自 2014 年以来这两个集团首次不占有市场的多数份额。其加起来的美国市场份额已从 2017 年的 54.7% 的峰值下降，预计到 2024 年将下降到 43.9%。亚马逊涉足数字广告领域，在冲击 Meta 和 Alphabet 的主导地位方面发挥了很大作用。

>
> **[消息来源：Ars Technica](https://arstechnica.com/tech-policy/2022/12/meta-and-alphabet-lose-dominance-over-us-digital-ads-market/)**
>
>
>

>
> 老王点评：很少有长青树，或许若干年后，今日看似不可撼动的巨头也只是一段历史。
>
>
>

### 基于 20.04 的 Ubuntu Touch 发布测试版

由于小的开发团队和有限的资源，UBports 的 Ubuntu Touch 长期以来一直停留在 Ubuntu 16.04 LTS 的基础上。但是，经过多年的工作，以及在四年的 Ubuntu Linux 升级过程中围绕 Mir 的变化和其他低级别的改变，该团队发布了一个基于 Ubuntu 20.04 LTS 的 Ubuntu Touch 测试版/RC 版。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Ubuntu-Touch-20.04-Beta-RC)**
>
>
>

>
> 老王点评：虽然 22.04 才是最新的 LTS ，但是新的版本已经进一步接近了。
>
>
>


Manjaro Linux 22.0 发布

Summary: Manjaro Linux 22.0 带着各种升级来了！

# Manjaro Linux 22.0 发布

>
> Manjaro Linux 22.0 带着各种升级来了！
>
>
>

Manjaro Linux 是一个基于 Arch Linux 的滚动发布发行版，专注于提供用户友好和无障碍体验。

自 6 月发布 “[Ruah](https://news.itsfoss.com/manjaro-21-3-0-release/)” 以来，Manjaro 的开发仍在继续，并为最新的版本铺平了道路，它被称为 “Sikaris”。

这是 2022 年最后的流行的发行版之一。让我们看看它提供了什么。

### Manjaro 22 “Sikaris” 有什么新内容？

Sikaris 版本带来了许多改进，一些值得注意的包括：

* 桌面环境的升级
* Linux 内核 6.1
* 动态墙纸
* 各种用户体验的改进

#### 桌面环境的升级

这个版本对 Manjaro Linux 的三个不同版本进行了许多改进。让我带你看看这些改进。

**对于 Manjaro GNOME：** 它使用是的 GNOME 43，有一个重新设计的系统状态菜单，可以让你在常用的设置之间快速切换。

他们还更新了他们的 “<ruby> 布局切换器 <rt>  Layouts Switcher </rt></ruby>” 应用程序，包括各种改进和修复。

此外，你可以创建你的动态壁纸并使用 [Gradience](https://github.com/GradienceTeam/Gradience) 来定制你的主题。

**对于 Manjaro KDE：** “Sikaris” 版本采用了最新的 Plasma 5.26 桌面环境，具有许多改进，如动画壁纸、新的小工具，以及 Plasma 大屏幕的改进。

还有一些其它的调整，允许壁纸根据系统的主题来改变。

此外，Dolphin 文件管理器现在有一个新的功能叫“<ruby> 选择模式 <rt>  Selection Mode </rt></ruby>”，可以让你选择多个文件或文件夹。

**对于 Manjaro Xfce：** 使用的是 Xfce 4.18，该版本在 Thunar 文件管理器中获得了新的文件高亮显示和递归搜索功能。

可能是第一个包括 [新发布的 Xfce 4.18](https://news.itsfoss.com/xfce-4-18-release/) 的开箱即用发行版。

面板也被更新了，允许最大化的应用程序填满面板后面的区域，而且面板的长度现在是以像素而不是百分比计算的。

此外，“<ruby> 控制中心 <rt>  Control Center </rt></ruby>”现在将所有用于管理系统的桌面模块集中到一个易于使用的窗口。

这些功能应该会改善你的整体体验! ?

#### Linux 内核 6.1

Manjaro 22 ”Sikaris“ 使用 [Linux 内核 6.1](https://news.itsfoss.com/linux-kernel-6-1-release/) 提供了各种增强功能。

这些包括对 Rust 的实验性支持，对英特尔即将推出的 Meteor Lake 芯片的初步支持，改进的 ARM SoC 支持，以及更多。

### 下载 Manjaro 22

Manjaro 22 “Sikaris” 可用于 X86\_64 和 ARM 系统，前往官方 [下载页面](https://manjaro.org/download/) 获取。

>
> **[下载 Manjaro 22](https://manjaro.org/download/)**
>
>
>

**对于现有的用户，** 你只需在命令行中运行 `sudo pacman -Syu` 就可以得到这个版本的 Manjaro Linux。

---

via: <https://news.itsfoss.com/manjaro-22-0-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


试试这个 Linux 网络浏览器作为你的文件管理器

# 试试这个 Linux 网络浏览器作为你的文件管理器

>
> KDE Plasma 桌面将 Konqueror 列为网络浏览器，但它也是一个功能性的 Linux 文件管理器。
>
>
>

Konqueror 是 KDE Plasma 桌面的文件管理器和 Web 浏览器。在许多方面，Konqueror 定义了“网络透明度”，因为它适用于个人桌面。使用 Konqueror，你可以像浏览本地文件一样轻松地浏览远程网络文件（包括互联网本身，它实际上只是通过花哨的镜头查看的远程文件的集合）。有时需要进行一些配置和设置，具体取决于你需要访问的文件共享类型。但最终，通过 Konqueror 实现了即时访问你有权查看的所有数据的目标，这是其他文件管理器无法实现的。在其巅峰时期，它开发的开源网络引擎（KHTML） 被苹果和谷歌采用，并作为现代网络浏览和 Electron 应用开发的核心库延续至今。

今天，KDE Plasma 桌面将 Konqueror 作为网络浏览器。文件管理功能已正式转移到 [Dolphin](https://opensource.com/article/22/12/linux-file-manager-dolphin)，但 Konqueror 仍然能够完成这项工作。要获得完整和经典的 Konqueror 体验，你应该尝试 Plasma 桌面 3.x 的复刻 [TDE](https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde)，但在本文中，我在 KDE Plasma 桌面版本 5 中使用 Konqueror。

### 安装 Konqueror

如果你已经在运行 KDE Plasma 桌面，你可能已经安装了 Konqueror。如果没有，你可以从发行版软件仓库中安装它。在 Fedora、CentOS、Mageia、OpenMandriva 和类似软件上：

```
$ sudo dnf install -y konqueror konqueror-plugins

```

在 Debian、Linux Mint、Elementary 和类似软件上：

```
$ sudo apt install -y konqueror konqueror-plugins

```

### 将 Konqueror 配置为文件管理器

Konqueror 最方便的功能是它除了是一个文件管理器之外，还是一个网络浏览器。至少，这在理论上是它最方便的功能。如果你没有将 Konqueror 用作网络浏览器，那么你可能不希望每个文件管理器窗口顶部都有 URL 区域或搜索引擎区域。

与大多数 KDE 应用一样，Konqueror 是高度可配置的。你可以重新定位并添加和删除工具栏、添加或删除按钮等。

要调整显示的工具栏，请启动 Konqueror 并转到 “<ruby> 设置 <rt>  Settings </rt></ruby>” 菜单并选择 “<ruby> 显示的工具栏 <rt>  Toolbars Shown </rt></ruby>”。主工具栏可能是你真正需要的文件管理工具栏。它是带有导航按钮的工具栏。但是，你甚至可能不需要它，只要你乐于使用键盘快捷键或使用 “Go” 菜单进行导航即可。

Konqueror 中的键盘导航与 Dolphin 中的相同：

* `Alt + ←`：后退一步
* `Alt + ↑`：移动到父目录
* `Alt + Home`：转到主目录

### 侧边栏

要获得包含常用文件夹列表的侧边栏，请按 `F9` 或从 “<ruby> 设置 <rt>  Settings </rt></ruby>” 菜单中选择 “<ruby> 显示边栏 <rt>  Show Sidebar </rt></ruby>”。这会在 Konqueror 窗口的左侧添加一个按钮栏。单击 “Home” 图标以显示你的主目录的文件树。

正如按钮栏所暗示的那样，此侧边栏可用于多种用途。你可以显示书签位置，你最近访问过的位置的历史，远程文件系统等。

### 应用

有些人习惯于应用菜单。它高效快捷，并且始终在同一个地方。其他人更喜欢从终端启动应用。

不过，还有另一种查看应用启动器的方法。Konqueror 的 “Go” 菜单允许你转到名为 “<ruby> 应用程序 <rt>  Applications </rt></ruby>” 的元位置，它按类别列出了应用程序启动器，就像文件管理器中的文件一样。

你也可以在 Dolphin 中看到这个，方法是在位置区域中手动输入 `applications:`，此外，Konqueror 提供了一个菜单选项，可以直接进入该位置。

### 网络文件夹

类似地，Konqueror 还提供了一个菜单选择进入网络文件夹。其中最好的网络文件夹是“互联网”，但“网络文件夹”是 HTTP 以外的网络协议的元位置。大多数远程位置需要一些设置，因为它们通常需要身份验证才能访问。它们中的大多数都可以通过 “<ruby> 系统设置 <rt>  System Settings </rt></ruby>” 进行配置，包括可通过蓝牙、SMB 或 CIFS、MTP 设备、Fish（通过 SSH 的文件系统）访问的文件系统，甚至是 Google Drive。

### 拆分视图

你可以将 Konqueror 窗口拆分为多个窗格，这样你就可以同时查看两个文件夹而无需打开两个窗口。有两种拆分选项：垂直拆分，一个窗格在左侧，另一个窗格在右侧；或者水平拆分，一个窗格在另一个窗格之上。

要分割 Konqueror 窗口，进入 “<ruby> 窗口 <rt>  Window </rt></ruby>” 菜单，选择 “<ruby> 左/右分割视图 <rt>  Split View Left/Right </rt></ruby>” 或 “<ruby> 上/下分割视图 <rt>  Spit View Top/Bottom </rt></ruby>”。每个窗格都是独立的，所以你可以在一个窗格中浏览，然后把文件从一个窗格拖到另一个窗格。

### 征服你的文件系统

Konqueror 不 *仅仅* 是一个文件管理器，我认为 Plasma 桌面的开发者并不期望你把它作为你的主要文件管理器。在 “<ruby> 文件 <rt>  File </rt></ruby>” 菜单中甚至有一个选项可以在 **Dolphin** 中打开一个位置，这表明 Konqueror 是一个带有文件管理器组件的网络浏览器。但是，当你需要时，这个文件管理器组件是一个不错的功能。如果你不喜欢 Dolphin 提供的所有功能，Konqueror 可能是一个合适的替代品。

---

via: <https://opensource.com/article/22/12/linux-file-manager-konqueror>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #865 Mastodon 拒绝接受投资以保持非营利地位

Summary:
❶ Mastodon 拒绝接受投资以保持非营利地位
❷ Clear Linux 现在可以处理多达 512 个 CPU 核心
❸ 2022 年 VR 头盔销量缩水

# 硬核观察 #865 Mastodon 拒绝接受投资以保持非营利地位

### Mastodon 拒绝接受投资以保持非营利地位

Mastodon 的开发者 Eugen Rochko 说，随着产品的快速增长，他已经收到了来自五个以上美国投资者投资 “数十万美元” 以支持该产品的提议。但他说，该平台的非营利地位是 “不可触动的”，并补充说，Mastodon 的独立性和在其服务器上选择的审核方式是其吸引力的一部分。Mastodon 将继续依靠捐款来运作。Rochko 是 Mastodon 的唯一股东，他去年每月向自己支付 2400 欧元。

>
> **[消息来源：Ars Technica](https://arstechnica.com/tech-policy/2022/12/twitter-rival-mastodon-rejects-funding-to-preserve-nonprofit-status/)**
>
>
>

>
> 老王点评：希望 Mastodon 能保持独立、非营利地位。
>
>
>

### Clear Linux 现在可以处理多达 512 个 CPU 核心

Clear Linux 内核的可处理的 CPU 核心数在几年前被设定为 320，但在 AMD 霄龙 Genoa CPU 的情况下，现在每个插槽可以有多达 96 个核心、192 个线程，或者两个插槽系统总共有 384 个线程/逻辑核心。这个疏忽现在已经被修复了，Clear Linux 内核将该值设置为 512，但仍然低于一些 Linux 发行商内核构建时设置的 8192 的最高极限。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Clear-Linux-512-NR_CPUS)**
>
>
>

>
> 老王点评：作为展示英特尔 CPU 领先性的发行版，居然限制了 CPU 数量。
>
>
>

### 2022 年 VR 头盔销量缩水

根据一份数据，2022 年全球 VR 头盔以及 AR 设备的出货量同比下降超过 12%，为 960 万台。分析师预测，明年预计将是 VR 市场的另一个 “缓慢年”，理由是经济疲软和通货膨胀。同时，对 VR 头盔销量和出货量的估计影响了 Meta 公司，其股价今年已经损失了约三分之二的价值。扎克伯格预计元宇宙需要十年的时间才能成为主流，并预测它最终将承载数千亿美元的商业。

>
> **[消息来源：CNBC](https://www.cnbc.com/2022/12/28/metaverse-off-to-ominous-start-after-vr-headset-sales-shrank-in-2022.html)**
>
>
>

>
> 老王点评：在当前的技术基础上，VR/AR 还缺乏真正发展起来的动力，元宇宙还太远。
>
>
>


以调试 Rust 的方式来学习 Rust

# 以调试 Rust 的方式来学习 Rust

>
> Rustlings 是由 Rust 团队维护的开源项目，旨在帮助你通过调试代码的方式来学习 Rust。
>
>
>

<img src="content_image/album_202212_30_103525xhhm9cl5xll3hhxs.jpg" alt="Ferris the crab under the sea, unofficial logo for Rust programming language" title="Ferris the crab under the sea, unofficial logo for Rust programming language">

在我上一篇 [关于 Rustup 的文章](https://opensource.com/article/22/6/rust-toolchain-rustup) 中，我向你们展示了如何安装 Rust 工具链。但是，如果不能上手操作一下 Rust 的话下载工具链又有什么用？学习任何语言都包括阅读现有的代码和写很多的示例程序，这是精通一门语言的好方法。然而，我们还可以走第三条路：调试代码。

通过调试来学习牵扯到尝试去编译一个已经写好的（满是漏洞的）示例程序，理解编译器生成的错误信息，修复示例代码，然后再重新编译。重复这个过程直到代码能够成功被编译并运行。

[Rustlings](https://github.com/rust-lang/rustlings) 是一个由 Rust 团队维护的开源项目，旨在帮助你通过调试代码来学习 Rust。它也会一路为你提供提示。如果你是一名 Rust 初学者，并且刚开始阅读或已经读完了 Rust 书籍，那么 Rustlings 就是理想的下一步。Rustllings 帮助你将运用书中所学，并转向开发更大的项目。

### 安装 Rustlings

我使用（并推荐）Fedora 电脑来体验 Rustlings，但是任何 Linux 发行版都可以。要安装 Rustlings，你必须下载并运行它的安装脚本。通常建议你以不具备任何特别权限的普通用户（非 root 用户）来运行脚本。

记住，你需要 Rust 工具链来使用 Rustlings。如果你还没有这些工具链，请参考我 [关于 Rustup 的文章](https://opensource.com/article/22/6/rust-toolchain-rustup)。

当你准备好时，下载这个安装脚本：

```
$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh  > rustlings_install.sh
$ file rustlings_install.sh
rustlings_install.sh: Bourne-Again shell script, ASCII text executable

```

阅读脚本以了解它会做什么：

```
$ less rustlings_install.sh

```

然后运行安装：

```
$ bash rustlings_install.sh
[...]
Installing /home/tux/.cargo/bin/rustlings
Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`)
All done!

```

运行 `rustlings` 以开始。

### Rustlings 练习

你现在可以使用命令 `rustlings`。与标志 `--help` 一起执行来查看可选的选项。

```
$ rustlings --help

```

这个安装脚本也克隆了 Rustlings 的 Git 仓库，并安装了运行示例程序所需的依赖。你可以在 `ruslings` 下的 `exercises` 目录查阅这些示例程序。

```
$ cd rustlings
$ pwd
/home/tux/rustlings
$ ls
AUTHORS.md  Cargo.toml        CONTRIBUTING.md  info.toml install.sh README.md  target Cargo.lock  CHANGELOG.md  exercises install.ps1  LICENSE src tests
$ ls -m exercises/
advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs,
modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md,
standard_library_types, strings, structs, tests, threads, traits, variables

```

### 从命令行列出所有练习

命令 `ruslings` 提供给你一个 `list` 命令用以展示每个示例程序，它的完整路径，以及状态 （默认为 “待定”）。

```
$ rustlings list
Name         Path                                 Status
intro1       exercises/intro/intro1.rs            Pending
intro2       exercises/intro/intro2.rs            Pending
variables1   exercises/variables/variables1.rs    Pending
variables2   exercises/variables/variables2.rs    Pending
variables3   exercises/variables/variables3.rs    Pending
[...]

```

在显示结尾处，你会有一个进度报告用来追踪进度。

```
Progress: You completed 0 / 84 exercises (0.00 %).

```

### 查看示例程序

命令 `rustlings list` 向你展示了现有的程序，所以你可以在任何时候查看这些程序的代码，你只需要将完整路径复制到你的终端作为命令 [cat](https://opensource.com/article/19/2/getting-started-cat-command) 或者 [less](https://opensource.com/article/18/4/using-less-view-text-files-command-line) 的参数：

```
$ cat exercises/intro/intro1.rs

```

### 验证你的程序

现在你可以开始调试程序了。你可以使用命令 `verify` 来做这件事。注意 Rustlings 选择了列表里的第一个程序（`intro1.rs`）并尝试去编译它，最后编译成功：

```
$ rustlings verify
Progress: [-----------------------------------] 0/84
✅ Successfully ran exercises/intro/intro1.rs!

You can keep working on this exercise,
or jump into the next one by removing the `I AM NOT DONE` comment:

 6 |  // Execute the command `rustlings hint intro1` for a hint.
 7 |
 8 |  // I AM NOT DONE
 9 |

```

正如你从结果中所见，尽管示例代码成功编译了，你依然需要做一些工作。每个示例程序的源文件中都带有以下注释：

```
$ grep "NOT DONE" exercises/intro/intro1.rs
// I AM NOT DONE

```

虽然第一个程序的编译没有问题，除非你去掉注释 `I AM NOT DONE`，Rustlings 不会移到下一个程序。

### 来到下一个练习

一旦你从 `intro1.rs` 中去掉这些注释，你就可以通过再一次运行命令 `rustlings verify` 来到下一个练习。这一次，你会发现 Rustlings 尝试去编译这个系列中的下一个程序（`intro2.rs`），但是遇到了一个错误。你应该调试并修复这个问题，并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。

```
$ rustlings verify
Progress: [>------------------------] 1/84
⚠  Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output:
error: 1 positional argument in format string, but no arguments were given
 --> exercises/intro/intro2.rs:8:21
  |
8 |         println!("Hello {}!");
  |                         ^^

error: aborting due to previous error

```

### 来点提示

Rustlings 有一个非常好用的 `hint` 参数，这个参数会告诉你示例程序中哪里出错了，以及如何去修复它。你可以认为这是在编译错误信息基础之上，一个额外的帮助选项。

```
$ rustlings hint intro2
Add an argument after the format string.

```

基于以上提示，修复这个程序就很简单了。你只需要在语句 `println` 中加一个额外的参数。这个 diff 对比应该能帮你理解发生的变化：

```
< println!("Hello {}!", "world");
---
> println!("Hello {}!");

```

一旦你做出了修改，并从源代码中去掉了注释 `NOT DONE`，你可以再一次运行 `rustlings verify` 来编译并运行代码。

```
$ rustlings verify
Progress: [>-------------------------------------] 1/84
✅ Successfully ran exercises/intro/intro2.rs!

```

### 追踪进度

你无法在一天之内做完所有的练习，忘记练到哪也很常见。你可以执行命令 `list` 来查看你的练习状态。

```
$ rustlings list
Name         Path                                  Status
intro1       exercises/intro/intro1.rs             Done
intro2       exercises/intro/intro2.rs             Done
variables1   exercises/variables/variables1.rs     Pending
variables2   exercises/variables/variables2.rs     Pending
variables3   exercises/variables/variables3.rs     Pending
[...]

```

### 运行特定的练习

如果你不想从头开始并且想要跳过一些练习，Rustlings 允许你使用命令 `rustlings run` 来专注特定的练习。如此可以运行指定的程序而不需要验证之前的课程。例如：

```
$ rustlings run intro2
Hello world!
✅ Successfully ran exercises/intro/intro2.rs
$ rustlings run variables1

```

敲入练习名字可能会变得乏味，但 Rustlings 为你准备了便利的命令 `next` 用来移向系列中的下一个练习。

```
$ rustlings run next

```

### 替代命令 watch

如果你不想在每次修改后还要敲一次 `verify`，你可以在终端窗口中运行命令 `watch`，然后再继续修改源代码以解决问题。命令 `watch` 会检测到这些修改，然后重新编译以查看这些问题是否被解决。

```
$ rustlings watch

```

### 通过调试学习

Rust 编译器以提供非常有意义的错误信息而被熟知，这些错误信息会帮助你理解在你代码中的问题。这通常意味着更快的调试。Rustlings 是练习 Rust，学会阅读错误信息，并理解 Rust 语言的优秀途径。来看看 [GitHub](https://github.com/rust-lang/rustlings/releases/tag/5.0.0) 上 Rustlings 5.0.0 的最新功能吧。

>
> **[下载 Rust 速查表](https://opensource.com/downloads/rust-cheat-sheet)**
>
>
>

---

via: <https://opensource.com/article/22/7/learn-rust-rustlings>

作者：[Gaurav Kamathe](https://opensource.com/users/gkamathe) 选题：[lkxed](https://github.com/lkxed) 译者：[yzuowei](https://github.com/yzuowei) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


在 Linux 上试试这个基于 Python 的文件管理器

2023年了………这种上个世纪的软件，有啥推荐意义么

来自广东深圳的 Chrome Mobile 108.0|Android 13 用户

我刚刚看了下项目主页，这个软件今年才发布。

可能是双栏的操作逻辑让您感觉是上个世纪的吧。

不过实话说，我个人是比较喜欢和接受双栏的界面的，不管是win上的TC还是上面的软件，双栏的操作逻辑非常方便文件操作。

只是想不到这种更符合需求的设计为什么会在技术演进中淘汰？

这个界面太low了，推荐ranger，简洁风格，在命令行就可以预览。

# 在 Linux 上试试这个基于 Python 的文件管理器

>
> Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。
>
>
>

Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用，并且是 Python 可以做什么的一个很好的例子。

Python 是一种流行的语言有几个原因，但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西，从 [绘制基本几何形状](https://opensource.com/article/17/10/python-101#turtle) 到 [抓取网页](https://opensource.com/article/20/5/web-scraping-python) 再到编写僵尸启示录 [游戏](https://opensource.com/downloads/python-gaming-ebook)，或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator：一个人人都可以使用的桌面程序。

### 安装 Dragonfly Navigator

要安装 Dragonfly Navigator，首先从 [Git 仓库](https://github.com/suncore/dflynav/releases) 下载源代码。如果你使用的是 Debian Linux 或类似软件，请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件，请下载 `.tar.gz` 文件。

Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它，所以由你来解决这些问题。它只有两个依赖，所以使用你的包管理器（`dnf` 或 `apt`）找到并安装它们：

* PyQt5，也称为 `python-qt5`
* Python PIL，也称为 `pillow`

### 启动 Dragonfly Navigator

要启动 Dragonfly Navigator，请安装 `.deb` 文件（在基于 Debian 的系统上）或解压缩 `.tar.gz` 文件：

```
$ tar xvf dragonfly*gz

```

在基于 Debian 的系统上，Dragonfly Navigator 出现在你的应用菜单中。在其他系统上，你必须手动启动它，除非你 [手动安装](https://opensource.com/article/18/1/how-install-apps-linux)。

现在，我没有安装它，所以我手动启动它：

```
$ cd dragonfly
$ ./dragonfly

```

### 双面板

Dragonfly Navigator 是一个双面板文件管理器，这意味着它总是向你显示两个目录。在启动时，这两个目录恰好是你的主目录。你可以在任一面板中浏览文件和文件夹。它们的功能完全相同，只有当你开始复制或移动文件时你“位于”哪个面板中才重要。

### 打开目录

要打开目录，请双击它。默认情况下，该目录在同一面板中打开。但是，如果你想使用双面板布局，请在双击时按住 `Ctrl` 键以在另一个面板中显示其内容。

### 打开文件

要打开文件，请双击或右键单击它。

是的，你可以右键单击文件将其打开。如果你习惯于右键单击调出上下文菜单，那么这需要一些时间来适应。不过，Dragonfly Navigator 中没有上下文菜单，你可能会惊讶地发现，当你将打开文件这一非常常见的操作减少到只需单击一次时，你会觉得自己节省了多少时间。现在可能看起来很傻，但相信我，你会逐渐珍惜它的。

### 快速预览

某些文件可用于快速预览，因此你不必在某个特定应用中打开它们。要预览文件，请将鼠标悬停在文件上，然后按键盘上的 `Alt` 键。预览出现在对面的面板中。

### 复制和移动文件

要将文件从一个目录复制或移动到另一个目录（或从一个目录到另一个目录），有几个步骤。

* 在一个面板中，进入目标目录。这是你要将文件复制到的位置。
* 在另一个面板中，选择要复制的文件。
* 单击 Dragonfly Navigator 中间条中的 “<ruby> 复制 <rt>  Copy </rt></ruby>” 按钮。

要移动文件，请按照相同的步骤操作，但要单击 “<ruby> 移动 <rt>  Move </rt></ruby>” 按钮。

如果你不习惯双面板文件管理器，一开始会觉得很陌生。但是你仔细想想，在你常用的文件管理器中复制一个文件需要几个步骤（找到文件，打开另一个窗口，拖放等等）。做几次之后，它成为第二天性。

### 选择文件

通常，你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同，或者至少与你过去使用过的某些文件管理器没有什么不同。

要选择一个范围内的多个项目，请单击一个文件，然后按住 `Shift` 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。

要选择多个任意文件，请按住 `Ctrl` 键并单击要选择的文件。

### Qt 和 Python 的力量

Qt 工具包是一个强大的编程程序，Python 能够用它创建出色的应用。我在本文中只介绍了 Dragonfly Navigator 的基础知识，所以请下载它，阅读文档，点击并探索它，也许你会发现一个有趣的新文件管理器。

---

via: <https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #866 QQ for Linux 3.0 正式上线

Summary:
❶ QQ for Linux 3.0 正式上线
❷ 欧洲利用数据中心为家庭供暖
❸ 大学生开始用 AI 来写论文

QQ那个是不是得用手机扫码登陆？

30号官网正有下载了，可使用扣号登录方式；在手机应用更热的当下，TM能为适配Linux平台改造成legacy IM产品，侧面映证国内当下Linux平台的发展形态正趋于向上健康的态度，值得点赞！

只能是说微软太强大，基于Electron开发的QQ for Mac改个名字（Mac—>Linux）就成功运行在Linux上。

现在linux平台下，应该都是用惯了telegram了

可以账号密码登录

可以不用扫描登录，但是当你输入帐号密码后，你得滑动验证一下，然后你还得选择一下是手机qq上验证还是扫码登录，然后手机上还收不到验证。

当你再次打开QQ后，再次重复上述流程

玩具罢了

关微软何事

Electron（原名为Atom Shell[7]）是GitHub开发的一个开源框架。Github已被微软收购，不能说没关系

atom还在的时候还没微软啥事呢

atom还在的时候还没微软啥事呢

fedora 五年用户，只能说期待已久吧，微信我有网页版的登陆权限，QQ也终于有了完整的linux版本，现在终于没有可以让我继续停留windows的理由了。

笔记本上跑win用于运行微信、qq，服务器上跑个虚机linuxmint，日常工作基本在linux上了

# 硬核观察 #866 QQ for Linux 3.0 正式上线

### QQ for Linux 3.0 正式上线

腾讯最早在 2008 年就为 Linux 发布过 QQ，然后就几乎陷入了停止。2020 年，腾讯短暂发布过 2.0 测试版后，又停止更新。直到今年年底，腾讯宣布开始公测新版 Linux QQ。现在新的版本已经正式上线，据称采用了全新的 QQNT 架构，基于 Electron 框架开发。除了界面发生了变化之外，还新增了跟随系统的黑夜模式、截图功能、全局搜索、传送文件等群应用等功能。QQ for Linux 支持 x86 和 arm64 架构，提供了 deb、rpm、Applmage 三种格式的软件包。

>
> **[消息来源：QQ](https://im.qq.com/linuxqq/index.shtml)**
>
>
>

>
> 老王点评：说实话，要是几年前，还是会挺激动的。现在嘛，谁还在意。
>
>
>

### 欧洲利用数据中心为家庭供暖

他们希望将计算机芯片产生的多余热量输送到市政供暖网络。去年，亚马逊、苹果和微软已经开始将爱尔兰、丹麦和芬兰的主要数据中心与区域供热系统连接，或宣布计划将其连接。谷歌表示，它正在评估从其在欧洲的数据中心回收热量。Facebook 也计划从明年起提供足够的多余热量，以温暖约 11000 个家庭。

>
> **[消息来源：华尔街日报](https://www.wsj.com/articles/europe-taps-techs-power-hungry-data-centers-to-heat-homes-11672309944)**
>
>
>

>
> 老王点评：看起来欧洲可以过个暖冬了。
>
>
>

### 大学生开始用 AI 来写论文

与人类不同，语言模型不会拖延时间，只要稍加指导就能立即创造出内容。你只需要输入一个简短的描述，或提示语，指示模型需要产生什么，它就会在几秒钟内产生一个文本输出。然而，AI 生成的内容往往在几段之后就不那么好了，语言模型不能使他们的事实正确，学生们必须仔细检查写作，纠正错误，才能使他们的作品具有说服力。如果学生能够做好人工智能写作，这实际上与他们做好自己的写作没有什么不同。

>
> **[消息来源：The Register](https://www.theregister.com/2022/12/27/university_ai_essays_students)**
>
>
>

>
> 老王点评：所以，现在还不是担心 AI 可以写好论文的时候，而是 AI 还写不好论文。
>
>
>


Unity 正在积极开发，预告 7.7 版

Summary: Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。

实话说，不怎么好看

Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。

# Unity 正在积极开发，预告 7.7 版

>
> Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。
>
>
>

Unity，经典的桌面环境，从 2010 年到 2017 年都是 Ubuntu 的一部分，将收到一个大的新版本。你可以期待它在 2023 年的某个时候发布，但目前还没有具体的发布日期。

但不是由 [Canonical](https://canonical.com) 发布。

**如果你不知道：** Unity 的开发由一位年轻的开发者 [Rudra Saraswat](https://about.ruds.io) 接手，他也是 [Ubuntu Unity](https://ubuntuunity.org) 衍生版的创造者，这是 Ubuntu 的一个官方特色版。

在最近的一篇 [博文](https://unityd.org/unity-7-7-peek/) 中，Rudra 向我们揭示了 Unity 7.7 的一角和即将到来的各种改进。

让我带你看看这些。

### Unity 7.7 值得期待的地方

这次披露的内容有很多，其中包括：

* 更新的欢迎应用程序
* UWidgets
* 改进的仪表盘
* 面板的调整
* 增强的通知指示器

#### 更新的欢迎应用程序

一个新的欢迎应用程序将被引入 Unity，它基于 Ubuntu Flutter 社区开发的原型（用 [Flutter](https://flutter.dev) 编写）。

这个应用程序将不只限于一个发行版，而是适用于 Unity 所支持的所有发行版。

#### UWidgets

终于有了，Unity 桌面上的小部件？像 KDE 一样？

好吧，在 Unity 中引入用 Python 编写的小部件，应该很简单就可以设置（只是复制几个文件的问题）。

屏幕截图展示了一堆小部件，如时钟、系统监视器、Spotify 的小部件等等。

这还不是全部，Rudra 还提到：

>
> 我们将为 UWidgets 建立一个网页商店/仓库，在那里你可以提交你自己的小部件，或者下载并试用 Unity 7.7 上所有这些令人惊叹的小部件。
>
>
>

这应该会使用户更容易找到和下载小部件！

#### 改进的仪表盘

<ruby> 仪表盘 <rt>  Dash </rt></ruby>也被刷新了，新的设计基于 Unity 7 的原始设计概念（在 Canonical 放弃它之前）。

按照截图，它应该不会占用大量的屏幕空间，而且还很有用。

#### 面板的调整

现在的面板比之前的版本略大且更精致。

#### 增强的通知指示器

这对 Unity 来说是一个巨大的可用性改进；用户现在终于可以利用一个适当的通知指示器了。

它将显示与你的应用程序、系统和更多相关的基本通知。

#### 其他变化

一些更有用的技术改进包括：

* unity-control-center 的外壳 UI 得到了改进
* 默认的面板不透明度降低到 0.75
* 默认的启动器图标尺寸被缩小了
* 启动器按钮（Ubuntu 图标）被替换为半透明的图标，类似于 Ubuntu Unity 21.04 的启动器按钮。

*对 Unity 7.7 感到激动？请在下面的评论中告诉我你的想法。*

---

via: <https://news.itsfoss.com/unity-7-7-dev/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


5 个即将推出的可能会挑战 VS Code 的代码编辑器

Summary: 这些有趣的代码编辑器可能会在 2023 年取代 VS Code！

这些有趣的代码编辑器可能会在 2023 年取代 VS Code！

# 5 个即将推出的可能会挑战 VS Code 的代码编辑器

>
> 这些有趣的代码编辑器可能会在 2023 年取代 VS Code！
>
>
>

嗯，2022 年即将结束。

我们推出了针对 Linux 发布的新的卓越代码编辑器，从 [Lite XL](https://itsfoss.com/lite-xl/) 到 [Pulsar](https://news.itsfoss.com/pulsar-editor/) 等。

因此，为了纪念这一点，我编制了这份即将推出的 Linux 代码编辑器列表，它们很有可能挑战 [VS Code](https://code.visualstudio.com) 的霸主地位。

让我带你了解它。

### 1、Pulsar

[Pulsar](https://pulsar-edit.dev) 是一个社区主导的开源代码编辑器，旨在替代著名的 Atom 代码编辑器。

它使用与 Atom 相同的代码库，有一个开源的后端（得益于逆向工程的工作），更新了依赖性。

他们有计划在不久的将来对其进行改进。

它可以从 [官方网站](https://pulsar-edit.dev/download.html#releases) 下载，但请记住，它还处于早期开发阶段。

### 2、Atom 社区版

“[Atom 社区版](https://atom-community.github.io)” 也是从现已停止维护的 Atom 编辑器的 [灰烬](https://github.blog/2022-06-08-sunsetting-atom/) 中重生的，它是一个旨在接管其前身的概念和想法的项目。

他们的目标是从提供最基本的特性开始，并使其与 [atom-ide-ui](https://github.com/facebookarchive/atom-ide-ui) 包中的可用功能相媲美。

它可能会有更多东西，但就目前的形式而言，我现在不建议新用户这样做。与 Pulsar 相比，他们的长期目标略有不同，这使它成为另一个值得一看的项目。

但是，到 2023 年，情况可能会有所不同。

尽管如此，那些喜欢冒险的人可以使用 [源代码](https://github.com/atom-community/atom) 来构建它。

### 3、Lapce

一个轻量级和快速的开源代码编辑器？

这就是 [Lapce](https://lapce.dev)！

它是一个基于 Rust 的开源代码编辑器，专注于提供这样的体验。

我们在它处于 pre-alpha 阶段时对其进行了介绍，但在 2023 年它可能会引起注意。

### 4、Zed

[Zed](https://zed.dev/) 是即将推出的代码编辑器，旨在挑战 VS Code 的统治地位。

它有许多功能，例如实时协作、极简界面、代码动作、命令面板等 [更多功能](https://zed.dev/features)。

事实上，Atom 的创始人 [Nathan Sobo](https://twitter.com/nathansobo) 是这一切的幕后推手，并将其称为 Atom 的“*精神继承者*”。

### 5、Lite XL

[Lite XL](https://itsfoss.com/lite-xl/) 是一个用 Lua 编写的开源代码编辑器，仅使用 3MB 的存储空间和大约 20MB 的内存。（与 VS Code 的 ~550 MB 相比）。

如果你正在寻找一个完全最小化的代码编辑器，它可能会合你的口味。

你现在可以从 [官方网站](https://lite-xl.com/en/downloads) 获取它，它会定期更新，预计 2023 年也会如此。

**好了，这是这份名单的结束，也是 2022 年的结束。** ?

*我可能错过了一些代码编辑器，我知道你会在评论部分告诉我。随时分享你的想法！*

---

via: <https://news.itsfoss.com/upcoming-code-editors/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #867 因为百思买，Firefox 绕开了用户代理字符串中的版本号

Summary:
❶ 因为百思买，Firefox 绕开了用户代理字符串中的版本号
❷ 台式机 GPU 销量创 20 年新低
❸ Edubuntu 将在明年归来

# 硬核观察 #867 因为百思买，Firefox 绕开了用户代理字符串中的版本号

### 因为百思买，Firefox 绕开了用户代理字符串中的版本号

用户代理（UA）字符串是浏览器向网站发出的一个标识符，网站可以利用这一数据调整性能和功能，或屏蔽过时的浏览器。即将发布的 Firefox 110 的用户代理字符串中包含“rv:110.0”，用户报告它导致了百思买（[bestbuy.com](http://bestbuy.com/)）显示错误信息，声称不支持该浏览器。但实际上是百思买将其当成了不支持的 IE 11（rv:11）。Firefox 决定修改其用户代理字符串，保持在 rv:109.0。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=73776)**
>
>
>

>
> 老王点评：多么可笑的做法，难道不该百思买去修改自己错误的识别吗？
>
>
>

### 台式机 GPU 销量创 20 年新低

在大流行期间，对显卡的需求明显增加，因为一些人花更多的时间在家里玩游戏，而另一些人则试图挖掘以太坊来获得一些现金。但现在，对台式机独立 GPU 的需求大幅下降。据数据，独立显卡的出货量在 2022 年第三季度创下约 20 年的新低，为台式电脑提供了约 690 万块独立显卡，以及为笔记本电脑提供的差不多数量的 GPU，同比下降了 42%。同时，该季度集成 GPU 的出货量总计约为 6150 万个单位。

>
> **[消息来源：Tom's Hardware](https://www.tomshardware.com/news/sales-of-desktop-graphics-cards-hit-20-year-low)**
>
>
>

>
> 老王点评：好吧，没人抢 GPU 了。
>
>
>

### Edubuntu 将在明年归来

Edubuntu 是以教育为重点的版本，预装了各种教育包，并为学生提供了优化的工作流程。但 Edubuntu逐渐消失了。Ubuntu Studio 项目的领导者和他的早期教育专家的妻子，希望带领 Edubuntu 重新成为一个正式的 Ubuntu 版本。新的 Edubuntu 将基于 GNOME ，预装各种教育包，并在安装程序中支持选择学前教育、小学/初级教育和中学目标等。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Edubuntu-2023)**
>
>
>

>
> 老王点评：欢迎回来 Edubuntu。
>
>
>


不普通的普通操作系统：Vanilla OS 稳定版发布了!

Summary: Vanilla OS 已经准备好让你尝试！在这里了解令人兴奋的地方。

哦耶！哦耶！哦耶！哦耶！！

Vanilla OS 已经准备好让你尝试！在这里了解令人兴奋的地方。

# 不普通的普通操作系统：Vanilla OS 稳定版发布了!

>
> Vanilla OS 已经准备好让你尝试！在这里了解令人兴奋的地方。
>
>
>

Vanilla OS 是一个基于 Ubuntu 的发行版，旨在为用户提供一个具有随需应变能力和自由选择软件包的 GNOME 体验。（LCTT 译注：Vanilla —— “香草”，因为作为太普通的香料，所以也有“普普通通”的意思。）

经过几个月的测试，**Vanilla OS 的第一个版本** 终于以 **Vanilla 22.10 Kinetic** 的形式出现了，其提供了原汁原味的 **GNOME 43**。

在最近的一次采访中，我们问创建者：“很多人认为我们已经有太多的发行版了。为什么还要有 Vanilla OS？”，**Mirko Brombin**，分享了一些有趣的见解享。请看下面我们与他的对话，探索关于 Vanilla OS 的令人兴奋的事情：

>
> **[“不要害怕做出贡献”：Mirko Brombin 谈 Vanilla OS 和其他未来项目](https://news.itsfoss.com/interview-mirko-brombin/)**
>
>
>

Vanilla OS 有几个特点，你可能会觉得有帮助，请允许我向你介绍一下。

### 主要亮点

作为一个新的发行版，Vanilla OS 有一个装备精良的功能集，你可能会喜欢。一些值得注意的亮点包括：

* 原生安装程序
* Vanilla OS <ruby> 首次设置 <rt>  First Setup </rt></ruby> 功能
* Vanilla OS 控制中心
* apx 软件包管理器
* 随需应变能力

#### 原生安装程序

Vanilla OS 有一个用 [GTK4](https://news.itsfoss.com/gtk-4-release/) 和 [libadwaita](https://news.itsfoss.com/gnome-libadwaita-library/) 编写的原生的安装程序，它取代了该操作系统在早期开发阶段时使用的 [Calamares](https://calamares.io) 安装程序。

之前，他们还宣布将使用来自 Crystal Linux 团队的 [Jade](https://github.com/crystal-linux/jade) 安装程序。

但是，他们改变了主意，选择在现有的 [Vanilla 首次设置](https://github.com/Vanilla-OS/first-setup) 项目之上建立 [Vanilla 安装程序](https://github.com/Vanilla-OS/vanilla-installer)。

#### Vanilla OS 首次设置

Vanilla OS 的安装完成后，你会看到一个快速设置屏幕，上面用各种语言写着 “欢迎”。

然后它将带你完成各种设置，如选择颜色方案，选择你想要的软件包管理器，是否要安装受限制的编解码器，等等。

我必须说，这很方便！ ?

#### Vanilla OS 控制中心

这个图形化工具使你能够对操作系统进行修改，如运行关键更新和安装额外的驱动程序。

#### 随需应变的不变性

正如上面 Vanilla OS 的创始人所展示的，这个操作系统可以提供完全的不变性和原子性，允许你在两个根分区（A/B）之间进行交易。

你问这是什么意思？ ?

嗯，这意味着你的系统的核心部分被锁定，以防止任何不必要的变化，特别是那些由损坏的应用程序或错误的更新引起的变化。

Vanilla OS 使用 [ABRoot](https://github.com/Vanilla-OS/ABRoot) 来实现这一目标，之前，他们曾尝试使用 [Almost](https://documentation.vanillaos.org/docs/almost/)，但结果并不理想。

它还有一个**智能更新功能**，他们解释如下：

>
> VSO（Vanilla System Operator）是一个工具，它将定期检查更新，然后如果设备没有处于大量使用状态，就在后台下载和安装。事实上，VSO 检查是否满足某些检查条件，如资源是否空闲（CPU/RAM），连接是否允许，电池是否至少有 30% 的电量等。
>
>
>

更新是通过 ABroot 应用的，并在下一次重启时得到修补，而不需要花费额外时间。

#### apx 软件包管理器

Vanilla OS 带有 [apx](https://github.com/Vanilla-OS/apx) 工具，允许你在不修改根文件系统的情况下在管理的容器内安装软件包。

### 下载 Vanilla OS

如果你认为 Vanilla OS 解决了你在 Ubuntu 上遇到的问题，并且想要一个原汁原味的 GNOME 体验，那就来试试吧。

你可以在其 [官方博客文章](https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html) 中了解更多关于 Vanilla OS 22.10 的信息。

>
> **[下载 Vanilla OS](https://vanillaos.org)**
>
>
>

---

via: <https://news.itsfoss.com/vanilla-os-release/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


如何在 Linux 中降级 Flatpak 软件包

# 如何在 Linux 中降级 Flatpak 软件包

>
> Flatpak 软件包的一个鲜为人知的特点是，它允许你对已安装的应用程序进行降级。下面是如何使用它的方法。
>
>
>

从技术上讲，小版本或次要更新是为了解决问题。但是，当某些更新破坏你当前的工作流程时，情况可能会变得更糟。

无论是 Flatpak 包还是 Snap，当出现问题时，一切都会在某个时候崩溃。作为一个沙盒打包方案，它可能不会影响整个系统，但如果你遇到一个让你的应用体验变差的错误，你可能会后悔更新。

比如之前 [Black Box](https://itsfoss.com/blackbox-terminal/) 的更新就带来了一些错误，无法选择文字！开发人员现在已经解决了这个问题，但在他们没有解决之前，我降级了那个特定的包以使其正常工作。

所以，如果你想降级特定的 Flatpak 应用，你可以按照本指南进行操作。

### 在 Linux 中降级 Flatpak 包

**免责声明：** 与安装 Flatpak 不同，你需要 `sudo` 权限才能降级 Flatpak 包。如果你的用户没有该权限，你可以按照我们关于 [如何向用户授予 sudo 访问权限](https://itsfoss.com/add-sudo-user-ubuntu/) 的详细指南进行操作。

以下是步骤：

#### 1、获取包的应用 ID

第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它：

```
flatpak list --app

```

记下要降级的包的应用 ID。

这里，我要降级 Black Box，所以我的应用 ID 将是 `com.raggesilver.BlackBox`。

#### 2、列出以前的版本并获取该提交的代码

获得应用 ID 后，你需要列出以前的版本。

你可以按照给定的命令语法做到这点：

```
flatpak remote-info --log flathub <Application ID>

```

找到首选的先前版本后，复制如上所示的提交的代码。

#### 3、降级 Flatpack 包

执行前两个步骤后，你应该有以下内容：

* 包的应用 ID。
* 首选旧版本的提交代码。

现在，你必须将它们放在以下命令中：

```
sudo flatpak update --commit=<commit_code> <Application ID>

```

当我将 Black Box 降级到以前的版本时，我将使用以下命令：

```
sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox

```

这就完成了！

要检查你是否已成功降级软件包，你可以列出需要更新的软件包（考虑到其他所有内容都是最新的）。它应该包括你最近降级的软件包的名称：

```
flatpak update

```

如你所见，Black Box 已过时，需要更新，这意味着包已成功降级！

### 总结

在本快速教程中，我解释了如何降级 Flatpak 软件包，希望对你有所帮助。

如果你有任何疑问或建议，请在评论中告诉我。

---

via: <https://itsfoss.com/downgrade-flatpak-packages/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #868 软件缺陷导致西南航空取消数千架次航班

Summary:
❶ 软件缺陷导致西南航空取消数千架次航班
❷ AI 专家预测“编程的终结”
❸ X.Org 服务器的开发速度创下了二十年来的新低

# 硬核观察 #868 软件缺陷导致西南航空取消数千架次航班

### 软件缺陷导致西南航空取消数千架次航班

从 12 月 22 日开始，美国西南航空取消了 15000 架次的航班，上星期四取消了 2300 多个航班，而风暴已经过去了一个星期。有人指出这是由于其过时的调度系统导致的。软件的缺陷导致了之前规模较小的崩溃，西南航空公司的工会也多次对此提出警告，工会甚至将更新摇摇欲坠的调度技术置于其对增加工资的要求之上。

>
> **[消息来源：《纽约时报》](https://www.nytimes.com/2022/12/31/opinion/southwest-airlines-computers.html)**
>
>
>

>
> 老王点评：管理层面临两难境地：不动的话还能运行，但谁也不知道什么时候崩溃；动的话，可能带来更多不确定性。这就是“屎山”技术债。
>
>
>

### AI 专家预测“编程的终结”

一位 AI 专家撰文说，“除了非常专业的应用，我们所知的大多数软件都将被训练的人工智能系统所取代，而不是编程产生的。”他说的不仅仅是像 Github CoPilot 这样的东西，而是用训练模型取代了编写程序的整个概念。未来计算机学生不再需要学习二叉树、C++ 编程技巧这样的世俗技能。在大多数情况下，大规模的、由人类策划的数据集将不再是必要的，他们只需要提出正确的例子，正确的训练数据，以及评估训练过程的正确方法，而机器将完成剩下的工作。重点是转向教导智能机器，而不是直接对其进行编程，这更像是一个专注于人工智能教育的领域，甚至将来可能出现面向人工智能的精神病学。

>
> **[消息来源：《ACM 通讯》](https://cacm.acm.org/magazines/2023/1/267976-the-end-of-programming/fulltext)**
>
>
>

>
> 老王点评：画风逐渐不对，一位可以生成各种软件的 AI 助手，或许还会有点小脾气、会伤心，也可能陷入心理问题。
>
>
>

### X.Org 服务器的开发速度创下了二十年来的新低

大多数在 Linux 桌面上工作的企业支持的开发者不再围绕 X.Org 服务器开发新功能，并将他们的努力转移到以 Wayland 为重点的环境中。查看 2022 年 X.Org 服务器的 Git 统计数据时，它显示了开发是如何急剧降低的，现在的提交量和代码修改量已经达到了二十年来的最低点。今年，X.Org 服务器的 Git 主干分支只有 156 个提交，远低于 2008 年 2114 个的最高纪录。当然，这并不是说 X.Org 服务器的功能已经很完备了，因为还有一些围绕 HDR 支持的问题，同步的改进等等，以及安全问题。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/XServer-2022-Development-Pace)**
>
>
>

>
> 老王点评：虽然 X.org 终将落幕，但是看到这样衰落，总是觉得挺可惜。
>
>
>


Linux QtFM 文件管理器的 3 个令人愉快的功能

# Linux QtFM 文件管理器的 3 个令人愉快的功能

>
> 这个 Linux 文件管理器做了你所期望的一切，没有留下不愉快的惊喜。但这里有一些令人惊喜的事情，使它值得一试。
>
>
>

QtFM 是一个简单的文件管理器，旨在通过一个快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。

QtFM，顾名思义，使用 Qt（规范发音为 “cute”）编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包，使用它总是一种乐趣。它是跨平台的，具有多个有用的抽象级别，因此开发人员不必直接与特定于供应商的 SDK 交互，而且它具有高度可配置性。从用户的角度来看，无论你使用的是最新的硬件还是[旧计算机](https://opensource.com/article/22/10/obsolete-computer-linux-opportunity)，这都是一种“自然”且快速的体验。

### 使用 QtFM

QtFM 没有太多内容。它专注于实现其名称所声称的：Qt 的文件管理器（FM）。其布局可能是你对文件管理器的期望：左侧是常用位置和设备的列表，右侧是文件列表。

它只有四个菜单：

* <ruby> 文件 <rt>  File </rt></ruby>：创建新文件或文件夹，打开新选项卡或窗口，或退出应用。
* <ruby> 编辑 <rt>  Edit </rt></ruby>：在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。
* <ruby> 视图 <rt>  View </rt></ruby>：在列表视图和图标视图之间切换，调整布局。
* <ruby> 帮助 <rt>  Help </rt></ruby>：许可信息和在线文档链接。

与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用，以及你在与计算机内容交互时执行的任何其他操作。它很熟悉，所以基本上没有学习曲线，也没有不愉快的惊喜。

然而，也有一些惊喜。这是我最喜欢的三个。

### 1、将命令放入上下文菜单

使用 QtFM，你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如，假设你想要一个将图像转换为 [webp 格式](https://opensource.com/article/20/4/webp-image-compression) 的选项到右键菜单。无需学习复杂的框架或脚本语言，无需开发插件。你只需 3 个步骤即可完成：

* 转到 “<ruby> 编辑 <rt>  Edit </rt></ruby>” 菜单并选择 “<ruby> 设置 <rt>  Settings </rt></ruby>”。
* 单击 “<ruby> 自定义操作选项卡 <rt>  Custom actions tab </rt></ruby>”。
* 单击 “<ruby> 添加 <rt>  Add </rt></ruby>” 按钮并输入要运行的命令，用 `%f` 代表源文件，用 `%n` 代表新文件。

该操作现在出现在你的 QtFM 上下文菜单中。

### 2、灵活的布局

Qt 工具包的内置功能之一是它的许多组件（“小部件”）是可分离的。QtFM 利用了这一点，并允许你从 “<ruby> 视图 <rt>  View </rt></ruby>” 菜单中解锁其布局。解锁后，你可以拖动工具栏和侧面板，将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中，并且为了方便，我在窗口的右侧放置了一个文件树。

这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。

### 3、标签视图

许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧，可让你方便地保留多个位置。我不知道它是否真的节省了时间，但我总觉得它确实如此。QtFM 也提供选项卡，我特别喜欢它实现选项卡的方式有两点。

首先，选项卡默认位于窗口底部（你可以在 “<ruby> 设置 <rt>  Settings </rt></ruby>” 中更改它）。因为我倾向于从左到右、从上到下阅读，所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然，“额外”信息的构成因用户而异，因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过，当开发人员不小心同意我的偏好时，这很好。

其次，标签是响应式的。只需将鼠标悬停在目标选项卡上，即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。

### 安装 QtFM

在 Linux 上，你的发行版可能会将 QtFM 打包在它的软件仓库中。如果是这样，你可以使用包管理器进行安装。例如，在 Debian 和基于 Debian 的系统上：

```
$ sudo apt install qtfm

```

如果你的发行版不提供 QtFM，你可以在其 [网站](https://qtfm.eu/) 上找到它的软件包，或者你可以从它的 [Git 仓库](https://github.com/rodlie/qtfm/) 下载源码。

---

via: <https://opensource.com/article/22/12/linux-file-manager-qtfm>

作者：[Seth Kenlon](https://opensource.com/users/seth) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux 中国](https://linux.cn/) 荣誉推出


为 Python 写一个 C++ 扩展模块

Summary: 使用 C 扩展为 Python 提供特定功能。

使用 C 扩展为 Python 提供特定功能。

# 为 Python 写一个 C++ 扩展模块

>
> 使用 C 扩展为 Python 提供特定功能。
>
>
>

在前一篇文章中，我介绍了 [六个 Python 解释器](https://opensource.com/article/22/9/python-interpreters-2022)。在大多数系统上，CPython 是默认的解释器，而且根据民意调查显示，它还是最流行的解释器。Cpython 的独有功能是使用扩展 API 用 C 语言编写 Python 模块。用 C 语言编写 Python 模块允许你将计算密集型代码转移到 C，同时保留 Python 的易用性。

在本文中，我将向你展示如何编写一个 C++ 扩展模块。使用 C++ 而不是 C，因为大多数编译器通常都能理解这两种语言。我必须提前说明缺点：以这种方式构建的 Python 模块不能移植到其他解释器中。它们只与 CPython 解释器配合工作。因此，如果你正在寻找一种可移植性更好的与 C 语言模块交互的方式，考虑下使用 [ctypes](https://docs.python.org/3/library/ctypes.html#module-ctypes) 模块。

### 源代码

和往常一样，你可以在 [GitHub](https://github.com/hANSIc99/PythonCppExtension) 上找到相关的源代码。仓库中的 C++ 文件有以下用途：

* `my_py_module.cpp`: Python 模块 `MyModule` 的定义
* `my_cpp_class.h`: 一个头文件 - 只有一个暴露给 Python 的 C++ 类
* `my_class_py_type.h/cpp`: Python 形式的 C++ 类
* `pydbg.cpp`: 用于调试的单独应用程序

本文构建的 Python 模块不会有任何实际用途，但它是一个很好的示例。

### 构建模块

在查看源代码之前，你可以检查它是否能在你的系统上编译。[我使用 CMake](https://opensource.com/article/21/5/cmake) 来创建构建的配置信息，因此你的系统上必须安装 CMake。为了配置和构建这个模块，可以让 Python 去执行这个过程：

```
$ python3 setup.py build

```

或者手动执行：

```
$ cmake -B build
$ cmake --build build

```

之后，在 `/build` 子目录下你会有一个名为 `MyModule. so` 的文件。

### 定义扩展模块

首先，看一下 `my_py_module.cpp` 文件，尤其是 `PyInit_MyModule` 函数：

```
PyMODINIT_FUNC
PyInit_MyModule(void) {
    PyObject* module = PyModule_Create(&my_module);

    PyObject *myclass = PyType_FromSpec(&spec_myclass);
    if (myclass == NULL){
        return NULL;
    }
    Py_INCREF(myclass);

    if(PyModule_AddObject(module, "MyClass", myclass) < 0){
        Py_DECREF(myclass);
        Py_DECREF(module);
        return NULL;
    }
    return module;
}

```

这是本例中最重要的代码，因为它是 CPython 的入口点。一般来说，当一个 Python C 扩展被编译并作为共享对象二进制文件提供时，CPython 会在同名二进制文件中（`<ModuleName>.so`）搜索 `PyInit_<ModuleName>` 函数，并在试图导入时执行它。

无论是声明还是实例，所有 Python 类型都是 [PyObject](https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject) 的一个指针。在此函数的第一部分中，`module` 通过 `PyModule_Create(...)` 创建的。正如你在 `module` 详述（`my_py_module`，同名文件）中看到的，它没有任何特殊的功能。

之后，调用 [PyType\_FromSpec](https://docs.python.org/3/c-api/type.html#c.PyType_FromSpec) 为自定义类型 `MyClass` 创建一个 Python [堆类型](https://docs.python.org/3/c-api/typeobj.html#heap-types) 定义。一个堆类型对应于一个 Python 类，然后将它赋值给 `MyModule` 模块。

*注意，如果其中一个函数返回失败，则必须减少以前创建的复制对象的引用计数，以便解释器删除它们。*

### 指定 Python 类型

`MyClass` 详述在 [my\_class\_py\_type.h](https://github.com/hANSIc99/PythonCppExtension/blob/main/my_class_py_type.h) 中可以找到，它作为 [PyType\_Spec](https://docs.python.org/3/c-api/type.html#c.PyType_Spec) 的一个实例：

```
static PyType_Spec spec_myclass = {
    "MyClass",                                  // name
    sizeof(MyClassObject) + sizeof(MyClass),    // basicsize
    0,                                          // itemsize
    Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,   // flags
    MyClass_slots                               // slots
};

```

它定义了一些基本类型信息，它的大小包括 Python 表示的大小（`MyClassObject`）和普通 C++ 类的大小（`MyClass`）。`MyClassObject` 定义如下：

```
typedef struct {
    PyObject_HEAD
    int         m_value;
    MyClass*    m_myclass;
} MyClassObject;

```

Python 表示的话就是 [PyObject](https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pyobject#c.PyObject) 类型，由 `PyObject_HEAD` 宏和其他一些成员定义。成员 `m_value` 视为普通类成员，而成员 `m_myclass` 只能在 C++ 代码内部访问。

[PyType\_Slot](https://docs.python.org/release/3.9.1/c-api/type.html?highlight=pytype_slot#c.PyType_Slot) 定义了一些其他功能：

```
static PyType_Slot MyClass_slots[] = {
    {Py_tp_new,     (void*)MyClass_new},
    {Py_tp_init,    (void*)MyClass_init},
    {Py_tp_dealloc, (void*)MyClass_Dealloc},
    {Py_tp_members, MyClass_members},
    {Py_tp_methods, MyClass_methods},
    {0, 0} /* Sentinel */
};

```

在这里，设置了一些初始化和析构函数的跳转，还有普通的类方法和成员，还可以设置其他功能，如分配初始属性字典，但这是可选的。这些定义通常以一个哨兵结束，包含 `NULL` 值。

要完成类型详述，还包括下面的方法和成员表：

```
static PyMethodDef MyClass_methods[] = {
    {"addOne", (PyCFunction)MyClass_addOne, METH_NOARGS,  PyDoc_STR("Return an incrmented integer")},
    {NULL, NULL} /* Sentinel */
};

static struct PyMemberDef MyClass_members[] = {
    {"value", T_INT, offsetof(MyClassObject, m_value)},
    {NULL} /* Sentinel */
};

```

在方法表中，定义了 Python 方法 `addOne`，它指向相关的 C++ 函数 `MyClass_addOne`。它充当了一个包装器，它在 C++ 类中调用 `addOne()` 方法。

在成员表中，只有一个为演示目的而定义的成员。不幸的是，在 [PyMemberDef](https://docs.python.org/release/3.9.1/c-api/structures.html?highlight=pymemberdef#c.PyMemberDef) 中使用的 [offsetof](https://en.cppreference.com/w/cpp/types/offsetof) 不允许添加 C++ 类型到 `MyClassObject`。如果你试图放置一些 C++ 类型的容器（如 [std::optional](https://en.cppreference.com/w/cpp/utility/optional)），编译器会抱怨一些内存布局相关的警告。

### 初始化和析构

`MyClass_new` 方法只为 `MyClassObject` 提供一些初始值，并为其类型分配内存：

```
PyObject *MyClass_new(PyTypeObject *type, PyObject *args, PyObject *kwds){
    std::cout << "MtClass_new() called!" << std::endl;

    MyClassObject *self;
    self = (MyClassObject*) type->tp_alloc(type, 0);
    if(self != NULL){ // -> 分配成功
        // 赋初始值
        self->m_value   = 0;
        self->m_myclass = NULL;
    }
    return (PyObject*) self;
}

```

实际的初始化发生在 `MyClass_init` 中，它对应于 Python 中的 [\_\_init\_\_()](https://docs.python.org/3/library/dataclasses.html?highlight=__init__) 方法：

```
int MyClass_init(PyObject *self, PyObject *args, PyObject *kwds){

    ((MyClassObject *)self)->m_value = 123;

    MyClassObject* m = (MyClassObject*)self;
    m->m_myclass = (MyClass*)PyObject_Malloc(sizeof(MyClass));

    if(!m->m_myclass){
        PyErr_SetString(PyExc_RuntimeError, "Memory allocation failed");
        return -1;
    }

    try {
        new (m->m_myclass) MyClass();
    } catch (const std::exception& ex) {
        PyObject_Free(m->m_myclass);
        m->m_myclass = NULL;
        m->m_value   = 0;
        PyErr_SetString(PyExc_RuntimeError, ex.what());
        return -1;
    } catch(...) {
        PyObject_Free(m->m_myclass);
        m->m_myclass = NULL;
        m->m_value   = 0;
        PyErr_SetString(PyExc_RuntimeError, "Initialization failed");
        return -1;
    }

    return 0;
}

```

如果你想在初始化过程中传递参数，必须在此时调用 [PyArg\_ParseTuple](https://docs.python.org/3/c-api/arg.html#c.PyArg_ParseTuple)。简单起见，本例将忽略初始化过程中传递的所有参数。在函数的第一部分中，`PyObject` 指针（`self`）被强转为 `MyClassObject` 类型的指针，以便访问其他成员。此外，还分配了 C++ 类的内存，并执行了构造函数。

注意，为了防止内存泄漏，必须仔细执行异常处理和内存分配（还有释放）。当引用计数将为零时，`MyClass_dealloc` 函数负责释放所有相关的堆内存。在文档中有一个章节专门讲述关于 C 和 C++ 扩展的内存管理。

### 包装方法

从 Python 类中调用相关的 C++ 类方法很简单：

```
PyObject* MyClass_addOne(PyObject *self, PyObject *args){
    assert(self);

    MyClassObject* _self = reinterpret_cast<MyClassObject*>(self);
    unsigned long val = _self->m_myclass->addOne();
    return PyLong_FromUnsignedLong(val);
}

```

同样，`PyObject` 参数（`self`）被强转为 `MyClassObject` 类型以便访问 `m_myclass`，它指向 C++ 对应类实例的指针。有了这些信息，调用 `addOne()` 类方法，并且结果以 [Python 整数对象](https://docs.python.org/3/c-api/long.html) 返回。

### 3 种方法调试

出于调试目的，在调试配置中编译 CPython 解释器是很有价值的。详细描述参阅 [官方文档](https://docs.python.org/3/c-api/intro.html#debugging-builds)。只要下载了预安装的解释器的其他调试符号，就可以按照下面的步骤进行操作。

#### GNU 调试器

当然，老式的 [GNU 调试器（GDB）](https://opensource.com/article/21/3/debug-code-gdb) 也可以派上用场。源码中包含了一个 [gdbinit](https://github.com/hANSIc99/PythonCppExtension/blob/main/gdbinit) 文件，定义了一些选项和断点，另外还有一个 [gdb.sh](https://github.com/hANSIc99/PythonCppExtension/blob/main/gdb.sh) 脚本，它会创建一个调试构建并启动一个 GDB 会话：

GDB 使用脚本文件 [main.py](https://github.com/hANSIc99/PythonCppExtension/blob/main/main.py) 调用 CPython 解释器，它允许你轻松定义你想要使用 Python 扩展模块执行的所有操作。

#### C++ 应用

另一种方法是将 CPython 解释器嵌入到一个单独的 C++ 应用程序中。可以在仓库的 [pydbg.cpp](https://github.com/hANSIc99/PythonCppExtension/blob/main/pydbg.cpp) 文件中找到：

```
int main(int argc, char *argv[], char *envp[])
{
    Py_SetProgramName(L"DbgPythonCppExtension");
    Py_Initialize();

    PyObject *pmodule = PyImport_ImportModule("MyModule");
    if (!pmodule) {
        PyErr_Print();
        std::cerr << "Failed to import module MyModule" << std::endl;
        return -1;
    }

    PyObject *myClassType = PyObject_GetAttrString(pmodule, "MyClass");
    if (!myClassType) {
        std::cerr << "Unable to get type MyClass from MyModule" << std::endl;
        return -1;
    }

    PyObject *myClassInstance = PyObject_CallObject(myClassType, NULL);

    if (!myClassInstance) {
        std::cerr << "Instantioation of MyClass failed" << std::endl;
        return -1;
    }

    Py_DecRef(myClassInstance); // invoke deallocation
    return 0;
}

```

使用 [高级接口](https://docs.python.org/3/extending/embedding.html#very-high-level-embedding)，可以导入扩展模块并对其执行操作。它允许你在本地 IDE 环境中进行调试，还能让你更好地控制传递或来自扩展模块的变量。

缺点是创建一个额外的应用程序的成本很高。

#### VSCode 和 VSCodium LLDB 扩展

使用像 [CodeLLDB](https://github.com/vadimcn/vscode-lldb) 这样的调试器扩展可能是最方便的调试选项。仓库包含了一些 VSCode/VSCodium 的配置文件，用于构建扩展，如 [task.json](https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/tasks.json)、[CMake Tools](https://github.com/microsoft/vscode-cmake-tools) 和调用调试器（[launch.json](https://github.com/hANSIc99/PythonCppExtension/blob/main/.vscode/launch.json)）。这种方法结合了前面几种方法的优点：在图形 IDE 中调试，在 Python 脚本文件中定义操作，甚至在解释器提示符中动态定义操作。

### 用 C++ 扩展 Python

Python 的所有功能也可以从 C 或 C++ 扩展中获得。虽然用 Python 写代码通常认为是一件容易的事情，但用 C 或 C++ 扩展 Python 代码是一件痛苦的事情。另一方面，虽然原生 Python 代码比 C++ 慢，但 C 或 C++ 扩展可以将计算密集型任务提升到原生机器码的速度。

你还必须考虑 ABI 的使用。稳定的 ABI 提供了一种方法来保持旧版本 CPython 的向后兼容性，如 [文档](https://docs.python.org/3/c-api/stable.html) 所述。

最后，你必须自己权衡利弊。如果你决定使用 C 语言来扩展 Python 中的一些功能，你已经看到了如何实现它。

---

via: <https://opensource.com/article/22/11/extend-c-python>

作者：[Stephan Avenwedde](https://opensource.com/users/hansic99) 选题：[lkxed](https://github.com/lkxed) 译者：[MjSeven](https://github.com/MjSeven) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #869 美法院称，保险不包括对软件的勒索软件攻击

Summary:
❶ 美法院称，保险不包括对软件的勒索软件攻击
❷ 台积电开始量产 3 纳米芯片
❸ 软件工程师称受电影启发盗取公司帐户的钱

希望他还是“台”积电

# 硬核观察 #869 美法院称，保险不包括对软件的勒索软件攻击

### 美法院称，保险不包括对软件的勒索软件攻击

美国俄亥俄州最高法院一致推翻了俄亥俄州第二区上诉法院的判决，并提出必须在公司的计算机软件中存在 “直接” 的物理损失或物理损坏，才能获得保险单的保障。法院的理由是：计算机可能有 “有形” 的电子部件，但储存在那里的信息没有 “实体存在”；因此，对公司软件的勒索软件攻击在公司的保险单下没有保障。

>
> **[消息来源：Slashdot](https://yro.slashdot.org/story/22/12/30/1125206/insurance-policy-does-not-cover-ransomware-attack-on-software-ohio-supreme-court-says)**
>
>
>

>
> 老王点评：总觉得这个裁决有点不对劲。
>
>
>

### 台积电开始量产 3 纳米芯片

台积电在台南科学园 Fab 18 工厂举行的仪式上正式宣布量产 3 纳米芯片。相比 5 纳米芯片，3 纳米芯片逻辑晶体管密度增加 60%，功耗降低 30% 至 35%。台积电的 Fab 18 是其生产 5 纳米和 3 纳米芯片的主要基地，该设施的总投资将达到 600 多亿美元。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=73775)**
>
>
>

>
> 老王点评：终究还是“台积电”。
>
>
>

### 软件工程师称受电影启发盗取公司帐户的钱

1999 年上映的黑色喜剧片《Office Space》讲述了员工在银行系统中植入病毒，将每笔金融交易中的几分钱转移其帐户的故事。而现实中，一位程序员称他受该电影的启发，制定了一个计划从雇主的帐户里偷钱。他编写了软件，操纵了结账页面，将每笔交易的运费转移到个人帐户。法庭文件称他盗取了 26 万美元的运费。警方还在他的笔记本电脑里找到了名叫《OfficeSpace project》的文件，其中概述了他通过操纵审计日志和禁用告警日志清理证据的计划。

>
> **[消息来源：Komonews](https://komonews.com/news/local/seattle-tech-worker-charged-for-theft-inspired-by-the-movie-office-space)**
>
>
>

>
> 老王点评：不但故事来自现实，现实也会来自故事啊。
>
>
>


回顾 2022 五个最佳 Linux 发行版

用OPENSUSE<br />
喜欢debian

用的 Ubuntu，同喜欢 Debian。

linuxmint

牛逼

用ubuntu<br />
喜欢fedora

Fedora 捆绑 podman和flatpak，默认不启用。<br />
Ubuntu 捆绑 ldx和snap，但预设启用守护服务，还强制用户用snap版Firefox。

都用过一段时间，现在主arch副win双系统，不想在用其他。

来自广西玉林的 Chrome Mobile 96.0|Android 12 用户

Manjaro道友一个没有吗

archlinux yes

manjaro是真难用，用会arch的不用manjaro，不会用arch的也不选manjaro，我觉得，arch分支过于混乱，软件包安装一大堆，manjaro默认界面也就平平无奇吧，而且受不起折腾，不香

ubuntu作为一个大linux，也搞起小主意了，我还是用社区级linux吧，什么捆绑，不存在的，要是存在，第一个喷，而且没人用，社区级linux存在的意义是为了用户的体验

manjaro的wiki甚至不能与arch的一起用，就离谱了

那肯定是archlinux了，爽爆了，装arch让你感受到看wiki学习的快乐，对新手可能有点难度，上手后非常棒！！！！

# 回顾 2022 五个最佳 Linux 发行版

>
> 在这篇文章中，我回顾了 2022 年最好的 Linux 发行版 —— 而剧透一下：它们并不都是基于 Ubuntu 的！
>
>
>

我知道：我每年都会开这样的玩笑。但是，嘿：我写的是 Ubuntu。我使用 Ubuntu。你可能希望我把所有的东西都放在 Ubuntu 上。但是 Linux 生态系统呢？它不仅仅是 Ubuntu。有很多顶级的 Linux 发行版都值得赞扬、庆祝和认可。这个名单是我给它们的一个小表扬。

也就是说，下面的内容并不代表着优越性，也不代表着重要性的排名。这只是我个人对今年的一些最好的 Linux 版本表示赞许。它是全面的吗？它也不是一个评比，所以如果你喜欢的操作系统没有出现在下面，并不是因为我认为它很糟糕！这只是我的个人观点。

随着 SEO 之神（希望）对这些冗长的介绍感到满意，让我们来看看我的 2022 年五大 Linux 发行版吧！

### 1、Ubuntu 22.04 LTS

对我来说，2022 年最好的 Linux 发行版可以说是 [Ubuntu 22.04 LTS](https://www.omgubuntu.co.uk/2022/01/ubuntu-22-04-release-features)，它早在 4 月份就已经到来。

长期支持版本总是大事，因为有数千万人使用它们。值得庆幸的是，Ubuntu 的专业开发者推出了一个值得关注的版本。

撇开 Snap 的问题不说，Jammy Jellyfish 采用了GNOME Shell 42、可配置的强调色、默认使用 Wayland、新的多任务选项、新的停靠区选项、更好的桌面图标扩展、Linux 内核 5.15、支持树莓派 4，再加上成堆的更新的应用、工具和软件包。

虽然我是一个喜欢尝试短期版本的人 —— 一直都是，可能永远都会是 —— 但大多数人都坚持使用 LTS 版本。在 Ubuntu 22.04 中，他们得到了一个真正足够好的版本，可以在其支持期内使用，而且 [没有恐惧感](https://en.wikipedia.org/wiki/Fear_of_missing_out)。

### 2、Fedora Workstation 37

[Fedora Workstation](https://getfedora.org/en/workstation/download/) 成为桌面 Linux 旗舰发行版是有原因的：它很强大、很可靠，制作无懈可击 —— 它提炼了很多人最想追求的东西：“纯粹” 的 GNOME 体验，并且按照开发者的意图，在一个强大而稳定的基础上提供。

秋季提供的 [Fedora 37 Workstation](https://fedoramagazine.org/announcing-fedora-37/) 带有 [GNOME 43](https://www.omgubuntu.co.uk/2022/08/gnome-43-new-features) —— 一个通过 <ruby> 快速设置 <rp>  （ </rp> <rt>  Quick Settings </rt> <rp>  ） </rp></ruby> 大大改善 GNOME Shell 用户体验的更新。还有一个用 GTK4/libadwaita 重建的功能更丰富的 “<ruby> 文件 <rp>  （ </rp> <rt>  Files </rt> <rp>  ） </rp></ruby>” 应用；一个改进的“<ruby> 日历 <rp>  （ </rp> <rt>  Calendar </rt> <rp>  ） </rp></ruby>”应用；一个设备安全面板；对树莓派 4 的支持；GRUB 代替了 BIOS 上的 syslinux；以及更多。

人们经常忽略 Fedora Workstation，因为作为 Linux 发行版，它相当低调，不显眼，而且没有惊喜。然而，它是一个精巧而实用的发行版，放弃了花哨的装饰，完全专注于它的性能、集成度和凝聚力。

如果你从来没有尝试过 Fedora，你就错过了，所以请试试吧！

### 3、Manjaro 22.0 “Sikaris”

很明显，[Manjaro](https://manjaro.org/) 的一个版本必须出现在这个列表中。而作为基于 Arch 的 Linux 发行版，Manjaro 是最好的 Linux 发行版之一。哦，我知道：在更广泛的 Linux 社区中，围绕着 Manjaro 有很多争论，但对我来说，这些茶杯中的风暴从未影响到该发行版本身的质量（或者应该是味道 ☕）。

12 月发布的 [Manjaro 22.0](https://www.omglinux.com/manjaro-22-available-to-download/) 版本就是这样的例子。带有 KDE Plasma 的 “主” 分支版提供了一个完美的体验。从 Shell 到包管理器，再到定制的触摸动作和应用程序，一切都很有凝聚力，经过深思熟虑，并经过精心编排。

Manjaro 22.0 不仅仅是一个发行版，它是一种体验。

Manjaro 的特定桌面 “版本” 也组织得非常好。它们从不觉得自己是 Manjaro 加 Xfce、加 GNOME，等等。每一个版本都是精心策划的，并且漂亮地整合了各自桌面的优势 —— 或者用不太华丽的术语来说：无论你选择哪一个 Manjaro 版本，你都感觉它是“主”分支版。

另外，Manjaro 社区很大，很活跃。对于任何出现的问题，我都能在 Manjaro 论坛上找到关于它的帖子（或者有人愿意为我指出解决方案的方向）。社区是发行版的重要方面。Linux 内核是大多数发行版的核心，但社区才是其生命线。

Manjaro 是一个完整包装，绝对是年度发行版。

### 4、Linux Mint 21

[Linux Mint 21.1](https://www.omgubuntu.co.uk/2022/12/linux-mint-21-1-released-available-to-download) 稍微新一些，在视觉上有些有趣的更新（比如新的小程序和更新的艺术设计），在这两个版本中，最初的 Linux Mint 21 版本在今年带来的影响更大。

作为经常被宣传的 “新手” 发行版，Linux Mint 的核心目标是提供一种轻巧和熟悉的计算体验，并保持不受影响，这一点继续得到了与 Windows 工作方式相适应的用户的共鸣。

Linux Mint 21 “Cinnamon” 是轻量级和高效的，使它成为低端硬件和旧机器上的一个很好的选择。除了易于使用之外，Linux Mint 还提供了有趣的预装软件，旨在满足大多数用户的需求，包括一些相当特别的 [自制应用程序](https://www.omgubuntu.co.uk/2022/07/install-linux-mint-apps-on-ubuntu-ppa)。

总的来说，Linux Mint 21 是想要一个可靠和易于使用的操作系统的用户的完美选择。

### 5、Ubuntu 22.10

一个列表中出现了两次 Ubuntu？这有点多，但 PipeWire 的加入意味着我应该选择 22.10。说实话，这是我作为本网站编辑的义务 —— 什么？ 是的，我自己写的合同……你为什么这么问？

不过说真的，Ubuntu 22.10 的上述 [PipeWire](https://pipewire.org/) 的加入（虽然已经逾期）意味着大多数蓝牙音频设备现在都能在 Ubuntu 上 “正常工作”。再加上 GNOME 的 “<ruby> 快速设置 <rp>  （ </rp> <rt>  Quick Settings </rt> <rp>  ） </rp></ruby>” 中的音频设备切换器，意味着 Ubuntu 22.10 在现代音频设备上的表现是正确的。

其次，GNOME 43 和一连串 libadwaita 移植的上线意味着 “Kinetic Kudu” 的出现具有真正的活力 —— 就其背景而言，它是最早尝试 GNOME 43 的方式之一 —— 这一点从早期的 Unity 时代就已经消失了。

最后，毫无疑问，最重要的、最关键的和决定性的元素是 “Kinetic Kudu” 吉祥物墙纸 —— 这是自 “Hardy Heron” 以来最好的 Ubuntu 默认墙纸，我认为。

### 荣誉提名

将我的选择限制在 5 个是必要的，否则这将是一个非常长的列表，需要列出在过去 12 个月中推出的每一个 Linux 发行版。

一些额外的呼声是：最近 [EndeavourOS](https://endeavouros.com/) 的 “Cassini” 版本对于任何想要使用可靠的滚动发行版的人来说是一个理想的跳板。最新的 [Zorin OS](https://zorin.com/) 是基于较早的 Ubuntu 基础上的，但开箱即用的特点对于刚接触 Linux 的用户来说仍然是令人振奋的。

游戏玩家、程序员和创作者都很喜欢 [Pop!\_OS 22.04](https://www.omgubuntu.co.uk/2022/04/pop-os-22-04-lts-features-download)，这是 System76 发行版的最新版本，默认搭载 GNOME Shell；轻量级 Linux 发行版 [MX Linux](https://en.wikipedia.org/wiki/MX_Linux) 也受到了很多人的喜爱，它为旧硬件注入了新的活力。

还有一个值得一提的就是 SteamOS，Valve 在 Steam Deck 掌机上预装的基于 Arch 的发行版。

### 该你了

这就是我列出的 2022 年最佳桌面 Linux 发行版。在选择它们时，我试图权衡各种功能集、变化和关键技术，并牢记其吸引力和受欢迎程度。顺便说一下，MX Linux 差一点就能占到一席之地 —— 希望能听到更多关于这个和其他发行版的消息。

总之，谁会在乎我怎么想呢？

我想听听你在过去 12 个月里对发行版的选择。所以，请在评论中写下你的看法（以及提示，比如：“老式” Disqus 主题又可以在选项中选择了，耶）。尽量保持积极的态度，把重点放在你喜欢的发行版和发展上，而不是你不喜欢的那些。


如何在 Linux 中更新 Flatpak 软件包

Summary: Snap 应用程序会自动更新，但 Flatpak 不会。

Snap 应用程序会自动更新，但 Flatpak 不会。

# 如何在 Linux 中更新 Flatpak 软件包

我相信几乎所有的 Linux 用户都会保持他们系统的更新。

但这种更新通常是针对默认的 [包管理器](https://itsfoss.com/package-manager/)。例如，[更新 Ubuntu](https://itsfoss.com/update-ubuntu/) 往往意味着更新所有的 APT 软件包。

然而，还有其他的打包格式，如 Snap 和 Flatpak。Snap 应用程序会自动更新，但 Flatpak 不会。

那么你如何更新 Flatpak 软件包呢？好吧，你可以用这个命令来更新所有已安装和可更新的 Flatpak 包：

```
flatpak update

```

这很简单。但让我再讨论一下关于更新 Flatpak 的一些事情，比如说：

* 更新所有或特定的 Flatpak 包
* 通过软件中心更新 Flatpak 包

让我们先从终端的方法开始。

### 方法 1：使用终端来更新 Flatpak 包

首先让我从最实用的方法开始，你也应该从这个方法开始。

#### 更新每一个过时的 Flatpak 包

更新现有的 Flatpak 包的整个目录是很容易的。

输入给定的命令，就可以得到过期包的列表：

```
flatpak update

```

你只需输入 `Y` 并按下回车键，就能搞定每一个更新。

#### 更新特定的 Flatpak 包

要更新特定的软件包，你需要可以更新的软件包的列表。你用的是你之前看到的那个命令。

```
flatpak update

```

从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称：

```
flatpak update package_name

```

例如，如果你想更新 Telegram，下面的命令可以完成这项工作：

```
flatpak update org.telegram.desktop

```

这就完成了。

### 方法 2：从软件中心更新 Flatpak 应用

有 Flatpak 内置支持的发行版会在软件中心提供 Flatpak 应用的更新。Fedora 和 Linux Mint 就是这样的发行版。

但如果你使用的是 Ubuntu，你就需要在 GNOME 软件中心添加 Flatpak 支持：

```
sudo apt install gnome-software-plugin-flatpak

```

完成后，你将在 Ubuntu 中拥有两个软件中心。这是因为默认的软件中心不是 GNOME 的，而是 Snap Store。

从系统菜单中打开这个新的软件中心：

进入“<ruby> 更新 <rt>  Update </rt></ruby>”页面，你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。

在这里，你可以一次更新所有的软件包，或者你可以有选择地更新什么。

### 总结

许多 Linux 桌面用户往往忘记更新 Flatpak 软件包，因为它们不包括在定期的系统更新中。

由于 Flatpak 是一个沙盒式的打包解决方案，你可能不会面临任何与过时的软件包有关的问题，但你肯定会错过新的功能和修复。

这就是为什么我建议每隔几周运行一次 Flatpak 更新命令。

我希望你喜欢这个快速的 Flatpak 小技巧。

---

via: <https://itsfoss.com/update-flatpak/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #870 C 语言已不再仅仅是一种编程语言

Summary:
❶ C 语言已不再仅仅是一种编程语言
❷ 百度以每年 10 万的价格出租的“虚拟人”
❸ 美国结束 3G 网络服务

老王点评：至少有一个好处是，不必担心艺人丑闻了。<br />
不担心艺人卖假药，推广假医院吗？

是说企业不用担心艺人丑闻而赶紧解约了。

# 硬核观察 #870 C 语言已不再仅仅是一种编程语言

### C 语言已不再仅仅是一种编程语言

有一篇论文说，《C 语言不是一种低级别的编程语言》。它不是说有其他编程语言比 C 语言更低级，C 语言经常被称赞为 “接近于裸金属”，是一种 “可移植的汇编语言”。它曾经是，但自 20 世纪 70 年代以来就不是了；现代计算机的底层计算模型与 C 所代表的模型完全不同，它是为 20 世纪 70 年代的 16 位微型计算机设计的。任何语言开发的程序都必须与操作系统对接，而操作系统几乎都是用 C 语言开发的。换句话说，即使你从来没有写过任何 C 语言的代码，你也必须处理 C 语言的变量，匹配 C 语言的数据结构和布局，用符号链接 C 语言的函数名称。

>
> **[消息来源：The Register](https://www.theregister.com/2022/03/23/c_not_a_language)**
>
>
>

>
> 老王点评：一种有趣的思考，或许是应该思考抛弃 C 语言构建的计算世界是什么样子的了。
>
>
>

### 百度以每年 10 万的价格出租的“虚拟人”

百度表示，自去年以来，它为客户做的虚拟人项目数量翻了一番，虚拟人的一些买家包括金融服务公司、地方旅游局和媒体。百度说，随着技术的改进，自去年以来，成本已经下降了约 80%。一个三维虚拟人每年将花费约为 10 万元，一个二维虚拟人则为 2 万元。预计到 2025 年，虚拟人产业总体上将保持每年 50% 的增长。

>
> **[消息来源：CNBC](https://www.cnbc.com/2023/01/02/companies-can-hire-a-virtual-person-for-about-14k-a-year-in-china.html)**
>
>
>

>
> 老王点评：至少有一个好处是，不必担心艺人丑闻了。
>
>
>

### 美国结束 3G 网络服务

Verizon 正在告诉客户，如果他们仍在使用不支持其较新网络技术的 3G CDMA 手机，“线路将被暂停而不计费，并将失去打电话、发短信或使用数据的能力”。Verizon 是美国三大无线运营商中最后一个关闭 3G 网络并将频谱重新用于更新技术的运营商。AT&T 和 T-Mobile 已于 2022 年分别关闭了其 3G 网络。事实上，Verizon 已经几次推迟了其 3G 网络的关闭。

>
> **[消息来源：Fierce Wireless](https://www.fiercewireless.com/wireless/verizon-tells-3g-customers-upgrade-they-lose-service)**
>
>
>

>
> 老王点评：3G 都要被抛弃了，感觉 3G 还是昨天。
>
>
>


Ultramarine Linux 37 版本发布

纠错，“重建”不是“重件”。

来自广西钦州的 Chrome Mobile 108.0|Android 13 用户

# Ultramarine Linux 37 版本发布

>
> Ultramarine Linux 的新版本来了。Ultramarine Linux 37 带有新的自定义软件仓库、KDE Plasma 特色版等等。
>
>
>

如果你不知道，Ultramarine Linux 是一个基于 Fedora 的发行版，提供了 Budgie、Pantheon、GNOME 等桌面环境。这个发行版通过这些令人赞叹的桌面环境给你提供了最好的 Fedora 体验。

最近，这个小项目被 [FyraLabs](https://twitter.com/UltramarineProj/status/1579991853478182914) 收购，后者是 PhotonBrowser 和 tauOS 背后的公司。而这使得 Ultramarine 项目有了必要的人力和资金来继续建设他们的发行版。

自 Fedora 37 发布以来，该团队一直致力于重建当前版本，这包括采用新的基础设施和 CI/CD 管道迁移。终于，Ultramarine Linux 37 登场了。

那么，它有什么新东西呢？

### Ultramarine Linux 37 的新功能

自从被 Fyralabs 收购后，该团队升级并迁移到用于自动化 CI/CD 构建的 GitHub Actions。Ultramarine 自己的软件仓库用于分发其精心组织的软件包（例如 Pantheon 桌面），它在这个版本中会发生变化，并转移到 FyraLabs 的基础设施上。

因此，如果你正在运行 Ultramarine 36 版本，它可能无法正常工作。你最好重新安装这个版本，因为显然没有从 36 版到 37 版的升级路径。

此外，Ultramarine 37 为 Fedora 软件包引入了一个名为 [Terra](https://terra.fyralabs.com/) 的滚动仓库，其中包括数百个 Fedora 不提供的应用程序。你可以认为它类似于 [RPM Fusion](https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/)，尽管有所不同。

要了解更多，请访问 [本页](https://terra.fyralabs.com/) 或从命令行添加以下软件仓库：

```
sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo

```

事实上，这开启了一种可能性，因为你也可以尝试在 Fedora Linux 中谨慎地使用它。如果上述软件仓库能在普通的 Fedora 安装中开箱即用，那就更棒了。

在上述变化的基础上，Ultramarine Linux 37 首次引入了 KDE Plasma 作为官方版本。KDE Plasma 特色版带来了含有 Latte Dock 和 Lightly Qt 主题的 Pop OS 风格外观。

Ultramarine Linux 37 也放弃了 Cutefish 桌面，因为它目前正处于 [混乱的开发状态，没有可见的路线图](https://www.debugpoint.com/cutefish-development-restarts/)。这是该团队的一个很好的决定，因为打包一个已经停止的项目是没有意义的。

Budgie 桌面旗舰版使用上游的 Fedora 软件包，有更多的默认应用程序。最近，Fedora Linux 删除了对 elementary OS 的 Pantheon 桌面的支持，很遗憾。感谢 Ultramarine Linux 开发者，你仍然可以体验它，因为它已经被转移到新的 Terra 软件仓库中。

你应该庆幸，Ultramarine Linux 是唯一一个的基于 Fedora 的支持令人赞叹的 Pantheon 桌面的发行版。

最后，Ultramarine Linux 37 的核心基于 [Fedora 37](https://debugpointnews.com/fedora-37-release-accouncement/)，采用 Linux 主线内核 6.0。因此，所有更新的软件包和工具链都在这个版本中。

所以，这就是关于这个版本的总结。请继续关注几天后对这个版本的官方点评。如果有兴趣，你可以在这里阅读之前的版本（36）的评论。

>
> **[Ultramarine Linux：带有 Budgie、Cutefish 和 Pantheon 桌面的终极 Fedora 特色版](https://www.debugpoint.com/ultramarine-linux-36/)**
>
>
>

### 下载和升级

由于没有升级路径，建议你对该版本进行全新安装。你可以在下面下载各个桌面环境的 ISO 文件。

>
> **[下载 Ultramarine Linux 37](https://repos.fyralabs.com/isos/ultramarine/37/)**
>
>
>

参考自：[发布公告](https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0)。

---

via: <https://debugpointnews.com/ultramarine-linux-37-release/>

作者：[arindam](https://debugpointnews.com/author/dpicubegmail-com/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


衡量你的开源软件使用情况的 8 个方法

Summary: 想知道如何为你的开源软件项目收集使用指标？考虑一下使用这些替代方案的利弊。

想知道如何为你的开源软件项目收集使用指标？考虑一下使用这些替代方案的利弊。

# 衡量你的开源软件使用情况的 8 个方法

<img src="content_image/album_202301_04_173129vmnstoxnzmjlnsxw.jpg" alt="" title="">

>
> 想知道如何为你的开源软件项目收集使用指标？考虑一下使用这些替代方案的利弊。
>
>
>

我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户量和知名度来衡量软件的重要性。我们一般都想知道有多少人使用该软件，有多少次安装，以及有多少人生活接触过它。

但简而言之，我们尚无法直接回答上述问题。

如果你想要寻找一个明确的解决方案，那很抱歉要让你失望了。有关使用指标的问题，没有人有完美的答案，至少没有准确的答案。

好消息是，有一些近似的和替代指标至少能够部分地满足你对软件使用情况了解的渴求。本文探讨了这些替代方案以及它们的优点和缺点。

### 下载量

当你浏览提供软件的网站时，你通常可以看到软件的下载次数。映入我脑海的一个例子是 Firefox ，它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字，给人的印象是 Firefox 是一个流行的浏览器，在一段时间内确实如此。

然而，个人行为会直接影响这一数字的准确性。举例而言，当一个人定期重置他们的设备时，每一次重建都会引发一次独立的下载。考虑到这一现实，需要设计一种方法从下载量中去除几十次（或许是几百次）的下载次数，因为那是一个人。

下载量不仅会高估使用量，还会低估使用量。例如，一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到 U 盘上，然后安装到数百台设备上。

下载量指标是易于收集的，你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件，还是遇到了问题而放弃了它。

对于开源项目而言，你可以考虑各种下载量指标，比如来自以下途径的下载指标：

* 项目官网
* 包管理器，比如 npm、PyPi 和 Maven
* 代码仓库，如 GitHub、GitLab、Gitee 等

你可能还对源代码的下载量感兴趣，因为下游项目更可能使用源代码形式（参见 [《如何衡量你的开源项目的影响》](https://opensource.com/article/18/5/metrics-project-success)一文）。相应的下载指标包括：

* 从代码仓库克隆的数量，比如 GitHub、GitLab 和 Gitee
* 从官网下载的归档文件（tar、zip）的数量
* 通过像 npm、PyPi 和 Maven 这样的包管理器下载的源代码数量

源代码的下载指标比二进制代码的下载指标更不可靠（虽然尚无相关研究表明如此）。试想一下，一名开发人员想要你的最新版本的源代码，并将他们的构建管道配置为每次构建都克隆你的仓库。再想象一下，一个自动构建过程失败了，它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了，下载来源是由这些缓存所提供的。

>
> **[相关阅读：跟踪你的开源社区的 5 个指标](https://opensource.com/article/22/11/community-metrics)**
>
>
>

总而言之，下载量指标是用于提供当前使用情况和探测趋势的很好的指征。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言，如果你为你的软件做了广告并在活动期间得到了更高的下载量，可以合理地假定广告推动了更多人下载该软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中？什么操作系统或者特定语言的版本更加流行？这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。

### 议题

作为一个开源项目，你可能有一个议题追踪器。当某个人提出一个议题时一般有两个目标，报告一个漏洞或者请求增加一项功能。提议者很可能已经使用过你的软件了。作为一名用户，他可能发现了一个漏洞或者发现了对一个新功能的需求。

很明显，大多数用户不会执行额外的步骤来提交议题。提议者是我们的忠实用户，我们对他们表示感谢。此外，通过提出议题，他们已经成为了非代码贡献者，他们也有希望成为代码贡献者。经验法则是大约每 10000 名用户中，可能有 100 名提议者，以及 1 名代码贡献者。当然取决于用户类型，上述比例可能有出入。

回到指标问题，你可以将提议者数量作为评估使用量的下界。相关的指标包括：

* 提议者数量
* 活跃提议者的数量（在过去 6 个月内提出议题的提议者）
* 同时有代码贡献的提议者的数量
* 尚未解决的议题的数量
* 对议题发布的评论数量

### 邮件列表、论坛和问答网站

很多开源项目都拥有用户邮件列表、论坛，并且出现在类似 Stack Overflow 的问答网站上。与提问者一样，在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动，包括：

* 用户邮件列表的订阅量
* 论坛用户的数量
* 问题的数量
* 答案的数量
* 发布信息的数量

### 上报功能

为了获得精确的用户数量，一个方案是让软件在使用时上报信息。

这是令人毛骨悚然的。想象一下，系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接，你不仅无法再收到软件报告（被防火墙拦截了），恐怕连你的软件也可能在未来被禁止使用。

负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用遥测上，你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施，这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见：我一般不允许这种使用信息的分享；但对于一些软件，因为希望开发人员在长期内将软件优化得更好，我愿意这样做。

### 星标与复刻

星标与复刻是如 GitHub、GitLab、Gitee 等社交化编程平台的功能。这些平台上的用户可以给一个项目加星标。为什么他们要给项目加星标呢？GitHub 的文档作出了解释：你可以给一个仓库和主题加星标，以跟踪感兴趣的项目，和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样，并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时，项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。

在社交化编程平台上的<ruby> 复刻 <rt>  Fork </rt></ruby>是将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改，并将修改通过<ruby> 拉取请求 <rt>  pull request </rt></ruby>（PR）的方式提交审核。复刻比星标更能反映软件社区的规模。开发者也可能为了保存一份代码副本而克隆一个项目，以便在原始仓库消失后他们仍能访问代码。因为复刻功能在代码贡献工作流中的应用，复刻量是衡量开发社区的良好指标。复刻量通常也不反映非开发人员的使用，因为非开发人员一般不创建复刻。

### 社交媒体

包括 Facebook、Instagram、LinkIn、Reddit、Twtter 等社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略，开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径，开源项目可以分享项目新闻、更新，指出贡献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。

我在犹豫是否建议关注以下指标，因为它与软件的真实使用量没有清晰的联系，并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动而关注它，但并不实际使用它。然而与之前已经讨论过的指标一样，能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括：

* 关注者与订阅者的数量
* 消息的数量
* 活跃的消息作者的数量
* 喜欢、分享、回复以及其他交互的数量

### 网站分析与文档

网站流量也是一个有用的指标。这一指标主要受到你的服务范围以及市场营销活动影响，而不是用户量。然而，我们还有一张王牌：我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大致随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的普遍兴趣，并进一步通过观察文档的访问者来观察用户风向。这些指标包括：

* 网站访问者数量
* 文档访问者的数量
* 访问者在你的网站与文档上所花的时间

### 活动

活动的指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要想要在你的活动中发言？有多少人出席你的活动？不论是在线下活动还是线上活动这可能都很有趣。当然，你如何推广你的活动在很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略，你可以通过演讲者提交的材料与参会者注册的增加来表征软件受欢迎程度与用户群的增加。

你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论，你可以衡量有多少人出席主要关注你的项目的会议。像 [FOSDEM](https://fosdem.org/) 这样的活动，一些讨论特别聚焦于开源项目的更新与发布，会议室中都挤满了人（像 FOSDEM 的所有会议一样）。

你可以考虑如下指标:

* 以你的项目为中心的活动的出席人数
* 提交到以你的项目为中心的活动的演讲数量
* 以你的项目为中心的演讲的出席人数

### 关于估算开源软件使用的结论

正如我们已经如上展现的，有很多指标可以反映软件使用的趋势，没有一个指标是完美的。在大多数情况下，这些指标可能被个人行为、系统设计和噪音所严重影响。因此，考虑到每一个指标的相对不确定性，我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标，你应当能够探测到用户行为与软件使用的趋势。如果你有办法在多个具有共性的开源项目中比较同一组指标，例如类似的功能、强大的相互依赖性、在同一基础设施上托管，以及其他特征，你就可以提升你对用户行为基线的感知。

需要注意的是，在这篇概述中，我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包，如果我们不提及作为软件依赖链的一部分而被间接使用的严重影响，这就是我们的疏忽。因此，我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。

最后，作为数据与指标的使用者，我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最好的做法是经常一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息，这有助于其他人解释你的结果。

感谢 [CHAOSS](https://chaoss.community) 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话，上述对话激发这篇博文的想法。我们还要感谢 CHAOSS 社区的成员审阅并帮助优化本文。

---

via: <https://opensource.com/article/22/12/open-source-usage-metrics>

作者：[Georg Link](https://opensource.com/users/georglink) 选题：[lkxed](https://github.com/lkxed) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


使用人性化的 Linux 防火墙 CFW 阻止 DDOS 攻击

Summary: CFW（Cyber Firewall）是一个人性化的 Linux 防火墙。

和fail2ban以及它的继任者crowdsec相比有什么优势？

差点看成GFW

# 使用人性化的 Linux 防火墙 CFW 阻止 DDOS 攻击

>
> CFW（Cyber Firewall）是一个人性化的 Linux 防火墙。
>
>
>

<img src="content_image/album_202301_04_180411e6sc9csem77kz3kl.jpg" alt="" title="">

### 概括

CFW（Cyber Firewall）是一个人性化的 Linux 防火墙。它旨在协助阻止拒绝服务攻击（DDoS），同时能控制 Linux 系统端口的开关。CFW 基于 Linux 原生基础设施运行，拥有良好的软件兼容性。

该软件基于 iptables 和 ipset，使用 Python 开发，使用时建议关闭发行版自带的防火墙（如 firewalld、ufw）避免冲突。

通过 CFW，你将能够：

* 通过自定义的规则自动封禁互联网中的恶意 IP，以防止拒绝服务攻击
* 保护 Linux 的所有端口遭受 DDoS 攻击，而不仅仅是 Web 应用
* 获得良好的软件兼容性，原生支持 Nginx、Caddy 等服务器
* 支持配合 CDN 使用，使用 CDN 时请将 CDN 的 IP 段设置为 CFW 白名单
* 控制开启或关闭 Linux 系统的 TCP/UDP 端口
* 获得友好的命令行交互式体验

### 背景

Web 应用程序运行在复杂的互联网中，随时可能面临恶意攻击，导致拒绝服务现象。为了封禁这些不友好的 IP，CFW 正是为此而诞生。

CFW 的灵感最初来自宝塔面板的 Nginx 防火墙。然而，使用 Nginx 防火墙的过程中遇到诸多不顺。该防火墙仅针对 Web 应用（通常是 80 和 443 端口）防御 CC 攻击，无法保护 Linux 服务器的其他端口。同时，该防火墙需要按月付费，并始终捆绑宝塔生态（最新的宝塔面板甚至需要登录绑定手机实名制的账号），从而限制了软件自由度。我们想在纯净的 Linux 中运行防火墙，并对所有端口生效，于是自己开发了一个。

由于 CFW 基于 iptables 和 ipset，不免会与发行版自带的防火墙（如 firewalld、ufw）冲突，我们增加了 CFW 对端口开关的控制。

### 实现

CFW 通过 `ss -Hntu | awk '{print $5,$6}'` 命令获取当前服务器的所有连接。客户端的请求若超过设定并发数，该 IP 将被 iptables 封禁，并存储在 ipset 数据结构中。

CFW 通过调用 `iptables` 命令实现 Linux 端口的开关。

### 安装

请先确保系统拥有以下依赖。

对于 Debian、Ubuntu 等：

```
sudo apt install -y curl ipset python3 git net-tools

```

对于 CentOS 等：

```
sudo yum install -y curl ipset python3 git net-tools

```

安装好系统依赖后，输入以下命令安装 CFW：

```
sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/install.py | python3

```

你也可以下载该脚本阅读，以了解该脚本所进行的工作后再执行上述命令。

完成安装后，使用 `source ~/.bashrc` 激活 CFW 的环境变量。（或者新打开一个 shell 环境，自动激活环境变量。）

在 Linux 终端输入 `systemctl status cfw`，显示 `active (running)` 字样说明 CFW 已成功运行，同时会在服务器重启时自动运行。

### 卸载

```
sudo curl https://raw.githubusercontent.com/Cyberbolt/cfw/main/uninstall.py | python3

```

### 配置

配置文件在 `/etc/cfw/config.yaml` 中，修改配置文件后运行 `systemctl restart cfw` 即可生效。

配置文件参数说明：

```
# CFW 运行端口
port: 6680
# CFW 检测连接的频率，单位：秒。此处默认 5 秒一次。
frequency: 5
# 允许每个 IP 连接的最大并发数，超过将被 CFW 封禁。
max_num: 100
# 解封 IP 的时间。此处默认 IP 被封禁后 600 秒将自动解封。若此处值为 0，则永久封禁。
unblock_time: 600
# 数据备份时间，单位：秒。
backup_time: 60

# IPv4 白名单路径。写在文本文件中，一行一个 IP，支持子网掩码。）本地地址、内网地址默认在该文件中）
whitelist: /etc/cfw/ip_list/whitelist.txt
# IPv4 黑名单路径。写在文本文件中，一行一个 IP，支持子网掩码。
blacklist: /etc/cfw/ip_list/blacklist.txt

# IPv6 白名单路径。写在文本文件中，一行一个 IP。
whitelist6: /etc/cfw/ip_list/whitelist6.txt
# IPv6 黑名单路径。写在文本文件中，一行一个 IP。
blacklist6: /etc/cfw/ip_list/blacklist6.txt

# 日志文件的路径
log_file_path: /etc/cfw/log/log.csv
# 日志文件的最大行数。（达到最大行数后将自动滚动。若此处值为 0，则不限制最大行数）
log_max_lines: 10000000

```

### 命令

命令中 `[]` 表示变量。

#### 运行

* 停止 CFW：`systemctl stop cfw`
* 启动 CFW：`systemctl start cfw`
* 重启 CFW：`systemctl restart cfw`

#### IP 黑名单管理

* 手动封禁单个 IPv4 地址：`cfw block [ip]`
* 手动解封单个 IPv4 地址：`cfw unblock [ip]`
* 查看 IPv4 黑名单：`cfw blacklist`
* 手动封禁单个 IPv6 地址：`cfw block6 [ip]`
* 手动解封单个 IPv6 地址：`cfw unblock6 [ip]`
* 查看 IPv6 黑名单：`cfw blacklist6`

#### Linux 端口操作

* 放行 IPv4 端口：`cfw allow [port]`
* 阻止 IPv4 端口：`cfw deny [port]`
* 单独放行 IPv4 TCP 端口：`cfw allow [port]/tcp`，示例如 `cfw allow 69.162.81.155/tcp`
* 单独阻止 IPv4 TCP 端口：`cfw deny [port]/tcp`，示例如 `cfw deny 69.162.81.155/tcp`
* IPv4 UDP 端口操作同理
* 查看所有放行的 IPv4 端口：`cfw status`
* 放行 IPv6 端口：`cfw allow6 [port]`
* 阻止 IPv6 端口：`cfw deny6 [port]`
* 单独放行 IPv6 TCP 端口：`cfw allow6 [port]/tcp`，示例如 `cfw allow6 69.162.81.155/tcp`
* 单独阻止 IPv6 TCP 端口：`cfw deny6 [port]/tcp`，示例如 `cfw deny6 69.162.81.155/tcp`
* IPv6 UDP 端口操作同理
* 查看所有放行的 IPv6 端口：`cfw status6`

#### 日志操作

动态查询日志 `cfw log [num]`。`[num]` 为查询日志的条数，查询结果将按时间倒序。

### 相关链接

* GitHub: <https://github.com/Cyberbolt/cfw>
* 电光笔记: <https://www.cyberlight.xyz/>
* Potato Blog: <https://www.liuya.love/>

### 更多

如果你在使用中遇到任何问题，欢迎在 <https://github.com/Cyberbolt/cfw/issues> 处留言。有了你的帮助，CFW 才能日渐壮大。

### 总结

CFW 可以防止一定程度的 DDoS 攻击，同时能控制开启或关闭 Linux 系统的 TCP/UDP 端口，很好地帮助我们解决恶意 IP 入侵的问题。但是不要做不切实际的想象，认为 CFW 可以抵御大型 DDoS 攻击。DDoS 攻击的规模往往与成本是正相关的，必要时提升网络带宽才能解决问题的根本。

---

作者简介：

Cyberbolt：一个自由的 Python 开发者。

---

作者：[Cyberbolt](https://www.zhihu.com/people/cyberbolt) 编辑：[wxy](https://github.com/wxy)

本文由贡献者投稿至 [Linux 中国公开投稿计划](https://github.com/LCTT/Articles/)，采用 [CC-BY-SA 协议](https://creativecommons.org/licenses/by-sa/4.0/deed.zh) 发布，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #871 谷歌希望 RISC-V 成为 “一级” 安卓架构

Summary:
❶ 谷歌希望 RISC-V 成为 “一级” 安卓架构
❷ 智能电视机的隐藏获利方式
❸ Debian 移除 Python 2

python27良心了，blender就很垃圾，一个版本一个文件，老旧互不兼容

# 硬核观察 #871 谷歌希望 RISC-V 成为 “一级” 安卓架构

### 谷歌希望 RISC-V 成为 “一级” 安卓架构

谷歌在 RISC-V 峰会上说，希望 RISC-V 被看作安卓的 “一级平台”，这将使它与 Arm 并驾齐驱。在 RISC-V 上实现优化的安卓构建需要大量的工作，可能需要“几年”才能实现。AOSP 早在去年 9 月就开始发布了官方的 RISC-V 补丁，但目前你最多只能得到一个命令行。谷歌承诺，在 2023 年初提供初始的模拟器支持，并在第一季度为 Java 工作负载提供安卓运行时（ART）支持。一旦谷歌真的让安卓系统在 RISC-V 上运行起来，安卓应用生态系统的很大一部分都会随之而来。

>
> **[消息来源：Ars Technica](https://arstechnica.com/gadgets/2023/01/google-announces-official-android-support-for-risc-v/)**
>
>
>

>
> 老王点评：RISC-V 俨然已经成为“全村人”的希望。
>
>
>

### 智能电视机的隐藏获利方式

智能电视机比其它电子产品便宜的主要原因可能是它能从它收集的数据中获利。这些智能电视都能播放在线服务的内容，能安装各种应用，它们免费为我们服务，代价是对我们进行监控，然后将收集的数据出售给广告商。智能电视收集了用户的观影内容、时长等信息，然后打包出售。电视机厂商将这一模式称为购买后货币化，意味着它们可以以接近成本的价格出售硬件，通过分享客户的观影数据长期获利。

>
> **[消息来源：The Atlantic](https://www.theatlantic.com/technology/archive/2023/01/smart-tvs-sony-lg-cheap/672614/)**
>
>
>

>
> 老王点评：就如一句老话，免费服务的代价就是你自己。
>
>
>

### Debian 移除 Python 2

Debian 从 FTP 服务器上移除了 Python 2 软件包。Python 2 已经在 2020 年结束支持，Python 开发者在 2020 年 4 月发布了 Python 2.7 分支的最后一个版本：Python 2.7.18。这标志着大部分 Linux 发行版开始着手移除 Python 2 包。

>
> **[消息来源：Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027108)**
>
>
>

>
> 老王点评：想要淘汰 Python 2 可真不容易啊。
>
>
>


BioArchLinux: Arch Linux 生物信息社区

# BioArchLinux: Arch Linux 生物信息社区

>
> BioArchLinux 是生物工作者的 Arch Linux 社区，它包含了一个生物信息学软件的 Arch Linux 仓库。这个仓库易于贡献，用户友好，可以帮助大家在 Arch Linux 及其衍生的发行版、Windows 以及 Docker 下面快速安装好生物信息软件。
>
>
>

### 为什么会有 BioArchLinux 项目？

以目前科学相关的发行版为例，它们大多基于 Ubuntu ，比如 Bio-Linux 以及 Poseidon Linux ；也有基于 CentOS 或者 RHEL 的，比如 Scientific Linux 。但是最终这些发行版都慢慢不再活跃，Scientific Linux 发出的各种 [公告](https://linux.web.cern.ch/) 也是表现出身不由己。

从 Scientific Linux 的经历可以看出，如果将各种软件包打包在一个依赖商业公司或者由商业公司主导的发行版上，发展方向就会变得不可知，最初的目标和规划自然不能得以实现。最初 Scientific Linux 依赖付费的 Linux 发行版 RHEL ，后期依赖商业公司的免费社群发行版 CentOS（CentOS 8 以及之前是一个稳定的发行版），红帽将 CentOS 8 的生命周期草草结束，进而支持滚动发行版 CentOS Stream（现在是 RHEL 的上游发行版），因此 Scientific Linux 不得不变成基于 CentOS Stream 的发行版。只能说，Scientific Linux 一开始就选择错了。

再从 Bio-Linux 的角度来看待，Bio-Linux 本质上是把各类软件包打包到 Ubuntu 内之后形成的一个发行版。这必然有一个周期，在这个一年或者两年的周期内，各类软件总会有更新的，而 Bio-Linux 不考虑这个问题，所以会出现使用过时的版本来分析数据的情况，很明显这不利于研究。而且， Bio-Linux 8 自 2014 年发布了基于 Ubuntu 14.04 LTS 的发行版之后，就没在发行新的版本了，而目前 Ubuntu 22.04 LTS 都已经出来了。Bio-Linux 的 [软件包](http://environmentalomics.org/bio-linux-software-list/) 除了老旧，还特别冗杂，我需要的包他们不全有，我不需要的包他们有很多，这毫无疑问增加了我 PC 的负担。

Poseidon Linux 也有着类似的问题。这种发布发行版的方式滞后且需要重装系统，特别不方便。实在不如直接经营一个各类包的仓库，可以快速更新，不必频繁发布 ISO 文件又可以将软件更新到最新版。

所以，如果你希望想长期使用，那么就建议使用非商业公司关联的 Linux 系统；如果你需要参与 Linux 的发展，那么你就要寻找一个方便使用第三方仓库/官方仓库、且非商业公司关联的发行版。这里我们就选择了 Arch Linux。

同时，我们也不希望只是一群为 AUR 做贡献人，因为曾经我自己的设想是这个团体可以像 RedHat 那些发行版之类的 SIG，但是 SIG 的运作模式是为官方仓库贡献包。而 AUR 只是存储一个脚本，并不是一个预先编译好的包。这样带来的麻烦有很多，首先是 AUR 不能和官方仓库的包有冲突，但是这对于生物信息的目标用户群体是个麻烦事情，比如我要找 `picard`，但是 `community` 仓库里的 `picard` 已经是别的同名软件了，但是它只是在 `community` 仓库里，我不会用到它，因此我要几经周折地找到 AUR 里的 `picard-tools`。AUR 另外一个不方便的点在于软件包的来源不一定不被封锁，曾经我向我师姐十分热情的推销 Arch 系的发行版，她也觉得蛮好用，但当她想从 AUR 里下载软件时候，互联网限制了她的想象。但是，当我们组成了一个有镜像源的仓库的时候，我们就不需要担心这个问题了，来自互联网封锁国家的人们就无需忍受缓慢的互联网速度和法律风险访问他们所需要的软件了。

### 如何使用 BioArchLinux？

首先，BioArchLinux 本身的属性决定了用户可以在哪些地方使用它。 BioArchLinux 是一个生物工作者的 Arch Linux 社区，包含了一个生物学软件的 Arch Linux 存储库、可以编辑的 wiki 以及 Matrix 聊天频道。

#### 在 Arch Linux 中使用 BioArchLinux

正如它本身的属性所定义，它可以用于 Arch Linux 及其衍生发行版（不包括 Manjaro stable & testing），从 BioArchLinux 安装软件很容易。只需几个简单的命令即可安装所需的软件包。

```
# echo -e "[bioarchlinux]\nServer = https://repo.bioarchlinux.org/\$arch" >> /etc/pacman.conf
# pacman-key --recv-keys B1F96021DB62254D
# pacman-key --finger B1F96021DB62254D
# pacman-key --lsign-key B1F96021DB62254D
# pacman -Syy
# pacman -S pkg_name

```

在最初接触 Linux 时候，我使用 Ubuntu 。当我想要安装生信软件的时候，我曾经一下午都在处理循环依赖的问题。这或许是某些发行版的特性，而且由于我是图形化安装的，我其实对未来怎么迁移系统并没有足够的把握。对于小白来说，好不容易装好的环境想要迁移很难避免重复性的工作。Arch Linux 的特性避免了这里很多问题，从打包的粒度考虑，循环依赖可以说是很罕见的了。另外就是当你需要构建一个包，你只需要会写 Shell 脚本再看一看维基，事情会容易很多。相比于 Debian 等发行版，这样其实会有利于你迁移你安装的软件。

当然，和其他软件仓库不同的是，BioArchLinux 仓库在可能的情况下，在每个包描述中提供了一个 DOI。 这使用户能够轻松地了解有关每个包的用途和方法的更多信息，并在准备出版物时快速识别适当的引用。

```
$ pacman -Ss doi_number
$ pacman -Qi pkg_name

```

#### 在 WSL 中使用 BioArchLinux

另外，当 Windows 和 macOS 用户需要使用 Linux 环境来运行生物信息软件的时候，也可以轻松使用 BioArchLinux。因为 BioArchLinux 同样提供 WSL 以及 Docker 镜像。

对于 Windows 用户优先推荐 WSL，因为 Docker 在 Windows 下依赖 WSL。只需要在任意一个镜像站点的 `wsl` 文件夹下找到 `tar` 文件即可。解压它，在安装了 `wsl` 的前提下双击 `BioArch.exe` 文件，就可以开始成功安装，安装好后键入下述命令即可进入：

```
wsl -d BioArch

```

在使用前需要做一些初始化的任务，比如初始化 WSL，这里的镜像地址可以更改为你喜欢的镜像，镜像列表见 [mirrorlist 仓库](https://github.com/BioArchLinux/mirror) 里的 `mirrorlist.bio`。

```
# echo 'Server = https://mirrors.sdu.edu.cn/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist
# echo 'Server = https://mirrors.sdu.edu.cn/bioarchlinux/$arch' > /etc/pacman.d/mirrorlist.bio
# pacman -Syu

```

此时，你就可以使用该 WSL 了。

#### 在 Docker 中使用 BioArchLinux

至于 Docker 的使用和 WSL 类似，只不过在安装完 Docker 后使用如下命令进入。进入后依然需要使用 WSL 初始化的命令初始 Docker 容器。

```
# docker pull bioarchlinux/bioarchlinux
# docker run -it --privileged --name container_name --restart=always bioarchlinux/bioarchlinux /bin/bash

```

### BioArchLinux 如何运作？

BioArchLinux 存储库由几个开源软件包维护。 主要工具是一个名为 `lilac` 的 python 应用程序。

最基本的步骤是按照 Arch Linux 和 `lilac.yaml` 的标准编写脚本。我们编写一个 `PKGBUILD` shell 脚本和一个 YAML 文件（以及可选的 Python 脚本），并将它们放在 Git 存储库的一个文件夹中。

`nvchecker` 读取 `lilac.yaml`，获取上游网站的信息，可以查看最新版本。如果 `nvchecker` 无法从上游网站找到包版本，它会向管理员发送电子邮件报告问题。

`nvchecker` 的信息发送给 `lilac`，由 `lilac` 判断包是否需要升级。如果软件包需要升级，`lilac` 会将软件包发送到 Arch Linux 打包工具 `devtools`。

`devtools` 为软件包提供了一个干净的环境，只有 `PKGBUILD` shell 脚本中的依赖项列表允许构建。这可以避免在使用过程中丢失依赖项。如果包构建失败，则会自动向包维护者发送警告电子邮件。如果包构建成功，`archrepo2` 会将 Arch Linux 包放入特定路径，并生成一个新的数据库文件，形成一个全新的包仓库。如果 `lilac.yaml` 中含有维护 AUR 的指令，包更新也将退送给 AUR。

整个构建过程被记录为日志文件，可以使用 Rust 应用程序 `bioarchlinux-packages` 读取，并显示在日志网站上。

我们的维基网站是基于 MediaWiki 构建的。所有人都可以自由地为本网站贡献关于生物信息学软件的使用以及生物信息学概念和术语。

### BioArchLinux 展望

上面讲了那么多的好，其实 BioArchLinux 也有很多的不足。

先从仓库说起，我们虽然在短短一年内有了约 4.2 k 的软件包，维护了约 4.7% AUR 包，但是，我们相比于 Debian Med 以及 bioconda 都有很大的数量上的差距，急需更多的维护者参与进来，并且需要不断提升打包的质量。

除此之外，比较急切的是我们国内镜像源目前仅仅有几家高校，南京大学、西安交通大学、山东大学以及南京邮电大学，我们希望更多的镜像站能够添加我们。另外因为计算机资源的问题，我们也没有 archive 网站，这给回滚造成了一定程度的困难。

其余就是扩大仓库的受众和加强社区的维护。虽然我们有了 WSL 还有 Dokcer，但是有些人很喜欢在虚拟机里运行，我们却提供不了 ISO 文件，也需要相关的维护人员。我们也没有专门的维基管理人员，有段时间因为没有限制用户注册，网站有被垃圾信息灌爆。

甚至我们在网站的搭建上面还是有欠缺，比如没有像 Arch Linux 那样的搜包界面，这需要更多开发人员的参与。除此之外，如何以非 root 用户的角色使用仓库仍然是一个很大的课题。

我们十分欢迎更多的人参与到我们的社区中来，一起做一些疯狂且美好的事情，不管再多困难，我相信，这个那么 FFF（community friendly, user friendly, earth friendly）的项目会长命百岁。（注：community friendly 帮助维护 Arch Linux community 的 AUR 软件包；user friendly 易于使用、以用户为中心；earth friendly 减少大家编译的次数，尽可能减少计算机资源的消耗。）

### 致谢

非常感谢 xTom、Mick Elliot 以及 Bipin Kumar 对这个项目的资助，也十分感谢一起为仓库工作的所有 BioArchLinux 成员。另外特别感谢 Arch Linux CN 依云 以及 imlonghao，没了他们维护的软件，BioArchLinux 不可能那么顺利的运作。同时也感谢南京大学、西安交通大学、山东大学以及南京邮电大学和其他为 BioArchLinux 提供镜像的机构和个人。最后，感谢之前 Bioinformatics Open Source Conference（BOSC）为参会免除会议费用。

---

作者简介：

MRes Evolutionary Biology, International Society for Computational Biology 会员

---

作者：[Guoyi](https://malacology.net) 编辑：[wxy](https://github.com/wxy)

本文由贡献者投稿至 [Linux 中国公开投稿计划](https://github.com/LCTT/Articles/)，采用 [CC-BY-SA 协议](https://creativecommons.org/licenses/by-sa/4.0/deed.zh) 发布，[Linux中国](https://linux.cn/) 荣誉推出


如何修复 Linux 中扬声器发出的嗡嗡声

user@raspberrypi: ~$ cat /proc/asound/modules

0 snd_bcm2835

电流声依旧...

是不是部分机型有这个问题？我怎么从来没有遇到过呢？还是我听觉不够灵敏？

have fun

解决了，太感谢您了！！！！！！！！

# 如何修复 Linux 中扬声器发出的嗡嗡声

我使用笔记本电脑很长时间了，但最近才切换到台式机上，以便进行远程工作。

我注意到我的扬声器不断发出嗡嗡声。这很烦人，让我头疼。我开始着手解决这个问题。了解问题的根本原因非常有趣。

我将分享我在 Linux 中修复扬声器嗡嗡声的经验。我发现它可以在同一硬件上对 Ubuntu、Debian 和 Pop OS 都有效。

需要考虑的一件事是，如果本指南不适合你，你可能遇到了严重的硬件问题。对于大多数用户来说，给定的方案应该可以解决问题。

**在尝试修复之前**

我试图让事情变得容易安全地遵循。你可以尝试临时修复，如果有效，则将更改永久化。但是，最好使用 Timeshift 制作系统快照。如果你在出现故障时很容易惊慌失措，你可以将系统恢复到之前的状态。

另外，检查你的声卡。在我的例子中，它是 `snd_hda_intel`。对于 USB 卡，它可以是 `snd_usb_audio`。你必须根据你的声卡更改命令。

```
cat /proc/asound/modules

```

### Linux 中扬声器发出嗡嗡声的原因

梳理了无数的论坛帖子和网站后，我了解了问题的根本原因。这是因为扬声器中的电容放电。它可以通过关闭声卡的省电设置来解决。

通过关闭省电，你允许系统在这些电容放电时为其充电。这类似于在一直充电时使用电话。

你可以使用给定的命令检查你的系统是否启用了声卡的省电设置：

```
cat /sys/module/snd_hda_intel/parameters/power_save

```

如果你像我一样输出是 `1`，那么省电功能已打开。因此，让我们看一下方案。

不用担心。这不会显著影响你的电池百分比，因为所示方法仅适用于声卡。

### 尝试修复嗡嗡声问题（临时）

我之所以包括临时方法是为了确定嗡嗡声是由于电容放电引起的，还是存在严重的硬件问题。

如果此临时方案有效，你可以继续使用永久方案。

第一步是切换到 root 用户：

```
sudo su

```

然后，执行给定的命令，它应该停止嗡嗡声直到下次启动：

```
echo 0 > /sys/module/snd_hda_intel/parameters/power_save

```

如果你使用的是 **USB 声卡**，则必须将 `snd_hda_intel` 替换为 `snd_usb_audio`，如下所示：

```
echo 0 > /sys/module/snd_usb_audio/parameters/power_save

```

如果上述技巧解决了问题，那么你必须使变更永久化。否则，下次重启系统时更改将丢失。

### 修复嗡嗡声问题（永久）

在这里，我将对内核参数进行更改。

将你的工作目录更改为 `/etc/modprobe.d`：

```
cd /etc/modprobe.d

```

现在，创建一个名为 `audio_disable_powersave.conf` 的新文件，并使用给定命令使用 nano 文本编辑器打开：

```
sudo nano audio_disable_powersave.conf

```

并在该文件中放入以下行以永久关闭声卡中的省电设置：

```
options snd_hda_intel power_save=0

```

对于 **USB 声卡**，你需要使用 `snd_usb_audio`：

```
options snd_usb_audio power_save=0

```

现在，[保存更改并退出 Nano 文本编辑器](https://linuxhandbook.com/nano-save-exit/) 并按 `Ctrl+X` 键。重启你的系统，你就可以享受无噪音的工作空间。

### 总结

本指南解释了嗡嗡声的原因以及如何直接解决该问题。

同样，除了电容放电之外，你可能还有其他问题，因此你应该始终尝试临时方法。

让我知道你是否能够以这种方式解决 Linux 中扬声器发出的嗡嗡声。

---

via: <https://itsfoss.com/buzzing-noise-speaker-linux>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #872 2048 位 RSA 密码可能被现有量子计算机破解

Summary:
❶ 2048 位 RSA 密码可能被现有量子计算机破解
❷ 微软考虑在必应搜索引擎中加入 ChatGPT
❸ 纽约禁止学生和教师使用 ChatGPT

天天神吹chat ppt，连个官网都没有。

我在美国上公立中学，所有和 AI 沾边的网站都被禁了 :(

来自美国的 Chrome 102.0|Chrome OS 14695.166 用户

# 硬核观察 #872 2048 位 RSA 密码可能被现有量子计算机破解

### 2048 位 RSA 密码可能被现有量子计算机破解

Peter Shor 早在上世纪 90 年代就发现用量子计算机进行大数的因式分解是很容易的，但所需的量子比特数需要多达数百万。而今天最先进的量子计算机也只有数百个量子比特。清华和浙大等中国研究人员发表了预印本论文，报告破解 2048 位 RSA 密钥所需的量子比特数可以大幅减少到 372 个量子比特。但中国尚无如此规模的量子计算机，因此尚无法验证。他们曾在一台 10 量子比特的量子计算机上对 48 位二进制数字验证了他们的算法。Peter Shor 表示，该论文没有解决运算效率问题，可能仍然需要“数百万年”的计算。

>
> **[消息来源：金融时报](https://www.ft.com/content/b15680c0-cf31-448d-9eb6-b30426c29b8b)**
>
>
>

>
> 老王点评：虽然很可能是错误的，但是这样的量子竞赛下，或许不用十年，现代计算的加密基石就要被撬动了。
>
>
>

### 微软考虑在必应搜索引擎中加入 ChatGPT

微软可能在 3 月底前推出这项新功能，一开始可能只提供给少部分用户。据知情人士的消息微软已经测试了 ChatGPT 几个月时间。微软此前向 OpenAI 投资了 10 亿美元。ChatGPT 被认为有可能部分取代搜索引擎。但它回答问题的准确性仍然备受质疑，OpenAI CEO 上个月表示，在任何重要的问题上依赖 ChatGPT 是错误的。

>
> **[消息来源：The Register](https://www.theregister.com/2023/01/04/microsoft_openai_chatgpt_bing/)**
>
>
>

>
> 老王点评：问题就在这里，ChatGPT 的回答有时候会让你分辨不出来真假。
>
>
>

### 纽约禁止学生和教师使用 ChatGPT

纽约市教育部门出于对 “安全和准确性” 的考虑，已经禁止使用 ChatGPT，该禁令将适用于属于教育部门的设备和互联网网络。他们称，“虽然该工具可能能够提供快速和简单的问题答案，但它并不能培养批判性思维和解决问题的能力，而这些能力对学术和终身成功至关重要。”一些教师对该技术使学生能够在作业中作弊感到 “近乎恐慌”，他们无法可靠地辨别机器人的作品和真实的写作。

>
> **[消息来源：Slashdot](https://news.slashdot.org/story/23/01/04/2320230/nyc-bans-students-and-teachers-from-using-chatgpt)**
>
>
>

>
> 老王点评：一边是 ChatGPT 这样的 AI 工具越来越发挥作用，另外一边却是各种不适应的恐慌。
>
>
>


Fedora 38 将发布 Budgie 和 Sway 官方定制版

Summary: 两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。

两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。

# Fedora 38 将发布 Budgie 和 Sway 官方定制版

>
> 两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。
>
>
>

<img src="content_image/album_202301_06_114440c4dgjjqf4oi97g7g.png" alt="" title="">

我们期待着它们在 Fedora 37 时出现，但在 Fedora 38 中终于来了！

早在 2022 年 5 月，Budgie 项目的主要开发者 Joshua Strobl [宣布](https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/)，Budgie 已被提交到 Fedora 中。

遗憾的是，在那之后不久，我们并没有看到任何官方 [Fedora 定制版](https://spins.fedoraproject.org) 发布的迹象，尽管它在 [Fedora 37 发布](https://news.itsfoss.com/fedora-37-release/) 期间进入了 Fedora 软件库。

**但现在有了。**

随着 Fedora 38 的发布，看起来我们会得到一个 [Budgie](https://blog.buddiesofbudgie.org) 的官方定制版，同时还有一个 [Sway](https://swaywm.org) 窗口管理器的定制版。

### Fedora Budgie 和 Sway

在 [最近的一次会议](https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/) 上，Fedora 工程和指导委员会（FESCo）投票决定将 Budgie 和 Sway 窗口管理器的 Fedora 官方定制版纳入 Fedora 38 的发布中。

根据 Budgie 和 Sway 的初步修改建议，我们可以期待很多变化。

对于 Budgie：

* Fedora 38 将提供 Budgie 桌面环境，包含一套核心应用程序，如用于更新/软件包管理的 GNOME “软件”应用、一个文本编辑器、一个网页浏览器和一个终端。
* 它还将使用 [Materia GTK](https://github.com/nana-4/materia-theme) 和 [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) 图标主题，整个系统采用 GTK 主题设计。
* Budgie 定制版还将采用 lightdm + slick-gtk-greeter，以获得更直观的用户问候体验。

对于 Sway 定制版：它旨在提供一个极简体验，只包括默认配置之上的一些元素。

预期时间：随着 Fedora 38 的开发在未来几个月内的加快，你可以期待这些定制版在 2023 年 4 月期间出现。当然，会有预装了 Budgie 和 Sway 的单独 ISO 文件。

因此，我认为看到 Budgie 与 Fedora 的体验会非常吸引人，特别是当 Budgie 的开发似乎正在发生一些有趣的变化。

---

via: <https://news.itsfoss.com/fedora-budgie-sway-official/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #873 AMD 声称新的芯片比 M1 Pro 快 30%

Summary:
❶ AMD 声称新的芯片比 M1 Pro 快 30%
❷ PyTorch 遭遇依赖混淆攻击，可能是研究人员失误导致
❸ 戴尔将在明年底之前清除产品中的中国芯片

AMD是x86架构最后的荣光了

Amd 停滞了一代，给intel喘息的机会，不过按照能效比来说，intel还是差很多，可惜广告到位，就是有人舔

来自广东深圳的 Chrome Mobile iOS 108.0|iOS 16.2 用户

# 硬核观察 #873 AMD 声称新的芯片比 M1 Pro 快 30%

### AMD 声称新的芯片比 M1 Pro 快 30%

AMD 为超薄笔记本推出了新的 AMD Ryzen 7040 系列处理器。该系列芯片基于 4 纳米工艺，AMD 声称该系列最高端的芯片在多处理工作负载中比 M1 Pro 快34%，在 AI 任务中比 M2 快 20%。除了运行效率外，AMD 声称新的芯片将在超薄笔记本中提供 30 多个小时的视频播放。此外，该系列芯片直接内置了 AI 引擎，在执行 AI 任务时比苹果的 M2 芯片快 20%，同时能源效率提高 50%。比较搞笑的一个插曲是，人们发现 AMD 在 CES 演讲中宣传这一系列新芯片时使用的电脑是 MacBook Pro。

>
> **[消息来源：Mac Rumors](https://www.macrumors.com/2023/01/05/amd-new-chips-against-m1-pro/)**
>
>
>

>
> 老王点评：看来 AMD 开始努力了。
>
>
>

### PyTorch 遭遇依赖混淆攻击，可能是研究人员失误导致

在 12 月 25 日 - 30 日之间下载 PyTorch 框架的隔夜构建版本的用户会安装恶意版本的 torchtriton 依赖，窃取系统数据。PyTorch 项目建议用户卸载旧版本安装最新的隔夜构建版本。使用 PyTorch 稳定版本的用户不受影响。一位自称对此事负责的人士表示，恶意版本的 torchtriton 是一个研究项目的一部分，但不小心出差错了。他们对此表示道歉，称窃取的数据已经全部删除。这是最新一起的依赖混淆攻击。

>
> **[消息来源：Solidot](https://www.solidot.org/story?sid=73811)**
>
>
>

>
> 老王点评：总是有人有意或无意地在开源项目中做出恶意行为，但更令人警惕的是，开源项目对这些行为的防护形同虚设。
>
>
>

### 戴尔将在明年底之前清除产品中的中国芯片

据日经亚洲报道，戴尔告诉供应商，要大幅减少其产品中来自中国的部件数量，包括那些由非中国制造商在中国制造的部件。这是将其供应链从中国转移出去的更广泛努力的一部分。戴尔的目标是在 2024 年年底前从其产品中消除所有在中国制造的芯片。

>
> **[消息来源：The Register](https://www.theregister.com/2023/01/05/dell/)**
>
>
>

>
> 老王点评：戴尔在中国的销量可不低啊。
>
>
>


Nitrux 2.6.0 大胆抛弃 apt

Nitrux user is just here. I feel pretty great for this GNU/Linux system.The only issue is just the GFW makes me couldn't use the command like "sudo pkcon install -y vim/emacs/nano/newsboat" It is such boring.but I sincerely hope some people could get into the Linux due to the Microsoft terrible windows environment and expenisive Mac, Linux become a good choice to

# Nitrux 2.6.0 大胆抛弃 apt

>
> Nitrux 2.6.0 带有 Flathub、默认支持的 Pipewire、最新内核和 KDE 框架。
>
>
>

[Nitrux Linux](https://nxos.org/) 是基于 Debian 的，它带有一个名为 NX 桌面的修改版的 KDE Plasma 桌面。这个独特的 Linux 发行版带来了一套自己的建立在 Maui kit 和 Qt 之上的 Nitrux 应用程序。Nitrux 是无 systemd 的，使用 OpenRC 作为启动系统。所有这些独特的功能和令人惊叹的外观，使它成为当今最好的 Linux 发行版之一。

Nitrux 2.6.0 被提升为一个主要版本，因为它对 12 月发布的 2.5.1 版本进行了关键的更新。

### Nitrux 2.6.0 的新内容

这个版本的一个主要重点是在 SDDM 显示管理器中引入 Plasma Wayland 会话。Wayland 还不是默认的，但可以作为选项选择。X11 仍然是默认的。我相信在下一个主要版本中 NItrux 团队可以默认启用 Wayland。

此外，现代声音管理器 Pipewire 现在是默认的，因为它已经在 Ubuntu 和 Fedora 中标准化了，而且感觉很稳定。由于有了 Pipewire，你的音频工作流程将变得更好。

Nitrux 2.6.0 还默认启用了最大的 Flatpak 应用程序仓库 - Flathub。这意味着你不需要再手动设置 Flatpak 和启用 Flathub。现在，Flatpak 应用程序的安装变得更加容易。

其他值得注意的变化包括：Nitrux 使根（/）分区成为不可变分区，以防止它被破坏，Samba 包现在是 Nitrux 默认安装的一部分，Calamares 安装程序有了一个定制的自动分区方案。

从一开始，Nitrux 就倾向于为其整个桌面组件提供自包含的可执行文件。主要的选择是 AppImage 文件格式。在这个版本中，你会得到默认的 Flathub 环境，而流行的 apt 软件包管理器现在被放弃了。这可能会改变一些用户的工作流程，因为 `apt` 命令将无法工作；尽管它是基于 Debian 的。

因此，Nitrux 团队建议使用 Distrobox 容器来设置单独的环境，以便与 apt 一起使用。然而，对于普通用户来说，理解容器、不可变的根分区会有点困难。

讽刺的是 `apt` 会在安装时使用，因为 Calamares 需要它。然而，在安装完成后，它会被删除。

>
> 现场 ISO 中包括 APT 和 dpkg，但这是因为 Calamares 需要它们来完成安装，并将从安装的系统中删除。
>
>
> —— NITRUX TEAM
>
>
>

Nitrux 2.6.0 的核心是 liqurix 内核 6.1，以及游戏和多媒体功能。这个版本由 KDE Plasma 2.26.4、KDE Framework 5.101.0 和 Qt 5.15.7 LTS 驱动。

如果你想阅读更多信息，可以在 [这里](https://nxos.org/notes/notes-nitrux-2-6-0) 找到详细的发布说明。

### 下载

你可以从以下页面下载这个版本。然而，没有可用的升级路径。因此，建议进行新的安装。

* [FOSS Torrents（Torrent）](https://fosstorrents.com/distributions/nitrux/)
* [Sourceforge（镜像）](https://sourceforge.net/projects/nitruxos/files/Release/ISO)
* [OSDN（镜像）](https://osdn.net/projects/nitrux/releases/p18379)

参考自 [发布公告](https://nxos.org/changelog/release-announcement-nitrux-2-6-0/)。

---

via: <https://debugpointnews.com/nitrux-2-6-0-release/>

作者：[arindam](https://debugpointnews.com/author/dpicubegmail-com/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


什么是 Firefox ESR？如何在 Ubuntu 中安装它？

Summary: 如果你重视稳定性而不是功能，你可以试试 Firefox ESR 版本。

如果你重视稳定性而不是功能，你可以试试 Firefox ESR 版本。

# 什么是 Firefox ESR？如何在 Ubuntu 中安装它？

Ubuntu 的 Snap 版本你不喜欢？不喜欢每一次 Firefox 的发布都要不断地改变东西？如果你重视稳定性而不是功能，你可以试试 Firefox ESR 版本。

### 什么是 Firefox ESR？

Firefox ESR 是 Firefox 的特别版，它不一定像普通版那样每月都有新功能，但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构，在这些地方，稳定性和核心功能比闪亮的新功能更重要。

可以把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。它们不一定得到全新的功能，但它们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。

#### 你为什么要关心 Firefox ESR？

Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。

但有些人可能不喜欢各种功能的加入和删除。如果在更新之后，你一直想知道某些设置到哪里去了，或者不喜欢与以前不同的东西，Firefox ESR 可能值得一试。

基本上，如果你更看重稳定性而不是新功能，那么 Firefox ESR 就适合你。这也是 Debian 中携带的 Firefox 版本，Debian 以其是市场上最稳定的发行版之一而闻名。

让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别，所以你必须注意你打开的是哪个火狐版本。**

### 在 Ubuntu 中安装 Firefox ESR

在进入安装之前，让我来分享一下普通 Firefox 和 Firefox-ESR 之间的版本差异是什么。在写这篇文章的时候：

* Firefox 的版本是 **107.0-2**。
* Firefox-ESR 目前的版本是 **102.5.0esr**。

所以，如果这对你来说没问题，让我们看看第一个方法。

#### 方法 1：使用 PPA 安装 Firefox-ESR

Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的，所以你可以使用 PPA。

PPA 只不过是一个由个别技术人员或开发者维护的仓库，拥有默认仓库所没有的东西。

如果你想了解更多关于 PPA 的信息，我建议你查看我们的其他指南，其中解释了 [如何在 Linux 上使用 PPA](https://itsfoss.com/ppa-guide/)。

打开你的终端，使用给定的命令来添加 Firefox-ESR 的 PPA：

```
sudo add-apt-repository ppa:mozillateam/ppa

```

然后按回车键确认你要添加 PPA：

完成后，你需要更新 Ubuntu 中的仓库索引，以便从这些变化中生效：

```
sudo apt update

```

现在，你可以通过使用给定的命令来安装 Firefox-ESR：

```
sudo apt install firefox-esr

```

接下来，你可以使用给定的命令来检查你系统中 Firefox-ESR 的安装版本：

```
firefox-esr -v

```

如何从 Ubuntu 卸载 Firefox-ESR？

如果 ESR 对你的工作来说感觉太过时了，或者由于其他原因你想从你的系统中删除它，你可以按照以下步骤删除 Firefox-ESR 包和仓库。

首先，让我们用下面的方法删除 Firefox-ESR 包：

```
sudo apt remove firefox-esr

```

现在，你可以使用给定的命令来 [从 Ubuntu 删除 PPA](https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/)：

```
sudo add-apt-repository --remove ppa:mozillateam/ppa

```

这就完成了！

#### 方法 2：使用 Snap 安装 Firefox-ESR

不管你爱不爱它，Snap 在 Ubuntu 上是预先配置好的，我发现使用 Snap 是安装软件包的一个很好的方法，特别是当你想避免从源码构建它们或使用 PPA 时。

使用 Snap 安装 Firefox-ESR，你需要做的就是使用给定的命令：

```
sudo snap install firefox --channel=esr/stable

```

如何删除 Firefox-ESR Snap？

要删除 Firefox-ESR（snap 包），请使用 [snap remove 命令](https://itsfoss.com/remove-snap/)：

```
sudo snap remove firefox

```

这就完成了！

### 总结

我在本指南中解释了如何使用多种方法在 Ubuntu 中安装 Firefox-ESR。我个人使用 Firefox-ESR 而不是普通版本，因为我有随机崩溃的情况。

自从我改用 Firefox-ESR 后，一切都变得稳如磐石。如果你也有同样的问题，你应该试一试。

---

via: <https://itsfoss.com/firefox-esr-ubuntu/>

作者：[Sagar Sharma](https://itsfoss.com/author/sagar/) 选题：[lkxed](https://github.com/lkxed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #874 人工智能律师将首次参与法庭辩护

Summary:
❶ 人工智能律师将首次参与法庭辩护
❷ 亚马逊 S3 现在将默认用 AES-256 加密所有新数据
❸ 曾经的 Lindows 发布 Linspire 12 Alpha

# 硬核观察 #874 人工智能律师将首次参与法庭辩护

### 人工智能律师将首次参与法庭辩护

据报道，一个在人工智能帮助下训练出来的程序，将在下个月帮助一名被告在美国法庭上对其案件提出异议。该程序将在智能手机上运行，而不是在法庭上发言，它将通过听筒向被告提供适当的回应支持，然后被告可以在法庭上使用这些回应。这起案件是一起将在 2 月审理的超速案件，如果败诉，该人工智能程序背后的 DoNotPay 公司将承担败诉的罚单。

>
> **[消息来源：IE](https://interestingengineering.com/innovation/ai-defend-case-us)**
>
>
>

>
> 老王点评：如果胜诉，这将是一个巨大的胜利。法院也或许得考虑“雇佣”人工智能来辅助审理。干脆以后都交由人工智能自己去博弈好了。
>
>
>

### 亚马逊 S3 现在将默认用 AES-256 加密所有新数据

虽然服务器端的加密系统在 AWS 上已经使用了十多年，但现在开始默认启用它。管理员不需要采取任何行动就会默认启用加密，亚马逊承诺它不会对性能产生任何负面影响。管理员可以让系统以默认的 256 位 AES 进行加密，也可以采用不同的加密密钥控制方式的加密。

>
> **[消息来源：Bleeping Computer](https://www.bleepingcomputer.com/news/security/amazon-s3-will-now-encrypt-all-new-data-with-aes-256-by-default/)**
>
>
>

>
> 老王点评：作为云服务商，对客户的数据进行加密存储，应该是一种基础服务。
>
>
>

### 曾经的 Lindows 发布 Linspire 12 Alpha

Lindows 曾经是一个以效仿 Windows 界面著称的 Linux 发行版，它始于二十年前，但是后来因为一些法律原因而改名 Linspire。目前的 Linspire 始于五年前被 PC/OpenSystems 收购后。Linspire 声称自己是 “最简单的桌面 Linux”。Linspire 12 仍然基于 Debian/Ubuntu，采用 Linux 内核 5.15 和 GNOME 桌面，默认浏览器是微软 Edge 108 —— 但是在 Alpha 中还不能正常工作。与以前的 Lindows 相比，Linspire 更像是 Ubuntu。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linspire-12-Alpha-1)**
>
>
>

>
> 老王点评：不像 Windows 的 Linspire 就没有了灵魂，虽然不是每个人都喜欢像 Windows 的 Linux 桌面。
>
>
>


开源软件安全吗？

开源并不意味绝对安全。

很多开源软件，写的稀奇古怪，很难看懂。一万个用户里有一个能审阅代码算了不起了。更何况很多开源软件版本碎片化，有没有一万个用户都难说。

平头百姓都是直接拿过来用，深究代码的永远是极少数。

想要安全好用，负责任的开发者是关键。大量愿意提供反馈的用户是其次。与开源与否关系不大。

除了文中提到的审核代码的人不够外，我觉得还有一个因素可能导致不够安全，甚至于是不安全。

例如某个软件的维护人员团队大部分乃至全都是受意于某个公司或某个组织而进行开发的，而该公司、组织本身是以收集隐私或监控为目标下达开发指令的。

举个极端的例子：朝鲜的Linux发行版「红星操作系统」（虽然我不确定它是不是开源的，好歹它是一个Linux的发行版）。

你敢用吗？

# 开源软件安全吗？

作为一个偏爱 [在桌面电脑上使用 Linux](https://news.itsfoss.com/linux-foundation-linux-desktop/)，并鼓励使用开源软件的人，你可能期待就标题中提出的问题得到一个响亮的**肯定**回答。

然而，我并不打算仅限于讨论开源软件的优点。让我们一起探索更多观点！

在本文，我计划分享我关于开源软件是否安全的思考，以及哪些事情与开源软件的安全性相关。

### 为什么你需要关注开源软件是否安全？

不论你是使用 [Linux](https://itsfoss.com/what-is-linux-distribution/) 系统还是使用其他类型的操作系统，你都会在某种程度上（直接地/间接地）被开源软件所包围。

举个例子，大多数专有软件工具依赖于某种形式的开源库来保证其正常工作。

此外，各种规模的公司（包括谷歌、微软和 Facebook）依赖开源软件或者以某种途径向开源社区贡献资源是有原因的。

因此，开源软件的安全性是有必要了解的。

### 有关开源软件安全性的迷思

虽然有多种理由证明开源软件在安全性方面的缺陷，然而其中一些实际毫无意义。

#### 任何人都可以查看并恶意利用开源软件代码

是的，开源软件代码对于任何人都是可访问的。但是你可以查看代码并不意味着你可以利用它。

**不现实。**

即使任何人都可以复刻（或者拷贝）该软件，原始软件也不能轻易地被修改使用。

通常，项目维护人员（或者维护团队）管理代码仓库，并且接受来自贡献者的提交。开源软件代码在接受之前会被审查。没有人可以就这样劫持代码。

**不论是开源软件还是闭源软件，攻击者都需要付出努力来利用软件中的代码漏洞或者添加恶意代码。**

#### 没有专职团队，安全性无从谈起

很多人相信如果开源软件没有专职人员或者专职团队，维护软件安全性是困难的。

恰恰相反，由于各种各样类型的贡献者的加入与离开，开源软件获得了来自更大范围的开发者的更多关注。

他们可能比由专有软件所聘用的少数开发者更能够发现安全问题。

一些来自 Mozilla 等同类公司的项目拥有自己的专职团队来高效处理安全问题。同样的，大部分成功的开源项目拥有大量的资源用于保障安全性。

因此，开源软件的生态系统是安全性的组合包。即使没有专职团队，开源项目也可以得到来自各类贡献者的帮助，他们中的一些很大程度上是有利可图的，这有助于他们投入更多的精力。

### 开源软件是安全的，以下是原因

既然我们已经澄清了这些有关开源软件安全性的迷思，让我重点展示一下开源软件是如何处理安全问题的。

换句话说，开源软件在安全性上的优势。

请不要忘记，开源软件的优势也是 [Linux 比 Windows 更好](https://itsfoss.com/linux-better-than-windows/) 的一些原因。

#### 更多的眼晴关注开源软件代码

不像专有软件，（对开源软件的）代码访问并不局限于少数几个开发者。

一些开源项目甚至可能拥有数以万记的开发者可以查看代码、审查它们并标记和修复其中的安全性问题。

相比闭源软件，这给予了开源项目拥有**快速识别问题并尽快修复它们的能力**的优势。

不仅仅限于拥有更多的开发者，企业通常也会参与他们所使用的开源项目。当他们这样做的时候，他们也会查阅代码并审查它们。

这提供了另一条外部审查的途径，而这可能有助于提升开源软件的安全性。

反之，就闭源软件而言，数量有限的开发者可能并不能找出所有种类的安全问题。而且他们可能需要花费更长的时间来一一修复发现的问题。

#### 社区决定安全问题的优先级

闭源软件的开发者可能在处理什么问题和什么时候解决问题等方面有某些限制或者优先等级。

而如果是开源项目，贡献者社区可以自行决定优先级，并自行安排他们想解决的问题以及决定合适修复问题。你不需要依赖于供应商的决定或者按照他们的指示来解决一个安全问题。

着手处理和修复安全问题的决策在开源软件项目中更加透明和灵活。因此，它可以被证明是更有效的，并为你带来以下三个益处：

* 透明度
* 不依赖供应商
* 更快的安全更新

### 开源软件不是防弹的，以下是原因

虽然在某些情况下，开源软件可能在安全性上具有优势，然而仍有一些因素影响它。

承认这些问题的存在是很重要的，据此，企业或者个人可以就开源软件的安全情况做出更好的决定。

#### 并无足够的眼睛来审查代码和不确定性

即使开源软件代码可以被全世界的开发者自由访问，**项目没有足够的贡献者/开发者彻底审查开源代码**的可能性仍然存在。

既如此，我们不能对开源软件的同行审查抱有极高的信心，因为它恰好缺失了这一点。

开源软件可能“声称”拥有最高的安全性因为它们是开源的。在没有足够的开发者致力于该项目时，这是一种误导。

同样，我们也无从得知有多少开发者在查看/检查代码，也不知道代码的检查进行到什么程度了。

举例而言，<ruby>   心脏出血漏洞  <rt>  Heartbleed </rt></ruby> 是在一个被广泛使用的项目（OpenSSL）中引入了 2 年以后才被发现的。

#### 软件责任与问责

对于个人用户这可能并不重要，但是**开源项目通常并无任何保证**。

因此，如果一家公司使用它，它们必须自行承担任何由该软件使用造成的数据丢失与损坏。

这告诉你，没有什么是 100% 安全和没有漏洞的。无论有多少眼睛聚焦在代码上或者贡献者的技术多么精湛，总会存在某种形式的风险，无论是安全风险还是数据丢失。

这告诉我们一个现实：开源软件并非防弹的。

### 开源软件有其更高安全性的优势，但是...

就安全性而言没有什么优胜者。不论是闭源还是开源，当涉及安全问题时都适用同一套原则。

有很多外部因素可以影响软件安全性，而**其中很多因素并不依赖于源代码**。

必须以某种形式监控代码，以保证安全。

是的，**开源道路提供了闭源软件所不具备的优势**，但是这并不意味着开源软件是防弹的。

*你对开源软件安全状况有何思考？你又是否认为开源软件比专有软件解决方案更好呢？*

提前感谢你在下面的评论中提出的宝贵意见。

---

via: <https://news.itsfoss.com/open-source-software-security/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CanYellow](https://github.com/CanYellow) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


Budgie 10.7 即将带来 3 项关键改进

Summary: Budgie 10.7 有很多有价值的改进。请看本文。

ubuntu-budgie 23.04 会采用哪个版本呢？

Budgie 不就是加了一堆没用的扩展的 GNOME？

Budgie 10.7 有很多有价值的改进。请看本文。

# Budgie 10.7 即将带来 3 项关键改进

>
> Budgie 10.7 有很多有价值的改进。请看本文。
>
>
>

Budgie 是一个旨在将杂乱无章降到最低，为用户提供一个干净/简约的体验的桌面环境。

早在 2022 年 1 月，Solus 的前联合负责人 Joshua Strobl [离开了 Solus](https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/)，从事 [SerpentOS](https://serpentos.com) 的开发，但他还继续参与 Budgie 的开发。

因此，他将该项目复刻到一个新的代码仓库，并成立了 [Buddies Of Budgie](https://blog.buddiesofbudgie.org) 组织。三个月后，他们发布了 **Budgie 10.6**。

这是一个很不错的版本，即使不是很特别。

展望未来，他们发布了 2023 年的计划，其中包括发布 **Budgie 10.7**。

[Joshua Strobl](https://joshuastrobl.com) 在博文中也提到了更多计划内容：

>
> 至少，它应该是一个很好的基础，并为 Budgie 桌面今年的发展方向提供一个清晰的蓝图：Budgie 10.x 将会增加新的功能、QoL 改进和修复。Budgie 11 的开发工作也将起步。
>
>
>

### Budgie 10.7 可以期待什么？

Budgie 10.7 的开发工作自去年以来一直在进行。它本应在 2022 年发布，但需要更多的时间来提供一个完美的体验。

已经完成了很多工作，但其中一些值得注意的三个变化是：

* 对 Budgie 菜单的更新
* 新的 Budgie 屏幕截图工具
* 对 Budgie 运行对话框的改进

#### 对 Budgie 菜单的更新

在这个版本中，Budgie 菜单将得到一些改进，例如。

* 一个新的电源菜单，包含所有常用的选项，如**暂停、休眠、注销和关闭电源**。
* 更新的个人用户菜单可以快速访问 XDG 目录。这将让你直接打开文件管理器窗口进入主页、文档、音乐等文件夹。
* 快速访问 Budgie 控制中心和桌面设置。
* 能够从菜单本身显示各种桌面设置。

#### Budgie 屏幕截图工具

终于，你不再需要下载另一个工具来在 Budgie 上进行截图；从 10.7 开始，它将具有一个原生的屏幕截图应用程序。

它将支持对屏幕、窗口的捕捉，甚至是进行选区捕捉。

#### 对 Budgie 运行对话框的改进

Budgie 运行对话框将获得许多改进，例如：

* 一个新的应用程序索引器将被用于 Budgie 菜单，以寻找和分类应用程序。它应该能提供一个 “可预测的模糊搜索体验”。
* 根据显示器的工作区域改进对话框的大小计算。
* 更好的应用程序名称和描述的标签样式。

### 发布和未来计划

根据他们的 [公告](https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/)，他们打算在 2023 年第一季度的某个时候发布 Budgie 10.7。他们还没有确定一个具体的日期。

并计划在不久之后发布带有错误修复的 10.7.1 版本，然后在 2023 年第二季度发布 Budgie 10.8。

---

via: <https://news.itsfoss.com/budgie-10-7-features/>

作者：[Sourav Rudra](https://news.itsfoss.com/author/sourav/) 选题：[lkxed](https://github.com/lkxed) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


硬核观察 #875 ChatGPT 已被利用创建恶意代码和黑客攻击

Summary:
❶ ChatGPT 已被利用创建恶意代码和黑客攻击
❷ Adobe 将默认使用你的作品来训练其人工智能算法
❸ Linux 4.9 结束了 6 年的支持

Chat ppt 已被利用于获得流量

# 硬核观察 #875 ChatGPT 已被利用创建恶意代码和黑客攻击

### ChatGPT 已被利用创建恶意代码和黑客攻击

在一个流行的地下黑客论坛上突然出现了一篇题为 “ChatGPT —— 恶意软件的好处” 的帖子，作者说他们正在用 ChatGPT 进行实验，以重新创建常见的恶意软件和技术。虽然目前所展示的还比较初级，但这只是一个时间问题。之前，ChatGPT 因生成错误的代码，而被 Stack Overflow 禁止了由其生成的回答。但该技术正在改进，上个月芬兰政府的一份报告警告说，人工智能系统已经被用于社会工程，并在五年内可能极大地增加攻击量。

>
> **[消息来源：The Register](https://www.theregister.com/2023/01/06/chatgpt_cybercriminals_malicious_code)**
>
>
>

>
> 老王点评：这为广大脚本小子打开了一扇新的大门。果然任何新技术都会被先投入到非法用途。
>
>
>

### Adobe 将默认使用你的作品来训练其人工智能算法

有人在 Adobe 创意云服务的隐私和个人数据账户设置中发现，“它可能使用机器学习等技术分析你的内容（例如用于模式识别），以开发和改进其产品和服务”。用户自动允许 Adobe 访问他们的数据，除非他们选择退出该服务。该条款于去年 8 月更新，适用于存储在其云服务器上的图像、音频、视频、文本或文件。但 Adobe 回应称，“该政策不是新的，已经存在了十年，以帮助我们为客户提高产品。…… Adobe 不会使用存储在客户的创意云账户上的任何数据，来训练其实验性的生成性人工智能功能。”

>
> **[消息来源：The Register](https://www.theregister.com/2023/01/07/adobe_ai_training/)**
>
>
>

>
> 老王点评：新的人工智能进步，给包括创意界在内的各行各业都带来了挑战。
>
>
>

### Linux 4.9 结束了 6 年的支持

Linux 4.9 LTS 内核发布于 2016 年，Greg 今天宣布了它的最后一个点版本 Linux 4.9.337。下一个将结束支持的是 2014 年 1 月到期的 Linux 4.14 LTS，以及 2024 年底的 Linux 4.19 LTS 等等。Linux 5.15 LTS 目前计划在明年 10 月到期，但如果有足够的兴趣/使用量，可能会从两年的 LTS 支持周期延长到六年。同时，Linux 6.1 预计将成为 2022 年的 LTS 内核版本，尽管还没有正式宣布。

>
> **[消息来源：Phoronix](https://www.phoronix.com/news/Linux-4.9.337-LTS-Over)**
>
>
>

>
> 老王点评：没想到 Linux 4.9 都已经支持了 6 年了。
>
>
>

### 回音

* 之前我们 [报道](/article-15345-1.html) 过，Windows 7 和 8 的支持在 1 月彻底结束，[下周二](https://www.ghacks.net/2023/01/07/while-windows-7-has-a-fighting-chance-it-is-game-over-for-windows-8-1/)，它们将接收到最后一批安全补丁。