硬核观察 #505 人工智能重新“创造”了历史

Summary: 更多：• 新的补丁集将清理 Linux 内核的“依赖地狱”• Canonical 招聘 Linux 桌面游戏产品经理

Ubuntu商店像屎一样，也不见修一修，却不知道搞一些什么鬼。

来自120.230.61.0的 Chrome Mobile 75.0|Android 10 用户

好像是gnome的商店。

Ubuntu 有商店？snap？如果是 snap，Ubuntu 有些软件默认安装的是 snap 版的确很烦，其它用着还不错，就是国内没镜像。

如果指的其它商店，那可能说的是 GNOME 和 KDE 桌面自带的商店，这个锅就不是 Ubuntu 的了。

# 硬核观察 #505 人工智能重新“创造”了历史

### 人工智能重新“创造”了历史

人工智能越来越多的做到了之前 [无法做到的事情](https://www.bgdailynews.com/washington_post/artificial-intelligence-is-restoring-lost-works-by-klimt-picasso-and-rembrandt-but-not-everyone-is/article_935bf09a-d97a-5e0f-9a45-4f636df4d567.html)。谷歌使用机器学习创建了克里姆特 1900 年的画作《哲学》，而之前它只有一幅黑白照片传世。也有人利用 AI 重建了伦勃朗著名的《守夜人》边缘的缺失板块，并在夏天将它们暂时安装在原画旁边。还有人利用 3D 打印和 AI 重建了隐藏在毕加索《盲人餐》下面的早期画作。以及，德国波恩的一个管弦乐队完整地“演奏”了贝多芬的第十首未完成的交响曲，这个版本是由一个算法编写的。

>
> 老王点评：AI 修“旧”如“新”，这真的是原来的历史么？
>
>
>

### 新的补丁集将清理 Linux 内核的“依赖地狱”

这项名为“[快速内核头文件](https://lore.kernel.org/lkml/YdIfz+LMewetSaEB@gmail.com/T/#u)”的工作花费了一年时间整理，包含了多达 2297 个补丁，完全重塑了 Linux 内核的头文件层次结构。其目标是加快内核的构建，同时清理构建过程，以解决“依赖地狱”问题。Linux 内核中大约有 1 万个主要的头文件，在过去的 30 多年里，它们已经成长为一套复杂而痛苦的交叉依赖关系。这套庞大的补丁涉及到大部分的 Linux 内核代码库。根据测试数据，启用了“快速内核头文件”的内核要比原始的内核构建性能有可能提高 50-80%。这个庞大的补丁系列已经在 x86/x86\_64、SPARC、MIPS 和 ARM64 等多种架构上进行了测试。这可能是 [有史以来代码规模最大](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Fast-Kernel-Headers) 的一个 Linux 内核功能调整。

>
> 老王点评：这是一项功在千秋的工作，确实需要清理一下瓶瓶罐罐了。
>
>
>

### Canonical 招聘 Linux 桌面游戏产品经理

据 Steam Play 最新数据，Linux 上的游戏用户占比为 [1.11%](https://www.phoronix.com/scan.php?page=news_item&px=Steam-Linux-December-2021)，虽然略有下降。而 Ubuntu 背后的厂商 Canonical 也将目光放在了 Linux 桌面游戏上了，现在正在 [招聘](https://canonical.com/careers/3776036) Ubuntu 的桌面游戏产品经理的新职位，希望“使 Ubuntu 成为最适合游戏的 Linux 桌面”，将围绕 Ubuntu 的桌面图形驱动选择，致力于与 GPU 供应商和其他 IHV/ISV 的合作。

>
> 老王点评：Linux 还是不甘心在桌面上退让啊，让我们看看 Linux 能不能复制在服务器等领域的成功。
>
>
>


用 Samba 跨平台共享文件

samba一个不足是会丢失文件元数据，比如文件修改时间会变成上传时间

# 用 Samba 跨平台共享文件

>
> Samba 是一种灵活的文件共享工具，它将你可能在组织中运行的所有不同平台结合在一起。
>
>
>

<img src="content_image/album_202201_04_092708dsjqu1fbfjjhee1j.jpg" alt="" title="Files in a folder">

在我接触 Linux 的早期，我是纽约州一个小型学前教育学区的技术总监。我们的技术预算总是捉襟见肘。我们是一个 Windows 2000 活动目录域，但我们的中央服务器磁盘空间有限，而且没有教师的主目录。此外，我们经历过十几次员工电脑硬盘故障。

我正在寻找一种方法，以最小的成本保存员工的工作。这时我发现了 Samba。在那之前，我一直将 Linux 用于内容过滤，不知道我们的 Windows 工作站可以连接到服务器并保存文件备份。

[Samba 项目](https://www.samba.org/) 自 1992 年以来一直存在。当我开始试验这个项目的时候，这个项目已经有 10 年历史了，我对如何配置它一无所知。我买了一本书并阅读了如何实现它，然后我从我们的电脑柜中取出一台旧电脑，购买了一个 300G 的希捷 IDE 驱动器，安装了 Linux，并配置了 Samba。我使用了一个简单的配置，并且它成功了。在向我们的一个 IT 助理展示后，我们部署了这个解决方案。硬盘故障的问题继续存在，但我们的员工不再需要担心失去他们所有的辛苦工作。

Samba 采用 [GPL](https://www.samba.org/samba/docs/GPL.html) 许可证，并在大多数 Linux 发行版上广泛使用。Samba 有很好的 [文档](https://www.samba.org/samba/docs/)，Fedora 用户可以查阅这份在 [Fedora 上配置 Samba](https://docs.fedoraproject.org/en-US/quick-docs/samba/) 的文档。

### 在 Linux 上安装 Samba

你可以使用你的发行版的包管理器来安装 Samba。

在 Fedora、CentOS、RHEL、Mageia 和类似的系统上：

```
$ sudo dnf install samba

```

在 Debian, Linux Mint 和类似系统上：

```
$ sudo apt install samba

```

### 用 Samba 创建一个共享文件夹

创建一个简单的共享文件夹只需要五个步骤。

1、在你的 Linux 服务器上创建一个你希望用户能够保存共享文件的目录。这个目录可以是服务器上的任何地方：在 `/home` 或 `/opt` 或任何最适合你的地方。我使用我的主目录，我把共享目录称为 `sambashare`。

```
$ mkdir /home/don/sambashare

```

在 Fedora 和其他运行 SELinux 的发行版上，你必须对这个共享目录给予安全许可：

```
$ sudo semanage fcontext --add --type "samba_share_t" ~/sambashare
$ sudo restorecon -R ~/sambashare

```

2、用 Nano 或你选择的文本编辑器编辑 Samba 配置文件。

```
$ sudo nano /etc/samba/smb.conf

```

在 `smb.conf` 文件的底部添加以下内容，用你自己的共享目录的位置替换我例子中的 `/home/don/sambashare` 路径：

```
[sambashare]
        comment = Samba on Linux
        path = /home/don/sambashare
        read only = no
        browsable = yes

```

如果你使用 Nano，按 `Ctrl-O`，然后按**回车**来保存，按 `Ctrl-X` 退出。

3、启动或重启 Samba 服务，这取决于你的发行版。

在 Fedora 和类似的系统中，没有明确的许可，服务是不会启动的，所以现在就可以启动 Samba，并在启动时启动：

```
$ sudo systemctl enable –now smb.conf

```

在 Debian 和类似系统中，Samba 默认在安装后启动，所以你必须现在就重启它：

```
$ sudo service smbd restart

```

4、更新你的防火墙规则，允许访问你的 Samba 共享。该如何做取决于你的系统使用什么防火墙。

如果你正在运行 firewalld：

```
$ sudo firewall-cmd --permanent --add-service=samba
$ sudo firewall-cmd --reload

```

如果你正在运行 UFW：

```
$ sudo ufw allow samba

```

5、现在你需要设置一个密码来访问你的 Samba 共享。这个用户名（在我的例子中是 don）必须属于你系统中的一个账户。

```
$ sudo smbpasswd -a don

```

我在每个 Samba 共享中都放置了一个简单的 `README` 文件，这样用户就会明白这个目录位于服务器上，他们必须在 VPN 上才能从家里访问它等等。

### 从 Windows 和 Mac 访问 Samba

在 Windows 电脑上，打开文件管理器（Windows Explorer），访问路径 `ip-address-of-the-Linux-computer/sambashare`。系统会提示你输入 Samba 共享密码，然后 `sambashare` 目录中的文件会出现在你的文件管理器窗口中，就像它们存在于你的桌面上一样。你可以开始在网络上的这个新共享目录中存储你的文件。

在 macOS 电脑上，进入 Finder 菜单，选择 Go。在出现的对话框中，输入 `smb://ip-address/sambashare`，并按照提示输入 Samba 密码。

### Samba 意味着共享

Samba 使共享文件变得容易。你可以在 Samba 中使用许多其他方案来创建共享位置，包括用户组的公共文件夹，只接受传入文件的收件箱，以及其他你可能需要的东西。它是开源的、灵活的，而且它把你可能在你的办公室里运行的所有不同的平台联合起来。

---

via: <https://opensource.com/article/21/12/file-sharing-linux-samba>

作者：[Don Watkins](https://opensource.com/users/don-watkins) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


Ubuntu 服务器版与桌面版有什么区别？

那么，服务器为什么不选Debian呢

看中商业公司提供的技术支持吧，公司自己养一个维护团队另说?

# Ubuntu 服务器版与桌面版有什么区别？

当你点击 [Ubuntu 网站](https://ubuntu.com/) 上的下载按钮时，它会给你几个选项。其中两个分别是 Ubuntu 桌面版和 Ubuntu 服务器版。

这可能会让新用户感到困惑。为什么会有两个（实际上是四个）？应该下载哪一个？Ubuntu 桌面版还是服务器版？它们是一样的吗？有什么区别？

我将解释 Ubuntu 的桌面版和服务器版的区别。我还会解释你应该使用哪个变体。

### Ubuntu 桌面版与 Ubuntu 服务器版

要了解 Ubuntu 桌面版和服务器版的区别，你应该了解桌面操作系统和服务器操作系统的区别。

#### 桌面操作系统

<ruby> 桌面电脑 <rt>  Desktop </rt></ruby>是指个人电脑（PC）。桌面电脑操作系统带有一个图形用户界面，以便用户可以使用鼠标和键盘操作。桌面电脑的主要目的是给你一个系统，可以用来浏览网页、编辑文档、查看/编辑图片和视频、编码和游戏。基本上，就是为个人、终端用户或家庭成员提供了一个通用的计算机。

我在这里使用桌面电脑这个术语，但这并不意味着它不能用于笔记本电脑。桌面电脑是个人电脑的通用术语。

#### 服务器操作系统

另一方面，服务器操作系统是专门为托管网站、应用程序、媒体服务器、数据库等网络服务而打造的。

通常情况下，服务器操作系统不带有图形界面。如果是基于 Linux 的操作系统，你就得通过终端的命令来使用该系统。

这里的好处是，服务器操作系统不需要（浪费）大量的内存和计算能力，因为它们不使用 [图形化桌面环境](https://itsfoss.com/what-is-desktop-environment/)。除此以外，服务器操作系统的软件包配置也不同。

现在你对服务器和桌面的区别有了一些了解，让我们看看 Ubuntu 服务器版和桌面版的区别。

#### 用户界面

Ubuntu 服务器版和桌面版之间最明显的区别是用户界面。

Ubuntu 桌面版的特点是采用 GNOME 桌面环境的图形化用户界面。这使得它在鼠标点击的帮助下更容易使用。

Ubuntu 服务器版采用<ruby> 无头方式 <rt>  headless </rt></ruby>运行。你只有在登录后才会看到一个终端界面。你经常会从其他电脑上通过 SSH 来远程管理它。

#### 安装

[由于有了图形化的安装程序，将 Ubuntu 作为桌面电脑是很容易的](https://itsfoss.com/install-ubuntu/)。你可以创建一个<ruby> 临场 USB <rt>  Live USB </rt></ruby>，无需安装即可体验桌面版。如果你喜欢，你可以按照屏幕上的指示在几分钟内安装它。

将 Ubuntu 作为服务器安装并不像桌面版那样简单。你只能使用终端界面。如果你不熟悉这个流程，即使是最简单的任务，如连接到 Wi-Fi，也可能是一个困难的任务。

#### 应用程序

在 Ubuntu 桌面版中，默认的应用程序集主要针对普通计算机用户。因此，你会发现网页浏览器、办公套件、媒体播放器、游戏等。

Ubuntu 服务器版的应用程序更多的是为运行网络服务而定制的。而这还不是全部。有些应用程序的配置也是不同的。以 SSH 为例。Ubuntu 服务器预设了 SSH，这样你就可以轻松地从远程系统连接到它。而在 Ubuntu 桌面版上，你必须明确启用 SSH 才行。

#### 硬件要求

由于桌面版具有图形用户界面，你需要至少 4GB 的内存来运行 Ubuntu 桌面版。磁盘空间至少要有 20GB。

这就是 Ubuntu 服务器的有趣之处。它没有图形化的界面。命令行界面不会消耗大量的系统资源。因此，你可以在 512MB 和 5GB 磁盘空间的机器上轻松运行 Ubuntu 服务器。（LCTT 译注：当然，对于服务器环境来说，内存和磁盘空间是多多益善。）

服务器上的内存和磁盘空间受制于你所运行的网络服务。如果一个网络应用需要至少 2GB 的内存，你就应该有这么多的内存。但在最简单的情况下，即使是 512MB 或 1GB 的内存也可以工作。

#### 用途

这是 Ubuntu 桌面版和服务器版之间的主要区别。问问自己，你想把 Ubuntu 用于什么目的？

如果是专门用于部署网络服务，那就选择 Ubuntu 服务器。请记住，你需要有基本的 Linux 命令行知识来使用终端。

如果你想把 Ubuntu 作为像 Windows 一样的普通电脑使用，那就选择 Ubuntu 桌面版。如果你想用它来学习 Linux 命令，或用于学习的 Docker 或者甚至是简单的（但是本地的）LAMP 服务器环境，请继续使用 Ubuntu 桌面。

对于服务器来说，Ubuntu 服务器版要比 Ubuntu 桌面版好。对于常规的计算机使用，Ubuntu 桌面版是更好的选择。

#### 你应该在服务器上使用 Ubuntu 桌面版还是在服务器上安装图形界面？

是这样的，Ubuntu 桌面版和服务器版都是 Linux，你可以用 Ubuntu 桌面版作为服务器来托管网页服务。这没问题。

同样地，[你可以在 Ubuntu 服务器上安装图形界面](https://itsfoss.com/install-gui-ubuntu-server/)，并以图形方式使用它。这也是可行的。

但仅仅因为它可行，并不意味着你应该这么做。它违背了为服务器和桌面电脑创建不同版本的全部目的。

你必须付出额外的努力来将服务器版转换为桌面版，反之亦然。为什么要承受这种痛苦呢？

如果你使用 Ubuntu 的目的很明确，那就下载并安装合适的 Ubuntu 版本。

我希望这能使围绕 Ubuntu 桌面版和服务器版的选择现在更清楚一些。如果你有问题或建议，请利用评论区。

---

via: <https://itsfoss.com/ubuntu-server-vs-desktop/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #506 Linux 内核 2021 年成绩总结

Summary: 更多：• KDE 发布 2022 年路线图 • Mozilla 创始人臭骂 Mozilla 基金会接受加密货币支付

加密货币也是财富啊，即使你不认为他是金钱，也是能兑换成财富的一个等价物，无可厚非

所谓的加密货币并不具备等价交换能力，它没有可靠实体支撑。

来自120.231.49.32的 Firefox 97.0|GNU/Linux 用户

助长投机与贫富分化，破坏金融稳定，伪去中心化。根性为劣。

除了骗钱，还没看到加密货币的任何正向作用

来自广东广州的 Chrome Mobile 96.0|Android 12 用户

是财富没错，也是资本逃离管制的工具。

# 硬核观察 #506 Linux 内核 2021 年成绩总结

### Linux 内核 2021 年成绩总结

Linux 内核的代码仓库已经有 106 万次提交，来自约 24.3 万个不同的作者。源代码树目前由 3,220 万行组成，涉及 74,300 个文件。但仅从单纯的数据上来说，[要比往年低一些](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Kernel-2021-Highlights)。在 2021 年只有 7.37 万次提交；而 2020 年提交量为 9.02 万次，上一次低于 7.3 万次提交还要追溯到 2013 年，当时提交量为 7.09 万。2021 年内核增加了 320 万行，删除了 130 万行，也低于 2020 年的 400 万行和 150 万行。不过，从内核贡献者的邮件地址数量来看，2021 年，有 4421 个电子邮件，2020 年有 4603 个，2019 年有 4383 个，都大致相当。

>
> 老王点评：之所以数量降低，更多的原因应该是 2021 年只完成了 5 个主要版本，而其它年份往往有 6 个主要版本。主要版本发布会带来大量的代码行数和提交数量变化。
>
>
>

### KDE 发布 2022 年路线图

KDE 2021 年的路线图已经顺利完成，现在发布了新的 [2022 年路线图](https://pointieststick.com/2022/01/03/kde-roadmap-for-2022/)：

* Wayland 会话争取可以完全取代 X11 会话。
* 对 Breeze 图标集进行大修。
* 完善多显示器支持。
* 15 分钟错误计划修复更多错误，“15 分钟错误”指用户在使用桌面的 15 分钟内容易遇到的小问题。
* 系统设置区域中的语言和格式页面合二为一。

……等等。

>
> 老王点评：相比其它更大更闪亮的变化，我更重视这个 15 分钟错误计划。
>
>
>

### Mozilla 创始人臭骂 Mozilla 基金会接受加密货币支付

Jamie Zawinski 是最初的 Netscape 开发者之一，因此也被视作 Mozilla 项目的创始人之一。在 Firefox 的开发者宣布他们接受狗狗币、比特币和以太坊等加密货币支付后，对 Mozilla [大骂](https://mobile.twitter.com/jwz/status/1478022085737803776)：“（消音……）每个参与项目的人都应该为这个决定感到羞愧，因为他们与地球上的庞氏骗徒合作。”

>
> 老王点评：非常有个性的一位编程高手，但是我觉得对加密货币这个事情，现在下论断还太早。顺便说一句，昨天，1 月 3 日是比特币创始区块的挖出日期。
>
>
>


2021 总结：值得尝试的 9 个开源替代品

Summary: 无论你在寻找什么工具，都有大量的开源软件的替代品供你选择。

无论你在寻找什么工具，都有大量的开源软件的替代品供你选择。

# 2021 总结：值得尝试的 9 个开源替代品

>
> 无论你在寻找什么工具，都有大量的开源软件的替代品供你选择。
>
>
>

<img src="content_image/album_202201_05_102041ojbpppjmgemmummq.jpg" alt="" title="name tag that says hello my name is open source">

2021 年又是一个主要在网上度过的年份，但这对开源世界来说并不新鲜。在任何地方工作的能力是我们的 DNA，在大流行之前，远程工作就已经进入了主流。

然而，今年在屏幕前的所有时间使我们的社区考虑开源的替代方案。无论你需要什么样的工具，许多流行的供应商都不是你唯一的选择。

如果你对 Zoom 感到厌倦，想要一个非 Salesforce 家的 CRM，或者想要一个非谷歌的分析工具，请继续阅读。我们有推荐了 2021 年最受读者喜爱的开源替代品的文章。

### 我最喜欢的开源项目管理工具

如果你在管理一个项目，可能看起来你有无穷无尽的工具可以选择。随着甘特图跨入敏捷领域，现在更常见的是看到它们被部署在大型项目的服务中。

如果你认为微软 Project 是你唯一的选择，别担心，Frank Bergmann 分享了几个 [开源替代品](https://opensource.com/article/21/3/open-source-project-management)，供单个用户计划和跟踪大型单一项目。Redmine、ProjectLibre 和 TaskJuggler 都是这个列表中涉及的开源替代品。

### 微软 Exchange 的一个开源替代品

微软 Exchange 在群件中的主导地位可能即将结束。2020年，一位奥地利的开源开发者建立了 grommunio，作为 Exchange 的开源替代品。

在 Markus Feilner 的 [对 grommunio 的评论](https://opensource.com/article/21/9/open-source-groupware-grommunio)中，他分享了该工具提供的大量功能清单。集成的原生 exchange 协议使 Outlook 和智能手机能够像连接到 Exchange 一样连接到 grommunio。在这个强大的列表中，日历管理、视频会议和会议功能是由 [Jitsi](https://opensource.com/article/20/5/open-source-video-conferencing) 提供的。

### 用这个开源的财务工具在 Linux 上管理你的预算

当涉及到资金管理时，Linux 可能不是你想到的第一个工具平台。然而，事实证明，有许多建立在 Linux 上的应用可以帮助保持你的个人财务状况良好。

像 HomeBank 和 KMyMoney 这样的产品可以让你从银行导入数据，并根据你的预算审查支出。[本文作者](https://opensource.com/article/21/2/linux-skrooge) Seth Kenlon 更喜欢 Skrooge，并分享了他如何使用它。如果你正在寻找一个追踪支出的开源工具，这可能是一个。

### 5 个替代 Zoom 的开源工具

在大流行的近两年时间里，可以说我们中的大多数人都被 Zoom 困住了。对我们中的许多人来说，大多数工作和社会活动都完全在网上进行。但正如 Seth Kenlon 敏锐地指出的那样，开源最大的好处之一就是可以远程工作。因此，如果你对 Zoom 感到厌烦，[开源爱好者有几个选择](https://opensource.com/article/21/9/alternatives-zoom)。

像 Jitsi 这样受欢迎的名字也在这个名单上，还有一些令人惊讶的名字。例如，你知道 Signal 在其功能列表中增加了小组视频通话吗？P2p.chart、BigBlueButton 和 Wire 也进入了这个从小型团体电话到公司会议的各种视频需求的工具列表。

### 用 Doodle 的开源替代品来安排约会

像 Doodle 这样的约会安排应用省去了很多挑选互不冲突日期的麻烦。对于像 Kevin Sonney 这样主持播客的人来说，这些工具可以帮助他和每个客人轻松找到适合他们双方的日期。

虽然 Doodle 赢得了大众投票，但 Sonney [在这篇文章](https://opensource.com/article/21/1/open-source-scheduler) 分享了他使用 Easy!Appointments 的经验。它旨在帮助服务机构，Easy!Appointments 有一个 WordPress 插件，让用户把请求表格放在页面或帖子上。该应用还与谷歌日历同步，并有添加与其他后端同步的支持。

### 为什么选择 Plausible 作为谷歌分析的开源替代品

如果你需要使用网络分析，似乎谷歌分析是你唯一的选择。Uku Taht 和 Marko Saric 在建立 [Plausible.io](http://Plausible.io) 时，就着手改变这种情况，以提供一个开源的分析工具，可以管理大量的数据而不会出现性能下降。发布两年后，Plausible 每月可以抓取超过 8000 万条记录。

在这篇文章中，Ben Rometsch 分享了 [Plausible 的历程](https://opensource.com/article/21/2/plausible)，从带有敏感代码的软件到 AGPL 下的开源选择。如果你想知道这个小小的分析引擎是如何在 GitHub 上从 500 颗星发展到 4300 颗星的，那么这篇文章很值得一读。

### 试试 Chatwoot，一个开源的客户关系平台

想找一个涵盖客服管理/支持的开源端到端平台？如果你想要 Salesforce 或 Zendesk 以外的东西，用 Ruby 和 Vue.js 构建的 Chatwoot 可能是一个可行的选择。

Nitish Tiwari 在 [这篇文章](https://opensource.com/article/21/6/chatwoot) 中分享了 Chatwoot 的架构、安装和主要功能。它可以在几个平台上使用，包括 Linux 和 Docker。这篇文章分享了使用 Docker 的安装过程，以及渠道和集成等功能。

### 开始使用开源的客户数据平台

如果你正在管理大规模数据，你很可能使用或正在寻找一个数据仓库。那些寻找开源仓库的人可以考虑 RudderStack，它在数据仓库上建立客户数据湖之前收集和路由事件流数据。

Amey Varangaonkar [分享了如何获得 RudderStack 的工作空间令牌](https://opensource.com/article/21/3/rudderstack-customer-data-platform)，然后在 Docker 或 Kubernetes 上安装和部署。该工具的 rudder-server 仓库和目标集成是开源的，让用户看到该工具如何完成复杂的任务。在一个充满风险的黑盒子时代，拥有这种透明度是一个很大的好处。

### 试试 Dolibarr，一个开源的客户关系管理平台

你没有看错：这是另一篇关于客户关系管理的开源替代品的文章。[Pradeep Vijayakumar 的这篇文章](https://opensource.com/article/21/7/open-source-dolibarr) 涵盖了 Dolibarr，它在拥有 CRM 功能的同时还拥有强大的 ERP 功能。

Vijayakumar 就在做 Dolibarr 开发工作，所以他对安装它的 CRM、添加客户数据和设置活动的知识是非常丰富的。截图显示了每个过程的细节，并提供了优化工具的有用提示。

---

via: <https://opensource.com/article/21/12/open-source-alternatives>

作者：[Lauren Maffeo](https://opensource.com/users/lmaffeo) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


# 想在 Ubuntu 上使用深度桌面？UbuntuDDE Remix 21.10 来了！

>
> 想在不安装深度操作系统的情况下获得最新的深度桌面体验吗？UbuntuDDE Remix 21.10 终于登场了！
>
>
>

[深度 20.3](https://news.itsfoss.com/deepin-20-3-release/) 已经发布了一段时间，做了一些基本的改进和细微的视觉变化。

但是，如果你想在 Ubuntu 上面获得最新的深度桌面体验？UbuntuDDE Remix 21.10 “Impirish Indri” 终于登场了。

这可能是新年伊始第一周中令人兴奋的发布之一吧？

### UbuntuDDE Remix 21.10：有什么新内容？

该版本的关键亮点是增加了最新的深度桌面。你应该还会发现一个更新的 Linux 内核、Calamares 安装程序、更新的应用程序、新的壁纸，以及其他改进。

下面让我介绍一下这些基本的变化。

#### Ubuntu 21.10 & Linux 内核 5.13

[Linux 内核 5.13](https://news.itsfoss.com/linux-kernel-5-13-release/) 是一个必不可少的升级，它包括了一些硬件改进和安全增强。

具体来说，UbuntuDDE Remix 21.10 采用了 Linux 内核 5.13.0-22。

而且，这是建立在 [Ubuntu 21.10](https://news.itsfoss.com/ubuntu-21-10-release/) 的基础上的。因此，在这里你也可以得到 Ubuntu 21.10 的改进和功能。

#### 最新的深度桌面环境

有了最新的深度桌面，你也可以期待最新的软件包，包括更新的深度商店等等。

新的壁纸应该可以让你使桌面看起来很有美感。

#### 更新的软件包

Firefox 95.0 是默认的网页浏览器。LibreOffice 7.2.3.2 是默认的办公应用程序。

此外，你会发现其他几个与深度操作系统相关的软件包已经更新到最新版本。

#### 其他改进措施

不仅仅限于新增加的内容，你还会发现针对 UbuntuDDE 和上游深度桌面体验的错误修复。

你可以通过 [官方公告博文](https://ubuntudde.com/blog/ubuntudde-remix-21-10-impish-release-note) 了解更多关于该版本的信息。

### 下载 UbuntuDDE Remix 21.10

你可以从其官方网站上抓取 ISO 文件并安装。如果你想了解任何已知的问题，或获得帮助，你可以看看他们的 [论坛或群组](https://ubuntudde.com/support/)。

* [UbuntuDDE Remix 21.10](https://ubuntudde.com)

---

via: <https://news.itsfoss.com/ubuntudde-remix-21-10/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


Pinta 2.0 发布，移植到 GTK 3，改进了 HiDPI 支持

就是因为 GTK2 太丑了，没有选择 GIMP，也没有选择 Pinta，用了好久的 Krita。

用Blender吧

# Pinta 2.0 发布，移植到 GTK 3，改进了 HiDPI 支持

>
> 随着最新版本的发布，Pinta 终于带来了视觉上的更新和改进、移植到了 GTK 3 和 .NET 6。
>
>
>

新的一年的一周，你是否正在期待一些最新的开源应用发布。

你很幸运，Pinta 在新年前就宣布了他们的重大升级版本。

Pinta 是一个轻量级的绘画应用，可以作为一个简单的图像编辑工具。作为 [顶级开源绘画应用](https://itsfoss.com/open-source-paint-apps/) 之一，Pinta 的新版本将其基础转移到 GTK3 和 .NET 6，并带来了一些新的功能和用户界面改进。

它是一个跨平台的开源应用程序，可用于 Linux、Windows 和 MacOS。

让我们来看看 Pinta 2.0 提供了什么。

### 有什么新变化？

#### GTK3 移植

如上所述，Pinta 现在已经被移植到了 GTK3，应该可以支持 GTK3 主题。虽然这可能不会带来巨大的变化，但作为一个 Linux 的原生应用程序，肯定会对体验有所改善。

GTK 对话框和小工具也得到了相应的调整。这包括增加了 GTK 字体选择器，取代了旧的文本工具，并使用了平台原生的文件对话框。

#### 用户界面的改进

在用户界面方面，有许多变化和改进。其中一些包括：

* 使用 HiDPI 显示器的用户或许遇到的问题更少
* 一些工具现在使用旋转按钮而不是组合框
* 可以在状态栏上查看位置、缩放和调色板等信息
* 调色板现在显示最近使用的颜色
* 使用鼠标中键，你可以轻松地缩放和平移画布
* 取消了 “插件” 和 “最近打开” 菜单项

如果你使用 macOS，你可以注意到它使用了全局菜单而不是应用程序菜单，使其看起来更干净。

#### 其他改进措施

这个版本还改进了油漆桶、选择工具和魔杖工具的性能，也修复了大量的错误。

Windows 和 macOS 版本也得到了改进和更新。

你可以参考 [官方发布说明](https://www.pinta-project.com/releases/2-0) 了解更多技术细节。

### 下载 Pinta 2.0

我觉得将 Pinta 移植到 GTK3 的决定会受到用户的欢迎，但由于 [GTK 4.0](https://news.itsfoss.com/gtk-4-release/) 已经崭露头角，是否有点太晚了？让我们拭目以待。

总的来说，这个版本为用户的桌面外观提供了统一性。Pinta 2.0 看起来是一个做了有益改进的可靠版本。

你可以以 Flatpak、Snap、Tarball 等以及其它用于 Linux 的软件包格式下载 Pinta 2.0。

Windows 和 macOS 用户可以使用各自的安装程序，现在它捆绑了所有必要的依赖，如 GTK 和 .NET / Mono。

* [下载 Pinta 2.0](https://www.pinta-project.com/releases/)

---

via: <https://news.itsfoss.com/pinta-2-0-release/>

作者：[Rishabh Moharir](https://news.itsfoss.com/author/rishabh/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #507 新的插件可以防止从网上复制代码

Summary: 更多：• 阿里巴巴为 Linux 内核调度器提出组平衡器概念 • 夸大其词的 CleanCache 补丁将在十年后从 Linux 内核中删除

Oracle起家的传统艺能：夸大其词

Oracle起家的传统艺能：夸大其词

# 硬核观察 #507 新的插件可以防止从网上复制代码

### 新的插件可以防止从网上复制代码

JetBrains 发布了一个 [AntiCopyPaster](https://github.com/JetBrains-Research/anti-copy-paster) 开源插件，可以防止复制和粘贴代码。[研究人员观察到](https://arxiv.org/abs/2112.15230)，虽然“复制和粘贴构成了编写代码的一个重要部分”，但这样做会导致代码维护、安全问题和许可证问题。由于开发者倾向于抄袭，有很多重复的代码在四处飘荡。截至 2017 年，GitHub 上约有 [70% 的代码](https://www.theregister.com/2017/11/21/github_duplicate_code/) 来自复制的文件。AntiCopyPaster 会监控 IDE 中的粘贴代码，并扫描目标文件中的 Java 方法以找出重复的内容。该插件在粘贴操作后会等待一段时间，以允许对复制的代码进行编辑。只有当克隆的代码没有被改变时，该插件才会继续检查粘贴的片段是否原样复制的代码。

>
> 老王点评：看来以后 ICP 程序员难混咯。
>
>
>

### 阿里巴巴为 Linux 内核调度器提出组平衡器概念

越来越多的组织为了发展云计算等业务而配置他们的服务器在应用程序之间共享 CPU 核心/资源，而不是将某个 CPU 核心专门分配给单个应用程序/任务。阿里巴巴为 Linux 内核调度器提出一个新的“[组平衡器](https://lore.kernel.org/lkml/98f41efd-74b2-198a-839c-51b785b748a6@linux.alibaba.com/)”概念，以提升系统资源利用。这个平衡器的重点是在各组 CPU 核心之间平衡各组任务。这是一种缓解共享模式下冲突的方法，使组尽可能地排他，以获得性能和资源效率。在一台 128 核 CPU 服务器上的基准测试发现，与标准共享模式相比，Redis 在组平衡器模式下可以提升 2~10% 的性能。

>
> 老王点评：现在越来越多的看到了中国开发者在内核前沿做出更深入的探索和研究。
>
>
>

### 夸大其词的 CleanCache 补丁将在十年后从 Linux 内核中删除

CleanCache 是由 Oracle 开发的，在推出时他们宣称它是“非常酷的东西，有巨大的潜力超级优化运行的虚拟机的性能，是相当多的研究和实验的结果。”它有可能在许多环境中以可忽略的成本大幅提高许多工作负载的页面缓存效率。十年后的今天，CleanCache 已经没有任何内核代码在使用它们了，因此，它很可能在 Linux 5.17 中 [被主线移除](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Cleancache-EOL)。

>
> 老王点评：这种新陈代谢挺好，要不 Linux 内核越来越臃肿了。
>
>
>


2021 总结：开源软件改变商业的 5 种方式

Summary: 这组文章展示了企业如何与开源软件连接。

这组文章展示了企业如何与开源软件连接。

# 2021 总结：开源软件改变商业的 5 种方式

>
> 这组文章展示了企业如何与开源软件连接。
>
>
>

<img src="content_image/album_202201_06_100657stkkjn9froz4kkqk.jpg" alt="" title="A confusing business organization chart">

开源软件不仅仅创造了专有软件的替代品。在商业方面，开源已经成为一个“力量的倍增器”来改变组织的经营方式。同时，越来越多的公司开始采用更多的开源方法，甚至在管理团队和流程方面。

在过去的一年里，我们发表了许多优秀的文章，展示了企业如何与开源软件相联系。以下是一些阅读量最大的文章：

### 《开源给你带来竞争优势的 4 种方式》

为了在当今快节奏的世界中取得成功，企业必须对数字解决方案进行明智的投资，使他们能够更快地行动并提高运营的灵活性。这正是越来越多的各种规模和各种行业的组织拥抱开源解决方案的原因。根据麦肯锡的一份报告，开源的采用是表现优异的组织的最大差异化因素。[Jason Blais](https://opensource.com/users/jasonblais) 写了采用开源技术可以帮助组织推动竞争优势和体验更好的业务成果的 [四个原因](https://opensource.com/article/21/4/open-source-competitive-advantage)。

### 《为什么 Crate.io 回归其纯粹的开源根源》

开源技术提供企业级的可扩展性、性能、安全性和可靠性。信任就在那里，而且是当之无愧的。但除了顽固的开源信徒之外，较少被人称道的是日常社区贡献的内部运作，在原子级别建立了这些宏观利益。对于那些提供开源技术的人来说，社区不断的用户驱动的测试和加固将这些技术锻造成强大和成熟的解决方案。Crate.io 的联合创始人 [Bernd Dorn](https://opensource.com/users/bernd-dorn) 写道，该组织从“开放核心” [转变](https://opensource.com/article/21/4/crate-open-source) 为采用 Apache 2.0 许可的纯开源。

### 《为什么非营利组织选择开源软件》

随着科技和数据安全意识的提高，开源软件比以往任何时候都更成为各阶层组织的首选。非营利组织在财务方面尤其脆弱，同时又要处理重要的社会和环境问题。[Michael Korotaev](https://opensource.com/users/michaelk) 以 Nextcloud 和 ONLYOFFICE为 例，写了关于在非营利组织中 [采用开源协作技术](https://opensource.com/article/21/9/nonprofit-open-source) 的文章。

### 《管理开源产品路线图》

客户，以及与他们交谈的销售和营销团队，都喜欢一个路线图。它让他们了解什么是现实的，什么是不现实的。路线图也是一个产品的核心。[Scott McCarty](https://opensource.com/users/fatherlinux) 写了关于 [管理开源产品路线图](https://opensource.com/article/21/9/open-source-product-roadmap) 的文章，以及为什么专有产品的路线图与建立在开源供应链上的产品没有什么不同。产品经理与客户交谈，对他们的需求进行排序，制定路线图，然后找出如何通过建设、购买和合作来提供能力。

### 《将开源产品推向市场》

产品营销和计划中的信息传递的作用对于一个成功的发布至关重要。Scott McCarty 继续他关于开源供应链中的产品管理的系列文章，讨论了 [开源和产品营销的交叉点](https://opensource.com/article/21/10/open-source-product-market)。

---

via: <https://opensource.com/article/21/12/open-source-software-business>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


英特尔正准备为 Linux 提供 Windows 用户所没有的 “超能力”

# 英特尔正准备为 Linux 提供 Windows 用户所没有的 “超能力”

>
> 英特尔计划在 Linux 内核 5.17 中引入一个特殊的变化，可以在不重启系统的情况下更新系统固件。
>
>
>

<img src="content_image/album_202201_06_140244iepkefghpeeezgzg.png" alt="" title="">

去年发现的几个安全漏洞，使得系统管理员很难在不停机的情况下迅速修补系统。

如果能做出一些改进，在不重启系统的情况下更新一些关键组件以提高安全/性能呢？

英特尔旨在通过其新的 PFRUT（<ruby> 平台固件运行时更新和遥测 <rt>  Platform Firmware Runtime Update and Telemetry </rt></ruby>）驱动程序来实现这一目标。

### 英特尔计划在 Linux 内核 5.17 中提供 PFRUT

虽然 Linux 内核 5.16 将在本周晚些时候发布，不过英特尔的目标是将这一新的功能合并到即将发布的 Linux 内核 5.17 稳定版。

但是，它究竟是什么？

有了 PFRUT 驱动，特定组件（或系统固件）可以在系统运行时进行更新，而不需要重新启动。

最初，英特尔倾向于将其称为“无缝更新”解决方案。然而，随着最近被添加到 Linux 电源管理的 linux-next 分支中的 Linux 内核提交，他们可能会继续使用一个厂商中立的名字，即 `pfrut_driver`。

顺便说一句，linux-next 分支代表着这些变化将进入下一个 Linux 内核稳定版（5.17）。

在技术上，这个 [提交](https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?h=linux-next&id=0db89fa243e5edc5de38c88b369e4c3755c5fb74) 对该变化的解释如下：

>
> 用户应该提供 EFI 封包，并通过将该封包写入设备的特殊文件以将其传递给驱动程序。驱动程序在特定的 <ruby> ACPI 平台固件运行时更新 <rt>  ACPI Platform Firmware Runtime Update </rt></ruby>设备（INTC1080）的 ACPI \_DSM 方法的帮助下，将封包传输到平台固件，而实际的固件更新是由平台固件中的低级管理模式代码进行的。
>
>
>

就像人们通常期望的那样，这应该可以消除停机时间，可以对解决任何安全和性能改进的固件进行基本更新。而且，系统固件更新可以很容易地直接通过操作系统（这里是 Linux）进行。

正如其中一个 [详细说明其工作原理的 PDF 文件](https://uefi.org/sites/default/files/resources/Intel_MM_OS_Interface_Spec_Rev100.pdf) 中强调的那样，驱动程序的遥测部分是为了 “从 MM 中检索日志信息，以进行监控并找出问题的根本原因”。

请注意，这只有在 Linux 系统和英特尔芯片上才能实现。

考虑到当你需要修补系统固件以抵御安全问题时，等待系统上的任务完成不是一种理想状况，这种能力的增加应该是非常方便的。

### 这是为 Linux 桌面或服务器准备的吗？

该改进主要是为服务器专用硬件量身定做的。

英特尔的官方文件指出，这是为具有高服务水平协议（SLA）的系统准备的，这种 SLA 需要尽量减少重启。

然而，这对拥有企业级系统的特定桌面用户群应该也是有用的。

虽然这可能不是桌面 Linux 发行版必不可少的东西，但它可能是改善用户体验的一个令人兴奋的开始。特别是对于热衷于保持系统固件更新而不严重干扰其工作的用户。

这也应该可以引入更多类型的更新的可能性，当涉及到 BIOS 或 UEFI 时，可以由操作系统而不是主板处理。

这不仅限于为你的桌面配置服务器级别的硬件的 Linux 桌面用户。

虽然目前只限于 Linux 系统，但这也应该很快可以用于 Windows 和其他操作系统。

你对英特尔推出的这一变化有何看法？你认为这是对系统固件更新处理方式的一个重大改进吗？

欢迎在下面的评论中分享你的想法。

---

via: <https://news.itsfoss.com/intel-linux-kernel/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #508 研究人员“开源”免专利的新冠疫苗

Summary: 更多：• AI 的 6 种劣化情况 • 哈勃太空望远镜已运行超 10 亿秒

更多：• AI 的 6 种劣化情况 • 哈勃太空望远镜已运行超 10 亿秒

# 硬核观察 #508 研究人员“开源”免专利的新冠疫苗

### 研究人员“开源”免专利的新冠疫苗

由美国德克萨斯儿童医院和贝勒医学院的研究人员开发的新型新冠疫苗 Corbevax，正以无专利约束的形式提供给世界各地的疫苗制造商。人体试验证明该疫苗安全有效，印度已批准使用该疫苗，使该国的疫苗产量增加到每月超过 1 亿剂。该疫苗使用了一种传统的基于蛋白质的技术，这种技术已安全使用几十年，一直被用于生产乙型肝炎疫苗。该疫苗甚至比阿斯利康 Covishield 疫苗更好，对 Delta 变体有效性至少为 80%。

>
> 老王点评：或许这不是最有效的疫苗，但是更重要的是，它一个免专利的、可以让所有疫苗厂商生产制造的疫苗。
>
>
>

### AI 的 6 种劣化情况

AI 专家称，不需要恶毒的独裁者，AI 就可能会自然而然地出现 [6 种劣化情况](https://spectrum.ieee.org/ai-worst-case-scenarios)，这包括：深度伪造等技术用虚假替代了现实；忽视了数据安全和对社会造成的危害；被用来进行监控和跟踪；算法定义了人类所接受的信息；AI 自身的局限性和偏见造成的限制；过度监管限制了 AI 带来的好处。

>
> 老王点评：我觉得这些能认识到的问题其实都还属于可以解决的问题，倒也不必杞人忧天。
>
>
>

### 哈勃太空望远镜已运行超 10 亿秒

虽然詹姆斯·韦伯太空望远镜已经开始了它的漫长部署过程，但 1990 年 4 月 25 日从发现号航天飞机的货舱中展开的哈珀望远镜已经运行 31 年多了。这台望远镜在2021 年 1 月 1 日超过了 10 亿秒大关，目前已经进行了超过 150 万次的科学观测。哈珀望远镜的设计寿命是 15 年寿命，虽然不大可能再运行 10 亿秒了，但是 NASA 希望它还可以坚持几年。

>
> 老王点评：缝缝补补又三年，这几年 NASA 为了让它恢复工作，简直是操尽了心。
>
>
>


Linux Mint 20.3 “Una” 发布

# Linux Mint 20.3 “Una” 发布

>
> Linux Mint 20.3 “Una” 有一些细微的视觉变化，弥补了现代外观，以及新的应用改进。
>
>
>

代号为 “Una” 的 Linux Mint 20.3 终于来了。官方公告应该很快就会跟进，但它现在已经可以下载了！

虽然 [Linux Mint 20.2](https://news.itsfoss.com/linux-mint-20-2-release/) 有一些令人印象深刻的改进，但 Linux Mint 20.3 看起来也是一个不错的版本。

在这里，我会重点指出 Linux Mint 20.3 的关键变化。

### Linux Mint 20.3 的新变化

在这个版本中，Linux Mint 20.3 包含了最新的 Cinnamon 5.2，一些细微的视觉变化，以及其他各种改进。

请注意，在 Xfce 和 MATE 版中的变化是一样的（不包括桌面环境的具体改进）。

#### Cinnamon 5.2 桌面环境

在 Cinnamon 5 中，增加了一些调整和管理桌面环境所消耗资源的功能。

这一次，升级的重点是几个新功能。日历小程序增强了功能，当你点击系统时间/日期图标时，可以直接从系统托盘上显示事件。

如果你使用 GNOME 日历或在线账户（如 Google 日历），这些事件应该是同步的。

除此以外，你还会发现 Nemo 文件管理器的改进和窗口动画的细微变化。

还有一些必要的错误修复和总体上的小改进。

#### 新的背景

新的版本、新的壁纸，总是令人耳目一新。而且，Mint 20.3 也不会让你失望。

你会得到一个精心策划的美妙的壁纸集，你可以选择使用。

#### 视觉主题刷新及深色模式

在 Linux Mint 20.3 中，主题已经进行了改造，对重点颜色轻微进行了重新处理（使其更时尚一些），并从一些小部件中删除了它。

与窗口的圆角一起，这构成了一个更干净和现代的外观。

总的来说，包括新的图标，Linux Mint 20.3 带来了一个新的主题包。

如果你想要同样的外观，同时保持其他的优点，你可以简单地从仓库安装传统主题包并应用它。

一旦你安装了传统主题包，就可以在选择中找到它了。

不仅如此，你可以注意到，我更喜欢用深色模式的截图来写文章，因为 Linux Mint 20.3 终于把更多的注意力放在深色模式上！

一些默认的应用程序，如 Hypnotix、Gnome 终端、Celluloid，都是在启用深色模式的情况下启动的。如果你愿意，你可以永久地禁用它们。

### 新的 Thingy 应用程序

当 Clem（Linux Mint 的首席开发者）暗示会有一个新的惊喜应用时，我们 [很快就在 Linux Mint 20.3 里发现了它](https://news.itsfoss.com/linux-mint-20-3-release-thingy/)。

在稳定版更新之前，测试版就已经确认了它。

新的 Thingy 应用程序也被称为 “Library”，它实际上是 Linux Mint 默认的文档管理器。你可以下载电子书和其他 PDF 文件，Library 应用应该会自动从下载目录中检测到它。

#### 应用程序的改进

一些默认的应用程序，如 Hypnotix IPTV 播放器和便签现在可以分别让你搜索频道或便签。

### 其他改进

其他一些改进有助于提高性能，更好地节省电力，以及更多。

考虑到它是基于 Ubuntu 20.04.3 的，带有 Linux 内核 5.4 LTS。

你可以在官方公告帖子中找到更多关于这些变化的信息。

### 下载 Linux Mint 20.3

你可以从官方主页上下载 ISO。他们还没有更新下载页面，但你可以从他们的 [Torrent 下载页面](https://linuxmint.com/torrents/) 找到最新的 ISO。

如果你想要直接的下载链接，你可以看一下 [全球镜像](https://mirrors.edge.kernel.org/linuxmint/stable/20.3/) 来获得所有的 Linux Mint 版本。

* [Linux Mint 20.3](https://linuxmint.com/download.php)

---

via: <https://news.itsfoss.com/linux-mint-20-3-una-release/>

作者：[Ankush Das](https://news.itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


2021 总结：经营小型企业的开源工具

Summary: 这些文章显示了开源作为工具、平台或集成点在商业中的力量。

这些文章显示了开源作为工具、平台或集成点在商业中的力量。

# 2021 总结：经营小型企业的开源工具

>
> 这些文章显示了开源作为工具、平台或集成点在商业中的力量。
>
>
>

<img src="content_image/album_202201_07_122339ulofkl3j89o94f3l.jpg" alt="" title="Tools illustration">

今年，我们刊登了几篇关注商业中的开源的好文章。这些文章展示了开源作为工具、平台或集成点在商业中的力量。让我们回顾一下 2021 年的一些顶级开源商业故事。

### 《我最喜欢的开源项目管理工具》

如果你在办公环境中管理过项目，你很可能使用微软 Project 来跟踪任务和分配。然而，开源社区已经创造了许多跟踪项目的选项。对于你的 [项目管理需求](https://opensource.com/article/21/3/open-source-project-management)，[Frank Bergmann](http://fraber) 写了关于使用 Redmine、project-open、ProjectLibre、GanttProject、TaskJuggler 和 ProjeQtOr。

### 《使用 Apache Superset 进行开源商业智能报告》

通过商业智能，你可以通过对数据进行分类、安排结果和显示上下文信息来更好地了解你的信息。对于任何想要做出“数据驱动”决策的组织来说，商业智能（BI）是一项关键技术。[Maxime Beauchemin](https://opensource.com/users/mistercrunch) 的文章讨论了 [Apache Superset](https://opensource.com/article/21/4/business-intelligence-open-source)，以及它如何成熟地成为一个领先的开源 BI 解决方案。

### 《6 个用于餐馆和零售商的 WordPress 插件》

这场大流行病可能永久性地改变了许多人喜欢做生意的方式。餐馆和其他当地的零售机构不能再像以前那样依赖上门交易了。网上订购食品和其他物品已经成为一种常态和期望。当大流行结束后，消费者不太可能背弃电子商务的便利。[Don Watkins](https://opensource.com/users/don-watkins) 写了 [六个开源插件](https://opensource.com/article/21/3/wordpress-plugins-retail)，帮助你创建一个 WordPress 网站，满足你的客户对网上购物、路边取货和送货的偏好。它还可以建立你的品牌和你的客户群。

### 《试试 Chatwoot，一个开源的客户关系平台》

在任何有面向客户的业务中，保持与客户的互动是至关重要的。我们最后一次接触这个客户是什么时候，或者他们最后一次接触我们是什么时候？我们的组织中谁做了回应？什么服务水平协议制约着这种关系？这些和其他问题最好在客户关系管理系统（CRM）中进行管理。[Nitish Tiwari](https://opensource.com/users/tiwarinitish86) 介绍了 [Chatwoot](https://opensource.com/article/21/6/chatwoot)，一个用 Ruby 和 Vue.js 构建的开源客户关系平台。Chatwoot 是从零开始写的，目的是让客户关系团队建立端到端的票据管理和支持平台。本文将介绍 Chatwoot 的架构、安装和主要功能。

### 《试试 Dolibarr，一个开源的客户关系管理平台》

无论你是经营零售店、餐厅、酒吧、超市、健身房还是其他业务，你都需要一个可靠的方式来与你的客户保持联系。毕竟，他们是客户，因为他们喜欢你做的事情，如果他们与你分享了他们的联系信息，他们想听到更多关于你所提供的东西。[Pradeep Vijayakumar](https://opensource.com/users/deepschennai) 介绍了 [Dolibarr](https://opensource.com/article/21/7/open-source-dolibarr) 项目，一个开源的企业资源规划（ERP）和客户关系管理（CRM）软件。Dolibarr 提供了一整套 ERP 功能，包括销售点（POS）、发票、存货和库存管理、销售订单、采购订单和人力资源管理。

### 《微软 Exchange 的一个开源替代品》

多年来，微软 Exchange 作为群件环境的必然选择。然而，在 2020 年末，一个奥地利的开源软件开发商推出了 [grommunio](https://opensource.com/article/21/9/open-source-groupware-grommunio)，它是一个群件服务器和客户端，其外观和感觉为 Exchange 和 Outlook 用户所熟悉。[Markus Feilner](https://opensource.com/users/mfeilner) 写了关于 grommunio 如何在企业中取代 Exchange，成为群件的一个强大而功能齐全的选择。

### 《用这个开源工具简化发票的指南》

许多 IT 项目在开发过程中会延迟、超出预算，并出现巨大的变化。这些问题使开具发票成为 IT 领域最费力的活动之一。Frank Bergmann 写了一篇关于开源项目如何 [简化开票过程](https://opensource.com/article/21/7/open-source-invoicing-po) 的文章。如果你决定成为自雇人士或成立一个创业公司，Frank 的文章也可以作为处理财务工作的指南。

### 开源是好生意

开源软件不仅仅是为开发者服务的。企业也可以利用开源软件的力量。事实上，开源是许多商业领域的一个主要驱动力。你今天使用的工具可能本身就是开源软件，或者使用开源作为堆栈的一部分。

---

via: <https://opensource.com/article/21/12/open-source-business-tools>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #509 本田汽车的时钟穿越回 20 年前，且无法修复

Summary: 更多：• 聊天机器人仍然很蠢 • 英国警方扣押了超过 4 亿美元比特币

Thanks for the echo.

更多：• 聊天机器人仍然很蠢 • 英国警方扣押了超过 4 亿美元比特币

# 硬核观察 #509 本田汽车的时钟穿越回 20 年前，且无法修复

### 本田汽车的时钟穿越回 20 年前，且无法修复

本田和讴歌车主报告说，他们的时钟和日历被卡在 2002 年的 [某个时间](https://jalopnik.com/honda-clocks-are-stuck-20-years-in-the-past-and-this-mi-1848306970)。本田公司说它正在调查，如果它没有找到修复方法，时钟应该在 8 月的某个时候自行纠正。这可能是配备的导航系统的 GPS 导致的。一位用户发现，它的 GPS 日期被设置为 2002 年 5 月 19 日，也就是过去的整整 1024 周。GPS 从一个纪元开始测量时间，然后广播一个代表一周的数字，这个数字最大为 1024，每 19.6 年达到最大值之后会回滚。虽然上次回滚是 2019 年 4 月 6 日，但可能本田汽车的 GPS 增加了一个偏移量，因而在 2022 年第一周发生了回滚。

>
> 老王点评：虽然千年虫问题已经人尽皆知了，但是还是有粗心的程序员总是出现各种溢出问题。
>
>
>

### 聊天机器人仍然很蠢

50 年前，AI 专家曾经预测几年内会出现“相当于普通人类水平的通用智能机器”，然而并没有。[根本障碍](https://mindmatters.ai/2022/01/will-chatbots-replace-the-art-of-human-conversation/) 在于，尽管计算机算法确实非常善于识别统计模式，但它们不知道这些模式意味着什么。大型语言模型（LLM）可能是由统计学驱动的。与 Google 最先进的聊天机器人 LaMDA 的对话令人印象深刻，非常像人类的口吻，但是它们不过是“流利的废话喷井”，或者是“随机鹦鹉”罢了。

>
> 老王点评：这些聊天机器人只是知道“应该”怎么回答，但是它其实并不知道说的是什么。
>
>
>

### 英国警方扣押了超过 4 亿美元比特币

根据 [披露的信息](https://www.newscientist.com/article/mg25333681-800-uk-police-forces-have-seized-more-than-300-million-in-bitcoin/)，英国警方扣押了价值超过 4 亿美元的比特币和其它加密货币。英国警方缴获了这些加密货币并将其出售：一半交给英国内政部，另一半用于重新投入调查。

另外，据报告，2021 年加密货币相关犯罪的规模 [高达 140 亿美元](https://blog.chainalysis.com/reports/2022-crypto-crime-report-introduction/)，而 2020 年才 78 亿美元。

>
> 老王点评：这比打击一般的违反犯罪行为的缴获更多，警察们也更有动力。
>
>
>

### 回音

* [被指责后](/article-14147-1.html)，Mozilla 基金会 [表示](https://twitter.com/mozilla/status/1479143340159422468) 暂停接受加密货币捐款。
* HPE [承认](https://www.techradar.com/news/this-hpe-software-update-accidentally-wiped-77tb-of-data) 是它的更新程序错误导致日本京都大学 [丢失](/article-14135-1.html) 了 77TB 的数据。


使用 OBS 搭建视频流媒体服务器

Summary: 在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。

在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。

# 使用 OBS 搭建视频流媒体服务器

>
> 在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。
>
>
>

实时视频流越来越流行。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户，这些用户消磨了无数小时的来观看直播和录制视频。这些视频服务通常可以免费使用，但需要你拥有一个帐户，并且一般会将你的视频内容隐藏在广告中。有些人不希望他们的视频提供给大众观看，或者想更多地控制自己的视频内容。幸运的是，借助强大的开源软件，任何人都可以设置直播服务器。

### 入门

在本教程中，我将说明如何使用 Linux 或 BSD 操作系统设置基本的实时流媒体服务器。

搭建实时流媒体服务器不可避免地提到系统需求问题。这些需求多种多样，因为实时流媒体涉及许多因素，例如：

* **流媒体质量：** 你想以高清流媒体播放还是标清视频就可以满足你的需求？
* **收视率：** 你的视频预计有多少观众？
* **存储：** 你是否打算保留已保存的视频流副本？
* **访问：** 你的视频流是私有的还是向全世界开放的？

在硬件要求方面没有固定规则，因此我建议你进行测试，以便找到最适合你需求的配置。本项目中，我将服务器安装在配有 4GB 内存、20GB 硬盘空间和单个 Intel i7 处理器内核的虚拟机上。

本项目使用<ruby> 实时消息传递协议 <rt>  Real-Time Messaging Protocol </rt></ruby>（RTMP）来处理音频和视频流。当然还有其他协议可用，但我选择 RTMP 是因为它具有广泛的支持。鉴于像 WebRTC 这样的开放标准变得更加兼容，我比较推荐这条路线。

同样重要的是，要明白“实时”并不总是意味着即时。视频流必须经过编码、传输、缓冲和显示，这通常会增大延迟。延迟可以被缩短或延长，具体取决于你创建的流类型及其属性。

### 设置 Linux 服务器

你可以使用许多不同的 Linux 发行版，但我更喜欢 Ubuntu，因此我下载了 [Ubuntu 服务器版](https://www.ubuntu.com/download/server) 作为我的操作系统。如果你希望你的服务器具有图形用户界面（GUI），请随意使用 [Ubuntu 桌面版](https://www.ubuntu.com/download/desktop) 或其多种风味版本之一。然后，我在我的计算机或虚拟机上启动了 Ubuntu 安装程序，并选择了最适合我的环境的设置。以下是我采取的步骤。

注意：因为这是一个服务器，你可能需要设置静态网络。

安装程序完成并重新启动系统后，你会看到一个可爱的新 Ubuntu 系统。 与任何新安装的操作系统一样，安装任何可用的更新：

```
sudo apt update
sudo apt upgrade

```

这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器，所以你需要安装它：

```
sudo apt install nginx

```

然后你需要获取 RTMP 模块，以便 Nginx 可以处理你的媒体流：

```
sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

```

修改你的网页服务器配置，使其能够接受和传送你的媒体流。

```
sudo nano /etc/nginx/nginx.conf

```

滚动到配置文件的底部并添加以下代码：

```
rtmp {
   server {
    listen 1935;
    chunk_size 4096;

    application live {
      live on;
      record off;
    }
  }
}

```

保存配置。我是使用 [Nano](https://www.nano-editor.org/) 来编辑配置文件的异端。在 Nano 中，你可以通过快捷键 `Ctrl+X`、`Y` 并按下回车来保存你的配置。

这么一个非常小的配置就可以创建一个可工作的流服务器。稍后你将添加更多内容到此配置中，但这是一个很好的起点。

在开始第一个流之前，你需要使用新配置重新启动 Nginx：

```
sudo systemctl restart nginx

```

### 设置 BSD 服务器

如果是“小恶魔”（LCTT 译者注：FreeBSD 的标志是一个拿着叉子的红色小恶魔）的信徒，那么建立并运行一个流媒体服务器也非常容易。

前往 [FreeBSD](https://www.freebsd.org/) 网站并下载最新版本。在你的计算机或虚拟机上启动 FreeBSD 安装程序，然后执行初始步骤并选择最适合你环境的设置。由于这是一个服务器，你可能需要设置静态网络。

在安装程序完成并重新启动系统后，你应该就拥有了一个闪亮的新 FreeBSD 系统。像任何其他新安装的系统一样，你可能希望更新所有内容（从这一步开始，请确保你以 root 身份登录）：

```
pkg update
pkg upgrade

```

安装 [Nano](https://www.nano-editor.org/) 来编辑配置文件：

```
pkg install nano

```

这个流媒体服务器将使用非常强大通用的 Nginx 网络服务器。 你可以使用 FreeBSD 所拥有的优秀 ports 系统来构建 Nginx。

首先，更新你的 ports 树：

```
portsnap fetch
portsnap extract

```

进入 Nginx ports 目录：

```
cd /usr/ports/www/nginx

```

运行如下命令开始构建 Nginx：

```
make install

```

你将看到一个屏幕，询问你的 Nginx 构建中要包含哪些模块。对于这个项目，你需要添加 RTMP 模块。向下滚动直到选中 RTMP 模块，并按下空格键。然后按回车键继续剩下的构建和安装。

Nginx 安装完成后，就该为它配置流式传输了。

首先，在 `/etc/rc.conf` 中添加一个条目以确保 Nginx 服务器在系统启动时启动：

```
nano /etc/rc.conf

```

将此文本添加到文件中：

```
nginx_enable="YES"

```

接下来，创建一个网站根目录，Nginx 将从中提供其内容。我自己的目录叫 `stream`：

```
cd /usr/local/www/
mkdir stream
chmod -R 755 stream/

```

现在你已经创建了你的流目录，通过编辑配置文件来配置 Nginx：

```
nano /usr/local/etc/nginx/nginx.conf

```

在文件顶部加载你的流媒体模块：

```
load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

```

在 `Server` 部分下，更改 `root` 位置以匹配你之前创建的目录位置：

```
Location / {
  root /usr/local/www/stream
}

```

最后，添加你的 RTMP 设置，以便 Nginx 知道如何处理你的媒体流：

```
rtmp {
  server {
    listen 1935;
    chunk_size 4096;

    application live {
      live on;
      record off;
    }
  }
}

```

保存配置。在 Nano 中，你可以通过快捷键 `Ctrl+X`、`Y`，然后按回车键来执行此操作。

如你所见，这么一个非常小的配置将创建一个工作的流服务器。稍后，你将添加更多内容到此配置中，但这将为你提供一个很好的起点。

但是，在开始第一个流之前，你需要使用新配置重新启动 Nginx：

```
service nginx restart

```

### 设置你的流媒体软件

#### 使用 OBS 进行广播

现在你的服务器已准备好接受你的视频流，是时候设置你的流媒体软件了。本教程使用功能强大的开源的 Open Broadcast Studio（OBS）。

前往 [OBS 网站](https://obsproject.com/)，找到适用于你的操作系统的版本并安装它。OBS 启动后，你应该会看到一个首次运行向导，该向导将帮助你使用最适合你的硬件的设置来配置 OBS。

OBS 没有捕获任何内容，因为你没有为其提供源。在本教程中，你只需为流捕获桌面。单击“<ruby> 来源 <rt>  Source </rt></ruby>”下的 “+” 按钮，选择“<ruby> 显示捕获 <rt>  Screen Capture </rt></ruby>”，然后选择要捕获的桌面。

单击“<ruby> 确定 <rt>  OK </rt></ruby>”，你应该会看到 OBS 镜像了你的桌面。

现在可以将你新配置的视频流发送到你的服务器了。在 OBS 中，单击“<ruby> 文件 > 设置 <rt>  File > Settings </rt></ruby>”。 单击“<ruby> 流 <rt>  Stream </rt></ruby>”部分，并将“<ruby> 串流类型 <rt>  Stream Type </rt></ruby>” 设置为“<ruby> 自定义流媒体服务器 <rt>  Custom Streaming Server </rt></ruby>”。

在 URL 框中，输入前缀 `rtmp://` 后跟流媒体服务器的 IP 地址，后跟 `/live`。例如，`rtmp://IP-ADDRESS/live`。

接下来，你可能需要输入“<ruby> 串流密钥 <rt>  Stream key </rt></ruby>”，这是观看你的流所需的特殊标识符。 在“<ruby> 串流密钥 <rt>  Stream key </rt></ruby>”框中输入你想要（并且可以记住）的任何关键词。

单击“<ruby> 应用 <rt>  Apply </rt></ruby>”，然后单击“<ruby> 确定 <rt>  OK </rt></ruby>”。

现在 OBS 已配置为将你的流发送到你的服务器，你可以开始你的第一个视频流。 单击“<ruby> 开始推流 <rt>  Start Streaming </rt></ruby>”。

如果一切正常，你应该会看到按钮更改为“<ruby> 停止推流 <rt>  Stop Streaming </rt></ruby>”，并且在 OBS 的底部将出现一些带宽指标。

如果你收到错误消息，请仔细检查 OBS 中的流设置是否有拼写错误。如果一切看起来都不错，则可能是另一个问题阻止了它的工作。

### 观看你的视频流

如果没有人观看，就说明直播视频不是很好，所以请成为你的第一个观众！

有许多支持 RTMP 的开源媒体播放器，但最著名的可能是 [VLC 媒体播放器](https://www.videolan.org/vlc/index.html)。

安装并启动 VLC 后，通过单击“<ruby> 媒体 > 打开网络串流 <rt>  Media > Open Network Stream </rt></ruby>” 打开你的流。输入你的流的路径，添加你在 OBS 中设置的串流密钥，然后单击“<ruby> 播放 <rt>  Play </rt></ruby>”。 例如，`rtmp://IP-ADDRESS/live/SECRET-KEY`。

你现在应该可以看到自己的实时视频流了！

### 接下来要做什么？

本项目是一个非常简单的设置，可以让你开始工作。 以下是你可能想要使用的另外两个功能。

* **限制访问：** 你可能想要做的下一件事情是限制对你服务器的访问，因为默认设置允许任何人与服务器之间进行流传输。有多种设置方法，例如操作系统防火墙、[.htaccess 文件](https://httpd.apache.org/docs/current/howto/htaccess.html)，甚至使用 [STMP 模块中的内置访问控制](https://github.com/arut/nginx-rtmp-module/wiki/Directives#access)。
* **录制流：** 这个简单的 Nginx 配置只会流传输而不会保存你的视频，但这很容易修改。在 Nginx 配置文件中的 RTMP 部分下，设置录制选项和要保存视频的位置。确保你设置的路径存在并且 Nginx 能够写入它。

```
application live {
  live on;
  record all;
  record_path /var/www/html/recordings;
  record_unique on;
}

```

实时流媒体的世界在不断发展，如果你对更高级的用途感兴趣，可以在互联网上找到许多其他很棒的资源。祝你好运，直播快乐！

---

via: <https://opensource.com/article/19/1/basic-live-video-streaming-server>

作者：[Aaron J.Prisk](https://opensource.com/users/ricepriskytreat) 选题：[lujun9972](https://github.com/lujun9972) 译者：[Starryi](https://github.com/Starryi) 校对：[wxy](https://github.com/wxy)

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


用 NumPy 在 Python 中处理数字

Summary: 这篇文章讨论了安装 NumPy，然后创建、读取和排序 NumPy 数组。

这篇文章讨论了安装 NumPy，然后创建、读取和排序 NumPy 数组。

# 用 NumPy 在 Python 中处理数字

>
> 这篇文章讨论了安装 NumPy，然后创建、读取和排序 NumPy 数组。
>
>
>

<img src="content_image/album_202201_08_174635srrhdhh8wq9fdkrh.jpg" alt="" title="old school calculator">

NumPy（即 **Num**erical **Py**thon）是一个库，它使得在 Python 中对线性数列和矩阵进行统计和集合操作变得容易。[我在 Python 数据类型的笔记中介绍过](https://notes.ayushsharma.in/2018/09/data-types-in-python)，它比 Python 的列表快几个数量级。NumPy 在数据分析和科学计算中使用得相当频繁。

我将介绍安装 NumPy，然后创建、读取和排序 NumPy 数组。NumPy 数组也被称为 ndarray，即 N 维数组的缩写。

### 安装 NumPy

使用 `pip` 安装 NumPy 包非常简单，可以像安装其他软件包一样进行安装：

```
pip install numpy

```

安装了 NumPy 包后，只需将其导入你的 Python 文件中：

```
import numpy as np

```

将 `numpy` 以 `np` 之名导入是一个标准的惯例，但你可以不使用 `np`，而是使用你想要的任何其他别名。

### 为什么使用 NumPy? 因为它比 Python 列表要快好几个数量级

当涉及到处理大量的数值时，NumPy 比普通的 Python 列表快几个数量级。为了看看它到底有多快，我首先测量在普通 Python 列表上进行 `min()` 和 `max()` 操作的时间。

我将首先创建一个具有 999,999,999 项的 Python 列表：

```
>>> my_list = range(1, 1000000000)
>>> len(my_list)
999999999

```

现在我将测量在这个列表中找到最小值的时间：

```
>>> start = time.time()
>>> min(my_list)
1
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
Time elapsed in milliseconds: 27007.00879096985

```

这花了大约 27,007 毫秒，也就是大约 **27 秒**。这是个很长的时间。现在我试着找出寻找最大值的时间：

```
>>> start = time.time()
>>> max(my_list)
999999999
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
Time elapsed in milliseconds: 28111.071348190308

```

这花了大约 28,111 毫秒，也就是大约 **28 秒**。

现在我试试用 NumPy 找到最小值和最大值的时间：

```
>>> my_list = np.arange(1, 1000000000)
>>> len(my_list)
999999999
>>> start = time.time()
>>> my_list.min()
1
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
Time elapsed in milliseconds: 1151.1778831481934
>>>
>>> start = time.time()
>>> my_list.max()
999999999
>>> print('Time elapsed in milliseconds: ' + str((time.time() - start) * 1000))
Time elapsed in milliseconds: 1114.8970127105713

```

找到最小值花了大约 1151 毫秒，找到最大值 1114 毫秒。这大约是 **1 秒**。

正如你所看到的，使用 NumPy 可以将寻找一个大约有 10 亿个值的列表的最小值和最大值的时间 **从大约 28 秒减少到 1 秒**。这就是 NumPy 的强大之处。

### 使用 Python 列表创建 ndarray

有几种方法可以在 NumPy 中创建 ndarray。

你可以通过使用元素列表来创建一个 ndarray：

```
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
>>> print(my_ndarray)
[1 2 3 4 5]

```

有了上面的 ndarray 定义，我将检查几件事。首先，上面定义的变量的类型是 `numpy.ndarray`。这是所有 NumPy ndarray 的类型：

```
>>> type(my_ndarray)
<class 'numpy.ndarray'>

```

这里要注意的另一件事是 “<ruby> 形状 <rt>  shape </rt></ruby>”。ndarray 的形状是 ndarray 的每个维度的长度。你可以看到，`my_ndarray` 的形状是 `(5,)`。这意味着 `my_ndarray` 包含一个有 5 个元素的维度（轴）。

```
>>> np.shape(my_ndarray)
(5,)

```

数组中的维数被称为它的 “<ruby> 秩 <rt>  rank </rt></ruby>”。所以上面的 ndarray 的秩是 1。

我将定义另一个 ndarray `my_ndarray2` 作为一个多维 ndarray。那么它的形状会是什么呢？请看下面：

```
>>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
>>> np.shape(my_ndarray2)
(2, 3)

```

这是一个秩为 2 的 ndarray。另一个要检查的属性是 `dtype`，也就是数据类型。检查我们的 ndarray 的 `dtype` 可以得到以下结果：

```
>>> my_ndarray.dtype
dtype('int64')

```

`int64` 意味着我们的 ndarray 是由 64 位整数组成的。NumPy 不能创建混合类型的 ndarray，必须只包含一种类型的元素。如果你定义了一个包含混合元素类型的 ndarray，NumPy 会自动将所有的元素类型转换为可以包含所有元素的最高元素类型。

例如，创建一个 `int` 和 `float` 的混合序列将创建一个 `float64` 的 ndarray：

```
>>> my_ndarray2 = np.array([1, 2.0, 3])
>>> print(my_ndarray2)
[1. 2. 3.]
>>> my_ndarray2.dtype
dtype('float64')

```

另外，将其中一个元素设置为 `string` 将创建 `dtype` 等于 `<U21` 的字符串 ndarray，意味着我们的 ndarray 包含 unicode 字符串：

```
>>> my_ndarray2 = np.array([1, '2', 3])
>>> print(my_ndarray2)
['1' '2' '3']
>>> my_ndarray2.dtype
dtype('<U21')

```

`size` 属性将显示我们的 ndarray 中存在的元素总数：

```
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
>>> my_ndarray.size
5

```

### 使用 NumPy 方法创建 ndarray

如果你不想直接使用列表来创建 ndarray，还有几种可以用来创建它的 NumPy 方法。

你可以使用 `np.zeros()` 来创建一个填满 0 的 ndarray。它需要一个“形状”作为参数，这是一个包含行数和列数的列表。它还可以接受一个可选的 `dtype` 参数，这是 ndarray 的数据类型：

```
>>> my_ndarray = np.zeros([2,3], dtype=int)
>>> print(my_ndarray)
[[0 0 0]
 [0 0 0]]

```

你可以使用 `np. ones()` 来创建一个填满 `1` 的 ndarray：

```
>>> my_ndarray = np.ones([2,3], dtype=int)
>>> print(my_ndarray)
[[1 1 1]
 [1 1 1]]

```

你可以使用 `np.full()` 来给 ndarray 填充一个特定的值：

```
>>> my_ndarray = np.full([2,3], 10, dtype=int)
>>> print(my_ndarray)
[[10 10 10]
 [10 10 10]]

```

你可以使用 `np.eye()` 来创建一个单位矩阵 / ndarray，这是一个沿主对角线都是 `1` 的正方形矩阵。正方形矩阵是一个行数和列数相同的矩阵：

```
>>> my_ndarray = np.eye(3, dtype=int)
>>> print(my_ndarray)
[[1 0 0]
 [0 1 0]
 [0 0 1]]

```

你可以使用 `np.diag()` 来创建一个沿对角线有指定数值的矩阵，而在矩阵的其他部分为 `0`：

```
>>> my_ndarray = np.diag([10, 20, 30, 40, 50])
>>> print(my_ndarray)
[[10  0  0  0  0]
 [ 0 20  0  0  0]
 [ 0  0 30  0  0]
 [ 0  0  0 40  0]
 [ 0  0  0  0 50]]

```

你可以使用 `np.range()` 来创建一个具有特定数值范围的 ndarray。它是通过指定一个整数的开始和结束（不包括）范围以及一个步长来创建的：

```
>>> my_ndarray = np.arange(1, 20, 3)
>>> print(my_ndarray)
[ 1  4  7 10 13 16 19]

```

### 读取 ndarray

ndarray 的值可以使用索引、分片或布尔索引来读取。

#### 使用索引读取 ndarray 的值

在索引中，你可以使用 ndarray 的元素的整数索引来读取数值，就像你读取 Python 列表一样。就像 Python 列表一样，索引从 `0` 开始。

例如，在定义如下的 ndarray 中：

```
>>> my_ndarray = np.arange(1, 20, 3)

```

第四个值将是 `my_ndarray[3]`，即 `10`。最后一个值是 `my_ndarray[-1]`，即 `19`：

```
>>> my_ndarray = np.arange(1, 20, 3)
>>> print(my_ndarray[0])
1
>>> print(my_ndarray[3])
10
>>> print(my_ndarray[-1])
19
>>> print(my_ndarray[5])
16
>>> print(my_ndarray[6])
19

```

#### 使用分片读取 ndarray

你也可以使用分片来读取 ndarray 的块。分片的工作方式是用冒号（`:`）操作符指定一个开始索引和一个结束索引。然后，Python 将获取该开始和结束索引之间的 ndarray 片断：

```
>>> print(my_ndarray[:])
[ 1  4  7 10 13 16 19]
>>> print(my_ndarray[2:4])
[ 7 10]
>>> print(my_ndarray[5:6])
[16]
>>> print(my_ndarray[6:7])
[19]
>>> print(my_ndarray[:-1])
[ 1  4  7 10 13 16]
>>> print(my_ndarray[-1:])
[19]

```

分片创建了一个 ndarray 的引用（或视图）。这意味着，修改分片中的值也会改变原始 ndarray 的值。

比如说：

```
>>> my_ndarray[-1:] = 100
>>> print(my_ndarray)
[  1   4   7  10  13  16 100]

```

对于秩超过 1 的 ndarray 的分片，可以使用 `[行开始索引:行结束索引, 列开始索引:列结束索引]` 语法：

```
>>> my_ndarray2 = np.array([(1, 2, 3), (4, 5, 6)])
>>> print(my_ndarray2)
[[1 2 3]
 [4 5 6]]
>>> print(my_ndarray2[0:2,1:3])
[[2 3]
 [5 6]]

```

#### 使用布尔索引读取 ndarray 的方法

读取 ndarray 的另一种方法是使用布尔索引。在这种方法中，你在方括号内指定一个过滤条件，然后返回符合该条件的 ndarray 的一个部分。

例如，为了获得一个 ndarray 中所有大于 5 的值，你可以指定布尔索引操作 `my_ndarray[my_ndarray > 5]`。这个操作将返回一个包含所有大于 5 的值的 ndarray：

```
>>> my_ndarray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> my_ndarray2 = my_ndarray[my_ndarray > 5]
>>> print(my_ndarray2)
[ 6  7  8  9 10]

```

例如，为了获得一个 ndarray 中的所有偶数值，你可以使用如下的布尔索引操作：

```
>>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 0]
>>> print(my_ndarray2)
[ 2  4  6  8 10]

```

而要得到所有的奇数值，你可以用这个方法：

```
>>> my_ndarray2 = my_ndarray[my_ndarray % 2 == 1]
>>> print(my_ndarray2)
[1 3 5 7 9]

```

### ndarray 的矢量和标量算术

NumPy 的 ndarray 允许进行矢量和标量算术操作。在矢量算术中，在两个 ndarray 之间进行一个元素的算术操作。在标量算术中，算术运算是在一个 ndarray 和一个常数标量值之间进行的。

如下的两个 ndarray：

```
>>> my_ndarray = np.array([1, 2, 3, 4, 5])
>>> my_ndarray2 = np.array([6, 7, 8, 9, 10])

```

如果你将上述两个 ndarray 相加，就会产生一个两个 ndarray 的元素相加的新的 ndarray。例如，产生的 ndarray 的第一个元素将是原始 ndarray 的第一个元素相加的结果，以此类推：

```
>>> print(my_ndarray2 + my_ndarray)
[ 7  9 11 13 15]

```

这里，`7` 是 `1` 和 `6` 的和，这是我相加的 ndarray 中的前两个元素。同样，`15` 是 `5` 和`10` 之和，是最后一个元素。

请看以下算术运算：

```
>>> print(my_ndarray2 - my_ndarray)
[5 5 5 5 5]
>>>
>>> print(my_ndarray2 * my_ndarray)
[ 6 14 24 36 50]
>>>
>>> print(my_ndarray2 / my_ndarray)
[6.         3.5        2.66666667 2.25       2.        ]

```

在 ndarray 中加一个标量值也有类似的效果，标量值被添加到 ndarray 的所有元素中。这被称为“<ruby> 广播 <rt>  broadcasting </rt></ruby>”：

```
>>> print(my_ndarray + 10)
[11 12 13 14 15]
>>>
>>> print(my_ndarray - 10)
[-9 -8 -7 -6 -5]
>>>
>>> print(my_ndarray * 10)
[10 20 30 40 50]
>>>
>>> print(my_ndarray / 10)
[0.1 0.2 0.3 0.4 0.5]

```

### ndarray 的排序

有两种方法可以对 ndarray 进行原地或非原地排序。原地排序会对原始 ndarray 进行排序和修改，而非原地排序会返回排序后的 ndarray，但不会修改原始 ndarray。我将尝试这两个例子：

```
>>> my_ndarray = np.array([3, 1, 2, 5, 4])
>>> my_ndarray.sort()
>>> print(my_ndarray)
[1 2 3 4 5]

```

正如你所看到的，`sort()` 方法对 ndarray 进行原地排序，并修改了原数组。

还有一个方法叫 `np.sort()`，它对数组进行非原地排序：

```
>>> my_ndarray = np.array([3, 1, 2, 5, 4])
>>> print(np.sort(my_ndarray))
[1 2 3 4 5]
>>> print(my_ndarray)
[3 1 2 5 4]

```

正如你所看到的，`np.sort()` 方法返回一个已排序的 ndarray，但没有修改它。

### 总结

我已经介绍了很多关于 NumPy 和 ndarray 的内容。我谈到了创建 ndarray，读取它们的不同方法，基本的向量和标量算术，以及排序。NumPy 还有很多东西可以探索，包括像 `union()` 和 `intersection()`这样的集合操作，像 `min()` 和 `max()` 这样的统计操作，等等。

我希望我上面演示的例子是有用的。祝你在探索 NumPy 时愉快。

本文最初发表于 [作者的个人博客](https://notes.ayushsharma.in/2018/10/working-with-numpy-in-python)，经授权后改编。

---

via: <https://opensource.com/article/21/9/python-numpy>

作者：[Ayush Sharma](https://opensource.com/users/ayushsharma) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #510 英国的植物出口 IT 系统只适用于旧版本的 IE 浏览器

Summary: 更多：• Canonical 正在重构 Snap 应用 • Fedora 36 考虑放弃对 ifcfg 脚本的支持

IE有什么奇怪，我家的收音机还是Symbian Bella系统呢

来自120.230.61.225的 Chrome Mobile 75.0|Android 10 用户

Fedora 35 上默认已经没有 ifcfg 了

来自黑龙江哈尔滨哈尔滨工业大学的 Chrome 96.0|Windows 10 用户

# 硬核观察 #510 英国的植物出口 IT 系统只适用于旧版本的 IE 浏览器

### 英国的植物出口 IT 系统只适用于旧版本的 IE 浏览器

英国政府部门要求，将植物和种子等产品从英国运往欧盟必须使用它们的 IT 系统来提前登记。但是，该系统 [只能在 IE 浏览器](https://www.theregister.com/2022/01/07/defra_peach_only_works_internet_explorer/) 上正常工作，即使你使用最新的，还在支持期的 IE 11，你也必须在向后兼容模式下运行，因为该网站是 2000 年建设的。据统计，2021 年 12 月，IE 在全球的使用份额仅为 0.46%。IE 11 将于今年 6 月 15 日停止支持。

>
> 老王点评：看到国外政府部门也是这样，我就放心了。
>
>
>

### Canonical 正在重构 Snap 应用

相比传统 Linux 安装包，Snap 更具可移植性，但它也有很多问题。除了这种容器式软件包固有的体积大、加载慢等缺陷，Snap 还不支持自定义软件库，必须通过 Canonical 的 Snap 商店分发。Linux Mint 就完全阻止了 Snap 应用程序的安装，并和其他一些发行版支持 RedHat 发明的 Flatpak 软件包。Canonical [正在计划](https://www.xda-developers.com/canonical-snap-rework/) 把 Snapcraft 拆成更小、更模块化和可重复使用的组件，以在一系列不同的产品中利用。软件包构建者可以使用通用的部件，并将添加的 Snapcraft 功能作为一个单独的层使用。

>
> 老王点评：我还以为 Canonical 会放弃 Snap，转向 Flatpak 呢。
>
>
>

### Fedora 36 考虑放弃对 ifcfg 脚本的支持

虽然修改 ifcfg 脚本来管理网络连接已经基本上成为过去，NetworkManager 和类似的软件现在对大多数用户来说都很好用。NetworkManager 保留了对 ifcfg 脚本的支持，但如何处理这些文件是个麻烦，维护这种支持是个负担。ifcfg 脚本的设计没有前瞻性，导致了巨大的复杂性，而且其支持代码多达 13 万行，这还不包括巨大的测试套件，一直是各种错误的来源。因此，Fedora 36 [考虑放弃](https://fedoraproject.org/wiki/Changes/NoIfcfgFiles) 对这些脚本的支持。

>
> 老王点评：虽然这是一件好事，但是不可避免的，越来越多的老旧的、遵循古典 UNIX 哲学的东西会慢慢淘汰，这是 UNIX 哲学的没落么？
>
>
>


物联网提供了一种通过联网温度计跟踪 COVID-19 的方法

# 物联网提供了一种通过联网温度计跟踪 COVID-19 的方法

>
> COVID-19 大流行使一家联网温度计制造商 Kinsa 成为全国知名企业，因为它提供了一个可能了解疾病传播的窗口。
>
>
>

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

一家名为 Kinsa 的公司正在利用 [物联网](https://www.networkworld.com/article/3207535/what-is-iot-the-internet-of-things-explained.html) 技术来创建一个连接温度计的网络，收集大量的匿名健康数据，这些数据可以为了解当前和未来的流行病提供帮助。

该公司创始人兼首席执行官 Inder Singh 表示，能够近乎实时地跟踪美国各地的发烧水平，对于广大公众以及医疗保健部门和政府的决策者来说，都可能是一条至关重要的信息。

该系统的联网技术相对简单 —— 温度计通过蓝牙连接到用户手机上的一个应用程序，该应用程序通过互联网将匿名数据报告给 Kinsa 的云。Singh 强调说，该公司只整理到县一级的数据，并声称通过 Kinsa 的数据识别个人几乎是不可能的。

“我们不提供个人身份信息，我们不提供识别数据，”他说。“这款应用程序只会引导你找到你需要的护理和服务。”

有了体温读数和一些关于体温测量者的基本人口统计信息以及他们的其他症状，这款应用程序可以提供基本的指导，比如是否需要去看医生，以及用户所在的区域是否出现了异常的发烧程度。

然而，真正的价值在于 Kinsa 在其 [美国健康天气地图](https://images.idgesg.net/images/article/2020/04/kinsa_influenza_map_2020-04-21_by_kinsa_leaflet_openstreetmap_carto_2400x1600-100839260-large.jpg?auto=webp&quality=85,70) 上分析和细分的聚合数据，这些数据是从该公司生态系统中的 100 多万个温度计收集而来的。根据 Singh 的说法，这个想法是为了给公众提供一种方式，让他们对自己的健康做出更明智的决定。

“这是一个参与性很强的活动，”他说。“每个人都能得到数据，每个人都能做出反应。”

Kinsa 仍然直接向消费者销售温度计，但该公司正计划与地方政府、卫生部门甚至学区进行更密切的合作——辛格说，Kinsa 已经与美国两个州（他拒绝透露其名称）以及包括佛罗里达州的圣奥古斯丁在内的多个市政府合作。

他说：“我们的希望是，我们能够找出如何建立一个可扩展的模型 —— 我们永远不会只靠卖 20 美元的温度计就可以在全球范围内扩展。”。我们的目标是使该产品能够广泛应用，从而成为医疗保健部门有意义的早期预警系统。

---

via: <https://www.networkworld.com/article/3539058/iot-offers-a-way-to-track-covid-19-via-connected-thermometers.html>

作者：[Jon Gold](https://www.networkworld.com/author/Jon-Gold/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CN-QUAN](https://github.com/CN-QUAN) 校对：[wxy](https://github.com/wxy)

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


在 Linux 上用 Audacity 编辑音频

翻译得很好，让我看得以为我不是中国人了

# 在 Linux 上用 Audacity 编辑音频

>
> Audacity 是开源软件世界中的一个经典的强大工具，可以用于录音、编辑等对声音进行操作。
>
>
>

Audacity 声音编辑器是填补了一个似乎没有人意识到的空白的开源应用程序。它最初是在卡内基梅隆大学开发的，当时很多人还认为电脑只是用来办公和学习的，要进行严肃的多媒体工作需要特殊的 DSP 外围设备。Audacity 认识到，普通计算机用户偶尔也需要编辑音频。在此后的 20 年里，Audacity 团队一直为录音和清理声音打造这个开源的应用程序。

我经常使用 Audacity，作为一个受过培训的编辑，我已经习惯了在我的应用程序中使用重要的、通常是单键的键盘快捷键。通过围绕单个字母建立快捷键，你可以一只手放在鼠标上，一只手放在键盘上，所以选择一个工具或一个重要功能和点击鼠标之间的延迟仅仅是几毫秒而已。在本文中，我将专门给出我在 Audacity 中使用的键盘快捷方式，如果你想优化自己的设置可以参考。

### 在 Linux 上安装 Audacity

在大多数 Linux 发行版上，Audacity 都可以从你的软件包管理器中获得。在 Fedora、Mageia 和类似的发行版上：

```
$ sudo dnf install audacity

```

在 Elementary、Mint 和其他基于 Debian 的发行版上：

```
$ sudo apt install audacity

```

然而，我是以 [Flatpak](https://opensource.com/article/21/11/how-install-flatpak-linux) 方式来使用 Audacity 的。

在 Windows 或 macOS 上，可以从 [Audacity 网站](https://www.audacityteam.org/) 下载一个 Audacity 安装程序。

它最近有一个叫做 [Tenacity](https://github.com/tenacityteam/tenacity) 的复刻版本，是另外的开发者团队准备延续 Audacity 的传统而开发的。在写这篇文章的时候，两者基本上是相同的应用程序，所以这篇文章同样适用于两者。以后是否在功能上有分歧，还有待观察。

安装后，从你的应用程序或活动菜单中启动该应用程序。

### 在 Audacity 中设置输入

首先，你必须设置你的音频 *输入*，以便 Audacity 接收你使用的麦克风或音频接口的信号。你选择什么输入取决于你的设置和你拥有的音频外围设备。USB 麦克风通常被标为 <ruby> 麦克风 <rt>  Microphone </rt></ruby>，但带有 1/8" 输入插孔的麦克风可能被标为 <ruby> 线路输入 <rt>  Line in </rt></ruby>。你可以选择不同输入：

#### Pulse Audio 音频服务器

Linux 使用<ruby> 高级 Linux 声音架构 <rt>  Advanced Linux Sound Architecture </rt></ruby>（ALSA）作为其声音的后端，而 macOS 和 Windows 则使用自己的封闭框架。在 Linux 上，你可以将 Pulse Audio 音频服务器设置为你的输入源，将 Audacity 导向 *一个* 虚拟接口（Pulse），因此你可以从系统设置中选择声音输入。这是我的首选方法，因为它将所有控制集中在一个方便的控制面板上。在一个应用程序中选择一个麦克风，却发现麦克风在其他地方被静音的日子已经一去不复返了。

#### 设备访问

如果你的发行版或操作系统没有使用 Pulse Audio 音频服务器，或者由于某种原因你喜欢直接访问声音设备，你可以从下拉菜单中选择一个设备。这需要了解你的系统是如何列出声音设备的，这有时候并不很好找。台式机可能有几个输入源，有些在机箱的后面，有些在前面的面板上。笔记本电脑通常输入方式较少，但你可能在网络摄像头附近有一个麦克风，如果你使用的是外部麦克风，可能还有一个。

### 用 Audacity 录制音频

选中你的输入后，按“<ruby> 录音 <rt>  Record </rt></ruby>”按钮（有红点的按钮）。

如果你是对着麦克风录音，你所要做的就是开始说话。如果你从，比如说，[黑胶唱片机](https://opensource.com/article/18/1/audacity-digitize-records) 录制输入，那么你必须启动它。不管是什么，只要 Audacity 处于录音模式，任何发送到你选择的输入的信号都会被写入 Audacity 并在你的屏幕上呈现为波形。

**我的快捷方式：** 我使用 `R` 键来开始录音。默认情况下，按下空格键停止录音（也可以回放录音）。

### 编辑音频

录音很少完全按计划进行。也许你过早地开始录音，不得不忍受几秒钟的黑胶静音（它就像静音，但更嘈杂），或者你发现你的语气停顿都是 “呃”、“嗯”或其他声调，或者你一开始就录制错误了。Audacity 首先是一个波形编辑器，这意味着你可以在最终的录音中剪掉你不想要的声音，就像你在文字处理器中输入的文字一样容易编辑。

### 编辑过零点的声音

Audacity 的主要编辑工具是“<ruby> 选择工具 <rt>  Selection Tool </rt></ruby>”。它是你在文字处理程序中看到的熟悉的“工字形”光标，它的功能在这里也是一样。你可以点击并拖动这个光标，穿过声音的一个区域，然后你可以复制、粘贴、剪切、删除或直接播放这个区域。

**我的快捷键：** 我用 `I` 键来激活“<ruby> 选择工具 <rt>  Selection Tool </rt></ruby>”，因为光标看起来像字母 “I”。

在文字处理器中，你可以非常清楚地看到每个字母的结尾和开头。你不可能不小心选择和删除一个字母的一半。然而，在现代应用程序中，声音的 “分辨率”（称为 *采样率*）非常好，所以人眼很难在音频波中找到一个清晰的断点。Audacity 可以调整你的选择，使你选择的区域落在所谓的 <ruby>   过零点  <rt>  zero crossing </rt></ruby>，这可以避免在你做切割的地方出现微妙但明显的突兀现象。

在你做出选择后，进入“<ruby> 选择 <rt>  Select </rt></ruby>”菜单，选择 “<ruby> 在过零点 <rt>  At Zero Crossings </rt></ruby>”。

**我的快捷键：** 我使用 `Z` 键来调整选区到过零点，使用 `X` 键来删除一个区域（它使我不必将手一直移到 `Del` 或 `Backspace` ）。

### 腾出空间

编辑的好处是，你的最终产品不一定要与你录制的内容一致。我曾经录制过一些讲座，甚至录制过一些读物的剧本，但最终因为某种原因而偏离了方向，或者遗漏了一部分重要的信息，后来在发布前又重新编排或添加了全新的音频。

移动所选的音频与删除类似，但不是删除音频，而是复制和粘贴所选内容，就像你在文字处理器中做的那样 —— 使用标准的键盘快捷键复制或剪切，重新定位你的光标，然后粘贴。不过，为插入的内容腾出空间，需要在音频时间线上留出空位，这样你就可以录制额外的音频来填补你所创造的空白。为此，你可以使用“<ruby> 选择工具 <rt>  Selection Tool </rt></ruby>”和“<ruby> 时间偏移工具 <rt>  Time Shift Tool </rt></ruby>”。

要在音频中创建一个空隙，将你的“<ruby> 选择工具 <rt>  Selection Tool </rt></ruby>”的光标放在你想添加空隙的地方。导航到“<ruby> 编辑 <rt>  Edit </rt></ruby>”菜单，选择“<ruby> 剪辑边界 <rt>  Clip Boundaries </rt></ruby>”子菜单，然后选择“<ruby> 分割 <rt>  Split </rt></ruby>”。这将在你的选择点上分割你的音频。

激活顶部工具栏中的“<ruby> 时间偏移工具 <rt>  Time Shift Tool </rt></ruby>”（图标是两个连接的箭头，分别指向左边和右边），点击并拖动分割后的音频的右半部分，创建一个间隙。

**我的快捷方式：** 我用 `K` 来分割，用 `T` 来激活“<ruby> 时间偏移工具 <rt>  Time Shift Tool </rt></ruby>”。

### 导出音频

当你对你的音频感到满意时，你可以导出它，这样你就可以与他人分享。Audacity 可以选择它能够导出的格式，并且它能够将其输出到像 [ffmpeg](https://opensource.com/article/21/11/linux-line-commands-reclaim-space-converting-files#audio) 这样的工具，以获得比你可能永远需要的更多格式。

我更喜欢用 FLAC 格式输出音频，这种音频格式有点像 WAV，只是它是无损压缩的。它只占用一小部分空间，而没有任何质量上的损失。要尝试它，去“<ruby> 文件 <rt>  File </rt></ruby>”菜单，选择“<ruby> 导出 <rt>  Export </rt></ruby>”子菜单，然后选择“<ruby> 导出音频 <rt>  Export Audio </rt></ruby>”。有了 FLAC 文件作为你的 [黄金镜像](https://opensource.com/article/19/7/what-golden-image)，你可以用 SoundConverter 把你的文件转换成任何数量的传输目标的最佳格式 —— 用于浏览器的 Ogg Vorbis 或 Opus 或 Webm，用于苹果设备的 M4A 文件，也许还有用于传统系统的 MP3。

如果你只是想从 Audacity 快速简单地导出，简单的选择是 Ogg Vorbis。这是一种开源的文件格式，可以在大多数网页浏览器（Firefox、Chromium、Chrome、Android 和 Edge）和 [如 VLC、mpv 等媒体播放器](https://opensource.com/article/21/2/linux-media-players) 播放。

### 探索 Audacity

Audacity 是开源软件世界中的一个经典动力工具。基本的录音和编辑仅仅是个开始。你可以添加效果、[过滤掉（一些）噪音](https://opensource.com/life/14/10/how-clean-digital-recordings-using-audacity)、调整速度、改变音高等等。无论你是在学校录制讲座、混合鼓循环、为视频游戏拼接声音，还是只是在探索音频世界，都可以去启动 Audacity，发挥创意！

---

via: <https://opensource.com/article/21/12/audacity-linux-creative-app>

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

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


硬核观察 #511 三星 Tizen 应用商城已永久关闭

Summary: 更多：• TIOBE 宣布年度最佳编程语言是 Python • “快速内核头文件”项目 V2 进一步将构建速度提高了 88%

# 硬核观察 #511 三星 Tizen 应用商城已永久关闭

### 三星 Tizen 应用商城已永久关闭

去年 6 月，三星公司关闭了 Tizen 应用商城的注册，并使商店只对现有用户开放，他们只能获得以前下载的应用程序。在 2021 年 12 月 31 日之后，Tizen 应用商店 [永久关闭](https://www.gsmarena.com/samsung_shuts_down_the_tizen_app_store-news-52598.php)，不再对新用户和现有用户开放。最后一部运行 Tizen 的手机是三星在 2017 年发布的 Z4 手机。Tizen 公布于 2012 年 2 月，是英特尔 MeeGo 系统与三星 LiMo 系统的混合体。2016 年，Tizen 曾一度是全球第四大手机操作系统。由于三星电视全球巨大的出货量，Tizen 目前仍旧是 [第一大电视操作系统](https://www.businesswire.com/news/home/20210316005396/en/Strategy-Analytics-Samsungs-Tizen-Smart-TV-Streaming-Platform-Scaled-New-Heights-in-2020)。

>
> 老王点评：又一次反抗 iOS 和安卓统治的努力宣告失败。
>
>
>

### TIOBE 宣布年度最佳编程语言是 Python

TIOBE 发布公告宣布了这一消息，该奖项被授予在一年内获得最高评级增长的编程语言。2021 年初，Python 从 TIOBE 指数的第 3 位开始，把 Java 和 C 都甩在身后，成为了 [第一名](https://www.tiobe.com/tiobe-index/)。TIOBE 指数是基于一种编程语言在流行搜索引擎中的搜索结果数量的指数，并不表明最好或最有效率的编程语言，也不衡量整个互联网上用一种语言编写的代码量，并且不考虑非英语语言。

>
> 老王点评：这是一个趣味性排行榜，你不应该用这个来指导你学习哪种编程语言。
>
>
>

### “快速内核头文件”项目 V2 进一步将构建速度提高了 88%

之前我们 [报道过](/article-14144-1.html)，“快速内核头文件” 项目会清理内核头文件依赖关系，大大加快 Linux 内核的构建速度。它可能会成为 2022 年最伟大的 Linux 内核功能之一。周末，该项目发布了 [V2 版本](https://lore.kernel.org/lkml/Ydm7ReZWQPrbIugn@gmail.com/)，根据 Linux 5.16-rc8 上游状态进行了重构。值得注意的是，现在也支持用 LLVM Clang 编译器进行编译，这使得内核构建过程加快了 88%! 而之前使用 GCC 编译提升了 77%。

>
> 老王点评：积极关注这个项目，就是不知道内核社区对它的看法如何？毕竟牵涉太大了。
>
>
>


为什么你要运行自己的 DNS 服务器？

Summary: 你可以向巨大而复杂的 DNS 服务器中添加更多的服务器！添加你控制的服务器！

善，夫软路由者，汝可解呼?

言之有理，不光要建DNS还应该建TLS化的DNS

你可以向巨大而复杂的 DNS 服务器中添加更多的服务器！添加你控制的服务器！

# 为什么你要运行自己的 DNS 服务器？

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

使得 DNS 难以理解的事情之一是它是 **分布式的**。有成千上万（也许是几十万？我不知道！）的<ruby> 权威性域名服务器 <rt>  authoritative nameserver </rt></ruby>，以及至少 [1000 万个解析器](https://www.icann.org/en/blogs/details/ten-million-dns-resolvers-on-the-internet-22-3-2012-en)。而且它们正在运行许多不同的软件！不同服务器运行着不同的软件意味着 DNS 的工作方式有很多不一致的地方，这可能导致各种令人沮丧的问题。

但是，与其谈论这些问题，我更感兴趣的是弄清楚 —— 为什么 DNS 是分布式的是一件好事？

### 为什么 DNS 是分布式的是件好事？

一个原因是 **可扩展性** —— DNS 的分布式设计使其更容易扩展，对故障的恢复能力更强。我发现，尽管 DNS 已经有近 40 年的历史，但它的扩展性仍然很好，这真是令人惊讶。这一点非常重要，但这并不是这篇文章的主题。

相反，我想说的是，它是分布式的意味着你可以 **控制** 你的 DNS 的工作方式。你可以向巨大而复杂的 DNS 服务器中添加更多的服务器！添加你控制的服务器！

昨天我 [在 Twitter 上问](https://twitter.com/b0rk/status/1478490484406468614) 为什么你要运行自己的 DNS 服务器，我得到了很多很好的答案，我想在这里总结一下。

### 你可以运行 2 种类型的 DNS 服务器

你可以运行 2 种主要类型的 DNS 服务器：

1. 如果你拥有一个域名，你可以为该域名运行一个 **权威名称服务器**
2. 如果你有一台电脑（或一个有很多电脑的公司），你可以运行一个 **解析器** 来为这些电脑解析 DNS。

### DNS 不是静态数据库

我经常看到 DNS 的 “电话簿” 比喻，域名就像人名，IP 地址就像电话号码。

这是一个不错的思维模型。但是，“电话簿” 思维模型可能会使你认为，如果你对 `google.com` 进行 DNS 查询，你将永远得到相同的结果。而这是不正确的。

你在 DNS 查询中得到的记录可能取决于：

* 你在世界的哪个地方（也许你会得到一个离你更近的服务器的 IP 地址）
* 你是否在企业网络里（你可以在其中解析内部域名）
* 该域名是否被你的 DNS 解析器认为是 “坏” 的（它可能被封锁！）
* 之前的 DNS 查询（也许 DNS 解析器正在做基于 DNS 的负载平衡，每次给你一个不同的 IP 地址）
* 你是否在使用机场 Wi-Fi 专属门户（机场 Wi-Fi 会在你登录前以不同的方式解析 DNS 记录，它会给你发送一个特殊的 IP 来重定向你）
* 随便什么

你可能想控制你自己的服务器的很多原因都与 DNS 不是一个静态数据库这一事实有关 —— 对于如何处理 DNS 查询，你可能会有不同的选择（无论是为你的域名还是为你的组织）。

### 运行权威性名称服务器的理由

这些原因并没有任何特定的顺序。

对于其中一些原因，你不一定必须要运行你自己的权威名称服务器，你只需选择提供了该功能的权威名称服务器服务就行了。

要明确的是：有很多理由 **不** 运行自己的权威名称服务器 —— 我就没有运行，我也不想说服你应该这样做。它需要时间来维护，你的服务可能不那么可靠，等等。

#### 原因：安全

[这条推文说的很好](https://twitter.com/thatcks/status/1478503078680838153)：

>
> [存在] 攻击者通过你的 DNS 供应商的客户支持人员获得 DNS 变更权限的风险，客服本来只应该提供帮助。他们可以被你的 DNS 阻止（也许就是因为缺少这个）。内部可能更容易审计和验证内容。
>
>
>

### 原因：你喜欢运行 bind/nsd

有几个人提到的一个原因是：“我习惯于编写区域文件和运行 `bind` 或 `nsd` ，对我来说这样做更容易。”

如果你喜欢 bind/nsd 的方式，但又不想运维自己的服务器，有几个人提到，你也可以通过运行一个 “隐藏的主服务器” 来获得 bind 的优势，该服务器存储记录，但从一个 “辅助” 服务器提供所有的实际 DNS 查询。这里有一些我发现的关于配置辅助 DNS 的网页，以 [NS1](https://help.ns1.com/hc/en-us/articles/360017508173-Configuring-NS1-as-a-secondary-provider-a-k-a-Creating-secondary-zones-)、[cloudflare](https://blog.cloudflare.com/secondary-dns-a-faster-more-resilient-way-to-serve-your-dns-records/) 和 [Dyn](https://help.dyn.com/standard-dns/dyn-secondary-dns-information/) 作为示例。

我真的不知道什么是最佳的权威 DNS 服务器。我想我只在工作中使用过 nsd。

#### 原因：你可以使用新的记录类型

并非所有的 DNS 服务都支持某些较新的 DNS 记录类型，但如果你运行你自己的 DNS，你就可以支持任何你想要的记录类型。

#### 原因：用户界面

你可能不喜欢你正在使用的 DNS 服务的用户界面（或 API，或干脆没有 API）。这与 “你喜欢运行 BIND ”的原因差不多，也许你喜欢编写区域文件的方式。

#### 原因：你可以自己修复问题

当问题出现时，能够自己解决，有一些明显的优点和缺点（优点：你可以解决问题，缺点：你必须解决问题）。

#### 原因：做一些奇怪的、自定义的事情

你可以写一个 DNS 服务器，做任何你想做的事情，它不一定要只返回一组静态记录。

有几个例子：

* Replit 有一篇博文介绍了 [为什么他们编写自己的权威性 DNS 服务器来处理路由](https://blog.replit.com/dns)
* [nip.io](https://nip.io) 将 [10.0.0.1.nip.io](http://10.0.0.1.nip.io) 映射为 10.0.0.1
* 我为 [乱用 dns](https://jvns.ca/blog/2021/12/15/mess-with-dns/) 而写了一个自定义 DNS 服务器

#### 原因：省钱

权威名称服务器似乎一般按每百万次 DNS 查询收费。比如，似乎 Route 53 每百万次查询收费 0.5 美元，[NS1](https://ns1.com/plans) 每百万次查询收费约 8 美元。

我对一个大型网站的权威 DNS 服务器实际需要解决多少次查询没有概念（哪些类型的网站会对其权威 DNS 服务器进行 10 亿次 DNS 查询？可能是很多，但我没有这方面的经验）。但是有几个人在回复中提到成本是一个原因。

#### 原因：你可以改变你的注册商

如果你为你的域名使用一个单独的权威名称服务器，而不是你的注册商的名称服务器，那么当你转移到一个不同的注册商时，你所要做的就是把你的权威 DNS 服务器设置为正确的值，从而使你的 DNS 恢复正常。你不需要迁移你所有的 DNS 记录，那非常痛苦。

但你不需要为此而运行你自己的名字服务器。

#### 原因：地理 DNS

你可能想根据客户的位置为你的域名返回不同的 IP 地址，给他们一个离他们很近的服务器。

这是很多权威的域名服务器服务所提供的服务，你不需要为此而专门运行名字服务器。

#### 原因：避免针对他人的拒绝服务攻击

许多权威 DNS 服务器是共享的。这意味着，如果有人攻击 `google.com` 或其他的 DNS 服务器，而你恰好在使用同一个权威 DNS 服务器，你可能会受到影响，即使攻击不是针对你。例如，2016 年的这次 [对 Dyn 的 DDoS 攻击](https://en.wikipedia.org/wiki/DDoS_attack_on_Dyn)。

#### 原因：把所有的配置放在一个地方

有一个人提到，他们喜欢把所有的配置（DNS 记录、let's encrypt、nginx 等）放在一台服务器上的同一个地方。

#### 另类原因：把 DNS 当作 VPN 使用

显然，[iodine](https://github.com/yarrick/iodine) 是一个可以让你通过 DNS 隧道传输流量的权威 DNS 服务器，它可以让你像 VPN 一样与外界联系，

### 运行解析器的原因

#### 原因：隐私

如果有人能看到你所有的 DNS 查询，他们就有你（或你组织中的每个人）正在访问的所有域名的完整列表！你可能更愿意保持这种隐私。你可能更愿意保持这种隐私。

#### 原因：阻止恶意网站

如果你运行你自己的解析器，你可以（通过不返回任何结果）拒绝解析你认为 “坏” 的域名的 DNS 查询。

几个你可以自己运行（或只是使用）的解析器的例子：

* [Pi-Hole](https://pi-hole.net/) 阻止广告商
* [Quad9](https://www.quad9.net/) 阻止做恶意软件/网络钓鱼/间谍软件的域名。 Cloudflare 似乎有一个 [类似的服务](https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families)
* 我想也有一些企业安全软件会阻止那些托管恶意软件的域名的 DNS 查询
* DNS 不是静态数据库。它是非常动态的，答案往往实时取决于查询的 IP 地址、内容服务器的当前负载等。除非你将这些记录的服务委托给做出这些决定的实体，否则很难实时实现。
* DNS 委派控制使访问控制非常简单。从区域中切下的部分都由控制委派服务器的人控制，所以对一个主机名的责任是隐含在 DNS 委派中的。

#### 原因：在 nginx 中获得动态代理

这里有一个很酷的故事，来自 [这条推文](https://twitter.com/jordanorelli/status/1478795241876504577)：

>
> 我在一个应用程序中写了一个 DNS 服务器，然后把它设置为 nginx 的解析器，这样我就可以获得动态的后端代理，而不需要 nginx 运行 lua。Nginx 向应用程序发送 DNS 查询，应用程序查询 Redis 并作出相应的反应。这对我正在做的事情来说，效果非常好。
>
>
>

#### 原因：避免恶意解析器

一些 ISP 运行的 DNS 解析器会做一些不好的事情，比如把不存在的域名指向他们控制的 IP，向你显示广告或他们控制的奇怪的搜索页面。

使用你控制的解析器或你信任的另一个解析器可以帮助你避免这种情况。

#### 原因：解析内部域名

你可能有一个内部网络，其域名（比如 `blah.corp.yourcompany.com`）并不在公共互联网上。为内部网络中的机器运行你自己的解析器，就有可能访问这些域名。

无论是访问只在本地的服务，还是为公共互联网上的服务获得本地地址，你都可以在家庭网络中做同样的事情。

#### 原因：避免你的 DNS 查询被中间人劫持

有一个人 [说](https://twitter.com/passcod/status/1478806468539269120)：

>
> 我在我的局域网路由器上运行了一个解析器，它的上游使用了基于 HTTPS 的 DNS（DoH），所以物联网和其他不支持 DoH 或 DoT 的设备不会在外面喷射明文 DNS 查询。
>
>
>

### 就是这样

对我来说，探索 DNS 的 “原因” 感觉很重要，因为它是一个如此复杂凌乱的系统，我认为大多数人如果不理解为什么这些复杂的东西是有用的，就很难有动力去学习这么复杂的主题。

感谢 Marie 和 Kamal 对这篇文章的讨论，也感谢 Twitter 上提供这些原因的所有人。

---

via: <https://jvns.ca/blog/2022/01/05/why-might-you-run-your-own-dns-server-/>

作者：[Julia Evans](https://jvns.ca/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


在 Linux 中像专业人士一样使用 GNOME 截图工具

Summary: 如果你知道如何正确使用，GNOME 截图 并不是一个糟糕的工具。

小白我表示再好的截图也不如我手机拍

这也太有用了吧

如果你知道如何正确使用，GNOME 截图 并不是一个糟糕的工具。

# 在 Linux 中像专业人士一样使用 GNOME 截图工具

有 [几个可用于 Linux 的截图工具](https://itsfoss.com/take-screenshot-linux/)，我喜欢 [使用 Flameshot 进行截图](https://itsfoss.com/flameshot/) 和 Shutter 来编辑现有的截图。

但不幸的是，Flameshot 不能在 4K 屏幕上工作。因此，我不得不使用默认的 GNOME 截图工具，它在我的带有超高清屏幕的戴尔 XPS 上工作得非常好。

这一“被迫之举”让我意识到，如果你知道如何正确使用，[GNOME 截图](https://apps.gnome.org/app/org.gnome.Screenshot/) 并不是一个糟糕的工具。

在这里，我指的是用键盘快捷键来使用它，因为这样可以节省大量的时间。

让我展示一下如何像专家一样用那些方便的键盘快捷键来使用 GNOME 截图应用。

我假定你没有改变这里的默认的截图的键盘快捷键。

### 对整个屏幕进行截图：使用 Prt Scr 键

这是最简单的操作。在你的键盘上找到 `Prt Sc`（或称 `Prt Scr`、`Prt Scn`）键并按下它。它将对整个屏幕进行截图，并将其保存在你的主目录下的图片文件夹中。

在某些发行版（或版本）中，你可能会看到是否要保存截图的选项，但大多数情况下，它会自动保存屏幕截图。

这里需要注意的另一件事是，如果你有多个屏幕连接到系统上，它会把所有的屏幕一起截图。这意味着，你会得到一个超宽的图像。

但是，如果你只想对某个应用进行截图，而不是对整个屏幕进行截图呢？

### 给一个应用程序的窗口截图：使用 Alt+Prt Scr 键

要给正在运行的图形应用截图，你需要这样做：

点击正在运行的应用，使其获得焦点。现在，按住 `Alt` 键并按 `Prt Scr` 键。

它将得到应用窗口的截图，并保存到图片目录中。

这样获取的截图也有一个阴影效果，看起来很不错。

这很好，但如果你只想给某个特定区域截图，而不是整个屏幕呢？这也有一个技巧。

### 对屏幕的选定区域进行截图：使用 Shift+Prt Scr 键

按住 `Shift` 键。然后按 `Prt Scr` 键。你会看到屏幕上出现一个选框。将鼠标移动到所需的区域，开始拖动光标。它将高亮显示该区域，并在你释放鼠标后立即进行截图。

### 复制截图到剪贴板而不是保存它们

当你在和别人聊天时，要和对方分享屏幕截图时，这非常有用。

首先截图，但没必要将保存的截图文件附在聊天工具中。相反，你可以直接将截图复制到剪贴板，然后使用 `Ctrl+V` 快捷键将图像（从剪贴板）粘贴到聊天工具。

这样，你的系统就不会保留不必要的截图，你也可以节省一些鼠标点击次数。

要把截图保存到剪贴板，以便你能把它们粘贴到聊天工具、绘图工具或文档中，你必须把 `Ctrl` 键和你在前面几节中看到的其他截图快捷键一起使用。

* `Ctrl+Prt Scr`：将整个屏幕的截图复制到剪贴板上。
* `Ctrl+Alt+Prt Scr`：将应用窗口的截图复制到剪贴板上。
* `Ctrl+Shift+Prt Scr`：将选定区域的截图复制到剪贴板上

我必须补充一点，在这种情况下，[使用像 Flameshot 这样的工具](https://itsfoss.com/flameshot/) 甚至更好一些，因为它允许你在将截图保存到剪贴板之前对其进行注释。这样，你可以很容易地高亮屏幕的重要部分。

### 在截图中添加延迟，以便对下拉菜单进行截图

到目前为止，一切都很好。你只需按下几个键，就可以随心所欲地进行截图了。

问题是，当你要对下拉菜单或右键动作等进行截图时。当你按下屏幕截图键时，想要的项目可能会消失。

为了处理这种情况，你可以对该区域或整个屏幕进行截图，但要有一个延迟。

在 GNOME 屏幕截图工具中，你可以选择添加这个延迟。例如，你添加了 6 秒的延迟。你点击截图按钮，有 6 秒时间来做/显示你想做的事情。6 秒后，它就会自动截图了。

### 你有什么技巧吗？

这就是我使用 GNOME 截图工具的所有技巧。如果你还没有广泛地使用它，你应该会发现它很有帮助。如果你已经是一个专家，也许你知道一些可以添加到本文中的东西？请在评论区与我们其他人分享吧。

---

via: <https://itsfoss.com/using-gnome-screenshot-tool/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #512 开源开发者自毁其广泛使用的依赖库

Summary: 更多：• Mozilla 基金会其实从 2014 年就开始接受加密货币捐款 • Windows 11 上仍能使用软驱和软盘

# 硬核观察 #512 开源开发者自毁其广泛使用的依赖库

### 开源开发者自毁其广泛使用的依赖库

开源库 colors.js 和 faker.js 被广泛使用。在 NPM 上，colors.js 的周下载量超过 [2000 万次](https://www.npmjs.com/package/colors)，有近 19000 个项目依赖它。前几天，它的开发者在这些库的最新版本中加入了无限循环和乱码，依赖它的项目会在控制台看到不停打印的非 ASCII 字符。他将这两个库的 [自毁版本](https://www.bleepingcomputer.com/news/security/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps/) 推送到了 GitHub 和 NPM，因而导致多个使用这些依赖库的软件出现故障，其中包括亚马逊的 [AWS CDK](https://github.com/aws/aws-cdk/issues/18323)。这位开发者似乎是因为没有得到使用他的开源软件的大公司的 [付费](http://web.archive.org/web/20210704022108/https://github.com/Marak/faker.js/issues/1046)，而专门做了这种破坏。这件事引来了业界和社区的激烈讨论。

>
> 老王点评：我认为，你可以因没有得到报酬而放弃项目，但是这不是你蓄意报复的理由。如果一开始就想着获益，请发布你的商业版本。这种最初遵循开源许可证和开源文化的开源软件，在邀名不成、获利不得后恼羞成怒地大肆破坏，或许没有违反许可证和法律，但是却给整个开源文化泼了一盆脏水。我对这种行为持反对意见。
>
>
>

### Mozilla 基金会其实从 2014 年就开始接受加密货币捐款

之前我们报道过，Mozilla 基金会官方 Twitter 账号在 1 月 1 日提醒粉丝它接受加密货币，如比特币、以太坊的捐款，但这一声明招致了 [猛烈批评](/article-14147-1.html)，最终迫使 Mozilla 基金会宣布 [暂停](/article-14158-1.html) 接受加密货币捐款。但实际上 Mozilla 基金会从 2014 年就开始 [接受加密货币捐款](https://blog.mozilla.org/en/mozilla/mozilla-now-accepts-bitcoin/)，当时 Mozilla 还列举了其它接受加密货币捐款的组织，如可汗学院、电子前沿基金会、绿色和平组织和维基媒体基金会。到今天，只有绿色和平组织停止接受加密货币捐款。

>
> 老王点评：加密货币是否该死，我觉得不能用政治正确来评判。
>
>
>

### Windows 11 上仍能使用软驱和软盘

去年发布的 Windows 11 系统，调整了硬件安装需求，很多硬件都不再支持，需要使用较新的 CPU 和 TPM 2.0 等等。但是，[有用户发现](https://news.softpedia.com/news/floppy-disks-still-working-like-a-charm-on-windows-11-534658.shtml)，Windows 11 上居然还可以成功使用索尼 5.25 寸软盘。这意味着，Windows 11 对外部设备还保留了不错的兼容性。

>
> 老王点评：虽然 5.25 寸、3.5 寸软盘已经基本退出历史舞台，可在特定领域依然有用武之地，但这个反差让我有些吃惊。
>
>
>


我希望在 GNOME 中看到的 5 个微小而有用的功能

# 我希望在 GNOME 中看到的 5 个微小而有用的功能

>
> 我知道对于圣诞愿望清单来说已经太晚了，但我仍然想分享我希望在 GNOME 中看到的东西。
>
>
>

GNOME 是许多 Linux 发行版的默认桌面环境。它也是我最喜欢的一个，因为它提供了一种现代的桌面体验。

但这并不意味着 GNOME 是完美的，不需要改进。事实上，这里有几个建议可以改善整个用户体验。

### 1、方便的应用程序卸载选项

桌面 Linux 是碎片化的。为了增加混乱，连软件包也是零零散散的。而最糟糕的是当你从系统中删除一个应用程序时。

举个例子，你要通过 DEB 包安装一个应用程序，并使用 GNOME 软件中心界面来安装它。

但如果你不喜欢这个应用程序，想把它删除呢？

你不会在软件中心中找到该应用程序。相反，你得必须使用命令行的方法。

这还没完。还有 Snap 和 [Flatpak](https://itsfoss.com/what-is-flatpak/) 软件包。如果你已经使用了其中之一，你必须先找出来，然后使用正确的命令才行。

GNOME 采用了类似于 Android/iOS 的方法，将应用程序显示在一个网格中，并将它们组织在文件夹中。移动操作系统为用户提供了一种方式，即按住图标并删除应用程序。如果能有一个类似的选项，右键点击应用程序图标并选择卸载，那就更好了。

这样，终端用户就不用管所安装的应用程序是 Deb 包还是 Snap 包。没有必要为此进入终端，而且它就发生在访问应用程序地方，这不是挺好吗？

Linux Mint Cinnamon 版有这样的功能，你在菜单中右键点击一个应用程序条目，选择删除它。

如果 Cinnamon 能做到，GNOME 应该也能做到，对吗？

### 2、在应用程序商店中设置默认软件源

如果一个应用程序有多种格式，GNOME 软件中心可以让你选择软件源。至少这是我在 Fedora 的 GNOME 软件中看到的，但在 Ubuntu 中没有。

假设有人在软件中心同时添加了 Flatpak 和 Snap 支持，而一个应用程序在 Flatpak、Snap 和软件包管理器（apt、DNF 等）中都可用，它可能会在搜索结果中显示多次。

如果能够设置一个默认的打包格式，使其优先于其他格式，那就更好了。如果你把 Flatpak 作为默认，它就不会显示 Snap 版本，默认只安装 Flatpak 版本。

### 3、跨系统同步安装的应用程序

这一点可能取决于发行版情况，从技术和策略的角度看都比较复杂。

安卓、iOS、macOS 和 Windows 都有这个功能，这样可以更容易开始使用新设备或重置的同一设备。你从他们的官方应用程序商店安装的应用程序与你的个人资料相关联。你重新安装/重置操作系统，或者在一个新系统上，登录应用程序商店，它就会显示你以前使用过的应用程序。

在 Linux 上，如果你由于某种原因重新安装系统，你就会失去你所安装的应用程序。当然，你可以重新安装它们，但你也必须回忆起你以前安装的应用程序。

我记得 Ubuntu 曾经有个 Ubuntu One 云，我以为他们会推出这个功能，但他们关闭了这个云服务。然而，Ubuntu One 仍然活着，并被用作 SSO 登录。事实上，你可以在 Ubuntu 软件中心看到 Ubuntu One 的登录选项，但它并没有做任何事情。

知道你之前从 GNOME 软件中心安装了哪些软件，将使电脑的格式化和在电脑之间的移动更加容易。你不觉得吗？

当然，许多 Linux 用户不一定依靠软件中心来获取应用程序，但这对一些人来说可能是一个有用的功能。

### 4、面部解锁和/或指纹登录

我喜欢用密码登录并解锁 Windows 的方式。是的，我偶尔会使用 Windows。不，不是用来玩游戏，而是用超高清观看流媒体内容。过去几周我用得比较频繁，因为我在另一个城市，我必须依靠我的笔记本电脑来观看 4K 的 Netflix，而不是使用我的电视。

输入整个 8 到 10 个字符的长密码，加上特殊字符，总觉得是件麻烦事。值得庆幸的是，我的笔记本电脑有一个指纹识别器，但不是每个人都有这种奢侈。

对于许多已经习惯于在移动设备上使用这些方法的用户来说，使用指纹或面部来解锁设备可能会很好。

已经有一些项目允许你在 Linux 上使用面部解锁，GNOME 确实可以考虑将其加入到其产品中。

### 5、带回“添加新文档”选项

几年前，GNOME 删除了从右键菜单中创建一个新文档的功能。

现在仍然可以实现这个功能。你必须先在你的主目录的 Templates 文件夹中创建一个模板文档。然后所有的模板文档都可以在右键菜单中找到。

但这本应是一个默认功能。人们不应该胡乱摆弄而试图找出“创建新文档”选项的去处。

现在是时候让 GNOME 恢复这个功能了。

### 你希望在 GNOME 中看到什么功能？

由于我主要使用 Ubuntu，它的定制 GNOME 与原生 GNOME 不同。原生 GNOME 也应该把小程序指示器带回来，这样像 Dropbox 等应用程序就可以快速访问。

GNOME 开发者不太可能关注像我们这样的普通 Linux 用户的想法，但我还是要问问你怎么看。

你希望在 GNOME 或桌面 Linux 中看到什么新功能？你也可以分享一些你最喜欢的、已经从 GNOME 中删除的，但你希望它们能重新出现的功能。

---

via: <https://news.itsfoss.com/gnome-features-i-want/>

作者：[Abhishek](https://news.itsfoss.com/author/root/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


2021 总结：推进你的 Kubernetes 之旅的 15 种方法

# 2021 总结：推进你的 Kubernetes 之旅的 15 种方法

>
> 无论你是在家庭实验室里试验 Kubernetes，还是想成为一个成为 Kubernetes 的维护者，这里都有适合你的资源。
>
>
>

<img src="content_image/album_202201_11_165225i3tvyk3zqbq36yb8.jpg" alt="" title="Ship captain sailing the Kubernetes seas">

2021 年对于 Kubernetes 来说是令人兴奋的一年，这些文章证明了这一点。从有趣的界面到家庭实验室再到开发环境，看看我在 2021 年最喜欢的 K8s 文章。

如果你对基本原理感兴趣，这篇 [介绍 Linux 上的容器](https://opensource.com/article/21/8/container-linux-technology) 的文章从内到外阐明了 Linux 容器的工作原理。你是否想获取一些乐趣？安装 minikube 并开始使用 [DOOM 游戏作为界面](https://opensource.com/article/21/6/kube-doom) 来管理它。另一个选择是 [kubectl](https://opensource.com/article/21/7/kubectl)，这是一个更传统的 Kubernetes 控制 CLI。

即使你只在你的 [Linux 家庭实验室](https://opensource.com/article/21/6/kubernetes-linux-homelab) 上运行 Kubernetes，你也可以使用 [Terraform 和 Helm](https://opensource.com/article/21/8/terraform-deploy-helm) 等工具来自动化日常操作。这创造了一个 [更好地掌握 Terraform](https://opensource.com/article/21/8/terraform-tips) 的机会。

生活中可以确定的几件事之一是，计算机会以奇怪而有趣的方式出错。[用 Prometheus 和 Grafana 监控你的 Kubernetes 集群](https://opensource.com/article/21/6/chaos-grafana-prometheus)，看看它是如何出错的。[使用 Grafana Tempo 的分布式跟踪](https://opensource.com/article/21/2/tempo-distributed-tracing)来监控里面运行的应用。通过引入 [Chaos Mesh](https://opensource.com/article/21/6/chaos-mesh-kubernetes) 在 Kubernetes 中造成有意的混乱，来监控你监控的性能。

如果你正在开发在 Kubernetes 上运行的应用，[Quarkus 可以帮助你开发和测试](https://opensource.com/article/21/7/developer-productivity-linux)。使用 Java 的开发者 [可以在 Kubernetes 上使用容器运行](https://opensource.com/article/21/5/what-serverless-java) 应用。像 [Tackle-DiVA](https://opensource.com/article/21/6/tackle-diva-kubernetes) 这样的工具有助于将应用移植到容器中。

像所有成功的开源项目一样，Kubernetes 的部分价值是一个强大的 [生态系统](https://opensource.com/article/21/6/kubernetes-ebook)。比如 [KubeEdge 项目](https://opensource.com/article/21/1/kubeedge)，它有助于将计算和数据更接近终端用户。在使用 Kubernetes 一段时间后，你甚至可能想 [成为 Kubernetes 维护者](https://opensource.com/article/21/2/kubernetes-maintainer)。

有这么多有趣的 Kubernetes 内容可供学习，可能很难将它们全部看完。不过，对于系统管理员和开发人员来说，优秀的 Kubernetes 资源是必须的。请阅读这些精选的内容。

---

via: <https://opensource.com/article/21/12/learn-kubernetes-2022>

作者：[Moshe Zadka](https://opensource.com/users/moshez) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #513 Linux Mint 与 Mozilla 达成交易

Summary: 更多：• 又一个 5 亿用户的安全软件也加入了加密货币挖矿程序 • LibreOffice 7.3 将引入对《星际迷航》克林贡语的支持

原来mint也是依托公司的发行版吗，一直误以为他们是社区呢

# 硬核观察 #513 Linux Mint 与 Mozilla 达成交易

### Linux Mint 与 Mozilla 达成交易

Linux Mint 发行版与 Mozilla [达成了](https://blog.linuxmint.com/?p=4244) 一笔未披露金额的交易，目的是修改 Linux Mint 上的 Firefox 配置。从 Linux Mint 19 开始，Firefox 的默认起始页将不再指向 Linux Mint 提供的起始页；默认搜索引擎不再是 Linux Mint 的搜索合作伙伴，如 Yahoo 和 DuckDuckGo，而是 Mozilla 的搜索合作伙伴，如 Google 等；默认配置恢复到 Mozilla 默认；没有上游以外的补丁；其上的 Firefox 的更新也将都由 Mozilla 负责。

>
> 老王点评：嘴里都是主义，实际都是生意。
>
>
>

### 又一个 5 亿用户的安全软件也加入了加密货币挖矿程序

知名安全产品 Norton 360 上周被发现整合了加密货币挖矿程序，但没有默认激活。另一款拥有 5 亿用户的安全软件 Avira 也在做 [同样的事情](https://krebsonsecurity.com/2022/01/500m-avira-antivirus-users-introduced-to-cryptomining/)。与 Norton 类似，用户需要选择加入才能激活挖矿程序。Avira 和 Norton 360 都属于 NortonLifeLock 公司。这两个杀毒软件中的挖矿程序都是利用计算机的闲置算力挖掘以太坊。但是根据测算，Norton 中挖矿的收益基本上只能覆盖电费，Avira 中的估计也差不多。

>
> 老王点评：虽然挖矿活动需要用户主动打开才会运行，但是一个安全软件做这些事情，可能就如一个用户说的，“Norton 应该检测并关闭加密货币采矿劫持，而不是安装他们自己的”。
>
>
>

### LibreOffice 7.3 将引入对《星际迷航》克林贡语的支持

但 [文档基金会很高兴地报告](https://blog.documentfoundation.org/blog/2022/01/07/libreoffice-the-klingons-and-interslavs-are-already-here/)，“克林贡人如今还没有接管 LibreOffice 错误跟踪器的控制权” —— 你恐怕还是得用你的日常语言提交错误报告。文档基金会解释称，此举不会让开发团队的注意力从基础功能上大幅偏离。即使有人想帮助翻译克林贡语，也不意味着项目中的其他人会停下其它重要任务。LibreOffice 已提供对百余种语言的支持，7.3 版本更新将于 2 月初到来。

>
> 老王点评：好吧，开源总是可以任性一些，只要你喜欢，你可以做一些小众的事情。
>
>
>


NIST 的目标是使无线网络的频率共享更加有效

# NIST 的目标是使无线网络的频率共享更加有效

>
> 机器学习方案将帮助不同的无线电协议，如 Wi-Fi 和 LTE，在同一的无线频谱中更有效地协同工作。
>
>
>

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

美国国家标准与技术研究所（[NIST](https://www.nist.gov/)）开发的机器学习方案有可能显著改善 [5G](https://www.networkworld.com/article/3330603/5g-versus-4g-how-speed-latency-and-application-support-differ.html) 和其他无线网络选择和共享通信频率的方式。研究人员声称，与试错法相比，NIST 的方案可以使共享通信频率的过程的效率提高多达 5000 倍。

NIST 系统的理念是，无线电设备可以从经验中学习其网络环境，而不是像现在这样，简单地根据试错法选择频率信道。

NIST 在 [其网站上的一篇文章](https://www.nist.gov/news-events/news/2020/05/nist-formula-may-help-5g-wireless-networks-efficiently-share-communications) 中说，在特定的环境条件下，“该算法可以学习哪个信道提供最好的结果”。

该团队说:“该方案可以被编程到现实世界中许多 [不同] 类型网络的发射机软件中。”

从本质上讲，这个计算机模拟的算法是一个映射环境射频条件的先前经验的公式。例如，这些条件可以包括在一个信道（一组相邻的频率）内运行的发射机的数量。

文章说：“……如果发射机选择了一个未被占用的信道，那么成功传输的概率就会上升，从而导致更高的数据速率。”同样地，当发射机选择一个没有太多干扰的信道时，信号会更强，你也会得到更好的数据速率。发射机会记住哪个信道提供了最佳结果，并学会在下次需要清晰信号时学会选择那个位置。

这与今天的工作方式不同。也就是说，无线电只是试图找到一个开放频率，然后与类似协议的无线电进行通信。在复杂的情况下，使用诸如 Wi-Fi、跳频和 [波束成形](https://www.networkworld.com/article/3445039/beamforming-explained-how-it-makes-wireless-communication-faster.html) 等技术来优化信道。

研究人员解释说，NIST 的机器学习技术的亮点在于共享频谱，比如通过授权频谱辅助接入（LAA）共享 Wi-Fi。LAA 是非授权频谱中的 LTE 频谱，称为 LTE-U，频率为 5GHz。在相同频率下的 Wi-Fi 与 LAA 的组合中，协议是不同的：无线电之间不能相互通信以协调工作，而且频带越繁忙就可能出现混乱 —— 传输会遇到其他传输。但是，如果所有的无线电接收机都能更好地选择它们的占位，通过学习哪些有效，哪些无效，那么这将会更好。

NIST 工程师 Jason Coder 在文章中说：“这可能会使非授权频段的通信更加高效。”

事实上，NIST 声称，它“可以帮助 5G 和其他无线网络选择和共享通信频率，其效率大约是试错法的 5000 倍。”

这里的关键词是“共享”，因为为了在有限的频谱内增加通信，必须进行更多的共享 —— 物联网或媒体流等用户都在争夺同样的隐喻资产。随着物联网和数字技术的不断发展，非授权和授权频段的结合，就像 LAA 中的情况一样，可能会变得更加普遍。（非授权的频段是指那些没有分配给特定用户的频段，比如移动网络运营商；授权频段是在拍卖中中标并分配的。）

在 NIST 场景中，相互竞争的发射机“各自学习在不相互通信的情况下最大化网络数据速率”。因此，多种协议和数据类型，如视频或传感器数据，或 Wi-Fi 和移动网络，可以相互协作。

NIST 的方案大大简化了为发射机分配最佳信道的过程，根据这篇文章研究发现，穷尽努力 [使用试错法] 来确定最佳解决方案需要大约 45600 次试验，而这个方案只需要尝试 10 个渠道就可以选择类似的解决方案，仅仅付出 0.02% 的努力。”

NIST 的研究人员在 IEEE 第 91 届车辆技术会议上展示了他们的研究成果。

---

via: <https://www.networkworld.com/article/3561618/nist-aims-to-make-frequency-sharing-more-efficient-for-wireless-networks.html>

作者：[Patrick Nelson](https://www.networkworld.com/author/Patrick-Nelson/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[CN-QUAN](https://github.com/CN-QUAN) 校对：[wxy](https://github.com/wxy)

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


一些经典 Linux 命令的现代替代品

“猫”、“男人”，有点雷人啊

怀疑你在开车，但又没有驾驶证

来自120.230.61.164的 Chrome Mobile 75.0|Android 10 用户

机器翻译的

有意这样翻译的

> 通过 duf，你可以对输出进行排序、列出 indoe 信息，甚至将输出保存为 JSON 格式。<br />
inode?

# 一些经典 Linux 命令的现代替代品

当你 [开始学习 Linux](https://academy.itsfoss.com/) 时，最初学习的是一套标准的 Linux 命令，这些命令从 UNIX 时代就已经存在了。随着你作为一个 Linux 用户的年龄增长，你会不断地掌握这套标准命令。

但是，这些标准的、传统的命令是几十年前创建的，虽然它们完成了预定的工作，但是它们的功能还可以改进，结构还可以简化。

这就是为什么存在 “替代” 工具，以加强传统的 UNIX/Linux 命令。在这篇文章中，我将列出一些新的命令行工具，你可以用这些工具来代替旧式的经典 Linux 命令。

请注意，你不应该过分依赖这些替代品，特别是如果你管理（或计划管理）许多 Linux 服务器时。传统的 Linux 命令在所有的 Linux 发行版和 Linux 服务器上都可以找到。这些现代的替代方案很有可能在远程服务器上无法使用。

在你的个人能力范围内，你可以学习了解这些新的工具，以帮助你更有效率。

听起来不错？让我们看看你是否能在这里找到你下一个最喜欢的命令行工具。

### HTTPie: wget 和 curl 的替代品

[在终端下载文件](https://itsfoss.com/download-files-from-linux-terminal/) 时，`wget` 和 `curl` 是两个最常用的工具。有趣的是，并不是所有的发行版都默认安装了 `curl` 和 `wget`。

HTTPie（`http`）以一种更人性化的方式做同样的工作。你会看到彩色的、格式化的输出，这使得它更容易理解和调试。

### 蝙蝠：猫的替代品

`cat` 命令可能是你最先学会的命令之一。它可以完成查看小型文本文件内容的工作。

但 [bat 命令](https://github.com/sharkdp/bat) 更上一层楼，添加了语法高亮和 Git 集成等功能，并且还提供了分页选项。

### ncdu: du 命令的替代品

Linux 中的 [du 命令](https://linuxhandbook.com/find-directory-size-du-command/) 用来检查一个目录的大小。这不是一个非常直观的命令，当然它的默认输出也不算非常好。

与此相比，`ncdu` 要好得多，它能及时提供相关信息。

它还有其他一些功能，比如用图表显示磁盘使用情况，对显示进行排序，甚至可以交互式地删除目录。

它是基于 ncurses 的，因此 “nc” 这个前缀被加到 `du` 中。此外，还有一个类似的 CLI 工具：[gdu](https://itsfoss.com/gdu/)，也是一个 `du` 的替代品，因为是使用 Go 编写的，这使得它的性能得到了提升。

### htop: top 命令的替代品

`top` 命令是 Linux 终端中的任务管理器。它是一个查看运行进程和资源消耗的好工具，但是 [理解和使用 top 命令](https://linuxhandbook.com/top-command/) 可能很复杂。

另一方面，[htop](https://htop.dev/) 有一个漂亮的彩色输出，并且界面比 `top` 命令更直观。你可以垂直和水平滚动，以图形方式配置显示的信息。你可以在 `htop` 的输出屏幕上交互式地杀死进程。

### fd：find 命令的替代品

`find` 命令是最强大和最常用的 Linux 命令之一。不能想象一个系统管理员可以不使用 `find` 命令就能生存下去。

但是，`find` 命令的结构奇怪，如果你进行大量的查找操作，它可能会很慢。

一个更好、更快的替代方案是 [fd 命令](https://github.com/sharkdp/fd)。`fd` 是用 Rust 编写的，它比其传统的竞争对手更简单、更快速。

### exa：ls 命令的替代品

[exa](https://itsfoss.com/exa/) 命令行工具不止可以列出目录内容。它的默认设置更好，使用颜色来区分文件类型和元数据。`exa` 还可以显示一个文件的扩展属性，以及标准的文件系统信息，如 inode、块数，以及文件的各种日期和时间。

你可以使用树状视图来查看目录结构。它也有内置的 Git 支持，可以看到哪些文件被修改、提交和暂存等。

### duf：df 命令的替代品

Linux 中的 [df 命令](https://linuxhandbook.com/df-command/) 用来检查磁盘空间。虽然它在大多数情况下都不错，但一个更简单、更好的替代方法是 [duf](https://itsfoss.com/duf-disk-usage/)，这是一个用 Go 编写的工具。

它提供了一个所有挂载设备的概览，这很容易理解。你还可以指定一个目录/文件名并检查该挂载点的可用空间。

通过 `duf`，你可以对输出进行排序、列出 indoe 信息，甚至将输出保存为 JSON 格式。

### 太长不读：男人的替代品

我知道对于纯粹主义者来说，[Linux 中的手册页](https://itsfoss.com/linux-man-page-guide/) 是不二之选。但是，手册页有时会过于详细和复杂，难以阅读和理解。

这就是 `tldr` 登场的时机。“TLDR” 是流行的互联网行话，意思是“<ruby> 太长不读 <rt>  to long didn't read </rt></ruby>”。这就是他们创建 `tldr` 的想法。如果你觉得手册页太长而不想阅读，[tldr 通过提供命令的实际例子而将其简化了](https://itsfoss.com/tldr-linux-man-pages-simplified/)。

### Neovim：Vim 的替代品

我希望我在这里没有冒犯谁，但更好的 Vim 不是 Emacs，而是 [Neovim](https://neovim.io/)。

几年前，作为对传统的 Vi 编辑器的改进，Vim 出现了。又是几年过去了，Neovim 提出了将 Vim 扩展为一个 IDE 的想法。

它增加了现代终端的功能，如光标样式、焦点事件、括号内粘贴等，并内置了一个终端模拟器。最重要的是，你不需要忘却 Vim 的习惯就可以开始使用 Neovim。

### 你的选择呢？

再次强调，这些替代命令还不能完全替代原来的命令，特别是如果你管理许多 Linux 系统的话。你可能无法在所有的系统上找到并安装它们。只有你可以完全控制你的 Linux 机器时，它们才是好东西。

除此以外，你是否在这个列表中找到了一些好的替代命令行工具？是哪一个呢？另外，你知道其他一些可以 “替代” 传统 UNIX 命令的工具吗？为什么不在评论区与我们分享呢？

---

via: <https://itsfoss.com/legacy-linux-commands-alternatives/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #514 佳能指导用户绕过其识别原装耗材的硬件 DRM

Summary: 更多：• 印度黑客组织的恶意程序感染了自己 • 感染勒索软件后，连锁酒店改用 Chrome OS 操作系统

最近国内的一家超市也染毒了，勒索比特币，看来是一系列有组织的攻击行为。

来自江西南昌的 Chrome Mobile 65.0|Android 8.1 用户

# 硬核观察 #514 佳能指导用户绕过其识别原装耗材的硬件 DRM

### 佳能指导用户绕过其识别原装耗材的硬件 DRM

打印机厂商的主要利润来源于耗材，因而在打印机上设置了 DRM 硬件锁，以阻止用户使用第三方耗材（比如墨水 / 粉盒）。然而在全球芯片供应短缺的大环境下，佳能似乎陷入了一个相当尴尬的境地 ，使用了新的替代芯片的原装耗材不能被自家打印机正确识别。无奈之下，该公司被迫教客户如何 [绕过原厂 DRM 保护](https://arstechnica.com/tech-policy/2022/01/chip-shortage-has-canon-telling-customers-how-to-skirt-its-printer-toner-drm/)：请无视“检测到非原装耗材”的所有故障警告，直接点击关闭按钮，然后就可继续执行打印。

>
> 老王点评：这真是一件尴尬的事情。
>
>
>

### 印度黑客组织的恶意程序感染了自己

印度的一个黑客组织 Patchwork 主要是攻击巴基斯坦。在 2021 年 11 月底至 12 月初的最新活动中，Patchwork 利用恶意 RTF 文件投放了一个远程管理木马。令人讽刺的是，该木马 [感染](https://blog.malwarebytes.com/threat-intelligence/2022/01/patchwork-apt-caught-in-its-own-web/) 了他们自己的电脑，从而让安全公司 Malwarebytes 收集到了他们电脑和虚拟机的按键和屏幕截图。研究人员发现了该组织开发的基础框架，包括运行 Virtual Box、VMware 作为 Web 开发及测试环境，其主机有英文及印度文双键盘配置等。

>
> 老王点评：这是脚本小子级别的黑客组织吧。
>
>
>

### 感染勒索软件后，连锁酒店改用 Chrome OS 操作系统

一家斯堪的纳维亚连锁酒店上个月遭受勒索软件攻击，使员工无法访问客人的预订数据，也无法向新到的客人发放钥匙卡。但该酒店没有与黑客联系，也没有为解锁受感染设备的解密密钥进行谈判。该酒店表示，它采取了一种 [新的方法](https://therecord.media/hotel-chain-switches-to-chrome-os-to-recover-from-ransomware-attack/)，“在不到 24 小时内，第一家酒店就在 Chrome OS 生态系统中运行了。而在接下来的两天里，整个公司有 2000 台电脑的系统被转换，包括五个不同国家的 212 家酒店。”接下来他们还会迁移 2000 台电脑，这将预计可以节省 670 万美元。

>
> 老王点评：问题是，如果没有合理的 IT 管理体系，迁移到 Chrome OS 也不能避免再次被勒索啊。
>
>
>


给儿童、教师和学校的最佳 Linux 发行版

Summary: 孩子们可以使用 Linux 发行版吗？它又是否适合学校使用呢？

孩子们可以使用 Linux 发行版吗？它又是否适合学校使用呢？

# 给儿童、教师和学校的最佳 Linux 发行版

孩子们可以使用 Linux 发行版吗？它又是否适合学校使用呢？

嗯，这取决于你有什么选择，以及你想选择的是什么。不管你是想给孩子还是学校老师用，都有不少选择。

因此，为了给你一个良好的开端，我们策划了一个为教育量身定做的 [最佳 Linux 发行版](https://itsfoss.com/best-linux-distributions/) 列表。

### 最适合儿童的 Linux 发行版

对于一个孩子来说，发行版必须提供一个用户友好的用户界面，而不是高级功能。

你可能会说，任何主流的、[像 Ubuntu](https://itsfoss.com/best-linux-beginners/)、Mint 或 Zorin 这样适合初学者的发行版都可以做到这一点。没错，但是如果一个发行版带有了 [基本工具](https://itsfoss.com/essential-linux-applications/) 并易于使用，孩子们会很快学会使用它并喜欢上它。

#### 1、Endless OS

[Endless OS](https://endlessos.com/home/) 是一个流行的选择，是为教育量身定做的 Linux 发行版。

它以 Debian 为基础，使用 GNOME 桌面环境。尽管它限制了一年内在超过 500 台电脑上使用其操作系统，但它是免费下载的。

它的用户界面很容易使用，看起来很有吸引力，适合安装在现代电脑上。你可以得到各种预装的应用程序。因此，这对没有互联网接入的电脑来说是很方便的。

#### 2、Ubermix

[Ubermix](https://ubermix.org/download.html) 是一个基于 Ubuntu 的 Linux 发行版，旨在通过调整用户界面，摆脱不必要的应用程序，以及增加用于教育的必要工具/应用程序来降低复杂性。

它还提供了一种方法，在出现问题的情况下可以轻松地从系统问题中恢复。在内容过滤和 [屏幕时间控制](https://itsfoss.com/activitywatch/) 方面有一个可选的家长控制功能，这确实很有用。

Ubermix 得到了积极的维护，并在其官方网站上提供了大量关于安装和故障排除的说明。

#### 3、Kano OS（用于树莓派）

[Kano OS](https://kano.me/row/downloadable) 是为 6 至 14 岁的儿童教育而量身定做的计算套件。它就像高级版的树莓派，为年轻人提供了大量的 DIY 和编码活动。

Kano OS 也有基于 Debian 的 [用于树莓派的操作系统](https://itsfoss.com/raspberry-pi-os/)。你不需要为此而购买 Kano 套件。你可以在你的树莓派上使用它。

它的目的是在与他们的计算机套件结合时，提供它所策划的教育的好处。从编码应用程序到游戏，应该有适合每个人的东西。

你还会发现有用的家长控制设置，可以为你的孩子限制/调整体验。如果需要更多的帮助，[官方帮助资源](https://help.kano.me/hc/en-us/sections/360001083699-Kano-OS) 也会派上用场。

#### 4、AcademiX GNU/Linux

[AcademiX](https://academixproject.com/en/home/) 是另一个基于 Debian 的发行版，主要用于学习。

不仅仅是初级教育，该操作系统中包含的程序对大学生也应该是有用的。它还包括虚拟互动实验室和虚拟显微镜。

**虽然它通过预装的实用程序使学习变得简单，但教师也可以用它来创建内容和发布。**

因此，它可以成为很多潜在的学习者和学校教师的一个全能选择。

#### 5、Sugar（使任何发行版都对儿童友好）

[Sugar](https://www.sugarlabs.org) 不是一个成熟的操作系统，而是一个学习平台（环境），它可以安装在任何 Linux 发行版之上，为学习而设置。

不仅仅是帮助你的孩子用一个易于使用的界面学习，它还有有助于协作、分享和学习而预装的软件工具。

它也可用于树莓派。而且提供了 [Flatpak 包](https://itsfoss.com/what-is-flatpak/)，可以让你在任何 Linux 发行版中轻松安装它的一些学习活动。

#### 6、Li-f-e

Linux for education（[Li-f-e](https://sourceforge.net/projects/cyberorg-home/files/Li-f-e/)）最初是 OpenSUSE 的一个项目，这是它的一个延续。

尽管它现在没有 OpenSUSE 的支持（我找不到任何参考资料），但它对孩子和学校来说可能是一个有用的选择。

这款软件基于 Ubuntu MATE，按照一些教科书的说法，它提供了几个内置的应用程序。它并没有提供什么特别的东西，而更像是 Ubuntu 教育版，在写这篇文章的时候，它正在积极维护。

### 最适合学校的 Linux 发行版

到目前为止，我提到的那些都是为孩子们的教育和学习而定制的。但教育有两个部分：学生和教师。

这就是为什么这个列表分为两部分。这第二部分列出了一些可能适合学校管理者、管理层和教师的选项。

当然，如果你想利用一个稳定可靠的 Linux 桌面操作系统来管理你的学校（或）内容创作，你总是可以使用 Linux Mint、elementary OS 或 Ubuntu。然而，有一些选项是为这种目的而定制的。

#### 1、Debian Edu/Skolelinux

[Skolelinux](http://www.skolelinux.org) 是一个基于 Debian 的发行版，包含了一些适合学校师生使用的应用程序和网页服务。

它也被称为 Debian Edu。你可以通过下载所需的 ISO 或基本系统来选择离线安装，其余的可以在线安装。

尽管孩子们在安装后就可以使用它，但它需要一些学习过程来进行配置和维护。因此，这更倾向于学校管理人员或教师，而不是孩子。

#### 2、Linux Schools（Karoshi 服务器）

一个具有 Ubuntu LTS 优点的 Linux 发行版，为学校服务器而建。如果你想建立一个服务器并监视/控制一个连接的服务器网络，[Linux Schools](https://www.linuxschools.com/forum/index-main.php)（或 Karoshi 服务器）是一个很好的选择。

它可以让你使用网页界面管理一个服务器网络。你不需要 Linux 系统管理的深入知识来利用它。

#### 3、Escuelas Linux

[Escuelas Linux](https://escuelaslinux.sourceforge.io/english/index.html) 是基于 Bodhi Linux 的。它内置了几个适合教育环境的应用程序。

它有自定义的工具，可以在几秒钟内将发行版重设为安装后的状态。也有恢复用户身份的选项。除此之外，它还带有在网络中分发教育材料、屏幕广播、镜像、远程命令执行、信息发送、屏幕锁定和对学生的计算机进行静音的应用程序。

考虑到它基于 Bodhi Linux，而 Bodhi Linux 是 [最好的轻量级 Linux 发行版](https://itsfoss.com/lightweight-linux-beginners/) 之一，这对旧系统来说是个不错的选择。

如果你需要 NetBeans、Git、Android Studio 等高级工具，你还可以得到一个额外的开发者包，这是可选安装的。

除了这些选择之外，还有 [EduBOSS](https://bosslinux.in/eduboss)，这是 BOSS Linux 的教育版，是为印度学校量身定做的。

### 总结

虽然有一百多个 Linux 发行版，但只有少数几个是专门为教育而设计的。

对于学生、教师和学校管理来说，有一些可行的选择是件好事。

毕竟，Linux 可以到处使用，任何人都可以使用。我说的对吗？

---

via: <https://itsfoss.com/educational-linux-distros/>

作者：[Ankush Das](https://itsfoss.com/author/ankush/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


2021 总结：学习 C 语言编程的 5 种方法

Summary: 只需掌握一点 C 语言的知识，你就可以做很多事情。

只需掌握一点 C 语言的知识，你就可以做很多事情。

# 2021 总结：学习 C 语言编程的 5 种方法

>
> 只需掌握一点 C 语言的知识，你就可以做很多事情。
>
>
>

<img src="content_image/album_202201_13_192104tb962skk0mm4r44q.jpg" alt="" title="Person drinking a hot drink at the computer">

我精通几种编程语言，但我最喜欢的是 C 语言。C 语言开发于 20 世纪 70 年代，作为一种系统编程语言，在 2021 年仍然是最受欢迎的编程语言之一。如果你想探索 C 语言的几个特点，可以从去年的这些热门文章开始：

### 在 C 语言中使用 getopt 进行短选项解析

如果你的程序每次运行时都能对用户作出反应，你就可以使它变得更加灵活。让你的用户告诉你的程序使用什么文件或如何以不同的方式做事情。为此，你需要读取命令行。[这篇文章](https://opensource.com/article/21/8/short-option-parsing-c) 告诉你如何使用 `argv` 直接读取命令行，并使用 `getopt` 读取短命令行选项。

### 在 Linux 中用 ncurses 定位屏幕上的文本

大多数 Linux 工具只是从屏幕的底部滚动文本。但如果你想在屏幕上定位文本，比如游戏或数据显示，该怎么办？这就是 [ncurses](https://opensource.com/article/21/8/ncurses-linux) 的作用。

### 用 DOS conio 开始编程

C 语言并不只适用于 Linux。你可以在许多操作系统上找到 C，包括 DOS。许多 C 程序员控制控制台输入和输出的标准方法是使用 `conio` 库。学习如何 [使用 conio` 来更新 DOS 程序的控制台](https://opensource.com/article/21/9/programming-dos-conio)，包括文本颜色和文本窗口。

### 使用位域和掩码编写国际象棋游戏

在 C 语言程序中关联信息的标准方法是使用一个结合了两个或多个相关字段的结构体。例如，你可以用一个结构体来跟踪棋盘上的棋子。但是有一种更直接的方法来跟踪同样的信息，同时使用更少的数据和内存。使用 [二进制位域和掩码](https://opensource.com/article/21/8/binary-bit-fields-masks)，你可以存储一个单一的值来识别每个方格中的棋子和颜色。

### C 语言编程中的 5 个常见错误以及如何修复它们

即使是最好的程序员也会产生编程错误。根据你的程序所做的事情，这些 bug 可能会引入安全漏洞，导致程序崩溃，或产生意外的行为。但是，通过一点额外的代码，你可以避免最常见和最严重的 C 语言编程错误。这里有 [五个可能破坏你的应用的 bug 以及你如何避免它们](https://opensource.com/article/21/10/programming-bugs)。

只需一点 C 语言知识，你就可以做很多事情。探索新的方法，为你的下一个 C 语言编程项目增加功能。

---

via: <https://opensource.com/article/22/1/c-programming>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #515 人工智能可以识别匿名棋手

Summary: 更多：• Ubuntu 桌面版降低硬件门槛 • Chrome 将阻止外部域名访问本地网络

# 硬核观察 #515 人工智能可以识别匿名棋手

### 人工智能可以识别匿名棋手

研究人员收集了多次下棋的棋手记录，并从中抽取了多达 32 步的序列。他们对每一步棋进行编码，并将其输入一个神经网络，每个棋手的棋谱形成了一个点群。[研究发现](https://www.science.org/content/article/ai-unmasks-anonymous-chess-players-posing-privacy-risks)，该系统可以在 86% 的时间里识别匿名的玩家，而人工识别的准确率只有 28%。经过调整，它也可以对扑克牌做同样的事情。他们说，在理论上，如果有合适的数据集，这种系统可以根据人们的驾驶习惯或使用手机的时间和地点来识别他们。

>
> 老王点评：人类的很多行为，其实在 AI 眼中都是非常明显的痕迹。
>
>
>

### Ubuntu 桌面版降低硬件门槛

由于 Ubuntu 桌面对内存的需求比较大，因此如果在树莓派上使用的话，Ubuntu 推荐用户使用 4GB/8GB 内存的型号，以避免在慢速的 SD 卡上发生交换。Canonical [宣布](https://ubuntu.com//blog/how-low-can-you-go-running-ubuntu-desktop-on-a-2gb-raspberry-pi-4) 进一步降低 Ubuntu Desktop 的硬件门槛，[支持](https://www.tomshardware.com/news/raspberry-pi-4-2gb-ubuntu-zswap)在 2GB 内存的树莓派 4 上运行。之所以能够降低硬件需求，主要是得到了 zswap 功能的支持，可以减少交换到慢速 SD 卡的进程。该功能可以在进程要被转移到交换文件时，对其进行压缩，以决定是否需要放到交换文件，否则可以避免交换，而解压成本要低得多。

>
> 老王点评：不用等 22.04 ，当前版本中经过设置也可以启用 zswap。
>
>
>

### Chrome 将阻止外部域名访问本地网络

为防止恶意脚本悄悄在浏览器上执行本地 HTTP 请求，Chrome 将 [实现](https://therecord.media/chrome-will-limit-access-to-private-networks-citing-security-reasons/) 名为 [私有网络访问（PNA）](https://wicg.github.io/private-network-access/) 的 W3C 新规范，阻止这一被恶意程序滥用的行为。新功能将在今年上半年推出，PNA 将在 Chrome 中引入一个机制，外部域名在尝试与本地网络设备建立连接前需要征得许可，如果本地设备如服务器或路由器没有回应，尝试建立连接的请求将被阻止。

>
> 老王点评：我以为这是已经是默认行为了。
>
>
>


即将出现在 Ubuntu 22.04 LTS 中的新功能

不痛不痒

更新了个寂寞，就只是对一些软件、内核常规更新

noch viel mehr bei: d-mk-ultra点bokee点com

安装包是越来越大了。

乐色Linux

不错哦，快点出来吧。

期待

期待

你的山寨机内核都是inux的

# 即将出现在 Ubuntu 22.04 LTS 中的新功能

>
> 这是一篇持续更新的文章，其中列出了即将发布的 Ubuntu 22.04 LTS “Jammy Jellyfish” 中增加的所有主要功能。
>
>
>

Ubuntu 的粉丝们！现在是时候为下一个大版本，也就是 Ubuntu 22.04 LTS 感到激动了。是的。这是一个长期支持版本，它将被支持五年，直到 2027 年 4 月。

即将发布的 LTS 版本带来了一些新的功能。如果你正在使用 Ubuntu 20.04 LTS，你会注意到许多视觉上的变化。如果你正在使用 Ubuntu 21.10，你已经看到了大量的变化，但在这个即将发布的版本中仍然会有一些新的变化。

在我向你展示 22.04 中新的预期新功能之前，让我们看看它将在什么时候发布。

### Ubuntu 22.04 发布时间表

Ubuntu 22.04 的稳定版计划于 2022 年 4 月 21 日发布。开发工作已经在紧锣密鼓地进行，它将遵循如下发布时间表：

* 2022 年 2 月 24 日：功能冻结
* 2022 年 3 月 17 日：用户界面冻结
* 2022 年 3 月 31 日：测试版发布
* 2022 年 4 月 14 日：候选版本
* **2022 年 4 月 21 日：最终稳定版本**

现在你知道了重要的发布日期，是时候了解一下 Ubuntu 22.04 LTS 将带来的新功能了。

### Ubuntu 22.04 LTS “Jammy Jellyfish” 的新功能

由于开发工作仍在进行中，许多新功能会在不久的将来陆续加入。我将在它们被发现时进行更新。

现在，这里是 Ubuntu 22.04 中主要的已确认和预期的新功能。

#### GNOME 42 和随之而来的视觉变化

GNOME 42 将于 2022 年 3 月发布。它将被包含在 Ubuntu 22.04 中。

像往常一样，Ubuntu 将使用定制的 GNOME 版本，所以不是所有的 GNOME 42 的变化都会反映在这里。然而，由于使用了新的 libadwaita 和迁移到了 GTK 4，你还是应该看到一些视觉变化。

你应该看到一个界面崭新的设置程序和重新打造的屏幕截图工具。GNOME 42 还将更新一些 GNOME 应用程序，如 Boxes，并引入一个新的文本编辑器。然而，我认为 Ubuntu 会坚持使用 Gedit 作为其默认的文本编辑器。

#### Grub 2.06 和它带来的麻烦

Ubuntu 22.04 LTS 将拥有 [Grub 引导加载程序](https://itsfoss.com/what-is-grub/) 2.06 版本，但其中有一个问题，它的 os-prober 功能默认是禁用的。

这意味着，如果你在一个双启动系统上，Grub 不会探测其他操作系统，因此它不会在 Grub 中列出 Windows（或其他操作系统）。一些升级到 Ubuntu 22.04 开发版本的人已经 [开始面临这个问题](https://itsfoss.community/t/windows-10-boot-option-missing-in-grub-after-upgrading-to-ubuntu-22-04-developer-version/8306/5)。

这并不是说这个问题不能被解决，有一个变通办法。

安装 os-prober（通常已经安装），然后编辑 `/etc/default/grub` 文件，在这个文件中加入 `GRUB_DISABLE_OS_PROBER=false`。保存这个文件，[更新 Grub](https://itsfoss.com/update-grub/)，Grub 现在应该可以看到其他操作系统了。

#### 新的固件更新程序

正如 [OMG! Ubuntu](https://www.omgubuntu.co.uk/2021/11/ubuntu-is-working-on-a-new-firmware-updater-app) 报道的那样，Ubuntu 22.04 可能会有一个新的固件更新程序。

通常情况下，GNOME 软件中心能够处理固件更新，即使在 Ubuntu 的 Snap 版本中。尽管如此，开发团队仍在努力开发一个专门的 GUI 工具来处理固件更新。

这个新工具基本上是 `fwupd` 的基于 Flutter 和 Dart 的 GUI 前端，`fwupd` 是一个命令行工具，用于获取 [Linux 供应商的固件](https://fwupd.org/)。

#### 新的安装程序

这个基于 Flutter 的新安装程序已经开发了很长时间。它本来应该和 Ubuntu 21.10 一起推出，但并没如期实现。有一个单独的 Ubuntu 21.10 预览版，其中有这个新的安装程序，它将成为 Ubuntu 22.04 的默认安装程序。

新的安装程序与 Ubuntu 桌面风格无缝整合，从而使 Ubuntu 22.04 从一开始就具有更现代的外观和感觉。

#### 改进对树莓派的支持

随着 20.10 版本的发布，Ubuntu 开始支持树莓派设备上运行桌面版。虽然它可以在 8GB 版本的树莓派上工作，但在 4GB 上却很吃力，在 2GB 型号上也无法工作。

随着 Ubuntu 22.04 的推出，其性能应该会得到改善，特别是它 [引入了 zswap](https://www.omgubuntu.co.uk/2022/01/ubuntu-on-raspberry-pi-4-2gb-zswap)。

#### 其他变化

在软件供应方面，你应该看到一些其他变化。大多数著名的软件应该有较新的版本。其中一些是：

* OpenSSL 3.0
* Ruby 3.0
* Python 3.10
* PHP 8.1
* GCC 11（预计）

目前还没有确认，但更有可能的是 Ubuntu 22.04 将采用 Linux 内核 5.17。

正如我之前所说，一切正在开发中，一旦有更多的新功能被披露，我将立即更新这篇文章。

### 获取 Ubuntu 22.04 LTS

**警告**：Ubuntu 22.04 仍在努力开发中，你不应该在生产机器或你的主系统上使用它。

如果你想在备用机或虚拟机上测试它，你可以从 Ubuntu 的网站上下载日常构建版。

* [下载 Ubuntu 22.04 日常构建版（不稳定）](https://cdimage.ubuntu.com/daily-live/current/)

如果你在备用机上使用 Ubuntu 20.04 LTS 或 Ubuntu 21.10，你可以强制升级到开发分支。

### 你期待 Ubuntu 22.04 的哪些功能？

很明显，GNOME 42 将是 Ubuntu 22.04 的最大亮点。你希望在这个新的 LTS 版本中看到哪些功能？

---

via: <https://itsfoss.com/ubuntu-22-04-release-features/>

作者：[Abhishek Prakash](https://itsfoss.com/author/abhishek/) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


2021 总结：学习新编程语言的 5 个小知识

# 2021 总结：学习新编程语言的 5 个小知识

>
> 借助开源的力量，任何人都可以编程。找到一个你想做的项目，并让它成为你进入编程的第一个项目。
>
>
>

<img src="content_image/album_202201_14_151030layqs229euy206sc.jpg" alt="" title="Woman sitting in front of her computer">

任何人都可以开始学习编程。[我们都是从某个起点开始的](https://opensource.com/article/21/8/first-programming-language)，而且你不需要有计算机科学背景就可以学习编程。这就是 Linux 和开源的力量：任何人都可以学习一点编程。

如果你想学习一种新的编程语言，我们有几篇可以让你起步的很棒的文章。下面是我们最受欢迎的几篇文章，它们可以帮助到你。

### 比较编程语言

大多数编程语言都有某些相似之处。当你知道如何用一种编程语言做一件事，学习下一种编程语言主要是弄清其语法和结构。

#### 不同的编程语言如何做同样的事情

学习一种新的编程语言的一个好方法是写一个简单的测试程序，如一个游戏，以探索该编程语言的工作原理。我经常写的一个示例程序是一个简单的“猜数字”游戏，即计算机在 1 到 100 之间挑选一个数字，让我猜出来。今年早些时候，我们发表了 [一系列文章](https://opensource.com/article/21/4/compare-programming-languages)，探讨如何用几种编程语言编写猜数字游戏。了解这些不同的编程语言如何实现“猜数字”游戏的主要步骤。

#### 不同的编程语言如何读写数据

[Alan 的](https://opensource.com/users/alansmithee)文章比较了不同的编程语言如何在相同的思想下 [读写数据](https://opensource.com/article/21/7/programming-read-write)。无论这些数据是来自于配置文件还是用户创建的文件，在存储设备上处理数据对于编码者来说是很常见的。Alan 的比较文章提供了对几种流行的编程语言，如 C、Java、Groovy 和其他语言所采取的不同方法的深入了解。

### 学习一种新的编程语言

无论你是想学习一种新的编程语言，还是想探索一种现有的编程语言，请看看下面这些关于学习编程的好文章。

#### 如何用 WebAssembly 编写 “Hello World”

WebAssembly 是一种字节码格式，几乎所有的浏览器都可以将其编译为主机系统的机器代码。与 JavaScript 和 WebGL 一起，WebAssembly 满足了将应用移植到网络浏览器中独立使用的需求。[Stephan](https://opensource.com/users/hansic99) 解释了如何用 WASM-text 创建经典的 [Hello World 程序](https://opensource.com/article/21/3/hello-world-webassembly)。

#### 用 Golang 轻松实现交叉编译

[Gaurav](https://opensource.com/users/gkamathe) 写了关于通过将脚本转换为 Go 程序来学习 [Go 的交叉编译支持](https://opensource.com/article/21/1/go-cross-compiling)。你可以一次写好你的程序，并通过交叉编译为另一个环境进行编译。

#### 为什么我使用 D 编程语言来编写脚本

D 编程语言由于其静态类型和元编程能力，常常被认为是一种系统编程语言。然而，它也是一种非常高效的脚本语言。[Lawrence](https://opensource.com/users/aberba) 写了关于如何利用 D 编程语言进行 [普通的脚本编写](https://opensource.com/article/21/1/d-scripting)。

借助于开源的力量，编程可以被任何人所接受。找到一个你想做的项目，并让它成为你进入编程的第一个项目。

---

via: <https://opensource.com/article/22/1/learn-programming>

作者：[Jim Hall](https://opensource.com/users/jim-hall) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #516 广告过滤 DNS 服务 Adhole 宣布关停

Summary: 更多：• 去年可利用的 WordPress 插件漏洞数量爆炸性增长 • Linux 内核准备彻底移除 a.out 格式支持

# 硬核观察 #516 广告过滤 DNS 服务 Adhole 宣布关停

### 广告过滤 DNS 服务 Adhole 宣布关停

Pi-hole 可以帮助用户过滤浏览器和流媒体服务中的广告，可被设置于 DNS 的前方。早在 2017 年，Adhole 从一个公共 VPS 上的小型单节点 Pi-hole 实例，发展成为一个全球性的多节点广告屏蔽 DNS 网络，在全球拥有了成千上万的并发用户。但这也导致需要更多的服务器资源和维护工作。并且，最近还因为 IP 地址变换和证书更换带来了稳定性问题。不堪重负之下，项目方 [宣布关闭](https://adhole.org/)。

>
> 老王点评：这就是公益行为没有转换成可持续的非营利模式。有些可惜。
>
>
>

### 去年可利用的 WordPress 插件漏洞数量爆炸性增长

研究人员 [发现](https://threatpost.com/wordpress-bugs-exploded-2021-exploitable/177553/)，到 2021 年底，第三方 WordPress 插件中有 10359 个漏洞，其中 2240 个漏洞是在去年披露的，与 2020 年相比，漏洞数量增加了 142%。WordPress 插件的漏洞中，有 75% 可被远程利用，80% 存在公开利用，而可公开利用的漏洞中 60% 没有被 CVE 组织记录。平均而言，所有 WordPress 插件漏洞的 CVSSv2 得分是 5.5，属于中等风险。但研究发现，恶意行为者并不青睐那些严重性高的漏洞，而是选择那些他们容易利用的漏洞。

>
> 老王点评：超过 40% 网站使用 WordPress，因而其缺陷和风险也被相应放大，值得注意。
>
>
>

### Linux 内核准备彻底移除 a.out 格式支持

直到 90 年代中期的 Linux 1.2 版本之前，Linux 都依靠 a.out 二进制文件格式，之后才改用了 ELF 二进制文件格式。但直到 2019 年，Linux 才废除了对在 x86 32 位上运行 a.out 的支持。现在，[有人提交](https://www.phoronix.com/scan.php?page=news_item&px=Linux-Remove-a.out) 了从内核中移除 a.out 支持的补丁，并得到了其它内核开发者的支持。在这个过程中，一些旧的系统调用和其他未使用的内核代码也有可能被清理掉。这可能在 5.17 或 5.18 进入内核主线。

>
> 老王点评：虽然不移除也不伤大雅，但是这种过时的遗留物还是清理了好。可喜的看到，Linux 内核现在正在做各种清理工作。
>
>
>


内容管理系统（CMS）简史

Summary: 从静态页面到 JAM 栈，CMS 的历史就是开源和 Web 变迁的核心。

从静态页面到 JAM 栈，CMS 的历史就是开源和 Web 变迁的核心。

# 内容管理系统（CMS）简史

>
> 从静态页面到 JAM 栈，CMS 的历史就是开源和 Web 变迁的核心。
>
>
>

<ruby> 内容管理系统 <rt>  Content Management System </rt></ruby>（CMS）是一个多产的软件类别，其涵盖了所有创建和修改数字内容的应用程序。因此，CMS 的历史可以追溯到由 [蒂姆-伯纳斯-李](https://www.w3.org/People/Berners-Lee/#:~:text=A%20graduate%20of%20Oxford%20University,refined%20as%20Web%20technology%20spread.) 在 1990 年建立的历史上的第一个网站也就不足为奇了，该网站是以基于互联网的超文本系统 HTML 为模型，只包含了文本和链接。

万维网（WWW）的雏形是静态网站，无需后端数据库即可提供内容。它们消耗的计算资源很少，所以加载速度很快 —— 因为没有数据库查询、没有模板渲染、也没有客户端-服务器请求的处理。鉴于那时很少有人经常“上网冲浪”，特别是与今天相比，Web 流量也很少。

当然，促进了这种互操作性都是开源软件。事实上，开源在 CMS 的演变中一直扮演着重要的角色。

### CMS 的崛起

快进到九十年代中期，随着万维网的普及和网站对频繁更新的需求的增加 —— 这与它最初托管手册式的静态内容有所不同。这导致了大量的 CMS 产品的出现，如 FileNet、Vignette 的StoryBuilder、Documentum 和其他许多产品。这些都是专有的闭源产品，这在那个时期并不罕见。

然而，在 21 世纪初，开源的 CMS 替代品出现了，这包括 WordPress、Drupal 和 Joomla。WordPress 包含一个可扩展的插件架构，并提供了可用于建立网站的模板，而不要求用户具备 HTML 和 CSS 知识。WordPress CMS 软件安装在 Web 服务器上，通常与 MySQL 或 MariaDB 数据库（当然，两者都是开源的）配合。CMS 是开源的这一事实在一定程度上加速了向 WordPress 的重大转变。

即使在今天，仍有大约三分之一的网站是使用这些第一代内容管理系统建立的。这些传统的 CMS 是单体系统，包括后端用户界面、插件、前端模板、层叠样式表（CSS）、Web 服务器和数据库。每当用户请求一个网站页面时，服务器首先查询数据库，然后将结果与来自页面标记和插件的数据结合起来，在浏览器中生成一个 HTML 文档。

### 趋向于 LAMP 栈

开源 CMS 的出现与建立在 LAMP（Linux、Apache、MySQL 和 PHP/Perl/Python）栈上的基础设施是一致的。这种新的结构代表了单体 Web 开发的开始，它使动态网站的创建能够使用数据库查询，为不同的终端用户提供独特的内容。在这一点上，以前放在服务器上的静态网站模式真正开始消失。（静态网站模式是指由文本和链接组成的单个文件，如 HTML、CSS、JavaScript 等，以同样的方式传递给所有的终端用户。）

### 移动 Web 改变了一切

随着我们逐渐步入 2000 年代的第一个十年，早期的移动设备如 Palm 和黑莓提供了对 Web 内容的访问，然后在 2010 年左右推出的智能手机和平板电脑让越来越多的用户可以通过移动设备访问 Web 。2016 年，天平倾斜，全球 [来自移动设备和平板电脑的 Web 访问量超过了台式机](https://techcrunch.com/2016/11/01/mobile-internet-use-passes-desktop-for-the-first-time-study-finds/)。

单体的 CMS 并不适合为这些不同类型的访问设备提供内容，这就需要不同版本的网站 —— 通常是针对移动用户的精简版网站。新的可以访问 WEB 的设备类型的出现，如智能手表、游戏机和语音助手（如 Alexa）[5](https://opensource.com/article/20/6/open-source-voice-assistant)，只是加剧了这个问题，对全渠道内容交付的需求变得很明显。

### 无头 CMS 和 JAM 栈的出现

无头 CMS 将后端（用来存储所有内容、数据库和文件）与前端解耦。通常，无头 CMS 使用 API，这样就可以访问数据库（SQL 和 NoSQL）和文件的内容，以便在网站、智能手机、甚至物联网（IoT）设备上显示。此外，无头 CMS 与前端框架无关，使其与各种静态网站生成器和前端框架（如 Gatsby.js、Next.js、Nuxt.js、Angular、React 和 Vue.js）兼容，这使开发人员可以自由选择他们喜欢的工具。

无头 CMS 特别适用于 JAM（Javascript、API 和 Markup）栈的 Web 开发架构，该架构正在成为一种流行的解决方案，因为它能提供更好的 Web 性能和 SEO 排名，以及强大的安全措施。JAM 栈不依赖于 Web 服务器，当有请求时可以立即提供静态文件。不需要查询数据库，因为文件已经被编译并提供给浏览器。

向无头 CMS 的转变是由新一轮的参与者推动的，他们有的采用 SaaS 方式，如 Contentful，有的采用自托管的开源替代品，如 [Strapi](https://strapi.io/)。无头 CMS 也在颠覆电子商务行业，新的软件编辑器，如 Commerce Layer 和 [Saleor](https://saleor.io/)（也是开源的）提供了解决方案，以真正的全渠道方式管理多个 SKU、价格和库存数据。

### 总结

在 CMS 的整个演变过程中，由互联网上的信息消费方式驱动，开源软件也沿着同样的趋势发展，新技术不断出现以解决出现的需求。事实上，在内容管理系统、万维网和开源之间似乎存在着一种相互依赖的关系。管理越来越多的内容的需求不会很快消失。我们完全有理由期待在未来更广泛地采用开源软件。

---

via: <https://opensource.com/article/20/7/history-content-management-system>

作者：[Pierre Burgy](https://opensource.com/users/pierreburgy) 选题：[lujun9972](https://github.com/lujun9972) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)

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


2021 总结：必备的开源备忘单

Summary: 在你学习 Linux 命令行或练习新的编程语言时，请随身携带这些方便的备忘单。

在你学习 Linux 命令行或练习新的编程语言时，请随身携带这些方便的备忘单。

# 2021 总结：必备的开源备忘单

>
> 在你学习 Linux 命令行或练习新的编程语言时，请随身携带这些方便的备忘单。
>
>
>

<img src="content_image/album_202201_15_113627xxt6ldzq5hvtqvg8.jpg" alt="" title="Brain on a computer screen">

你不可能记住每一个你需要使用的命令或快捷方式。我们都是普通人，通常情况下，我把笔记放在不同的纸片上和笔记本里。这导致我的办公桌上有些过分紊乱。到处都是一些五年前的杂乱无章的潦草文字。这这些 2021 年的备忘单将把混乱降低一个档次。从 JavaScript 到 Linux，这个列表中都有适合你的东西。

### 如何编写你的第一段 JavaScript 代码

这篇 [文章](https://opensource.com/article/21/7/javascript-cheat-sheet) 是为那些今年想尝试学习一门新语言的初来乍到者准备的。[Seth Kenlon](https://opensource.com/users/seth) 介绍了如何安装 JavaScript 和开始制作一个简单的 HTML 页面。虽然 Seth 解释说 JavaScript 并不只用于网站，但所有主要的网页浏览器都有一个运行你的代码的 JavaScript 引擎。在整个演练过程中，Seth 涵盖了语法、变量和函数，让你开始创建一个新的应用。最后，在分享 [备忘录](https://opensource.com/downloads/javascript-cheat-sheet) 之前，Seth 还介绍了用 JavaScript 进行跨平台的能力。

### Linux 软件包管理

在 [Chris Hermanse](https://opensource.com/users/clhermansen) 的 [文章](https://opensource.com/article/21/6/apt-linux) 中，在他分享他的 [备忘录](https://opensource.com/downloads/apt-cheat-sheet) 之前，我们对使用 `apt` 做了简要预览。许多人日常在家里和办公室使用基于 Debian 的 Linux。在这篇入门文章中，我们可以了解一下 `apt` 的用途，首先是用 `apt` 在软件包系统中寻找软件，也可以用另一个命令查看这些软件包的元数据。接下来，Chris 介绍了查看一个软件包是否包括安装过程中需要的文件（软件包依赖）。最后，Chris 介绍了如何用 `apt` 命令删除软件包。这份详尽的备忘录可以给你带来比 Linux 的日常软件包管理更多的东西。如果 `apt` 不适合你，你也可以看看 `dnf` [备忘录](https://opensource.com/downloads/dnf-cheat-sheet)。

### 用 DOS conio 开始编程

你是否想在明年涉足 DOS？如果是的话，你已经准备好创建令人兴奋的新应用，[Jim Hall](https://opensource.com/users/jim-hall) 为你准备了一份 [备忘录](https://opensource.com/downloads/dos-conio-cheat-sheet)。在这篇 [文章](https://opensource.com/article/21/9/programming-dos-conio) 中定义了 `conio`，在分享备忘录之前，Jim 介绍了如何制作你自己的彩色文本用户界面。Jim 解释说，你可以用你的应用做更多的事情，使其更具互动性和刺激性。现在你有了这个备忘录，你就可以用 DOS `conio` 创建你自己的应用了。

### 学习 SQLite3

与这种常见的数据库一起工作？下面是你如何通过这个 [备忘录](https://opensource.com/downloads/sqlite-cheat-sheet) 成为一个资深用户。在这个 [实践教程](https://opensource.com/article/21/2/sqlite3-cheat-sheet) 中，[Klaatu](https://opensource.com/users/klaatu) 从安装和与 SQLite3 互动开始，然后在分享备忘录之前创建了一个带表的数据库。Klaatu 还用一段很简单的文字解释了数据类型和日期时间戳功能。Klaatu 在本教程中增加了更多详细的功能，包括查看表格、改变表格等等。如果你想继续使用 SQLite3 数据库并使其变得强大，或者只是想学习如何使用它，这个备忘录就适合你。

### 更多的 Linux 备忘录

虽然我只是蜻蜓点水地提及了这些备忘单，但我想提到一些值得称赞的地方，其中包括 [Seth Kenlon](https://opensource.com/users/seth) 的 Linux 备忘单：

* Seth 对 [grep](https://opensource.com/downloads/grep-cheat-sheet) 的高级用法对各种场合都很有用。
* [find](https://opensource.com/downloads/linux-find-cheat-sheet) 命令备忘录对于我不想花大量时间在目录中徘徊的时候特别有帮助。
* [wget](https://opensource.com/downloads/linux-wget-cheat-sheet) 备忘录对于那些你需要从互联网上获取东西的时候是很方便的。

### 以回顾 2021 年开始 2022 年

2021 年是备忘录的辉煌之年，其中许多是关于 Linux 的，但也有一些备忘录甚至让你从一种全新的语言开始。我强烈建议你打印出这些备忘录，在 2022 年开始学习新东西。我们欢迎各种经验水平的作者，请通过 [给我们发送文章或备忘录](https://opensource.com/how-submit-article) 告诉我们你是如何学习新技能的。

---

via: <https://opensource.com/article/22/1/open-source-cheat-sheets>

作者：[Jessica Cherry](https://opensource.com/users/cherrybomb) 选题：[lujun9972](https://github.com/lujun9972) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

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


硬核观察 #517 24 小时自毁网站已经运行了近两年

Summary: 更多：• Ubuntu 22.04 LTS 计划坚守 Linux 内核 5.15 • PCIe 6.0 规范发布，但 PCIe 4.0 才只有 10% 的份额

# 硬核观察 #517 24 小时自毁网站已经运行了近两年

### 24 小时自毁网站已经运行了近两年

2020 年 4 月，一个名为“[这个网站会自毁](https://www.thiswebsitewillselfdestruct.com/)”的网站悄悄上线了。它的自毁可以被网友们拯救：“你可以向我发送信息。如果 24 小时内我没有收到信息，将会永久自毁。”不过快两年过去了，它依然活着。这个网站上有各种各样的留言，你留言之后不但可以给这个网站续命，而且可以随机看到一条别人的留言。

>
> 老王点评：很有趣的一个社会实验，或许这个网站自毁的一天就是人类对自己已经失望的一天吧。
>
>
>

### Ubuntu 22.04 LTS 计划坚守 Linux 内核 5.15

昨天我们发的 [文章](/article-14177-1.html) 中预测 Ubuntu 22.04 中可能会使用 Linux 内核 5.17。但是在关于 Ubuntu 22.04 的 GNOME 计划的讨论中，Canonical [提到](https://9to5linux.com/looks-like-ubuntu-22-04-lts-will-be-powered-by-linux-5-15-lts-ship-with-gnome-42) “计划是在 LTS 中使用 5.15，但是 OEM 和 HWE 版本将在某个时候升级到 5.17”。也就是说，在 2023 年，Ubuntu 22.04.2 LTS 将使用 Ubuntu 22.10 的 HWE 内核，而 Ubuntu 的 OEM 合作伙伴，如戴尔也能够为他们最新的 Linux 预装系统提供更新的内核。之所以采用 5.15，是因为这个版本也是 LTS 的，虽然已经发布了半年了。

>
> 老王点评：LTS 发行版采用 LTS 内核是应有之义，至于最新硬件支持，这个其实对于 LTS 版本来说并不是最关键的。
>
>
>

### PCIe 6.0 规范发布，但 PCIe 4.0 才只有 10% 的份额

AMD 在 2019 年的锐龙 3000 系列处理器上首发了 PCIe 4.0 技术，现在各大 SSD 厂商也都有 PCIe 4.0 旗舰级硬盘上市。在 2020 年的时候，SATA SSD 硬盘份额超过了 1/3，PCIe 4.0 只占 3% 份额，2021 年才提高到了 10%，今年的普及速度还会加快，但份额预计只有 30% 左右。PCIe 5.0 硬盘的速度可从目前的 7GB/s 提升到 14GB/s，性能轻松翻倍。而 PCI-SIG 组织刚刚 [发布](https://www.phoronix.com/scan.php?page=news_item&px=PCIe-6.0-Specification) 了 PCIe 6.0 标准，速度再次翻倍到 64GT/s，PCIe x16 可以提供高达 256GB/s 的带宽，用于 SSD 的话 PCIe 6.0 x4 可提供最高 32GB/s 的速度。

>
> 老王点评：硬件的发展真是日新月异，感觉没多久就淘汰了。
>
>
>