diff --git a/published/20210725 How to Recover Arch Linux Install via chroot.md b/published/20210725 How to Recover Arch Linux Install via chroot.md
new file mode 100644
index 0000000000..fdadf9e7be
--- /dev/null
+++ b/published/20210725 How to Recover Arch Linux Install via chroot.md
@@ -0,0 +1,117 @@
+[#]: subject: "How to Recover Arch Linux Install via chroot"
+[#]: via: "https://www.debugpoint.com/2021/07/recover-arch-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14708-1.html"
+
+如何通过 chroot 恢复 Arch Linux 系统
+======
+
+
+
+> 这个快速指南解释了恢复 Arch Linux 安装的一些方便步骤。
+
+作为一个滚动发布的版本,[Arch Linux][1] 中有时会出现一些问题。不是因为你自己的行为,而是数以百计的其他原因,如新内核与你的硬件或软件的兼容性。但是,Arch Linux 仍然很棒,它提供了最新的软件包和应用。
+
+但有时,它也会给你带来麻烦,你最终只能看到一个闪烁的光标,其他什么都没有。
+
+所以,在这种情况下,与其重新格式化或重新安装,不如在放弃希望之前尝试恢复安装和数据。本指南概述了这个方向的一些步骤。
+
+### 恢复 Arch Linux 安装
+
+第一步是用 Arch Linux 创建一个可启动的现场 USB。从 [这个链接][3] 下载 .ISO 并创建一个可启动的 USB。你可以查看这个 [如何使用 Etcher 创建可启动的 USB][2] 的指南。记住这一步需要另一个稳定的工作系统,因为你目前的系统不能使用。
+
+你需要知道你的 Arch Linux 安装在哪个分区上。这是一个非常重要的步骤。如果你不知道,你可以用 GParted 来查找。或者在你的 GRUB 菜单中查看,或者你可以运行下面的命令来了解。这将列出你所有的磁盘分区及其大小、标签:
+
+```
+sudo lsblk -o name,mountpoint,label,size,uuid
+```
+
+完成后,插入 USB 盘并从它启动。你应该在现场介质中看到 Arch Linux 的提示符。
+
+现在,用下面的方法挂载 Arch Linux 分区。记得把 `/dev/sda3` 改成你对应的分区。
+
+```
+mount /dev/sda3 /mnt
+arch-chroot /mnt
+```
+
+`arch-chroot` 命令将在终端挂载你的 Arch Linux 分区,所以用你的 Arch 凭证登录。现在,在这个阶段,根据你的需要,你有以下选择。
+
+* 你可以通过 `/home` 文件夹来备份你的数据。如果,故障排除方式无效的话。你可以把文件复制到外部 USB 或其他分区。
+* 核查日志文件,特别是 pacman 日志。因为,不稳定的系统可能是由升级某些软件包引起的,如图形驱动或任何其他驱动。根据日志,如果你需要的话,可以降级任何特定的软件包。
+
+你可以使用下面的命令来查看 pacman 日志文件的最后 200 行,以找出任何失败的项目或依赖性删除。
+
+```
+tail -n 200 /var/log/pacman.log | less
+```
+
+上面的命令给出了你的 `pacman.log` 文件末尾的 200 行来验证。现在,仔细检查哪些软件包在你成功启动后被更新了。
+
+并记下软件包的名称和版本。你可以尝试逐一降级软件包,或者如果你认为某个特定的软件包产生了问题。使用 `pacman -U` 开关来降级。
+
+```
+pacman -U
+```
+
+如果有的话,你可以在降级后运行以下命令来启动你的 Arch 系统。
+
+```
+exec /sbin/init
+```
+
+检查你的显示管理器的状态,是否有任何错误。有时,显示管理器会产生一个问题,无法与 X 服务器通信。例如,如果你正在使用 Lightdm,那么你可以通过以下方式检查它的状态。
+
+```
+systemctl status lightdm
+```
+
+或者,可以通过下面的命令启动它,并检查出现了错误。
+
+```
+lightdm --test-mode --debug
+```
+
+下面是一个 Lightdm 失败的例子,它导致了一个不稳定的 Arch 系统。
+
+![lightdm - test mode][4]
+
+或者通过使用 `startx` 启动 X 服务器来检查。
+
+```
+startx
+```
+
+根据我的经验,如果你在上述命令中看到错误,尝试安装另一个显示管理器并启用它,如 sddm。它可能会消除这个错误。
+
+根据你的系统状态,尝试上述步骤,并进行故障排除。对于特定于显示管理器 lightdm 的错误,我们有一个 [指南][5],你可以看看。
+
+如果你使用的是 sddm,那么请查看 [这些故障排除步骤][6]。
+
+### 总结
+
+每个安装环境都是不同的。上述步骤可能对你不起作用。但它值得一试,根据经验,它是有效的。如果它起作用,那么,对你来说是好事。无论哪种方式,请在下面的评论区中告诉我结果如何。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/2021/07/recover-arch-linux/
+
+作者:[Arindam][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/tag/arch-linux
+[2]: https://www.debugpoint.com/2021/01/etcher-bootable-usb-linux/
+[3]: https://archlinux.org/download/
+[4]: https://www.debugpoint.com/wp-content/uploads/2021/03/lightdm-test-mode.jpg
+[5]: https://www.debugpoint.com/2021/03/failed-to-start-lightdm/
+[6]: https://wiki.archlinux.org/title/SDDM#Troubleshooting
diff --git a/translated/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md b/published/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md
similarity index 66%
rename from translated/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md
rename to published/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md
index 0a27cd46b5..4004bcb938 100644
--- a/translated/tech/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md
+++ b/published/20220516 How to Dual Boot Ubuntu 22.04 LTS and Windows 11.md
@@ -3,45 +3,47 @@
[#]: author: "James Kiarie https://www.linuxtechi.com/author/james/"
[#]: collector: "lkxed"
[#]: translator: "robsean"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14699-1.html"
如何双启动 Ubuntu 22.04 LTS 和 Windows 11
======
-嗨,伙计们,在这篇指南中,我们将演示如何在 Windows 11 的旁侧配置 Ubuntu 22.04 LTS (Jammy Jellyfish) 的双启动设置
-为使其能工作,你需要在你的计算机上安装 windows 11 。接下来,你将需要在你的硬盘驱动器上创建一个单独的分区,你将在此分区上安装 Ubuntu 22.04 。我们将包含这点知识,因此不要担心。
+
-##### 必要条件
+嗨,伙计们,在这篇指南中,我们将演示如何在 Windows 11 的之外配置 Ubuntu 22.04 LTS(Jammy Jellyfish)的双启动设置。
-在设置双启动前,这些是你所需要的。
+为使其能工作,你需要在你的计算机上已经安装好了 Windows 11 。接下来,你将需要在你的硬盘驱动器上创建一个单独的分区,你将在此分区上安装 Ubuntu 22.04 。我们将包含这点知识,因此不要担心。
-* 一个 Ubuntu 22.04 的可启动 USB 驱动器,你可以转到 [Ubuntu 22.04 下载页面][1] 来下载 Ubuntu 22.04 的 ISO 镜像文件。在 ISO 镜像文件到位后,抓取一个 16GB USB 驱动器,并使用 Rufus 应用程序来使其可启动。
+**前置条件:**
-* 快速稳定的因特网连接
+在设置双启动前,这些是你所需要的:
+
+* 一个 Ubuntu 22.04 的可启动 USB 驱动器,你可以转到 [Ubuntu 22.04 下载页面][1] 来下载 Ubuntu 22.04 的 ISO 镜像文件。在 ISO 镜像文件到位后,拿一个 16GB USB 驱动器,并使用 Rufus 应用程序来使其可启动。
+* 快速稳定的互联网连接
### 步骤 1、在你的硬盘驱动器上创建一个可用的分区
正如介绍中所提到的,我们首先需要在硬盘驱动器上创建一个单独的分区,我们将在其中安装 Ubuntu 22.04 。
-因此,通过按下 **Windows + R** 组合键来打开磁盘管理器实用程序
+因此,通过按下 `Windows + R` 组合键来打开磁盘管理器实用程序。
-在对话框中,输入 diskmgmt.msc ,并按下 回车键 按键。
+在对话框中,输入 `diskmgmt.msc` ,并按下回车键。
![][2]
- 磁盘管理控制台将显示当前磁盘分区,如你将在下面所看到的一样。我们将通过压缩 ‘卷 E’ 来创建一个用于安装 Ubuntu 的分区。这在你的安装过程中可能有所不同,但是只需要跟着做,你就会理解其中的大体意思。
+磁盘管理控制台将显示当前磁盘分区,如你将在下面所看到的一样。我们将通过压缩 “卷 E” 来创建一个用于安装 Ubuntu 的分区。这在你的安装过程中可能有所不同,但是只需要跟着做,你就会理解其中的大体意思。
![][3]
-因此,在你想要压缩的磁盘驱动器卷上右键,并在弹出的菜单中选择 压缩卷 选项。
+因此,在你想要压缩的磁盘驱动器卷上点击鼠标右键,并在弹出的菜单中选择 压缩卷 选项。
![][4]
-一个弹出对话框将会出现,如下所示。具体指定压缩的控件大小(以 MB 为单位),并单 压缩卷 。
+将会出现一个弹出对话框,如下所示。具体指定压缩的控件大小(以 MB 为单位),并单击 压缩卷 。
-这是指定给 Ubuntu 22.04 安装所用的空间.
+这是指定给 Ubuntu 22.04 安装所用的空间。
![][5]
@@ -49,11 +51,11 @@
![][6]
-随着可用空间的到来,现在将可启动 USB 媒介盘插入到你的 PC ,并重新启动你的系统。此外,要确保访问 BIOS 设置,并修改启动优先级,来使 USB 驱动器成为第一优先级。保存 BIOS 更改并继续启动。
+随着有了可用空间,现在将可启动 USB 驱动器插入到你的 PC ,并重新启动你的系统。此外,要确保访问 BIOS 设置,并修改启动优先级,来使 USB 驱动器成为第一优先级。保存 BIOS 更改并继续启动。
### 步骤 2、开始安装
-在第一屏幕中,你将得到如图所示的 GRUB 菜单。选择第一个选项 尝试或安装 Ubuntu ,并按下 回车键 按键。
+在第一个屏幕中,你将得到如图所示的 GRUB 菜单。选择第一个选项 尝试或安装 Ubuntu ,并按下 回车键 按键。
![][7]
@@ -69,7 +71,7 @@ Ubuntu 22.04 将开始加载,如下所示。这最多需要一分钟。
![][10]
-在 更新和其它软件 步骤中,选择 正常安装以便安装 Ubuntu的 GUI 版本,通过勾选其它剩余选项来允许下载更新和安装第三方的针对于图像、WIFI 硬件和其它实用程序的软件包
+在 更新和其它软件 步骤中,选择 正常安装 以便安装 Ubuntu的 GUI 版本,通过勾选其它剩余选项来允许下载更新和安装第三方的针对于图像、WIFI 硬件和其它实用程序的软件包。
接下来,单击 继续 按钮。
@@ -85,29 +87,29 @@ Ubuntu 22.04 将开始加载,如下所示。这最多需要一分钟。
针对 Ubuntu 22.04 ,我们将创建下面的分区:
-* /boot – 1 GB
-* /home – 10 GB
-* / – 12 GB
-* Swap – 2 GB
-* EFI – 300 MB
+* `/boot` – 1 GB
+* `/home` – 10 GB
+* `/` – 12 GB
+* 交换分区 – 2 GB
+* EFI – 300 MB
-为开始使用这些分区,单击 可用空间分区下面的 [ + ] 符号。
+为开始使用这些分区,单击 可用空间分区下面的 “+” 符号。
![][13]
-如图显示填写 /boot 分区的详细信息,然后单击 确定 按钮。
+如图显示填写 `/boot` 分区的详细信息,然后单击 确定 按钮。
![][14]
-接下来,具体指定 /home 分区,并单击 确定 按钮。
+接下来,具体指定 `/home` 分区,并单击 确定 按钮。
![][15]
-接下来,定义 / ( root ) 分区,并单击 确定 按钮。
+接下来,定义 `/`(根)分区,并单击 确定 按钮。
![][16]
-为定义 swap 空间,设置大小,并在 使用为:选项中选择 交换区域。
+为定义交换空间,设置大小,并在 使用为:选项中选择 交换区域。
![][17]
@@ -115,7 +117,7 @@ Ubuntu 22.04 将开始加载,如下所示。这最多需要一分钟。
![][18]
-下图是一份我们的分区表的分区摘要。
+下图是一份我们的分区表的分区摘要:
![][19]
@@ -141,17 +143,17 @@ Ubuntu 22.04 将开始加载,如下所示。这最多需要一分钟。
![][24]
-在这时,移除你的可启动 USB 驱动器,并按下 回车键 按键。
+在这时,移除你的可启动 USB 驱动器,并按下回车键。
![][25]
-在系统重新启动时,你将找到 Ubuntu 和 Windows 11 的所有选项。
+在系统重新启动时,你将找到包括 Ubuntu 和 Windows 11 在内的各种选项。
-选择 ‘Ubuntu’ 来启动到你的新 Ubuntu 22.04 安装。为启动到 Windows 11,选择标有 Windows 恢复环境 的条目。
+选择 “Ubuntu” 来启动到你的新 Ubuntu 22.04 安装。要启动到 Windows 11,请选择标有 Windows 恢复环境 的条目。
![][26]
-就这样。我们演示了如何双启动 Windows 11 和 Ubuntu 22.04.
+就这样。我们演示了如何双启动 Windows 11 和 Ubuntu 22.04。
--------------------------------------------------------------------------------
@@ -160,7 +162,7 @@ via: https://www.linuxtechi.com/dual-boot-ubuntu-22-04-and-windows-11/
作者:[James Kiarie][a]
选题:[lkxed][b]
译者:[robsean](https://github.com/robsean)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md b/published/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md
new file mode 100644
index 0000000000..77459650a8
--- /dev/null
+++ b/published/20220518 How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 - 20.04 - 18.04.md
@@ -0,0 +1,276 @@
+[#]: subject: "How To Boot Into Rescue Mode Or Emergency Mode In Ubuntu 22.04 / 20.04 / 18.04"
+[#]: via: "https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: "robsean"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14709-1.html"
+
+详解在 Ubuntu 中引导到救援模式或紧急模式
+======
+
+
+
+这篇教程将介绍如何在 Ubuntu 22.04、20.04 和 18.04 LTS 版本中引导到 救援 模式或 紧急 模式。
+
+> 你可能已经知道,在 RHEL 7 、RHEL 8 、Ubuntu 16.04 LTS 及其更新的版本的 Linux 发行版中 运行等级 已经被 系统目标 所替代。更多关于 运行等级 和 系统目标 的信息,参考 [这篇指南][1] 。
+
+这篇指南是针对 Ubuntu 编写的,但是,下面所给的步骤应该也适用于大多数使用 systemd 作为默认服务管理器的 Linux 发行版。
+
+在进入主题前,让我们简单的理解:什么是 救援 模式 和 紧急 模式,以及这两种模式的目的是什么。
+
+### 什么是救援模式?
+
+在 Linux 发行版中,救援模式等效于使用 SysV 作为默认的服务器管理器的 单用户 模式。在救援模式中,将挂载所有的本地文件系统,将仅启动一些重要的服务。但是,不会启动一般的服务(例如,网络服务)。
+
+救援模式在不能正常引导系统的情况下是很有用的。此外,我们可以在救援模式下执行一些重要的救援操作,例如,[重新设置 root 密码][2] 。
+
+### 什么是紧急模式?
+
+与救援模式相比,在紧急模式中,不会启动任何的东西。不会启动服务、不会挂载挂载点、不会建立套接字、什么都不会启动。你将所拥有的只是一个 **原始的 shell** 。紧急模式适用于调试目的。
+
+首先,我们将看到如何在 Ubuntu 22.04 和 20.04 LTS 发行版中引导到救援模式或紧急模式。在 Ubuntu 22.04 和 20.04 LTS 中的过程是完全相同的!
+
+### 在 Ubuntu 22.04 / 20.04 LTS 中引导到救援模式
+
+我们可以使用两种方法来引导到救援模式。
+
+#### 方法 1
+
+打开你的 Ubuntu 系统。在 BIOS 徽标出现后,按下 `ESC` 按键来显示 GRUB 菜单。
+
+在 GRUB 菜单中,选择第一项,并按下 `e` 按键来编辑它。
+
+![GRUB Menu In Ubuntu 22.04 / 20.04 LTS][3]
+
+按下 `↓` 按键,并找到以单词 `linux` 开头的一行代码,并在其结尾处添加下面的一行代码。为到达其结尾处,只需要按下 `Ctrl + e` 组合键,或使用你键盘上的 `END` 按键或 `←`/`→` 按键。
+
+```
+systemd.unit=rescue.target
+```
+
+![Edit Grub Boot Menu Entries To Enter Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS][4]
+
+在添加上面的代码行后,按下 `Ctrl + x` 组合键或按下 `F10` 按键来引导到救援模式。
+
+数秒后,你将作为 root 用户来登录到救援模式(即单用户模式)。将会提示你按下回车键来进入维护。
+
+下图是 Ubuntu 22.04 / 20.04 LTS 系统的救援模式的样子:
+
+![Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS][5]
+
+现在,在救援模式中做你想做的任何事。在救援模式中,在你执行任何操作前,你可能需要以 读/写模式来挂载根(`/`)文件系统。
+
+```
+mount -n -o remount,rw /
+```
+
+![Mount Root File System In Read Write Mode In Ubuntu 22.04 / 20.04 LTS][6]
+
+在完成后,按下 `Ctrl + d` 组合键来引导到正常模式。或者,你可以输入下面的任意一个命令来引导到正常模式。
+
+```
+systemctl default
+```
+
+或者,
+
+```
+exit
+```
+
+如果你想重新启动系统,而不是引导到正常的模式,输入:
+
+```
+systemctl reboot
+```
+
+#### 方法 2
+
+在这种方法中,你不需要编辑 GRUB 启动菜单项目。
+
+打开系统电源,并从 GRUB 启动菜单中选择 Ubuntu 高级选项。
+
+![Choose Advanced Options For Ubuntu From Grub Boot Menu][7]
+
+接下来,你将看到一个带有内核版本的可用的 Ubuntu 版本的列表。在 Ubuntu 中的 GRUB 启动菜单中选择 恢复模式 。
+
+![Choose Recovery Mode In Grub Boot Menu In Ubuntu 22.04 / 20.04 LTS][8]
+
+数秒后,你将看到 Ubuntu 的 恢复 菜单。从恢复菜单中,选择 进入 root 的 shell 提示符 选项 ,并按下回车键。
+
+![Enter Into Root Shell Prompt In Ubuntu 22.04 / 20.04 LTS][9]
+
+现在,你将进入维护。
+
+![Ubuntu Maintenance Mode][10]
+
+通过输入下面的命令来 以读/写模式的方式 来挂载根(`/`)文件系统:
+
+```
+mount -n -o remount,rw /
+```
+
+![Mount Root File System In Read Write Mode In Ubuntu][11]
+
+在救援模式中做你想做的任何事。
+
+在完成后,输入 `exit` 来返回到恢复菜单。
+
+```
+exit
+```
+
+最后,选择 救援正常启动 选项,并按下回车键。
+
+![Boot Into Normal Mode In Ubuntu][12]
+
+再次按下回车键来退出恢复模式,并继续引导到正常模式。
+
+![Exit The Recovery Mode In Ubuntu][13]
+
+如果你不想引导到正常模式,从救援模式中输入 `reboot` 并按下回车键来重新启动你的系统。
+
+### 在 Ubuntu 22.04 / 20.04 LTS 中引导到紧急模式
+
+当 GRUB 菜单出现时,按下 `e` 按键来编辑它。
+
+![GRUB Menu In Ubuntu 22.04 / 20.04 LTS][14]
+
+找到以单词 `linux` 开头的一行代码,并在其结尾处添加下面的一行代码:
+
+```
+systemd.unit=emergency.target
+```
+
+![Edit Grub Boot Menu Entries To Enter Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS][15]
+
+在添加上面的代码行后,按下 `Ctrl + x` 组合键,或按下 `F10` 按键来引导到紧急模式。
+
+数秒后,你将作为 `root` 用户来进入维护。将会提示你按下回车键来进入紧急模式。
+
+下图是 Ubuntu 22.04 / 20.04 LTS 系统的紧急模式的样子:
+
+![Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS][16]
+
+现在,在紧急模式中做你想做的任何事。在紧急模式中,在你执行任何操作前,你可能需要以读/写模式来挂载根(`/`)文件系统。
+
+```
+mount -n -o remount,rw /
+```
+
+在完成后,按下 `Ctrl + d` 组合键来引导到正常模式。或者,你可以输入下面的任意一个命令来引导到正常模式。
+
+```
+systemctl default
+```
+
+或者,
+
+```
+exit
+```
+
+如果你想重新启动系统,而不是引导到正常模式,输入:
+
+```
+systemctl reboot
+```
+
+### 在 Ubuntu 18.04 LTS 中引导到救援模式
+
+启动你的 Ubuntu 系统。当 GRUB 菜单出现时,选择第一项并按下按键 `e` 来编辑。(为到达其行尾处,只需要按下 `Ctrl + e` 组合键,或使用你键盘上的 `END` 按键或 `←`/`→` 按键):
+
+![Grub Menu][17]
+
+如果你没有看到 GRUB 菜单,只需要在 BIOS 徽标出现后,按下 `ESC` 按键来显示 GRUB 菜单。
+
+找到以单词 `linux` 开头的一行代码,并在其结尾处添加下面的一行代码(为到达其行尾处,只需要按下 `Ctrl + e` 组合键,或使用你键盘上的 END` 按键或 `←`/`→` 按键):
+
+```
+systemd.unit=rescue.target
+```
+
+![Edit Grub Menu][18]
+
+在添加上面的代码行后,只需要按下 `Ctrl + x` 组合键,或按下 `F10` 按键来引导到救援模式。数秒后,你将作为 `root` 用户进入维护(即单用户模式)。
+
+下图是 Ubuntu 18.04 LTS 服务器系统的救援模式的样子:
+
+![Ubuntu Rescue Mode][19]
+
+接下来,输入下面的命令来挂载根(`/`)文件系统为读/写模式。
+
+```
+mount -n -o remount,rw /
+```
+
+### 在 Ubuntu 18.04 LTS 中引导到紧急模式
+
+引导你的 Ubuntu 到紧急模式基本与上述方法相同。你所需要做的全部工作是,在编辑 GRUB 菜单时,将 `systemd.unit=rescue.target` 替换为 `systemd.unit=emergency.target` 。
+
+![Edit Grub Menu][20]
+
+在你添加 `systemd.unit=emergency.target` 后,按下 `Ctrl + x` 组合键,或按下 `F10` 按键来引导到紧急模式。
+
+![Ubuntu Emergency Mode][21]
+
+最后,你可以使用下面的命令来以读/写模式的方式来挂载根(`/`)文件系统:
+
+```
+mount -n -o remount,rw /
+```
+
+### 在救援模式和紧急模式之间切换
+
+如果你正在救援模式中,你不必像我上述提到的那样来编辑 GRUB 的菜单启动项。相反,你只想要输入下面的命令来立刻切换到紧急模式:
+
+```
+systemctl emergency
+```
+
+同样,为从紧急模式切换到救援模式,输入:
+
+```
+systemctl rescue
+```
+
+### 总结
+
+现在,你知道了什么是救援模式和紧急模式,以及如何在 Ubuntu 22.04 、20.04 和 18.04 LTS 系统中启动到这些模式。正如我已经提到的,在这里提供的这些步骤应该也适用于大多数当前使用 systemd 作为默认服务管理器的 Linux 发行版。
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/how-to-boot-into-rescue-mode-or-emergency-mode-in-ubuntu-18-04/
+
+作者:[sk][a]
+选题:[lkxed][b]
+译者:[robsean](https://github.com/robsean)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://ostechnix.com/author/sk/
+[b]: https://github.com/lkxed
+[1]: https://ostechnix.com/check-runlevel-linux/
+[2]: https://ostechnix.com/how-to-reset-or-recover-root-user-password-in-linux/
+[3]: https://ostechnix.com/wp-content/uploads/2022/05/GRUB-Menu-In-Ubuntu-22.04-LTS.png
+[4]: https://ostechnix.com/wp-content/uploads/2022/05/Edit-Grub-Boot-Menu-Entries-To-Enter-Into-Rescue-Mode-In-Ubuntu-22.04-LTS.png
+[5]: https://ostechnix.com/wp-content/uploads/2022/05/Boot-Into-Rescue-Mode-In-Ubuntu-22.04.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-File-System-In-Read-Write-Mode-In-Ubuntu.png
+[7]: https://ostechnix.com/wp-content/uploads/2022/05/Choose-Advanced-Options-For-Ubuntu-From-Grub-Boot-Menu.png
+[8]: https://ostechnix.com/wp-content/uploads/2022/05/Choose-Recovery-Mode-In-Grub-Boot-Menu-In-Ubuntu.png
+[9]: https://ostechnix.com/wp-content/uploads/2022/05/Enter-Into-Root-Shell-Prompt-In-Ubuntu.png
+[10]: https://ostechnix.com/wp-content/uploads/2022/05/Ubuntu-Maintenance-Mode.png
+[11]: https://ostechnix.com/wp-content/uploads/2022/05/Mount-Root-File-System-In-Read-Write-Mode-In-Ubuntu-1.png
+[12]: https://ostechnix.com/wp-content/uploads/2022/05/Boot-Into-Normal-Mode-In-Ubuntu.png
+[13]: https://ostechnix.com/wp-content/uploads/2022/05/Exit-The-Recovery-Mode-In-Ubuntu.png
+[14]: https://ostechnix.com/wp-content/uploads/2022/05/GRUB-Menu-In-Ubuntu-22.04-LTS.png
+[15]: https://ostechnix.com/wp-content/uploads/2022/05/Edit-Grub-Boot-Menu-Entries-To-Enter-Into-Emergency-Mode-In-Ubuntu.png
+[16]: https://ostechnix.com/wp-content/uploads/2018/12/Boot-Into-Emergency-Mode-In-Ubuntu-20.04-LTS.png
+[17]: https://ostechnix.com/wp-content/uploads/2018/12/Grub-menu.png
+[18]: https://ostechnix.com/wp-content/uploads/2018/12/Edit-grub-menu.png
+[19]: https://ostechnix.com/wp-content/uploads/2018/12/Ubuntu-rescue-mode.png
+[20]: https://ostechnix.com/wp-content/uploads/2018/12/emergency-mode.png
+[21]: https://ostechnix.com/wp-content/uploads/2018/12/emergency-mode-1.png
diff --git a/published/20220523 7 pieces of Linux advice for beginners.md b/published/20220523 7 pieces of Linux advice for beginners.md
new file mode 100644
index 0000000000..3a2c4d76ad
--- /dev/null
+++ b/published/20220523 7 pieces of Linux advice for beginners.md
@@ -0,0 +1,141 @@
+[#]: subject: "7 pieces of Linux advice for beginners"
+[#]: via: "https://opensource.com/article/22/5/linux-advice-beginners"
+[#]: author: "Opensource.com https://opensource.com/users/admin"
+[#]: collector: "lkxed"
+[#]: translator: "lightchaserhy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14712-1.html"
+
+给 Linux 初学者的 7 条建议
+======
+
+> 我们咨询了我们社区作者们,分享了他们的初学经验。
+
+
+
+对 Linux 的新用户有什么建议?我们请社区的作者们分享了他们初学时的最佳经验。
+
+### 1、用好 Linux 资源
+
+我哥们儿告诉我,Linux 就像一个“软件积木搭建套装”(这是一个过时的词汇,指的是上世纪五六十年代流行的建筑积木玩具),这个比喻比较恰当。在 2001、2002 年那时,我曾经利用 Windows 3.1 和 Windows NT,尝试搭建一个安全、有用的 K12 学区网站,当时网上可用的资料不多。其中被推荐的《ROOT 用户指南》是一本“大部头”专业教程,信息丰富,但是有一定上手难度。
+
+于我而言,Mandrake Linux 的线上课程是最有用的资源。该课程对使用和管理 Linux 桌面或服务器进行了详细的解读。我学习了该课程,并同时利用红帽公司维护的一个邮件列表服务,有问题时就在社区提问寻求帮助。
+
+—— [Don Watkins][2]
+
+### 2、在 Linux 社区寻求帮助
+
+我的建议是要多问,你可以从网上搜索信息开始,看看其他人类似的问题(甚至是更好的提问)。问什么和如何问,需要花一定时间熟悉。
+
+一旦你对 Linux 更加熟悉了,查看你感兴趣的各种相关论坛,在提问前,先看看是否有人已经提过相同问题,并获得了答案。
+
+加入邮件列表也很有用,最后你会发现自己也能专业地答复提问。正如他们说的,通过回答他人的问题也会学到更多知识。
+
+同时,你会越来越熟悉这个操作系统内部运行机制,再也不是初学时的一无所知。
+
+—— [Greg Pittman][3]
+
+我的建议是利用 `man`、`info` 等帮助命令获取信息。另外,尽可能花时间熟悉命令行界面,且真正理解 UNIX 的设计理念。事实上,我最喜欢的书之一就是一本 80 年代的 UNIX 书籍,对理解文件、目录、设备、基础命令等非常有帮助。
+
+—— [Alan Formy-Duval][4]
+
+我最好的建议是充分相信社区的答复、手册页的详细信息、介绍不同选项的 HOW-TO 文档。不管怎么说,我是在 2009 年左右开始学习的,当时有很多可用的工具和资源。有一个叫 “Linux from Scratch(LFS)”的项目 —— 从源码开始创建 Linux 系统,在这个项目我学会了很多内部原理知识,以及如何创建一个 LFS 镜像。
+
+—— [Sumantro Mukherjee][6]
+
+我的建议是泛读。利用像 “Ask Fedora”、“Fedora Matrix chat” 等论坛,阅读他人的经验观点,并且尝试实践。我通过阅读他人的网上争论学习到很多东西,然后我会尝试找出问题的原因。
+
+—— [Steve Morris][8]
+
+### 3、安装双操作系统
+
+我在 90 年代末就开始安装双操作系统(Windows 和 Linux),虽然我真正想使用的是 Linux 操作系统,但我最终还是启动了 Windows 系统,以便在熟悉的桌面环境中工作。最好的建议之一是改变计算机系统启动顺序,所以每次我都反应不够快,自动进入了 Linux 系统。: )
+
+—— [Heike Jurzik][9]
+
+我的团队里的一个人挑战我,要做一个知识交换。
+
+他是我们的 Linux 系统管理员,利用 Joomla 搭建了一个网站(我们的 Web 团队擅长这个,他想学习更多知识),而我则安装了 Linux(以前一直是用 Windows)。我们一开始就用了双启动,因为我还有一堆依赖于操作系统的软件需要用于业务,但这让我对 Linux 的使用有了一个飞跃。
+
+在我们各自学习新系统时,对方作为专家来互相帮助有助于共同成长,“一个都不能少!”,坚持不懈是一个很大的挑战。
+
+我经历一个相当尴尬的低级错误后,在显示器上贴了一个大便签,上面写着“在使用任何 `rm` 操作前,首先要思考一下”。管理员给我写了一个命令行大全(网上有很多类似的),对于熟悉基础操作非常有用。我开始使用 Ubuntu 的 KDE 桌面环境时,发现对习惯于使用图形界面的初学者很有帮助。
+
+从那以后我就开始长期使用 Linux(除了我的工作计算机),而那位管理员仍然在用 Joomla,看起来我俩都得到了成长。
+
+—— [Ruth Cheesley][12]
+
+### 4、为了安全请先备份
+
+我的建议是使用一个带有简单且强大的备份软件的发行版。Linux 新用户会创建、编辑、破坏和恢复系统配置。当操作系统无法启动、丢失数据时,会让他们非常沮丧。
+
+有了备份软件,他们的数据就有了保障。
+
+我们都喜爱 Linux,因为它能让我们自由飞翔,但这是“双刃剑”,使用不当也有可能发生非常严重的错误。
+
+—— [Giuseppe Cassibba][13]
+
+### 5、分享你的 Linux 经验
+
+我的建议是分享你的 Linux 使用经验。我曾经认为有一些发行版更适合新用户,所以当他们咨询使用 Linux 时,我总是推荐这些为“新用户准备的”发行版。但是当我坐在他们的计算机前,看起来却像是我从未用过 Linux 一样,因为一些新功能我也不熟悉。现在当有人咨询时,我会推荐自己使用的发行版,虽说这不一定是初学者的“最佳”版本,但毕竟我熟悉,他们遇到的问题我能够快速解决(当然我自己也会在分享中学到新东西)。
+
+—— [Seth Kenlon][14]
+
+以前有句俗话叫“不要随便使用杂志封面上宣传的发行版,使用你朋友都在用的,当你遇到问题时才能更好地需求帮助”。将关键词“杂志封面”替换为“互联网”,这句话依然有效 : -) 。我从未听从过这个建议,因为我是方圆五十公里内唯一使用 Linux 的人,周围的人都在用 FreeBSD、IRIX、Solaris 和 Windows 3.11 等操作系统,最后,我就是那个被人们寻求 Linux 帮助的人。
+
+—— [Peter Czanik][15]
+
+### 6、坚持学习 Linux
+
+在到 Red Hat 工作前,我是一名分销商合作伙伴,我有几个提供旅行护士的家庭健康代理机构客户,他们使用了一个叫“Carefacts”的软件包,最初用于 DOS,在旅行笔记本电脑和中心数据库同步中总是出错。
+
+早期我听到的最好建议是认真研究一下开源运动。开源在 2022 年是主流思想,但在一代人以前,从 Red Hat 的零售商购买 Linux 安装光盘是带有革命性的创新行为。开源打破了常规,我认为要客观看待开源,但确实惊叹到了相当一部分人。
+
+我的公司在 20 世纪 90 年代中期搭建了第一个客户防火墙,那是基于 Windows NT 和 Altavista 的一个产品,但是经常发生错误崩溃。我们自己又搭建了一个基于 Linux 的防火墙,再也没有出问题了。因此,我们用 Linux 替换了客户的那套 Altavista 系统,稳定地运行了多年。我们在 1999 年底搭建了另一个客户防火墙,当时我花三周读完了一本关书,介绍了数据包过滤和 ipchains 的正确使用,当我完成时感觉超赞,它解决了所有问题。在接下来的 15 年,我搭建安装了数百个防火墙系统,主要采用 iptables 技术,有些利用桥接或 ARP 代理以及 QOS 保障视频会议传输,有些利用 IPSEC 和 OpenVPN 隧道。我靠管理个人防火墙和一些双机热备系统赚取生活费,非常不错,而以前都是用的 Windows 系统。我甚至还建了一些虚拟防火墙。
+
+但是技术在高速发展,2022 年,iptables 已过时,我以前的防火墙技术也成了美好的回忆。
+
+目前的经验之谈?永远不要停止探索。
+
+—— [Greg Scott][19]
+
+### 7、享受过程
+
+耐心点,Linux 和之前你熟悉的操作系统不太相同,准备拥抱一个充满无限可能的新世界,尽情享受吧。
+
+—— [Alex Callejas][20]
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/5/linux-advice-beginners
+
+作者:[Opensource.com][a]
+选题:[lkxed][b]
+译者:[lightchaserhy](https://github.com/lightchaserhy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/admin
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/yearbook-haff-rx-linux-file-lead_0.png
+[2]: https://opensource.com/users/don-watkins
+[3]: https://opensource.com/users/greg-p
+[4]: https://opensource.com/users/alanfdoss
+[5]: https://linuxfromscratch.org/
+[6]: https://opensource.com/users/sumantro
+[7]: https://ask.fedoraproject.org
+[8]: https://opensource.com/users/smorris12
+[9]: https://opensource.com/users/hej
+[10]: https://opensource.com/downloads/linux-common-commands-cheat-sheet
+[11]: https://opensource.com/article/22/2/why-i-love-linux-kde
+[12]: https://opensource.com/users/rcheesley
+[13]: https://opensource.com/users/peppe8o
+[14]: https://opensource.com/users/seth
+[15]: https://opensource.com/users/czanik
+[16]: https://www.redhat.com/sysadmin/run-your-own-vpn-libreswan
+[17]: https://opensource.com/article/21/8/openvpn-server-linux
+[18]: https://opensource.com/article/19/7/make-linux-stronger-firewalls
+[19]: https://opensource.com/users/greg-scott
+[20]: https://opensource.com/users/darkaxl
diff --git a/translated/tech/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md b/published/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md
similarity index 70%
rename from translated/tech/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md
rename to published/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md
index 633fe2b0ec..9d7a484114 100644
--- a/translated/tech/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md
+++ b/published/20220603 How to Install FFmpeg in Ubuntu and Other Linux.md
@@ -1,19 +1,22 @@
[#]: subject: "How to Install FFmpeg in Ubuntu and Other Linux"
-[#]: via: "https://www.debugpoint.com/2022/06/install-FFmpeg-ubuntu/"
+[#]: via: "https://www.debugpoint.com/2022/06/install-ffmpeg-ubuntu/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: translator: "aREversez"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14716-1.html"
-在 Ubuntu 等 Linux 发行版上安装 FFmpeg
+在 Linux 上安装 FFmpeg
======
-本教程介绍了 FFmpeg 在 Ubuntu 及其他 Linux 发行版上的安装步骤。
+
+
+
+> 本教程介绍了在 Ubuntu 及其他 Linux 发行版上安装 FFmpeg 的步骤。
FFmpeg 是一套处理多媒体文件的软件库。凭借这些强大的库,FFmpeg 能够转换格式、推流以及处理音频和视频文件。许多 Linux 的前端应用都使用 FFmpeg 作为后端支持,所以这些应用对 FFmpeg 的依赖度非常高。举个例子,录屏软件可能会用到 FFmpeg 将录屏转换为 gif 动图。
-VLC 多媒体播放器、YouTube、Blender、Kodi、Shotcut 和 Handbrake 等流行的应用与服务都在使用 FFmpeg。
+VLC 多媒体播放器、YouTube、Blender、Kodi、Shotcut 和 Handbrake 等流行的应用与服务都在使用 FFmpeg,这仅仅一小部分。
趣事:NASA 火星 2020 计划的探测器“毅力”号在将图像和视频发送到地球之前,会先使用 FFmpeg 对其进行处理。
@@ -25,9 +28,9 @@ VLC 多媒体播放器、YouTube、Blender、Kodi、Shotcut 和 Handbrake 等流
FFmpeg 的核心是命令行实用程序,既可在命令行上使用,也可以经由任何程序语言调用。比如,你可以在 Shell 程序或 python 脚本中使用 FFmpeg。
-* FFmpeg: 用于转换音视频格式,包括视频直播资源。
-* ffplay: FFmpeg 配套使用的媒体播放器
-* ffprobe: 显示媒体文件信息的命令行工具,可将信息输出为 csv、xml、json 等格式。
+* `ffmpeg`:用于转换音视频格式,包括来自视频直播的信号源。
+* `ffplay`:FFmpeg 配套使用的媒体播放器
+* `ffprobe`:显示媒体文件信息的命令行工具,可将信息输出为 csv、xml、json 等格式。
### FFmpeg 安装
@@ -52,49 +55,49 @@ sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfre
```
```
-sudo dnf install FFmpeg
+sudo dnf install ffmpeg
```
#### Arch Linux
```
-pacman -S FFmpeg
+pacman -S ffmpeg
```
安装完成后,可输入以下命令查看安装是否成功。
```
-FFmpeg --version
+ffmpeg --version
```
![FFmpeg installed in Ubuntu Linux][3]
-### 案例:FFmpeg 的基本操作
+### 示例:FFmpeg 的基本操作
首先,我们先来看看 FFmpeg 语法的一个简单例子。如下,该语法可以将 mp4 文件转换为 mkv 文件。
-1. 视频文件格式转换
+1、视频文件格式转换
```
-FFmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv
+ffmpeg -i big_buck_bunny.mp4 big_buck_bunny.mkv
```
当然,这种写法最为简单易懂,但它并不完整,因为没有输入 比特率、分辨率 以及其他的视频文件属性。
-2. 音频文件格式转换
+2、音频文件格式转换
-第二,输入与上面相似的命令可以转换音频文件的格式。
+其次,输入与上面相似的命令可以转换音频文件的格式。
```
-FFmpeg -i sunny_day.ogg sunny_day.mp3
+ffmpeg -i sunny_day.ogg sunny_day.mp3
```
-3. 使用音视频 codec 执行格式转换
+3、使用音视频编解码器执行格式转换
最后,在下面的例子中,我们可以使用特定的 编解码器 来转换视频格式。参数 `-c` 搭配 `a` 或者 `v`,可以分别定义音频和视频文件。以下转换命令使用 `libvpx` 视频编解码器和 `libvorbis` 音频编解码器。
```
-FFmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm
+ffmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm
```
### 如何确定自己系统中有哪些编码器和解码器?
@@ -104,13 +107,20 @@ FFmpeg -i big_buck_bunny.mp4 -c:v libvpx -c:a libvorbis big_buck_bunny.webm
输入以下命令,打印所有编解码器。
```
-FFmpeg -codecs
+ffmpeg -codecs
```
该命令可以打印出所有可用的编解码器,并显示每个编解码器对应的功能信息,比如是否支持解码或编码。此外,如以下输出结果所示,打印出来的信息还会按照首字母顺序标注出每个编码器和解码器的位置。
```
-D..... = Decoding supported.E.... = Encoding supported..V... = Video codec..A... = Audio codec..S... = Subtitle codec...I.. = Intra frame-only codec....L. = Lossy compression.....S = Lossless compression
+D..... = 支持解码
+.E.... = 支持编码
+..V... = 视频编解码器
+..A... = 音频编解码器
+..S... = 字幕编解码器
+...I.. = 仅限帧内编解码器
+....L. = 有损压缩
+.....S = 无损压缩
```
![FFmpeg Codec list][4]
@@ -120,7 +130,7 @@ D..... = Decoding supported.E.... = Encoding supported..V... = Video codec..A...
输入下列命令,打印出所有编码器
```
-FFmpeg -encoders
+ffmpeg -encoders
```
#### 显示所有解码器
@@ -128,7 +138,7 @@ FFmpeg -encoders
同样,输入下列命令,打印出所有解码器。
```
-FFmpeg -decoders
+ffmpeg -decoders
```
#### 更多信息
@@ -136,28 +146,28 @@ FFmpeg -decoders
输入参数 `-h`,获取更多关于编码器或解码器的信息。
```
-FFmpeg -h decoder=mp3
+ffmpeg -h decoder=mp3
```
### 总结
-我希望这篇文章可以帮助你了解 FFmpeg 的基本知识及基本命令。若要了解更多信息,可前往 FFmpeg 官方网站,浏览 [帮助文章][5]。
+我希望这篇文章可以帮助你了解 FFmpeg 的基本知识及基本命令。若要了解更多信息,可前往 FFmpeg 官方网站浏览 [帮助文档][5]。
--------------------------------------------------------------------------------
-via: https://www.debugpoint.com/2022/06/install-FFmpeg-ubuntu/
+via: https://www.debugpoint.com/2022/06/install-ffmpeg-ubuntu/
作者:[Arindam][a]
选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[aREversez](https://github.com/aREversez)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
-[1]: https://FFmpeg.org/
+[1]: https://ffmpeg.org/
[2]: https://www.debugpoint.com/2020/07/enable-rpm-fusion-fedora-rhel-centos/
[3]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-installed-in-Ubuntu-Linux.jpg
[4]: https://www.debugpoint.com/wp-content/uploads/2022/06/FFmpeg-Codec-list.jpg
-[5]: https://FFmpeg.org/documentation.html
+[5]: https://ffmpeg.org/documentation.html
diff --git a/translated/tech/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md b/published/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md
similarity index 68%
rename from translated/tech/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md
rename to published/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md
index 772796fee7..0ccbb7c9bc 100644
--- a/translated/tech/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md
+++ b/published/20220606 Amberol is a Stunning Looking Music Player for Linux That Just Plays Music and Nothing Else.md
@@ -3,15 +3,18 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14700-1.html"
Amberol 是一款外观漂亮的 Linux 音乐播放器,只播放音乐,不做其他事情
======
+
+
+
虽然音乐世界被流媒体服务所主导,但这并没有阻止开发者为桌面电脑创建音乐播放器。
-最近,我发现了一个外观漂亮的新的 Linux 桌面音乐播放器。它名为 Amberol,我被它的美丽所震撼了。
+最近,我发现了一个外观漂亮的新的 Linux 桌面音乐播放器。它名为 Amberol,我被它的美丽所震撼。
![amberol music player interface][1]
@@ -21,41 +24,41 @@ Amberol 是一款外观漂亮的 Linux 音乐播放器,只播放音乐,不
看起来不错是它所做的两件(或几件)事情中的一件。另一件事是播放音乐。
-这就是它。[Amberol][2] 没有额外的花哨(和有用)的功能,如生成专辑封面、元数据编辑、歌词显示或播放列表和库管理。
+这就是它,[Amberol][2] 没有额外的花哨(和有用)的功能,如生成专辑封面、元数据编辑、歌词显示或播放列表和库管理。
-这些功能也不像会在未来的版本中加入。Amberol 只想播放音乐。就是这样。
+这些功能也不像是会在未来的版本中加入。Amberol 只想播放音乐。就是这样。
#### 令人惊叹的用户界面
Amberol 和大多数新的 GNOME 应用一样,是用 Rust 和 GTK 编写的。
-它有一个自适应的用户界面,可以根据你正在播放的专辑颜色来改变颜色。渐变效果给了它一个现代、时尚的外观,肯定会成为你的 Linux rice 截图的一部分。
+它有一个自适应的用户界面,可以根据你正在播放的专辑颜色来改变颜色。渐变效果给了它一个现代、时尚的外观,肯定会成为你的 Linux 美化截图的一部分。
![amberol music player][3]
-由于 UI 没有传统的手柄和菜单,它给应用一个统一的外观。
+由于其 UI 没有传统的手柄和菜单,它给应用一个统一的外观。
#### 播放列表
-它从你添加的文件夹中存在的文件自动生成一个播放列表。它显示在左手边的侧边栏。
+它会从你添加的文件夹中的文件自动生成一个播放列表,显示在左手边的侧边栏。
![amberol playlist][4]
-你可以在左上角看到整个播放列表将播放多长时间的音乐。点击“勾选符号”,你可以选择歌曲,并从播放列表中删除它们。
+你可以在左上角看到整个播放列表将播放多长时间的音乐。点击“勾选”符号,你可以选择歌曲,并从播放列表中删除它们。
-如果你愿意,你可以隐藏播放列表的侧边栏。
+如果你愿意,可以隐藏播放列表的侧边栏。
![amberol without playlist][5]
#### 音乐播放选项
-你可以在界面上看到歌曲的进度。该播放器与键盘上的媒体控制按钮整合得很好。你可以用专用的媒体键播放/暂停和改变曲目(如果你的系统上有)。
+你可以在界面上看到歌曲的进度。该播放器与键盘上的媒体控制按钮整合得很好。你可以用专用的媒体键来播放、暂停和改变曲目(如果你的系统上有)。
-Amberol 为你提供了一些播放音乐的选项。你可以打开随机播放功能,按随机顺序播放音乐。你也可以把一首歌放在重复的位置,一直播放,直到你厌倦它。
+Amberol 为你提供了一些播放音乐的选项。你可以打开随机播放功能,按随机顺序播放音乐。你也可以单曲循环,直到你厌倦它。
![amberol music playing options][6]
-底部的手柄菜单让你可以选择添加文件或文件夹,并显示可用的键盘快捷方式。
+底部的汉堡菜单让你可以选择添加文件或文件夹,并显示可用的键盘快捷方式。
![amberol keyboard shortcuts][7]
@@ -63,7 +66,7 @@ Amberol 为你提供了一些播放音乐的选项。你可以打开随机播放
### 在 Linux 上安装 Amberol
-Amberol 是[以 Flatpak 形式提供][8]。请确保[你的系统已启用 Flatpak 支持][9]。
+Amberol 是 [以 Flatpak 形式提供的][8]。请确保 [你的系统已启用 Flatpak 支持][9]。
要安装 Amberol,请打开终端并使用以下命令:
@@ -73,17 +76,17 @@ flatpak install flathub io.bassi.Amberol
安装完毕后,在菜单中搜索该应用,并点击启动。
-第一次运行时,它会要求你添加音乐文件或文件夹。你也可以拖放文件。
+第一次运行时,它会要求你添加音乐文件或文件夹。你也可以拖放文件播放。
![amberol first run][10]
### 总结
-就个人而言,我更喜欢流媒体服务,因为我没有一个很好的本地音乐收藏。但我知道有的人有/有大量的 CD 收藏,现在都保存在硬盘上。
+就个人而言,我更喜欢流媒体服务,因为我没有本机音乐珍藏。但我知道有的人有大量的 CD 收藏,现在都保存在硬盘上。
-Amberol 是一个外观漂亮的应用,对于播放本地音乐来说,它足够好。最吸引人的是基于专辑封面的自适应用户界面。
+Amberol 是一个外观漂亮的应用,对于播放本机音乐来说,它足够好。最吸引人的是它基于专辑封面的自适应用户界面。
-我请你试试它,并在评论区分享你的经验。
+请你试试它,并在评论区分享你的经验。
--------------------------------------------------------------------------------
@@ -92,7 +95,7 @@ via: https://itsfoss.com/amberol-music-player/
作者:[Abhishek Prakash][a]
选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md b/published/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md
new file mode 100644
index 0000000000..18e0fae1d8
--- /dev/null
+++ b/published/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md
@@ -0,0 +1,47 @@
+[#]: subject: "OpenInfra Foundation Launches ‘directed funding’ To Support Open Source Projects"
+[#]: via: "https://www.opensourceforu.com/2022/06/openinfra-foundation-launches-directed-funding-to-support-open-source-projects/"
+[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
+[#]: collector: "lkxed"
+[#]: translator: "lkxed"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14707-1.html"
+
+OpenInfra 基金会启动“定向资助”以支持开源项目
+======
+![OpenInfra][1]
+
+OpenInfra 基金会的前身为 OpenStack 基金会,几年前它将范围扩展到其旗舰项目之外,于是改了名字。2022 年 6 月 7 日,它宣布了一种有趣的新方式,让企业资助基金会内的开源项目。一般来说,开源基金会的企业成员通过支付会员费来支持该组织,然后基金会按照他们认为合适的方式分发这些费用。OpenInfra 基金会现在推出了一种新的“定向资助”模式,允许成员将他们的资金直接用于项目。
+
+此前,基金会并不允许这样做,因为正如 Bryce 指出的那样,它可能会产生混合激励和付费游戏动态,而该组织一直试图避免这种情况。然而,社区对支持特定项目有很大的兴趣,这是有道理的,因为该基金会现在拥有更多种类的项目,但并不是每个成员都对每个项目进行了大量投入。
+
+Bryce 表示,基金会的领导层和董事会,花费了大量时间来考虑,如何使基金会的核心原则与这种新模式相协调。因此,该模型试图将过去十年运行良好的 OpenStack/OpenInfra 技术治理模型的优点,与这些新的财务考虑相结合。
+
+在这种“定向资助”模式下,每个新项目都将拥有自己的法人实体来持有项目资金。为确保新项目的合法性,OpenInfra 白金会员(目前为 9 家,包括蚂蚁集团、华为、Meta、微软和红帽)必须担任项目的发起人,之后其他组织才能加入项目基金。如果赞助公司还不是 OpenInfra 成员,则必须成为成员。然后,所有这些资助成员组成一个项目基金管理委员会,决定创建预算的费用。与此同时,OpenInfra 基金会将为这些项目提供社区建设服务。
+
+这种新模式暂时只适用于加入基金会的新项目。Bryce 和 Collier 指出,组织可能会在一些现有项目中追溯应用这种新模式,但这个考虑目前不在路线图上。
+
+自从将范围扩展到 OpenStack 之外后,OpenInfra 基金会增加了一些新项目,例如用于提高容器安全性的 Kata Containers、用于基础设施生命周期管理的 Airship、Startling X 边缘计算堆栈以及 Zuul CI/CD 平台。
+
+“我们从每个成功的项目中学到的最重要的一点是,协作是关键,支持生态系统的范围越广越好,” OpenInfra 基金会总经理 Thierry Carrez 说,“事实上,我们发现最成功的开源项目是由多家公司资助的,因为他们能够整合资源以实现更高的回报率。”
+
+这种新模式显然是 OpenInfra 基金会引入新项目和新成员的一种方式。正如领导团队欣然承认的那样,其在多方生态系统中管理开源项目的模型 —— 无论是通过新的定向资金还是更传统的方法 —— 可能并不适合每个项目。即使 OpenInfra 基金会只收到一小部分项目,随着对这些复杂云基础设施项目需求的增长,开源项目的数量也在增加,同时它们也变得更加复杂。
+
+基金会还宣布了其各个项目的几个里程碑版本的发布,包括 Kata Containers 2.0 版、Zuul 5.0 版和 StarlingX 6.0 。
+
+Collier 说:“基金会今年庆祝成立 10 周年,在展望下一个十年的开放基础设施之际,我们正在推动我们的模型如此成功的关键,那就是:将希望合作的公司和个人联合起来,为他们提供一个框架和有效协作的工具,并帮助他们投资资金以最好地帮助他们关心的项目。”
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/06/openinfra-foundation-launches-directed-funding-to-support-open-source-projects/
+
+作者:[Laveesh Kocher][a]
+选题:[lkxed][b]
+译者:[lkxed](https://github.com/lkxed)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/laveesh-kocher/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/open-infra-berlin-event.png
diff --git a/published/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md b/published/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md
new file mode 100644
index 0000000000..2fd9490dd6
--- /dev/null
+++ b/published/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md
@@ -0,0 +1,87 @@
+[#]: subject: "Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet"
+[#]: via: "https://news.itsfoss.com/cloudflare-pat/"
+[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
+[#]: collector: "lkxed"
+[#]: translator: "lkxed"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14711-1.html"
+
+Cloudflare 有了一个新东西,它可以替代互联网上烦人的验证码
+======
+
+不想通过正确输入 验证码 来证明自己是个人类吗?Cloudflare 可能有了一个解决方案。
+
+![Cloudflare][1]
+
+互联网服务巨头 Cloudflare 前两天 [宣布了][2] 私有访问令牌 功能。这项功能旨在减少你在网络上看到的验证码数量,同时改善你的隐私。
+
+你可能已经发现,验证码在移动设备上是一种可怕的体验。通常,它们会最终会占据整个屏幕,有时甚至无法完成。
+
+作为替代方案,网站可以选择收集唯一识别数据,以证明你是人类。当然,从隐私的角度来看,这种做法是很糟糕的。如果这么做,许多重视隐私的公司都几乎无法避免他们受到 僵尸攻击。
+
+幸运的是,私有访问令牌(PAT)的发布将改变这一点。
+
+### 私有访问令牌会产生什么影响?
+
+简而言之,私有访问令牌能够做到下面这些事:
+
+* 在支持的设备上减少验证码数量
+* 增强用户隐私
+* 允许网站所有者确保访问者来自真实设备
+
+然而,深入观察,我们可以看到私有访问令牌的影响力远不止于此。若使用传统的验证码,就有多个实体可以访问你的数据。
+
+首先,你正在访问的网站知道你的 IP 地址和你正在访问的 URL。当然,这些数据是建立连接所需的最低要求。此外,对于更高级的功能,网站还会发送一些用户代理(UA)数据,还好这些数据并不是唯一可识别的。
+
+然而,另一方,也就是验证码提供者,却可以收集更多的数据。与你要访问的网站一样,它也知道你的 IP 地址、用户代理数据和你访问的 URL。不幸的是,除此之外,他们还会收集其他数据,例如你的设备信息和交互数据。如果把这些信息,与你之前完成验证码的时间联系起来,你就会惊讶的发现,他们可以建立一个非常详细的属于你的个人资料。
+
+幸运的是,有了 Cloudflare 的私有访问令牌,你就可以完全绕过验证码,从而阻止验证码提供者收集此类数据。
+
+### 私有访问令牌是如何工作的?
+
+![][3]
+
+验证码的理念是集中尽可能多的数据,私人访问令牌则恰恰相反,它将数据去中心化,因此任何一方都无法唯一识别你。在你提到数据共享之前,Cloudflare 就已经特别指出了,数据不会在各方之间共享。
+
+当你访问使用 Cloudflare 和私人访问令牌的网站的时候,共有三方将处理你的数据的不同部分。
+
+1. 网站。它只会知道你的 IP、URL 和用户代理,这也是建立连接所必需的。
+2. 你的设备制造商。他们只会知道那些用于验证设备是否真实所需的设备数据,而不会知道你正在访问哪个网站,或你的 IP 地址是什么。验证了你的设备后,他们将生成一个令牌,该令牌将发送到 Cloudflare。
+3. Cloudflare。他们将收到这个令牌,令牌中不包含你的任何设备数据,只有制造商对它是正品的“保证”。他们知道的唯一其他数据,就是你正在访问的网站,同样,这是为你提供内容所必需的。
+
+通过这种方式,Cloudflare 无需接触你的数据,就可以对“你是一个人”充满信心。
+
+### 支持的操作系统:没有 Linux?
+
+你可能已经意识到,私人访问令牌需要特定的操作系统功能才能工作。目前,它们仅存在于苹果最新的操作系统上,即 iOS 和 iPadOS 16,以及 macOS Ventura。这是因为苹果的操作系统只在有限的硬件上运行,设备验证会更加容易。
+
+另一方面,Linux 是一种通用操作系统,旨在在各种硬件上运行。因此,我认为,在可预见的未来,它都不会支持私人访问令牌。
+
+回到苹果,我想到私人访问令牌也可能导致消费者维修设备的权利出现一些问题。例如,如果我用第三方的非正品电池更换了老旧的 iPhone 原装电池,私人访问令牌系统会特殊对待这种情况吗?
+
+如果是 Linux 手机呢?这些制造商,如 Pine64 和 Purism,可能没有支持这样一个系统的基础设施。是否可以在这些上使用私人访问令牌呢?
+
+Cloudflare 在 [公告][4] 中提到:
+
+> 我们正在积极努力让其他客户和设备制造商也使用私人访问令牌框架。每当新客户开始使用它时,从该客户进入你网站的流量将自动开始要求令牌,你的访问者将自动看到更少的验证码。
+
+因此,我们希望看到它被更多的设备和操作系统采用。你如何看待 Cloudflare 的私人访问令牌呢?在下面的评论中发表你的看法吧!
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/cloudflare-pat/
+
+作者:[Jacob Crume][a]
+选题:[lkxed][b]
+译者:[lkxed](https://github.com/lkxed)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/jacob/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/cloudflare-private-access-tokens.jpg
+[2]: https://blog.cloudflare.com/eliminating-captchas-on-iphones-and-macs-using-new-standard/
+[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/PAT-Data-transfer-chart-1024x650.png
+[4]: https://blog.cloudflare.com/eliminating-captchas-on-iphones-and-macs-using-new-standard/
diff --git a/published/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md b/published/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md
new file mode 100644
index 0000000000..2840423b72
--- /dev/null
+++ b/published/20220613 Thonny is an Ideal IDE for Teaching Python Programming in Schools.md
@@ -0,0 +1,128 @@
+[#]: subject: "Thonny is an Ideal IDE for Teaching Python Programming in Schools"
+[#]: via: "https://itsfoss.com/thonny-python-ide/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14717-1.html"
+
+Thonny:在学校教授 Python 编程的理想 IDE
+======
+
+在 Linux 中运行一个 Python 程序只需要简单地在终端中执行 Python 文件就行。
+
+但这对人们来说不是很方便,也不能帮助你调试你的程序。太原始了。
+
+有几个 IDE 和文本编辑器可以用于 Python 开发。Linux 用户可以使用 [PyCharm 社区版][1]。
+
+我最近发现了另一个专门为 Python 初学者制作的 IDE。我喜欢这个应用的想法,因此我在这里与你分享。
+
+### Thonny 是一个跨平台、开源的 Python IDE,适合初学者使用
+
+[Thonny][2] 在用户界面和用户体验方面,感觉就像 Python 版本的 Eclipse。考虑到大多数 C++ 和 Java 的初学者都是从 Eclipse 开始的,而且许多人后来一直使用它,这也不完全是一件坏事。
+
+它不是一个新的工具。它已经出现好几年了。我没有用 Python 进行编码,所以直到最近才发现它。
+
+Thonny 专注于 Python,提供了帮助 Python 初学者了解其程序行为的功能。让我们来看看这些功能。
+
+#### 即装即用
+
+Thonny 自带 Python,所以你不需要为安装 Python 做额外的努力。这对 Linux 用户来说不是什么大事,因为大多数发行版都默认安装了 Python。
+
+界面很简单。它给你一个编辑器,你可以写你的 Python 程序,然后点击运行按钮或使用 `F5` 键来运行程序。输出显示在底部。
+
+![thonny hello world][3]
+
+#### 查看变量
+
+在 “查看->变量”,你可以看到所有变量的值。不需要将它们全部打印出来。
+
+![thonny variable pane][4]
+
+#### 内置调试器
+
+通过使用调试器一步步运行你的程序。你可以从顶部的菜单或使用 `Ctrl + F5` 键访问它。在这里你甚至不需要设置断点。你可以用 `F6` 进入大步骤,或用 `F7` 进入小步骤。
+
+![thonny step by step f6][5]
+
+在小步骤中,你可以看到 Python 是如何看待你的表达式的。这对新的程序员理解他们的程序为什么以某种方式表现非常有帮助。
+
+![thonny step by step f7][6]
+
+不止这样。对于函数调用,它会打开一个新的窗口,里面有独立的局部变量表和代码指针。超级酷!
+
+#### 语法错误高亮
+
+初学者经常会犯一些简单的语法错误,如缺少小括号、引号等。Thonny 会在编辑器中立即指出来。
+
+本地变量也可以从视觉上与全局变量区分开来。
+
+#### 自动补全
+
+你不需要输入所有的东西。Thonny 支持自动补全代码,这有助于加快编码。
+
+![thonny auto complete][7]
+
+#### 访问系统 shell
+
+在工具中,你可以访问系统 shell。在这里你可以安装新的 Python 包或学习从命令行处理 Python。
+
+![thonny shell terminal][8]
+
+请注意,如果你使用 Flatpak 或 Snap,Thonny 可能无法访问系统 shell。
+
+#### 从 GUI 管理 Pip
+
+进入工具和管理包。它会打开一个窗口,你可以从这个 GUI 中安装 Pip 软件包。
+
+![thonny manage packages][9]
+
+对于学习 Python 来说,功能足够好,对吗?让我们看看如何安装它。
+
+### 在 Linux 上安装 Thonny
+
+Thonny 是一个跨平台的应用。它可用于 Windows、macOS 和 Linux。
+
+它是一个流行的应用,你可以在大多数 Linux 发行版的仓库中找到它。只要在你的系统的软件中心寻找它。
+
+另外,你也可以随时使用你的 Linux 发行版的包管理器。
+
+在 Debian 和基于 Ubuntu 的发行版上,你可以使用 `apt` 命令来安装它。
+
+```
+sudo apt install thonny
+```
+
+它会下载一堆依赖关系和大约 300MB 的软件包。
+
+安装后,你可以在菜单中搜索它,并从那里安装它。
+
+### 总结
+
+Thonny 对于初级 Python 程序员来说是个不错的工具。不是说专家不能使用它,但它更适合在学校和学院使用。学生们会发现它有助于学习 Python 和理解他们的代码是如何以某种方式表现出来的。事实上,它最初是在爱沙尼亚的塔尔图大学开发的。
+
+总的来说,对于 Python 学习者来说是一个很好的软件。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/thonny-python-ide/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/abhishek/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/install-pycharm-ubuntu/
+[2]: https://thonny.org/
+[3]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-hello-world.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-variable-pane.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-step-by-step-f6.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-step-by-step-f7.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-auto-complete.png
+[8]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-shell-terminal.png
+[9]: https://itsfoss.com/wp-content/uploads/2022/06/thonny-manage-packages.png
diff --git a/published/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md b/published/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md
new file mode 100644
index 0000000000..8d3dfe46e5
--- /dev/null
+++ b/published/20220614 Thunderbird, The Open Source Email Client, Is Coming To Android.md
@@ -0,0 +1,38 @@
+[#]: subject: "Thunderbird, The Open Source Email Client, Is Coming To Android"
+[#]: via: "https://www.opensourceforu.com/2022/06/thunderbird-the-open-source-email-client-is-coming-to-android/"
+[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
+[#]: collector: "lkxed"
+[#]: translator: "lkxed"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14715-1.html"
+
+开源电子邮件客户端 Thunderbird 即将登陆 Android
+======
+
+
+
+开源电子邮件客户端 Thunderbird 将通过 K-9 Mail Android 电子邮件应用项目登陆 Android,该项目与 Thunderbird 合并后的产品就是 Thunderbird Android 电子邮件应用。两年前,Thunderbird 被转移到了 Mozilla 基金会的子公司 MZLA Technologies Corporation 下,该公司的所有权结构与基金会子公司 Mozilla 公司旗下的 Firefox 类似。有了 OpenPGP 端到端加密和期待已久的移动应用等新功能,Thunderbird 项目能够开辟出一条自己的道路。
+
+根据 Thunderbird 团队的说法,Thunderbird 产品经理 Ryan Lee Sipes 和 K-9 的主要维护者 Christian Ketterer,两人早在 2018 年就开始讨论可能的 Thunderbird 电子邮件应用合作了。到了 2022 年,两人决定不再让 Thunderbird 从头开始开发自己的应用程序,而是直接让 K-9 加入 Thunderbird。
+
+Thunderbird 团队表示:“许多 Thunderbird 用户都要求在移动设备上获得 Thunderbird 体验,我们打算通过把 K-9 打造成令人惊叹的产品(并将其变成 Android 上的 Thunderbird)来提供这种体验。K-9 将补充提供 Thunderbird 体验,并增强它的使用场景和方式,让用户获得出色的电子邮件体验。我们对桌面 Thunderbird 的承诺没有改变,我们团队中的大多数人都致力于将其打造为一流的电子邮件客户端,并将保持这种状态。”
+
+虽然 K-9 在 Google Play 上并不是特别受欢迎的电子邮件应用,但它已经获得了 500 万次下载。K-9 Mail 的路线图目前包括:使用 Thunderbird 帐户自动配置的帐户设置、改进的文件夹管理、消息过滤器支持,以及桌面和移动 Thunderbird 之间的同步。虽然 Thunderbird 知道人们对 iOS 版 Thunderbird 应用程序也很感兴趣,但在常见问题解答(FAQ)中,该项目仅声明它正在“评估”这种可能性。
+
+Thunderbird 团队还打算将 Firefox Sync 作为一种在 Thunderbird 和 K-9 Mail 之间同步帐户的方法。它应该会在 2023 年夏天正式投入使用。该项目还在研究将哪些 Thunderbird 功能引入 Android 应用程序,例如日历、任务、提要和聊天支持等。
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/06/thunderbird-the-open-source-email-client-is-coming-to-android/
+
+作者:[Laveesh Kocher][a]
+选题:[lkxed][b]
+译者:[lkxed](https://github.com/lkxed)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/laveesh-kocher/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/android-developer.jpg
diff --git a/sources/news/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md b/sources/news/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md
deleted file mode 100644
index 887fd972a7..0000000000
--- a/sources/news/20220607 OpenInfra Foundation Launches -directed funding- To Support Open Source Projects.md
+++ /dev/null
@@ -1,47 +0,0 @@
-[#]: subject: "OpenInfra Foundation Launches ‘directed funding’ To Support Open Source Projects"
-[#]: via: "https://www.opensourceforu.com/2022/06/openinfra-foundation-launches-directed-funding-to-support-open-source-projects/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-OpenInfra Foundation Launches ‘directed funding’ To Support Open Source Projects
-======
-![open-infra-berlin-event][1]
-
-The OpenInfra Foundation, formerly known as the OpenStack Foundation until it expanded its scope beyond its flagship project a few years ago, announced today an intriguing new way for companies to fund open source projects within the foundation. Corporate members of open source foundations have traditionally supported the organisation by paying a membership fee, which the foundations then distribute as they see fit. The OpenInfra foundation is now launching a new ‘Directed Funding’ model that allows members to direct their funds directly to a project.
-
-The foundation previously did not allow this because, as Bryce pointed out, it can create mixed incentives and a pay-for-play dynamic, which the organisation has always tried to avoid. However, there was a lot of interest in the community to support specific projects, which makes sense given that the foundation is now home to a wider variety of projects, but not every member is heavily invested in every project.
-
-Bryce stated that the foundation’s leadership and board spent a significant amount of time considering how to reconcile the foundation’s core principles with this new model. As a result, the model tries to combine the best of the OpenStack/OpenInfra technical governance model, which has worked well over the last decade, with these new financial considerations.
-
-Under this ‘directed funding’ model, each new project will have its own legal entity that will hold the project funding. To ensure that the new projects are legitimate, an OpenInfra Platinum member (currently nine, including Ant Group, Huawei, Meta, Microsoft, and Red Hat) must serve as the project’s sponsor, after which other organisations can join the project fund. If a sponsoring company is not already an OpenInfra member, it must become one. All of these funding members then form a project fund governing board, which decides on the fees for creating a budget. Meanwhile, the OpenInfra Foundation will provide these projects with community-building services.
-
-This new model will, for the time being, only apply to new projects that join the foundation. Bryce and Collier noted that there may be some existing projects where the organisation could retroactively apply this new model, but that is not currently on the roadmap.
-
-The OpenInfra foundation has added projects such as Kata Containers for increased container security, Airship for infrastructure lifecycle management, the Startling X edge compute stack, and the Zuul CI/CD platform since it expanded beyond OpenStack.
-
-“The most important thing we’ve learned from each of these successful projects is that collaboration is key and the more breadth in the ecosystem of support the better,” said Thierry Carrez, general manager of the OpenInfra Foundation. “In fact, we’ve found that the most successful open source projects are funded by multiple companies, because they are able to combine their resources to achieve a much stronger rate of return.”
-
-This new model is clearly a way for the OpenInfra Foundation to bring new projects — and new members — into the fold. Its models for managing open source projects in a multi-party ecosystem — both through the new directed funds and its more traditional approach — may not be suitable for every project, as the leadership team readily admits. Even if the OpenInfra Foundation only receives a small percentage of projects, the number of open-source projects is increasing as the demand for these sophisticated cloud infrastructure projects grows, all while they become more complex.
-
-The Foundation also announced a couple of milestone releases for its various projects, including version 2.0 of Kata Containers, version 5.0 of Zuul, and the release of StarlingX 6.0.
-
-“The Foundation celebrates its 10 anniversary this year, and as we look to our next decade of open infrastructure, we’re building momentum on what makes our model so successful: aligning companies and individuals who wish to work together, providing them with a framework and tools to effectively collaborate, and helping them invest their funds to best help the project they care about,” said Collier.
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/06/openinfra-foundation-launches-directed-funding-to-support-open-source-projects/
-
-作者:[Laveesh Kocher][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.opensourceforu.com/author/laveesh-kocher/
-[b]: https://github.com/lkxed
-[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/open-infra-berlin-event.png
diff --git a/sources/news/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md b/sources/news/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md
deleted file mode 100644
index 80fe54aece..0000000000
--- a/sources/news/20220609 Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet.md
+++ /dev/null
@@ -1,86 +0,0 @@
-[#]: subject: "Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet"
-[#]: via: "https://news.itsfoss.com/cloudflare-pat/"
-[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Cloudflare Has Something New to Replace Annoying CAPTCHAs on the Internet
-======
-Don’t want to complete CAPTCHA challenges to prove that you are a human? Cloudflare might have a solution for that.
-
-![cloudflare][1]
-
-Cloudflare, the internet services giant, has [just announced][2] Private Access Tokens. These aim to reduce the number of CAPTCHAs you see on the web while improving your privacy.
-
-As you may have found out, CAPTCHAs are a horrible experience on mobile. They often end up occupying the entire screen and can be impossible to complete at times.
-
-As an alternative, websites can elect to collect uniquely identifying data to prove that you are a human. Of course, from a privacy standpoint, this practice is terrible, leaving many privacy-valuing companies with little to prevent them from bot attacks.
-
-Fortunately, the release of Private Access Tokens, or PATs, is set to change this.
-
-### What Impact Will Private Access Tokens Have?
-
-In short, PATs will:
-
-* Reduce the number of CAPTCHAs on supported devices
-* Increase user privacy
-* Allow website owners to ensure that visitors are coming from actual devices
-
-However, diving in a little deeper, we can see that PATs are much more impactful than at first glance. With traditional CAPTCHAs, there are multiple entities that can access your data.
-
-Firstly, the website you are visiting knows your IP address and the URL you are visiting. Of course, this data is the minimum required to establish a connection. Additionally, for more advanced functionality, websites are also sent some user agent data, which is not uniquely identifiable.
-
-However, the second party, the CAPTCHA provider, can collect a lot more data. Like with the website you want to visit, it knows your IP address, user agent data, and the URL you visit. Unfortunately, they also collect additional data, like your device information and interaction data. When tied back with previous times you have completed a CAPTCHA, they can build up an astonishingly detailed profile of you.
-
-Fortunately, PATs by Cloudflare prevent such data from being collected, by ultimately bypassing the CAPTCHA altogether.
-
-### How Do PATs Work?
-
-![][3]
-
-Unlike the CAPTCHA method of aggregating as much data as possible, PATs decentralize the data so that no single party can uniquely identify you. Before you mention data sharing, Cloudflare has specifically mentioned that data is not shared between parties.
-
-When you go on to a website utilizing Cloudflare and PATs, a total of three parties will handle different portions of your data.
-
-1. The website. This will only know your IP, URL, and user agent, which again, is required for establishing a connection.
-2. Your device manufacturer. This will only know the device data required to verify that your device is genuine. They will NOT know what website you are visiting, or your IP address. After verifying your device, they will generate a token, which will be sent to Cloudflare.
-3. Cloudflare. Cloudflare will receive the token, which does not contain any of your device data, only a ‘guarantee’ of sorts from the manufacturer that it is genuine. The only other data they know is the website you are visiting, which is required to serve you the content.
-
-The result of this is a system that gives Cloudflare confidence in you being a human, without ever having to touch your data.
-
-### Supported Operating Systems: No Linux?
-
-As you may have realized, PATs need specific operating system features to work. Currently, they are only present on the latest operating systems by Apple, namely iOS and iPadOS 16, as well as macOS Ventura. This is because Apple’s operating systems run on a limited set of hardware, making device verification significantly easier.
-
-Linux, on the other hand, is a general-purpose operating system designed to run on a wide range of hardware. As a result, I don’t expect to see it support PATs in the near future.
-
-Going back to Apple, it occurs to me that PATs could also cause some issues with consumers’ right to repair their devices. If, for example, I replaced a worn-out iPhone battery with a non-genuine one, would this be flagged by the PAT system?
-
-What about Linux Phones? Manufacturers of these, like Pine64 and Purism, may not have the infrastructure to support such a system. Will it be possible to use PATs on these?
-
-In the [announcement post][4], Cloudflare mentions:
-
-> We are actively working to get other clients and device makers utilizing the PAT framework as well. Any time a new client begins utilizing the PAT framework, traffic coming to your site from that client will automatically start asking for tokens, and your visitors will automatically see fewer CAPTCHAs.
-
-So, we hope to see it being adopted by more devices, and operating systems. What do you think about PATs by Cloudflare? Let me know your thoughts in the comments down below.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/cloudflare-pat/
-
-作者:[Jacob Crume][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/jacob/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/cloudflare-private-access-tokens.jpg
-[2]: https://blog.cloudflare.com/eliminating-captchas-on-iphones-and-macs-using-new-standard/
-[3]: https://news.itsfoss.com/wp-content/uploads/2022/06/PAT-Data-transfer-chart-1024x650.png
-[4]: https://blog.cloudflare.com/eliminating-captchas-on-iphones-and-macs-using-new-standard/
diff --git a/sources/news/20220610 To Favor Microsoft VS Code, Microsoft-s GitHub is Killing GitHub-s Atom Editor.md b/sources/news/20220610 To Favor Microsoft VS Code, Microsoft-s GitHub is Killing GitHub-s Atom Editor.md
deleted file mode 100644
index c10578130c..0000000000
--- a/sources/news/20220610 To Favor Microsoft VS Code, Microsoft-s GitHub is Killing GitHub-s Atom Editor.md
+++ /dev/null
@@ -1,80 +0,0 @@
-[#]: subject: "To Favor Microsoft VS Code, Microsoft’s GitHub is Killing GitHub’s Atom Editor"
-[#]: via: "https://news.itsfoss.com/atom-being-discontinued/"
-[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-To Favor Microsoft VS Code, Microsoft’s GitHub is Killing GitHub’s Atom Editor
-======
-We all knew this day would be coming sooner or later.
-
-![Microsoft kills GitHub's Atom][1]
-
-Coder, coder in the hall, which is the best editor of them all!
-
-Sorry for the really cheesy opening line. I could not prevent myself from writing that. Just as we all could not prevent the certain demise of the most loved open source code editor of the last decade, Atom.
-
-### A brief history of Atom
-
-Atom, released in 2014 by the then independent Git Hub team, was a huge hit among the programmers.
-
-Its neat UI, features, and numerous add-ons made it the hot favorite of the developers.
-
-It continued its popular run despite getting tough competition from Microsoft’s recently open-sourced VS Code editor.
-
-Atom’s loyal fanbase didn’t budge despite the rising popularity of the VS Code until[Microsoft acquired GitHub in 2018][2].
-
-People started wondering how long will Microsoft continue developing two similar projects that don’t make any money for it directly.
-
-In the last four years, it did seem that Atom was losing its charm. It didn’t have any significant feature development while VS Code got more attractive as features after features landed in every release.
-
-The writing was on the wall. Microsoft branded VS Code was being favored over Atom.
-
-Though I don’t have any stats to back my claim, it did seem that Atom’s userbase was declining in the last couple of years. VS Code is like the default editor for young developers.
-
-It was only time that Microsoft pulled the plug on Atom and it did that finally.
-
-### GitHub discontinues Atom
-
-On June 8, Microsoft-owned GitHub [announced][3] that it is going to archive the entire Atom project on December 15, 2022.
-
-> …we’ve decided to retire Atom in order to further our commitment to bringing fast and reliable software development to the cloud via Microsoft Visual Studio Code and GitHub Codespaces.
-
-The stated reason is the same we all know; “Atom has not had significant feature development for the past several years” and “focus on enhancing the developer experience in the cloud with GitHub Codespaces”.
-
-The Atom project was more than just an editor though. For good or bad, whatever you feel like, Atom also gave birth to Electron framework.
-
-> It’s worth reflecting that Atom has served as the foundation for the Electron framework, which paved the way for the creation of thousands of apps, including Microsoft Visual Studio Code, Slack, and our very own GitHub Desktop. However, reliability, security, and performance are core to GitHub, and in order to best serve the developer community, we are archiving Atom to prioritize technologies that enable the future of software development.
-
-### Atom dies a slow death and its fork will likely meet the same fate
-
-Atom is open source so it’s not going to ‘rest in peace’ immediately. It will be resurrected (read forked) for sure.
-
-However, even if someone forks the project and continues to keep it alive, it’s not going to match up to VS Code anymore. At best, it will get a few bug fixes and minor new features. That’s not entirely bad for the hard-core Atom lovers but it won’t attract newer, younger coders.
-
-Ultimately, the forked projects will also be shut down eventually. It’s not possible for a couple of volunteer developers to match the might of a billion-dollar organization with huge infrastructure. [Atom won’t get compared to VS Code][4] any longer.
-
-Atom will be missed. Maybe not by as many people as it would have been if it was to discontinue in 2018. The noose was tightened around its neck slowly and we all witnessed it.
-
-Anyway, are you still using Atom? Will you move to VS Code or choose some other non-Microsoft editor?
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/atom-being-discontinued/
-
-作者:[Abhishek][a]
-选题:[lkxed][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/root/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/microsoft-kills-github-atom.png
-[2]: https://itsfoss.com/microsoft-github/
-[3]: https://github.blog/2022-06-08-sunsetting-atom/
-[4]: https://itsfoss.com/visual-studio-code-vs-atom/
diff --git a/sources/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md b/sources/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md
new file mode 100644
index 0000000000..c5811a07f7
--- /dev/null
+++ b/sources/news/20220615 According to studies, Twitter Drives Open Source Projects Popularity.md
@@ -0,0 +1,39 @@
+[#]: subject: "According to studies, Twitter Drives Open Source Projects Popularity"
+[#]: via: "https://www.opensourceforu.com/2022/06/according-to-studies-twitter-drives-open-source-projects-popularity/"
+[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+According to studies, Twitter Drives Open Source Projects Popularity
+======
+![twiiter][1]
+
+The research team, led by Ph.D. Hongbo Fang, discovered that Twitter is an effective way to attract more attention and contributors to open source projects on GitHub. The study, titled “‘This Is Damn Slick!’ Estimating the Impact of Tweets on Open Source Project Popularity and New Contributors,” was presented by Fang at the International Conference on Software Engineering, where it received a Distinguished Paper award. According to the study, tweeting about a project resulted in a 7% increase in popularity (at least one star on GitHub) and a 2% increase in the number of contributors. The more tweets a project received, the more stars and contributors it received.
+
+“We have realized that social media has become more and more important in open source communities,” Fang said. “Attracting attention and new contributors will lead to higher quality and better software.”
+
+The majority of open source software is created and maintained by volunteers. The more people who work on a project, the better the outcome. Developers and others use the software, report problems, and work to resolve them. Projects that are unpopular risk not receiving the attention they require. This mostly volunteer workforce is responsible for the upkeep of software that millions of people rely on every day. For example, nearly every HTTPS website secures its content with the open source OpenSSL. Heartbleed, a security flaw discovered in OpenSSL, cost businesses millions of dollars to fix after it was discovered in 2014. Another open source piece of software, cURL, allows connected devices to send data to one another and is installed on approximately 1 billion devices. The list could go on and on.
+
+Fang’s study of Twitter’s impact on increasing the popularity of an open-source project and attracting new contributors is part of a larger body of work in Vasilescu’s Socio-Technical Research Using Data Excavation Lab (STRUDEL) that looks at how to make the open source community and its work more sustainable. The digital infrastructure, the roads and bridges that underpin modern technology, is open source software. That infrastructure may crumble if it is not properly maintained.
+
+The researchers examined 44,544 tweets containing links to 2,370 open source GitHub repositories for evidence that the tweets drew new stars and contributors to the projects. The researchers used a scientific approach to the study, comparing the increase in stars and contributors of GitHub projects mentioned on Twitter to a control group of projects that were not mentioned on Twitter. The study also described the characteristics of high-impact tweets, the types of people who are likely to be drawn to a project by the posts, and how those people differ from contributors drawn through other means. Tweets from project supporters, rather than developers, work best for attracting attention. Posts requesting assistance with a specific task or project receive a higher response rate. Tweets tend to attract new contributors who are newer to GitHub but not less experienced programmers. And new interest may not result in new assistance.
+
+One of the potential drawbacks of increasing a project’s popularity that the researchers discuss is the gap between attention and action. More attention frequently results in more feature requests or issue reports, but not necessarily more developers to address them. Increased social media popularity may result in more trolls or toxic behaviour surrounding the project.
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/06/according-to-studies-twitter-drives-open-source-projects-popularity/
+
+作者:[Laveesh Kocher][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.opensourceforu.com/author/laveesh-kocher/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/twiiter.jpg
diff --git a/sources/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md b/sources/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md
new file mode 100644
index 0000000000..f8cfad7d55
--- /dev/null
+++ b/sources/news/20220615 Mozilla Just Made Firefox the Most Secure Web Browser for All Users.md
@@ -0,0 +1,76 @@
+[#]: subject: "Mozilla Just Made Firefox the Most Secure Web Browser for All Users"
+[#]: via: "https://news.itsfoss.com/mozilla-firefox-secure/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Mozilla Just Made Firefox the Most Secure Web Browser for All Users
+======
+Mozilla finally enabled a privacy protection feature that potentially makes it the safest web browser at the time. Do you think so?
+
+![mozilla firefox][1]
+
+Mozilla Firefox is one of the most secure open-source web browsers available.
+
+Undoubtedly, you get the freedom to customize it to harden security, which is why Tor Browser utilizes Firefox at its core.
+
+And, also one of the [reasons why I keep coming back to Firefox][2].
+
+Now, Mozilla has finally enabled a new feature for **all desktop users,** making it the most secure browser (or as they claim).
+
+Here, I’m not talking about anything new, but an existing feature in Firefox, i.e., Total Cookie Protection. It was introduced with [Firefox 86][3] last year, but it was not enabled by default for all users.
+
+### Total Cookie Protection for all users
+
+Whether you are using Windows, Mac, or Linux, the Total Cookie Protection is being rolled out to everyone, making it one of its core features enabled by default.
+
+Initially, to use the feature, you had to enable the strict mode (Enhanced Tracking Protection). But, now, you no longer need to do that.
+
+**What is it?**
+
+In case you are curious, Total Cookie Protection isolates every website with its cookies. Cookies are small bits of data sent to your browser by a website.
+
+So, the cookies will not be shared among websites, thereby, preventing cross-site tracking.
+
+Separate cookie jars will be created for each website you visit.
+
+![][4]
+
+Mozilla’s blog post explains more about it as:
+
+> Any time a website, or [third-party content][5] embedded in a website, deposits a cookie in your browser, that cookie is confined to the cookie jar assigned to *only*that website. No other websites can reach into the cookie jars that don’t belong to them and find out what the other websites’ cookies know about you — giving you freedom from invasive ads and reducing the amount of information companies gather about you.
+
+### So, Is it a big deal?
+
+Even with all the privacy tracking protection and content blockers in place, cross-site tracking is a problem that not everyone is aware of.
+
+Hence, with cross-site cookie interactions, a lot of your personal activities and habits can help a digital tracking company build an online profile of yours.
+
+But, with Mozilla Firefox, enabling the feature by default on top of all other privacy measures by Firefox, ensures that you should get the most private experience.
+
+And, all that without needing to tweak anything, which should make things convenient for any privacy-centric user.
+
+If you are still curious, you can refer to the [official announcement post][6] by Mozilla.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/mozilla-firefox-secure/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/wp-content/uploads/2022/06/mozilla-made-firefox-most-secure-web-browser.jpg
+[2]: https://news.itsfoss.com/why-mozilla-firefox/
+[3]: https://news.itsfoss.com/firefox-86-release/
+[4]: https://news.itsfoss.com/wp-content/uploads/2021/02/tcp-firefox.png
+[5]: https://support.mozilla.org/en-US/kb/third-party-cookies-firefox-tracking-protection#:~:text=Third%2Dparty%20cookies%20are%20cookies,considered%20a%20third%2Dparty%20cookie.
+[6]: https://blog.mozilla.org/en/products/firefox/firefox-rolls-out-total-cookie-protection-by-default-to-all-users-worldwide/
diff --git a/sources/talk/20220510 6 easy ways to make your first open source contribution with LibreOffice.md b/sources/talk/20220510 6 easy ways to make your first open source contribution with LibreOffice.md
index 663254a93e..df7c631f1e 100644
--- a/sources/talk/20220510 6 easy ways to make your first open source contribution with LibreOffice.md
+++ b/sources/talk/20220510 6 easy ways to make your first open source contribution with LibreOffice.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/5/first-open-source-contribution-libreoffice"
[#]: author: "Klaatu https://opensource.com/users/klaatu"
[#]: collector: "lkxed"
-[#]: translator: "lkskjjk"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md b/sources/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md
deleted file mode 100644
index 939f7865be..0000000000
--- a/sources/talk/20220602 Why Do Enterprises Use and Contribute to Open Source Software.md
+++ /dev/null
@@ -1,128 +0,0 @@
-[#]: subject: "Why Do Enterprises Use and Contribute to Open Source Software"
-[#]: via: "https://www.linux.com/news/why-do-enterprises-use-and-contribute-to-open-source-software/"
-[#]: author: "Dan Whiting https://www.linuxfoundation.org/blog/why-do-enterprises-use-and-contribute-to-open-source-software/"
-[#]: collector: "lkxed"
-[#]: translator: "aREversez"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Why Do Enterprises Use and Contribute to Open Source Software
-======
-When people find out I work at the Linux Foundation they invariably ask what we do? Sometimes it is couched around the question, As in the Linux operating system? I explain open source software and try to capture the worldwide impact into 20 seconds before I lose their attention. If they happen to stick around for more, we often dig into the question, Why would enterprises want to participate in open source software projects or use open source software? The reality is – they do, whether they know it or not. And the reality is thousands of companies donate their code to open source projects and invest time and resources helping to further develop and improve open source software.
-
-### How extensively used is open source software
-
-To quote from our recently released report, A Guide to Enterprise Open Source, “Open source software (OSS) has transformed our world and become the backbone of our digital economy and the foundation of our digital world. From the Internet and the mobile apps we use daily to the operating systems and programming languages we use to build the future, OSS has played a vital role. It is the lifeblood of the technology industry. Today, OSS powers the digital economy and enables scientific and technological breakthroughs that improve our lives. It’s in our phones, our cars, our airplanes, our homes, our businesses, and our governments. But just over two decades ago, few people had ever heard of OSS, and its use was limited to a small group of dedicated enthusiasts.”
-
-Open source software (OSS) has transformed our world and become the backbone of our digital economy and the foundation of our digital world.
-
-But what does this look like practically:
-
-* In vertical software stacks across industries, open source penetration ranges from 20 to 85 percent of the overall software used.
-* Linux fuels 90%+ of web servers and Internet-connected devices.
-* The Android mobile operating system is built on the Linux kernel.
-* Immensely [popular libraries and tools][1] to build web applications, such as: AMP, Appium, Dojo, jQuery, Marko, Node.js and so many more are open source.
-* The world’s top 100 supercomputers run Linux.
-* 100% of mainframe customers use Linux.
-* The major cloud-service providers – AWS, Google, and Microsoft – all utilize open-source software to run their services and host open-source solutions delivered through the cloud.
-
-### Why do companies want to participate in open source software projects
-
-Companies primarily participate in open source software projects in three ways:
-
-* They donate software they created to the open source community.
-* They provide direct funding and/or allocate software developers and other staff to contribute to open source software projects
-
-The question often asked is, why wouldn’t they want to keep all of their software proprietary or only task their employees to work on their proprietary software?
-
-The 30,000-foot answer is that it is about organizations coming together to collectively solve common problems so they can separately innovate and differentiate on top of the common baseline. They see that they are better off pooling resources to make the baseline better. Sometimes it is called “coopetition.” It generally means that while companies may be in competition with each other in certain areas, they can still cooperate on others.
-
-It is about organizations coming together to collectively solve common problems so they can separately innovate and differentiate
-
-Some old-school examples of this principle:
-
-* Railroads agreed on a common track size and build so they can all utilize the same lines and equipment was interchangeable.
-* Before digital cameras, companies innovated and differentiated on film and cameras, but they all agreed on the spacing for the sprockets to advance the film.
-* The entertainment industry united around the VHS and Blu-Ray formats over their rivals.
-
-Now, we see companies, organizations, and individuals coming together to solve problems while simultaneously improving their businesses and products:
-
-[Let’s Encrypt][2] is a free, automated, and open certificate authority with the goal of dramatically increasing the use of secure web protocols by making it much easier and less expensive to setup. They are serving 225+ million websites, issuing ~1.5 million certificates each day on average.
-
-The [Academy Software Foundation][3] [creates value in the film industry][4] through collectively engineering software that powers much of the entertainment, gaming, and media industry productions and open standards needed for growth.
-
-The Hyperledger Foundation hosts enterprise-grade blockchain software projects, notably [using significantly fewer energy resources][5] than other popular solutions.
-
-[LF Energy][6] is [making the electric grid more modular, interoperable, and scalable][7] to help increase the use of renewable energy sources.
-
-[Dronecode][8] is enabling the development of drone software so companies can use their resources to innovate further.
-
-[OpenSSF][9] is the top technology companies coming together to strengthen the security and resiliency of open source software.
-
-[Kubernetes][10] was donated by Google and is the go-to solution for managing cloud-based software.
-
-These are just a small sampling of the open source software projects that enterprises are participating in. You can explore all of the ones hosted at the Linux Foundation [here][11].
-
-### How can companies effectively use and participate in open source software projects?
-
-Enterprises looking to better utilize and participate in open source projects can look to the Linux Foundation’s resources to help. Much of what organizations need to know is provided in the just-published report,[A Guide to Enterprise Open Source][12]. The report is packed with information and insights from open source leaders at top companies with decades of combined experience. It includes chapters on these topics:
-
-* Leveraging Open Source Software
-* Preparing the Enterprise for Open Source
-* Developing an Open Source Strategy
-* Setting Up Your Infrastructure for Implementation
-* Setting Up Your Talent for Success
-* Challenges
-
-Additionally, the Linux Foundation offers many open source [training courses][13], [events][14] throughout the year, the [LFX Platform][15], and hosts projects that help organizations manage open source utilization and participation, such as:
-
-The [TODO Group][16] provides resources to setup and run an open source program office, including their [extensive guides][17].
-
-The [Openchain Project][18] maintains an international standard for sharing what software package licenses are included in a larger package, including information on the various licensing requirements so enterprises can ensure they are complying with all of the legal requirements.
-
-The [FinOps Foundation][19] is fostering an, “evolving cloud financial management discipline and cultural practice that enables organizations to get maximum business value by helping engineering, finance, technology, and business teams to collaborate on data-driven spending decisions.”.
-
-The [Software Data Package Exchange (SPDX)][20] is an open standard for communication software bill of materials (SBOMs) so it is clear to every user which pieces of software are included in the overall package.
-
-Again, this is just a snippet of the projects at the Linux Foundation that are working to help organizations adapt, utilize, contribute, and donate open source projects.
-
-The bottom line: Enterprises are increasingly turning to open source software projects to solve common problems and innovate beyond the baseline, and the Linux Foundation is here to help.
-
-The post [Why Do Enterprises Use and Contribute to Open Source Software][21] appeared first on [Linux Foundation][22].
-
---------------------------------------------------------------------------------
-
-via: https://www.linux.com/news/why-do-enterprises-use-and-contribute-to-open-source-software/
-
-作者:[Dan Whiting][a]
-选题:[lkxed][b]
-译者:[aREversez](https://github.com/aREversez)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://www.linuxfoundation.org/blog/why-do-enterprises-use-and-contribute-to-open-source-software/
-[b]: https://github.com/lkxed
-[1]: https://openjsf.org/projects/
-[2]: https://letsencrypt.org/
-[3]: https://www.aswf.io/
-[4]: https://linuxfoundation.org/tools/open-source-in-entertainment/
-[5]: https://linuxfoundation.org/tools/carbon-footprint-of-nfts/
-[6]: https://www.lfenergy.org/
-[7]: https://linuxfoundation.org/tools/paving-the-way-to-battle-climate-change-how-two-utilities-embraced-open-source-to-speed-modernization-of-the-electric-grid/
-[8]: https://www.dronecode.org/projects/
-[9]: https://openssf.org/
-[10]: https://kubernetes.io/
-[11]: https://linuxfoundation.org/projects/
-[12]: https://linuxfoundation.org/tools/guide-to-enterprise-open-source/
-[13]: https://training.linuxfoundation.org/
-[14]: https://events.linuxfoundation.org/
-[15]: https://lfx.linuxfoundation.org/
-[16]: https://todogroup.org/
-[17]: https://linuxfoundation.org/resources/open-source-guides/
-[18]: https://www.openchainproject.org/resources
-[19]: https://www.finops.org/introduction/what-is-finops/
-[20]: https://spdx.dev/
-[21]: https://www.linuxfoundation.org/blog/why-do-enterprises-use-and-contribute-to-open-source-software/
-[22]: https://www.linuxfoundation.org/
diff --git a/sources/talk/20220615 SBOM – SB Doesn-t Stand for Silver Bullet.md b/sources/talk/20220615 SBOM – SB Doesn-t Stand for Silver Bullet.md
new file mode 100644
index 0000000000..e43bd0baf5
--- /dev/null
+++ b/sources/talk/20220615 SBOM – SB Doesn-t Stand for Silver Bullet.md
@@ -0,0 +1,120 @@
+[#]: subject: "SBOM – SB Doesn’t Stand for Silver Bullet"
+[#]: via: "https://www.linux.com/news/sbom-sb-doesnt-stand-for-silver-bullet/"
+[#]: author: "Dan Whiting https://www.linuxfoundation.org/blog/sbom-sb-doesnt-stand-for-silver-bullet/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+SBOM – SB Doesn’t Stand for Silver Bullet
+======
+Software Bill of Materials (SBOMs) are like ingredient labels on food. They are critical to keep consumers safe and healthy, they are somewhat standardized, but it is a lot more exciting to grow or make the food rather than the label.
+
+### What is an SBOM?
+
+What is an SBOM? In short, it is a way to tell another party all of the software that is used in the stack that makes up an application. One benefit of having a SBOM is you know what is in there when a vulnerability comes up. You can easily determine if you are vulnerable and where.
+
+As modern software is built utilizing a base of software already written (no sense in recreating the wheel), it is important that all of the components don’t get lost in the shuffle. It isn’t readily apparent what a particular piece of software utilizes. So, if a vulnerability for Software A arises, you need to know, do I have that piece of software somewhere in my ecosystem, and, if so, where. Then you can remediate if you need to.
+
+I can’t take credit for the food label analogy used in my introduction. I heard it from [Allan Friedman][1], a Senior Advisor and Strategist at the [U.S. Cybersecurity and Infrastructure Security Agency][2] (CISA) and a key SBOM advocate, when he presented about SBOMs at the RSA Conference 2022 with [Kate Stewart][3], the VP of Dependable Embedded Systems here at the Linux Foundation. Allan made the point that food labels only provide information. The consumer needs to read and understand them and take appropriate action. For instance, if they are allergic to peanuts, they can look at an ingredient label and determine if they can safely eat the food.
+
+SBOMs are similar – they tell a person what software is used as an “ingredient” so someone can determine if they need to take action if a vulnerability arises. It isn’t a silver bullet, but it is a vital tool. Without SBOMs no one can track what component “ingredients” are in their software applications.
+
+### SBOMs and the Software Supply Chain
+
+Supply chains are impacting our lives more than just restricting availability of consumer goods. Software supply chains are immensely more complicated now as software is built with pre-existing components. This makes software better, more effective, more powerful, etc. But it also introduces risk as more and more parties touch a particular piece of software. Much like our world has become so interdependent, so has our software.
+
+Understanding what is in the supply chain for our software helps us effectively secure it. When a new risk emerges, we know what we need to do.
+
+### SBOMs and Software Security
+
+SBOMs are increasingly being recognized as an important pillar in any comprehensive software security plan. A global [survey conducted in 2021 Q3 by the Linux Foundation][4] found that 78% of organizations responding plan to use SBOMs in 2022. Additionally, the recently published [Open Source Software Security Mobilization Plan][5] recommends SBOMs be universal and the [U.S. Executive Order on Improving the Nation’s Cybersecurity][6] requires SBOMs be provided for software purchased by the U.S. government. And, as Allan points out in his talk, “We buy everything.” The E.O. actually lays out a nice summary of SBOMs and their benefits:
+
+The term “Software Bill of Materials” or “SBOM” means a formal record containing the details and supply chain relationships of various components used in building software. Software developers and vendors often create products by assembling existing open source and commercial software components. The SBOM enumerates these components in a product. It is analogous to a list of ingredients on food packaging. An SBOM is useful to those who develop or manufacture software, those who select or purchase software, and those who operate software. Developers often use available open source and third-party software components to create a product; an SBOM allows the builder to make sure those components are up to date and to respond quickly to new vulnerabilities. Buyers can use an SBOM to perform vulnerability or license analysis, both of which can be used to evaluate risk in a product. Those who operate software can use SBOMs to quickly and easily determine whether they are at potential risk of a newly discovered vulnerability. A widely used, machine-readable SBOM format allows for greater benefits through automation and tool integration. The SBOMs gain greater value when collectively stored in a repository that can be easily queried by other applications and systems. Understanding the supply chain of software, obtaining an SBOM, and using it to analyze known vulnerabilities are crucial in managing risk.
+
+Allan and Kate spent time in their talk going into the current state of SBOMs, challenges, benefits, tools available for creating and sharing SBOMs, what is a minimum SBOM, standards being developed, making them fully automated, and more. Look for some future LF Blog posts digging into these.
+
+But there are things you can do now.
+
+### What can you and your organization do now?
+
+Allan and Kate laid out several things you and your organization can do, starting now. Starting within your organization:
+
+Next week: Understand origins of software your organization is using
+
+* Commercial: can you ask for an SBOM?
+* Open source: do you have an SBOM for the binary or sources you’re importing?
+
+Three months: Understand what SBOMs your customers will require
+
+Expectations: which standards, dependency depth, licensing info?
+
+Six months: Prototype and deploy
+
+Implement SBOM through using an OSS tool and/or starting a conversation with vendor
+
+And participate in ongoing discussions to determine best practices for the ecosystem and contribute to open source project any code developed to support SBOMs.
+
+### But there are also steps you can take as an individual:
+
+Next week: Start playing with an open source SBOM tool and apply it to a repo
+
+Three months: Have an SBOM strategy that explicitly identifies tooling needs
+
+Six months:
+
+Begin SBOM implementation through using an OSS tool or starting a conversation with vendor
+Participate in a plugfest and try to consume another’s SBOM
+
+And make sure to share any open source and commercial tools you find helpful and work with the tools to help harden them, test and report bugs, and push them to scale.
+
+### How can you shape the future of SBOMs?
+
+First, I want to highlight some upcoming opportunities they shared to help shape the future of SBOMs. CISA is running public Tooling & Implementation work stream discussions in July 2022. They are the same, but occur at different times to help accommodate more time zones:
+
+* July 13, 2022 – 3:00-4:30 PM ET
+* July 21, 2022 – 9:30-11:00 AM ET
+
+If you want to participate, please email [SBOM@cisa.dhs.gov][7].
+
+Additionally, there will be “[plugfests][8]” to be announced soon, and they suggested organizations already adopting SBOMs publish case studies and reference tooling workflows to help others.
+
+### Conclusion
+
+SBOMs are here to stay. If you aren’t already, get on the train now. It is pulling out of the station, but you still have an opportunity to help shape where it is going and how well the journey goes.
+
+Allan’s and Kate’s slides are available [here][9]. If you registered to attend the RSA Conference, you can now watch their full presentation on demand [here][10].
+
+### The Software Package Data ExchangeⓇ (SPDXⓇ)
+
+The Linux Foundation hosts SPDX, which is an open standard for communicating software bill of material information, including components, licenses, copyrights, and security references. SPDX reduces redundant work by providing a common format for companies and communities to share important data, thereby streamlining and improving compliance. The SPDX specification is an international open standard (ISO/IEC 5962:2021). Learn more at [spdx.dev][11].
+
+The post [SBOM – SB Doesn’t Stand for Silver Bullet][12] appeared first on [Linux Foundation][13].
+
+--------------------------------------------------------------------------------
+
+via: https://www.linux.com/news/sbom-sb-doesnt-stand-for-silver-bullet/
+
+作者:[Dan Whiting][a]
+选题:[lkxed][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://www.linuxfoundation.org/blog/sbom-sb-doesnt-stand-for-silver-bullet/
+[b]: https://github.com/lkxed
+[1]: https://www.linkedin.com/in/allanafriedman/
+[2]: https://www.cisa.gov/
+[3]: https://www.linkedin.com/in/katestewartaustin/
+[4]: https://www.linuxfoundation.org/tools/the-state-of-software-bill-of-materials-sbom-and-cybersecurity-readiness/
+[5]: https://openssf.org/oss-security-mobilization-plan/
+[6]: https://openssf.org/blog/2021/05/14/how-lf-communities-enable-security-measures-required-by-the-us-executive-order-on-cybersecurity/
+[7]: https://www.linux.com/mailto:SBOM@cisa.dhs.gov
+[8]: https://en.wikipedia.org/wiki/Plugtest
+[9]: https://www.linuxfoundation.org/wp-content/uploads/Tooling-up-Getting-SBOMs-to-Scale_slides.pdf
+[10]: https://www.rsaconference.com/usa/agenda/session/Tooling%20up%20Getting%20SBOMs%20to%20Scale
+[11]: https://spdx.dev/
+[12]: https://www.linuxfoundation.org/blog/sbom-sb-doesnt-stand-for-silver-bullet/
+[13]: https://www.linuxfoundation.org/
diff --git a/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md b/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md
index b2d719b02a..58277b591a 100644
--- a/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md
+++ b/sources/tech/20210104 Docker Compose- a nice way to set up a dev environment.md
@@ -1,5 +1,5 @@
[#]: collector: (lujun9972)
-[#]: translator: ( )
+[#]: translator: (lkxed)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/tech/20210319 Create a countdown clock with a Raspberry Pi.md b/sources/tech/20210319 Create a countdown clock with a Raspberry Pi.md
deleted file mode 100644
index 6b042c6d86..0000000000
--- a/sources/tech/20210319 Create a countdown clock with a Raspberry Pi.md
+++ /dev/null
@@ -1,393 +0,0 @@
-[#]: subject: (Create a countdown clock with a Raspberry Pi)
-[#]: via: (https://opensource.com/article/21/3/raspberry-pi-countdown-clock)
-[#]: author: (Chris Collins https://opensource.com/users/clcollins)
-[#]: collector: (lujun9972)
-[#]: translator: ( Donkey-Hao )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Create a countdown clock with a Raspberry Pi
-======
-Start counting down the days to your next holiday with a Raspberry Pi
-and an ePaper display.
-![Alarm clocks with different time][1]
-
-For 2021, [Pi Day][2] has come and gone, leaving fond memories and [plenty of Raspberry Pi projects][3] to try out. The days after any holiday can be hard when returning to work after high spirits and plenty of fun, and Pi Day is no exception. As we look into the face of the Ides of March, we can long for the joys of the previous, well, day. But fear no more, dear Pi Day celebrant! For today, we begin the long countdown to the next Pi Day!
-
-OK, but seriously. I made a Pi Day countdown timer, and you can too!
-
-A while back, I purchased a [Raspberry Pi Zero W][4] and recently used it to [figure out why my WiFi was so bad][5]. I was also intrigued by the idea of getting an ePaper display for the little Zero W. I didn't have a good use for one, but, dang it, it looked like fun! I purchased a little 2.13" [Waveshare display][6], which fit perfectly on top of the Raspberry Pi Zero W. It's easy to install: Just slip the display down onto the Raspberry Pi's GIPO headers and you're good to go.
-
-I used [Raspberry Pi OS][7] for this project, and while it surely can be done with other operating systems, the `raspi-config` command, used below, is most easily available on Raspberry Pi OS.
-
-### Set up the Raspberry Pi and the ePaper display
-
-Setting up the Raspberry Pi to work with the ePaper display requires you to enable the Serial Peripheral Interface (SPI) in the Raspberry Pi software, install the BCM2835 C libraries (to access the GPIO functions for the Broadcom BCM 2835 chip on the Raspberry Pi), and install Python GPIO libraries to control the ePaper display. Finally, you need to install the Waveshare libraries for working with the 2.13" display using Python.
-
-Here's a step-by-step walkthrough of how to do these tasks.
-
-#### Enable SPI
-
-The easiest way to enable SPI is with the Raspberry Pi `raspi-config` command. The SPI bus allows serial data communication to be used with devices—in this case, the ePaper display:
-
-
-```
-`$ sudo raspi-config`
-```
-
-From the menu that pops up, select **Interfacing Options** -> **SPI** -> **Yes** to enable the SPI interface, then reboot.
-
-#### Install BCM2835 libraries
-
-As mentioned above, the BCM2835 libraries are software for the Broadcom BCM2385 chip on the Raspberry Pi, which allows access to the GPIO pins and the ability to use them to control devices.
-
-As I'm writing this, the latest version of the Broadcom BCM 2835 libraries for the Raspberry Pi is v1.68. To install the libraries, you need to download the software tarball and build and install the software with `make`:
-
-
-```
-# Download the BCM2853 libraries and extract them
-$ curl -sSL -o - | tar -xzf -
-
-# Change directories into the extracted code
-$ pushd bcm2835-1.68/
-
-# Configure, build, check and install the BCM2853 libraries
-$ sudo ./configure
-$ sudo make check
-$ sudo make install
-
-# Return to the original directory
-$ popd
-```
-
-#### Install required Python libraries
-
-You also need some Python libraries to use Python to control the ePaper display, the `RPi.GPIO` pip package. You also need the `python3-pil` package for drawing shapes. Apparently, the PIL package is all but dead, but there is an alternative, [Pillow][8]. I have not tested Pillow for this project, but it may work:
-
-
-```
-# Install the required Python libraries
-$ sudo apt-get update
-$ sudo apt-get install python3-pip python3-pil
-$ sudo pip3 install RPi.GPIO
-```
-
-_Note: These instructions are for Python 3. You can find Python 2 instructions on Waveshare's website_
-
-#### Download Waveshare examples and Python libraries
-
-Waveshare maintains a Git repository with Python and C libraries for working with its ePaper displays and some examples that show how to use them. For this countdown clock project, you will clone this repository and use the libraries for the 2.13" display:
-
-
-```
-# Clone the WaveShare e-Paper git repository
-$ git clone
-```
-
-If you're using a different display or a product from another company, you'll need to use the appropriate software for your display.
-
-Waveshare provides instructions for most of the above on its website:
-
- * [WaveShare ePaper setup instructions][9]
- * [WaveShare ePaper libraries install instructions][10]
-
-
-
-#### Get a fun font (optional)
-
-You can display your timer however you want, but why not do it with a little style? Find a cool font to work with!
-
-There's a ton of [Open Font License][11] fonts available out there. I am particularly fond of Bangers. You've seen this if you've ever watched YouTube—it's used _all over_. It can be downloaded and dropped into your user's local shared fonts directory to make it available for any application, including this project:
-
-
-```
-# The "Bangers" font is a Open Fonts License licensed font by Vernon Adams () from Google Fonts
-$ mkdir -p ~/.local/share/fonts
-$ curl -sSL -o fonts/Bangers-Regular.ttf
-```
-
-### Create a Pi Day countdown timer
-
-Now that you have installed the software to work with the ePaper display and a fun font to use, you can build something cool with it: a timer to count down to the next Pi Day!
-
-If you want, you can just grab the [countdown.py][12] Python file from this project's [GitHub repo][13] and skip to the end of this article.
-
-For the curious, I'll break down that file, section by section.
-
-#### Import some libraries
-
-
-```
-#!/usr/bin/python3
-# -*- coding:utf-8 -*-
-import logging
-import os
-import sys
-import time
-
-from datetime import datetime
-from pathlib import Path
-from PIL import Image,ImageDraw,ImageFont
-
-logging.basicConfig(level=logging.INFO)
-
-basedir = Path(__file__).parent
-waveshare_base = basedir.joinpath('e-Paper', 'RaspberryPi_JetsonNano', 'python')
-libdir = waveshare_base.joinpath('lib')
-```
-
-At the start, the Python script imports some standard libraries used later in the script. You also need to add `Image`, `ImageDraw`, and `ImageFont` from the PIL package, which you'll use to draw some simple geometric shapes. Finally, set some variables for the local `lib` directory that contains the Waveshare Python libraries for working with the 2.13" display, and which you can use later to load the library from the local directory.
-
-#### Font size helper function
-
-The next part of the script has a helper function for setting the font size for your chosen font: Bangers-Regular.ttf. It takes an integer for the font size and returns an ImageFont object you can use with the display:
-
-
-```
-def set_font_size(font_size):
- logging.info("Loading font...")
- return ImageFont.truetype(f"{basedir.joinpath('Bangers-Regular.ttf').resolve()}", font_size)
-```
-
-#### Countdown logic
-
-Next is a small function that calculates the meat of this project: how long it is until the next Pi Day. If it were, say, January, it would be relatively straightforward to count how many days are left, but you also need to consider whether Pi Day has already passed for the year (sadface), and if so, count how very, very many days are ahead until you can celebrate again:
-
-
-```
-def countdown(now):
- piday = datetime(now.year, 3, 14)
-
- # Add a year if we're past PiDay
- if piday < now:
- piday = datetime((now.year + 1), 3, 14)
-
- days = (piday - now).days
-
- logging.info(f"Days till piday: {days}")
- return day
-```
-
-#### The main function
-
-Finally, you get to the main function, which initializes the display and begins writing data to it. In this case, you'll write a welcome message and then begin the countdown to the next Pi Day. But first, you need to load the Waveshare library:
-
-
-```
-def main():
-
- if os.path.exists(libdir):
- sys.path.append(f"{libdir}")
- from waveshare_epd import epd2in13_V2
- else:
- logging.fatal(f"not found: {libdir}")
- sys.exit(1)
-```
-
-The snippet above checks to make sure the library has been downloaded to a directory alongside the countdown script, and then it loads the `epd2in13_V2` library. If you're using a different display, you will need to use a different library. You can also write your own if you are so inclined. I found it kind of interesting to read the Python code that Waveshare provides with the display. It's considerably less complicated than I would have imagined it to be, if somewhat tedious.
-
-The next bit of code creates an EPD (ePaper Display) object to interact with the display and initializes the hardware:
-
-
-```
- logging.info("Starting...")
- try:
- # Create an a display object
- epd = epd2in13_V2.EPD()
-
- # Initialize the displace, and make sure it's clear
- # ePaper keeps it's state unless updated!
- logging.info("Initialize and clear...")
- epd.init(epd.FULL_UPDATE)
- epd.Clear(0xFF)
-```
-
-An interesting aside about ePaper: It uses power only when it changes a pixel from white to black or vice-versa. This means when the power is removed from the device or the application stops for whatever reason, whatever was on the screen remains. That's great from a power-consumption perspective, but it also means you need to clear the display when starting up, or your script will just write over whatever is already on the screen. Hence, `epd.Clear(0xFF)` is used to clear the display when the script starts.
-
-Next, create a "canvas" where you will draw the rest of your display output:
-
-
-```
- # Create an image object
- # NOTE: The "epd.heigh" is the LONG side of the screen
- # NOTE: The "epd.width" is the SHORT side of the screen
- # Counter-intuitive...
- logging.info(f"Creating canvas - height: {epd.height}, width: {epd.width}")
- image = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame
- draw = ImageDraw.Draw(image)
-```
-
-This matches the width and height of the display—but it is somewhat counterintuitive, in that the short side of the display is the width. I think of the long side as the width, so this is just something to note. Note that the `epd.height` and `epd.width` are set by the Waveshare library to correspond to the device you're using.
-
-#### Welcome message
-
-Next, you'll start to draw something. This involves setting data on the "canvas" object you created above. This doesn't draw it to the ePaper display yet—you're just building the image you want right now. Create a little welcome message celebrating Pi Day, with an image of a piece of pie, drawn by yours truly just for this project:
-
-![drawing of a piece of pie][14]
-
-(Chris Collins, [CC BY-SA 4.0][15])
-
-Cute, huh?
-
-
-```
- logging.info("Set text text...")
- bangers64 = set_font_size(64)
- draw.text((0, 30), 'PI DAY!', font = bangers64, fill = 0)
-
- logging.info("Set BMP...")
- bmp = Image.open(basedir.joinpath("img", "pie.bmp"))
- image.paste(bmp, (150,2))
-```
-
-Finally, _finally_, you get to display the canvas you drew, and it's a little bit anti-climactic:
-
-
-```
- logging.info("Display text and BMP")
- epd.display(epd.getbuffer(image))
-```
-
-That bit above updates the display to show the image you drew.
-
-Next, prepare another image to display your countdown timer.
-
-#### Pi Day countdown timer
-
-First, create a new image object that you can use to draw the display. Also, set some new font sizes to use for the image:
-
-
-```
- logging.info("Pi Date countdown; press CTRL-C to exit")
- piday_image = Image.new('1', (epd.height, epd.width), 255)
- piday_draw = ImageDraw.Draw(piday_image)
-
- # Set some more fonts
- bangers36 = set_font_size(36)
- bangers64 = set_font_size(64)
-```
-
-To display a ticker like a countdown, it's more efficient to update part of the image, changing the display for only what has changed in the data you want to draw. The next bit of code prepares the display to function this way:
-
-
-```
- # Prep for updating display
- epd.displayPartBaseImage(epd.getbuffer(piday_image))
- epd.init(epd.PART_UPDATE)
-```
-
-Finally, you get to the timer bit, starting an infinite loop that checks how long it is until the next Pi Day and displays the countdown on the ePaper display. If it actually _is_ Pi Day, you can handle that with a little celebration message:
-
-
-```
- while (True):
- days = countdown(datetime.now())
- unit = get_days_unit(days)
-
- # Clear the bottom half of the screen by drawing a rectangle filld with white
- piday_draw.rectangle((0, 50, 250, 122), fill = 255)
-
- # Draw the Header
- piday_draw.text((10,10), "Days till Pi-day:", font = bangers36, fill = 0)
-
- if days == 0:
- # Draw the Pi Day celebration text!
- piday_draw.text((0, 50), f"It's Pi Day!", font = bangers64, fill = 0)
- else:
- # Draw how many days until Pi Day
- piday_draw.text((70, 50), f"{str(days)} {unit}", font = bangers64, fill = 0)
-
- # Render the screen
- epd.displayPartial(epd.getbuffer(piday_image))
- time.sleep(5)
-```
-
-The last bit of the script does some error handling, including some code to catch keyboard interrupts so that you can stop the infinite loop with **Ctrl**+**C** and a small function to print "day" or "days" depending on whether or not the output should be singular (for that one, single day each year when it's appropriate):
-
-
-```
- except IOError as e:
- logging.info(e)
-
- except KeyboardInterrupt:
- logging.info("Exiting...")
- epd.init(epd.FULL_UPDATE)
- epd.Clear(0xFF)
- time.sleep(1)
- epd2in13_V2.epdconfig.module_exit()
- exit()
-
-def get_days_unit(count):
- if count == 1:
- return "day"
-
- return "days"
-
-if __name__ == "__main__":
- main()
-```
-
-And there you have it! A script to count down and display how many days are left until Pi Day! Here's an action shot on my Raspberry Pi (sped up by 86,400; I don't have nearly enough disk space to save a day-long video):
-
-![Pi Day Countdown Timer In Action][16]
-
-(Chris Collins, [CC BY-SA 4.0][15])
-
-#### Install the systemd service (optional)
-
-If you'd like the countdown display to run whenever the system is turned on and without you having to be logged in and run the script, you can install the optional systemd unit as a [systemd user service][17]).
-
-Copy the [piday.service][18] file on GitHub to `${HOME}/.config/systemd/user`, first creating the directory if it doesn't exist. Then you can enable the service and start it:
-
-
-```
-$ mkdir -p ~/.config/systemd/user
-$ cp piday.service ~/.config/systemd/user
-$ systemctl --user enable piday.service
-$ systemctl --user start piday.service
-
-# Enable lingering, to create a user session at boot
-# and allow services to run after logout
-$ loginctl enable-linger $USER
-```
-
-The script will output to the systemd journal, and the output can be viewed with the `journalctl` command.
-
-### It's beginning to look a lot like Pi Day!
-
-And _there_ you have it! A Pi Day countdown timer, displayed on an ePaper display using a Raspberry Pi Zero W, and starting on system boot with a systemd unit file! Now there are just 350-something days until we can once again come together and celebrate the fantastic device that is the Raspberry Pi. And we can see exactly how many days at a glance with our tiny project.
-
-But in truth, anyone can hold Pi Day in their hearts year-round, so enjoy creating some fun and educational projects with your own Raspberry Pi!
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/3/raspberry-pi-countdown-clock
-
-作者:[Chris Collins][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/clcollins
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/clocks_time.png?itok=_ID09GDk (Alarm clocks with different time)
-[2]: https://en.wikipedia.org/wiki/Pi_Day
-[3]: https://opensource.com/tags/raspberry-pi
-[4]: https://www.raspberrypi.org/products/raspberry-pi-zero-w/
-[5]: https://opensource.com/article/21/3/troubleshoot-wifi-go-raspberry-pi
-[6]: https://www.waveshare.com/product/displays/e-paper.htm
-[7]: https://www.raspberrypi.org/software/operating-systems/
-[8]: https://pypi.org/project/Pillow/
-[9]: https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT
-[10]: https://www.waveshare.com/wiki/Libraries_Installation_for_RPi
-[11]: https://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
-[12]: https://github.com/clcollins/epaper-pi-ex/blob/main/countdown.py
-[13]: https://github.com/clcollins/epaper-pi-ex/
-[14]: https://opensource.com/sites/default/files/uploads/pie.png (drawing of a piece of pie)
-[15]: https://creativecommons.org/licenses/by-sa/4.0/
-[16]: https://opensource.com/sites/default/files/uploads/piday_countdown.gif (Pi Day Countdown Timer In Action)
-[17]: https://wiki.archlinux.org/index.php/systemd/User
-[18]: https://github.com/clcollins/epaper-pi-ex/blob/main/piday.service
diff --git a/sources/tech/20210503 Learn the Lisp programming language in 2021.md b/sources/tech/20210503 Learn the Lisp programming language in 2021.md
deleted file mode 100644
index a1de95ead8..0000000000
--- a/sources/tech/20210503 Learn the Lisp programming language in 2021.md
+++ /dev/null
@@ -1,305 +0,0 @@
-[#]: subject: (Learn the Lisp programming language in 2021)
-[#]: via: (https://opensource.com/article/21/5/learn-lisp)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Learn the Lisp programming language in 2021
-======
-A lot of Lisp code lurks inside big codebases, so it's smart to get
-familiar with the language.
-![Woman sitting in front of her laptop][1]
-
-Lisp was invented in 1958, which makes it the second-oldest computer programming language. It has spawned several modern derivatives, including Common Lisp, Emacs Lisp (Elisp), Clojure, Racket, Scheme, Fennel, and GNU Guile.
-
-People who love thinking about the design of programming languages often love Lisp because of how its syntax and data share the same structure: Lisp code is essentially a list of lists, and its name is an acronym for _LISt Processing_. People who love thinking about the aesthetics of programming languages often hate Lisp because of its frequent use of parentheses for scoping; in fact, it's a common joke that Lisp stands for _Lots of Irritating Superfluous Parentheses_.
-
-Whether you love or hate its design philosophies, Lisp is an interesting glimpse at the past and, thanks to Clojure and Guile, into the future. You might be surprised how much Lisp code there is lurking within big codebases in any given industry, so it's a good idea to have at least a passing familiarity with the language.
-
-### Install Lisp
-
-There are many implementations of Lisp. Popular open source versions include [SBCL][2] and [GNU Common Lisp][3] (GCL). You can install either of these with your distribution's package manager.
-
-On Fedora Linux:
-
-
-```
-`$ sudo dnf install gcl`
-```
-
-On Debian:
-
-
-```
-`$ sudo apt install gcl`
-```
-
-For macOS, you can use [MacPorts][4] or [Homebrew][5]:
-
-
-```
-`$ sudo port install gcl`
-```
-
-For Windows, download a binary from [gnu.org/software/gcl][6].
-
-For this article, I'm using GCL and its `clisp` command, but most of the principles apply to any Lisp.
-
-### List processing
-
-The basic unit of Lisp source code is an _expression_, which is written as a list. For instance, this is a list of an operator (`+`) and two integers (`1` and `2`):
-
-
-```
-`(+ 1 2)`
-```
-
-It's also a Lisp expression, using a symbol (`+`) that evaluates to a function (addition) and two arguments (`1` and `2`). You can run this expression and others in an interactive Common Lisp environment called REPL (read-eval-print loop). If you're familiar with Python's IDLE, Lisp's REPL should feel somewhat familiar to you.
-
-To launch a REPL, launch Common Lisp:
-
-
-```
-$ clisp
-[1]>
-```
-
-At the REPL prompt, type a few expressions:
-
-
-```
-[1]> (+ 1 2)
-3
-[2]> (- 1 2)
--1
-[3]> (- 2 1)
-1
-[4]> (+ 2 3 4)
-9
-```
-
-### Functions
-
-Now that you know the basic structure of a Lisp expression, you can utilize Lisp functions in useful ways. The `print` function takes any argument you provide and displays it on your terminal, while the `pprint` function "pretty" prints it. There are other variations on the print function, but `pprint` is nice in REPL:
-
-
-```
-[1]> (pprint "hello world")
-
-"hello world"
-
-[2]>
-```
-
-You can create your own functions with `defun`. The `defun` function requires a name for your function and any parameters you want your function to accept:
-
-
-```
-[1]> (defun myprinter (s) (pprint s))
-MYPRINTER
-[2]> (myprinter "hello world")
-
-"hello world"
-
-[3]>
-```
-
-### Variables
-
-You can create variables in Lisp with `setf`:
-
-
-```
-[1]> (setf foo "hello world")
-"hello world"
-[2]> (pprint foo)
-
-"hello world"
-
-[3]>
-```
-
-You can nest expressions within expressions in a kind of pipeline. For instance, you can pretty print the contents of your variable after invoking the `string-upcase` function to convert its characters to uppercase:
-
-
-```
-[3]> (pprint (string-upcase foo))
-
-"HELLO WORLD"
-
-[4]>
-```
-
-Lisp is dynamically typed in the sense that you don't have to declare variable types when setting them. Lisp treats integers as integers by default:
-
-
-```
-[1]> (setf foo 2)
-[2]> (setf bar 3)
-[3]> (+ foo bar)
-5
-```
-
-If you intend for an integer to be interpreted as a string, you can quote it:
-
-
-```
-[4]> (setf foo "2")
-"2"
-[5]> (setf bar "3")
-"3"
-[6]> (+ foo bar)
-
-*** - +: "2" is not a number
-The following restarts are available:
-USE-VALUE :R1 Input a value to be used instead.
-ABORT :R2 Abort main loop
-Break 1 [7]>
-```
-
-In this sample REPL session, both `foo` and `bar` are set to quoted numbers, so Lisp interprets them as strings. Math operators can't be used on strings, so REPL drops into a debugger mode. To get out of the debugger, press **Ctrl+D** on your keyboard.
-
-You can do some introspection on objects using the `typep` function, which tests for a specific data type. The tokens `T` and `NIL` represent _True_ and _False_, respectively.
-
-
-```
-[4]> (typep foo 'string)
-NIL
-[5]> (typep foo 'integer)
-T
-```
-
-The single quote (`'`) before `string` and `integer` prevents Lisp from (incorrectly) evaluating those keywords as variables:
-
-
-```
-[6]> (typep foo string)
-*** - SYSTEM::READ-EVAL-PRINT: variable STRING has no value
-[...]
-```
-
-It's a shorthand way to protect the terms, normally done with the `quote` function:
-
-
-```
-[7]> (typep foo (quote string))
-NIL
-[5]> (typep foo (quote integer))
-T
-```
-
-### Lists
-
-Unsurprisingly, you can also create lists in Lisp:
-
-
-```
-[1]> (setf foo (list "hello" "world"))
-("hello" "world")
-```
-
-Lists can be indexed with the `nth` function:
-
-
-```
-[2]> (nth 0 foo)
-"hello"
-[3]> (pprint (string-capitalize (nth 1 foo)))
-
-"World"
-```
-
-### Exiting REPL
-
-To end a REPL session, press **Ctrl+D** on your keyboard, or use the `quit` keyword in Lisp:
-
-
-```
-[99]> (quit)
-$
-```
-
-### Scripting
-
-Lisp can be compiled or used as an interpreted scripting language. The latter is probably the easiest option when you're starting, especially if you're already familiar with Python or [shell scripting][7].
-
-Here's a simple dice roller script written in GNU Common Lisp:
-
-
-```
-#!/usr/bin/clisp
-
-(defun roller (num)
- (pprint (random (parse-integer (nth 0 num))))
-)
-
-(setf userput *args*)
-(setf *random-state* (make-random-state t))
-(roller userput)
-```
-
-The first line tells your [POSIX][8] terminal what executable to use to run the script.
-
-The `roller` function, created with `defun`, uses the `random` function to print a pseudo-random number up to, and not including, the zeroth item of the `num` list. The `num` list hasn't been created yet in the script, but the function doesn't get executed until it's called.
-
-The next line assigns any argument provided to the script at launch time to a variable called `userput`. The `userput` variable is a list, and it's what becomes `num` once it's passed to the `roller` function.
-
-The penultimate line of the script starts a _random seed_. This provides Lisp with enough entropy to generate a mostly random number.
-
-The final line invokes the custom `roller` function, providing the `userput` list as its sole argument.
-
-Save the file as `dice.lisp` and mark it executable:
-
-
-```
-`$ chmod +x dice.lisp`
-```
-
-Finally, try running it, providing it with a maximum number from which to choose its random number:
-
-
-```
-$ ./dice.lisp 21
-
-13
-$ ./dice.lisp 21
-
-7
-$ ./dice.lisp 21
-
-20
-```
-
-Not bad!
-
-### Learn Lisp
-
-Whether you can imagine using Lisp as a utilitarian language for personal scripts, to advance your career, or just as a fun experiment, you can see some particularly inventive uses at the annual [Lisp Game Jam][9] (most submissions are open source, so you can view the code to learn from what you play).
-
-Lisp is a fun and unique language with an ever-growing developer base and enough historic and emerging dialects to keep programmers from all disciplines happy.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/5/learn-lisp
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_4.png?itok=VGZO8CxT (Woman sitting in front of her laptop)
-[2]: http://sbcl.org
-[3]: https://www.gnu.org/software/gcl/
-[4]: https://opensource.com/article/20/11/macports
-[5]: https://opensource.com/article/20/6/homebrew-linux
-[6]: http://mirror.lagoon.nc/gnu/gcl/binaries/stable
-[7]: https://opensource.com/article/20/4/bash-programming-guide
-[8]: https://opensource.com/article/19/7/what-posix-richard-stallman-explains
-[9]: https://itch.io/jam/spring-lisp-game-jam-2021
diff --git a/sources/tech/20210722 Write your first JavaScript code.md b/sources/tech/20210722 Write your first JavaScript code.md
deleted file mode 100644
index d02ca214cd..0000000000
--- a/sources/tech/20210722 Write your first JavaScript code.md
+++ /dev/null
@@ -1,204 +0,0 @@
-[#]: subject: (Write your first JavaScript code)
-[#]: via: (https://opensource.com/article/21/7/javascript-cheat-sheet)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Write your first JavaScript code
-======
-JavaScript was created for the web, but it can do so much more. Learn
-the basics, then download our cheat sheet so you always have the details
-at hand.
-![Code with javascript on white background][1]
-
-JavaScript is a programming language full of pleasant surprises. Many people first encounter JavaScript as a language for the web. There's a JavaScript engine in all the major browsers, there are popular frameworks such as JQuery, Cash, and Bootstrap to help make web design easier, and there are even programming environments written in JavaScript. It seems to be everywhere on the internet, but it turns out that it's also a useful language for projects like [Electron][2], an open source toolkit for building cross-platform desktop apps with JavaScript.
-
-JavaScript is a surprisingly multipurpose language with a wide assortment of libraries for much more than just making websites. Learning the basics of the language is easy, and it's a gateway to building whatever you imagine.
-
-### Install JavaScript
-
-As you progress with JavaScript, you may find yourself wanting advanced JavaScript libraries and runtimes. When you're just starting, though, you don't have to install JavaScript at all. All major web browsers include a JavaScript engine to run the code. You can write JavaScript using your favorite text editor, load it into your web browser, and see what your code does.
-
-### Get started with JavaScript
-
-To write your first JavaScript code, open your favorite text editor, such as [Notepad++][3], [Atom][4], or [VSCode][5]. Because it was developed for the web, JavaScript works well with HTML, so first, just try some basic HTML:
-
-
-```
-<[html][6]>
- <[head][7]>
- <[title][8]>JS</[title][8]>
- </[head][7]>
- <[body][9]>
- <[p][10] id="example">Nothing here.</[p][10]>
- </[body][9]>
-</[html][6]>
-```
-
-Save the file, and then open it in a web browser.
-
-![HTML displayed in browser][11]
-
-(Seth Kenlon, [CC BY-SA 4.0][12])
-
-To add JavaScript to this simple HTML page, you can either create a JavaScript file and refer to it in the page's `head` or just embed your JavaScript code in the HTML using the `
+
+