diff --git a/published/20211203 Introduce the different Fedora Linux editions.md b/published/20211203 Introduce the different Fedora Linux editions.md
new file mode 100644
index 0000000000..fcd24a192f
--- /dev/null
+++ b/published/20211203 Introduce the different Fedora Linux editions.md
@@ -0,0 +1,91 @@
+[#]: subject: "Introduce the different Fedora Linux editions"
+[#]: via: "https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/"
+[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15003-1.html"
+
+Fedora Linux 的各种版本
+======
+
+![Introduce the differenct Fedora Linux editions][1]
+
+我们在使用 Fedora Linux 时有不同的偏好。例如,有些人选择 Fedora Linux,是因为 Fedora Workstation 默认使用 GNOME 作为其桌面环境。但也有一些人想使用 Fedora Linux 但想使用不同的桌面环境。或者也有一些人使用 Fedora Linux 有特定的需求,但不想被系统配置和应用安装所困扰。甚至有些人想根据自己的需要自由安装 Fedora Linux。因此 Fedora Linux 根据你的需要提供了多个版本。本文将介绍不同的 Fedora Linux 版本。
+
+### Fedora 官方版本
+
+我们从 Fedora Linux 的 官方版本 开始,即 Fedora Workstation、Fedora Server 和 Fedora IoT。 Fedora Workstation 是 Fedora Linux 的官方版本,可以安装在笔记本电脑和台式电脑上。此版本附带 GNOME 作为默认桌面环境和各种标准应用,因此 Fedora Linux 已为日常使用做好准备。而 Fedora Server 专门用于服务器用途,提供邮件服务器、DNS 等的安装。最后一个是 Fedora IoT,用于物联网和边缘设备生态系统。
+
+在 Fedora 项目网站主页上,你可以找到另外两个版本:Fedora CoreOS 和 Fedora Silverblue。Fedora CoreOS 是一个自动更新的操作系统,旨在安全、大规模地运行容器化工作负载。而 Fedora Silverblue 是一个不可变的桌面操作系统,旨在支持以容器为中心的工作流。
+
+![Introduce the different Fedora Linux editions: Fedora Workstation][4]
+
+更多信息可在此链接获得:
+
+> **[https://getfedora.org/][5]**
+
+### Fedora 定制版:可选桌面
+
+Fedora 定制版 很受那些非常在意桌面外观的人的欢迎。大多数人都知道 Fedora Linux 只有 GNOME 作为默认桌面环境。即使你真的想使用 GNOME 以外的桌面环境,也有几个替代桌面选项。使用 Fedora 定制版,你可以在安装 Fedora Linux 时立即获得你最喜欢的桌面环境。你可以从 KDE Plasma、XFCE、LXQt、MATE、Cinnamon、LXDE 和 SoaS 中进行选择。此外,对于喜欢平铺窗口管理器的人,Fedora Linux 还提供了 Fedora i3 定制版,其中 i3 作为默认窗口管理器,并附带了几个标准应用。
+
+![Introduce the different Fedora Linux editions: Fedora Plasma][6]
+
+![Introduce the different Fedora Linux editions: Fedora Cinnamon][7]
+
+更多信息可在此链接获得:
+
+> **[https://spins.fedoraproject.org/][8]**
+
+### Fedora 实验室:功能包
+
+Fedora 实验室 是根据特定需求打包的 Fedora Linux 软件包集合。因此,这些版本的安装包都根据其功能提供了应用和必要的内容。Fedora 实验室提供多种软件包选择,例如天文学、计算神经学、设计套件、游戏、JAM、Python 教室、安全实验室、机器人套件 和 科学。如果你想使用 Fedora Linux 进行设计工作,那么设计套件是你的正确选择。但是如果你喜欢玩游戏,你可以选择游戏版。
+
+![Introduce the different Fedora Linux editions: Fedora Design Suite][9]
+
+![Introduce the different Fedora Linux editions: Fedora Games][10]
+
+更多信息可在此链接获得:
+
+> **[https://labs.fedoraproject.org/][11]**
+
+### Fedora 的其它下载
+
+Fedora 的其它下载 集合了特定目的的可选 Fedora Linux 安装程序,例如用于测试或用于特定架构。还有其他可选格式,例如网络安装程序或种子下载等格式。在这里你可以找到网络安装程序、种子下载、可选架构、云基础镜像、所有内容、测试镜像 和 Rawhide。
+
+更多信息可在此链接获得:
+
+> **[https://alt.fedoraproject.org/][12]**
+
+### 总结
+
+你可以自由选择适合你偏好的 Fedora Linux 版本,而不是官方版本。但是,如果你想获得具有各种桌面外观的 Fedora Linux,那么 Fedora 定制版适合你。如果你希望 Fedora Linux 根据你的需要包含应用和软件包,你可以选择 Fedora 实验室。但是,如果你是专家并且想要更自由地安装 Fedora Linux,你可以在 Fedora 其它下载处浏览替代选项。希望本文可以帮助你选择合适的 Fedora Linux,并请在评论中分享你使用 Fedora Linux 的经验。
+
+(题图由 [Frédéric Perez][2] 发布在 [Unsplash][3])
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/
+
+作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/
+[b]: https://github.com/lkxed
+[1]: https://fedoramagazine.org/wp-content/uploads/2021/11/FedoraMagz-FedoraEditions-Intro-816x345.png
+[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[4]: https://fedoramagazine.org/wp-content/uploads/2021/11/g-monitor-overview.png
+[5]: https://getfedora.org/
+[6]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-kde-1024x640.jpg
+[7]: https://fedoramagazine.org/wp-content/uploads/2021/11/screenshot-cinnamon-1024x576.jpg
+[8]: https://spins.fedoraproject.org/
+[9]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Design-1024x792.png
+[10]: https://fedoramagazine.org/wp-content/uploads/2021/11/Fedora-Games-1024x792.png
+[11]: https://labs.fedoraproject.org/
+[12]: https://alt.fedoraproject.org/
diff --git a/published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md b/published/202208/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md
similarity index 100%
rename from published/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md
rename to published/202208/20191106 How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom.md
diff --git a/published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md b/published/202208/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md
similarity index 100%
rename from published/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md
rename to published/202208/20210809 What is Firefox Multi-Account Containers- Why and How to Use It.md
diff --git a/published/20210823 Write a chess game using bit-fields and masks.md b/published/202208/20210823 Write a chess game using bit-fields and masks.md
similarity index 100%
rename from published/20210823 Write a chess game using bit-fields and masks.md
rename to published/202208/20210823 Write a chess game using bit-fields and masks.md
diff --git a/published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md b/published/202208/20210910 MAKE MORE with Inkscape - Ink-Stitch.md
similarity index 100%
rename from published/20210910 MAKE MORE with Inkscape - Ink-Stitch.md
rename to published/202208/20210910 MAKE MORE with Inkscape - Ink-Stitch.md
diff --git a/published/20210921 3 ways to test your API with Python.md b/published/202208/20210921 3 ways to test your API with Python.md
similarity index 100%
rename from published/20210921 3 ways to test your API with Python.md
rename to published/202208/20210921 3 ways to test your API with Python.md
diff --git a/published/20211109 relaying mail to multiple smarthosts with opensmtpd.md b/published/202208/20211109 relaying mail to multiple smarthosts with opensmtpd.md
similarity index 100%
rename from published/20211109 relaying mail to multiple smarthosts with opensmtpd.md
rename to published/202208/20211109 relaying mail to multiple smarthosts with opensmtpd.md
diff --git a/published/20211115 Linux tips for using cron to schedule tasks.md b/published/202208/20211115 Linux tips for using cron to schedule tasks.md
similarity index 100%
rename from published/20211115 Linux tips for using cron to schedule tasks.md
rename to published/202208/20211115 Linux tips for using cron to schedule tasks.md
diff --git a/published/20211122 7 key components of observability in Python.md b/published/202208/20211122 7 key components of observability in Python.md
similarity index 100%
rename from published/20211122 7 key components of observability in Python.md
rename to published/202208/20211122 7 key components of observability in Python.md
diff --git a/published/20220602 The only Linux command you need to know.md b/published/202208/20220602 The only Linux command you need to know.md
similarity index 100%
rename from published/20220602 The only Linux command you need to know.md
rename to published/202208/20220602 The only Linux command you need to know.md
diff --git a/published/20220626 An open source project that opens the internet for all.md b/published/202208/20220626 An open source project that opens the internet for all.md
similarity index 100%
rename from published/20220626 An open source project that opens the internet for all.md
rename to published/202208/20220626 An open source project that opens the internet for all.md
diff --git a/published/20220716 Does an Ethernet splitter slow down speed-.md b/published/202208/20220716 Does an Ethernet splitter slow down speed-.md
similarity index 100%
rename from published/20220716 Does an Ethernet splitter slow down speed-.md
rename to published/202208/20220716 Does an Ethernet splitter slow down speed-.md
diff --git a/published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md b/published/202208/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md
similarity index 100%
rename from published/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md
rename to published/202208/20220716 How to Clean Up Snap Versions to Free Up Disk Space.md
diff --git a/published/20220718 AppFlowy- An Open-Source Alternative to Notion.md b/published/202208/20220718 AppFlowy- An Open-Source Alternative to Notion.md
similarity index 100%
rename from published/20220718 AppFlowy- An Open-Source Alternative to Notion.md
rename to published/202208/20220718 AppFlowy- An Open-Source Alternative to Notion.md
diff --git a/published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md b/published/202208/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md
similarity index 100%
rename from published/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md
rename to published/202208/20220718 How to Install Rocky Linux 9 Step by Step with Screenshots.md
diff --git a/published/20220719 How to Uninstall Deb Packages in Ubuntu.md b/published/202208/20220719 How to Uninstall Deb Packages in Ubuntu.md
similarity index 100%
rename from published/20220719 How to Uninstall Deb Packages in Ubuntu.md
rename to published/202208/20220719 How to Uninstall Deb Packages in Ubuntu.md
diff --git a/published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md b/published/202208/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md
similarity index 100%
rename from published/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md
rename to published/202208/20220719 Top 10 Features of Linux Mint 21 -Vanessa-.md
diff --git a/published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md b/published/202208/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md
similarity index 100%
rename from published/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md
rename to published/202208/20220720 Update a Single Package With apt Command in Ubuntu and Debian.md
diff --git a/published/20220721 How I use the Linux fmt command to format text.md b/published/202208/20220721 How I use the Linux fmt command to format text.md
similarity index 100%
rename from published/20220721 How I use the Linux fmt command to format text.md
rename to published/202208/20220721 How I use the Linux fmt command to format text.md
diff --git a/published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md b/published/202208/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md
similarity index 100%
rename from published/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md
rename to published/202208/20220722 Fixing the -Pending Update of Firefox snap- Error in Ubuntu.md
diff --git a/published/20220725 How to use LibreOffice Writer templates.md b/published/202208/20220725 How to use LibreOffice Writer templates.md
similarity index 100%
rename from published/20220725 How to use LibreOffice Writer templates.md
rename to published/202208/20220725 How to use LibreOffice Writer templates.md
diff --git a/published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md b/published/202208/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md
similarity index 100%
rename from published/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md
rename to published/202208/20220725 Koodo is an All-in-one Open Source eBook Reader App for Linux.md
diff --git a/translated/tech/20220726 How I use Bash to automate tasks on Linux.md b/published/202208/20220726 How I use Bash to automate tasks on Linux.md
similarity index 63%
rename from translated/tech/20220726 How I use Bash to automate tasks on Linux.md
rename to published/202208/20220726 How I use Bash to automate tasks on Linux.md
index 467ecffdf1..a7b96162bc 100644
--- a/translated/tech/20220726 How I use Bash to automate tasks on Linux.md
+++ b/published/202208/20220726 How I use Bash to automate tasks on Linux.md
@@ -3,35 +3,34 @@
[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
[#]: collector: "lkxed"
[#]: translator: "Donkey-Hao"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14983-1.html"
如何在 Linux 上使用 Bash 自动化任务
======
-Bash 有一些方便的自动化功能,可以让我在 Linux 上处理文件时更轻松。
-![bash logo on green background][1]
+
-图源:Opensource.com
+> Bash 有一些方便的自动化功能,可以让我在 Linux 上处理文件时更轻松。
-通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux,进行管理日志文件还是其他文件,或者你在个人电脑上整理文件,使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更简单。
+通过 Bash 命令行进行自动化任务是极好的一种方式。不论你使用运行在服务器上的 Linux 进行管理日志文件或其他文件,还是你在个人电脑上整理文件以使桌面保持整洁,使用 Bash 的自动化功能会使你的工作变得更轻松。
-### Linux `for` 命令:自动执行文件任务
+### 自动执行文件任务:for
如果你对一堆文件要同时处理,并且对每个文件进行相同的操作,请使用 `for` 命令。该命令会遍历文件列表,并执行一个或多个命令。`for` 命令如下所示:
```
-for variable in list
+for 变量 in 列表
do
- commands
+ 命令
done
```
-我在示例中添加了额外的空格,来分开 `for` 命令中不同的部分。多个命令可能无法在命令行中同时运行,不过你可以使用 `;` 将所有命令放在同一行中,就像这样:
+我在示例中添加了额外的空白和换行,来分开 `for` 命令中不同的部分。看起来好像无法在命令行中同时运行多个命令,不过你可以使用 `;` 将所有命令放在同一行中,就像这样:
```
-for variable in list ; do commands ; done
+for 变量 in 列表 ; do 命令 ; done
```
让我们看看它的实际效果。我使用 `for` 命令来重命名一些文件。最近,我有一些截图,想要重命名。这些截图名称为 `filemgr.png` 或 `terminal.png`,我想将 `screenshot` 放在每个名称前。我可以使用 `for` 命令一次性将 30 个文件重命名。这是两个文件的示例:
@@ -44,54 +43,54 @@ $ ls
screenshot-filemgr.png screenshot-terminal.png
```
-`for` 命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量,比如 `image` 或 `screenshot`,或者你用示例中“缩写的”变量 `f`。当我在使用 `for` 循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用 `for`,我通常会选择缩写变量名,比如 `f` 代表文件,`d` 代表目录等。
+`for` 命令使得在一系列文件中执行一种或多种操作变得容易。你可以用一些有意义的变量名,比如 `image` 或 `screenshot`,或者你用示例中“缩写的”变量 `f`。当我在使用 `for` 循环写脚本的时候,会选择有意义的变量名。但是当我在命令行中使用 `for`,我通常会选择缩写变量名,比如 `f` 代表文件,`d` 代表目录等。
不论你选择怎样的变量名,请确保在引用变量时添加 `$` 符号。这会将变量扩展为你正在处理的文件的名称。在 Bash 提示符下键入 `help for` 以了解有关 `for` 命令的更多信息。
-### Linux `if` 条件执行
+### 按条件执行:if
当你需要对每个文件执行相同操作时,使用 `for` 循环遍历一些文件很有帮助。但是,如果你需要对某些文件做一些不同的事情怎么办?为此,你需要使用 `if` 语句进行条件执行。`if` 语句如下所示:
```
-if test
+if 测试
then
- commands
+ 命令
fi
```
-你也可以使用 `if/else` 语句进行判断:
+你也可以使用 `if`、`else` 语句进行判断:
```
-if test
+if 测试
then
- commands
+ 命令
else
- commands
+ 命令
fi
```
-你可以使用 `if/else-if/else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用:
+你可以使用 `if`、`elif`、` else` 语句来实现更复杂的程序。当我一次性需要自动处理很多文件时,我会在脚本中使用:
```
-if test
+if 测试1
then
- commands
-elif test2
+ 命令
+elif 测试2
then
- commands
-elif test3
+ 命令
+elif 测试3
then
- commands
+ 命令
else
- commands
+ 命令
fi
```
-`if` 命令可以让你进行不同的判断,例如判断一个文件是否是一个文件,或者一个文件是否为空文件(零字节)。在命令行中输入 `help test`,可以立即查看使用 `if` 语句能够进行的不同种测试。
+`if` 命令可以让你进行各种判断,例如判断一个文件是否是一个文件,或者一个文件是否为空文件(零字节)。在命令行中输入 `help test`,可以立即查看使用 `if` 语句能够进行的各种测试。
-例如,假设我想清理一个包含几十个文件的日志目录。日志管理中的一个常见任务是删除所有空日志,并压缩其他日志。解决这个问题的最简单方法是删除空文件。没有一个 `if` 测试可以完全匹配,但是我们有 `-s` 选项来判断是否是一个文件,并且判断该文件不是空的(大小不为零)。这与我们想要的相反,但我们可以使用 `!` 来否定测试,以判断某些内容不是文件或为空。
+例如,假设我想清理一个包含几十个文件的日志目录。日志管理中的一个常见任务是删除所有空日志文件,并压缩其他日志。解决这个问题的最简单方法是删除空文件。没有可以完全匹配的 `if` 测试,但是我们有 `-s` 选项来判断是否是一个文件,并且判断该文件不是空的(大小不为零)。这与我们想要的相反,但我们可以使用 `!` 来否定测试,以判断某些内容不是文件或为空。
-让我们用一个示例来看看这个过程。我创建了两个测试文件:一个是空的,另一个包含一些数据。我们可以使用 `if` 判断,*如果*文件为空打印消息 “empty”:
+让我们用一个示例来看看这个过程。我创建了两个测试文件:一个是空的,另一个包含一些数据。我们可以使用 `if` 判断,*如果*文件为空打印消息 `empty`:
```
$ ls
@@ -134,7 +133,7 @@ via: https://opensource.com/article/22/7/use-bash-automate-tasks-linux
作者:[Jim Hall][a]
选题:[lkxed][b]
译者:[Donkey-Hao](https://github.com/Donkey-Hao)
-校对:[校对者ID](https://github.com/校对者ID)
+校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
diff --git a/published/20220726 How To Change GRUB Theme In Linux.md b/published/202208/20220726 How To Change GRUB Theme In Linux.md
similarity index 100%
rename from published/20220726 How To Change GRUB Theme In Linux.md
rename to published/202208/20220726 How To Change GRUB Theme In Linux.md
diff --git a/published/20220727 How I manage files from the Linux command line.md b/published/202208/20220727 How I manage files from the Linux command line.md
similarity index 100%
rename from published/20220727 How I manage files from the Linux command line.md
rename to published/202208/20220727 How I manage files from the Linux command line.md
diff --git a/published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md b/published/202208/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md
similarity index 100%
rename from published/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md
rename to published/202208/20220727 How To Automatically Update Running Docker Containers Using Watchtower.md
diff --git a/published/20220728 How To Build Custom Docker Image Using Dockerfile.md b/published/202208/20220728 How To Build Custom Docker Image Using Dockerfile.md
similarity index 100%
rename from published/20220728 How To Build Custom Docker Image Using Dockerfile.md
rename to published/202208/20220728 How To Build Custom Docker Image Using Dockerfile.md
diff --git a/published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md b/published/202208/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md
similarity index 100%
rename from published/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md
rename to published/202208/20220730 How to Install Latest Vim 9.0 on Ubuntu Based Linux Distributions.md
diff --git a/published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md b/published/202208/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md
similarity index 100%
rename from published/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md
rename to published/202208/20220731 The Much Awaited Linux Mint 21 is Released and Available to Download.md
diff --git a/published/20220801 AI, ML and DL- What-s the Difference-.md b/published/202208/20220801 AI, ML and DL- What-s the Difference-.md
similarity index 100%
rename from published/20220801 AI, ML and DL- What-s the Difference-.md
rename to published/202208/20220801 AI, ML and DL- What-s the Difference-.md
diff --git a/published/20220801 Padloc- An Intuitive Open-Source Password Manager.md b/published/202208/20220801 Padloc- An Intuitive Open-Source Password Manager.md
similarity index 100%
rename from published/20220801 Padloc- An Intuitive Open-Source Password Manager.md
rename to published/202208/20220801 Padloc- An Intuitive Open-Source Password Manager.md
diff --git a/published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md b/published/202208/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md
similarity index 100%
rename from published/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md
rename to published/202208/20220801 What Made Fedora Choose To Use CC0 Licensed Code As The Boot.md
diff --git a/published/20220802 How I use the Linux sed command to automate file edits.md b/published/202208/20220802 How I use the Linux sed command to automate file edits.md
similarity index 100%
rename from published/20220802 How I use the Linux sed command to automate file edits.md
rename to published/202208/20220802 How I use the Linux sed command to automate file edits.md
diff --git a/published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md b/published/202208/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md
similarity index 100%
rename from published/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md
rename to published/202208/20220802 Secure Boot Disabled- GNOME Will Soon Warn You About it.md
diff --git a/published/20220804 3 ways to take screenshots on Linux.md b/published/202208/20220804 3 ways to take screenshots on Linux.md
similarity index 100%
rename from published/20220804 3 ways to take screenshots on Linux.md
rename to published/202208/20220804 3 ways to take screenshots on Linux.md
diff --git a/published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md b/published/202208/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md
similarity index 100%
rename from published/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md
rename to published/202208/20220804 Install Spotify on Manjaro and Other Arch Linux Based Distros.md
diff --git a/published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md b/published/202208/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md
similarity index 100%
rename from published/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md
rename to published/202208/20220804 Peppermint OS Now Also Offers a Systemd-free Devuan Variant!.md
diff --git a/published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md b/published/202208/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md
similarity index 100%
rename from published/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md
rename to published/202208/20220804 Slax Linux Re-Introduces a Slackware Variant With Slax 15 Release.md
diff --git a/published/20220805 Delete the local reference to a remote branch in Git.md b/published/202208/20220805 Delete the local reference to a remote branch in Git.md
similarity index 100%
rename from published/20220805 Delete the local reference to a remote branch in Git.md
rename to published/202208/20220805 Delete the local reference to a remote branch in Git.md
diff --git a/published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md b/published/202208/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md
similarity index 100%
rename from published/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md
rename to published/202208/20220807 How to Upgrade to Linux Mint 21 [Step by Step Tutorial].md
diff --git a/published/20220807 List Files and Directories in Style Using lsd and exa.md b/published/202208/20220807 List Files and Directories in Style Using lsd and exa.md
similarity index 100%
rename from published/20220807 List Files and Directories in Style Using lsd and exa.md
rename to published/202208/20220807 List Files and Directories in Style Using lsd and exa.md
diff --git a/published/20220808 Fix file permission errors on Linux.md b/published/202208/20220808 Fix file permission errors on Linux.md
similarity index 100%
rename from published/20220808 Fix file permission errors on Linux.md
rename to published/202208/20220808 Fix file permission errors on Linux.md
diff --git a/published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md b/published/202208/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md
similarity index 100%
rename from published/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md
rename to published/202208/20220808 Sunamu- Display Lyrics for Currently Playing Music on the Desktop in Linux.md
diff --git a/published/20220809 7 Best Distributions Based on Fedora Linux.md b/published/202208/20220809 7 Best Distributions Based on Fedora Linux.md
similarity index 100%
rename from published/20220809 7 Best Distributions Based on Fedora Linux.md
rename to published/202208/20220809 7 Best Distributions Based on Fedora Linux.md
diff --git a/published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md b/published/202208/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md
similarity index 100%
rename from published/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md
rename to published/202208/20220809 Github Takes Action To Prevent Supply Chain Attacks On Open Source.md
diff --git a/published/20220810 Create beautiful PDFs in LaTeX.md b/published/202208/20220810 Create beautiful PDFs in LaTeX.md
similarity index 100%
rename from published/20220810 Create beautiful PDFs in LaTeX.md
rename to published/202208/20220810 Create beautiful PDFs in LaTeX.md
diff --git a/published/20220810 Cutefish OS Development Restarts with A Revised Vision.md b/published/202208/20220810 Cutefish OS Development Restarts with A Revised Vision.md
similarity index 100%
rename from published/20220810 Cutefish OS Development Restarts with A Revised Vision.md
rename to published/202208/20220810 Cutefish OS Development Restarts with A Revised Vision.md
diff --git a/published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md b/published/202208/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md
similarity index 100%
rename from published/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md
rename to published/202208/20220810 Kali Linux 2022.3 Introduces a Test Lab Environment and New VirtualBox Image.md
diff --git a/published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md b/published/202208/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md
similarity index 100%
rename from published/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md
rename to published/202208/20220814 Create Your Own Custom Light and Dark Wallpaper for GNOME.md
diff --git a/published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md b/published/202208/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md
similarity index 100%
rename from published/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md
rename to published/202208/20220814 How to Monitor Log Files in Real Time in Linux [Desktop and Server].md
diff --git a/published/20220816 A look inside an EPUB file.md b/published/202208/20220816 A look inside an EPUB file.md
similarity index 100%
rename from published/20220816 A look inside an EPUB file.md
rename to published/202208/20220816 A look inside an EPUB file.md
diff --git a/published/202208/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/published/202208/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md
new file mode 100644
index 0000000000..a2033dd727
--- /dev/null
+++ b/published/202208/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md
@@ -0,0 +1,135 @@
+[#]: subject: "Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown"
+[#]: via: "https://itsfoss.com/marktext-editor/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: "Chth0lly"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14986-1.html"
+
+即使对那些不知道 Markdown 的人来说,Marktext 也是一个绝佳的编辑器
+======
+
+
+
+又一个 Markdown 编辑器?我们见的 Markdown 编辑器还少吗?
+
+我明白你的感受,如果你是个 Markdown 爱好者,你可能已经用过很多 Markdown 编辑器了,比如 [Joplin][1] 和 [Zettlr][2]。但如果你不是的话,你可能根本就不在乎。
+
+Markdown 是一个非常好的标记语言,特别是对那些在网络上写作的人来说。我不想在这里讲太多细节,但如果你有兴趣的话,我们有一篇 [非常棒的 Markdown 初学者教程][3]。
+
+这次我想推荐给你(另一个)Markdown 编辑器,它叫 [Marktext][4],并且它是用 Electron 制作的(我们都明白这什么意思,先别急着埋怨我)。
+
+我发现这将是一个很完美的编辑器。它很漂亮,而它运行起来也一样棒。下面是我这几天来的使用体验。
+
+### Marktext: 人人可用的 Markdown 编辑器
+
+尽管我很讨厌 [Electron 框架][5],但不得不承认基于 Electron 的应用都有一个干净、现代的界面。
+
+![Marktext interface][6]
+
+我更喜欢深色模式主题,除此之外官方还提供了五种其它主题。
+
+![Marktext dark theme][7]
+
+打开软件你就可以立刻进行写作,如果你不记得某个语法了,那也没有问题,输入 `@` 就可以得到语法提示,如:
+
+* 标题
+* 分隔线
+* 表格
+* Latex 数学公式
+* HTML 块
+* 代码块
+* 引用
+* 列表
+* 检查清单
+* 用 Vega-lite.js、Flowchart.js、js-sequence-diagrams 和 PlantUML 制作的图表
+
+![Use various document elements in the editor by pressing @][8]
+
+选中文本你会得到一个格式选项框,来改变文本为粗体、斜体、下划线、删除线等。你也可以用黄色背景高亮文本、转换为内联代码、内联公式或插入超链接。
+
+![Text formatting options][9]
+
+Marktext 也支持图片。我们都知道图片不是 Markdown 文件的一部分,它们是外部元素,但是你可以选择将图片保存到 .md 文件所在的目录下。
+
+![Images are supported too][10]
+
+通过插入菜单来添加图片非常容易。你可以选择文本并且从弹出的格式选项中选择图片来添加,或使用 `Ctrl+Shift+I` 快捷键。但是不能为图片添加替换文本或图片说明,这点确实需要改进。
+
+我喜欢 Marktext 的表格功能。你可以直接插入预先定义好大小的图表。如有需要,还可以很容易的改变大小。你可以只用鼠标移动列和行,而不用担心底层的代码。
+
+![Tables are very well supported in Marktext][11]
+
+你可以启用侧边栏视图。侧边栏有三个功能:你可以打开包含多个 Markdown 文件的文件夹,在打开的文件夹中的所有文件上执行全局搜索,并显示当前打开的文件的大纲目录。大纲目录是根据子标题自动生成的。
+
+![Sidebar view has three options: Show folder content, global search and table of content][12]
+
+底部的齿轮按钮是设置功能。你可以改变主题、改变图片设置、视图、开启自动保存等等。
+
+![Configuration and settings][13]
+
+### 如何安装 Marktext
+
+Marktext 是一个跨平台的开源应用程序。所以不止在 Linux 上,你还可以在 Windows 和 macOS 安装。
+
+在 Linux 上,你可以选择 AppImage 软件包或 Flatpak 软件包。从 [这里][14] 可以得到 Marktext 的 Appimage 软件包。
+
+我选择了 Flatpak 版本,因为这样可以获得更好的系统集成。它运行良好,Marktext 自动成为我的 Ubuntu 22.04 系统上 .md 文件的默认编辑器。
+
+请确保你启用了 Flatpak 支持,之后用以下方法添加上 Flathub 仓库:
+
+```
+flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+```
+
+在这之后,用以下命令安装 Marktext 到你的系统上:
+
+```
+flatpak install flathub com.github.marktext.marktext
+```
+
+如果用了一段时间后你不喜欢 Marktext,可以用以下命令卸载:
+
+```
+fkatpak uninstall com.github.marktext.marktext
+```
+
+### 总结
+
+Marktext 有很多小功能,例如字数统计、Latex 数学公式、拼写检查器、复制粘贴为 Markdown/HTML 格式,我留给你们自己去尝试。
+
+实话实说,尽管多年来一直使用 Markdown 来写文章,但我也总会忘掉一些语法。我能记得常见的标题、列表、代码块等,但如果我必须创建一个表格,我不得不在网上搜索。
+
+我已经 [尝试了许多 Markdown 编辑器][15],这其中确实有很多不错的。但是,我还是喜欢用 Marktext,它会在我的系统上存在很长时间。
+
+如果你已经用过了话,请在评论区分享你的经验。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/marktext-editor/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[Chth0lly](https://github.com/Chth0lly)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/joplin/
+[2]: https://itsfoss.com/zettlr-markdown-editor/
+[3]: https://itsfoss.com/markdown-guide/
+[4]: https://github.com/marktext/marktext/
+[5]: https://www.electronjs.org/
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-interface.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-dark-theme.png
+[8]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-insert-options.png
+[9]: https://itsfoss.com/wp-content/uploads/2022/08/text-formatting-options-marktext.png
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/images-in-marktext.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/08/tables-in-marktext.png
+[12]: https://itsfoss.com/wp-content/uploads/2022/08/sidebar-view-marktext.png
+[13]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-settings.png
+[14]: https://github.com/marktext/marktext/releases
+[15]: https://itsfoss.com/best-markdown-editors-linux/
diff --git a/published/20220816 My practical advice for new programmers.md b/published/202208/20220816 My practical advice for new programmers.md
similarity index 100%
rename from published/20220816 My practical advice for new programmers.md
rename to published/202208/20220816 My practical advice for new programmers.md
diff --git a/published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md b/published/202208/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md
similarity index 100%
rename from published/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md
rename to published/202208/20220817 Deepin 23 is Introducing a New Package Format and Repository, Sounds Interesting!.md
diff --git a/published/20220817 Desktop Linux Market Share- August 2022.md b/published/202208/20220817 Desktop Linux Market Share- August 2022.md
similarity index 100%
rename from published/20220817 Desktop Linux Market Share- August 2022.md
rename to published/202208/20220817 Desktop Linux Market Share- August 2022.md
diff --git a/published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md b/published/202208/20220818 Convert Docker Run Commands Into Docker-Compose Files.md
similarity index 100%
rename from published/20220818 Convert Docker Run Commands Into Docker-Compose Files.md
rename to published/202208/20220818 Convert Docker Run Commands Into Docker-Compose Files.md
diff --git a/published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md b/published/202208/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md
similarity index 100%
rename from published/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md
rename to published/202208/20220818 Google Surpasses Microsoft In Terms Of Open Source Contributors, Says A Study.md
diff --git a/published/20220822 3 NES Emulators to Play Old NES Games on Linux.md b/published/202208/20220822 3 NES Emulators to Play Old NES Games on Linux.md
similarity index 100%
rename from published/20220822 3 NES Emulators to Play Old NES Games on Linux.md
rename to published/202208/20220822 3 NES Emulators to Play Old NES Games on Linux.md
diff --git a/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md b/published/202208/20220822 How to List USB Devices Connected to Your Linux System.md
similarity index 63%
rename from translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md
rename to published/202208/20220822 How to List USB Devices Connected to Your Linux System.md
index 91acce7455..48d7b44895 100644
--- a/translated/tech/20220822 How to List USB Devices Connected to Your Linux System.md
+++ b/published/202208/20220822 How to List USB Devices Connected to Your Linux System.md
@@ -3,12 +3,15 @@
[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14981-1.html"
如何列出连接到 Linux 系统的 USB 设备
======
+
+
+
你如何列出 Linux 中的 USB 设备?
这个问题可以有两种含义。
@@ -28,25 +31,25 @@ lsusb
![list usb with lsusb command linux][1]
-但是了解 lsusb 的输出并不容易,当你只想查看和访问已挂载的 USB 驱动器时,你可能不需要复杂化。
+但是理解 `lsusb` 的输出并不容易,当你只想查看和访问已挂载的 USB 驱动器时,你可能不需要那么复杂。
我将向你展示可用于列出连接到系统的 USB 设备的各种工具和命令。
-除非另有说明,我在例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机和 USB 鼠标。
+除非另有说明,在我的例子中连接了一个 2GB 的 U 盘、1TB 的外置硬盘、通过 MTP 连接的 Android 智能手机,以及 USB 鼠标。
让我从桌面用户最简单的选项开始。
### 以图形方式检查连接的 USB 设备
-你的分发文件管理器可用于查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus(GNOME 文件管理器)的截图中看到的那样。
-The connected devices are shown in the sidebar (Only USB Storage devices are shown here).
+你的发行版的文件管理器可以用来查看连接到你的计算机的 USB 存储设备。正如你在下面的 Nautilus(GNOME 文件管理器)的截图中看到的那样。
+
连接的设备显示在边栏中(此处仅显示 USB 存储设备)。
![Nautilus showing connected USB devices][2]
-你还可以使用 GNOME Disks 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下,大多数使用 GNOME 桌面环境的发行版都预装了 GNOME Disks。
+你还可以使用 GNOME “磁盘” 或 Gparted 等 GUI 应用来查看、格式化和分区连接到计算机的 USB 存储设备。默认情况下,大多数使用 GNOME 桌面环境的发行版都预装了 GNOME “磁盘”。
-这个应用也可以作为一个非常好的[分区管理器][3]。
+这个应用也可以用作一个非常好的 [分区管理器][3]。
![Use GNOME Disks to list mounted USB devices][4]
@@ -54,9 +57,9 @@ The connected devices are shown in the sidebar (Only USB Storage devices are sho
### 使用 mount 命令列出挂载的 USB 设备
-mount 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。
+`mount` 命令用于挂载 Linux 中的分区。你还可以使用相同的命令列出 USB 存储设备。
-通常,USB 存储挂载在 media 目录中。因此,在媒体上过滤 mount 命令的输出将为你提供所需的结果。
+通常,USB 存储挂载在 `media` 目录中。因此,在媒体上过滤 `mount` 命令的输出将为你提供所需的结果。
```
mount | grep media
@@ -66,7 +69,7 @@ mount | grep media
### 使用 df 命令
-[df 命令][6]是一个标准的 UNIX 命令,用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。
+[df 命令][6] 是一个标准的 UNIX 命令,用于了解可用磁盘空间的大小。你还可以使用此命令列出已连接的 USB 存储设备。
```
df -Th | grep media
@@ -76,7 +79,7 @@ df -Th | grep media
### 使用 lsblk 命令
-lsblk 命令用于列出终端中的块设备。因此,这里也通过过滤包含 media 关键字的输出,你可以获得所需的结果,如下面的截图所示。
+`lsblk` 命令用于列出终端中的块设备。因此,这里也通过过滤包含 `media` 关键字的输出,你可以获得所需的结果,如下面的截图所示。
```
lsblk | grep media
@@ -84,7 +87,7 @@ lsblk | grep media
![Using lsblk to list connected USb devicesUsing blkid to list connected USb devices][8]
-如果你比较好奇,可以使用 `blkid` 命令了解 UUID、标签、块大小等。
+如果你想知道,也可以使用 `blkid` 命令了解 UUID、标签、块大小等。
此命令提供更多输出,因为你的内部驱动器也被列出。因此,你必须参考上述命令来识别你希望了解的设备。
@@ -96,7 +99,7 @@ sudo blkid
### 使用 fdisk
-fdisk 是一款不错的老式命令行分区管理器,它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此,通常连接的设备会列在底部,如下所示。
+`fdisk` 是一款不错的老式命令行分区管理器,它还可以列出连接到你计算机的 USB 存储设备。这个命令的输出也很长。因此,通常连接的设备会列在底部,如下所示:
```
sudo fdisk -l
@@ -106,7 +109,7 @@ sudo fdisk -l
### 检查 /proc/mounts
-通过检查 /proc/mounts 文件,你可以列出 USB 存储设备。如你所见,它向你显示了文件系统使用的挂载选项以及挂载点。
+通过检查 `/proc/mounts` 文件,你可以列出 USB 存储设备。如你所见,它向你显示了文件系统使用的挂载选项以及挂载点。
```
cat /proc/mounts | grep media
@@ -116,11 +119,11 @@ cat /proc/mounts | grep media
### 使用 lsusb 命令显示所有 USB 设备
-我们重新审视有名的 lsusb 命令。
+我们重新审视有名的 `lsusb` 命令。
Linux 内核开发人员 [Greg Kroah-Hartman][12] 开发了这个方便的 [usbutils][13] 程序。这为我们提供了两个命令,即 `lsusb` 和 `usb-devices` 来列出 Linux 中的 USB 设备。
-lsusb 命令列出系统中有关 USB 总线的所有信息。
+`lsusb` 命令列出系统中有关 USB 总线的所有信息。
```
lsusb
@@ -138,9 +141,9 @@ usb-devices
![][15]
-Greg 还开发了一个名为 [Usbview][16] 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。
+Greg 还开发了一个名为 [usbview][16] 的小型 GTK 应用。此应用向你显示连接到计算机的所有 USB 设备的列表。
-该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的[包管理器][17]轻松安装 `usbview` 包。
+该应用可在大多数 Linux 发行版的官方仓库中找到。你可以使用发行版的 [包管理器][17] 轻松安装 `usbview` 包。
安装后,你可以从应用菜单启动它。你可以选择任何列出的设备以获取详细信息,如下面的截图所示。
@@ -148,7 +151,7 @@ Greg 还开发了一个名为 [Usbview][16] 的小型 GTK 应用。此应用向
### 总结
-列出的大多数方法仅限于 USB 存储设备。 只有两种方法可以列出其他外围设备; usbview 和 usbutils。 我想我们还有一个理由感谢 Linux Kernel 开发人员 Greg 开发了这些方便的工具。
+这里列出的大多数方法仅限于 USB 存储设备。只有两种方法可以列出其他外围设备; usbview 和 usbutils。 我想我们应该感谢 Linux 内核开发人员 Greg 开发了这些方便的工具。
我知道还有很多方法可以列出连接到系统的 USB 设备。 欢迎你提出建议。
@@ -159,7 +162,7 @@ via: https://itsfoss.com/list-usb-devices-linux/
作者:[Anuj Sharma][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/20220823 Fedora 37- Top New Features and Release Wiki.md b/published/202208/20220823 Fedora 37- Top New Features and Release Wiki.md
similarity index 100%
rename from published/20220823 Fedora 37- Top New Features and Release Wiki.md
rename to published/202208/20220823 Fedora 37- Top New Features and Release Wiki.md
diff --git a/published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md b/published/202208/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md
similarity index 100%
rename from published/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md
rename to published/202208/20220824 Linux-First AI Image Upscaler Upscayl Released its First Version.md
diff --git a/published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md b/published/202208/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md
similarity index 100%
rename from published/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md
rename to published/202208/20220824 The 80-Year Computer Scientist Who Termed -Unix- Adds Unicode Support to AWK Code.md
diff --git a/published/20220826 My open source journey from user to contributor to CTO.md b/published/202208/20220826 My open source journey from user to contributor to CTO.md
similarity index 100%
rename from published/20220826 My open source journey from user to contributor to CTO.md
rename to published/202208/20220826 My open source journey from user to contributor to CTO.md
diff --git a/published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md b/published/202208/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md
similarity index 100%
rename from published/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md
rename to published/202208/20220826 Want to Help Improve GNOME- This New Tool Gives You the Chance!.md
diff --git a/published/202208/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/published/202208/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md
new file mode 100644
index 0000000000..64df83052b
--- /dev/null
+++ b/published/202208/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md
@@ -0,0 +1,39 @@
+[#]: subject: "Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why"
+[#]: via: "https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/"
+[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14979-1.html"
+
+Wii U 模拟器 Cemu 走向开源对仿真技术意义重大
+======
+
+
+
+Wii U 模拟器 Cemu 的开发者上周二宣布了一个重要的 2.0 版本发布,首次交付了 Linux 上的二进制文件,并开源了他们八年的成果。Cemu 是一个 Wii U 模拟器,并于 2017 年创造了历史 —— 每个月可以通过 Patreon 获得支持其发展的数千美元赞助。Cemu 以其在 Patreon 上曾短暂达到 25,000 美元的最高收入而为人所知,这引起了人们对“仿真是否道德”的关注,特别是它被用来换取金钱,而项目却是“闭源的”而不是“开源”的 —— 也就是说源代码没有向公众开放。
+
+仿真社区保护自己免受法律诉讼的主要方式之一是向公众提供其源代码,允许像任天堂这样的“诉讼公司”检查它,并验证在反向工程过程中没有使用他们的专有代码。
+
+据 Exzap 称,Cemu 对 Linux 的支持“仍然相当粗糙”,但他相信随着更多的模拟器开发者熟悉 Cemu,并开始为该项目做出贡献,这种情况将迅速改变。Cemu 以前只兼容 Windows,但现在支持 Linux,可以在 Steam Deck 上快速安装。在 Cemu 引入 Flatpak 支持一键安装之前,在 Deck 上使用它并不那么简单,不过这个话题已经在 GitHub 上讨论过了。
+
+Cemu 的作者利用 2.0 发布公告简要地讨论了该模拟器的历史;在该模拟器的大部分历史中,他们是唯一的开发者,他们声称过去两年对项目的压力特别大。
+
+Exzap 将继续做出贡献,但预计拥有其他开发者将有助于创建几个重要的功能,如暂停和恢复仿真的能力,以及提高在旧硬件上的性能。
+
+“我已经在 Cemu 上工作了近 8 年,看着这个项目从一个似乎不可行的实验,发展到在其高峰期有超过一百万人使用的东西,”Exzap 在上周二的公告中写道,“即使在今天,当 Wii U 已经被大部分人遗忘的时候,我们每个月仍然有 25 万次下载。仍然有这么多人在用 Cemu 享受 Wii U 游戏,我将永远感激让我有机会以积极的方式影响这么多人的生活,哪怕只是一丁点。”
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/
+
+作者:[Laveesh Kocher][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[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
diff --git a/published/202208/20220829 5 GNOME 43 Features to Keep an Eye On.md b/published/202208/20220829 5 GNOME 43 Features to Keep an Eye On.md
new file mode 100644
index 0000000000..5678acff06
--- /dev/null
+++ b/published/202208/20220829 5 GNOME 43 Features to Keep an Eye On.md
@@ -0,0 +1,157 @@
+[#]: subject: "5 GNOME 43 Features to Keep an Eye On"
+[#]: via: "https://news.itsfoss.com/gnome-43-features/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14985-1.html"
+
+5 个需要关注的 GNOME 43 功能
+======
+
+> GNOME 43 即将到来。下面是你可以期待在该版本中出现的功能。
+
+![5 个值得关注的 GNOME 43 功能][1]
+
+GNOME 43 将于 2022 年 9 月 21 日发布。截至目前,GNOME 43 的测试版已经可供测试。
+
+我们在 GNOME 43 测试版中发现的功能和变化应该随着最终版本的发布而到来。
+
+那么,哪些是你最值得期待的 GNOME 43 功能呢?
+
+让我们来看看一些关键的变化。
+
+这个列表集中在视觉/交互式变化上。关于技术变化的完整列表,你可以参考文章底部链接的更新日志。
+
+### 1、改造了快速设置
+
+![GNOME 快速设置][2]
+
+GNOME 桌面菜单位于右上角,你可以在这里快速调整音量、访问网络连接,以及开/关电脑,在这个版本中它终于得到了视觉上的更新。
+
+现在,它看起来更像是安卓的快速切换栏,这应该会增强用户体验,同时减少一些多余的点击。
+
+![GNOME 快速设置][3]
+
+你不需要前往设置来打开深色模式和夜光。新的快速切换菜单就可以让你可以访问到它们。
+
+此外,像选择 Wi-Fi 网络和改变音频设备这样的事情比以前更容易做到。
+
+### 2、对 Nautilus 文件管理器的改变
+
+虽然我们已经在之前的报道中提到了 GNOME 43 中对 Nautilus 最重要的改变。
+
+> **[GNOME 43 中 Nautilus 文件管理器的 6 个新变化][4]**
+
+有几件事值得再次重申。其中一些包括:
+
+* 使用 GTK 4 的全新外观。
+* 拖动和选择文件的能力(橡皮筋选择)。
+* 紧凑窗口的自适应视图。
+* 新的文件上下文菜单。
+
+![Nautilus 文件管理器][6]
+
+总的来说,在 GNOME 43 中,你会发现 Nautilus 文件管理器有了一些视觉上的调整,并有动画的细微改进。
+
+你可以点击每一个选项,访问目录的属性等等来探索其中的差异。它应该感觉更直观一些。
+
+### 3、设备安全信息
+
+![][7]
+
+我们之前报道过 GNOME 会在你禁用安全启动时显示警告。
+
+> **[安全启动已被禁用? GNOME将很快向您发出警告!][8]**
+
+你会在你的闪屏和锁屏中看到这个警告。
+
+GNOME 的设置菜单也有一个新的 “设备安全” 选项,在这里你可以看到安全启动状态和其他重要信息,比如:
+
+* TPM
+* 英特尔 BootGuard
+* IOMMU 保护
+
+### 4、GNOME Web 的扩展支持
+
+![GNOME Web 扩展][10]
+
+GNOME Web 在每次更新都会变得更好一些。有了 Web 扩展的支持,它成为了一个有吸引力的选择,可以取代你的日常使用的浏览器。
+
+> **[有了扩展,GNOME Web 正慢慢成为桌面 Linux 上一个有吸引力的选择][11]**
+
+在写这篇文章的时候,该支持仍然是 **实验性的**,你必须得手动安装扩展。
+
+对于初学者来说,你可以在 Mozilla Firefox 附加组件门户上下载 .xpi 扩展文件。
+
+### 5、GNOME 软件中心的改进
+
+GNOME 的软件中心目前的体验并不是很好。
+
+虽然它在提供额外信息方面有所改进,但仍有改进的余地。
+
+![GNOME 软件][13]
+
+在 GNOME 43 中,你可以了解到更多关于 Flatpak 应用程序所需的权限。而且,你还可以看到一个 “其他应用程序” 部分,以寻找同一开发者的其它应用程序。
+
+此外,软件包来源的显示方式也有了细微的视觉调整。
+
+![GNOME 软件][14]
+
+### 附加:新的墙纸
+
+你会得到新的默认壁纸,有深色和浅色的变体。下面是深色壁纸背景的样子:
+
+![][15]
+
+而这是浅色版本:
+
+![][16]
+
+除了主要的亮点之外,其他一些变化包括:
+
+* Adwaita 图标主题更新。
+* GNOME 应用程序的性能改进。
+* 各种代码的清理。
+* 对日历的改进。
+* 改良了“关于”窗口。
+
+关于完整的技术细节,你可以参考 [GNOME 43 测试版更新日志][17]。
+
+总的来说,GNOME 43 在很大程度上注重提高可用性和用户体验。
+
+最初还计划了一些有趣的功能,但它们没有进入 GNOME 43。*也许,GNOME 44 会包括这些?*
+
+> **[这里是开发者为 GNOME 43 规划的内容][18]**
+
+*你对 GNOME 43 的功能有何看法?请在下面的评论中告诉我们你的想法。*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/gnome-43-features/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [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/content/images/size/w1200/2022/08/gnome-43-features.jpg
+[2]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-1.png
+[3]: https://news.itsfoss.com/content/images/2022/08/gnome-toggle-settings.png
+[4]: https://news.itsfoss.com/gnome-files-43/
+[6]: https://news.itsfoss.com/content/images/2022/08/nautilus-file.gif
+[7]: https://news.itsfoss.com/content/images/2022/08/secure-boot-gnome.png
+[8]: https://news.itsfoss.com/gnome-secure-boot-warning/
+[10]: https://news.itsfoss.com/content/images/2022/08/gnome-web-extensions-1.png
+[11]: https://news.itsfoss.com/gnome-web-extensions-dev/
+[13]: https://news.itsfoss.com/content/images/2022/08/gnome-software-screenshot-1.png
+[14]: https://news.itsfoss.com/content/images/2022/08/gnome-43-software-center.jpg
+[15]: https://news.itsfoss.com/content/images/2022/08/gnome-43-dark-wallpaper.jpg
+[16]: https://news.itsfoss.com/content/images/2022/08/gnome-light-adaitwa.jpg
+[17]: https://download.gnome.org/core/43/43.beta/NEWS
+[18]: https://news.itsfoss.com/gnome-43-dev-plans/
diff --git a/translated/tech/20220819 5 note-taking apps for Linux.md b/published/20220819 5 note-taking apps for Linux.md
similarity index 77%
rename from translated/tech/20220819 5 note-taking apps for Linux.md
rename to published/20220819 5 note-taking apps for Linux.md
index 0d9e3c8f3e..b12822552e 100644
--- a/translated/tech/20220819 5 note-taking apps for Linux.md
+++ b/published/20220819 5 note-taking apps for Linux.md
@@ -3,17 +3,16 @@
[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
[#]: collector: "lkxed"
[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14990-1.html"
5 款适用于 Linux 的笔记应用
======
-\使用这些开源工具来记笔记。
-![How to create outlines in Linux with TreeLine][1]
+
-图片来源:Startup Stock Photos。知识共享 CC0 许可证。
+> 使用这些开源工具来记笔记。
笔记是任何作者生活的一部分。我的大部分文章都是从笔记应用开始的,这对我来说通常是 [Joplin][2]。有大量适用于 Linux 的笔记应用,你可能使用的不是我最喜欢的应用。最近的一篇博客文章让我想起了其中的六个,所以我整理了一份我最喜欢的列表。
@@ -21,23 +20,23 @@
![Joplin][3]
-[Joplin][4] 适用于 Linux、Windows、macOS、Android 和 iOS。我喜欢 Joplin,因为它会自动保存你添加的任何内容。笔记可以上传到 NextCloud、OwnCloud、Joplin Cloud,甚至是 OneDrive、Dropbox 或任何 WebDav 应用等闭源服务。 Joplin 支持加密。
+[Joplin][4] 适用于 Linux、Windows、macOS、Android 和 iOS。我喜欢 Joplin,因为它会自动保存你添加的任何内容。笔记可以上传到 NextCloud、OwnCloud、Joplin Cloud,甚至是 OneDrive、Dropbox 或任何 WebDav 应用等闭源服务。Joplin 还支持加密。
以各种格式导出笔记也很容易。它带有八个不同的主题,可让你定制其外观。
-Joplin 拥有 MIT 许可证。最初于 2017 年发布,Joplin 正在与大量贡献者社区一起持续开发。
+Joplin 采用 MIT 许可证。最初于 2017 年发布,Joplin 正在与大量贡献者社区一起持续开发。
### Xournal
![Xournal][5]
-[Xournal][6] 适用于 Linux、Windows、macOS 和 Android。它的目的是让你创建包含几乎任何你可以想象的媒体类型的笔记。它支持压敏手写笔和绘图板,因此你可以创建[涂鸦笔记][7] (sketchnotes)。你可以在里面打字、绘制简单的矢量、导入图形、录制音频等等。你还可以使用 Xournal 来注释 PDF,这就是我使用它的方式。它以 GPLv2 许可证发布,你可以以多种格式导出笔记。
+[Xournal][6] 适用于 Linux、Windows、macOS 和 Android。它的目的是让你创建包含几乎任何你可以想象的媒体类型的笔记。它支持压敏手写笔和绘图板,因此你可以创建 [涂鸦笔记][7]。你可以在里面打字、绘制简单的矢量、导入图形、录制音频等等。你还可以使用 Xournal 来注释 PDF,这就是我使用它的方式。它以 GPLv2 许可证发布,你可以以多种格式导出笔记。
### Trillium
![Trillium][8]
-[Trillium][9] 是一个层级笔记应用,专注于知识构建库。它具有丰富的所见即所得编辑功能,包括表格、图像和 markdown。它支持使用语法高亮编辑源代码中的注释。它是在 Gnu Affero 许可证下发布的。
+[Trillium][9] 是一个层级笔记应用,专注于知识构建库。它具有丰富的所见即所得编辑功能,支持表格、图像和 Markdown。它支持使用语法高亮编辑源代码中的注释。它是在 AGPL 许可证下发布的。
Trilium 可用作 Linux 和 Windows 的桌面应用,以及你可以在自己的 Linux 服务器上托管的 Web 应用。
@@ -45,7 +44,7 @@ Trilium 可用作 Linux 和 Windows 的桌面应用,以及你可以在自己
![Gnote][10]
-[Gnote][11] 是一个为 Linux 编写的开源笔记应用。它是由 Hubert Figuière 从一个名为 [Tomboy][12] 的项目中克隆出来的。与 Tomboy 一样,Gnote 使用类似 wiki 的链接系统来允许你将笔记链接在一起。
+[Gnote][11] 是一个为 Linux 编写的开源笔记应用。它是由 Hubert Figuière 从一个名为 [Tomboy][12] 的项目中克隆出来的。与 Tomboy 一样,Gnote 使用类似 Wiki 的链接系统来允许你将笔记链接在一起。
GNote 的源代码可在 [GitLab][13] 上找到。该软件是 GPLv3 许可。
@@ -55,7 +54,7 @@ GNote 的源代码可在 [GitLab][13] 上找到。该软件是 GPLv3 许可。
CherryTree 支持层级笔记。在 CherryTree 中,所有东西都是一个节点。节点可以是纯文本、富文本、各种编程语言的语法高亮。每个节点可以有子节点,每个子节点有不同的格式。
-CherryTree 具有富文本和语法高亮的特点,并可以将数据存储在一个 XML 或 [SQLite][15] 文件中。CherryTree 可以从各种格式导入,包括 Markdown、HTML、纯文本、Gnote、Tomboy 和其他。它可以将文件导出为 PDF、HTML、纯文本和它自己的 CherryTree 格式。
+CherryTree 具有富文本和语法高亮的特点,并可以将数据存储在一个 XML 或 [SQLite][15] 文件中。CherryTree 可以从各种格式导入,包括 Markdown、HTML、纯文本、Gnote、Tomboy 和其他格式。它可以将文件导出为 PDF、HTML、纯文本和它自己的 CherryTree 格式。
CherryTree 使用 GPLv3 许可,可以安装在 Linux、Windows 和 macOS 上。
@@ -66,7 +65,7 @@ via: https://opensource.com/article/22/8/note-taking-apps-linux
作者:[Don Watkins][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/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/published/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md
new file mode 100644
index 0000000000..0ec10b2581
--- /dev/null
+++ b/published/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md
@@ -0,0 +1,151 @@
+[#]: subject: "What if a Lifelong Linux User Tried Windows or macOS for the First Time?"
+[#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/"
+[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/"
+[#]: collector: "lkxed"
+[#]: translator: "Kira-Pgr"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15000-1.html"
+
+用惯 Linux 的人第一次用 Windows 或 macOS 会怎样?
+======
+
+> Windows 用户在转换到 Linux 的过程中会遇到很多问题。如果反过来,一个一直用 Linux 的用户第一次用 Windows 或 macOS 会遇到什么问题呢?
+
+![一直用 Linux 的人第一次用 Windows 或 macOS 会怎样?][1]
+
+还记得 YouTube 频道 Linus Tech Tips 中 Linus Sebastian [尝试在 Linux 上玩游戏][2] 的场面吗? 尽管终端显示了明显的警告, 他最后还是把他的桌面环境删掉了。
+
+![Linus Sebastian 弄坏了他的 Linux 系统][3]
+
+考虑到 Sebastian 日常用 Windows 玩游戏, 换到 Linux 肯定需要一定的时间。
+
+所以,这是 Linux 的问题吗? 还是 Sebastian 搞错了?
+
+难道说,任何对操作系统不熟悉的用户在第一次尝试使用该系统的时候都会遇到问题?
+
+接下来,你可以从不同的角度去了解 Linux 用户第一次使用 Windows 或者 macOS 的感受。
+
+Linux 用户第一次用 Windows 或 macOS 会非常容易?还是会和 Sebastian 用 Linux 时一样感觉糟糕?
+
+这肯定是非常有趣的话题……
+
+一位 DevOps 高级工程师 **Scott Williams** 在一系列推文中假想了 Linux 用户第一次用 Windows 或 macOS 的场面。
+
+### 在 Windows 11 上怎么启用 TPM 2.0?
+
+如何安装 Windows 的最新版本 Windows 11?
+
+> [Scott Williams][5]:\
+> 今晚,看我在能不能在这台用了 4 年的笔记本电脑上启用 TPM2.0 并运行 Windows 11。这台电脑支持 Intel PTT,所以应该会很顺利吧?
+
+怎样启用 TPM 2.0? 如何在 BIOS 菜单中找到它? 启用 TPM 2.0 安全吗? 我是否需要刷一个更新的 BIOS? 更新 BIOS 的过程中是否会弄坏我的主版?
+
+这些就是些每个 Linux 用户(甚至是 macOS/Windows 用户)将系统升级到 Windows 11 时都会遇到的一些问题。
+
+Linux 用户从来没有必要做如此奇怪的事情来让系统正常工作。即使是在 2022 年。但是 Windows 11 需要你在升级前了解 BIOS 设置和 TPM 芯片的情况。
+
+虽然 Scott 提到的是旧笔记本电脑,但值得注意的是,即使是最新的主板(比如 Z590),你可能也需要调整 BIOS 设置或者刷一个版本更高的 BIOS 版本才能支持 Windows 11。
+
+由于更新 BIOS 有一定的风险,这种事情即使是对于懂技术的用户也是很不方便。
+
+### 我需要用杀毒软件吗?用哪个?
+
+虽说苹果的 XProtect 和 Windows Defender 能提供基本保护,但对于想要更好保护的用户来说,在杀毒软件方面有几个选择:
+
+> [Scott Williams][6]:\
+> 所以我究竟需不需要装杀毒软件?装哪个?
+
+网上有那么多选择和软文,用户很难确定那个杀毒软件最好,已经为之付费是否值得。
+
+而 Linux 用户就会这么想: *我竟然还要安装这个? 不会很浪费性能吗? 我需要这么多安全防护功能吗? Windows 不是一个安全的操作系统吗?*
+
+### macOS 和 iCloud:一个爱情故事?
+
+> [Scott Williams][7]:\
+> iCloud 是什么?我怎么把它删掉?
+
+Linux 用户们并不喜欢集成的云服务。他们宁愿挂载一个网盘(或网络存储器)。
+
+即使他们选择了网盘,也应该按照用户的意图来工作。但是,在 macOS 上,你会经常被提示要使用 iCloud,同时 Siri 还会跳出来捣乱。
+
+### Linux 用户清理注册表
+
+原先使用 Linux 的新手 Windows 用户为了能优化系统性能去清理注册表,但在面对那么多清理注册表和优化系统以提高性能的工具和选项时,可能会以一个没有反应的 Windows 而告终。
+
+> [Scott Williams][8]:\
+> Reddit上有些人说需要“清理注册表”,我按照几个教程删除了一些东西,然后现在我的 Windows 变得很奇怪。
+
+即使在 2022 年,对于应该在什么时候手动或者用工具清理注册表还是没有明确的规定。
+
+虽说资深 Linux 用户喜欢在尝试新东西前关注细节。但如果 GUI 中没有恰当的警告或提示,还怎么知道所有的注意事项呢。
+
+### 经常需要重启
+
+虽说不像 Linux 的重启那样,Windows 的重启可以修复问题。不过,我到底要在更新 Windows 或者安装软件后重启多少次啊?
+
+> [Scott Williams][9]:\
+> 第一次尝试 Windows 或 macOS 的 Linux 用户是这样的:\
+> “究竟需要安装多少个版本的 .NET? 已经重启了多少次了?” \
+> “为什么我的 Adobe 版本不支持这个版本的 macOS? 难怪那么多人在用 macOS 时会遇到麻烦。苹果公司需要修复这个问题了。”
+
+每次我重启的时候后台运行的程序都被干掉了。
+
+为什么 Windows 就不能在检测新安装的程序或者更新的时候简单地刷新一下,而不是重启呢。Windows 为什么反着来呢。
+
+### 这些东西还需要花钱? 我有 Windows 许可证还不够?
+
+Linux 主要是自由和开源软件构成的,因此预装的工具也是免费的。
+
+所以, 一个用惯那些工具的用户就不得不突然需要花钱买一个 Windows 许可证,而且还要支付软件费用。
+
+微软是不是太贪婪了呢?
+
+### 默认就缺少必须的软件包
+
+在安装完 Windows 后我连压缩包都解压不了?Windows 真的是现代操作系统吗?
+
+### macOS 配置多显示器
+
+> [Scott Williams][10]:\
+> 怎样让我的显示器在 macOS 上工作呢?
+
+在 Linux 上配置多显示器非常轻松。但在 macOS 上完全不是那回事。
+
+### 总结
+
+归根到底,这要看用户的标准和你熟悉的内容。Windows 和 macOS 经常被看作标准的桌面系统。
+
+然而相比之下,大多数人除了知道 Linux 很难用外,对有关 Linux 的东西了解甚少。
+
+不过,你只要掌握使用 Linux 的要领,就像你掌握 Windows、macOS 那样,用 Linux 桌面环境就很轻松了。
+
+只不过在用 Linux 的过程会遇到各种各样的问题,但你只要有耐心就能享受整个过程了。
+
+Linux 本身没有什么问题,是其他系统用户未能熟悉 Linux 的问题。我们并不希望 Linux 变成 Windows,也不希望 Windows 表现得像 Linux,任何操作系统都应该“做它自己”。
+
+但话又说回来,不应该因为一个长期使用 Windows 的用户在最初使用时没有良好的体验就把 Linux 排除在外,因为同样的情况也可能发生在一个长期使用 Linux 的用户尝试 Windows/MacOS 时。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-user-trying-windows-macos/
+
+作者:[Abhishek][a]
+选题:[lkxed][b]
+译者:[Kira-Pgr](https://github.com/Kira-Pgr)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/abhishek/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/linux-windows.png
+[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s
+[3]: https://news.itsfoss.com/content/images/2022/08/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp
+[4]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/
+[5]: https://twitter.com/vwbusguy/status/1463543535630569473
+[6]: https://twitter.com/vwbusguy/status/1463556939728572419
+[7]: https://twitter.com/vwbusguy/status/1463579003504136192
+[8]: https://twitter.com/vwbusguy/status/1463595769051549697
+[9]: https://twitter.com/vwbusguy/status/1463538368956887043
+[10]: https://twitter.com/vwbusguy/status/1463606807906029570
diff --git a/published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md
new file mode 100644
index 0000000000..e3532f356c
--- /dev/null
+++ b/published/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md
@@ -0,0 +1,144 @@
+[#]: subject: "Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users"
+[#]: via: "https://itsfoss.com/blackbox-terminal/"
+[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14992-1.html"
+
+Blackbox:极简主义 Linux 用户的美观终端
+======
+
+
+
+有 [许多可用于 Linux 的终端仿真器][1]。从 Terminator 到 Tilix,你有多种终端可供选择。
+
+但这并没有阻止新终端应用的到来。你最近已经见过了 [GNOME Console][2] 吧,今天,我将向你介绍 Blackbox。
+
+### Blackbox 终端:概述和功能
+
+Blackbox 是一个支持 GTK4 的终端仿真器。开发者为了他可以在 Linux 上使用外观优美的终端应用而创建了这个项目。
+
+所以,不要指望它有很多功能。它只是一个使用 GTK4 工具包并支持主题的终端仿真器。
+
+换句话说,它更多注重的是关于外观而不是功能。
+
+以下是 Blackbox 的主要亮点:
+
+* 可设置主题(支持 [Tilix][3] 兼容的配色方案)
+* 主题与窗口装饰的融合
+* 自定义字体
+* 各种可自定义的 UI 设置
+* 标签
+* 可切换的标题栏
+* 点击打开链接
+* 文件拖放支持
+
+谈到外观,让我们来看看它提供的不同外观。默认窗口将类似于下面的截图。
+
+![Default look of Blackbox terminal][4]
+
+#### 没有标题栏
+
+你也可以取消标题栏,如下所示。这是 GTK4 应用程序中最“流行”的功能之一。
+
+![Blackbox without header bar][5]
+
+你还可以在无标题栏模式下启用浮动控件。
+
+![Floating controls with no header bar mode][6]
+
+#### 轻松复制和粘贴(不要抗拒)
+
+`Ctrl+C` 和 `Ctrl+V` 就像复制粘贴的通用键盘快捷键。
+
+但是古老的 Unix 在宇宙之前就存在了,因此它使用 [Ctrl+C 键来终止终端中正在运行的程序][7]。
+
+但是,有些人发现不能使用他们最喜欢的快捷键来 [在终端中复制粘贴][8] 有点不方便。
+
+Blackbox 允许你通过启用“轻松复制和粘贴”设置来更改它。启用此设置后,你可以使用 `Ctrl+C` 和 `Ctrl+v` 进行复制粘贴操作。
+
+不用担心。`Ctrl+C` 仍可用于停止正在运行的命令。
+
+![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9]
+
+#### 主题
+
+你还可以从设置中选择不同的主题。有几个浅色和深色主题可供选择。你还可以使用 Tilix 风格的主题。
+
+![Available themes for Blackbox][10]
+
+让我们看看它在 Yaru 主题和不扩展选项卡的情况下的外观,这与默认的 Blackbox 行为不同。
+
+![Blackbox with a changed theme][11]
+
+#### 重置为默认
+
+还有一些更方便的功能,例如记住窗口大小、按像素滚动等。
+
+好消息是,如果你对设置进行了太多更改,你可以将它们全部还原并重置为默认设置。
+
+该选项在“首选项”的“高级”选项卡中可用。
+
+![reset blackbox settings to default][12]
+
+### 安装 Blackbox 终端
+
+请记住,**Blackbox 处于开发的早期阶段**。我在切换主题时出现过崩溃。
+
+要安装 Blackbox 终端,你应该在系统中安装 [Flatpak 并启用 Flathub 仓库][13]。
+
+使用此命令在你的系统上安装 Blackbox:
+
+```
+flatpak install flathub com.raggesilver.BlackBox
+```
+
+在 Fedora 和其他一些与 Flatpak 集成的发行版上,你可以从软件中心安装 Blackbox。
+
+![Blackbox can also be installed in GNOME Software Center][14]
+
+安装后,你可以从应用菜单启动它。
+
+#### 卸载 Blackbox 终端
+
+如果你不喜欢 Blackbox 并想将其删除,请输入以下命令将其删除。
+
+```
+flatpak uninstall flathub com.raggesilver.BlackBox
+```
+
+### 结论
+
+在我看来,Blackbox 是一个不错的终端模拟器。在不支持 GTK4 的发行版上,你可以获得 GTK4 所能提供的所有精彩内容。它提供的功能足以应付日常工作。
+
+最后,这一切都取决于个人喜好。你可能会喜欢它,也可能不喜欢它。如果你喜欢体验,请尝试一下,并在评论栏与我们分享你的经验。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/blackbox-terminal/
+
+作者:[Anuj Sharma][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/anuj/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/linux-terminal-emulators/
+[2]: https://itsfoss.com/gnome-console/
+[3]: https://github.com/gnunn1/tilix
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-default.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-noheader.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-floating-controls.png
+[7]: https://itsfoss.com/stop-program-linux-terminal/
+[8]: https://itsfoss.com/copy-paste-linux-terminal/
+[9]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-easy-copy-paste.png
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-theme-selection.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-yaru.png
+[12]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-reset.png
+[13]: https://itsfoss.com/flatpak-guide/
+[14]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-install.png
diff --git a/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md
new file mode 100644
index 0000000000..2b0fb50ab5
--- /dev/null
+++ b/published/20220824 sudo apt update vs upgrade- What-s the Difference-.md
@@ -0,0 +1,149 @@
+[#]: subject: "sudo apt update vs upgrade: What’s the Difference?"
+[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: "Yufei-Yan"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14994-1.html"
+
+apt 的 update 和 upgrade 命令的区别是什么?
+======
+
+
+
+如果想让你的 Ubuntu 或者 Debian 系统保持更新,要用 `sudo apt update` 和 `sudo apt upgrade` 命令组合。
+
+一些以前的教程也会提到 `sudo apt-get update` 和 `sudo apt-get upgrade`。
+
+`apt` 和 `apt-get` 命令运行起来几乎一样,除了一些细微的差别,后面我会讨论。
+
+我们首先讨论一下 `update` 和 `upgrade` 的区别。这两个难道不是一样的吗?
+
+### apt 的 update 和 upgrade 的区别
+
+尽管听上去运行 `apt update` 可以给你一个包的最新版本,然而这并不正确。`update` 命令只会获得系统上所有包的最新信息,并不会下载或者安装任何一个包。而是 `apt upgrade` 命令来把这些包下载和升级到最新版本。
+
+还是有点困惑?让我来接着解释。我建议阅读 [包管理器的概念][1]。这个会帮你更好的理解这些东西。
+
+![Linux Package Manager Explanation][2]
+
+基本上,你的系统围绕着一个所有可用包的数据库(缓存)工作。注意,这个缓存(或者数据库)并不包含这些包本身,仅仅是关于包的元数据(版本、仓库、依赖等)。
+
+如果你不更新这个数据库,系统就不会知道是否有更新的版本。
+
+当你运行 `apt update` 或者 `apt-get update` 命令,它会获取这些包的最新元数据(包的版本等)。
+
+![apt update][3]
+
+这时候本地缓存就被更新了,有一些包可以升级。用 `sudo apt upgrade` 可以升级所有(可升级的)包。
+
+它会显示要升级的包,并且通过回车(默认选择是 `Y`)或者按下 `Y` 键进行确认。要在这个阶段取消升级,可以按下 `N`。
+
+![apt upgrade][4]
+
+下面这些可能会帮助你记忆:
+
+* `apt update`:更新包缓存(可以知道包的哪些版本可以被安装或升级)
+* `apt upgrade`:升级包到最新版本
+
+因为有一些管理员命令,需要作为 root 运行。因此需要使用 `sudo` 配合其他命令。`sudo` 使你能够作为 root 在 Ubuntu 和 Debian 上运行命令。
+
+既然理解了 `update` 和 `upgrade` 是如何一起运行的,我们接下来来讨论一下 `apt` 和 `apt-get` 的用法。
+
+### apt 还是 apt-get?应该用哪个?
+
+Debian 和 Ubuntu 使用的是 APT 包管理系统。不要和 `apt` 命令弄混了。
+
+有许多和 APT 包管理交互的命令;`apt-get`、`apt`、`dpkg`、`aptitude` 等。
+
+这里面最受欢迎的就是 `apt-get` 命令。它是一个低层级且功能丰富的命令。`apt` 是 `apt-get` 命令的一个更新而更简单的版本。
+
+可以读一下这篇文章来 [了解 atp 和 apt-get 命令的不同][5]。下面重点讨论这些命令中 `update` 和 `upgrade` 选项的区别。
+
+#### apt update vs apt-get update
+
+`apt-get update` 和 `apt update` 做的是同样的事,都是更新本地包缓存,这样的话你的系统就知道有哪些包的版本是可用的。
+
+从技术上讲,其实并没有区别。然而,`apt update` 在一个方面比 `apt-get update` 做的好,**它会告诉你可升级的包的数量**。
+
+```
+Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
+Fetched 213 kB in 4s (55.8 kB/s)
+Reading package lists... Done
+Building dependency tree... Done
+Reading state information... Done
+6 packages can be upgraded. Run 'apt list --upgradable' to see them.
+```
+
+`apt-get update` 甚至不会告诉你包是否可以升级。
+
+![apt get update][6]
+
+![apt update output][7]
+
+从 `apt` 中可以看到 [列出可升级的包][8],而 `apt-get` 甚至没有这个选项。
+
+```
+# apt list --upgradable
+Listing... Done
+fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
+gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
+gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
+gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
+libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
+vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]
+```
+
+现在来比较一下两个命令中 `upgrade` 的选项。
+
+#### apt upgrade vs apt-get upgrade
+
+`apt-get upgrade` 和 `apt upgrade` 命令根据本地包缓存(通过 `update` 命令更新)的数据,安装可升级包的最新版本。
+
+然而,`apt upgrade` 命令会做两件与 `apt-get upgrade` 不同的事情。
+
+`apt upgrade` 命令可以升级 Linux 内核版本,`apt-get upgrade` 不能。`apt-get` 命令需要使用 [apt-get dist-upgrade][9] 来升级内核版本。
+
+![apt-get upgrade command cannot upgrade Linux kernel version][10]
+
+这是因为升级内核版本意味着安装一个全新的包。`apt-get upgrade` 命令不能安装一个新的包。它只能升级现有的包。
+
+`apt upgrade` 比 `apt-get` 做的好的另一件小事是,它会在底部**显示一个进度条**。
+
+![apt upgrade progress bar][11]
+
+### 总结
+
+`update` 和 `upgrade` 两个词很相似,这就是为什么很多新用户会感到困惑。有时候,我觉得 `apt update` 命令应该和 `apt upgrade` 命令合并。
+
+我意思是 `upgrade`(所有已安装的包)和 `update`(本地包元数据缓存)一起完成工作。为什么要有两个分开的命令呢?把这两个领命合成一个 `upgrade` 命令吧。Fedora 就是这样对 DNF 命令进行了改进。不过这只是我的观点。
+
+我希望这篇文章可以解释一些关于 `apt-get update`、`apt-get upgrade` 和 `apt update` 以及 `apt upgrade` 命令的问题。
+
+如果有任何问题,请与我联系。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/apt-update-vs-upgrade/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[Yufei-Yan](https://github.com/Yufei-Yan)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/package-manager/
+[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png
+[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png
+[8]: https://itsfoss.com/apt-list-upgradable/
+[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png
diff --git a/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md
new file mode 100644
index 0000000000..df94a21a26
--- /dev/null
+++ b/published/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md
@@ -0,0 +1,118 @@
+[#]: subject: "How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish"
+[#]: via: "https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14997-1.html"
+
+如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25
+======
+
+
+
+KDE 开发人员现在启用了流行的向后移植 PPA,并对 KDE Plasma 5.25 进行了必要的更新,你现在可以将其安装在 Kubuntu 22.04 Jammy Jellyfish 中。下面是方法。
+
+KDE Plasma 5.25 于不久前的 2022 年 6 月 14 日发布,其中包含一些令人振奋的更新。在此版本中,你将获得**动态强调色**、改进的登录头像、**浮动面板**以及我们在 [功能亮点文章][1] 中介绍的许多功能。
+
+但是,如果你正在运行早在 2022 年 4 月发布的 [Kubuntu 22.04 Jammy Jellyfish][2],那么你使用的是带有 KDE Framework 5.92 的 KDE Plasma 5.24。
+
+你可能正在稳定的 Kubuntu 22.04 版本中等待享受新功能,现在可以通过著名的向后移植 PPA 在 Kubuntu 22.04 中安装它。
+
+### 如何在 Kubuntu 22.04 中安装 KDE Plasma 5.25
+
+这是使用最新的 KDE Plasma 5.25 升级 Kubuntu 22.04 的方法。
+
+#### GUI 方式
+
+如果你惯于使用 KDE 的软件应用 “发现”,请打开该应用。然后进入 “设置” > “软件源” 并添加 PPA:`ppa:kubuntu-ppa/backports-extra`。然后单击“更新”。
+
+#### 终端方法(推荐)
+
+我建议你打开一个终端并进行此升级以更快地执行和安装。
+
+打开 Konsole 并运行以下命令以添加 [向后移植 PPA][3]。
+
+```
+sudo add-apt-repository ppa:kubuntu-ppa/backports-extra
+```
+
+![Upgrade Kubuntu 22.04 with KDE Plasma 5.25][4]
+
+现在,通过运行以下命令刷新包列表。然后验证 5.25 包是否可用。
+
+```
+sudo apt update
+```
+
+```
+apt list --upgradable | grep 5.25
+```
+
+![KDE Plasma 5.25 packages are available now][5]
+
+最后,运行最后一个命令来启动升级。
+
+```
+sudo apt full-upgrade
+```
+
+总共下载大约 200 MB 的软件包。根据你的互联网连接速度,整个过程大约需要 10 分钟。
+
+上述命令完成后,重新启动系统。
+
+重启后,你应该会在 Kubuntu 22.04 LTS 中看到新的 KDE Plasma 5.25。
+
+![KDE Plasma 5.25 in Kubuntu 22.04 LTS][6]
+
+### 其他向后移植 PPA
+
+请注意,[另外的向后移植 PPA][7] `ppa:kubuntu-ppa/backports` 目前提供的是 Plasma 5.24。因此,请勿使用与上面不同的 PPA。我不确定这个 PPA 是否会得到更新。
+
+```
+sudo add-apt-repository ppa:kubuntu-ppa/backports // 不要使用这个
+```
+
+### 如何卸载
+
+在任何时候,如果你想回到 KDE Plasma 桌面的原始版本,那么你可以安装 `ppa-purge` 并删除该 PPA,然后刷新包。
+
+打开终端,依次执行以下命令:
+
+```
+sudo apt install ppa-purge
+sudo ppa-purge ppa:kubuntu-ppa/backports-extra
+sudo apt update
+```
+
+完成上述命令后,重启系统。
+
+### 结束语
+
+这就是全部了。一个漂亮而简单的步骤,将 Jammy Jellyfish 中的 KDE Plasma 升级到 Plasma 5.25。我希望你升级顺利。
+
+如果你遇到任何错误,请在评论栏告诉我。
+
+干杯。
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/
+
+作者:[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/kde-plasma-5-25/
+[2]: https://www.debugpoint.com/kubuntu-22-04-lts/
+[3]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports-extra
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrade-Kubuntu-22.04-with-KDE-Plasma-5.25.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-packages-are-available-now.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-in-Kubuntu-22.04-LTS-1024x575.jpg
+[7]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports
diff --git a/published/20220826 How I analyze my music directory with Groovy.md b/published/20220826 How I analyze my music directory with Groovy.md
new file mode 100644
index 0000000000..8a0a711353
--- /dev/null
+++ b/published/20220826 How I analyze my music directory with Groovy.md
@@ -0,0 +1,131 @@
+[#]: subject: "How I analyze my music directory with Groovy"
+[#]: via: "https://opensource.com/article/22/8/groovy-script-java-music"
+[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15004-1.html"
+
+我如何使用 Groovy 分析我的音乐目录
+======
+
+
+
+> 为了简化 Java 的繁琐,我制作了一个 Groovy 工具来分析我的音乐目录。
+
+最近,我一直在研究 Groovy 是如何简化略微繁琐的 Java 的。在这篇文章中,我开始了一个简短的系列,通过创建一个分析我的音乐目录的工具来演示 Groovy 脚本。
+
+在本文中,我将演示 `groovy.File` 类如何扩展和精简 `java.File` 并简化其使用。这为查看音乐文件夹的内容提供了一个框架,以确保预期的内容(例如,`cover.jpg` 文件)就位。我使用 [JAudiotagger 库][2] 来分析音乐文件的标签。
+
+### 安装 Java 和 Groovy
+
+Groovy 基于 Java,需要安装 Java。 Java 和 Groovy 的最新和稳定的版本可能都在你的 Linux 发行版的仓库中。 Groovy 也可以直接从 [Apache Foundation 网站][3] 安装。对于 Linux 用户来说,一个不错的选择是 [SDKMan][4],它可用于获取 Java、Groovy 和许多其他相关工具的多个版本。对于本文,我使用以下 SDK 版本:
+
+* Java:版本 11.0.12-open 的 OpenJDK 11
+* Groovy:版本 3.0.8
+
+### 音乐元数据
+
+最近,我重整了我的音乐消费方式。我决定使用优秀的开源 [Cantata][5] 音乐播放器,它是开源 [MPD 音乐播放器][6] 的一个前端。我所有的电脑的音乐都存储在 `/var/lib/mpd/music` 目录下。在该音乐目录下有艺术家子目录,在每个艺术家子目录下有专辑子目录,包含音乐文件、`cover.jpg`,偶尔还有 PDF 格式的内页说明。
+
+我绝大部分的音乐文件都是 FLAC 格式的,有一些是 MP3 格式,可能还有一小部分是 OGG 格式。我选择 JAudiotagger 库的一个原因是它可以透明地处理不同的标签格式。当然,JAudiotagger 是开源的!
+
+那么查看音频标签有什么意义呢?以我的经验,音频标签的管理极差。(提到音频标签,)我的脑海中浮现出“粗心”这个词。这是标签本身真正存在的问题,也可能是出于我自己的学究倾向。无论如何,这是一个可以通过使用 Groovy 和 JAudiotagger 解决的重要问题。不过,它不仅适用于音乐收藏。许多其他现实世界的问题也适用,如需要下沉到文件系统中的目录树来处理在那里找到的内容。
+
+### 使用 Groovy 脚本
+
+这是此任务所需的基本代码。我在脚本中加入了注释,这些注释反映了我通常留给自己的(相对简写的)“注释提醒”:
+
+```
+// 定义音乐库目录
+def musicLibraryDirName = '/var/lib/mpd/music'
+// 输出 CSV 文件标题行
+println "artistDir|albumDir|contentFile"
+// 迭代音乐库目录中的每个目录
+// 这一层应该是艺术家目录
+new File(musicLibraryDirName).eachDir { artistDir ->
+ // 迭代艺术家目录中的每个目录
+ // 这一层应该是专辑目录
+ artistDir.eachDir { albumDir ->
+ // 迭代专辑目录中的每个目录
+ // 这里应该是内容
+ // 或相关内容(如 `cover.jpg`,PDF 格式的内页说明)
+ albumDir.eachFile { contentFile ->
+ println "$artistDir.name|$albumDir.name|$contentFile.name"
+ }
+ }
+}
+```
+
+如上所述,我使用 `groovy.File` 在目录树中移动。具体来说:
+
+第 7 行创建一个新的 `groovy.File` 对象并在其上调用 `groovy.File.eachDir()`,第 7 行的 `{` 和第 18 行的结尾的 `}` 之间的代码是传给 `eachDir()` 的 `groovy.Colsue` 参数。
+
+这意味着 `eachDir()` 为目录中找到的每个子目录执行该代码。这类似于 Java *lambda*(也称为“匿名函数”)。 Groovy 闭包不会像 lambda 那样限制对调用环境的访问(在最新版本的 Groovy 中,如果你愿意,也可以使用 Java lambda)。如上所述,音乐库目录中的子目录应该是艺术家目录(例如,“Iron Butterfly” 或 “Giacomo Puccini”),因此 `artistDir` 是 `eachDir()` 传递给闭包的参数。
+
+第 10 行对每个 `artistDir` 调用 `eachDir()`,第 10 行的 `{` 和第 17 行的 `}` 之间的代码形成另一个处理 `albumDir` 的闭包。
+
+第 14 行,在每个 `albumDir` 上调用 `eachFile()`,第 14 行的 `{` 和第 16 行的 `}` 之间的代码形成了处理专辑内容的第三级闭包。
+
+在本文的范围内,我对每个文件唯一需要做的就是开始构建信息表,我将其创建为一个以竖线分隔的 CSV 文件,它可以导入 [LibreOffice][7] 或 [OfficeOnly][8] 或任何其他电子表格。现在,代码输出前三列:艺术家目录名、专辑目录名和内容文件名(同样,第 2 行输出 CSV 标题行)。
+
+在我的 Linux 笔记本电脑上运行它会产生以下输出:
+
+```
+$ groovy TagAnalyzer.groovy | head
+artistDir|albumDir|contentFile
+Habib Koite & Bamada|Afriki|02 - Ntesse.flac
+Habib Koite & Bamada|Afriki|08 - NTeri.flac
+Habib Koite & Bamada|Afriki|01 - Namania.flac
+Habib Koite & Bamada|Afriki|07 - Barra.flac
+Habib Koite & Bamada|Afriki|playlist.m3u
+Habib Koite & Bamada|Afriki|04 - Fimani.flac
+Habib Koite & Bamada|Afriki|10 - Massake.flac
+Habib Koite & Bamada|Afriki|11 - Titati.flac
+Habib Koite & Bamada|Afriki|03 – Africa.flac
+[...]
+Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac
+Richard Crandell|Spring Steel|Spring Steel.pdf
+Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac
+Richard Crandell|Spring Steel|cover.jpg
+$
+```
+
+在性能方面:
+
+```
+$ time groovy TagAnalyzer.groovy | wc -l
+9870
+
+real 0m1.482s
+user 0m4.392s
+sys 0m0.230s
+$
+```
+
+又好又快。它在一秒半内处理近 10,000 个文件!对我来说足够快。可观的性能、紧凑且可读的代码,还有什么不喜欢的?
+
+在我的下一篇文章中,我会打开 JAudiotagger 并查看每个文件中的标签。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/groovy-script-java-music
+
+作者:[Chris Hermansen][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://opensource.com/users/clhermansen
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png
+[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp
+[3]: https://groovy.apache.org/download.html
+[4]: https://opensource.com/article/22/3/manage-java-versions-sdkman
+[5]: https://opensource.com/article/17/8/cantata-music-linux
+[6]: https://www.musicpd.org/
+[7]: https://opensource.com/tags/libreoffice
+[8]: https://opensource.com/article/20/7/nextcloud
diff --git a/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md
new file mode 100644
index 0000000000..5cb3938980
--- /dev/null
+++ b/published/20220829 Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image.md
@@ -0,0 +1,75 @@
+[#]: subject: "Debian Finally Starts a General Resolution to Consider a Non-Free Firmware Image"
+[#]: via: "https://news.itsfoss.com/debian-non-free/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14988-1.html"
+
+Debian 终于开始讨论非自由固件镜像了
+======
+
+> Debian 终于开始考虑将非自由固件纳入一般决议中了。那么,将会如何呢?
+
+![Debian 终于开始考虑非自由固件映像的一般决议][1]
+
+由于其稳定性和新功能之间的平衡的做法,Debian 是最受欢迎的 Linux 发行版之一。
+
+但是,它并没有配备任何非自由固件。
+
+对于想在新硬件上使用 Debian 的用户来说,这已经成为一个问题。
+
+大多数最新的设备和配置都需要非自由固件来使其工作,这包括 Wi-Fi、图形显示等等。
+
+为了解决这个问题,前 Debian 项目负责人、开发者 Steve McIntyre 已经对此积极讨论了一段时间。最近在 DebConf 22 会议上,正如 [Geeker's Digest][2] 所发现的那样,Steve 谈到了修复固件的混乱局面,更好地向用户和开发者表明了这一点。
+
+现在社区中讨论的进展是,看起来 Debian 已经启动了一项一般决议,让其利益相关者投票决定如何处理非自由固件的问题。
+
+### Debian 的一般决议提案
+
+这个一般决议案有四个提案(LCTT 译注:原文和官方提案说明不够清晰,我根据理解重新梳理了):
+
+* 提案 A:改变原有的官方镜像集(安装镜像和实况镜像),Debian 将在官方镜像中包含非自由固件包。包含的固件将在检测到需求时默认启用。然而,它也将包括让用户在启动时禁用的方法。(截止本文发表时的提案支持人数:17)
+* 提案 B:不改变原有的镜像集,保留原来的不包含非自由固件的镜像,另外单独提供包含非自由固件的官方镜像。新的镜像下载链接将更醒目以方便新用户找到它们,而原来的镜像的视觉优先级将变低。(截止本文发表时的提案支持人数:10)
+* 提案 C:和提案 B 类似,在用户下载不包含自由固件的镜像时,提醒他们还有包含非自由固件的镜像可供下载。(截止本文发表时的提案支持人数:6)
+* 提案 D:继续遵守《Debian 社会契约》第 1 节和第 5 节的精神,继续保持现状,不在 Debian 中包含任何非自由软件,但支持它们的使用,并欢迎其他人分发这样的作品。(截止本文发表时的提案支持人数:6)
+
+这些是一些有趣的建议。我认为提案 A 对所有人都很方便,同时给高级用户禁用非自由固件的机会。
+
+你可以在 [官方网页][3] 中了解更多关于一般决议的信息。
+
+你怎么看?
+
+### 将非自由固件纳入官方发行版中
+
+至于目前的情况,你可以找到带有非自由固件的“**非官方**”的 Debian 镜像。
+
+然而,并不是每个用户都知道它,即使它在 Debian 的下载页面上被宣传,“**非官方**”的说法也不会让用户比推荐的镜像更喜欢。
+
+此外,当用户可以选择任何基于 Ubuntu 的发行版或 Ubuntu 作为替代品时,期望他们安装非自由固件是违反直觉的。
+
+不仅仅限于这些问题,Steve 在他的 [博客][4] 中还提到了其他一些问题,包括:
+
+* 维护独立的非自由镜像是很耗时的。
+* 由于缺乏非自由固件,许多用户不喜欢官方镜像。
+
+*那么,你认为 Debian 的一般决议的投票结果是什么?一个单独的介质镜像?还是把它包括在官方镜像中?*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/debian-non-free/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [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/content/images/size/w1200/wordpress/2022/07/debian-non-free-firmware.jpg
+[2]: https://www.geekersdigest.com/debian-on-the-verge-to-include-non-free-firmware-in-official-releases/
+[3]: https://www.debian.org/vote/2022/vote_003#timeline
+[4]: https://blog.einval.com/2022/04/19#firmware-what-do-we-do
diff --git a/published/20220830 Some ways to get better at debugging.md b/published/20220830 Some ways to get better at debugging.md
new file mode 100644
index 0000000000..f0144e3ceb
--- /dev/null
+++ b/published/20220830 Some ways to get better at debugging.md
@@ -0,0 +1,115 @@
+[#]: subject: "Some ways to get better at debugging"
+[#]: via: "https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/"
+[#]: author: "Julia Evans https://jvns.ca/"
+[#]: collector: "lkxed"
+[#]: translator: "aftermath0703"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14991-1.html"
+
+提高调试能力的一些方法
+======
+
+
+
+你们好!我一直在编写一本关于调试的杂志(这是 [目录的初稿][1])。
+
+作为其中的一部分,我认为阅读一些关于调试的学术论文可能会很有趣,上周 [Greg Wilson][2] 给我发了一些关于调试学术研究的论文。
+
+其中一篇论文(《[建立一个调试教学的框架[付费墙]][3]》)对我们有效调试所需的不同种类的知识/技能进行了分类,我非常喜欢。它来自另一篇关于故障排除的更一般性的论文:《[学会排错:一个新的基于理论的设计架构][4]》。
+
+我认为这个分类对于思考如何更好地进行调试是一个非常有用的结构,所以我把论文中的五个类别重新规划为你可以采取的行动,以提高调试的效率。
+
+以下是这些行动:
+
+#### 1、学习代码库
+
+要调试一些代码,你需要了解你正在使用的代码库。
+
+这似乎有点显而易见(当然,不了解代码的工作原理,你就无法调试代码!)
+
+这种学习随着时间的推移会很自然地发生,而且实际上调试也是 *学习* 一个新的代码库如何工作的最好方法之一——
+看到一些代码是如何崩溃的,有助于你了解它是如何工作的。
+
+该论文将此称为“系统知识”。
+
+#### 2、学习系统
+
+论文中提到,你需要了解编程语言,但我认为不止于此 —— 为了修复 bug,往往你需要学习很多更广泛的环境,而不仅仅是语言。
+
+举个例子,如果你是后端 Web 开发者,你可能需要的一些“系统”知识包括:
+
+* HTTP 缓存如何工作
+* CORS
+* 数据库事务是如何工作的
+
+我发现我经常需要更有意识地去学习像这样的系统性的东西 —— 我需要真正花时间去查找和阅读它们。
+
+该论文将此称为“领域知识”。
+
+#### 3、学习你的工具
+
+现在有很多工具,例如:
+
+* 调试器(GDB 等)
+* 浏览器开发工具
+* 剖析器
+* `strace` / `ltrace`
+* `tcpdump` / `wireshark`
+* 核心转储
+* 甚至像错误信息这样的基本东西(如何正确阅读它们)
+
+我在这个博客上写了很多关于调试工具的文章,并且肯定学习这些工具给我带来了巨大的变化。
+
+该论文将此称为“处理性知识”。
+
+#### 4、学习策略
+
+这是最模糊的一类,在如何高效调试的过程中,我们都有很多策略和启发式方法。比如说:
+
+* 写一个单元测试
+* 写一个小的独立程序来重现这个错误
+* 找到一个能工作的版本的代码,看看有什么变化
+* 打印出无数的东西
+* 增加额外的日志记录
+* 休息一下
+* 向朋友解释这个错误,然后在中途发现问题所在
+* 查看 GitHub 上的问题,看看是否有匹配的问题
+
+在写这本杂志的时候,我一直在思考这个类别,但我想让这篇文章简短,所以我不会在这里多说。
+
+该论文将此称为“战略知识”。
+
+#### 5、获得经验
+
+最后一个类别是“经验”。这篇论文对此有一个非常有趣的评论:
+
+> 他们的研究结果并没有显示出新手和专家所采用的策略有什么明显的区别。专家只是形成了更多正确的假设,并且在寻找故障方面更有效率。作者怀疑这个结果是由于新手和专家之间的编程经验不同造成的。
+
+这真的引起了我的共鸣 —— 我遇到过很多第一次遇到时非常令人沮丧和困难的 bug,而在第五次、第十次或第二十次时就非常简单了。
+
+对我来说,这也是最直接的知识类别之一 —— 你需要做的就是调查一百万个 bug,反正这就是我们作为程序员的全部生活 : ) 。这需要很长的时间,但我觉得它发生得很自然。
+
+本文将此称为“经验知识”。
+
+#### 就这样吧!
+
+我打算把这篇文章写得很短,我只是非常喜欢这个分类,想把它分享出来。
+
+--------------------------------------------------------------------------------
+
+via: https://jvns.ca/blog/2022/08/30/a-way-to-categorize-debugging-skills/
+
+作者:[Julia Evans][a]
+选题:[lkxed][b]
+译者:[aftermath0703](https://github.com/aftermath0703)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://jvns.ca/
+[b]: https://github.com/lkxed
+[1]: https://twitter.com/b0rk/status/1562480240240525314?s=20&t=BwKd6i0mVCTaCud2HDEUBA
+[2]: https://third-bit.com/
+[3]: https://dl.acm.org/doi/abs/10.1145/3286960.3286970
+[4]: https://www.researchgate.net/profile/Woei-Hung/publication/225547853_Learning_to_Troubleshoot_A_New_Theory-Based_Design_Architecture/links/556f471c08aec226830a74e7/Learning-to-Troubleshoot-A-New-Theory-Based-Design-Architecture.pdf
diff --git a/published/20220902 Evernote Alternative Notesnook is Now Open Source.md b/published/20220902 Evernote Alternative Notesnook is Now Open Source.md
new file mode 100644
index 0000000000..63faff067a
--- /dev/null
+++ b/published/20220902 Evernote Alternative Notesnook is Now Open Source.md
@@ -0,0 +1,79 @@
+[#]: subject: "Evernote Alternative Notesnook is Now Open Source"
+[#]: via: "https://news.itsfoss.com/notesnook-goes-open-source/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15001-1.html"
+
+印象笔记的替代品 Notesnook 现已开源
+======
+
+
+
+> Notesnook 是一个以隐私为重点的新的记事本应用程序,它决定开源了。
+
+当你想到一个开源的安全记事本应用程序时,你会想到什么?
+
+可能是 [标准笔记][2]。
+
+🔒 它是一个开源的、端到端加密的应用程序。而且也正是 Linux 用户最好的记事应用程序之一。
+
+然而,提供类似于流行的印象笔记功能的注重隐私的标准笔记替代品较少。
+
+幸运的是,我们有一个新的选择加入了名单,即 **Notesnook**。
+
+📢 Notesnook 最近在 GPLv3 许可下进行了开源,以让社区帮助改进它,并确保该项目不至于走样。
+
+目前,开发人员希望把重点放在改进 GitHub 仓库上,然后继续增加新的功能/其他开发活动。
+
+### Notesnook:它能提供什么?
+
+![notesnook][5]
+
+Notesnook 是一个开源的零知识笔记存储平台,具有端到端加密功能。
+
+与标准笔记类似,你可以免费使用它,也可以选择高级计划来解锁更多的好处。一些亮点包括:
+
+* 手机端的应用锁。
+* 私人笔记保险库。
+* 密码保护的笔记共享。
+* 跨平台。
+
+界面看起来像是组合了各种有用的东西。我有兴趣单独写篇点评,或许写篇比较文章,听起来不错,对吗?
+
+它可用于 Windows、mac 和 Linux。你可以下载用于 Linux 桌面的 AppImage 文件,或者 .deb/.rpm。
+
+🏷️ 💲 **为了庆祝开源**,Notesnook 还为其 [年度高级计划][6] 提供高达 75% 的折扣,并提供 30 天退款保证。你可以试一试,看看你是否需要高级计划。
+
+在印度付费的话,我看到有 80% 的折扣,使得一年的订阅费用只有 10 美元。其他地区的情况可能不同。
+
+探索其 [GitHub 页面][7] 或 [官方网站][8] 以了解更多。此外,你可以阅读他们的 [博客文章][9],了解他们为什么决定要开源。
+
+> **[Notesnook][10]**
+
+💬 *你认为 Notesnook 作为一个以隐私为中心的新的记事应用程序怎么样?*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/notesnook-goes-open-source/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [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/content/images/size/w1200/2022/09/notesnook-ft.png
+[2]: https://standardnotes.com/
+[3]: https://itsfoss.com/note-taking-apps-linux/
+[5]: https://news.itsfoss.com/content/images/2022/09/notesnook.jpg
+[6]: https://notesnook.com/pricing/
+[7]: https://github.com/streetwriters/notesnook
+[8]: https://notesnook.com/
+[9]: https://blog.notesnook.com/notesnook-is-going-open-source/
+[10]: https://notesnook.com/
diff --git a/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md b/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md
new file mode 100644
index 0000000000..77f154eba6
--- /dev/null
+++ b/published/20220902 Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead.md
@@ -0,0 +1,74 @@
+[#]: subject: "Microsoft Decides to Drop the Linux App for Teams to Replace it as a Progressive Web App Instead"
+[#]: via: "https://news.itsfoss.com/microsoft-linux-app-retire/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14995-1.html"
+
+微软决定放弃 Teams 的 Linux 应用,而用渐进式网页应用取代
+======
+
+> 微软将不再为 Teams 提供 Linux 应用。以下是你如何在 Linux 上使用 Teams 的方法。
+
+![微软决定不再为 Teams 提供 Linux 应用程序,取而代之的是渐进式Web应用程序][1]
+
+**微软爱 Linux ...** 💔
+
+如果你还记得微软的这个营销套路,那么在阅读这条新闻时,你就知道这并不完全正确。
+
+早在 2019 年,微软就为 Teams 推出了 Linux 应用的公共预览版。现在,在其存在的三年后,他们决定在 2022 年 12 月退役其 Linux 客户端。
+
+在发表这篇文章的时候,没有任何官方公告来宣布这一消息。这个消息有可能是一个使用微软 Teams 的管理员发现的,它可能是内部管理员的通知之一(据 [Hacker News][2])。
+
+该通知提到:
+
+> 我们将在 90 天内(12 月初)退役 Linux 上的微软 Teams 桌面客户端,该客户端目前以公共预览提供。所有使用微软 Teams Linux 桌面客户端的用户将不得不过渡到网页(PWA)版本,这是我们将继续投入开发资源的地方。我们会帮助所有目前在 Linux 上的客户开始使用 PWA 应用;一旦我们接近发布这一功能,我们将发布相应的指导。
+
+### 渐进式网页应用(PWA)将取代 Linux 应用程序
+
+![微软 Teams Linux 应用程序][3]
+
+微软表示,再过段时间,他们将在 Linux 上提供一个 Teams 渐进式网页应用程序(PWA)。
+
+这个 PWA 将支持背景模糊、自定义背景、反应和其他一些类似桌面应用的功能。因此,对于一些用户来说,这是一个好消息。
+
+目前还不清楚 PWA 将在何时推出,因为他们只提到你可以在未来几个月内期待它。
+
+**不幸的是**,Mozilla Firefox(Linux 的最佳浏览器之一)不提供对 PWA 的支持。
+
+因此,根据官方信息,你可以在 [Edge][4] 和 [Linux 上的 Chrome 浏览器][5]上运行 PWA :
+
+> 我们听到你说希望在 Linux 上获得微软 Teams 的全部丰富功能,如背景效果、反应、画廊视图等。我们发现对此采取行动的最佳方式是在 Linux 上提供一个 Teams 渐进式网页应用(PWA),以作为我们当前网页客户端的一个新功能,我们将在未来几个月向我们的 Linux 客户提供。
+>
+> PWA 使我们能够更快地将最新的 Teams 功能提供给我们的 Linux 客户,并帮助我们弥补 Linux 和 Windows 上 Teams 桌面客户端之间存在的差距。PWA 体验将在 Linux 上的 Edge 和 Chrome 浏览器上提供。
+
+### 你现在能做什么?
+
+老实说,Linux 上的微软 Teams 应用的体验并不是很好。
+
+因此,你应该开始使用网页应用,或者等待 PWA。当然,如果你使用 PWA 的话,你可能不习惯使用微软 Edge 或 Chrome 浏览器。但是,没办法。
+
+你也可以尝试一些非官方的 Linux 客户端,但我不确定那会有多好用。
+
+*你对微软退役其官方 Linux 应用而偏爱 PWA 或网页版有何看法?在下面的评论中分享你的想法。*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/microsoft-linux-app-retire/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [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/content/images/size/w1200/2022/09/ms-dropping-teams-for-linux.png
+[2]: https://news.ycombinator.com/item?id=32678839
+[3]: https://news.itsfoss.com/content/images/2022/09/teams-linux.jpg
+[4]: https://itsfoss.com/microsoft-edge-linux/
+[5]: https://itsfoss.com/install-chrome-ubuntu/
diff --git a/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md b/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md
new file mode 100644
index 0000000000..377b270524
--- /dev/null
+++ b/published/20220903 8 Exciting New Features in the Upcoming KDE 5.26 Release.md
@@ -0,0 +1,176 @@
+[#]: subject: "8 Exciting New Features in the Upcoming KDE 5.26 Release"
+[#]: via: "https://news.itsfoss.com/KDE-plasma-5-26-features/"
+[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-14998-1.html"
+
+即将发布的 KDE 5.26 版本中的 8 个令人感兴趣的新功能
+======
+
+> KDE Plasma 5.26 是一个令人兴奋的即将发布的更新版本,添加了大量有用的功能。
+
+
+
+在过去的五个月里,流行的桌面环境 KDE Plasma 做了一些重大的更新和大量的修复。
+
+上一个版本 Plasma 5.25 已经有了许多新的功能和改进,特别是对用户界面和体验的改进,而下一个版本听起来更令人兴奋。
+
+### KDE Plasma 5.26 有什么新功能?
+
+让我们来抢先了解一下 KDE Plasma 5.26 的一些新功能。
+
+> KDE Plasma 5.26 计划于 2022 年 10 月 6 日发布。
+
+#### 1、用户界面的改进
+
+如同上一个版本,Plasma 5.26 也对用户界面的互动方式做了许多改进。你会发现一些细微的变化,以及对在 KDE Plasma 5.26 上互动/搜索东西做了调整,**给用户更多信息**。
+
+例如,格式 和 语言 的设置页面现在已经合并了,可以给你一个更干净的外观,并摆脱了一些与之相关的常见错误。
+
+Han Young 为 [这两个页面的合并][4] 做了大量工作。
+
+因此,你可以很容易地设置默认格式,以及对 [你的地址、姓名风格、电话号码][5] 等进行设置。
+
+![KDE Plasma 5.26][6]
+
+另一个例子包括,如果你在系统设置的 “自动启动” 窗口的 “登录脚本” 部分添加一个 Shell 脚本,而该脚本没有被标记为可执行,就会显示一个警告。此外,它还包括一个按钮,单击即可设置为可执行。
+
+感谢 Nicolas Fella 的这个 [贡献][7]
+
+![][8]
+
+以及,任务切换效果 “覆盖” 和“翻转” 使用了 Plasma 对话框作为背景。
+
+在概览效果中使用的同样的 UI 组件现在也替代应用了,给人一种更一致的外观。这也包括统一的背景和模糊的效果。
+
+感谢 Ismael Asensio 的这一 [补充][9]
+
+![][10]
+
+更多的 UI 改进包括:
+
+* 打磨 KDE 应用程序以获得更干净的用户体验。
+* 调整系统设置,使其看起来更干净。
+* 对配置文件夹与 Samba 共享进行了改进。
+* 完善 Dolphin 文件管理器的用户界面。
+
+#### 2、Dolphin 的新选择模式
+
+尤其是那些使用触摸屏的用户,现在可以通过在文件夹或文件上执行长按来轻松选择或取消选择项目,就像在智能手机上一样。如果你使用的是鼠标和键盘,按空格键将进入或退出这个可选模式。
+
+此外,也将显示带有一系列选项的上下文菜单,就像右键菜单一样。
+
+感谢 Felix Ernst 的这个很酷的 [新增功能][11]。
+
+![][12]
+
+#### 3、“开始”的新紧凑模式
+
+Plasma 的本地应用程序启动器“开始”,现在支持一种新的模式,叫做“紧凑”视图。
+
+顾名思义,内容被缩小了,以便更多的项目可以被看到。请注意,这个设置对使用触摸模式的用户来说并不理想,因此被禁用。
+
+这个有用的 [新增功能][13] 来自于 Nate Graham 的出色工作。
+
+![][14]
+
+#### 4、不再模糊的 XWayland 应用程序
+
+使用 HiDPI 屏幕的 Wayland 用户面临着许多与应用程序的缩放有关的问题。为了解决这个问题,用户可以为他们的 XWayland 应用程序选择两种缩放方式。
+
+一种方法是允许使用合成器进行统一缩放,这可能会导致轻微的模糊。
+
+另一种是允许应用程序自己缩放。请注意,支持预置的 X11 HiDPI 的应用程序只能通过这种设置进行改善。
+
+甚至在每个选项上都添加了一个帮助图标,详细说明了该选项的作用,因此用户可以得到更清晰的理解。
+
+感谢 David Edmundson 和 Aleix Pol Gonzales 添加的缩放功能和 Nate Graham 的 [帮助工具提示][15]。
+
+![][16]
+
+#### 5、支持更多的硬件和固件数据
+
+系统设置中的 “关于本系统”页面已经更新,以支持更新的硬件和固件。苹果 Mac/Macbook 用户会很高兴地知道,对苹果 M1 的支持也包括在内。
+
+感谢 James Calligeros 提供的这一 [补充][17]。
+
+![][18]
+
+#### 6、对“发现”的增强
+
+KDE 的旗舰应用商店 发现 已经得到了一些有用的补充,应该可以帮助用户在选择软件时避免混淆。
+
+例如,如果正在应用页面上浏览的是测试版,“发现” 将显示一个信息框。此外,如果测试版频道已经过时或比稳定版频道更老,也会显示一个警告。
+
+![][19]
+
+如果该软件是一个插件,“来自”标签将不再显示项目的源码不可点击的 URL,而是显示“KDE 商店”。
+
+此外,用户终于可以为任何软件更新设置相应的通知频率了。
+
+这些增强来自于 Aleix Pol Gonzalez 的出色工作。
+
+#### 7、可重新绑定的鼠标按钮
+
+![鼠标附加按钮配置][20]
+
+如果你使用的鼠标有附加按钮,你可以把这些按钮分配给按键或键盘快捷键。
+
+这是由 David Rdondo 实现的,这是 KDE Plasma 5.26 的一个相当好的功能。
+
+#### 8、从文件搜索启动可执行文件
+
+在 KDE Plasma 5.26 中,当你试图打开一个通过文件搜索找到的可执行文件时,你会得到一个提示:
+
+你可以选择执行该文件或打开它。我认为这是一个相当有用的补充。
+
+#### 🛠️ 其他功能和改进措施
+
+除了上面列出的关键亮点外,还有大量的其他新增功能和错误修复。
+
+一些值得注意的更多改进包括:
+
+* 能够在主日历下同时设置和跟踪两个不同的日历。
+* Elisa 播放器有了全屏模式。
+* 可调整的面板小部件弹窗。
+* 无需应用,一键预览桌面壁纸。
+* 壁纸根据使用的浅色或深色方案自动调整图像。
+* 可以禁用 Wayland 会话的鼠标中键点击粘贴。
+* 使用 “备用” 面板在小部件之间切换时,会保存旧小部件的设置。
+
+💬 *你对 KDE Plasma 5.26 的变化感到兴奋吗?请在下面的评论中分享你的想法。*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/KDE-plasma-5-26-features/
+
+作者:[Rishabh Moharir][a]
+选题:[lkxed][b]
+译者:[wxy](https://github.com/wxy)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://news.itsfoss.com/author/rishabh/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/09/kde-5-26-release.png
+[4]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/1147
+[5]: https://bugs.KDE.org/show_bug.cgi?id=430801
+[6]: https://news.itsfoss.com/content/images/2022/08/more-things-to-configure.webp
+[7]: https://invent.KDE.org/plasma/plasma-workspace/-/merge_requests/878
+[8]: https://news.itsfoss.com/content/images/2022/08/needs-to-be-executable.webp
+[9]: https://invent.KDE.org/plasma/KDEplasma-addons/-/merge_requests/168
+[10]: https://news.itsfoss.com/content/images/2022/08/switchui.webp
+[11]: https://bugs.KDE.org/show_bug.cgi?id=427202
+[12]: https://news.itsfoss.com/content/images/2022/08/selection-mode-in-dolphin.jpeg
+[13]: https://invent.KDE.org/plasma/plasma-desktop/-/merge_requests/699
+[14]: https://news.itsfoss.com/content/images/2022/08/compact_mode.png
+[15]: https://invent.KDE.org/plasma/kscreen/-/merge_requests/108
+[16]: https://news.itsfoss.com/content/images/2022/08/kscreen-kcm-help-in-a-tooltip.webp
+[17]: https://invent.KDE.org/plasma/kinfocenter/-/merge_requests/104
+[18]: https://news.itsfoss.com/content/images/2022/08/m1-in-about.webp
+[19]: https://news.itsfoss.com/content/images/2022/08/bender-old-beta.jpeg
+[20]: https://news.itsfoss.com/content/images/2022/09/kde-plasma-5-26-mouse-buttons.png
\ No newline at end of file
diff --git a/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md b/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md
deleted file mode 100644
index 6d72143f54..0000000000
--- a/sources/news/20220822 Celluloid Video Player Gets GTK 4 UI Refresh.md
+++ /dev/null
@@ -1,102 +0,0 @@
-[#]: subject: "Celluloid Video Player Gets GTK 4 UI Refresh"
-[#]: via: "https://news.itsfoss.com/celluloid-0-24-release/"
-[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Celluloid Video Player Gets GTK 4 UI Refresh
-======
-Celluloid 0.24 release gets a modern visual refresh with libadwaita and further refinements.
-
-![Celluloid Video Player Gets GTK 4 UI Refresh][1]
-
-Celluloid is a front-end for mpv (an open-source media player for the command-line).
-
-If you want to avoid bothering with the technical details, Celluloid is one of the best video players for Linux. Many Linux distributions offer Celluloid pre-installed as the default video player, among other essential packages.
-
-With Celluloid v0.24 release, it finally uses [libadwaita][2] along with other refinements.
-
-### 🆕 Celluloid v.0.24: Overview
-
-![][3]
-
-Recently, several applications have migrated over to GTK 4 (using libadwaita).
-
-Whether you hate/love the idea, the applications seem to blend in well with GNOME while providing a modern look.
-
-For instance, a useful [BitTorrent client][4], **Fragments**, [received a UI refresh][5] earlier this year. There are more examples as well.
-
-![][6]
-
-![][7]
-
-Similarly, **Celluloid v0.24** seems to hit the right spot in user experience with this move. In addition to this change, here are the key highlights of the release:
-
-* Migrating to GTK 4
-* Dark mode support using libadwaita.
-* Redesigned control box.
-* Make controls layout adaptive.
-* Display chapter marks in the seek bar.
-* Display chapter titles in the seek bar pop over.
-* Add option to make the video area draggable.
-
-![][8]
-
-In my quick experience with Celluloid on Pop!_OS 22.04 LTS, the UI is refreshing, and works as one would expect.
-
-The dark mode looks perfect. By default, it respects the system choice. However, I would want an option to explicitly choose the dark/light theme.
-
-![][9]
-
-Maybe, we can hope for this addition with the next update.
-
-#### Suggested Read 📖
-
-![][10]
-
-![][11]
-
-### 📥 Download Celluloid 0.24
-
-If you are installing it from the repositories, you may not get the latest version yet (depends on your distribution).
-
-The best way to get the latest release is to get the Flatpak package on [Flathub][12]. You can use the software center for that or install it via the terminal using the following command:
-
-```
-flatpak install flathub io.github.celluloid_player.Celluloid
-```
-
-You can refer to our [Flatpak setup guide][13] if you are new to Linux.
-
-[Download Celluloid 0.24][14]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/celluloid-0-24-release/
-
-作者:[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/content/images/size/w1200/2022/08/celluloid-v-0-24.jpg
-[2]: https://adrienplazas.com/blog/2021/03/31/introducing-libadwaita.html
-[3]: https://news.itsfoss.com/content/images/2022/08/celluloid-0-24.jpg
-[4]: https://itsfoss.com/best-torrent-ubuntu/
-[5]: https://news.itsfoss.com/fragments-2-0-release/
-[6]: https://news.itsfoss.com/zrythm-gtk4-alpha/
-[7]: https://news.itsfoss.com/zrythm-gtk4-alpha/
-[8]: https://news.itsfoss.com/content/images/2022/08/celluloid-about.png
-[9]: https://news.itsfoss.com/content/images/2022/08/celluloid-light-0-24.jpg
-[10]: https://itsfoss.com/video-players-linux/
-[11]: https://itsfoss.com/video-players-linux/
-[12]: https://flathub.org/apps/details/io.github.celluloid_player.Celluloid
-[13]: https://itsfoss.com/flatpak-guide/
-[14]: https://celluloid-player.github.io/
diff --git a/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md b/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md
deleted file mode 100644
index 87c4e3899a..0000000000
--- a/sources/news/20220822 Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release.md
+++ /dev/null
@@ -1,117 +0,0 @@
-[#]: subject: "Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release"
-[#]: via: "https://news.itsfoss.com/kooha-2-1-release/"
-[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release
-======
-Kooha gets new feature additions to make it a more useful screen recorder for Linux. What do you think?
-
-![Kooha Screen Recorder Gets Enhanced Functionalities With Version 2.1 Release][1]
-
-Kooha is a fairly new screen recorder for Linux. It has been in development since 2021.
-
-As a modern offering, it is a good pick for users who need a screen recorder for the Wayland desktop session. We've covered it earlier.
-
-![][2]
-
-![][3]
-
-Now, a recent update, **Kooha 2.1,** made it even better and easy to recommend.
-
-In case you are wondering about, what are those features? Well, I'll be sharing those right away.
-
-### 🆕 Kooha 2.1: Key Highlights
-
-![Record screen using Kooha in Linux][4]
-
-[Kooha][5] is a minimal screen recording application with some of the essential options.
-
-With the latest release, you can expect some handy features and under-the-hood changes to enhance your user experience.
-
-So let me start off with highlight some of the best upgrades.
-
-#### More Recording Delay Options
-
-![Delay recording using Kooha screen recording in linux][6]
-
-One of the key highlights for Kooha screen recorder is the ability to add a delay for recording.
-
-While it already had options for five or ten-second delay, with Kooha 2.1, you get a **three-second** option.
-
-It may not sound much of a big deal, but you get more flexibility with options. And, the ability to start a recording after a delay is one of my favorite features about it.
-
-#### Remember Last Selection
-
-![Remember last selection in kooha][7]
-
-Kooha will remember the last option you went with to record the screen and record that window automatically if you've enabled the option to "**Remember this selection**".
-
-Note that you need to have the window active for it to work. It will not launch the window for you, if you have closed it.
-
-If you're dealing with the same window, again and again, this feature will surely come in handy.
-
-#### 🛠️ Other Changes
-
-Along with the key highlights, there are a couple of worthwhile improvements:
-
-* "Show in files" notification will now lead you to files in the default file manager.
-* "x264 encoder failing to initiate uneven resolution" is now fixed.
-* Improved error handling.
-* Codebase improvements for stability.
-* Fixed minutes stuck on 00 if time is equal or more than 1 hour.
-
-**Note:** *Technically, Kooha 2.1.1 is the latest version, which introduced minor fixes right after the major 2.1 upgrade.*
-
-The newer fixes include:
-
-* The tooltip text was improved on the settings button.
-* Kooha will fall back to manual mode while failing to get the device name using the GStreamer device monitor.
-
-#### Suggested Read 📖
-
-![][8]
-
-![][9]
-
-### 📥 Download Kooha 2.1.1
-
-The recommended way to install Kooha is to use the Flatpak package via [Flathub][10].
-
-You can also head to its [GitHub page][11] to explore more.
-
-[Download Kooha 2.1.1][12]
-
-Kooha may not be an advanced screen recorder software, but it is a nice option for most users.
-
-*Do you think Kooha can replace your default screen recorder program? Feel free to share your thoughts in the comments down below.*
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/kooha-2-1-release/
-
-作者:[Sagar Sharma][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/kooha-ft.jpg
-[2]: https://itsfoss.com/kooha-screen-recorder/
-[3]: https://itsfoss.com/kooha-screen-recorder/
-[4]: https://news.itsfoss.com/content/images/2022/08/Delay-screen-recording-using-Kooha.png
-[5]: https://itsfoss.com/kooha-screen-recorder/
-[6]: https://news.itsfoss.com/content/images/2022/08/Recording-delay-option.png
-[7]: https://news.itsfoss.com/content/images/2022/08/Remember-this-selection.png
-[8]: https://itsfoss.com/best-linux-screen-recorders/
-[9]: https://itsfoss.com/best-linux-screen-recorders/
-[10]: https://flathub.org/apps/details/io.github.seadve.Kooha
-[11]: https://github.com/SeaDve/Kooha
-[12]: https://github.com/SeaDve/Kooha
diff --git a/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md b/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md
deleted file mode 100644
index f207a6022f..0000000000
--- a/sources/news/20220823 An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk.md
+++ /dev/null
@@ -1,40 +0,0 @@
-[#]: subject: "An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk"
-[#]: via: "https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-An Open Source Mod-Based Method Of Universal Windows Customization, Windhawk
-======
-
-![][1]
-
-It seems like Microsoft is eliminating customising possibilities with every new version of Windows. An open source solution called Windhawk makes an effort to revive and add new Windows customizations. Windhawk was created by Ramen Software, known for other tools like Textify and 7+ Taskbar Tweaker, to streamline the process of making adjustments to programmes and the operating system.
-
-An example is the developers’ own taskbar tweaker for Windows. Understanding some of the inner workings of the operating system, such as process injection or function hooking, is required to develop such an app. All programmers who want to build customizations must learn and comprehend these. Without having to construct these additional features, Windhawk was developed as a core for customizations to which anyone may contribute.
-
-The modular design of Windhawk is one of its key concepts. Users of Windhawk can download and install mods and tweaks that developers have created on their systems. You can run Windhawk as a portable programme or with an installation. The program’s primary interface lists a number of highlighted improvements, including Dark Mode for Notepad, mouse-over volume controls, and mouse-wheel scrolling for Chrome and Edge tabs.
-
-All currently offered mods are displayed when “browse for mods” is clicked. Other notable changes included in these are the ability to turn off grouping on the taskbar, providing the ability to rearrange taskbar thumbnails with the left mouse, and adding text labels for apps in Windows 11. A new page with installation options, the source code, and a preview of the tweak may be accessed by clicking the details button. The mods that are available list compatibility details, but not all of them do.
-
-On the local system, a fork option is available to create a customised version of a mod. Users can disable any development-related features in the Windhawk interface in the settings if they don’t want them there.
-
-A warning that changes may harm the system, violate privacy, or inflict other harm is displayed when you click install. To continue with the installation or cancel it, select “accept risk and install.” Installations proceed quickly and silently. To once more remove the mod from the system, the install button transforms into an uninstall button. The system adjustments could take a while to take effect.
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/08/an-open-source-mod-based-method-of-universal-windows-customization-windhawk/
-
-作者:[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/08/microsoft-1536x1024.jpg
diff --git a/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md b/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md
deleted file mode 100644
index f3cef1a375..0000000000
--- a/sources/news/20220824 It-s Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering"
-[#]: via: "https://news.itsfoss.com/infinitybook-pro-14-release/"
-[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering
-======
-TUXEDO Computers is back with an impressive flagship lineup, a massive battery variant, and a storage edition. Let's check them out.
-
-![It's Massive! InfinityBook Pro 14 is a Lightweight Linux Laptop With a HUGE 99Wh Battery Offering][1]
-
-TUXEDO Computers are one of the few manufacturers that provide fine-tuned Linux experiences out of the box.
-
-You can expect Ubuntu/TUXEDO OS as your default options with any of their devices, but they also support more Linux distributions.
-
-Now, they have come up with a refreshed product lineup, i.e., **InfinityBook Pro 14 (Gen 7).**And, it happens to be one of their flagship offerings!
-
-### InfinityBook Pro 14: Key Highlights
-
-![Tuxedo infinitybook pro 14][2]
-
-InifnityBook Pro 14 sports a 3K resolution display (a.k.a. *Omnia 3K display*) with a 16:10 ratio.
-
-To elevate your visual experience, the display supports 400 nits of brightness and complete sRGB color space coverage, so colors will be more natural.
-
-![tuxedo computer][3]
-
-It also has a matt coating to the panel that should eliminate the disturbing glares that may end up disturbing your productivity.
-
-Tuxedo came up with two lightweight variants for this lineup, so you can choose what your workflow demands the most without compromising portability.
-
-🔋 **An endurance edition with 99 Wh Battery**(*1.1 kg*) 💾 **A storage giant with 4 TB SSD (***1.3 kg***)**
-
-![Tuxedo infinitybook pro with 99Wh of battery][4]
-
-99 Wh battery for a laptop sounds like a dream come true for users who want to get more out of their portable machines.
-
-TUXEDO Computers claims around 10 hours of runtime while connected with active WLAN and web surfing and while used with battery saving mode/idle usage, this can go up to 16 hours!
-
-![Tuxedo infinitybook pro 14 with 4TB of storage][5]
-
-If you do not need maximum endurance, you can opt for the second variant with more storage expansion opportunity.
-
-You can use **x2 available M.2 slots**, by which you can upgrade your storage up to 4 TB (considering 2TB on each slot).
-
-To maximize storage performance/reliability, you can connect the SSDs in a RAID cluster form.
-
-#### Suggested Read 📖
-
-[13 Places to Buy Linux Laptops in 2021][6]
-
-### 💻 Other Specifications
-
-Along with a good display, enhanced storage options, and a massive battery, you can expect a pretty solid performance with the following specifications:
-
-* 14-core Intel 12th gen processor (i7-12700H) equipped with 8 efficiency and 6 performance cores.
-* NVIDIA GeForce RTX 3050 Ti (optional) Max-Q variant with TGP of 35 watts (boost up to 45 watts).
-* Up to 64 GB DDR 3200 MHz RAM (to slots for dual-channel setup).
-* Thunderbolt 4 with onboard transmission speed up to 40 Gbit/s.
-* White backlit keyboard.
-* Intel Wi-Fi 6 and Bluetooth 5.2.
-* Full-size SD card reader.
-* TUXEDO Control Center (TCC) to manage power, security, and a lot more.
-
-### 🏷️ Pricing & Availability
-
-If you want to go with the 99Wh battery variant, with *NVIDIA GeForce RTX 3050 Ti, 1x 8 GB 3200 MHz DDR4 RAM, and a 250 GB Samsung 980 EVO Plus NVMe SSD***,**it will cost you **1629,41 EUR.**
-
-While if you're looking for the storage edition with a 53 Wh battery, it is priced at **1587,39 EUR** and includes one *250 GB Samsung 980 EVO Plus NVMe SSD,1x 8 GB 3200 MHz DDR4 RAM, NVIDIA GeForce RTX 3050 Ti 4 GB* for the base configuration.
-
-It will be available to order by the end of August. As of now, you can configure, and pre-order it.
-
-[Get InfinityBook Pro 14][7]
-
-💬 *What do you think about the InifinityBook Pro 14? Does it seem interesting for you to get one? Share your thoughts in the comments below.*
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/infinitybook-pro-14-release/
-
-作者:[Sagar Sharma][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/tuxedo-infinitybook-14-.jpg
-[2]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14.jpg
-[3]: https://news.itsfoss.com/content/images/2022/08/image.png
-[4]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-with-99Wh-battery.jpg
-[5]: https://news.itsfoss.com/content/images/2022/08/InfinityBook-Pro-14-storage-edition.jpg
-[6]: https://itsfoss.com/get-linux-laptops/
-[7]: https://www.tuxedocomputers.com/en/TUXEDO-InfinityBook-Pro-14-Gen7.tuxedo#
diff --git a/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md b/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md
deleted file mode 100644
index 625f67b769..0000000000
--- a/sources/news/20220824 Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration.md
+++ /dev/null
@@ -1,35 +0,0 @@
-[#]: subject: "Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration"
-[#]: via: "https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Webmin 2.0 Is Now Available For Open Source Web-Based Server Administration
-======
-With its significant “v2.0” release, Webmin, a well-liked open source web-based server administration/management software package that is a popular alternative to programmes like cPanel and Plesk, is now available.
-
-Webmin’s safe web browser-based interface makes it simple to manage Linux servers. This programme is still primarily Perl-based and BSD-licensed. In the twenty years that Webmin has been used to manage Linux servers, it has placed a strong emphasis on preserving backwards compatibility. Years ago, there was talk about reworking much of the code and getting rid of a lot of the legacy support, including support for out-of-date Perl versions and end-of-life operating systems. For Webmin 2.0, this ultimately wasn’t the case.
-
-Webmin 2.0 was released this week as a more incremental improvement over the Webmin 1.xxx releases. Originally, the bump to Webmin 2.0 would have been deleting the legacy support that has accrued over the years. Webmin 2.0 now enforces the HTTP Strict Transport Security (HSTS) policy for its SSL enabled mode, improves HTTP to HTTPS redirection, supports managing multiple Webmin versions on systems based on systemd, improves upgrading between minor Webmin versions, and more.
-
-Another significant improvement in Webmin 2.0 is the addition of support for AMD CPU temperature reporting within the administration interface.
-
-Webmin 2.0 includes fixes such as restarting dependant services when firewalld is restarted, keeping Usermin and Webmin’s service status when upgrading packages, and more. You can download Webmin 2.0 (v2.000) from [GitHub][1].
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/08/webmin-2-0-is-now-available-for-open-source-web-based-server-administration/
-
-作者:[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://github.com/webmin/webmin/releases/tag/2.000
diff --git a/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md b/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md
deleted file mode 100644
index 8a2be8721b..0000000000
--- a/sources/news/20220825 NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem.md
+++ /dev/null
@@ -1,36 +0,0 @@
-[#]: subject: "NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem"
-[#]: via: "https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-NGINX Pledges To Update, Improve, And Expand Its Open Source Ecosystem
-======
-The maker of the well-known web server with the same name, NGINX, unveiled a number of upgrades at its free NGINX Sprint conference for open source programmers looking to create the newest applications. It also discussed its development over the last 18 years and presented its future vision, which will be based on the three promises of modernise, optimise, and extend.
-
-Code management, decision-making transparency, and community involvement are all aspects of modernization that go beyond just the code itself. All of its future projects will be hosted on GitHub rather than the Mercurial version control system, as part of this and a recognition that the open-source world exists there. In addition, it will carefully consider community input and add codes of conduct to all of its projects.
-
-It intends to launch a new SaaS service that connects with NGINX Open Source in order to enhance the developer experience. It also intends to remove the paywall from several essential NGINX Open Source and NGINX Plus capabilities so that customers can access them without charge. One item that will be made accessible in this way is DNS service discovery, and the business is appealing for user input on what else should be free in its Slack channel.
-
-The third pledge is to keep developing NGINX’s functionality. Currently, NGINX is most frequently utilised as a Layer 7 data plane, necessitating the adoption of numerous workarounds by developers for different deployment components. It aims to expand NGINX so that an open-source component that integrates with NGINX can fulfil each criteria for testing and deployment.
-
-With the announcement of three upgrades that support these objectives, the company has already begun to fulfil these commitments. First, it will concentrate on its NGINX Kubernetes Gateway rather than its Kubernetes Ingress controller. Earlier this year, NGINX Kubernetes Gateway, a controller that implements the Kubernetes Gateway API, was made available.
-
-The introduction of NGINX Agent, a compact application that can be installed alongside NGINX Open Source instances, was also announced. Features that were previously exclusively found in commercial offers will be included.
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/08/nginx-pledges-to-update-improve-and-expand-its-open-source-ecosystem/
-
-作者:[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
diff --git a/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md b/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md
deleted file mode 100644
index 2d77c32b17..0000000000
--- a/sources/news/20220826 Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration.md
+++ /dev/null
@@ -1,108 +0,0 @@
-[#]: subject: "Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration"
-[#]: via: "https://news.itsfoss.com/lutris-0-5-11-release/"
-[#]: author: "Sagar Sharma https://news.itsfoss.com/author/sagar/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration
-======
-Lutris 0.5.11 is a nice update with new Macintosh emulators and Amazon Games integration.
-
-![Lutris 0.5.11 Adds Open Source Macintosh Emulators and Amazon Games Integration][1]
-
-Lutris is an open-source game manager on Linux, giving you easy access to all kinds of game clients like Ubisoft Connect, Epic Games Store, and more.
-
-It made things so much easier for many Linux users. We also interviewed its creator in the past, with an insightful conversation:
-
-[The Progress Linux has Made in Terms of Gaming is Simply Incredible: Lutris Creator][2]
-
-Now, with the latest update to it (a minor release), we have some exciting feature additions!
-
-### 🆕 Lutris 0.5.11: What's New?
-
-![Lutris 0.5.11][4]
-
-Being a point release, you may not notice any visual changes, but you get some new features and fixes to improve your user experience.
-
-First, I'd like to mention some key features in this release:
-
-* Integration for Amazon Games launcher.
-* Added support for open-source Macintosh emulators named SheepShaver, BasiliskII, and Mini vMac.
-* Made changes to shortcuts to toggle installed (Ctrl + i) games and hidden games (Ctrl + h).
-* Gnome terminal and Deepin terminal are now recognized as terminal emulators.
-* Added support for Gamescope on Nvidia driver 515 and above.
-
-Let me discuss more about the changes:
-
-#### 🕹️ Amazon Prime Games Integration
-
-![Lutris with Amazon prime gaming support][5]
-
-This may not sound much, but Amazon's game launcher is a Windows-specific thing for playing games. Now, thanks to the integration support by Lutris, you can access and try playing the games available under Wine.
-
-You can enable Amazon Prime Gaming from **Preference>Sources**.
-
-#### 🖥️ Addition of Open-Source Macintosh emulators
-
-![Lutris with support for open-source macintosh emulators][6]
-
-This release has added three Macintosh open-source runners (emulators).
-
-Curious about what they do?
-
-Well, two of them (Basilisk II and Mini vMac) are made to run 32-bit Macintosh machines. And, the third one, SheepShaver, is made to run programs from the PowerPC Macintosh lineup.
-
-#### ⌨️ Recognize GNOME Console and Deepin Terminal
-
-![Running games in Linux terminal with Lutris][7]
-
-With this point release, the support for the GNOME console and Deepin terminal was added to emulate text-based programs.
-
-So, you no longer have to rely on what Lutris gives you by default!
-
-#### 🛠️ Other Changes
-
-Along with the highlights, another key change includes the s**upport for Gamescope** for Nvidia drivers 515 and above.
-
-Gamescope can be paradise while playing low-resolution games as it helps you to upscale the resolution.
-
-Some other fixes and refinements include:
-
-* Commands exiting with return code 256 for some installer is fixed.
-* Lutris will no longer perform runtime even if the game is launched through shortcuts.
-* Random crashes are now fixed when Lutris was not able to determine screen resolution.
-* When Mangohud was used alongside Gamescope, it often crashed, which is now fixed.
-
-#### 📥 Download Lutris 0.5.11
-
-There are many ways to download the latest Lutris version for your Linux system. I would recommend using the Flatpak package from [Flathub][10].
-
-You can also install it from your software center, or visit the official website to explore more options.
-
-[Download Lutris][11]
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/lutris-0-5-11-release/
-
-作者:[Sagar Sharma][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/sagar/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/lutris-0-5-11-update.jpg
-[2]: https://news.itsfoss.com/lutris-creator-interview/
-[4]: https://news.itsfoss.com/content/images/2022/08/Lutris.png
-[5]: https://news.itsfoss.com/content/images/2022/08/Amazon-Prime-games-integration.png
-[6]: https://news.itsfoss.com/content/images/2022/08/Macintosh-emulators-1.png
-[7]: https://news.itsfoss.com/content/images/2022/08/Deepin-terminal.png
-[8]: https://itsfoss.com/epic-games-linux/
-[10]: https://flathub.org/apps/details/net.lutris.Lutris
-[11]: https://lutris.net/
diff --git a/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md b/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md
deleted file mode 100644
index 478b3db313..0000000000
--- a/sources/news/20220826 Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here-s Why.md
+++ /dev/null
@@ -1,36 +0,0 @@
-[#]: subject: "Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why"
-[#]: via: "https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Wii U Emulator Cemu Going Open Source Is Significant For Emulation, Here’s Why
-======
-The Wii U emulator Cemu’s developer announced a significant 2.0 version release on Tuesday, delivering Linux binaries for the first time and opening up eight years of labour. Cemu, a Wii U emulator, made history in 2017 by earning thousands of dollars each month through Patreon to support its development. Cemu’s well-known Patreon, which briefly reached a peak income of $25,000, raised concerns about the morality of emulation, particularly when money is exchanged and when a project is “closed source” as opposed to “open source,” which means that the source code isn’t made available to the general public.
-
-One of the main ways the emulation community defends itself from legal action is by making its source code available to the public, allowing litigious companies like Nintendo to examine it and verify that none of their proprietary code is used in the reverse-engineering process.
-
-Linux support, according to Exzap, is “still pretty rough around the edges,” but he believes that will change rapidly as more emulator developers become familiar with Cemu and start to contribute to the project. Cemu was previously only compatible with Windows, but now that Linux is supported, it is possible to install it quickly on the Steam Deck. Before Cemu introduces flatpak support for one-click installation, it won’t be simple to start using the Deck, however that topic is already being explored on Github.
-
-The author of Cemu used the 2.0 announcement to briefly discuss the emulator’s history; they were the only developers for the most of the emulator’s existence, and they claimed that the last two years have been particularly taxing on the project.
-
-Exzap will continue to contribute, but anticipates that having other developers will aid in the creation of several important features, such as the ability to pause and resume emulation and enhance performance on older hardware.
-
-“I have been working on Cemu for almost 8 years now, watching the project grow from an experiment that seemed infeasible, to something that, at its peak, was used by more than a million people,” exzap wrote on Tuesday. “Even today, when the Wii U has been mostly forgotten, we still get a quarter million downloads each month. There are still so many people enjoying Wii U games with Cemu and I will be eternally grateful that I got the chance to impact so many people’s life in a positive way, even if just a tiny bit.”
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/08/wii-u-emulator-cemu-going-open-source-is-significant-for-emulation-heres-why/
-
-作者:[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
diff --git a/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md b/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md
new file mode 100644
index 0000000000..bbb7ffa1ad
--- /dev/null
+++ b/sources/news/20220830 Live Debugger Tool for Apps, Sidekick, is Now Open Source.md
@@ -0,0 +1,74 @@
+[#]: subject: "Live Debugger Tool for Apps, Sidekick, is Now Open Source"
+[#]: via: "https://news.itsfoss.com/sidekick-open-source/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Live Debugger Tool for Apps, Sidekick, is Now Open Source
+======
+Sidekick is a live application debugger with useful features. It is now open-source and can be self-hosted.
+
+![Live Debugger Tool for Apps, Sidekick, is Now Open Source][1]
+
+Sidekick is a live application debugger, meaning it lets developers know about bugs and issues in their applications in real-time.
+
+It was primarily a paid tool for the job, with a 14-day trial plan to test it out.
+
+📢 *And now*: **it is open-source**!
+
+So, if you were hesitating to pay for the tool as a subscription, you can now **self-host it and use it for free** as per your requirements.
+
+### 💡 What is Sidekick?
+
+![Meet Sidekick , Your Brand New Live Application Debugger 🔥][2]
+
+[Sidekick][3] is a real-time application debugger.
+
+You no longer need to recreate production environments on your local machine, Sidekick lets you debug as they're running. It tries to give you the same kind of perks that you get when you debug in your local environment.
+
+It offers a range of features that lets you send the collected data to third-party apps like Slack, and use Sidekick plugin with some of your favorite IDEs including Visual Studio Code or IntelliJ IDEA.
+
+You can filter out relevant data to quickly debug issues by using its data collection feature.
+
+With the insights provided to you, Sidekick helps you optimize cost, eliminate issues, and collaborate efficiently to keep your application running without hiccups.
+
+### 🚀 How to Get Started?
+
+For starters, you can head to its [official website][6] and try it out in the [sandbox environment][7].
+
+If you want a managed platform to use Sidekick, you can opt in for the subscription plans that start at **$29** per month.To opt for **self-hosting**, you can use their official Docker image available or choose to build it yourself.
+
+You can find the source code and the instructions for it in its [GitHub page][8].
+
+In either case, you should refer to its [official documentation][9].
+
+[Sidekick GitHub][10]
+
+💬 *What do you think about Sidekick as a free and open-source live application debugger? Have you tried it before? Kindly let us know your thoughts in the comments below.*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/sidekick-open-source/
+
+作者:[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/content/images/size/w1200/2022/08/sidekick-live-debugger-open-source.png
+[2]: https://youtu.be/qy4Nu6CIeuM
+[3]: https://www.runsidekick.com/
+[4]: https://itsfoss.com/install-visual-studio-code-ubuntu/
+[5]: https://itsfoss.com/install-visual-studio-code-ubuntu/
+[6]: https://www.runsidekick.com/
+[7]: https://app.runsidekick.com/sandbox
+[8]: https://github.com/runsidekick/sidekick
+[9]: https://docs.runsidekick.com/
+[10]: https://github.com/runsidekick/sidekick
diff --git a/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md b/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md
new file mode 100644
index 0000000000..4be20bdb91
--- /dev/null
+++ b/sources/news/20220901 OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon.md
@@ -0,0 +1,112 @@
+[#]: subject: "OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon"
+[#]: via: "https://news.itsfoss.com/obs-studio-28-release/"
+[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon
+======
+OBS Studio 28.0 gets a visual refresh, and gears up for modern use-cases with new tech support.
+
+![OBS Studio 28.0 is a Massive Upgrade With Qt6, HDR Support; Also Works on Apple Silicon][1]
+
+One of the most popular pieces of open-source software, OBS Studio, gets a major upgrade.
+
+It is one of the best screen recorders on Linux, and for that matter, pretty much every other desktop platforms too (Windows/macOS). This release brings a boatload of new features, which build upon the numerous previous features as well.
+
+Let’s take a look at what’s new!
+
+### 🆕 OBS Studio 28.0: Impactful Release
+
+The last release that we covered, OBS 27.2, brought official Flatpak support as well as a plethora of UI improvements.
+
+[OBS Studio 27.2 Adds Official Flatpak Support and Makes Things Easier for Linux Users][2]
+
+With version 28.0, we are getting some of the key highlights that include:
+
+* UI framework upgrade (Qt6).
+* HDR and 10-bit color support.
+* Native Apple Silicon support.
+* New default theme (Yami).
+* Encoding improvements.
+
+Before you get to try it out, let me briefly discuss some enhancements.
+
+#### Improved Color And High Dynamic Range Support
+
+![obs studio][4]
+
+As OBS Studio becomes ever more popular, it was time to support more modern use cases. One such case is the use of HDR to allow for significantly greater realism without “clipping” the screen. This means that whites can be whiter, and blacks can be blacker, without losing the accuracy of colors in between.
+
+Speaking of colors, OBS Studio 28.0 also introduces 10-bit color support. In essence, this means that streams captured using OBS can support as many as 1 billion colors, compared to the measly 16 million offered by 8-bit color. The result is an almost complete removal of blocks of color in dark settings, as well as smoother gradients without having to resort to dithering.
+
+#### Native Apple Silicon Support
+
+Although not of particular relevance to Linux users, this release is the first with native Apple Silicon support. We’ve already seen native ARM support for other platforms, (notably Linux and the Raspberry Pi), and it is great to see this support extend to Apple’s ARM platform.
+
+However, it should be noted that not all plugins will work out of the box on these builds, as many depend on some x86-only components. Therefore, using the x86 version may still be better, at least until all the plugins you use get updated.
+
+#### UI Framework Upgraded To Qt6 & New Theme (Yami)
+
+![obs studio][5]
+
+Qt, the software used to make the graphical components of OBS, has had a major upgrade within this version. Previously, OBS Studio used Qt5, the same software KDE Plasma is built using.
+
+OBS Studio 28.0 finally brings Qt6 support, which has a huge number of benefits for all platforms. Firstly, it means that OBS Studio can use Vulkan or Metal instead of the outdated OpenGL API. For users on high DPI monitors, OBS Studio should also now scale correctly.
+
+Unfortunately, this change also means that some older platforms can no longer be supported. So, if you are using Ubuntu 18.04 or older, Windows 7 or 8, or a 32-bit OS, it may not work.
+
+One can expect a visual makeover with the UI framework update. And, the new default theme gives you that. It looks pretty clean compared to its older version.
+
+### 🛠️ Other Changes
+
+Alongside those previously mentioned, OBS Studio brings a couple of other, smaller changes. These include:
+
+* Updated AMD Encoder on Windows.
+* Support for ScreenCaptureKit on macOS 12.5+, resulting in significantly improved capture performance.
+* Significant improvements to Apple VT encoder on macOS.
+* Application-specific audio capture on Windows.
+* Integrated NVIDIA Background Removal on Windows.
+
+For more details, you can refer to the [official release notes][6].
+
+### 📥 Download OBS Studio 28.0
+
+The best way to get the latest version is to install the Flatpak package via [Flathub][9]. You can also get it using the Steam client on any platform.
+
+For other platforms and options, you can head to its [GitHub releases section][10] to download packages.
+
+[Download OBS Studio 28.0][11]
+
+### Wrapping Up
+
+Overall, this release has brought a huge number of exciting new changes, and I’m curious to see how they affect peoples workflows.
+
+Unfortunately, if you are on KDE, the main UI may look somewhat broken, due to an incompatibility with KDE’s breeze theme. However, for everyone else, I wouldn’t expect any major bugs.
+
+*Please share your thoughts on this release in the comments down below!*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/obs-studio-28-release/
+
+作者:[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/content/images/size/w1200/2022/08/obs-28-0.jpg
+[2]: https://news.itsfoss.com/obs-studio-27-2-release/
+[4]: https://news.itsfoss.com/content/images/2022/08/obs-studio-28.png
+[5]: https://news.itsfoss.com/content/images/2022/08/OBS-Screenshot-02.png
+[6]: https://github.com/obsproject/obs-studio/releases/tag/28.0.0
+[9]: https://flathub.org/apps/details/com.obsproject.Studio
+[10]: https://github.com/obsproject/obs-studio/releases
+[11]: https://obsproject.com/
diff --git a/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md b/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md
new file mode 100644
index 0000000000..d07382796e
--- /dev/null
+++ b/sources/news/20220901 Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10.md
@@ -0,0 +1,89 @@
+[#]: subject: "Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10"
+[#]: via: "https://news.itsfoss.com/unity-remix-official-flavor/"
+[#]: author: "Abhishek https://news.itsfoss.com/author/root/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10
+======
+Ubuntu Unity Remix gets the official flavor tag.
+
+![Unity Desktop Makes a Comeback With the Upcoming Ubuntu 22.10][1]
+
+I loved the Unity desktop but not enough to keep on using it when Ubuntu ditched it in 2017 for GNOME.
+
+I have started liking the customized GNOME Ubuntu offers. And the old flame enters again.
+
+📣 Ubuntu Unity is going to be an official Ubuntu flavor with the release of version 22.10 Kinetic Kudu.
+
+> Good news for all Ubuntu Unity lovers! We're an Ubuntu daily flavor now and our ISOs will now be built daily with all other flavors and uploaded to [https://t.co/pELGw8Cct0][2]. Ubuntu Unity 22.10 Beta will be our first release as an official recognized flavor (Sep 29). YAY! 🎉 (1/2) [pic.twitter.com/9ykBYmIA1V][3]
+
+### A quick recap to Ubuntu Unity Remix
+
+The young developer [Rudra Saraswat][5] started (another) new distribution called Ubuntu Unity Remix back in 2020. It was built on top of Ubuntu 20.04 LTS with the same Unity 7 that was abandoned by Ubuntu.
+
+I ignored it. It was just the old Unity with Ubuntu 20.04 as base. A code untouched for three years? I saw no reasons to use it.
+
+And it went on like that for almost two years. No changes were made to the Unity code base.
+
+But then in June 2022, for the first time in six years, a new version of Unity was released.
+
+[Announcing the stable release of Unity 7.6][6]
+
+In my opinion, it was the first time the project showed real progress. It was no longer just a combination of the same old Unity code with a new Ubuntu base. There was actual code development.
+
+The Ubuntu Unity Remix team seems determined to not just keep Unity alive but keep it healthy by fixing bugs and adding new features.
+
+And that determination is what helped them gain the [official Ubuntu flavor][8]. Congratulations to them!
+
+![Ubuntu Unity desktop][9]
+
+### Official Ubuntu flavor? What kind of honor badge is that?
+
+The diverse Linux world has several desktop environments (DEs).
+
+While the Ubuntu developers focus on the GNOME desktop, community members offer Ubuntu with DEs like KDE (Kubuntu), Xfce (Xubuntu) etc. There are also special purpose variants like Ubuntu Studio (for audio and video editors) and Ubuntu Kylin (for Chinese users).
+
+These official flavors follow the same release cycle as the main Ubuntu release and get the same packages and updates as the default Ubuntu GNOME.
+
+Not all Ubuntu remixes are [official flavors][10] though. Ubuntu Cinnamon Remix and Ubuntu DDE Remix exist but don't have the 'official tag' yet.
+
+### What next for Ubuntu Unity Remix?
+
+First, it is now called Ubuntu Unity, not Ubuntu Unity Remix. Since it is an official flavor now, it can drop the 'remix' from its name. The 'remix' indicates that the project is not officially supported by Ubuntu/Canonical.
+
+As an official flavor, the daily builds of Ubuntu Unity Remix version 22.10 will be served from the [Ubuntu archives][11] (not added at the moment).
+
+It will follow the same release schedule as Ubuntu 22.10 and will be released in October along with the other Ubuntu flavors.
+
+You can follow the project's progress on [its website][12] or join its social media channels.
+
+💬 What do you think of Ubuntu Unity getting the official flavor status? Are you looking forward to going back to Unity? The comment section is all yours.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/unity-remix-official-flavor/
+
+作者:[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/content/images/size/w1200/2022/09/Ubuntu-unity-official-flavor-status.png
+[2]: https://t.co/pELGw8Cct0
+[3]: https://t.co/9ykBYmIA1V
+[4]: https://twitter.com/ubuntu_unity/status/1565309779031236608?ref_src=twsrc%5Etfw
+[5]: https://about.ruds.io/
+[6]: https://unity.ubuntuunity.org/blog/unity-7.6/
+[8]: https://itsfoss.com/which-ubuntu-install/
+[9]: https://news.itsfoss.com/content/images/2022/09/unity_desktop.png
+[10]: https://ubuntu.com/desktop/flavours
+[11]: https://cdimage.ubuntu.com/
+[12]: https://ubuntuunity.org/
diff --git a/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md b/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md
new file mode 100644
index 0000000000..c21fe2ee74
--- /dev/null
+++ b/sources/news/20220905 StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time.md
@@ -0,0 +1,91 @@
+[#]: subject: "StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time"
+[#]: via: "https://news.itsfoss.com/stackaid-beta/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time
+======
+StackAid is an interesting initiative to help developers/contributors fund open-source project dependencies.
+
+![StackAid Helps Developers Fund Hundreds of Open-Source Project Dependencies in No Time][1]
+
+Free and open-source projects empower you with essential tools and services without spending a dime.
+
+While that sounds exciting, these projects need funding to keep things running and potentially improve your experience with it.
+
+Fortunately, we have several platforms to support and fund open-source projects:
+
+[Easily Fund Open Source Projects With These Platforms - It’s FOSS][2]
+
+But, how can the maintainers/contributors fund the **dependencies associated with their projects?**
+
+There are potentially hundreds of dependencies in a single project. So, to start funding, some daunting tasks include:
+
+* Responsibility of supporting open-source projects.
+* Selecting a project to fund.
+* Deciding on the donation subscription tier for funding for each project.
+* Keep track of dependencies to fund.
+
+Interestingly, there is a service that **solves the problem, i.e. StackAid.**
+
+### StackAid: What Does it Do?
+
+> ⚠️ StackAid is not an open-source service, and it's in beta phase, targeted for developers and project contributors who want to fund the dependencies linked to their projects.
+
+StackAid aims to help you quickly fund the dependencies of your project in one go.
+
+It finds your project's dependencies (**direct and indirect**) through its GitHub app (**invite-only access**) and allocate funds as per your subscription to distribute it among them.
+
+![][4]
+
+The subscription to StackAid starts at **$15**.
+
+You require your project's **package.json**file or generate a **stackaid.json** file (using [GitHub action][5]) to automate listing the dependencies. Of course, you can edit the list manually and add more as well.
+
+You also get the ability to select the dependencies you want to support.
+
+![][6]
+
+It then automates the funding allocation by evenly distributing your subscription fee among various dependencies.
+
+Note that StackAid receives the same amount as a direct dependency out of the subscription fee to make money. However, the maximum it takes is **7.5%** of the total subscription fee.
+
+### How Do Open-Source Projects Get the Money?
+
+StackAid explains that the open-source projects can claim their repositories by installing the StackAid GitHub app.
+
+We reached out to them to clarify how the repository owners will get notified/know about StackAid in the first place. And, this was the response:
+
+StackAid mentions that if a project does not claim the amount allocated to them by subscribers, the amount gets re-allocated to other dependencies that are claimed. This is a good thing.
+
+You can explore more on their website.
+
+[StackAid][7]
+
+The concept sounds nice. And, it will be interesting if this can be a platform for users in the near future (not just developers or maintainers).
+
+*💬 What do you think about StackAid? Kindly let us know your thoughts in the comments.*
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/stackaid-beta/
+
+作者:[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/content/images/size/w1200/2022/09/stackaid.jpg
+[2]: https://itsfoss.com/open-source-funding-platforms/
+[4]: https://news.itsfoss.com/content/images/2022/09/stackaid_dashboard-1.png
+[5]: https://github.com/marketplace/actions/stackaid-dependency-generator
+[6]: https://news.itsfoss.com/content/images/2022/09/stackaid_dashboard_manage.png
+[7]: https://www.stackaid.us/
diff --git a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md
index bb9e78a357..746af9c49f 100644
--- a/sources/talk/20220811 What is the Difference Between macOS and Linux-.md
+++ b/sources/talk/20220811 What is the Difference Between macOS and Linux-.md
@@ -1,247 +1,231 @@
-[#]: subject: "What is the Difference Between macOS and Linux?"
-[#]: via: "https://itsfoss.com/mac-linux-difference/"
-[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: "Donkey-Hao"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-What is the Difference Between macOS and Linux?
+macOS 和 Linux 有什么区别?
======
-We often[compare Linux with Windows][1], but what about comparing it with macOS?
+我们经常对比 [Linux 和 Windows][1],那 macOS 和 Linux 有什么区别呢?
-While the differences between Linux and Windows are quite obvious, Linux and macOS may seem similar to many.
+Linux 和 Windows 的差异很明显,但 Linux 和 macOS 却很相似。
-Both can run Unix commands in the terminal, and the user experience is vastly different from Windows. And not all Windows applications and games are available for macOS and Linux.
+二者都可以在命令行中运行 Unix 命令,并且与用户在 Windows 中的体验大相径庭。同时,并不是所有 Windows 上的应用和游戏可以在 macOS 和Linux 上运行。
-This is why some people even think Apple’s macOS is based on Linux. But that is not the case. macOS is not Linux despite the similarities.
+这就是为什么一些人认为苹果公司的 macOS 是基于 Linux 的系统。尽管有相似之处,但 macOS 并不是 Linux。
-There are plenty of differences between the two UNIX-like operating systems and I shall highlight both the similarities and the differences in this article.
+这两个类 Unix 的操作系统有很多不同之处,我将在这篇文章中指出二者的异同之处。
-So, let’s compare Apple and Orange Penguin.
+就让我们来比较一下苹果和橙色企鹅吧。
-### macOS vs. Linux: Origins
+### macOS vs. Linux:起源
-macOS has a fascinating history. The foundation of it was built by Steve Jobs’s NeXT computer company when he wasn’t at Apple. Technically, it was based on the [Mach Kernel][2] and the UNIX-derived BSD.
+macOS 有一段迷人的历史。它是由史蒂夫·乔布斯的计算机公司 NeXT 所开发的,那时候乔布斯不在苹果公司工作。从技术上讲,它是基于 [Mach 内核][2] 和 Unix 派生的 BSD。
-Back then, a [NeXTSTEP][3] operating system was created to power the devices/computers built by **NeXT**. While it got some attention, it wasn’t a big success. Apple later acquired NeXT and brought back Steve onboard as part of the deal, making NeXTSTEP OS the base for macOS.
+那时候,**NeXT** 开发了 [NeXTSTEP][3] 操作系统来驱动它设计的设备和电脑。尽管有一些人注意到了该操作系统,但是它未获得成功。之后,苹果公司以恢复史蒂夫在董事会的席位作为交易的一部分,收购了 NeXT 公司,使得 NeXTSTEP OS 成为 macOS 的基础。
-This is why macOS has a combination of Unix components along with Apple’s proprietary technologies.
+这就是为什么 macOS 是 Unix 组件和苹果公司独家技术相结合的操作系统。
-**On the contrary**, Linux (the kernel) was built as a free and open-source replacement for Unix.
+**相反**,Linux (内核)是自由并开源的 Unix 的替代品。
-Linux is not an operating system but needs different components like [desktop environments][4] to form an operating system. There are [hundreds of Linux-based operating systems][5] called distributions.
+Linux 不是一个操作系统,它需要一些组件比如 [桌面环境][4] 才能成为一个操作系统。有许多 [基于 Linux 的操作系统][5],称之为发行版 (distributions) 。
-For simplicity, we tend to address it as **Linux** OS instead of a specific Linux distribution.
+简单起见,我们将这些操作系统成为 **Linux** 操作系统而不是特定的发行版。
-### macOS kernel vs Linux kernel
+### macOS 内核 vs. Linux 内核
-The macOS kernel is officially known as XNU. The [acronym][6] stands for “XNU is Not Unix.” According to [Apple’s Github page][7], XNU is “a hybrid kernel combining the Mach kernel developed at Carnegie Mellon University with components from FreeBSD and C++ API for writing drivers”. The BSD subsystem part of the code is [“typically implemented as user-space servers in microkernel systems”][8]. The Mach part is responsible for low-level work, such as multitasking, protected memory, virtual memory management, kernel debugging support, and console I/O.
+macOS 内核的官方名称为 XNU。 [首字母缩略词][6] 代表 “XNU 不是 Unix”。根据 [苹果公司的 Github 页面][7],XNU 是“将卡内基梅隆大学开发的 Mach 内核,与来自 FreeBSD 的组件,和用于编写驱动程序的 C++ API 相结合的一个混合内核”。代码的 BSD 子系统部分是 [“在微内核系统中实现用户空间服务”][8]。Mach 部分负责底层工作,例如多任务处理、受保护内存、虚拟内存管理、内核调试支持和控制台 I/O。
-While the macOS kernel combines the feature of a microkernel ([Mach][9])) and a monolithic kernel ([BSD][10]), Linux is solely a monolithic kernel. A [monolithic kernel][11] is responsible for managing the CPU, memory, inter-process communication, device drivers, file system, and system server calls.
+虽然 macOS 内核结合了微内核 ([Mach][9]) 和单片内核 ([BSD][10]) 的特性,但 Linux 只是一个单片内核。 [单片内核][11] 负责管理 CPU、内存、进程间通信、设备驱动程序、文件系统和系统服务器调用。
-### Here’s What They Have in Common
+### 二者共同之处
-macOS utilizes Unix components, and Linux was built as an alternative to Unix. So, what do we have in common here?
+macOS 利用 Unix 组件,而 Linux 是作为 Unix 的替代品而构建的。那么,二者有什么共同点?
-Both give access to **Unix commands, bash/zsh, and other shells**.
+二者都可以使用 **Unix 命令、bash/zsh、以及其他 shell**。或许 [默认 shell][12] 会有所不同,但是你可以根据你的喜好进行设置。除此之外,我想不到二者还有什么相似之处。
-The [default shell][12] can be different, but you can always change it as per your preferences.
+大概在十年前,我们可以说 Linux/macOS 都提供了更少的应用程序。但时过境迁。多年来,二者的软件生态和游戏支持都在不断发展,我们将在本文后面讨论。
-That’s about it. I can’t think of anything else similar between the two.
-
-Probably a decade back, we could say that both Linux/macOS offered fewer applications.
-
-But that’s not the case anymore.
-
-The software ecosystem and game support for both have evolved over the years, which we will discuss later in this article.
-
-### Codebase: Proprietary vs. Open-Source
+### 代码库:闭源与开源
![open source proprietary illustration][13]
-macOS is a proprietary operating system, meaning you cannot view the complete operating system’s source code.
+macOS 是一个闭源的操作系统,意味着你无法看到完整的操作系统源码。
-Sure, you have [part of the macOS (mostly GNU) libraries’ source code available][14]. There is also the [XNU kernel code][15] used in the development of macOS and iOS operating systems. But [you cannot just take this code and build a macOS clone][16] to be installed on any hardware.
+当然,可以获得 [部分 macOS (大多为 GNU)库的源码][14]。有用来开发 macOS 和 iOS 操作系统的 [XNU 内核代码][15]。但是 [你不能只用该代码构建 macOS 的克隆版][16],并安装在任何硬件上。
-It’s not the end of the world without the source code, but you get **less transparency** on Apple’s claims and practices to secure and enhance your computer experience.
+没有源码的世界不会崩塌,但你会因为苹果公司保护和增强你使用电脑体验的声明和实践,而获得 **更少的透明度**。
-Some might argue that proprietary code remains hidden for security reasons. However, both proprietary and open-source software remain vulnerable to threats.
+一些人认为出于安全的原因而保持闭源。然而,不论开源还是闭源都面临安全威胁。
-**The difference between them** is: that open-source software often gets fixed sooner because of community participation by several developers, compared to limited employees working on macOS.
+**二者的不同** 是:相对于员工数量有限的苹果公司来说,由于有很多开发者在开源社区中,所以会很快修复开源软件。
-Unless you trust Apple without questions, Linux’s open-source model gets an edge.
+除非你毫无保留的相信苹果,不然 Linux 的开源模式更胜一筹。
-### Purpose and Usage: macOS vs. Linux
+### 目的和用途: macOS vs. Linux
-macOS is tailored for desktop and laptop usage. It is well-suited for **video editing, graphics designing, and audio editing**.
+macOS 专为台式机和笔记本电脑使用而设计。它非常适合于 **视频编辑、图形设计和音频编辑**。
-When it comes to Linux, you get a host of possibilities. You can use Linux for:
+当谈到 Linux ,你可以做很多事情。你可以将 Linux 用于:
-* Desktop
-* Toaster (yes! I hope you know about [IoT][17])
-* Single Board Computers
-* Server
+* 客户端
+* Toaster (希望你了解 [物联网 IoT][17])
+* 单片机
+* 服务器
-Of course, it is not the same experience when using it on various platforms, but Linux can run for various use-cases.
+当然,在各种平台上使用它的体验并不相同,但 Linux 可以针对各种用例运行。
-So, if you like Linux, you can choose to continue using it on other platforms for a comfortable experience.
+所以,如果你喜欢 Linux,你可以选择在其他平台上继续使用它,以获得舒适的体验。
-### macOS vs Linux: User Experience
+### macOS vs Linux: 用户体验
-When it comes to user experience, it comes down to personal preferences.
+当谈到用户体验,这取决于个人喜好。
-macOS offers a **pleasing user interface**. It is visually appealing with subtle animations and high-resolution wallpapers/icons.
+macOS 提供了 **令人愉悦的用户界面**。微妙的动画和高分辨率的壁纸、图标,这在视觉上很有吸引力。
![macOS Monterey][18]
-You can expect an easy and seamless experience across the platform.
+你可以期待 macOS Monterey 版的跨平台的无缝体验。
-With Linux, you can get an equally pleasing user interface that is easy to use.
+使用 Linux,你可以获得同样令人愉悦且易于使用的用户界面。
![Zorin OS 16 Pro][19]
-**Unfortunately**, the user experience slightly varies because of the distribution you decide to install and the desktop environment it comes along with.
+**不幸的是**,用户体验随着不同发行版所安装的桌面环境而不同。
-You can explore some of the [best desktop environments][20] listed. You can even opt for [macOS-like Linux distributions][21].
+你可以查看 [最好的桌面环境][20] 列表。你甚至还可以选择 [类似 macOS 的 Linux 发行版][21]。
-For instance, if you are using **Pop!_OS, Ubuntu, Zorin OS, or elementary OS**, you could have an excellent user experience.
+例如,如果你使用 **Pop!_OS, Ubuntu, Zorin OS, 或者 elementary OS** ,你将获得超棒的体验。
![Pop!_OS 22.04 LTS][22]
-If you end up using something like MX Linux, or different, the user experience may not be comparable to macOS.
+如果你使用类似于 MX Linux 或者其他的发行版,用户体验无法与 macOS 相提并论。
![MX Linux][23]
-Overall, the out-of-the-box experience with Linux is inconsistent, but it is capable enough if you know what you are doing.
+总的来说,Linux 的开箱即用体验是不一致的,但如果你知道自己在做什么,它就足够了。
-And if you are coming from Windows, the interface could be confusing initially.
+如果你之前使用 Windows,刚开始会对 Linux 的界面感到困惑。
-### Customizability
+### 可定制性
![customizability][24]
-If you want an operating system that lets you tinker with every aspect of it, macOS is not for you.
+如果你想要一个可以让你对它的各个方面进行修补的操作系统,那 macOS 不适合你。
-While Apple’s designs could be aesthetically pleasing by default, not everyone likes them.
+尽管大多情况下苹果的设计在美学上会令人愉悦,但并不是每个人都喜欢它们。
-If you want to personalize, take control, and heavily customize the operating system’s nuts and bolts, Linux should be the perfect pick.
+如果你想个性化、控制和大量定制操作系统的具体细节,Linux 应该是完美的选择。
-You can choose to customize the user interface as much as you want, with a wide range of different elements, and go wild with your preferences. To get started, look at our [KDE customization][25] guide to explore the possibilities.
+你可以根据需要选择自定义用户界面,使用广泛的不同元素,并根据你的喜好尽情发挥。请查看我们的 [KDE 定制][25] 指南以探索可能性。
-While that is good, it could backfire when customizing things on a Linux system. So, you need to learn/explore what you want to customize.
+虽然这很好,但在 Linux 系统上自定义内容时可能会适得其反。因此,你需要学习、探索你想要自定义的内容。
-### Hardware Requirements to run macOS vs Linux
+### 运行硬件要求:macOS vs Linux
![hardware illustration][26]
-This is where macOS suffers a solid defeat.
+硬件使 macOS 受到“重创”。
-If you want access to macOS and have a good experience with it, you need to purchase Apple hardware, which is costly.
+如果你想获得 macOS 并有良好的体验,那需要购买昂贵的苹果硬件
-For example, the base configurations for macOS-powered laptops start with **8 GB of RAM** and **256 GB of storage**, available for **$1200** or more.
+例如,支持 macOS 的笔记本电脑的基本配置从 **8 GB RAM** 和 **256 GB 存储空间**开始,价格为 **$1200** 或更多。
-Unless you want to constantly use the swap space for multitasking and already have a cloud storage space, it would be a terrible idea to get one for yourself.
+除非你想经常使用交换空间进行多任务处理,并且已经拥有云存储空间,否则买苹果设备将是一个糟糕的主意。
-In contrast, if you would rather not spend a lot but still want a decent configuration for your system (PC/laptop), it is easy to get a device with 16 GB RAM + 512 GB SSD to run Linux for around 800 USD.
+相比之下,如果你不想花很多钱,但仍希望为你的系统(PC/笔记本电脑)配置一个不错的配置,那么以 800 美元左右的价格购买一台配备 16 GB RAM + 512 GB SSD 的设备来运行 Linux 是很容易的。
-**A personal note**: I’m used to 32 Gigs of RAM + 500 GB of SSD storage. To get that kind of multitasking headroom (without using the swap), I will have to pay a premium to Apple.
+**个人说明**:我习惯了 32 G 的 RAM + 500 GB 的 SSD 存储。为了获得这种多任务处理空间(不使用交换),我将不得不向苹果公司支付溢价。
-Some skilled tinkerers try running macOS on non-Apple hardware. Such a system is called [Hackintosh][27] but it is certainly nowhere close to the comfort of running Linux on a regular computer.
+一些熟练的“修补匠”尝试在非苹果公司的硬件上运行 macOS。这样的系统被称为 [Hackintosh][27],但它肯定远不及在一般计算机上运行 Linux 的舒适度。
-### Software Ecosystem
+### 软件生态
-macOS offers a **top-notch native experience** with macOS-exclusive applications or tools made by Apple.
+通过苹果公司为 macOS 制作的专有应用程序或工具,可以在 macOS 上获得 **一流的原生体验**。
-Yes, you may have to purchase those applications. However, unlike some subscription options, you get one-time purchase alternatives with macOS for professional applications.
+是的,你可能必须购买这些应用程序。但是,与某些订阅选项不同的是,你可以通过 macOS 一次性购买专业应用程序。
![Final Cut Pro on macOS][28]
-For users who want to design, edit videos, edit photos, and have a creative workflow, macOS’s software suite should be a great choice if you do not mind investing in it.
+对于想要设计、编辑视频、编辑照片并拥有创意的用户,如果你不介意投资它,macOS 的软件套件应该是一个不错的选择。
-The free Apple tools like iMovie, Keynote, etc. are good themselves. Couple them with premium tools like Final Cut Pro, Affinity Designer, and more and you get world-class editing experience. Not to forget that creative tools like Adobe are also available on macOS.
+免费的苹果工具(如 iMovie、Keynote 等)本身就很好。将它们与 Final Cut Pro、Affinity Designer 等高级工具结合使用,你将获得世界级的编辑体验。别忘了,在 macOS 上也可以使用 Adobe 等创意工具。
-Additionally, Apple has strict guidelines for applications available for its platform that enhance the native experience with third-party apps (free or paid).
+此外,苹果公司对其平台可用的应用程序有严格的指导方针,以增强第三方应用程序(免费或付费)的原生体验。
-This is why many designers and editors prefer using macOS over any other operating systems.
+这就是为什么许多设计师和编辑更喜欢使用 macOS 而不是任何其他操作系统的原因。
-For the Linux platform, you have **great FOSS alternatives** to some macOS-only apps. Unless you like or have experience with macOS-specific applications, you should not have trouble with software available for Linux.
+对于 Linux 平台,你可以使用 **很棒的 FOSS 替代品** 来替代一些仅限 macOS 的应用程序。除非你喜欢或有使用 macOS 特定应用程序的经验,否则你应该不会在使用适用于 Linux 的软件方面遇到问题。
![kdenlive editor][29]
-The native app experience depends on the Linux distribution you use.
+原生应用的体验基于你使用的 Linux 发行版。
![Planner (To-do list app for Linux)][30]
-It may not be as seamless as macOS, but if you are not a professional-grade video/graphics editor, you should not have any issues.
+它可能不像 macOS 那样完美,但如果你不是专业级的视频、图形编辑,你应该没有任何问题。
-### Gaming on Linux and macOS
+### 在 Linux 和 macOS 上游戏
![gaming illustration][31]
-While Apple’s making good progress on making its new M1/M2 chips as capable as possible, macOS currently has poor support for games.
+苹果公司在使其新的 M1/M2 芯片尽可能强大方面取得了不错的进展,但 macOS 目前对游戏的支持很差。
-A handful of games work, and most aren’t supported officially. To be honest, investing in a Mac for gaming is not what it is for.
+少数游戏可以正常工作,并且大多数都不受官方支持。说实话,为游戏而投资 Mac 并不是它的目的。
-Regarding Linux, numerous AAA games and Indie titles work fine. Sure, there are some hiccups with certain games. But, with Valve’s push towards official game support for Steam Deck, even the latest releases like “**Spider-Man: Remastered**” are Steam Deck verified.
+关于 Linux,许多 AAA 游戏和独立游戏运行良好。当然,某些游戏存在一些问题。但是,随着 Valve 推动 Steam Deck 对正版游戏支持,即使是像 **《蜘蛛侠:重制》** 这样的最新版本,都得到了 Steam Deck 的验证。
-Ultimately, helping improve the game support for the Linux platform.
+最终,会帮助 Linux 平台对游戏的支持。
-Additionally, considering that the PC graphics card market is almost back to normal (near or below MSRP), you can get a sweet PC build or laptop without worrying about performance bottlenecks.
+此外,考虑到 PC 显卡市场几乎恢复正常(接近或低于建议零售价),你可以获得不错的 PC 版本或笔记本电脑,而不必担心性能瓶颈。
-Would you spend upwards of **$1800 for a Mac with 16 GB of RAM and 512 GB of SSD** or get a PC/laptop with 32 GB RAM (or more), and at least 1 TB SSD (or more)?
+你会花 **1800 美元以上购买配备 16 GB RAM 和 512 GB SSD 的 Mac**,还是购买配备 32 GB RAM(或更多)和至少 1 TB SSD(或更多)的 PC/笔记本电脑?
-That’s your call.
+那由你来决定。
-### Package Manager
+### 软件包管理
![package manager illustration new][32]
-A package manager helps you quickly find, install, and remove software in your operating system.
+软件包管理器能够让你很快地找到、安装或卸载你的操作系统中的软件。
-Linux has been the superior force in package management compared to anything out there.
+与现有的任何系统相比,Linux 一直在包管理方面占据优势。
-You get options like [Flatpak][33], [Snap][34], [Synaptic][35], and more out of the box.
+你可以获得 [Flatpak][33]、[Snap][34]、[Synaptic][35] 等开箱即用的选项。
-But, Mac users do not have anything to rely on by default. Fortunately, an option like [Homebrew][36] makes life easier for macOS users.
+但是,在默认情况下,Mac 用户没有任何可依赖的东西。幸运的是,像 [Homebrew][36] 这样的选项极大的方便了 macOS 用户。
-It also supports Linux. So, you can use it across multiple devices to make things easy.
+它还支持Linux。因此,你可以在多个设备上使用它来简化操作。
-### Operating System Updates
+### 系统升级
![software update illustration][37]
-Apple does not share specific timelines for software updates to the operating system.
+苹果公司不会发布其操作系统具体更新的时间。
-For instance, **macOS Ventura** (the upcoming version upgrade at the time of writing) suddenly ditched all the Mac devices before 2017.
+例如,**macOS Ventura** (在撰写本文时即将进行版本升级)突然放弃了 2017 年之前的所有 Mac 设备。
-Interestingly, the previous operating system versions had average support for about **seven years**, but with newer changes, it seems to be about **five** now.
+有趣的是,以前的操作系统版本平均支持大约 **七年**,但随着更新的变化,现在似乎大约是 **五年**。
-With Apple silicons, it may not be a straightforward answer. But, it is safe to assume at least 4-5 years of software support.
+对于苹果公司设计的芯片,这或许不是一个简单的答案。但是,至少 4 到 5 年的软件支持是安全的。
-Linux gives you options. If you want a stable operating system without feature upgrades but focused on maintenance and security, [LTS editions][38] of Linux distributions give you up to **five years** of updates for free. This is primarily true for [Ubuntu][39] or Ubuntu-based distributions like Linux Mint.
+Linux 为你提供了选择。如果你想要一个没有升级功能,只专注于维护和安全性的稳定操作系统,Linux 发行版的 [LTS 版本][38] 可以免费为你提供 **五年** 的更新。这主要适用于 [Ubuntu][39] 或基于 Ubuntu 的发行版,如 Linux Mint。
-Furthermore, there’s a subscription plan for Ubuntu, where you can continue receiving security updates for up to **10 years**.
+此外,有一个 Ubuntu 订阅项目,你可以持续 **十年** 获取安全更新。
-And, it does not end there; you can also opt for [rolling-release distributions][40] that get constant bleeding-edge updates with no timeline for an end. As long as your hardware is competent enough, you should be able to update the operating system with no issues.
+而且,它并没有就此结束;你还可以选择 [滚动发行的版本][40],来获得没有结束的时间的持续的前沿更新。只要你的硬件能够胜任,你应该就能毫无问题地更新操作系统。
-### macOS vs. Linux: What Should You Pick?
+### macOS vs. Linux: 你应该选择哪一个?
-macOS can be well worth the price tag if you need it.
+如果你需要的话,macOS 物有所值。
-It is not an easy recommendation for users who just need to surf the web, send emails, and perform some tasks that are possible on any platform.
+不建议只需要上网、发送电子邮件,以及执行一些在任何平台上都可以执行的任务的用户购买 macOS。
-macOS remains a niche pick.
+macOS 仍然是一个不错的选择。
-However, Linux has improved to become a usable choice for former Windows/macOS users, computer science students, developers, creative professionals (like us) and a wide range of potential users.
+然而,随着 Linux 的改进,它已经成为先前是 Windows/macOS 的用户、计算机专业学生、开发人员、创意专业人士(如我们)以及广泛潜在用户的有用的选择。
-There are many reasons to pick Linux over macOS, but not the other way around (I think). What are your thoughts on macOS vs. Linux? You are welcome to share your thoughts in the comments down below.
+选择 Linux 而不是 macOS 的原因有很多,但(我认为)不矛盾。你对 macOS 与 Linux 有何看法?欢迎在下面的评论中分享你的想法。
--------------------------------------------------------------------------------
-via: https://itsfoss.com/mac-linux-difference/
+via:
作者:[Ankush Das][a]
选题:[lkxed][b]
@@ -260,35 +244,35 @@ via: https://itsfoss.com/mac-linux-difference/
[6]: https://github.com/apple/darwin-xnu
[7]: https://github.com/apple/darwin-xnu
[8]: http://osxbook.com/book/bonus/ancient/whatismacosx/arch_xnu.html
-[9]: https://en.wikipedia.org/wiki/Mach_(kernel
-[10]: https://en.wikipedia.org/wiki/FreeBSD
-[11]: https://www.howtogeek.com/howto/31632/what-is-the-linux-kernel-and-what-does-it-do/
-[12]: https://linuxhandbook.com/change-shell-linux/
-[13]: https://itsfoss.com/wp-content/uploads/2022/08/open-source-proprietary-illustration.jpg
-[14]: https://opensource.apple.com/releases/
-[15]: https://github.com/apple/darwin-xnu
-[16]: https://www.techrepublic.com/article/why-apple-open-sourcing-mac-os-x-isnt-terribly-exciting/
-[17]: https://www.ibm.com/blogs/internet-of-things/what-is-the-iot/
-[18]: https://itsfoss.com/wp-content/uploads/2022/08/macos-monterey-screenshot.jpg
-[19]: https://itsfoss.com/wp-content/uploads/2021/12/zorin-os-16-mac.png
-[20]: https://itsfoss.com/best-linux-desktop-environments/
-[21]: https://itsfoss.com/macos-like-linux-distros/
-[22]: https://itsfoss.com/wp-content/uploads/2022/08/pop-os-screenshot-2022.png
-[23]: https://itsfoss.com/wp-content/uploads/2022/07/10.-MX-Linux.jpg
-[24]: https://itsfoss.com/wp-content/uploads/2022/08/customizability-illustration.jpg
-[25]: https://itsfoss.com/kde-customization/
-[26]: https://itsfoss.com/wp-content/uploads/2022/08/hardware-illustration-800x450.jpg
-[27]: https://www.freecodecamp.org/news/build-a-hackintosh/
-[28]: https://itsfoss.com/wp-content/uploads/2022/08/final-cut-pro-mac.jpg
-[29]: https://itsfoss.com/wp-content/uploads/2022/08/kdenlive-editor.jpg
-[30]: https://itsfoss.com/wp-content/uploads/2021/08/planner-board-view.png
-[31]: https://itsfoss.com/wp-content/uploads/2022/08/gaming-illustration.jpg
-[32]: https://itsfoss.com/wp-content/uploads/2022/08/package-manager-illustration-new.jpg
-[33]: https://itsfoss.com/what-is-flatpak/
-[34]: https://itsfoss.com/use-snap-packages-ubuntu-16-04/
-[35]: https://itsfoss.com/synaptic-package-manager/
-[36]: https://itsfoss.com/homebrew-linux/
-[37]: https://itsfoss.com/wp-content/uploads/2022/07/software-update-illustration.jpg
-[38]: https://itsfoss.com/long-term-support-lts/
-[39]: https://itsfoss.com/getting-started-with-ubuntu/
-[40]: https://itsfoss.com/best-rolling-release-distros/
+[9]:
+[10]:
+[11]:
+[12]:
+[13]:
+[14]:
+[15]:
+[16]:
+[17]:
+[18]:
+[19]:
+[20]:
+[21]:
+[22]:
+[23]:
+[24]:
+[25]:
+[26]:
+[27]:
+[28]:
+[29]:
+[30]:
+[31]:
+[32]:
+[33]:
+[34]:
+[35]:
+[36]:
+[37]:
+[38]:
+[39]:
+[40]:
diff --git a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md b/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md
deleted file mode 100644
index 0e83fd5b91..0000000000
--- a/sources/talk/20220820 What if a Lifelong Linux User Tried Windows or macOS for the First Time-.md
+++ /dev/null
@@ -1,184 +0,0 @@
-[#]: subject: "What if a Lifelong Linux User Tried Windows or macOS for the First Time?"
-[#]: via: "https://news.itsfoss.com/linux-user-trying-windows-macos/"
-[#]: author: "Abhishek https://news.itsfoss.com/author/abhishek/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-What if a Lifelong Linux User Tried Windows or macOS for the First Time?
-======
-Windows users face issues while switching to Linux. What if the tables are turned? What problems a lifelong Linux user will face while switching to Windows or macOS?
-
-![What if a Lifelong Linux User Tried Windows or macOS for the First Time?][1]
-
-Do you remember Linus Sebastian (from Linus Tech Tips) [trying out Linux for gaming][2]? He ended up deleting the desktop environment despite a clear warning shown in the terminal.
-
-![Linus Sebastian destroys his Linux system][3]
-
-Considering he utilizes Windows as his daily driver to play games, switching to Linux will definitely need some time.
-
-So, is this a Linux issue? Or is Linus doing it all wrong? Bet ya!
-
-[It's Time More Linux Distros and DEs Become 'Linus-Proof'][4]
-
-Or, is it that any user unfamiliar with an operating system encounters problems during their first trials?
-
-So, here, you get to read a different perspective of a Linux user trying Windows or macOS for the first time.
-
-Will it be a smooth sail? Or will it be as bad as Linus’s experience with Linux?
-
-It is definitely going to be something exciting…
-
-**Scott Williams** (a Senior DevOps Engineer) imagined the scenario in a series of tweets.
-
-### Enable TPM 2.0 for Windows 11?
-
-Considering Windows 11 is the latest available Windows version. How can Scott install it?
-
-> @vwbusguy \
-> Join me tonight as I try to enable TPM 2.0 on this four year old laptop to see if we can get Windows 11 to run on it. It says it supports Intel PTT, so this should be straightforward, right?
->
-> @vwbusguy \
-> Between Windows and MacOS, there are too many options. Can't all proprietary operating systems users come together and just make one perfect operating system that fits every use case and preference out of the box, but most specifically mine?
-
-[Twitter @vwbusguy][5]
-
-*How to enable TPM 2.0? How to find it in the BIOS menu? Is it safe to enable TPM 2.0? Should I flash a newer BIOS? Will I brick my motherboard in the process of updating the BIOS?*
-
-These are some of the questions, every Linux user (and even Windows/macOS users) will have when they want to upgrade their system to Windows 11.
-
-With Linux distributions, we never have to do such a peculiar thing to make it work. Even in 2022. But, Windows 11 wants you to know about the BIOS settings or the TPM chip before you can upgrade to it.
-
-While Scott mentions about an older laptop, it is worth noting that even with the latest motherboards (for instance Z590), you may have to tweak the BIOS or flash a newer BIOS version to support Windows 11.
-
-This is incredibly inconvenient, even for technical users because updating BIOS comes with its own risks.
-
-### Do I Need an Antivirus Software? Which One?
-
-While Apple’s XProtect and Windows Defender should be good for basics, there are several options when it comes to Antivirus if you want enhanced protection.
-
-> @vwbusguy \
-> I'm surprised that MacOS doesn't even come with a modern web browser installed and you have to go to a website to download one. That's not a great initial user experience.
->
-> @NaheemSays \
-> It is actually deeper than that. As a user of both systems, I think people subconsciously forget how weird Windows can be.
->
-> Its biggest advantage is that it comes pre installed. First step of a new system: uninstall a lot of crap. Try even getting rid of Mcaffee or Norton!
->
-> @vwbusguy \
-> So do I or do I not need antivirus software and which one?
-
-[Twitter @vwbusguy][6]
-
-And, with so many choices and paid reviews online, it is tough to know what’s actually a genuine option and if you should spend for it.
-
-A Linux user will often wonder: *Why do I even need this? Won’t this affect the performance? What do I do with so many protection features? Isn’t Windows a secure operating system?*
-
-### iCloud and macOS: A Love Story?
-
-> @vwbusguy \
-> How do I access files on my @btrfs drive in Windows or MacOS?
->
-> @vwbusguy \
-> What is iCloud and how do I make this go away?
->
-> @mikecodemonkey \
-> And then MacOS is sooooo annoying having to log into your iCloud every 5 seconds, set multiple passwords, constantly tell Siri to bugger off.
-
-[Twtter @vwbusguy][7]
-
-Linux users are not fond of integrated cloud services. They either mount a cloud storage drive (or a network drive).
-
-Even if they opt for a cloud storage service, it should work as per their explicit actions. However, with macOS, you will be constantly reminded of iCloud while Siri popping up in between.
-
-### Linux User Cleans the Registry
-
-With so many options and tools to clean registries and optimize systems for better performance, a new Linux user may end up with an unresponsive Windows.
-
-> Reddit says I need to "clean my registry" so I followed a few tutorials and deleted a few things and now this Windows box is acting really weird.
-
-[Twitter @vwbusguy][8]
-
-Even in 2022, there is no clarity when you work with the registry or tools that helps you “optimize” the registry.
-
-Dare you, veteran Linux users love the details before trying anything. But, if there is no proper warning/notice in the GUI, how can one know about it all?
-
-### Reboot All The Way
-
-It’s not like a reboot does not fix things in Linux. But, how many times do I have to reboot when updating Windows or after installing software?
-
-> We can all be like, \
-> "You have to install how many .NET framework versions? How many reboots so far?" \
-> "My Adobe version doesn't support this version of MacOS? No wonder people have so many have trouble taking MacOS seriously. Apple needs to fix this."
-
-[Twitter @vwbusguy][9]
-
-Every time I reboot, I lose the active applications that were in the background.
-
-Why can’t Windows just detect the new installations and updated packages with a simple refresh instead of a reboot? Why is this so much counter-productive?
-
-### Do I Have to Pay for All This? Wasn’t the Windows License Enough?
-
-Linux is primarily all about free and open-source software. Hence, the pre-installed utilities are free.
-
-So, a user who is comfortable with those tools would have to suddenly pay for a Windows license, and also pay for software.
-
-Isn’t Microsoft too greedy here?
-
-### Lack of Essential Packages by Default
-
-I can’t even extract an archive after I install Windows? Is it truly a modern OS?
-
-### Multi-Monitor Setup for macOS
-
-> @vwbusguy \
-> How do I get my monitors to work with MacOS?
->
-> I'm used to firmware updates just being automatic through LVFS on Linux. How do I update the firmware from Windows? This vendor site says I need to put something on a USB drive. Can I borrow one from someone?
->
-> @acruiz \
-> Indeed!!!! I had to install several extensions on macOS to get to a semi decent setup (plus some shitty drivers for multimonitor support in my dock station which worked OOTB on Linux)
-
-[Twitter @vwbusguy][10]
-
-It is a breeze to work with Linux when you have a multi-monitor setup. But, when it comes to macOS, everything breaks away.
-
-### Final Thoughts
-
-Ultimately, it depends on what the standard is and what you are familiar with. Windows and macOS are often considered the standard desktop operating system.
-
-In contrast, most people know little associated with Linux, except the fact that it is difficult to use.
-
-However, if you get to know the essentials, just like you know for Windows/macOS, Linux desktop experience will be a smooth experience.
-
-It is just because there are a variety of things when it comes to Linux. However, with patience, you can enjoy the full experience of it.
-
-Linux isn’t problematic as a whole, it's the user that fails to get acquainted with coming from another operating system. We do not want Linux to be Windows nor Windows to act like Linux, everything should have a separate presence.
-
-But then again, Linux should not be struck out just because a longtime Windows user did not have a good initial experience with it because the same can happen with a longtime Linux user trying Windows/macOS.
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/linux-user-trying-windows-macos/
-
-作者:[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/abhishek/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w1200/2022/08/linux-windows.png
-[2]: https://www.youtube.com/watch?v=0506yDSgU7M&t=788s
-[3]: https://news.itsfoss.com/content/images/2022/08/linus-sebastian-nukes-pop-os-while-installing-steam-os.webp
-[4]: https://news.itsfoss.com/more-linux-distros-become-linus-proof/
-[5]: https://twitter.com/vwbusguy/status/1463543535630569473
-[6]: https://twitter.com/vwbusguy/status/1463556939728572419
-[7]: https://twitter.com/vwbusguy/status/1463579003504136192
-[8]: https://twitter.com/vwbusguy/status/1463595769051549697
-[9]: https://twitter.com/vwbusguy/status/1463538368956887043
-[10]: https://twitter.com/vwbusguy/status/1463606807906029570
diff --git a/sources/talk/20220901 Usability and accessibility starts with open communication.md b/sources/talk/20220901 Usability and accessibility starts with open communication.md
new file mode 100644
index 0000000000..a0e3a3c045
--- /dev/null
+++ b/sources/talk/20220901 Usability and accessibility starts with open communication.md
@@ -0,0 +1,50 @@
+[#]: subject: "Usability and accessibility starts with open communication"
+[#]: via: "https://opensource.com/article/22/9/accessibility-open-source"
+[#]: author: "Klaatu https://opensource.com/users/klaatu"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Usability and accessibility starts with open communication
+======
+Use open source principles to make your project more accessible for your users.
+
+Amazing though it may seem, we each experience the world differently. That's one reality with over 6 billion interpretations. Many of us use computers to broaden our experience of the world, but a computer is part of reality and so if you experience reality without, for instance, vision or sound, then you also experience a computer without vision or sound (or whatever your unique experience might be.) As humans, we don't quite have the power to experience the world the way somebody does. We can mimic some of the surface-level things (I can close my eyes to mimic blindness, for example) but it's only an imitation, without history, context, or urgency. As a result of this complexity, we humans design things primarily for ourselves, based on the way we experience the world. That can be frustrating, from an engineering and design viewpoint, because even when you intend to be inclusive, you end up forgetting something "obvious" and essential, or the solution to one problem introduces a problem for someone else, and so on. What's an open source enthusiast, or programmer, or architect, or teacher, or just everyday hacker, supposed to do to make software, communities, and processes accessible?
+
+### Don't miss the opportunities
+
+A friend of mine, who lives with hearing loss, recently signed up for a webinar and contacted the host to request captioning or, failing that, a transcript of the lessons. It was a great disappointment when the host, who had specifically emailed all participants with an invitation for feedback, never even responded to the request. In the end, some mutual friends attended the webinar and took notes.
+
+The webinar was a small event run by an individual, so it's possible that emails all around were going unanswered until the end of the multi-week event. However, this incident can serve as a valuable lesson: Accessibility starts with communication.
+
+You can't know the unique needs of every single person interacting with the thing (website, software, podcast, article, and so on) you produce. You can't predict what small arbitrary choice you make might lead to the accidental exclusion of someone who would otherwise have engaged with you. What you can do, though, is look for opportunities to learn about them. When someone sends an email about how the 8-point, thin, 45% gray font on a white background makes your website hard to read, don't ignore it, and don't chalk it up to a difference in opinion. When someone files a bug that Orca or [NVDA][5] can't navigate your application, don't close it until it's fixed.
+
+### What to do when you can't help
+
+Nobody knows everything, and that's true for each of us participating in open source. It's very likely that you'll get a comment from somebody with an issue in something you've designed, and you won't know how to fix it. Or you might know how to fix it, but you just won't have the time to implement the fix. That doesn't make you a bad person, it just reveals the one thing that's true for all of us: You have limited resources. But through open collaboration, there's more than likely an answer.
+
+Open source is all about sharing, and this is as true for code as it is for community resources. Identifying a bug at the very least demonstrates what your project needs from potential future contributors. Possibly, the person making the request or filing the bug can help you find someone who knows how to fix the issue. Or maybe they have friends who help them find a work-around, and could at the very least document the round-about way they deal with the issue, which could be exactly the stop-gap you need while you upskill enough to find the "right" fix for the problem.
+
+Answers to usability and accessibility aren't always as direct as you think they need to be. Sometimes, a simple work-around or accommodation is all that's needed. I contribute to a fairly technical podcast, and I was once asked whether I could release transcripts. It's beyond my means to produce those for every episode, but as a concession I have, ever since, included either existing reference documentation, or I write new documentation on the podcast's website, so that even if a potential listener can't process what I say in the podcast, at least the information I impart isn't lost. It's not the *best* solution (although admittedly my podcasts aren't always as focused as they could be, so actually reference documentation is probably the better option) but the "answer" to the problem is really easy for me to do, but something I hadn't thought to do until someone asked.
+
+Sometimes the "right" answer is "no." I've gotten requests for visuals to accompany audio-only content before. While it was possible to do that, it would have required a completely different production and hosting infrastructure, and so the answer truly was "no." However, I was able to respond to the request with a list of resources that were providing similar content along with video. You can't be everything to all people. Knowing your project's, and your own, limitations is important, and it's equally important to respect them.
+
+### Open communication
+
+Communication is the starting point for usability and accessibility. When someone reaches out to you because something you're doing isn't accessible to them, that is, strange though it may seem, a marketing success. Somebody wants to engage with your content or your project. That's exciting! Don't pass up those opportunities.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/accessibility-open-source
+
+作者:[Klaatu][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://opensource.com/users/klaatu
+[b]: https://github.com/lkxed
diff --git a/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md b/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md
new file mode 100644
index 0000000000..3799ab395f
--- /dev/null
+++ b/sources/talk/20220904 Opinion- Car Design Was Better Before Computers.md
@@ -0,0 +1,110 @@
+[#]: subject: "Opinion: Car Design Was Better Before Computers"
+[#]: via: "https://news.itsfoss.com/car-design-was-better-before-computers/"
+[#]: author: "Community https://news.itsfoss.com/author/team/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Opinion: Car Design Was Better Before Computers
+======
+The ethical hellscape of today's automobile industry, and why cars were better designed before the widespread use of computers.
+
+![Opinion: Car Design Was Better Before Computers][1]
+
+[Karla Alexander][2] on [Unsplash][3]
+
+The ethical car designers will quickly discover that corruption in the car industry goes way beyond manufacturers' faked emission-tests; their mass-participation in war crimes; and the children they force to work in the cobalt, mica, and lithium mines. In fact, the corruption in *Car Land* begins the moment you switch on a computer and load your CAD software.
+
+![Solvespace: An ethical, free, opensource parametric modeling tool][4]
+
+All modern computer processors are backdoored-by-design, and so airgapping all production machines is the only rational solution. Intel's 'Management Engine' and AMD's 'Platform Security Processor' openly snoop on everything you do on your computer, reporting this data back to whoever has keys to the CPU backdoors.
+
+The larger automobile conglomerates are inextricable from the state. National Socialism was essentially corporatism. Therefore, the problem can be stated simply: If you plan to design and engineer products, then it is foundational to ensure that your competitors cannot steal your designs.
+
+If you are working in the car industry, then your competitors are state-level combatants. In other words: Governments.
+
+It is no accident that notorious car-manufacturers are able to fake their emissions-tests and build unchecked monopolies: These car companies 'own' vast swathes of the political apparatus. This gives these conglomerates access to surveillance systems; the Intel and AMD backdoors; and (you guessed it) access to your computer.
+
+Remember, many of these car companies are currently child-slavers; several literally have Nazi-origins. These companies ran concentration-camps and, in the years since, have lied about poisoning our shared air-supply; multiple times, in multiple countries. This 'Automobile Establishment' will have no qualms about reading stolen information from your computer screen, assisted by the government(s) they think they own.
+
+Airgapping all engineering-computers should be routine if you are working in the independent automotive-design field. To 'airgap' a computer means to remove any wifi, ethernet or bluetooth equipment from the system and to ensure the computer is completely disconnected from the internet or other exploitable network-connection.
+
+By airgapping a system, you ensure that (although the CPU is backdoored) the computer can no longer spy on you because it cannot report its spying to anyone. The CPU will continue to monitor your work, but it will be trapped; unable to transfer this information out to the Automobile Establishment and their cronies in government(s).
+
+Here, we should touch briefly on the issue of the ethics of CAD (Computer Aided Design) computers themselves. Almost every modern computer is manufactured in a Communist dictatorship, often by children. This is, after all, the reason companies manufacture in these regions: It is cheap to manufacture in the 'Slave Zones' because there are few human rights, and children are often used as labor.
+
+Ethical options do exist, but they take some hunting down. For example, Raspberry Pi manufactures their computer boards in the UK. Although you might consider this an underpowered computer, it is perfectly sufficient for running software like the excellent [Solvespace][5] (for parametric modeling) or [Blender][6] (for visualization work).
+
+Remember that most of the greatest cars ever designed came from an era before desktop computers. You should consider eliminating computers as much as possible from your engineering workflow. They tend to destroy creativity and generate lazy, derivative designs. The engineers who worked on the *Corvette Stingray*, for example, went nowhere near a computer.
+
+![Corvette Stingray][7]
+
+If you absolutely must use a 3D workstation for your automotive design, then the closest thing to an ethical PC are those made by Fujitsu, which are manufactured in Germany and Japan. Similarly, Eizo make their screens in Japan. This information is not given lightly: It took us many months to figure out that Raspberry Pi, Fujistu, and Eizo are the ethical options. Most country-of-manufacture information is hidden. Most major search engines are 'gamed' to stop the consumer from avoiding the profitable 'Slave Zone' manufacturers.
+
+The elephant in the room of the computer industry is this: That most of our computers are made by slaves, and profit the slave-masters.
+
+Even a Fujitsu PC contains many China-sourced parts. The balance, however, shifts towards ethical manufacture.
+
+A second-hand Fujitsu and Eizo screen is perhaps the only option for CAD designers who don't want to fund slavery; but let us know if you discover other options.
+
+Finally, there is the question of software. Given the association between the former-head of one major operating system manufacturer and Jeffrey Epstein, nobody with any sense of morality can use his product. The other major operating system (and computer) manufacturer is a major child-slaver, so again, we can rule them out.
+
+The solution here is obvious: Linux.
+
+If you haven't tried Linux in a few years, you will be surprised by how it has made strides past everything else. Now there is even a project in the works to connect *Blender* to *Solvespace*. The project is called [CAD Sketcher][8], and it drives parametric modeling on free, open-source software to dizzy new heights.
+
+![CAD Sketcher: This software allows you to use Blender as a parametric modeler.][9]
+
+Most impressive of all, however, is the work of a developer called RealThunder. This hotshot-coder is firing on all turbines and has produced [a fork of FreeCAD that outshines the original][10]. RealThunder's fork includes a topological naming feature and other slick hacks.
+
+![][11]
+
+In RealThunder's own words, "I am an extremely efficient coder. In fact, my coding pace is probably too fast for FreeCAD upstream."
+
+That's fighting talk. Things are getting very interesting here in the frontier towns of Liberated CAD.
+
+Given that open-source has overtaken the industry: What now for the legacy, closed-source CAD tools that the automobile industry has come to rely on? Look around you on the streets. Do these cars look good? In my opinion, they are irredeemably horrible and the tools that created them should be burned at the digital stake.
+
+Form does not merely follow function; it also follows the tools we use to create the things we build.
+
+Today's collapsing automobile-industry is a decrepit monster. Whatever tools were used to build this industry, and the cars it produced, were not fit for purpose. It's time for something new.
+
+![][12]
+
+Chris Stevens collaborated with Steve Jobs to bring [an interactive version of Alice in Wonderland][13] back into the popular consciousness. Stevens' work on *Alice* was promoted by Steve Jobs through global television advertising campaigns and together they shipped millions of copies of the software. Chris Stevens' work is also acclaimed by [Fast Company][14] and [The Atlantic][15] among others. After some serious self-reflection, Stevens sold his software company, *Atomic Antelope*, to *Oceanhouse Media*, in California, for an undisclosed sum. Stevens then left the world of closed-source forever. He is now an automotive engineer working on open-source automobiles. Stevens is a cheerleader for the open-source revolution. "If it's not open-source; then it's sauce," is Stevens' enduring motto.
+
+**The views and opinions expressed in this article are those of the authors and do not necessarily represent opinions It's FOSS.**
+
+The article originally appeared at [Volcano][16].
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/car-design-was-better-before-computers/
+
+作者:[Community][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/team/
+[b]: https://github.com/lkxed
+[1]: https://images.unsplash.com/photo-1484687742385-1249620c2687?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE2fHx2aW50YWdlJTIwY2FyfGVufDB8fHx8MTY2MjE3NTc0NA&ixlib=rb-1.2.1&q=80&w=1200
+[2]: https://unsplash.com/@kmvrlv?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit
+[3]: https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit
+[4]: https://news.itsfoss.com/content/images/2022/08/solvespace.jpg
+[5]: https://solvespace.com/index.pl
+[6]: https://www.blender.org/
+[7]: https://news.itsfoss.com/content/images/2022/08/corvette-68.jpg
+[8]: https://www.cadsketcher.com/
+[9]: https://news.itsfoss.com/content/images/2022/08/CAD-Sketcher-Blender.jpg
+[10]: https://www.patreon.com/thundereal
+[11]: https://news.itsfoss.com/content/media/2022/09/drawstyle.webm
+[12]: https://news.itsfoss.com/content/images/2022/09/chris-stevens-photo-1.jpeg
+[13]: https://www.youtube.com/watch?v=gew68Qj5kxw
+[14]: https://www.fastcompany.com/1694027/alice-ipad-co-creator-chris-stevens-risk-and-rabbit-holes
+[15]: https://www.theatlantic.com/entertainment/archive/2011/03/the-most-technologically-advanced-book-for-the-ipad/72610/
+[16]: https://vo.lc/ano/
diff --git a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md
deleted file mode 100644
index b7f84b65a5..0000000000
--- a/sources/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md
+++ /dev/null
@@ -1,209 +0,0 @@
-[#]: subject: "Ubuntu vs Manjaro: Comparing the Different Linux Experiences"
-[#]: via: "https://itsfoss.com/ubuntu-vs-manjaro/"
-[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
-[#]: collector: "lkxed"
-[#]: translator: "Return7g"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Ubuntu vs Manjaro: Comparing the Different Linux Experiences
-对比 Ubuntu 和 Manjaro :比较不同 Linux 发行版体验
-======
-Ubuntu is the most popular Debian-based Linux distribution for desktops and servers.
-Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版
-
-And Manjaro Linux is an Arch-based distro tailored for desktops.
-Manjaro Linux 是基于 Arch 量身定制的桌面发行版
-
-Both are entirely different when it comes to user experience and features.
-
-However, one of the common grounds is the [desktop environment][1] when considering Manjaro’s GNOME edition with Ubuntu.
-
-But, what exactly are the differences? Is the package manager on Manjaro better? Are software tools available on both Ubuntu and Manjaro?
-
-Here, we shall look at the differences in both the Linux distributions at certain key points.
-
-### Release Cycle
-
-Ubuntu offers two different release cycles, considering the version you pick. If you are going with the Long-Term Support version, you get security/maintenance updates for at least five years from its release.
-
-Suppose if you install Ubuntu 22.04 LTS, you will be getting updates until **April 2027**.
-
-![ubuntu22 04 lts about][2]
-
-The LTS version is what we recommend for most desktop users.
-
-However, if you want the latest and greatest, you can opt for the non-LTS releases that need an upgrade every **nine months**. Examples include Ubuntu 21.04, Ubuntu 21.10, and Ubuntu 22.10.
-
-Note that the non-LTS releases involve changes that may affect your workflow and user experience. So, it isn’t recommended for everyone.
-
-When choosing Manjaro Linux, you get a rolling release schedule for updates. So, you do not have to worry about the support for the version you use. It will automatically upgrade to the latest available version through regular updates.
-
-![manjaro about][3]
-
-With a rolling release cycle, you get the latest packages quickly. So, if you want to keep using an older version of the software, Manjaro Linux may not be the right choice for you.
-
-### Desktop Environments
-
-Ubuntu features a customized version of the GNOME desktop. It may not be the latest, but it is likely to include the latest GNOME desktop environment if you use a newer Ubuntu version.
-
-![ubuntu 22 04 wallpaper][4]
-
-There are no other desktop environments by Canonical (the company behind Ubuntu).
-
-However, if you want other desktop environments on top of Ubuntu, you can choose the official [Ubuntu flavours][5] including KDE, Budgie, LXQt, MATE, and XFCE as desktop environments. They are well-tested and stable Ubuntu Linux distributions when compared to unofficial or newer spins of Ubuntu with another desktop environment.
-
-However, Ubuntu flavours do not get five years of software support; instead, you will be limited to three years of support for LTS versions.
-
-With Manjaro, you can choose three official editions: XFCE, KDE, and GNOME. No matter the desktop environment, you stick to the rolling release model.
-
-![manjaro gnome 42][6]
-
-You do have some community editions with Budgie, MATE, LXQt, and more as well.
-
-### Package Manager or Software Ecosystem
-
-You shouldn’t have trouble finding most of the [essential Linux apps][7] on both the distros.
-
-However, Manjaro Linux gets an edge with a snappier experience using Pamac as its package manager.
-
-![manjaro package manager][8]
-
-Compared to the software center on Ubuntu, Manjaro Linux offers a better experience for quickly installing/updating the software. And, it also supports Flatpak/Snap out-of-the-box if you want to enable them with a single click.
-
-Ubuntu emphasizes Snap packages, and you will find some applications pre-installed as Snap (like Firefox web browser).
-
-![firefox as snap][9]
-
-In the case of Manjaro Linux, you get the freedom to enable Flatpak/Snap if required.
-
-With Ubuntu, the Software Center is not the best Linux offers. It could prove to be slower, as per your system configuration and over the year as you use it.
-
-![ubuntu 22 04 software center][10]
-
-In addition to that, Manjaro Linux has access to [AUR][11], which opens up access to almost every software that you may not find in Ubuntu’s software center.
-
-So, in terms of the software ecosystem and the package manager, Manjaro Linux does provide many advantages over Ubuntu.
-
-### Ease of Use and Targeted Users
-
-Ubuntu desktop is primarily tailored for ease of use. It focuses on providing the best possible combination of software and hardware compatibility to let any computer user work with Ubuntu Linux without needing to know most of the things in the Linux world.
-
-Even if someone doesn’t know what a “package manager” on Linux is, they can understand it perfectly fine as a unique replacement to Windows/macOS when they use it.
-
-Of course, we also have a guide to help you with [things to do after installing the latest Ubuntu version][12].
-
-Manjaro Linux is also tailored for desktop usage. But, it isn’t primarily tailored for first-time Linux users.
-
-It aims to make the experience with Arch Linux easy. So, it mainly targets Linux users who want to use Arch Linux, but with some added convenience.
-
-### Stability
-
-![stability tux][13]
-
-Ubuntu LTS releases primarily focus on stability and reliability, so you can also use them on servers.
-
-Comparatively, Manjaro Linux may not be as stable out-of-the-box. You will have to choose the packages carefully to install in Manjaro Linux and keep an eye on your configurations to ensure that an update does not break your system experience.
-
-As for Ubuntu, you do not need to stress about the software updates, especially when considering the LTS version. The updates should not generally break your system.
-
-### Customization
-
-Ubuntu features a customized GNOME experience as set by Canonical for end-users. While you can choose to customize various aspects of your Linux distribution, Ubuntu offers little out of the box.
-
-Ubuntu has improved over the years, recently adding the ability to [add accent colors in Ubuntu 22.04 LTS][14]. But, it still has a long way to go.
-
-You will have to take the help of apps like [GNOME Tweak][15] to customize the desktop experience.
-
-When considering Manjaro’s GNOME edition, you will have to use the same tool to customize things yourself.
-
-Manjaro also performs a few customization tweaks to the look. But, it gives more control to change the layout and few other options.
-
-![manjaro layout][16]
-
-In terms of customization, you should be able to do the same thing on both Manjaro and Ubuntu.
-
-If you want more customization options, Manjaro Linux can be a good pick. And, if you want a customized experience without a lot of control over it, Ubuntu should be good enough.
-
-### Bloatware
-
-This may not be a big deal for everyone. But, if you dislike having many pre-installed applications, Ubuntu can be an annoyance.
-
-![ubuntu 22 apps][17]
-
-You can always remove the applications you do not want. However, you will find more applications and services installed with Ubuntu out of the box.
-
-With Manjaro, you also get to see the minimal essentials installed. But, they stick to the most essential utilities, minimizing the number of packages pre-installed. So, Manjaro gets an edge with less bloatware.
-
-However, there are chances that you may not find your favorite Linux app installed on Manjaro by default. So, if you like access to some of your favorite apps right after installation, Ubuntu can be a good choice.
-
-### Performance
-
-![ubuntu 22 04 neofetch lolcat][18]
-
-While Ubuntu has improved its performance and even works on a Raspberry Pi 2 GB variant, it is still not the best-performing Linux distribution.
-
-Of course, the performance does depend on the desktop environment you choose to use.
-
-However, compared to Manjaro’s GNOME edition, Manjaro provides a snappier experience.
-
-Note that your user experience with the performance and animation preferences also depends on your system configuration. For instance, the recommended system requirements (1 GB RAM + 1 GHz processor) for Manjaro give you room to use older computers.
-
-But, with Ubuntu, at the time of writing, you need at least 4 GB RAM and a 2 GHz dual-core processor to get an ideal desktop experience.
-
-### Documentation
-
-Ubuntu is easier to use and potentially more comfortable for new users, considering its popularity.
-
-[Ubuntu’s documentation][19] is good enough, if not excellent.
-
-When it comes to Manjaro Linux, they have a [wiki][20] with essential information and in-depth guides to help you out.
-
-In general, the [documentation available for Arch Linux][21] is meticulous, and almost everyone (even the veterans) refers to it to get help.
-
-The documentation for Arch Linux also applies to Manjaro Linux in a big way, so you do get an advantage in terms of documentation with Manjaro Linux over Ubuntu.
-
-### Wrapping Up
-
-Being two entirely different Linux distributions, they serve various kinds of users. You can choose to use anything if you want to explore the operating system and see if it suits you.
-
-However, if you want to avoid making any changes to your system and want to focus on your work, irrespective of the Linux distro, Ubuntu should be a no-brainer.
-
-In any case, if the performance with Ubuntu affects your experience by a considerable margin, you should try Manjaro. You can read my [initial thoughts on switching to Manjaro from Ubuntu][22].
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/ubuntu-vs-manjaro/
-
-作者:[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://itsfoss.com/author/ankush/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/what-is-desktop-environment/
-[2]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu22-04-lts-about.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-about.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-wallpaper.jpg
-[5]: https://itsfoss.com/which-ubuntu-install/
-[6]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-gnome-42.png
-[7]: https://itsfoss.com/essential-linux-applications/
-[8]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-package-manager.png
-[9]: https://itsfoss.com/wp-content/uploads/2022/04/firefox-as-snap.jpg
-[10]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-software-center.jpg
-[11]: https://itsfoss.com/aur-arch-linux/
-[12]: https://itsfoss.com/things-to-do-after-installing-ubuntu-22-04/
-[13]: https://itsfoss.com/wp-content/uploads/2022/05/stability-tux.png
-[14]: https://itsfoss.com/accent-color-ubuntu/
-[15]: https://itsfoss.com/gnome-tweak-tool/
-[16]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-layout.png
-[17]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu-22-apps.jpg
-[18]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-neofetch-lolcat-800x445.png
-[19]: https://help.ubuntu.com/
-[20]: https://wiki.manjaro.org/index.php/Main_Page
-[21]: https://wiki.archlinux.org/
-[22]: https://news.itsfoss.com/manjaro-linux-experience/
diff --git a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md b/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md
deleted file mode 100644
index 834980677d..0000000000
--- a/sources/tech/20220816 Marktext is an Excellent Editor Even for Those Who Don-t Know Markdown.md
+++ /dev/null
@@ -1,132 +0,0 @@
-[#]: subject: "Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown"
-[#]: via: "https://itsfoss.com/marktext-editor/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: " Chth0lly"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Marktext is an Excellent Editor Even for Those Who Don’t Know Markdown
-======
-Another Markdown editor? Have we not seen all kinds of Markdown editors already?
-
-I understand that feeling. If you are a Markdown lover, from [Joplin][1] to [Zettlr][2], you have tried most of them. And if you are not a Markdown fan, you probably don’t care about these editors.
-
-Markdown is an excellent markup language specially for people who write for the web. I am not going to go into the details here. We have an [excellent Markdown starters guide][3] if you are interested in learning more about it.
-
-My focus here is on introducing you to (another) Markdown editor, It’s called [Marktext][4] and it is an Electron app (don’t hate me just yet).
-
-I found it to be an excellent editor. It works as good as it looks. Let me share my experience and its features.
-
-### Marktext: A Markdown editor for everyone
-
-Hate [Electron framework][5] as much as possible but you cannot deny that Electron-based applications have a clean, modern interface.
-
-![Marktext interface][6]
-
-I prefer dark mode and hence I switched the theme. There are six themes in total for you to choose from.
-
-![Marktext dark theme][7]
-
-You can start writing the text immediately. If you don’t remember the text, don’t worry. Just use the insert option with @ and it will give you a number of options such as:
-
-* Headings
-* Divider line
-* Table
-* Mathematical equations
-* HTML block
-* Code block
-* Quote block
-* Lists
-* Checklist
-* Diagrams using vega-lite.js, flowchart.js, js-sequence and PlantUML
-
-![Use various document elements in the editor by pressing @][8]
-
-Select part of text and it gives you additional formatting option to change the text to bold, italic, underline, strike out. You can also highlight the text with yellow background text, convert them in inline code or inline math and create hyperlinks.
-
-![Text formatting options][9]
-
-Marktext also supports images. Though you know that images are not part of markdown (.md) file. They are external elements but you have the option to create a local assets folder in the same location where your Markdown file is saved.
-
-![Images are supported too][10]
-
-Adding image could have been made easier by including it in the insert menu. At the monet, you can add images by select texting and chosing the image option from the format options or use Ctrl+Shift+I keys. There is no scope for adding alt text or captions to the images. This should be improved.
-
-I liked the tables feature in Marktext. You can insert table with predefined size. If you changed your mind, you can resize it as easily. You can move the rows and columns, all with mouse drag and drop without touching the underlying code.
-
-![Tables are very well supported in Marktext][11]
-
-You can enable the sidebar view. The sidebar gives you three options. You can open folders containing multiple markdown files, perform a global search in all the files in the opened folder and show table of contents for the currently opened file. The table of content is automatically generated based on the subheadings.
-
-![Sidebar view has three options: Show folder content, global search and table of content][12]
-
-The gear icon at the bottom gives you additional settings to configure the editor. You can choose the themes, change image settings, views, enable auto-save and modify many more settings.
-
-![Configuration and settings][13]
-
-### Installing Marktext
-
-Marktext is a cross-platform, open source application. Along with Linux, it is available for Windows and macOS.
-
-For Linux, you get the options of AppImage and Flatpak. You can get the AppImage from[the release page][14].
-
-I chose the Flatpak version for better system integration. And it did work well because Marktext automatically became the default editor for .md files on my Ubuntu 22.04 system.
-
-Please ensure that you have Flatpak support enabled on your system and then add Flathub repo:
-
-```
-flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-```
-
-After that, use the command below to install it on your system:
-
-```
-flatpak install flathub com.github.marktext.marktext
-```
-
-If you don’t like it, you can remove it using this command:
-
-```
-fkatpak uninstall com.github.marktext.marktext
-```
-
-### Verdict
-
-There are plenty of small features like word count, math latex, spell checker or copy-pasting as markdown or HTML and I leave them up to you to discover.
-
-I’ll be honest. Despite using Markdown for writing articles for years, I don’t remember all the syntaxes. I remember the common ones for headings, lists, code block etc but if I have to create a table, I’ll have to search the web.
-
-I have [experimented with a number of markdown editors][15] and there are plenty of good ones there. However, I took an instant liking to Marktext and it is going to be on my system for a long time.
-
-If you try it, do share your experience in the comment section.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/marktext-editor/
-
-作者:[Abhishek Prakash][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://itsfoss.com/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/joplin/
-[2]: https://itsfoss.com/zettlr-markdown-editor/
-[3]: https://itsfoss.com/markdown-guide/
-[4]: https://github.com/marktext/marktext/
-[5]: https://www.electronjs.org/
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-interface.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-dark-theme.png
-[8]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-insert-options.png
-[9]: https://itsfoss.com/wp-content/uploads/2022/08/text-formatting-options-marktext.png
-[10]: https://itsfoss.com/wp-content/uploads/2022/08/images-in-marktext.png
-[11]: https://itsfoss.com/wp-content/uploads/2022/08/tables-in-marktext.png
-[12]: https://itsfoss.com/wp-content/uploads/2022/08/sidebar-view-marktext.png
-[13]: https://itsfoss.com/wp-content/uploads/2022/08/marktext-settings.png
-[14]: https://github.com/marktext/marktext/releases
-[15]: https://itsfoss.com/best-markdown-editors-linux/
diff --git a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md
deleted file mode 100644
index bfd8b9b3f6..0000000000
--- a/sources/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md
+++ /dev/null
@@ -1,84 +0,0 @@
-[#]: subject: "How to Create and Switch Workspaces in Linux Mint"
-[#]: via: "https://itsfoss.com/workspaces-linux-mint/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Create and Switch Workspaces in Linux Mint
-======
-Workspaces are a nice, neat way to organize your work.
-
-Suppose you have too many applications open. Your taskbar will be cluttered and it might be difficult for you to find/move between different programs.
-
-Workspaces come in handy in this situation. You can group applications in different workspaces. So, let’s say you have many programming-related applications opened. And you are also working on documentation.
-
-You can organize them in separate workspaces. Click and drag an application window and it should show the option for moving the application to a different workspace.
-
-This will ease your work in a more organized way and will save some time as well as frustration.
-
-Sounds good? Let me show you how to create workspaces in Linux Mint with [Cinnamon][1] and switch between them.
-
-### Create new workspaces
-
-Creating or accessing a workspace in Linux Mint is easy. Just press `CTRL + ALT+ UP`. It will show you a screen like the one below.
-
-Just click on the + sign on the right side to add a new workspace other than the default 4.
-
-![Workspace Overview in Linux Mint][2]
-
-The workspaces in Linux Mint are persistent. Once created, these workspaces will always be there, even after the next boot.
-
-### Switching between workspaces
-
-There are two ways to access the workspaces and switch between them.
-
-* Use Ctrl+Alt+Up arrow key and bring all the workspaces and then move between them using the arrow key or the mouse itself.
-* Use the hot corner and move the mouse in the top left corner.
-
-By default, the Hot Corner feature is disabled in the latest releases of Linux Mint.
-
-To enable Hot Corner to switch between workspaces, you should go to the System Settings and select **Hot Corners** option.
-
-![Hot Corners Option in System Settings][3]
-
-Now, enable the top left corner by toggling the button. By default, this corner is dedicated to show all workspace (you can change that as well).
-
-![Show All Workspaces in Top Left Corner][4]
-
-You can now access the workspaces grid by hovering over the top left corner.
-
-Also, if you want, you can add new workspaces by pressing the **+** symbol on the right. Or rename existing workspaces by clicking on the name according to your need.
-
-![Workspace Overview Accessible from Top Left Corner][5]
-
-### Delete a workspace
-
-You can in fact create several workspaces by clicking the + sign. In case you want to delete a workspace, click on the **X** sign on the top right of a workspace while hovering over it.
-
-![Delete a Workspace][6]
-
-I hope this quick post helped you to create a workspace in Linux Mint. Do you use workspaces frequently? Let us know your views on workspaces. Meanwhile, you may also check a post on [things to do after installing Linux Mint 20][7].
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/workspaces-linux-mint/
-
-作者:[Abhishek Prakash][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://itsfoss.com/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/quickly-fix-broken-unity-installing-cinnamon-20-ubuntu-1310/
-[2]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-in-linux-mint.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/08/hot-corners-option-in-system-settings.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/show-all-workspaces-in-top-left-corner.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-accessible-from-top-left-corner-1.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/delete-a-workspace.png
-[7]: https://itsfoss.com/things-to-do-after-installing-linux-mint-20/
diff --git a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md b/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md
deleted file mode 100644
index eed2ed9dcb..0000000000
--- a/sources/tech/20220824 Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users.md
+++ /dev/null
@@ -1,142 +0,0 @@
-[#]: subject: "Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users"
-[#]: via: "https://itsfoss.com/blackbox-terminal/"
-[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Blackbox is an Aesthetically Pleasing Terminal for Minimalists Linux Users
-======
-
-There are [numerous terminal emulators available for Linux][1]. From Terminator to Tilix, you have a wide selection of terminals to choose from.
-
-But that has not deterred the arrival of new terminal applications. You recently learned about [GNOME Console][2], and today, I’ll introduce you to Blackbox.
-
-### Blackbox Terminal: Overview and Features
-
-Blackbox is a terminal emulator which supports GTK4. The developer created this project so that he could use a decent-looking terminal app on Linux.
-
-So, don’t expect it to have ton of features. It is just a terminal emulator that utilizes GTK4 toolkit and has support for themes.
-
-In other words, it is more about the looks than the features.
-
-Here are the main highlights of Blackbox:
-
-* Theming ([Tilix][3] compatible color scheme support)
-* Theme integration with the window decorations
-* Custom fonts
-* Various customizable UI settings
-* Tabs
-* Toggleable header bar
-* Click to open links
-* Files drag-n-drop support
-
-Talking about the looks, let us go through the different looks it offers. The default window will look something like the screenshot below.
-
-![Default look of Blackbox terminal][4]
-
-#### No header bar
-
-You can also have no header bar, as shown below. It’s one of the most ‘popular’ features of GTK4 apps.
-
-![Blackbox without header bar][5]
-
-You can also enable floating controls in no header-bar mode.
-
-![Floating controls with no header bar mode][6]
-
-#### Easy copy and paste (don’t revolt)
-
-Ctrl+C and Ctrl+V are like the universal keyboard shortcuts for copy-paste.
-
-But the ancient Unix existed before the universe and hence it uses the [Ctrl+C keys for terminating a running program in the terminal][7].
-
-However, some people find it a bit inconvenient not to be able to use their favorite shortcuts for [copy-pasting in the terminal][8].
-
-Blackbox allows you to change that by enabling the “Easy Copy & Paste” setting. With this setting enabled, you can use Ctrl+C and Ctrl+v for copy-paste operation.
-
-Don’t worry. Ctrl+C can still be used for stopping running commands.
-
-![Easy copy-paste mode allows using Ctrl+C and Ctrl+V keys][9]
-
-#### Themes
-
-You can also select different themes from the settings. There are several light and dark themes available to choose from. You can also use Tilix styled theming.
-
-![Available themes for Blackbox][10]
-
-Let us see how it looks with the Yaru theme and with tabs not expanding, unlike the default Blackbox behaviour.
-
-![Blackbox with a changed theme][11]
-
-#### Reset to default
-
-There are a few more handy features like remember window size, scroll by pixels etc.
-
-The good thing is that if you made too many changes to the settings, you can revert them all and reset to the default settings.
-
-The option is available in the Advanced tab of Preferences.
-
-![reset blackbox settings to default][12]
-
-### Installing Blackbox terminal
-
-Please keep in mind that **Blackbox is in the early stages of development**. I experienced some crashes when I switched themes.
-
-To install Blackbox Terminal you should have [Flatpak installed and Flathub repo enabled][13] in your system.
-
-Use this command to install Blackbox on your system:
-
-```
-flatpak install flathub com.raggesilver.BlackBox
-```
-
-On Fedora and some other distributions that integrate with Flatpak, you can install Blackbox from the software center.
-
-![Blackbox can also be installed in GNOME Software Center][14]
-
-Once installed, you can launch it from the applications menu.
-
-#### Removing Blackbox Terminal
-
-If you don’t like Blackbox and want to remove it, enter the following command to remove it.
-
-```
-flatpak uninstall flathub com.raggesilver.BlackBox
-```
-
-### Conclusion
-
-In my opinion, Blackbox is a decent terminal emulator. You get all the eye-candy GTK4 can offer on distributions that do not support GTK4 already. The feature it offers are good enough for day to day work.
-
-In the end, it all comes to personal preference. You may like it. You may not like it. If you like experimenting, give it a try and share your experience with us in the comment section.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/blackbox-terminal/
-
-作者:[Anuj Sharma][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://itsfoss.com/author/anuj/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/linux-terminal-emulators/
-[2]: https://itsfoss.com/gnome-console/
-[3]: https://github.com/gnunn1/tilix
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-default.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-noheader.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-floating-controls.png
-[7]: https://itsfoss.com/stop-program-linux-terminal/
-[8]: https://itsfoss.com/copy-paste-linux-terminal/
-[9]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-easy-copy-paste.png
-[10]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-theme-selection.png
-[11]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-yaru.png
-[12]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-reset.png
-[13]: https://itsfoss.com/flatpak-guide/
-[14]: https://itsfoss.com/wp-content/uploads/2022/08/blackbox-install.png
diff --git a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md b/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md
deleted file mode 100644
index 5e35a116ba..0000000000
--- a/sources/tech/20220824 sudo apt update vs upgrade- What-s the Difference-.md
+++ /dev/null
@@ -1,147 +0,0 @@
-[#]: subject: "sudo apt update vs upgrade: What’s the Difference?"
-[#]: via: "https://itsfoss.com/apt-update-vs-upgrade/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: "Yufei-Yan"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-sudo apt update vs upgrade: What’s the Difference?
-======
-
-If you want to keep your Ubuntu or Debian system updated, you use the combination of **sudo apt update** and **sudo apt upgrade** commands.
-
-Some older tutorial also mention **sudo apt-get update** and **sudo apt-get upgrade**.
-
-Both apt and apt-get commands work pretty much the same except for some minor differences that I’ll discuss later in this later.
-
-Let’s first discuss the difference between update and upgrade. Are not the two the same thing?
-
-### Difference between apt update and upgrade
-
-Though it sounds like running the apt update will give you the latest version of the package, it’s not true. The update command only gets the information about the latest version of packages available for your system. It doesn’t download or install any package. It is the apt upgrade command that actually downloads and upgrades the package to the new version.
-
-Still confused? Let me explain a bit more. I advise [reading up on the concept of package manager][1]. It will help you understand things even better.
-
-![Linux Package Manager Explanation][2]
-
-Basically your system works on a database (cache) of available packages. Note that this cache or database doesn’t contain the packages themselves, just the metadata (version, repository, dependency etc) on the package.
-
-If you don’t update this database, the system won’t know if there are newer packages available or not.
-
-When you run the apt update or apt-get update command, it will fetch the updated metadata (package version etc) on the packages.
-
-![apt update][3]
-
-Your local package cache has been updated and there are packages that can be upgraded. You can upgrade all of the (upgradable) packages with sudo apt upgrade.
-
-It shows the packages that are going to be upgraded and ask you to confirm by pressing enter (for default choice Y) or Y key. To cancel the upgrade at this stage, you can press N.
-
-![apt upgrade][4]
-
-If it helps you remember:
-
-* apt update: updates the package cache (to know which package versions can be installed or upgraded)
-* apt upgrade: upgrades packages to the new version
-
-Since these are administrative commands, you need to run them as root. And hence you use sudo with both commands. The sudo part lets you run commands as root in Ubuntu and Debian.
-
-Now that you understand how the combination update and upgrade works, let’s discuss the use of apt and apt-get.
-
-### apt or apt-get? Which one should you be using?
-
-Debian and Ubuntu use the APT package management system. Don’t confuse it with the apt command.
-
-There are many commands that interact with the APT package management; apt-get, apt, dpkg, aptitude etc.
-
-The apt-get command was the most popular of them all. It is a low-level, feature rich command. apt is a newer and simpler version of apt-get.
-
-You can [read this article to learn on the differences of apt and apt-get commands][5]. Let me focus on difference between the update and upgrade options of these commands.
-
-#### apt update vs apt-get update
-
-Both `apt-get update` and `apt update` do the same task of updating the local package cache so that your system is aware of the available package versions.
-
-Technically, there is no difference. However, apt update does one thing better than apt-get update. It **tells you the number of packages that can be upgraded**.
-
-```
-Hit:15 https://ppa.launchpadcontent.net/slimbook/slimbook/ubuntu jammy InRelease
-Fetched 213 kB in 4s (55.8 kB/s)
-Reading package lists... Done
-Building dependency tree... Done
-Reading state information... Done
-6 packages can be upgraded. Run 'apt list --upgradable' to see them.
-```
-
-apt-get update doesn’t even tell you if any package can be upgraded.
-
-![apt get update][6]
-
-![apt update output][7]
-
-You can see the [list of upgradable packages][8] with apt but apt-get doesn’t have this option.
-
-```
-[email protected]:~$ apt list --upgradable
-Listing... Done
-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
-gnome-control-center-data/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
-gnome-control-center-faces/jammy-updates,jammy-updates 1:41.7-0ubuntu0.22.04.4 all [upgradable from: 1:41.7-0ubuntu0.22.04.1]
-gnome-control-center/jammy-updates 1:41.7-0ubuntu0.22.04.4 amd64 [upgradable from: 1:41.7-0ubuntu0.22.04.1]
-libpam-fprintd/jammy-updates 1.94.2-1ubuntu0.22.04.1 amd64 [upgradable from: 1.94.2-1]
-vivaldi-stable/stable 5.4.2753.40-1 amd64 [upgradable from: 5.4.2753.37-1]
-```
-
-Let’s talk compare the upgrade option of both commands.
-
-#### apt upgrade vs apt-get upgrade
-
-Both apt-get upgrade and apt upgrade commands install the newer version of the upgradable packages based on the data in the local package cache (refreshed by the update command).
-
-However, the apt upgrade command does couple of things differently than its apt-get counterpart.
-
-The **apt upgrade command can upgrade the Linux kernel version, apt-get upgrade cannot** do that. You need to use [apt-get dist-upgrade][9] for upgrading the kernel version with apt-get command.
-
-![apt-get upgrade command cannot upgrade Linux kernel version][10]
-
-This is because upgrading the kernel version means installing a completely new package. apt-get upgrade command cannot install a new package. It can only upgrade existing packages.
-
-Another small thing that apt upgrade does better than apt-get upgrade is to **show a progress bar** at the bottom.
-
-![apt upgrade progress bar][11]
-
-### Conclusion
-
-The word update and upgrades are similar and this is why it confuses a lot of new users. At times, I think the apt update command should be merged with the apt upgrade command.
-
-I mean the upgrade (of installed package versions) works in conjugation with the update (of local package metadata cache). Why have two separate commands for that? Combine them in a single upgrade command. This is what Fedora has done with the DNF command. That’s just my opinion.
-
-I hope this article cleared some air around the usage of apt-get update, apt-get upgrade and apt update and apt upgrade commands.
-
-Do let me know if you have any questions.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/apt-update-vs-upgrade/
-
-作者:[Abhishek Prakash][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://itsfoss.com/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/package-manager/
-[2]: https://itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade.png
-[5]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-update.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/08/apt-update-output.png
-[8]: https://itsfoss.com/apt-list-upgradable/
-[9]: https://itsfoss.com/apt-get-upgrade-vs-dist-upgrade/
-[10]: https://itsfoss.com/wp-content/uploads/2022/08/apt-get-upgrade.png
-[11]: https://itsfoss.com/wp-content/uploads/2022/08/apt-upgrade-progress-bar.png
diff --git a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md b/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md
deleted file mode 100644
index 85f500b007..0000000000
--- a/sources/tech/20220825 How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish.md
+++ /dev/null
@@ -1,115 +0,0 @@
-[#]: subject: "How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish"
-[#]: via: "https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Get KDE Plasma 5.25 in Kubuntu 22.04 Jammy Jellyfish
-======
-The KDE developers now enabled the popular backports PPA with necessary updates with KDE Plasma 5.25 which you can install now in Kubuntu 22.04 Jammy Jellyfish. Here’s how.
-
-KDE Plasma 5.25 released a few days back on June 14, 2022 with some stunning updates. With this release, you get the **dynamic accent colour**, revamped login avatars, **floating panel** and many such features which we covered in the [feature highlight article][1].
-
-But, if you are running [Kubuntu 22.04 Jammy Jellyfish][2] which was released long back on April 2022, you have the KDE Plasma 5.24 with KDE Framework 5.92.
-
-You probably waiting to enjoy the new features in your stable Kubuntu 22.04 release, and now its possible to install it in Kubuntu 22.04 via the famous backports PPA.
-
-### How to Install KDE Plasma 5.25 in Kubuntu 22.04
-
-Here’s how you can upgrade Kubuntu 22.04 with latest KDE Plasma 5.25.
-
-#### GUI Method
-
-If you are comfortable with KDE’s software app Discover, then open the app. Then browse to the Settings > Sources and add the PPA `ppa:kubuntu-ppa/backports-extra`. Then Click on Updates.
-
-#### Terminal Method (recommended)
-
-I would recommend you to open a terminal and do this upgrade for faster execution and installation.
-
-* Open Konsole and run the following commands to add the [backport PPA][3].
-
-```
-sudo add-apt-repository ppa:kubuntu-ppa/backports-extra
-```
-
-![Upgrade Kubuntu 22.04 with KDE Plasma 5.25][4]
-
-* Now, refresh the package list by running the following command. Then verify the 5.25 packages are available.
-
-```
-sudo apt update
-```
-
-```
-apt list --upgradable | grep 5.25
-```
-
-![KDE Plasma 5.25 packages are available now][5]
-
-Finally, run the last command to kick-off the upgrade.
-
-```
-sudo apt full-upgrade
-```
-
-The total download size is around 200 MB worth of packages. The entire process takes around 10 minutes of your time based on your internet connection speed.
-
-After the above command is complete, restart your system.
-
-Post-restart, you should see the new KDE Plasma 5.25 in Kubuntu 22.04 LTS.
-
-![KDE Plasma 5.25 in Kubuntu 22.04 LTS][6]
-
-### Other backport PPA
-
-Please note that the [other backport PPA][7] `ppa:kubuntu-ppa/backports` is currently have Plasma 5.24. So do not use the following PPA which is different than the above. I am not sure whether this PPA would get this update.
-
-```
-sudo add-apt-repository ppa:kubuntu-ppa/backports // don't use this
-```
-
-### How to Uninstall
-
-At any moment, if you would like to go back to the stock version of KDE Plasma desktop, then you can install ppa-purge and remove the PPA, followed by refreshing the package.
-
-Open a terminal and execute the following commands in sequence.
-
-```
-sudo apt install ppa-purge
-sudo ppa-purge ppa:kubuntu-ppa/backports-extra
-sudo apt update
-```
-
-Once the above commands are complete, restart your system.
-
-### Closing Notes
-
-There you have it. A nice and simple steps to upgrade stock KDE Plasma to Plasma 5.25 in Jammy Jellyfish. I hope, your upgrade goes fine.
-
-Do let me know in the comment section if you face any error.
-
-Cheers.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/kde-plasma-5-25-kubuntu-22-04/
-
-作者:[Arindam][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.debugpoint.com/author/admin1/
-[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/kde-plasma-5-25/
-[2]: https://www.debugpoint.com/kubuntu-22-04-lts/
-[3]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports-extra
-[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrade-Kubuntu-22.04-with-KDE-Plasma-5.25.jpg
-[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-packages-are-available-now.jpg
-[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/KDE-Plasma-5.25-in-Kubuntu-22.04-LTS-1024x575.jpg
-[7]: https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/backports
diff --git a/sources/tech/20220826 How I analyze my music directory with Groovy.md b/sources/tech/20220826 How I analyze my music directory with Groovy.md
deleted file mode 100644
index 036c1b7b18..0000000000
--- a/sources/tech/20220826 How I analyze my music directory with Groovy.md
+++ /dev/null
@@ -1,128 +0,0 @@
-[#]: subject: "How I analyze my music directory with Groovy"
-[#]: via: "https://opensource.com/article/22/8/groovy-script-java-music"
-[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How I analyze my music directory with Groovy
-======
-To simplify Java's clunkiness, I made a Groovy tool to analyze my music directory.
-
-Lately, I’ve been looking at how Groovy streamlines the slight clunkiness of Java. In this article, I begin a short series to demonstrate Groovy scripting by creating a tool to analyze my music directory.
-
-In this article, I demonstrate how the `groovy.File` class extends and streamlines `java.File` and simplifies its use. This provides a framework for looking at the contents of a music folder to ensure that expected content (for example, a `cover.jpg` file) is in place. I use the [JAudiotagger library][2] to analyze the tags of any music files.
-
-### Install Java and Groovy
-
-Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed directly from the [Apache Foundation website][3]. A nice alternative for Linux users is [SDKMan][4], which can be used to get multiple versions of Java, Groovy, and many other related tools. For this article, I use SDK's releases of:
-
-* Java: version 11.0.12-open of OpenJDK 11
-* Groovy: version 3.0.8
-
-### Music metadata
-
-Lately, I've consolidated my music consumption options. I've settled on using the excellent open source [Cantata][5] music player, which is a front end for the open source [MPD music player daemon][6]. All my computers have their music stored in the `/var/lib/mpd/music` directory. In that music directory are artist subdirectories, and in each artist subdirectory are album sub-subdirectories containing the music files, a `cover.jpg`, and occasionally PDFs of the liner notes.
-
-Almost all of my music files are in FLAC format, with a few in MP3 and maybe a small handful in OGG. One reason I chose the JAudiotagger library is because it handles the different tag formats transparently. Of course, JAudiotagger is open source!
-
-So what's the point of looking at audio tags? In my experience, audio tags are extremely poorly managed. The word "careless" comes to mind. But that may be as much a recognition of my own pedantic tendencies as real problems in the tags themselves. In any case, this is a non-trivial problem that can be solved with the use of Groovy and JAudiotagger. It's not only applicable to music collections, though. Many other real-world problems include the need to descend a directory tree in a filesystem to do something with the contents found there.
-
-### Using the Groovy script
-
-Here's the basic code required for this task. I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" I typically leave for myself:
-
-```
-1 // Define the music libary directory
-2 def musicLibraryDirName = '/var/lib/mpd/music'
-3 // Print the CSV file header
-4 println "artistDir|albumDir|contentFile"
-5 // Iterate over each directory in the music libary directory
-6 // These are assumed to be artist directories
-7 new File(musicLibraryDirName).eachDir { artistDir ->
-8 // Iterate over each directory in the artist directory
-9 // These are assumed to be album directories
-10 artistDir.eachDir { albumDir ->
-11 // Iterate over each file in the album directory
-12 // These are assumed to be content or related
-13 // (cover.jpg, PDFs with liner notes etc)
-14 albumDir.eachFile { contentFile ->
-15 println "$artistDir.name|$albumDir.name|$contentFile.name"
-16 }
-17 }
-18 }
-```
-
-As noted above, I'm using `groovy.File` to move around the directory tree. Specifically:
-
-Line 7 creates a new `groovy.File` object and calls `groovy.File.eachDir()` on it, with the code between the `{` on line 7 and the closing `}` on line 18 being a `groovy.Closure` argument to `eachDir()`.
-
-What this means is that `eachDir()` executes that code for each subdirectory found in the directory. This is similar to a Java *lambda* (also called an "anonymous function"). The Groovy closure doesn't restrict access to the calling environment in the way lambda does (in recent versions of Groovy, you can use Java lambdas if you want to). As noted above, subdirectories within the music library directory are expected to be artist directories (for example, "Iron Butterfly" or "Giacomo Puccini") so the `artistDir` is the argument passed by `eachDir()` to the closure.
-
-Line 10 calls `eachDir()` on each `artistDir`, with the code between the `{` on line 10 and the `}` on line 17 forming another closure which processes the `albumDir`.
-
-Line 14, calls `eachFile()` on each `albumDir`, with the code between the `{` on line 14 and the `}` on line 16 forming the third-level closure that processes the contents of the album.
-
-For the scope of this article, the only thing I need to do with each file is begin to build the table of information, which I'm creating as a bar-delimited CSV file that can be imported into [LibreOffice][7] or [OnlyOffice][8], or any other spreadsheet. Right now, the code writes out the first three columns: artist directory name, album directory name, and content file name (also, line 2 writes out the CSV header line).
-
-Running this on my Linux laptop produces the following output:
-
-```
-$ groovy TagAnalyzer.groovy | head
-artistDir|albumDir|contentFile
-Habib Koite & Bamada|Afriki|02 - Ntesse.flac
-Habib Koite & Bamada|Afriki|08 - NTeri.flac
-Habib Koite & Bamada|Afriki|01 - Namania.flac
-Habib Koite & Bamada|Afriki|07 - Barra.flac
-Habib Koite & Bamada|Afriki|playlist.m3u
-Habib Koite & Bamada|Afriki|04 - Fimani.flac
-Habib Koite & Bamada|Afriki|10 - Massake.flac
-Habib Koite & Bamada|Afriki|11 - Titati.flac
-Habib Koite & Bamada|Afriki|03 – Africa.flac
-[...]
-Richard Crandell|Spring Steel|04-Japanese Lullaby [Richard Crandell].flac
-Richard Crandell|Spring Steel|Spring Steel.pdf
-Richard Crandell|Spring Steel|03-Zen Dagger [Richard Crandell].flac
-Richard Crandell|Spring Steel|cover.jpg
-$
-```
-
-In terms of performance:
-
-```
-$ time groovy TagAnalyzer.groovy | wc -l
-9870
-
-real 0m1.482s
-user 0m4.392s
-sys 0m0.230s
-$
-```
-
-Nice and quick. It processes nearly 10,000 files in a second and a half! Plenty fast enough for me. Respectable performance, compact and readable code—what's not to like?
-
-In my next article, I crack open the JAudiotagger interface and look at the tags in each file.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/8/groovy-script-java-music
-
-作者:[Chris Hermansen][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://opensource.com/users/clhermansen
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png
-[2]: http://www.jthink.net/jaudiotagger/examples_read.jsp
-[3]: https://groovy.apache.org/download.html
-[4]: https://opensource.com/article/22/3/manage-java-versions-sdkman
-[5]: https://opensource.com/article/17/8/cantata-music-linux
-[6]: https://www.musicpd.org/
-[7]: https://opensource.com/tags/libreoffice
-[8]: https://opensource.com/article/20/7/nextcloud
diff --git a/sources/tech/20220829 4 ways to use the Linux tar command.md b/sources/tech/20220829 4 ways to use the Linux tar command.md
new file mode 100644
index 0000000000..0b5ebe3ae4
--- /dev/null
+++ b/sources/tech/20220829 4 ways to use the Linux tar command.md
@@ -0,0 +1,95 @@
+[#]: subject: "4 ways to use the Linux tar command"
+[#]: via: "https://opensource.com/article/22/8/linux-tar-command"
+[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+4 ways to use the Linux tar command
+======
+How do you use the tar command? That's what I recently asked our community of writers. Here are some of their answers.
+
+When you have a lot of related files, it's sometimes easier to treat them as a single object rather than 3 or 20 or 100 unique files. There are fewer clicks involved, for instance, when you email *one* file compared to the mouse work required to email 30 separate files. This quandary was solved decades ago when programmers invented a way to create an *archive*, and so the `tar` command was born (the name stands for *tape archive* because back then, files were saved to magnetic tape.) Today `tar` remains a useful way to bundle files together, whether it's to compress them so they take up less space on your drive, to make it easier to deal with lots of files, or to logically group files together as a convenience.
+
+I asked Opensource.com authors how they used `tar`, and related tools like `zip` and `gzip`, in their daily work. Here's what they said.
+
+### Backups and logs
+
+I use `tar` and `zip` whenever I need to make a backup or archive of an entire directory tree. For example, delivering a set of files to a client, or just making a quick backup of my web root directory before I make a major change on the website. If I need to share with others, I create a ZIP archive with `zip -9r`, where `-9` uses best possible compression, and `-r` will recurse into subdirectories. For example, `zip -9r client-delivery.zip client-dir` makes a zip file of my work, which I can send to a client.
+
+If the backup is just for me, I probably use `tar` instead. When I use `tar`, I usually use `gzip` to compress, and I do it all on one command line with `tar czf`, where `c` will create a new archive file, `z` compresses it with `gzip`, and `f` sets the archive filename. For example, `tar czf web-backup.tar.gz html` creates a compressed backup of my `html` directory.
+
+I also have web applications that create log files. And to keep them from taking up too much space, I compress them using `gzip`. The `gzip` command is a great way to compress a *single file*. This can be a TAR archive file, or just any regular file like a log file. To make the gzipped file as small as possible, I compress the file with `gzip -9`, where `-9` uses the best possible compression.
+
+The great thing about using `gzip` to compress files is that I can use commands like `zcat` and `zless` to view them later, without having to uncompress them on the disk. So if I want to look at my log file from yesterday, I can use `zless yesterday.log.gz` and the `zless` command automatically uncompresses the data with `gunzip` and send it to the `less` viewer. Recently, I wanted to look at how many log entries I had per day, and I ran that with a `zcat` command like:
+
+```
+for f in *.log.gz; do echo -n "$f,"; zcat $f | wc -l; done
+```
+
+This generates a comma-separated list of log files and a line count, which I can easily import to a spreadsheet for analysis.
+
+**[—Jim Hall][2]**
+
+### Zcat
+
+I introduced the `zcat` command in my article [Getting started with the cat command][3]. Maybe this can act as a stimulus for further discussion of "in-place" compressed data analysis.
+
+**[—Alan Formy-Duval][4]**
+
+### Zless and lzop
+
+I love having `zless` to browse log files and archives. It really helps reduce the risk of leaving random old log files around that I haven't cleaned up.
+
+When dealing with compressed archives, `tar -zxf` and `tar -zcf` are awesome, but don't forget about `tar -j` for those bzip2 files, or even `tar -J` for the highly compressed xz files.
+
+If you're dealing with a platform with limited CPU resources, you could even consider a lower overhead solution like `lzop`. For example, on the source computer:
+
+```
+tar --lzop -cf - source_directory | nc destination-host 9999
+```
+
+On the destination computer:
+
+```
+nc -l 9999 | tar --lzop -xf -
+```
+
+I've often used that to compress data between systems where we have bandwidth limitations and need a low resource option.
+
+**[—Steven Ellis][5]**
+
+### Ark
+
+I've found myself using the KDE application Ark lately. It's a GUI application, but it integrates so well with the Dolphin file manager that I've gotten into the habit of just updating files straight into an archive without even bothering to unarchive the whole thing. Of course, you can do the same thing with the `tar` command, but if you're browsing through files in Dolphin anyway, Ark makes it quick and easy to interact with an archive without interrupting your current workflow.
+
+![Ark][6]
+
+Image by: (Seth Kenlon, CC BY-SA 4.0)
+
+Archives used to feel a little like a forbidden vault to me. Once I put files into an archive, they were as good as forgotten because it just isn't always convenient to interact with an archive. But Ark lets you preview files without uncompressing them (technically they're being uncompressed, but it doesn't "feel" like they are because it all happens in place), remove a file from an archive, update files, rename files, and a lot more. It's a really nice and dynamic way to interact with archives, which encourages me to use them more often.
+
+**[—Seth Kenlon][7]**
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/linux-tar-command
+
+作者:[AmyJune Hineline][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://opensource.com/users/amyjune
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/collab-team-pair-programming-code-keyboard2.png
+[2]: https://opensource.com/users/jim-hall
+[3]: https://opensource.com/Getting%20Started%20with%20the%20Cat%20Command
+[4]: https://opensource.com/users/alanfdoss
+[5]: https://opensource.com/opensource.com/users/steven-ellis
+[6]: https://opensource.com/sites/default/files/2022-08/ark.webp
+[7]: https://opensource.com/users/seth
diff --git a/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md b/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md
new file mode 100644
index 0000000000..1b503e8b77
--- /dev/null
+++ b/sources/tech/20220829 Clean up unwanted files in your music directory using Groovy.md
@@ -0,0 +1,118 @@
+[#]: subject: "Clean up unwanted files in your music directory using Groovy"
+[#]: via: "https://opensource.com/article/22/8/remove-files-music-directory-groovy"
+[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Clean up unwanted files in your music directory using Groovy
+======
+In this demonstration, I facilitate removing unwanted files in the album directories.
+
+In this series, I'm developing several scripts to help in cleaning up my music collection. In the last article, we used the framework created for analyzing the directory and sub-directories of music files, checking to make sure each album has a `cover.jpg` file and recording any other files that aren't FLAC, MP3, or OGG.
+
+I uncovered a few files that can obviously be deleted—I see the odd `foo` lying around—and a bunch of PDFs, PNGs, and JPGs that are album art. With that in mind, and thinking about the cruft removal task, I offer an improved script that uses a Groovy map to record file names and counts of their occurrences and print that in CSV format.
+
+### Get started analyzing with Groovy
+
+If you haven't already, read the first three articles of this series before continuing:
+
+* [How I analyze my music directory with Groovy][2]
+* [My favorite open source library for analyzing music files][3]
+* [How I use Groovy to analyze album art in my music directory][4]
+
+They'll ensure you understand the intended structure of my music directory, the framework created in that article, and how to pick up FLAC, MP3, and OGG files. In this article, I facilitate removing unwanted files in the album directories.
+
+### The framework and the album files analysis bits
+
+Start with the code. As before, I've incorporated comments in the script that reflect the (relatively abbreviated) "comment notes" that I typically leave for myself:
+
+```
+1 // Define the music libary directory
+2 // def musicLibraryDirName = '/var/lib/mpd/music'
+3 // Define the file name accumulation map
+4 def fileNameCounts = [:]
+5 // Print the CSV file header
+6 println "filename|count"
+7 // Iterate over each directory in the music libary directory
+8 // These are assumed to be artist directories
+9 new File(musicLibraryDirName).eachDir { artistDir ->
+10 // Iterate over each directory in the artist directory
+11 // These are assumed to be album directories
+12 artistDir.eachDir { albumDir ->
+13 // Iterate over each file in the album directory
+14 // These are assumed to be content or related
+15 // (cover.jpg, PDFs with liner notes etc)
+16 albumDir.eachFile { contentFile ->
+17 // Analyze the file
+18 if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) {
+19 // nothing to do here
+20 } else if (contentFile.name == 'cover.jpg') {
+21 // don't need to do anything with cover.jpg
+22 } else {
+23 def fn = contentFile.name
+24 if (contentFile.isDirectory())
+25 fn += '/'
+26 fileNameCounts[fn] = fileNameCounts.containsKey(fn) ? fileNameCounts[fn] + 1 : 1
+27 }
+28 }
+29 }
+30 }
+31 // Print the file name counts
+32 fileNameCounts.each { key, value ->
+33 println "$key|$value"
+34 }
+```
+
+This is a pretty straightforward set of modifications to the original framework.
+
+Lines 3-4 define `fileNameCount`, a map for recording file name counts.
+
+Lines 17-27 analyze the file names. I avoid any files ending in `.flac`, `.mp3` or `.ogg` as well as `cover.jpg` files.
+
+Lines 23-26 record file names (as keys to `fileNameCounts` ) and counts (as values). If the file is actually a directory, I append a `/` to help deal with it in the removal process. Note in line 26 that Groovy maps, like Java maps, need to be checked for the presence of the key before incrementing the value, unlike for example the [awk programming language][5].
+
+That's it!
+
+I run this as follows:
+
+```
+$ groovy TagAnalyzer4.groovy > tagAnalysis4.csv
+```
+
+Then I load the resulting CSV into a LibreOffice spreadsheet by navigating to the **Sheet** menu and selecting **Insert sheet from file**. I set the delimiter character to `&$124;`.
+
+![Image of a screenshot of LibreOffice Calc tht shows tagAnalysis][6]
+
+Image by: (Chris Hermansen, CC BY-SA 4.0)
+
+I've sorted this in decreasing order of the column **count** to emphasize repeat offenders. Note as well on lines 17-20 a bunch of M3U files that refer to the name of the album, probably created by some well-intentioned ripping program. I also see, further down (not shown), files like `fix` and `fixtags.sh`, evidence of prior efforts to clean up some problem and leaving other cruft lying around in the process. I use the `find` command line utility to get rid of some of these files, along the lines of:
+
+```
+$ find . \( -name \*.m3u -o -name tags.txt -o -name foo -o -name .DS_Store \
+-o -name fix -o -name fixtags.sh \) -exec rm {} \;
+```
+
+I suppose I could have used another Groovy script to do that as well. Maybe next time.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/remove-files-music-directory-groovy
+
+作者:[Chris Hermansen][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://opensource.com/users/clhermansen
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/music-column-osdc-lead.png
+[2]: https://opensource.com/article/22/8/groovy-script-java-music
+[3]: https://opensource.com/article/22/8/analyze-music-files-jaudiotagger
+[4]: https://opensource.com/article/22/8/groovy-album-music-directory
+[5]: https://opensource.com/article/19/10/intro-awk
+[6]: https://opensource.com/sites/default/files/2022-08/Screenshot%20of%20LibreOffice%20Calc%20showing%20some%20of%20tagAnalysis.png
diff --git a/sources/tech/20220829 Fedora Linux editions part 2- Spins.md b/sources/tech/20220829 Fedora Linux editions part 2- Spins.md
new file mode 100644
index 0000000000..d2ece3f6cb
--- /dev/null
+++ b/sources/tech/20220829 Fedora Linux editions part 2- Spins.md
@@ -0,0 +1,123 @@
+[#]: subject: "Fedora Linux editions part 2: Spins"
+[#]: via: "https://fedoramagazine.org/fedora-linux-editions-part-2-spins/"
+[#]: author: "Arman Arisman https://fedoramagazine.org/author/armanwu/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Fedora Linux editions part 2: Spins
+======
+![Fedora Linux editions part 2 Spins][1]
+
+Photo by [Frédéric Perez][2] on [Unsplash][3]
+
+One of the nice things about using Linux is the wide choice of desktop environments. Fedora Linux official Worksation edition comes with GNOME as default desktop environment, but you can choose another desktop environment as default via Fedora Spins. This article will go into a little more detail about the Fedora Linux Spins. You can find an overview of all the Fedora Linux variants in my previous article [Introduce the different Fedora Linux editions][4].
+
+### KDE Plasma Desktop
+
+This Fedora Linux comes with KDE Plasma as the default desktop environment. KDE Plasma is an elegant desktop environment that is very easy to customize. Therefore, you can freely and easily change the appearance of your desktop as you wish. You can customize your favorite themes, install the widgets you want, change icons, change fonts, customize panels according to your preferences, and install various extensions from the community.
+
+Fedora Linux KDE Plasma Desktop is installed with a variety of ready-to-use applications. You’re ready to go online with Firefox, Kontact, Telepathy, KTorrent, and KGet. LibreOffice, Okular, Dolphic, and Ark are ready to use for your office needs. Your multimedia needs will be met with several applications such as Elisa, Dragon Player, K3B, and GwenView.
+
+![Fedora KDE Plasma Desktop][5]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/kde/][6]
+
+### XFCE Desktop
+
+This version is perfect for those who want a balance between ease of customizing appearance and performance. XFCE itself is made to be fast and light, but still has an attractive appearance. This desktop environment is becoming popular for those with older devices.
+
+Fedora Linux XFCE is installed with various applications that suit your daily needs. These applications are Firefox, Pidgin, Gnumeric, AbiWord, Ristretto, Parole, etc. Fedora Linux XFCE also already has a System Settings menu to make it easier for you to configure your Fedora Linux.
+
+![Fedora XFCE Desktop][7]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/xfce/][8]
+
+### LXQT Desktop
+
+This spin comes with a lightweight Qt desktop environment, and focuses on modern classic desktops without slowing down the system. This version of Fedora Linux includes applications based on the Qt5 toolkit and is Breeze themed. You will be ready to carry out various daily activities with built-in applications, such as QupZilla, QTerminal, FeatherPad, qpdfview, Dragon Player, etc.
+
+![Fedora LXQt Desktop][9]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/lxqt/][10]
+
+### MATE-Compiz Desktop
+
+Fedora Linux MATE Compiz Desktop is a combination of MATE and Compiz Fusion. MATE desktop allows this version of Fedora Linux to work optimally by prioritizing productivity and performance. At the same time Compiz Fusion provides a beautiful 3D look with Emerald and GTK + themes. This Fedora Linux is also equipped with various popular applications, such as Firefox, LibreOffice, Parole, FileZilla, etc.
+
+![Fedora Mate-Compiz Desktop][11]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/mate-compiz/][12]
+
+### Cinnamon Desktop
+
+Because of its user-friendly interface, Fedora Linux Cinnamon Desktop is perfect for those who may be new to the Linux operating system. You can easily understand how to use this version of Fedora Linux. This spin has built-in applications that are ready to use for your daily needs, such as Firefox, Pidgin, GNOME Terminal, LibreOffice, Thunderbird, Shotwell, etc. You can use Cinnamon Settings to configure your operating system.
+
+![Fedora Cinnamon Desktop][13]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/cinnamon/][14]
+
+### LXDE Desktop
+
+Fedora Linux LXDE Desktop has a desktop environment that performs fast but is designed to keep resource usage low. This spin is designed for low-spec hardware, such as netbooks, mobile devices, and older computers. Fedora Linux LXDE has lightweight and popular applications, such as Midori, AbiWord, Osmo, Sylpheed, etc.
+
+![Fedora LXDE Desktop][15]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/lxde/][16]
+
+### SoaS Desktop
+
+SoaS stands for Sugar on a Stick. Fedora Linux Sugar Desktop is a learning platform for children, so it has a very simple interface that is easy for children to understand. The word “stick” in this context refers to a thumb drive or memory “stick”. This means this OS has a compact size and can be completely installed on a thumb drive. Schoolchildren can carry their OS on a thumb drive, so they can use it easily at home, school, library, and elsewhere. Fedora Linux SoaS has a variety of interesting learning applications for children, such as Browse, Get Books, Read, Turtle Blocks, Pippy, Paint, Write, Labyrinth, Physic, and FotoToon.
+
+![Fedora SOAS Desktop][17]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/soas/][18]
+
+### i3 Tiling WM
+
+The i3 Tiling WM spin of Fedora Linux is a bit different from the others. This Fedora Linux spin does not use a desktop environment, but only uses a window manager. The window manager used is i3, which is a very popular tiling window manager among Linux users. Fedora i3 Spin is intended for those who focus on interacting using a keyboard rather than pointing devices, such as a mouse or touchpad. This spin of Fedora Linux is equipped with various applications, such as Firefox, NM Applet, brightlight, azote, htop, mousepad, and Thunar.
+
+![Fedora i3 Tiling WM][19]
+
+More information is available at this link: [https://spins.fedoraproject.org/en/i3/][20]
+
+### Conclusion
+
+Fedora Linux provides a large selection of desktop environments through Fedora Linux Spins. You can simply choose one of the Fedora Spins, and immediately enjoy Fedora Linux with the desktop environment of your choice along with its ready-to-use built-in applications. You can find complete information about Fedora Spins at [https://spins.fedoraproject.org/][21].
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/fedora-linux-editions-part-2-spins/
+
+作者:[Arman Arisman][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://fedoramagazine.org/author/armanwu/
+[b]: https://github.com/lkxed
+[1]: https://fedoramagazine.org/wp-content/uploads/2022/06/FedoraMagz-FedoraEditions-2-Spins-816x345.png
+[2]: https://unsplash.com/@fredericp?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[3]: https://unsplash.com/s/photos/blue-abstract?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
+[4]: https://fedoramagazine.org/introduce-the-different-fedora-linux-editions/
+[5]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-kde.jpg
+[6]: https://spins.fedoraproject.org/en/kde/
+[7]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-xfce.jpg
+[8]: https://spins.fedoraproject.org/en/xfce/
+[9]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-lxqt.jpg
+[10]: https://spins.fedoraproject.org/en/lxqt/
+[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-matecompiz.jpg
+[12]: https://spins.fedoraproject.org/en/mate-compiz/
+[13]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-cinnamon.jpg
+[14]: https://spins.fedoraproject.org/en/cinnamon/
+[15]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-lxde.jpg
+[16]: https://spins.fedoraproject.org/en/lxde/
+[17]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-soas.jpg
+[18]: https://spins.fedoraproject.org/en/soas/
+[19]: https://fedoramagazine.org/wp-content/uploads/2022/08/screenshot-i3.jpg
+[20]: https://spins.fedoraproject.org/en/i3/
+[21]: https://spins.fedoraproject.org/
diff --git a/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md b/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md
new file mode 100644
index 0000000000..60658cd210
--- /dev/null
+++ b/sources/tech/20220829 How To Manage Docker Containers Using Portainer In Linux.md
@@ -0,0 +1,365 @@
+[#]: subject: "How To Manage Docker Containers Using Portainer In Linux"
+[#]: via: "https://ostechnix.com/portainer-an-easiest-way-to-manage-docker/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How To Manage Docker Containers Using Portainer In Linux
+======
+Poratiner - An Easiest Way To Manage Docker And Kubernetes
+
+In this tutorial, we will learn what is **Portainer**, how to install Portainer and how to **manage docker containers using Portainer** in Linux.
+
+### What Is Portainer?
+
+**Portainer** is a lightweight, cross-platform, and open source management UI for Docker, Swarm, Kubernetes, and ACI environments.
+
+Portainer allows you to manage containers, images, networks and volumes via simple web-based dashboard and/or an extensive API.
+
+Using Portainer, we can easily deploy, configure and secure containers in minutes on Docker, Kubernetes, Swarm and Nomad in any cloud, datacenter or device.
+
+It was originally the fork of Docker UI. The developer has rewritten pretty much all of the Docker UI original code. He also has revamped the UX completely and added some more functionality in the recent versions.
+
+Portainer is available in two editions: **Portainer Community Edition(CE)** and **Portainer Business Edition(BE)**.
+
+The Portainer CE is free for personal use that includes a few essential features for container management. And the Portainer BE is paid version that includes complete features and professional support.
+
+Portainer supports GNU/Linux, Microsoft Windows, and macOS.
+
+### Prerequisites
+
+For the purpose of this guide, we will be using Portainer CE, which is free.
+
+**1.** Make sure you have installed Docker and it is working. Portainer has full support for Docker version 1.10 and higher versions.
+
+To install Docker in Linux, refer the following links.
+
+* [Install Docker Engine And Docker Compose In AlmaLinux, CentOS, Rocky Linux][1]
+* [How to Install Docker Engine And Docker Compose In Ubuntu][2]
+
+**Heads Up:** You can also install **[Docker desktop][3]** and then install Portainer as an extension via the **market place**. But this is not the scope of this guide.
+
+**2.** Make sure you have **sudo** or **root** access to deploy Portainer community edition using Docker.
+
+**3.** Open or allow Ports **9443**, **9000** and **8000** in your router or firewall if you want to access the portainer web UI from a remote system.
+
+### Install Portainer With Docker In Linux
+
+Portainer CE installation is pretty easy and it will take only a few minutes.
+
+First of all, create a volume for Portainer server to store its database.
+
+```
+$ sudo docker volume create portainer_data
+```
+
+Next, run the following command to pull the latest Portainer image and start the Portainer:
+
+```
+$ docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
+```
+
+**Heads Up:** By default, Portainer Server will expose the UI over port `9443` and expose a TCP tunnel server over port 8000. The latter is optional and is only required if you plan to use the Edge compute features with Edge agents.
+
+**Sample output:**
+
+```
+portainer_data:/data portainer/portainer-ce:latest
+Unable to find image 'portainer/portainer-ce:latest' locally
+latest: Pulling from portainer/portainer-ce
+772227786281: Pull complete
+96fd13befc87: Pull complete
+4847ec395191: Pull complete
+4c2d012c4350: Pull complete
+Digest: sha256:70a61e11a899c56f95c23f734c0777b26617729fcb8f0b61905780f3144498e3
+Status: Downloaded newer image for portainer/portainer-ce:latest
+4b3a95e8c999f5651dfde13b5519d19a93b143afbcd6fd1f8035af5645bd0e5f
+```
+
+By default, Portainer generates and uses a self-signed SSL certificate to secure port 9443. If you require HTTP port 9000 open for legacy reasons, add `-p 9000:9000` to your docker run command:
+
+```
+$ sudo docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
+```
+
+Let us check whether the Portainer image has been pulled or not.
+
+```
+$ sudo docker images
+```
+
+**Sample output:**
+
+```
+REPOSITORY TAG IMAGE ID CREATED SIZE
+portainer/portainer-ce latest ab836adaa325 4 weeks ago 278MB
+```
+
+We have now installed Portainer in our local Ubuntu system. Let us start the container using command:
+
+Now, Portainer is running! Let us go ahead and access the Portainer UI.
+
+### Manage Docker Containers Using Portainer
+
+Open your web browser and point it to any one of the following URLs depending upon the port number you used when starting Portainer.
+
+* Portainer https URL (with self-signed certificate) - http://localhost:9443/ or http://IP_Address:9443/.
+* Portainer http URL - http://localhost:9000/ or http://IP_Address:9000/.
+
+You will be presented with a screen like below where you should set a strong password for the Portainer **admin** user. Enter a strong password with minimum 12 characters and click Create user button.
+
+![Create Password For Portainer Admin User][4]
+
+Choose whether you want to proceed using the local environment which Portainier is running in or connect to other environments. I don't have any other environments, so I clicked the "Get started.." button to proceed with the local environment.
+
+![Portainer Admin Dashboard][5]
+
+This is how Portainer admin dashboard looks like. The dashboard home screen displays the list of connected environments. As you see in the below screeenshot, we are connected with the "local" environment.
+
+![Portainer Home][6]
+
+Click on the local environment to see the running and stopped containers, number of downloaded docker images, number of volumes and networks.
+
+![Environment Summary][7]
+
+You don't have to memorize docker commands. Everything can be done from the Dashboard itself.
+
+Let us go ahead and create some containers.
+
+#### Creating Containers
+
+Make sure you're in the Local environment.
+
+Click on the **App Templates** button on the left side bar. You will see some ready-made templates such as Docker image registry, Nginx, Httpd, MySQl, Wordpress and a few more.
+
+![Application Templates List][8]
+
+To deploy a Container, just click on the respective template and follow the on-screen instructions.
+
+For instance, let us launch **MySQL** Container. To do so, click on the **MySQL** template.
+
+![Launch MySQL Template][9]
+
+Enter the Container name, select network type (e.g.bride mode), and database root user password. Click on **Show advanced options** and set port number. If you're not sure what to input, just leave the default values.
+
+Finally, Click **Deploy the container** button to create the MySQL container.
+
+![Create MySQL Docker Container][10]
+
+Once the container created, you will be redirected to the **Containers** page where you can see the list of created and running containers.
+
+![Container List][11]
+
+Under the Containers list section, you will see the,
+
+* Name of the running and stopped containers,
+* Status of the containers,
+* Quick actions buttons,
+* Docker image used to create the containers,
+* the date and time of container creation,
+* IP address of the container,
+* Published ports,
+* and Ownership details.
+
+To start/stop the newly created container, just select it and hit Start/stop button on the top. You can restart, pause, and remove any Containers from this section.
+
+#### Manage Containers
+
+We can do all container management operations, such as add new container and start, stop, restart, pause, kill, remove existing containers from under Containers section.
+
+![Create And Manage Containers From Portainer][12]
+
+You will see a few "Quick Actions" buttons next to each container. Clicking on a button will perform the respective action.
+
+Under the Quick Actions tab, you will see the following buttons.
+
+* Logs - Display Container logs.
+* Inspect - Inspect container image.
+* Stats - View Container statistics.
+* Console - Access Container console.
+* Attach - Attach To Container console.
+
+![Quick Actions][13]
+
+##### View Container Logs
+
+Select a Container from the Containers list and then click **Logs** button under the Quick Actions tab.
+
+![Container Logs][14]
+
+Here, you can view complete log details of the Container.
+
+##### Inspect Container
+
+Click the "Inspect" button under the Quick Actions tab to inspect the container image.
+
+![Container Inspect][15]
+
+##### View Container Stats
+
+Click on the **Stats** button to view what's happening in the newly launched Container.
+
+![Container Statistics][16]
+
+##### Access Container Console
+
+You can easily connect to the console of your Container by clicking on the **Console** button.
+
+![Access Container Console][17]
+
+Select the Shell (BASH or SH), and hit **Connect** button.
+
+![Connect To Console][18]
+
+Now you will be connected to the Container's console.
+
+![Container Console][19]
+
+#### View Container Details
+
+To view the complete overview of any container, just click on the name of the container from the Containers list.
+
+![Container Details][20]
+
+As you see in the above output, the Containers details section is further divided into the following sub-sections:
+
+* Actions - This section containers buttons to control the container, such as Start, Stop, Kill, Restart, Pause, Resume, Remove, Recreate, Duplicate/Edit.
+* Container status - In this section, you will container details such as the name, IP address, status of the container, when the container is created, container start time and a few more details. Under the Container status button, you will see the following controls: * Logs - Display Container logs. * Inspect - Inspect container image. * Stats - View Container statistics. * Console - Access Container console. * Attach - Attach To Container console.
+* Access control - View and change ownership.
+* Container health - In this section, you will see the container health status, failure count and `mysqld` service status.
+* Create image - This section allows you to create an image from this container. This allows you to backup important data or save helpful configurations. You'll be able to spin up another container based on this image afterward.
+* Container details - In this section, you can view the docker image used to create this container, port configuration details, and environment details etc.
+* Volumes - See the list of attached volumes to the container.
+* Networks - View network configuration details.
+
+Please note that you can do all aforementioned management actions (i.e. View Stats/Logs, Inspect, Access Console etc.) from the "Container Details" section too.
+
+![Container Control Buttons][21]
+
+### Docker Images
+
+In this section, you can view the list of downloaded docker images.
+
+![Docker Image List][22]
+
+In this section, you can build new image, import, export and delete Docker images. To remove any image, just select it and click **Remove**.
+
+### Networks
+
+Networks section allows you to add a new network, change the network type, assign/change IP address, remove existing networks.
+
+![Network List][23]
+
+### Volumes
+
+Here, you can view existing docker volumes, create new one, delete them if you no longer need them.
+
+![Volume List][24]
+
+### Events
+
+In this section, we can view what we have done so far, such as creating a new instance, network, volume etc.
+
+![Event List][25]
+
+### Host Overview
+
+This section displays the Docker engine version, Host OS name, type, architecture, cpu, memory, network details etc.
+
+![Host Overview][26]
+
+Under this section, you can also configure Docker features and setup registries (i.e. Docker hub, Quay, Azure, Gitlab etc.).
+
+### Users
+
+The users section allows us to add new users, add users to teams, view list of existing users and delete the users.
+
+![Users][27]
+
+You can also create a team(e.g. development) in which you can add users in this team and assign different roles to the users. The roles feature is available only for Portainer Business edition.
+
+### Environments
+
+In this section, you can add new environment, view existing environments.
+
+![Environments][28]
+
+In Portainer CE, you can add Docker, Kubernetes and ACI environments. In business edition, you can add two more environments called Nomad and KaaS.
+
+### Authentication Logs
+
+The Authentication logs section shows you to user activity details. Portainer user authentication activity logs have a maximum retention of 7 days. This is actually business edition feature. If you're using community edition, you can't use this feature.
+
+### Settings
+
+This section is dedicated for Portainer settings. In this section, you can configure Portainer settings such as,
+
+* define the snapshot level for containers,
+* use custom logo for Portainer dashboard,
+* specify the URL to your own template definitions file and HELM repository,
+* configure SSL certificate,
+* backup Portainer configuration etc.
+
+### Conclusion
+
+In this detailed guide, we discussed what is Portainer, how to install Portainer, and how to use Portainer to create and manage Docker containers in Linux.
+
+We also learned a brief overview about each section in the Portainer web dashboard. Using Portainer, you can do complete docker management either from the local system itself or a remote system.
+
+If you want a feature rich, yet simple to use centralized Docker management solution, you should give Portainer a try.
+
+For more details, check the official resources given below.
+
+**Resources:**
+
+* [Portainer website][29]
+* [Portainer on GitHub][30]
+
+Any thoughts on Portainer? Have you already tried it? Great! Let us know them in the comment section below.
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/portainer-an-easiest-way-to-manage-docker/
+
+作者:[sk][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://ostechnix.com/author/sk/
+[b]: https://github.com/lkxed
+[1]: https://ostechnix.com/install-docker-almalinux-centos-rocky-linux/
+[2]: https://ostechnix.com/install-docker-ubuntu/
+[3]: https://ostechnix.com/docker-desktop-for-linux/
+[4]: https://ostechnix.com/wp-content/uploads/2022/08/Create-Password-For-Portainer-Admin-User.png
+[5]: https://ostechnix.com/wp-content/uploads/2022/08/Portainer-Admin-Dashboard.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/08/Portainer-Home-1.png
+[7]: https://ostechnix.com/wp-content/uploads/2022/08/Environment-Summary.png
+[8]: https://ostechnix.com/wp-content/uploads/2022/08/Application-Templates-List.png
+[9]: https://ostechnix.com/wp-content/uploads/2022/08/Launch-MySQL-Template.png
+[10]: https://ostechnix.com/wp-content/uploads/2022/08/Create-MySQL-Docker-Container.png
+[11]: https://ostechnix.com/wp-content/uploads/2022/08/Container-List.png
+[12]: https://ostechnix.com/wp-content/uploads/2022/08/Create-And-Manage-Containers-From-Portainer.png
+[13]: https://ostechnix.com/wp-content/uploads/2022/08/Quick-Actions.png
+[14]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Logs.png
+[15]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Inspect.png
+[16]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Statistics.png
+[17]: https://ostechnix.com/wp-content/uploads/2022/08/Access-Container-Console.png
+[18]: https://ostechnix.com/wp-content/uploads/2022/08/Connect-To-Console.png
+[19]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Console.png
+[20]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Details.png
+[21]: https://ostechnix.com/wp-content/uploads/2022/08/Container-Control-Buttons.png
+[22]: https://ostechnix.com/wp-content/uploads/2022/08/Docker-Image-List.png
+[23]: https://ostechnix.com/wp-content/uploads/2022/08/Network-List.png
+[24]: https://ostechnix.com/wp-content/uploads/2022/08/Volume-List.png
+[25]: https://ostechnix.com/wp-content/uploads/2022/08/Event-List.png
+[26]: https://ostechnix.com/wp-content/uploads/2022/08/Host-Overview.png
+[27]: https://ostechnix.com/wp-content/uploads/2022/08/Users.png
+[28]: https://ostechnix.com/wp-content/uploads/2022/08/Environments.png
+[29]: http://www.portainer.io/
+[30]: https://github.com/portainer/portainer
diff --git a/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md b/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md
new file mode 100644
index 0000000000..e5c7041c60
--- /dev/null
+++ b/sources/tech/20220829 How to Setup EKS Cluster along with NLB on AWS.md
@@ -0,0 +1,283 @@
+[#]: subject: "How to Setup EKS Cluster along with NLB on AWS"
+[#]: via: "https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/"
+[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Setup EKS Cluster along with NLB on AWS
+======
+Are looking for an easy guide for setting up EKS cluster on AWS?
+
+The step-by-step guide on this page will show you how to setup EKS cluster along with NLB (Network Load Balancer) on AWS from the scratch.
+
+Amazon EKS is elastic Kubernetes service; it has basically two components control plane and worker nodes. Let’s deep dive into the steps
+
+### 1) Create VPC for EKS Cluster
+
+Login to your AWS console, create a VPC with two public and private subnets in two different availability zones.
+
+Also create Internet gateway, nat gateway and add routes to public and private subnet’s route table respectively.
+
+Refer following for creating VPC,
+
+* [How to Configure your own VPC(Virtual Private Cloud) in AWS][1]
+
+In my case, I have created following VPC, subnets, internet & nat gateway and route tables.
+
+![VPC-for-EKS-Cluster][2]
+
+### 2) Install and Configure AWS CLI, eksctl and kubectl
+
+Create a virtual machine either on your on-premises or on AWS. Make sure internet connectivity is there on that virtual machine. In my case, I have created a Ubuntu 22.04 virtual machine.
+
+Login to the virtual machine and install AWS cli using the following steps,
+
+```
+$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
+$ unzip awscliv2.zip
+$ sudo ./aws/install
+```
+
+Get you account’s access and secret key from AWS console.
+
+![AWS-Account-Access-Secret-Keys][3]
+
+Now, run following command to configure AWS CLI,
+
+```
+$ aws configure
+```
+
+It will prompt you to enter Access Key and Secret Key.
+
+![AWS-Cli-configure-Ubuntu-22-04][4]
+
+Once above command is executed successfully then it will create two files under .aws folder,
+
+* Config
+* Credentials
+
+Run following command to test aws cli,
+
+```
+$ aws sts get-caller-identity
+{
+ "UserId": "xxxxxxxxxxxx",
+ "Account": "xxxxxxxxxx",
+ "Arn": "arn:aws:iam::xxxxxxxxxxx:root"
+}
+$
+```
+
+We will be using eksctl command line utility to configure Amazon EKS cluster, so run following set of commands to install it.
+
+```
+$ curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
+$ sudo mv /tmp/eksctl /usr/local/bin
+$ eksctl version
+0.109.0
+$
+```
+
+Kubectl is also a command line tool which will allow us to interact with eks cluster. For it’s installation, run beneath commands one after the another
+
+```
+$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
+$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
+$ kubectl version --client
+```
+
+![kubectl-install-for-eks-ubuntu][5]
+
+Perfect, we are ready now to create EKS cluster using eksctl utility.
+
+Copy public and private subnet’s ids of your VPC from VPC console. We would be using these ids in cluster yaml file.
+
+![Subnet-Ids-VPC-Console-AWS][6]
+
+### 3) Create EKS Cluster with eksctl utility
+
+Create a cluster yaml file on your virtual machine with the following content,
+
+```
+$ vi demo-eks.yaml
+apiVersion: eksctl.io/v1alpha5
+kind: ClusterConfig
+metadata:
+ name: demo-eks
+ region: us-west-2
+vpc:
+ subnets:
+ private:
+ us-west-2a: { id: subnet-077d8aa1452f14836 }
+ us-west-2b: { id: subnet-0131b18ab955c0c85 }
+ public:
+ us-west-2a: { id: subnet-0331b5df019a333b5 }
+ us-west-2b: { id: subnet-0f92db1ada42abde3 }
+
+nodeGroups:
+ - name: ng-workers
+ labels: { role: workers }
+ instanceType: t2.micro
+ desiredCapacity: 2
+ privateNetworking: true
+ iam:
+ withAddonPolicies:
+ imageBuilder: true
+ ssh:
+ publicKeyPath: /home/linuxtechi/.ssh/id_rsa.pub
+```
+
+![eks-cluster-yaml-file][7]
+
+Here we are using public subnets for control plane and private subnets for worker nodes. It will also automatically create IAM roles and security group for control plane and worker nodes.
+
+Apart from this we are also using a node group named ‘ng-workers’ for worker nodes with desired capacity two and instance type as ‘t2.micro’. Moreover, we have mentioned ‘linuxtechi’ user’s public key so that we can ssh worker nodes.
+
+Note: Please change these parameters as per your setup.
+
+Run following eksctl command to initiate EKS cluster setup,
+
+```
+$ eksctl create cluster -f demo-eks.yaml
+```
+
+![eksctl-create-cluster-aws][8]
+
+Once the cluster is setup successfully, we will get the following output,
+
+![EKS-Cluster-Ready-Message-AWS][9]
+
+Great, output above confirms that EKS cluster is ready. Run following kubectl command to view status of worker nodes,
+
+```
+$ kubectl get nodes
+```
+
+![EKS-Cluster-Nodes-Kubectl-Command][10]
+
+Head back to AWS console, verify the EKS cluster status
+
+![EKS-Cluster-Status-AWS-Console][11]
+
+Now, let’s deploy ingress controller along with NLB so that application from this cluster is accessible from outside.
+
+### 4) Deploy Ingress Controller and NLB
+
+
+We will be deploying nginx based ingress controller, download the following yaml file using wget command
+
+```
+$ wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/aws/deploy.yaml
+```
+
+Change the parameter ‘externalTrafficPolicy: Local’ to ‘externalTrafficPolicy: Cluster’
+
+Note: This yaml file has the required entries of nginx ingress controller and AWS NLB.
+
+```
+$ sed -i 's/externalTrafficPolicy: Local/externalTrafficPolicy: Cluster/g' deploy.yaml
+```
+
+Execute following kubectl command to deploy ingress controller and NLB,
+
+```
+$ kubectl create -f deploy.yaml
+```
+
+Output,
+
+![deploy-yaml-file-ingress-nlb-aws][12]
+
+To verify the status of ingress controller, run following commands,
+
+```
+$ kubectl get ns
+$ kubectl get all -n ingress-nginx
+```
+
+Output,
+
+![Ingress-Controller-Status-AWS-EKS][13]
+
+Head back to AWS console and check NLB status which is created via deploy.yaml file.
+
+![NLB-for-EKS-AWS-Console][14]
+
+Perfect, above confirms that NLB has been setup properly for EKS cluster.
+
+### 5) Test EKS Cluster Installation
+
+To test eks cluster installation, let’s deploy a nginx based deployment, run
+
+```
+$ kubectl create deployment nginx-web --image=nginx --replicas=2
+```
+
+Create the service for deployment, run
+
+```
+$ kubectl expose deployment nginx-web --name=nginx-web --type=LoadBalancer --port=80 --protocol=TCP
+```
+
+View Service status,
+
+```
+$ kubectl get svc nginx-web
+```
+
+Output of above commands would look like below:
+
+![Nginx-Based-Deployment-EKS-AWS][15]
+
+To access the application, copy the URL shown in service command,
+
+http://ad575eea69f5044f0ac8ac8d5f19b7bd-1003212167.us-west-2.elb.amazonaws.com
+
+![Nginx-Default-Page-deployment-eks-aws][16]
+
+Great, above nginx page confirms that we are able to access our nginx based deployment outside of our EKS cluster.
+
+Once you are done with all the testing and wants to remove the NLB and EKS cluster, run following commands,
+
+```
+$ kubectl delete -f deploy.yaml
+$ eksctl delete cluster -f demo-eks.yaml
+```
+
+That’s all from this guide, I hope you are able to deploy EKS cluster on your AWS account. Kindly do post your queries and feedback in below comments section.
+
+Also Read: How to Create VPC Peering Across Two AWS Regions
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/how-to-setup-eks-cluster-nlb-on-aws/
+
+作者:[Pradeep Kumar][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.linuxtechi.com/author/pradeep/
+[b]: https://github.com/lkxed
+[1]: https://www.linuxtechi.com/how-to-configure-vpc-in-aws/
+[2]: https://www.linuxtechi.com/wp-content/uploads/2022/08/VPC-for-EKS-Cluster.gif
+[3]: https://www.linuxtechi.com/wp-content/uploads/2022/08/AWS-Account-Access-Secret-Keys.png
+[4]: https://www.linuxtechi.com/wp-content/uploads/2022/08/AWS-Cli-configure-Ubuntu-22-04.png
+[5]: https://www.linuxtechi.com/wp-content/uploads/2022/08/kubectl-install-for-eks-ubuntu.png
+[6]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Subnet-Ids-VPC-Console-AWS.png
+[7]: https://www.linuxtechi.com/wp-content/uploads/2022/08/eks-cluster-yaml-file.png
+[8]: https://www.linuxtechi.com/wp-content/uploads/2022/08/eksctl-create-cluster-aws.png
+[9]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Ready-Message-AWS.png
+[10]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Nodes-Kubectl-Command.png
+[11]: https://www.linuxtechi.com/wp-content/uploads/2022/08/EKS-Cluster-Status-AWS-Console.gif
+[12]: https://www.linuxtechi.com/wp-content/uploads/2022/08/deploy-yaml-file-ingress-nlb-aws.png
+[13]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Ingress-Controller-Status-AWS-EKS.png
+[14]: https://www.linuxtechi.com/wp-content/uploads/2022/08/NLB-for-EKS-AWS-Console.gif
+[15]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Nginx-Based-Deployment-EKS-AWS.png
+[16]: https://www.linuxtechi.com/wp-content/uploads/2022/08/Nginx-Default-Page-deployment-eks-aws.png
diff --git a/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md b/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md
new file mode 100644
index 0000000000..e0c6ddfb57
--- /dev/null
+++ b/sources/tech/20220829 Scrivano- Fascinating Whiteboard App For Handwritten Notes.md
@@ -0,0 +1,110 @@
+[#]: subject: "Scrivano: Fascinating Whiteboard App For Handwritten Notes"
+[#]: via: "https://www.debugpoint.com/scrivano/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Scrivano: Fascinating Whiteboard App For Handwritten Notes
+======
+Let’s find out what are the cool features of Scrivano – a whiteboard app for Linux systems.
+
+### Scrivano
+
+Scrivano is a new whiteboard application which recently getting some attention for its unique features and “ease of use”. It has some seriously cool feature which I will talk about shortly.
+
+When I write about the [top Whiteboard applications][1] for taking hand written notes using touch devices, I was not aware of this application since it was probably under development. In that article, I mentioned about the major apps which you all know about.
+
+For example, Xournal++ is probably the most used and “go to” app for taking quick notes using stylus in supported devices. Another GTK & Rust based app which recently became famous is Rnote. It also has some excellent features.
+
+Now, you can try out another cool app – Scrivano. It is a Qt based application and comes with a simple user interface for utmost productivity.
+
+Here’s how it looks.
+
+![Scrivano – How it looks][2]
+
+At the top bar, you have a simple toolbox with standard options such as Pencil with thickness, colours, fill area tools, eraser, undo, redo and so on. These are pretty common among all the apps in this category.
+
+But what are the features that make it stand apart? Let’s talk about them.
+
+### Features
+
+First feature which is unique is the “Snap to Grid”. So, when you draw on its grid canvas, you can set your drawings to snap to the grids so that it looks uniform. This is one of the best feature which makes your notes look professional. Don’t worry about your bad handwriting or drawings.
+
+Here’s a quick look on the “snap to grid” feature with comparison.
+
+![Snap to Grip feature][3]
+
+Another feature which stand out is the Sticker creation of your drawings. Say, you are taking some math notes and you want to reuse one of the curve multiple times. You can select the drawing and make it a sticker – which you can put it back to your drawing!
+
+![Stickers in Scrivano][4]
+
+The editing options are so good that the only limitation is your imagination in terms of note taking.
+
+For example, you can select and move around any part of your drawing as a separate object. Then you can clone it, copy it or do anything you want.
+
+Similarly, the fill stroke feature is so effortless. When you are drawing with pen, the app can close the start and end point. Then it fills with colours. All of these happens without choosing additional option from toolbar.
+
+Scrivano have a nice option called Laser which is effective if you are teaching someone via screen sharing or recording a tutorial video. Its a laser-like line which you can draw and it disappears with 3 to 5 seconds.
+
+![][5]
+
+Other noteworthy features include:
+
+* You can import and annotate PDF which it super useful.
+* Different and customizable background with options – Plain, Lined, Grid or Dotted
+* Options to change grid spacing, colour of canvas and patterns
+* You can adjust canvas size for your printing (such as A4 etc)
+* Export to PDF and other image formats
+* Scrivano comes with Auto save option so that you don’t lose your data (saves in home directory by default)
+* Insert external images into your handwritten notes
+* Dark mode in UI
+
+You should be glad knowing that, the developer is still working on additional features as we speak on top the above items. I’m sure it will be a contender to the legacy players such as Xournal++ and others.
+
+Let’s see how you can install.
+
+### Download and Install
+
+The best way to install Scrivano is using Flatpak. All you need to do is set up your system for [Flatpak with Flathub][6] and then run the following command to install.
+
+```
+flatpak install flathub com.github.scrivanolabs.scrivano
+```
+
+Then you can launch it via application menu.
+
+Windows folks, you can grab the installer from the [official home page.][7]
+
+It is indeed a nice utility and should get all the love. Do let me know in the comment box what you like about this app.
+
+Cheers.
+
+[Next: Crystal Linux: Emerging Arch Linux Spin for GNOME Fans][8]
+
+![Join our Telegram channel and stay informed on the move.][9]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/scrivano/
+
+作者:[Arindam][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.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/top-whiteboard-applications-linux/
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/08/Scrivano-How-it-looks.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/Snap-to-Grip-feature.gif
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Stickers-in-Scrivano.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Scrivano-Fill-and-Laser-Method.mp4
+[6]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[7]: https://scrivanolabs.github.io/
+[8]: https://www.debugpoint.com/crystal-linux-first-look/
+[9]: https://t.me/debugpoint
diff --git a/sources/tech/20220830 7 Best Open Source Library Management Software.md b/sources/tech/20220830 7 Best Open Source Library Management Software.md
new file mode 100644
index 0000000000..2de07e45f4
--- /dev/null
+++ b/sources/tech/20220830 7 Best Open Source Library Management Software.md
@@ -0,0 +1,206 @@
+[#]: subject: "7 Best Open Source Library Management Software"
+[#]: via: "https://itsfoss.com/open-source-library-management-software/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+7 Best Open Source Library Management Software
+======
+
+Sometimes managing a digital library gives you peace of mind as you do not need to make many efforts to maintain it. Usually, easy to organize, and can be backed up as well.
+
+When it comes to managing the library, the library management software can make a world of difference. It can break or make your digital library management experience.
+
+And, with open-source library management software, an organization/library can save investment costs, have better privacy, and have more flexibility without any vendor lock-ins.
+
+So, I came up with the compilation of open-source library management software to provide you with some good options to help manage your digital library. You can use some tools for personal use-case, but many of them are geared toward public libraries.
+
+### 1. Koha
+
+![koha][1]
+
+**Key** **Features of Koha:**
+
+* An enterprise-grade library management software.
+* Supports multiple languages.
+* Powerful text search and enhanced catalog display.
+* Built using standard library protocols to ensure interpretability between Koha and other library systems.
+* Web-based UI.
+* No vendor lock-in.
+
+[Koha][2] is a well-known name when it comes to library management software, and it is considered the best of what you can get for your library. You may ask why. It handles everything like a charm, from backups and maintenance to system upgrades!
+
+Being a truly enterprise-grade system, you’d get modules to manage circulation, cataloging, serials management, authorities, flexible reporting, label printing, and a lot more.
+
+So, you can utilize Koha for small size to multi-branch libraries.
+
+[Koha][3]
+
+### 2. Evergreen
+
+![evergreen][4]
+
+**Key features of Evergreen**
+
+* Flexibility and scalability.
+* Has self-registration and self-checkout options.
+* Allows making desired changes in the catalog.
+* Multiple payment options.
+* Powerful search functionality.
+* Allows you to retain a history of borrowed books.
+
+[Evergreen][5] is a library integrated system that was initially developed for Public Information Network for Electronic Services (PINES) but it also powers more than 1800 libraries outside PINES.
+
+Being scalable to its core, you can easily manage an entire catalog of multiple branches. It also offers good search functionality along with some interesting features.
+
+[Evergreen][6]
+
+### 3. BiblioteQ
+
+![biblioteq][7]
+
+**Key features of BiblioteQ**
+
+* Supports ARM & Power PC.
+* User-friendly interface.
+* Apart from books, it also supports DVDs, Music CDs, photos, and even video games.
+* Pushes notifications for unavailable items.
+* Supports drag and drop for cover images.
+
+“It’s quite simple and straightforward” This was my initial impression while testing BiblioteQ for this list. But, don’t get fooled by its user interface.
+
+[BiblioteQ][8] is a professional archiving, cataloging, and library management software that utilizes Qt for an eye-pleasant user interface. Furthermore, it uses PostgreSQL and SQLite for the databases.
+
+While speaking of connectivity, it uses Open Library, SRU, and Z39.50 protocols to have a seamless experience while retrieving books and other archive options.
+
+[BiblioteQ][9]
+
+### 4. OPALS
+
+![opals][10]
+
+**Key Features of OPALS:**
+
+* Web-based and mobile friendly.
+* Minimal cost.
+* Professional development, management, and support.
+* Market leader for school libraries and academic libraries.
+* Online public access catalog.
+* Subscription Database management.
+* Digital archive management.
+* Support for Circulation and inventory management.
+* Hosted servers automated updates, meaning no additional hardware cost nor maintenance by your side.
+
+According to the 2022’s [international survey of library automation][11], OPALS (Open-source Automated Library System) has scored highest in every single category among school libraries and small academic library programs.
+
+[OPALS][12] is used in more than 2000 libraries daily as it provides a full-fledged automated library management experience.
+
+It is a paid tool that provides you technical support for installation, management, hosting, and other purposes. If you are looking for something for your academy/institution this can be a good fit.
+
+OPALS also provides a [3-month free demo site for your library][13], so you can have a better idea of what to expect from the asked price.
+
+[OPALS][14]
+
+### 5. InvenioILS
+
+![InvenioILS][15]
+
+**Key Features of InvenioILS**:
+
+* Modern UI.
+* Acquisition and simple interlibrary loan modules to have a better track of items.
+* Uses REST API meaning, better integrations with other systems.
+* Circulations can be easily managed through a few clicks.
+* Powerful cataloging system based on JSON schema.
+* Easy-to-use back office tools, meaning listing, searching, or even getting details of specific items will be easy.
+
+[Invenio’s ILS][16] (Integrated Library System) uses the Invenio framework, which is made up of widely used open-source products including Python and React frameworks.
+
+So if you have the technical expertise, there will be no boundaries on customization and enhancements that you can do with the default base.
+
+[InvenioILS][17]
+
+### 6. SLiMS
+
+![slims][18]
+
+**Key features of SLiMS:**
+
+* Utility to generate Barcodes.
+* Responsive UI.
+* Allows creating Union Catalog creation using Union Catalog Server.
+* Membership management.
+* Database backup utility.
+* Master files management to manage referential data such as Publishers, Authors, and Locations.
+* For Bibliography, you get faster input with peer-to-peer copy cataloging.
+* Manage your patrons with instant library card allocation.
+
+[SLiMS][19] (Senayan Library Management System) is nothing but an Apache web server bundled with MySQL and PHP, and the outcome is an extremely powerful community-driven library management toolkit.
+
+From serial publication control to system modules providing extreme flexibility, SLiMS has a lot to offer.
+
+[SLiMS][20]
+
+### 7. FOLIO
+
+![folio][21]
+
+**Key features of FOLIO:**
+
+* Wide range of inventory management features including cataloging and bibliographic management.
+* Manage vendors, budgets, orders, and invoicing while receiving materials.
+* Efficient user management.
+* Different patron types, loan types, fines, and fee structures are also supported.
+
+FOLIO (Future of Libraries is Open) can be considered the best option in terms of user experience, as the community thrives to bring the best out of UI/UX elements.
+
+As with any other library management software, you’d get all the basic features such as circulation, acquisitions, cataloging, and e-resources management.
+
+You also get a nice feature to manage multiple users, patron types, fee structures, and more.
+
+[FOLIO][22]
+
+### Digital Library Management Sounds Fun!
+
+In this list, I’ve only considered the ones that are actively maintained. There might be more that you can explore (but with no recent development activity).
+
+*Did I miss any of your favorites? You are welcome to share your personal experience with library management software.*
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/open-source-library-management-software/
+
+作者:[Sagar Sharma][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://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/wp-content/uploads/2022/08/koha-1.png
+[2]: https://koha-community.org/
+[3]: https://koha-community.org/download-koha/
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/evergreen.png
+[5]: https://evergreen-ils.org/
+[6]: https://evergreen-ils.org/egdownloads/
+[7]: https://itsfoss.com/wp-content/uploads/2022/08/biblioteq.png
+[8]: https://biblioteq.sourceforge.io/
+[9]: https://github.com/textbrowser/biblioteq/releases
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/opals.png
+[11]: https://librarytechnology.org/perceptions/2021/#top-performers
+[12]: https://opalsinfo.net/
+[13]: https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&su=Request+for+OPALS+information&to=info@opals-na.org&body=Institution+Name:%0D%0A%0ACity:%0D%0A%0AState+or+Prov.:%0D%0A%0AContact:%0D%0A%0APosition:%0D%0A%0AEmail:%0D%0A%0ACollection+size:%0D%0A%0ANumber+of+members:%25+
+[14]: https://en.bibliofiche.com/showcase.jsp?n=OPALS%99&product_number=F05800
+[15]: https://itsfoss.com/wp-content/uploads/2022/08/ils.png
+[16]: https://inveniosoftware.org/products/ils/
+[17]: https://inveniosoftware.org/products/ils/
+[18]: https://itsfoss.com/wp-content/uploads/2022/08/slims.png
+[19]: https://slims.web.id/web/
+[20]: https://github.com/slims/slims9_bulian/releases
+[21]: https://itsfoss.com/wp-content/uploads/2022/08/folio.png
+[22]: https://github.com/folio-org
diff --git a/sources/tech/20220830 Clean up music tags with a Groovy script.md b/sources/tech/20220830 Clean up music tags with a Groovy script.md
new file mode 100644
index 0000000000..d2c6f2f954
--- /dev/null
+++ b/sources/tech/20220830 Clean up music tags with a Groovy script.md
@@ -0,0 +1,388 @@
+[#]: subject: "Clean up music tags with a Groovy script"
+[#]: via: "https://opensource.com/article/22/8/groovy-script-music-tags"
+[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Clean up music tags with a Groovy script
+======
+I demonstrate a Groovy script to clean up the motley assembly of tag fields.
+
+Lately, I've been looking at how Groovy streamlines Java. In this series, I'm developing several scripts to help in cleaning up my music collection. In my last article, I used the framework developed previously to create a list of unique file names and counts of occurrences of those file names in the music collection directory. I then used the Linux `find` command to get rid of files I didn't want.
+
+In this article, I demonstrate a Groovy script to clean up the motley assembly of tag fields.
+
+WARNING: This script alters music tags, so it is vital that you make a backup of the music collection you test your code on.
+
+### Back to the problem
+
+If you haven't read the previous articles is this series, do that now before continuing so you understand the intended structure of the music directory, the framework I've created, and how to detect and use FLAC, MP3, and OGG files.
+
+* [How I analyze my music directory with Groovy][2]
+* [My favorite open source library for analyzing music files][3]
+* [How I use Groovy to analyze album art in my music directory][4]
+* [Clean up unwanted files in your music directory using Groovy][5]
+
+### Vorbis and ID3 tags
+
+I don't have many MP3 music files. Generally, I prefer to use FLAC. But sometimes only MP3 versions are available, or a free MP3 download comes with a vinyl purchase. So in this script, I have to be able to handle both. One thing I've learned as I have become familiar with [JAudiotagger][6] is what ID3 tags (used by MP3) look like, and I discovered that some of those "unwanted" field tag IDs I uncovered in part 2 of this series are actually very useful.
+
+Now it's time to use this framework to get a list of all the tag field IDs in a music collection, with their counts, to begin deciding what belongs and what doesn't:
+
+```
+1 @Grab('net.jthink:jaudiotagger:3.0.1')
+2 import org.jaudiotagger.audio.*
+3 import org.jaudiotagger.tag.*
+4 def logger = java.util.logging.Logger.getLogger('org.jaudiotagger');
+5 logger.setLevel(java.util.logging.Level.OFF);
+6 // Define the music library directory
+7 def musicLibraryDirName = '/var/lib/mpd/music'
+8 // Define the tag field id accumulation map
+9 def tagFieldIdCounts = [:]
+10 // Print the CSV file header
+11 println "tagFieldId|count"
+12 // Iterate over each directory in the music libary directory
+13 // These are assumed to be artist directories
+14 new File(musicLibraryDirName).eachDir { artistDir ->
+15 // Iterate over each directory in the artist directory
+16 // These are assumed to be album directories
+17 artistDir.eachDir { albumDir ->
+18 // Iterate over each file in the album directory
+19 // These are assumed to be content or related
+20 // (cover.jpg, PDFs with liner notes etc)
+21 albumDir.eachFile { contentFile ->
+22 // Analyze the file and print the analysis
+23 if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) {
+24 def af = AudioFileIO.read(contentFile)
+25 af.tag.fields.each { tagField ->
+26 tagFieldIdCounts[tagField.id] = tagFieldIdCounts.containsKey(tagField.id) ? tagFieldIdCounts[tagField.id] + 1 : 1
+27 }
+28 }
+29 }
+30 }
+31 }
+32 tagFieldIdCounts.each { key, value ->
+33 println "$key|$value"
+34 }
+```
+
+Lines 1-7 originally appeared in part 2 of this series.
+
+Lines 8-9 define a map for accumulating tag field IDs and counts of occurrences.
+
+Lines 10-21 also appeared in previous articles. They get down to the level of the individual content files.
+
+Lines 23-28 ensures that the files being used are FLAC, MP3, or OGG. Line 23 uses a Groovy match operator `==~` with a slashy regular expression to filter out wanted files.
+
+Line 24 uses `org.jaudiotagger.audio.AudioFileIO.read()` to get the tag body from the content file.
+
+Lines 25-27 use `org.jaudiotagger.tag.Tag.getFields()` to get all the `TagField` instances in the tag body and the Groovy `each()` method to iterate over that list of instances.
+
+Line 27 accumulates the count of each `tagField.id` into the `tagFieldIdCounts` map.
+
+Finally, lines 32-24 iterate over the `tagFieldIdCounts` map printing out the keys (the tag field IDs found) and the values (the count of occurrences of each tag field ID).
+
+I run this script as follows:
+
+```
+$ groovy TagAnalyzer5b.groovy > tagAnalysis5b.csv
+```
+
+Then I load the results into a [LibreOffice][7] or [OnlyOffice][8] spreadsheet. In my case, this script takes quite a long time to run (several minutes) and the loaded data, sorted in descending order of the second column (count) looks like this:
+
+![Image of a screenshot of the first few row of tagAnalysis in LibreOffic Calc][9]
+
+Image by: (Chris Hermansen, CC BY-SA 4.0)
+
+On row 2, you can see that there are 8,696 occurrences of the TITLE field tag ID, which is the ID that FLAC files (and Vorbis, generally) uses for a song title. Down on row 28, you also see 348 occurrences of the TIT2 field tag ID, which is the ID3 tag field that contains the "actual" name of the song. At this point, it's worth going away to look at [the JavaDoc][10] for `org.jaudiotagger.tag.ide.framebody.FrameBodyTIT2` to learn more about this tag and the way in which JAudiotagger recognizes it. There, you also see the mechanisms to handle other ID3 tag fields.
+
+In that list of field tag IDs, there are lots that I'm not interested in and that could affect the ability of various music players to display my music collection in what I consider to be a reasonable order.
+
+### The org.jaudiotagger.tag.Tag interface
+
+I'm going to take a moment to explore the way JAudiotagger provides a generic mechanism to access tag fields. This mechanism is described in [the JavaDocs][11] for `org.jaudiotagger.tag.Tag`. There are two methods that would help clean up the tag field situation:
+
+```
+void setField(FieldKey genericKey,String value)
+```
+
+This is used to set the value for a particular tag field.
+
+This line is used to delete all instances of a particular tag field (turns out some tag fields in some tagging schemes permit multiple occurrences).
+
+```
+void deleteField(FieldKey fieldKey)
+```
+
+However, this particular `deleteField()` method requires us to supply a `FieldKey` value, and as I have discovered, not all field key IDs in my music collection correspond to a known `FieldKey` value.
+
+Looking around the JavaDocs, I see there's a `FlacTag` which "uses Vorbis Comment for most of its metadata," and declares its tag field to be of type `VorbisCommentTag`.
+
+`VorbisCommentTag` itself extends `org.jaudiotagger.audio.generic.AbstractTag`, which offers:
+
+```
+protected void deleteField(String key)
+```
+
+As it turns out, this is accessible from the tag instance returned by `AudioFileIO.read(f).getTag()`, at least for FLAC and MP3 tag bodies.
+
+In theory, it should be possible to do this:
+
+1. Get the tag body using
+```
+def af = AudioFileIO.read(contentFile)
+def tagBody = af.tag
+```
+2. Get the values of the (known) tag fields I want using:
+```
+def album = tagBody.getFirst(FieldKey.ALBUM)
+def artist = tagBody.getFirst(FieldKey.ARTIST)
+// etc
+```
+3. Delete all tag fields (both wanted and unwanted) using:
+```
+def originalTagFieldIdList = tagBody.fields.collect { tagField ->
+ tagField.id
+}
+originalTagFieldIdList.each { tagFieldId ->
+ tagBody.deleteField(tagFieldId)
+}
+```
+4. Put only the desired tag fields back:
+```
+tagBody.setField(FieldKey.ALBUM, album)
+tagBody.setField(FieldKey.ARTIST, artist)
+// etc
+```
+
+Of course there are few wrinkles here.
+
+First, notice the use of the `originalTagFieldIdList`. I can't use `each()` to iterate over the iterator returned by `tagBody.getFields()` at the same time I modify those fields; so I get the tag field IDs into a list using `collect()`, then iterate over that list of tag field IDs to do the deletions.
+
+Second, not all files are going to have all the tag fields I want. For example, some files might not have `ALBUM_SORT_ORDER` defined, and so on. I might not wish to write those tag fields in with empty values. Additionally, I can probably safely default some fields. For example, if `ALBUM_ARTIST` isn't defined, I can set it to ARTIST.
+
+Third, and for me most obscure, is that Vorbis Comment tags always include a VENDOR field tag ID; if I try to delete it, I end up simply unsetting the value. Huh.
+
+### Trying it all out
+
+Considering these lessons, I decided to create a test music directory that contains just a few artists and their albums (because I don't want to wipe out my music collection.)
+
+WARNING: Because this script will alter music tags it is very important to have a backup of the music collection so that when I discover I have deleted an essential tag, I can recover the backup, modify the script and rerun it.
+
+Here's the script:
+
+```
+1 @Grab('net.jthink:jaudiotagger:3.0.1')
+2 import org.jaudiotagger.audio.*
+3 import org.jaudiotagger.tag.*
+4 def logger = java.util.logging.Logger.getLogger('org.jaudiotagger');5 logger.setLevel(java.util.logging.Level.OFF);
+6 // Define the music library directory
+7 def musicLibraryDirName = '/work/Test/Music'
+8 // Print the CSV file header
+9 println "artistDir|albumDir|contentFile|tagField.id|tagField.toString()"
+10 // Iterate over each directory in the music libary directory
+11 // These are assumed to be artist directories
+12 new File(musicLibraryDirName).eachDir { artistDir ->
+13 // Iterate over each directory in the artist directory
+14 // These are assumed o be album directories
+15 artistDir.eachDir { albumDir ->
+16 // Iterate over each file in the album directory
+17 // These are assumed to be content or related18 // (cover.jpg, PDFs with liner notes etc)
+19 albumDir.eachFile { contentFile ->
+20 // Analyze the file and print the analysis
+21 if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) {
+22 def af = AudioFileIO.read(contentFile)
+23 def tagBody = af.tag
+24 def album = tagBody.getFirst(FieldKey.ALBUM)
+25 def albumArtist = tagBody.getFirst(FieldKey.ALBUM_ARTIST)
+26 def albumArtistSort = tagBody.getFirst(FieldKey.ALBUM_ARTIST_SORT)
+27 def artist = tagBody.getFirst(FieldKey.ARTIST)
+28 def artistSort = tagBody.getFirst(FieldKey.ARTIST_SORT)
+29 def composer = tagBody.getFirst(FieldKey.COMPOSER)
+30 def composerSort = tagBody.getFirst(FieldKey.COMPOSER_SORT)
+31 def genre = tagBody.getFirst(FieldKey.GENRE)
+32 def title = tagBody.getFirst(FieldKey.TITLE)
+33 def titleSort = tagBody.getFirst(FieldKey.TITLE_SORT)
+34 def track = tagBody.getFirst(FieldKey.TRACK)
+35 def trackTotal = tagBody.getFirst(FieldKey.TRACK_TOTAL)
+36 def year = tagBody.getFirst(FieldKey.YEAR)
+37 if (!albumArtist) albumArtist = artist
+38 if (!albumArtistSort) albumArtistSort = albumArtist
+39 if (!artistSort) artistSort = artist
+40 if (!composerSort) composerSort = composer
+41 if (!titleSort) titleSort = title
+42 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM|${album}"
+43 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM_ARTIST|${albumArtist}"
+44 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ALBUM_ARTIST_SORT|${albumArtistSort}"
+45 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ARTIST|${artist}"
+46 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.ARTIST_SORT|${artistSort}"
+47 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.COMPOSER|${composer}"
+48 println "${artistDir.name}|${albumDir.name}|${contentFile.name}
+|FieldKey.COMPOSER_SORT|${composerSort}"
+49 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.GENRE|${genre}"
+50 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TITLE|${title}"
+51 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TITLE_SORT|${titleSort}"
+52 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TRACK|${track}"
+53 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.TRACK_TOTAL|${trackTotal}"
+54 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|FieldKey.YEAR|${year}"
+55 def originalTagIdList = tagBody.fields.collect {
+56 tagField -> tagField.id
+57 }
+58 originalTagIdList.each { tagFieldId ->
+59 println "${artistDir.name}|${albumDir.name}|${contentFile.name}|${tagFieldId}|XXX"
+60 if (tagFieldId != 'VENDOR')
+61 tagBody.deleteField(tagFieldId)
+62 }
+63 if (album) tagBody.setField(FieldKey.ALBUM, album)
+64 if (albumArtist) tagBody.setField(FieldKey.ALBUM_ARTIST, albumArtist)
+65 if (albumArtistSort) tagBody.setField(FieldKey.ALBUM_ARTIST_SORT, albumArtistSort)
+66 if (artist) tagBody.setField(FieldKey.ARTIST, artist)
+67 if (artistSort) tagBody.setField(FieldKey.ARTIST_SORT, artistSort)
+68 if (composer) tagBody.setField(FieldKey.COMPOSER, composer)
+69 if (composerSort) tagBody.setField(FieldKey.COMPOSER_SORT, composerSort)
+70 if (genre) tagBody.setField(FieldKey.GENRE, genre)
+71 if (title) tagBody.setField(FieldKey.TITLE, title)
+72 if (titleSort) tagBody.setField(FieldKey.TITLE_SORT, titleSort)
+73 if (track) tagBody.setField(FieldKey.TRACK, track)
+74 if (trackTotal) tagBody.setField(FieldKey.TRACK_TOTAL, trackTotal)
+75 if (year) tagBody.setField(FieldKey.YEAR, year)
+76 af.commit()77 }
+78 }
+79 }
+80 }
+```
+
+Lines 1-21 are already familiar. Note that my music directory defined in line 7 refers to a test directory though!
+
+Lines 22-23 get the tag body.
+
+Lines 24-36 get the fields of interest to me (but maybe not the fields of interest to you, so feel free to adjust for your own requirements!)
+
+Lines 37-41 adjust some values for missing ALBUM_ARTIST and sort order.
+
+Lines 42-54 print out each tag field key and adjusted value for posterity.
+
+Lines 55-57 get the list of all tag field IDs.
+
+Lines 58-62 prints out each tag field id *and deletes it*, with the exception of the VENDOR tag field ID.
+
+Lines 63-75 set the desired tag field values using the known tag field keys.
+
+Finally, line 76 *commits the changes to the file*.
+
+The script produces output that can be imported into a spreadsheet.
+
+I'm just going to mention one more time that this script alters music tags! It is very important to have a backup of the music collection so that when you discover you've deleted an essential tag, or somehow otherwise trashed your music files, you can recover the backup, modify the script, and rerun it.
+
+### Check the results with this Groovy script
+
+I have a handy little Groovy script to check the results:
+
+```
+1 @Grab('net.jthink:jaudiotagger:3.0.1')
+2 import org.jaudiotagger.audio.*
+3 import org.jaudiotagger.tag.*
+
+4 def logger = java.util.logging.Logger.getLogger('org.jaudiotagger');
+5 logger.setLevel(java.util.logging.Level.OFF);
+
+6 // Define the music libary directory
+
+7 def musicLibraryDirName = '/work/Test/Music'
+
+8 // Print the CSV file header
+
+9 println "artistDir|albumDir|tagField.id|tagField.toString()"
+
+10 // Iterate over each directory in the music libary directory
+11 // These are assumed to be artist directories
+
+12 new File(musicLibraryDirName).eachDir { artistDir ->
+
+13 // Iterate over each directory in the artist directory
+14 // These are assumed to be album directories
+
+15 artistDir.eachDir { albumDir ->
+
+16 // Iterate over each file in the album directory
+17 // These are assumed to be content or related
+18 // (cover.jpg, PDFs with liner notes etc)
+
+19 albumDir.eachFile { contentFile ->
+
+20 // Analyze the file and print the analysis
+
+21 if (contentFile.name ==~ /.*\.(flac|mp3|ogg)/) {
+22 def af = AudioFileIO.read(contentFile)
+23 af.tag.fields.each { tagField ->
+24 println "${artistDir.name}|${albumDir.name}|${tagField.id}|${tagField.toString()}"
+25 }
+26 }
+
+27 }
+28 }
+29 }
+```
+
+This should look pretty familiar by now!
+
+Running it produces results like this before running the fixer script in the previous section:
+
+```
+St Germain|Tourist|VENDOR|reference libFLAC 1.1.4 20070213
+St Germain|Tourist|TITLE|Land Of...
+St Germain|Tourist|ARTIST|St Germain
+St Germain|Tourist|ALBUM|Tourist
+St Germain|Tourist|TRACKNUMBER|04
+St Germain|Tourist|TRACKTOTAL|09
+St Germain|Tourist|GENRE|Electronica
+St Germain|Tourist|DISCID|730e0809
+St Germain|Tourist|MUSICBRAINZ_DISCID|jdWlcpnr5MSZE9H0eibpRfeZtt0-
+St Germain|Tourist|MUSICBRAINZ_SORTNAME|St Germain
+```
+
+Once the fixer script is run, it produces results like this:
+
+```
+St Germain|Tourist|VENDOR|reference libFLAC 1.1.4 20070213
+St Germain|Tourist|ALBUM|Tourist
+St Germain|Tourist|ALBUMARTIST|St Germain
+St Germain|Tourist|ALBUMARTISTSORT|St Germain
+St Germain|Tourist|ARTIST|St Germain
+St Germain|Tourist|ARTISTSORT|St Germain
+St Germain|Tourist|GENRE|Electronica
+St Germain|Tourist|TITLE|Land Of...
+St Germain|Tourist|TITLESORT|Land Of...
+St Germain|Tourist|TRACKNUMBER|04
+St Germain|Tourist|TRACKTOTAL|09
+```
+
+That's it! Now I just have to work up the nerve to run my fixer script on my full music library…
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/groovy-script-music-tags
+
+作者:[Chris Hermansen][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://opensource.com/users/clhermansen
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/programming-code-keyboard-laptop-music-headphones.png
+[2]: https://opensource.com/article/22/8/groovy-script-java-music
+[3]: https://opensource.com/article/22/8/analyze-music-files-jaudiotagger
+[4]: https://opensource.com/article/22/8/groovy-scripting-analyzing-music-directory-part-3
+[5]: https://opensource.com/article/22/8/remove-files-music-directory-groovy
+[6]: http://jthink.net/jaudiotagger/index.jsp
+[7]: https://opensource.com/article/21/9/libreoffice-tips
+[8]: https://opensource.com/article/20/12/onlyoffice-docs
+[9]: https://opensource.com/sites/default/files/2022-08/creenshot%20of%20first%20few%20rows%20of%20tagAnalysis5b.csv%20in%20LibreOffice%20Calc.png
+[10]: http://www.jthink.net/jaudiotagger/javadoc/index.html
+[11]: http://www.jthink.net/jaudiotagger/javadoc/index.html
diff --git a/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md b/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md
new file mode 100644
index 0000000000..322f4eb503
--- /dev/null
+++ b/sources/tech/20220830 Crystal Linux- Emerging Arch Linux Spin for GNOME Fans.md
@@ -0,0 +1,143 @@
+[#]: subject: "Crystal Linux: Emerging Arch Linux Spin for GNOME Fans"
+[#]: via: "https://www.debugpoint.com/crystal-linux-first-look/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Crystal Linux: Emerging Arch Linux Spin for GNOME Fans
+======
+Meet Crystal Linux, a unique Arch Linux Spin with stock GNOME experience.
+
+### Introduction
+
+Often I think that we have sufficient Linux distros already. The count is nearing thousands, and fragmentation is at its peak. That is not good for quality software, especially in the open-source space.
+
+There is always a distro available for every use case you can think of.
+
+But Arch Linux is one of the sectors, it’s still emerging – just because of its debatable [complex installation methods][1]. That’s why most of the emerging Arch Linux distributions (such as [Xero Linux][2], [Hefftor Linux][3], Mabox, etc.) try to invent something unique in installation and other areas.
+
+Crystal Linux is one of those distros with a different take on installation while being super user-friendly.
+
+![Crystal Linux Desktop with GNOME 42][4]
+
+### Crystal Linux: First Look
+
+Before you read on, you should know that it’s a new distro (less than a year old) currently under development. So use it with caution.
+
+At first glance, it will feel like a stock GNOME installation, similar to the Fedora workstation. That’s true. With the Arch Linux base and stock GNOME – the performance is top-notch. Although I tried it on a virtual machine, I feel the GNOME and Arch combination performs much better than the Fedora workstation in the same virtual machine setup.
+
+With that said, no such different customization is available apart from those coming with GNOME. Honestly, GNOME doesn’t require any additional customization for its default settings. Looks wise it’s good enough.
+
+### What’s unique about Crystal Linux?
+
+#### jade Installer for Arch
+
+The most important offering is its own installer called “[jade][5]“. Crystal Linux team created a GTK4/libadwaita and Rust-based installer to give you a streamlined experience for Arch installation.
+
+And it looks fantastic (see the below images).
+
+![jade installer][6]
+
+![selecting desktop to install][7]
+
+![installation][8]
+
+The jade installer reminds me of GNOME’s Tour app, but here it uses a similar principle for installation. Basic information such as Keyboard, region, and names/passwords are captured via a series of screens.
+
+Then you get to choose the desktop environment you want to install. The default version is GNOME; however, you have the option to install all the famous desktops and window managers.
+
+One unique feature of this new installer is that you get options to set up ipv6 and Timeshift restore points.
+
+The partition wizard is currently under development with custom partitioning via this app or GParted as options. Here’s a mockup of the partition module under development (from [Twitter][9]).
+
+![jade with additional options - mockup][10]
+
+Finally, a summary for you before you install this distro/Arch Linux. The installation executes a script at the back end for Arch installation.
+
+#### Onyx – custom GNOME experience (with Budgie?)
+
+From GitHub, I found that there is a customized desktop for base install named [Onyx][11]. Although I am not sure how it fits into this desktop, it also has a Budgie desktop component. Since there is no documentation as such, I guess we need to wait until a stable release.
+
+![Not sure how Onyx is working in the backend][12]
+
+#### Amethyst – New AUR Helper
+
+Do we really need another AUR helper? The [Yay helper][13] is awesome already.
+
+Anyways.
+
+The Crystal Linux also features a homegrown AUR helper and pacman Wrapper called [amethyst][14]. As the dev says, you can install it to any Arch-based distros. Amethyst comes with the command line option “ame” which you can use with standard pacman switches.
+
+![ame terminal command][15]
+
+#### Btrfs file system by default
+
+One of the best features of this distro is the default btrfs file system during installation. Although the current work is ongoing for the additional file system, btrfs as default has its own advantages for backup and restoration.
+
+I don’t remember any other Arch-spin that has btrfs as default.
+
+#### Applications and Packages
+
+Since it is a stock GNOME-based distro, no additional applications are installed. So, you need to spend some time configuring with necessary apps such as LibreOffice, GIMP, Media players, etc.
+
+Firefox and native GNOME apps are available in the default installation.
+
+Crystal Linux seems to deploy the core packages from their own server, NOT from the Arch repo. Hence, some features may arrive a little late for updating the desktop and such.
+
+### Performance
+
+Arch Linux always performs well, in my experience. All the popular desktops such as KDE, GNOME, Xfce – all of them somehow feel faster than in Ubuntu/Fedora.
+
+With that said, the current GNOME 42 version in Crystal Linux is swift. The window animations and gestures feel smooth even in a virtual machine. There is no lag whatsoever.
+
+![Crystal Linux - Performance][16]
+
+Memory footprint is extremely low at 530 MB at idle. Most of the idle state CPUs are consumed by gnome-shell and systemd services.
+
+Default GNOME desktop install takes only 3.8 GB of disk space.
+
+### Wrapping up
+
+The jade installer and btrfs file system are two major highlights of Crystal Linux. Since most of the Arch-based distros follow Calamares installer, it’s good to see a new installer in this space. And it’s really user-friendly.
+
+The distro is just a few months old and has a long road ahead. I strongly believe it will give a competition to the currently famous Arch distro [EndeavourOS][17]. And the fans get to experience vanilla GNOME with Arch without the hassles of [installing Arch with GNOME][18].
+
+You can download the current ISO from the [official website][19]. As I mentioned earlier, use it with caution since it is under development.
+
+So, what are your thoughts about this distro? What are your favourite features? Do let me know in the comment box.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/crystal-linux-first-look/
+
+作者:[Arindam][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.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/install-arch-linux/
+[2]: https://www.debugpoint.com/xerolinux-review/
+[3]: https://www.debugpoint.com/hefftor-linux-review/
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Desktop-with-GNOME-42-1024x579.jpg
+[5]: https://github.com/crystal-linux/jade
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-installer.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/08/selecting-desktop-to-install.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/installation.jpg
+[9]: https://twitter.com/Crystal_Linux/status/1564379291529482240
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/08/jade-with-additional-options-mockup-1024x576.jpg
+[11]: https://github.com/crystal-linux/onyx
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/08/Not-sure-how-Onyx-is-working-in-the-backend-1024x576.jpg
+[13]: https://www.debugpoint.com/install-yay-arch/
+[14]: https://github.com/crystal-linux/amethyst
+[15]: https://www.debugpoint.com/wp-content/uploads/2022/08/ame-terminal-command-1024x576.jpg
+[16]: https://www.debugpoint.com/wp-content/uploads/2022/08/Crystal-Linux-Performance-1024x576.jpg
+[17]: https://www.debugpoint.com/tag/endeavouros
+[18]: https://www.debugpoint.com/gnome-arch-linux-install/
+[19]: https://getcryst.al/
\ No newline at end of file
diff --git a/sources/tech/20220830 Share screens on Linux with GNOME Connections.md b/sources/tech/20220830 Share screens on Linux with GNOME Connections.md
new file mode 100644
index 0000000000..e32ce09ef2
--- /dev/null
+++ b/sources/tech/20220830 Share screens on Linux with GNOME Connections.md
@@ -0,0 +1,138 @@
+[#]: subject: "Share screens on Linux with GNOME Connections"
+[#]: via: "https://opensource.com/article/22/8/share-screens-linux-gnome-connections"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Share screens on Linux with GNOME Connections
+======
+Discover the power of VNC for screen sharing on Linux.
+
+When someone needs to share their screen with you, or you need to share your screen with someone else, you have several options to choose from. Video conferencing software, like the open source [Jitsi][2] web app, and while we call that "screen sharing," it's really *presenting*. You're presenting your screen to others, but they can't interact with it. Sometimes you actually want to share your screen and your mouse cursor with a trusted friend or colleague, and the tool for that is VNC (Virtual Network Computing), and it's built into your Linux desktop.
+
+In any screen sharing scenario, there are two computers and possibly two users. For that reason, this article has two parts. The first part is for the person setting up their computer to *accept* screen sharing requests, and the second part is for the person trying to connect to *someone else's* screen.
+
+### Share my screen on Linux
+
+If you're reading this section, you're the person who needs technical help from a friend, and you want to allow your friend to connect to your screen. You need to configure your desktop to allow screen sharing.
+
+On the GNOME desktop, open the **Settings** application from the **Activities** menu. In the **Settings** window, click on **Sharing**. In the **Sharing** window, click on **Screen Sharing**.
+
+In the **Screen Sharing** window that appears, you have two choices.
+
+You can set a password so the person connecting to your screen must enter a password to connect. This is convenient when you don't expect to be around the computer when your friend plans on viewing your screen.
+
+You can require a notification so that when someone attempts to connect, you're prompted to let them in (or not.)
+
+![GNOME screen sharing settings][3]
+
+If you're on the [KDE Plasma Desktop][4], then the application to configure screer sharing is called **krfb** (it stands for "Remote Frame Buffer", the protocol used by VNC). It's the exact same concept, just with a different layout.
+
+![KDE screen sharing][5]
+
+### Firewall
+
+Normally, your computer's internal firewall keeps people out of your computer. It does that by indiscriminately blocking incoming all connections. In this case, though, you want to permit one kind of traffic, so you need to open a port in your firewall.
+
+On Fedora, CentOS, Mageia, and many other Linux distributions, you have a firewall whether you know it or not. You may not yet have an app to help you configure your firewall, though. To install the default firewall configuration application, launch GNOME **Software** and search for *firewall*.
+
+Once it's installed, launch the Firewall configuration application and scroll through the (very long) list of services to find and enable **vnc-server**.
+
+![Firewalld configuration][6]
+
+After adding `vnc-server`, open the **Options** menu and select **Runtime to permanent** so your new rule persists even after you reboot.
+
+On Debian, Ubuntu, Linux Mint, and others, you may be running a firewall called **ufw**, so install **gufw** instead. In **gufw**, click the plus (**+**) icon at the bottom of the **Rules** tab to add a new rule. In the **Add a new firewall rure** window that appears, search for `vnc` and click the **Add** button.
+
+![ufw configuration][7]
+
+Your computer is now configured to accept VNC requests. You can skip down to the [troubleshooting] section.
+
+### Viewing a shared screen
+
+If you're reading this section, you're the person providing technical help from afar. You need to connect to a friend or colleague's computer, view their screen, and even control their mouse and keyboard. There are many applications for that, including **TigerVNC**, KDE's **krdc**, and GNOME **Connections**.
+
+### GNOME Connections
+
+On your local computer, install the GNOME **Connections** application from GNOME **Software**, or using your package manager:
+
+```
+$ sudo dnf install gnome-connections
+```
+
+In GNOME **Connections**, click the plus (**+**) icon in the top left to add a destination host. Select the VNC protocol, and enter the user name and host or IP address you want to connect to, and then click the **Connect** button.
+
+![GNOME Connections][8]
+
+If the user you're connecting to has had to create a new port for the purposes of port forwarding, then you must append the non-default port to the address. For instance, say your target user has created port 59001 to accept VNC traffic, and their home router address is 93.184.216.34. In this case, you enter `username@93.184.216.34:59001` (where `username` is the user's actual user name.)
+
+If the user of the remote system has required a password for VNC, then you're prompted for a password before the connection is made. Otherwise, the user on the remote machine receives an alert asking whether they want to allow you to share their screen. As long as they accept, the connection is made and you can view and even control the mouse and keyboard of the remote host.
+
+### Troubleshoooting screen sharing on Linux
+
+Outside of the work environment, it's common that the user wanting to share their screen and the person who needs to see it are on different networks. You're probably at home, with a router that connects you to the Internet (it's the box you get from your ISP when you pay your Internet bill). Your router, whether you realize it or not, is designed to keep unwanted visitors out. That's normally very good, but in this one special case, you want to let someone trusted through so they can connect to your screen.
+
+To let someone into your network, you have to configure your router to allow traffic at a specific "port" (like a ship port, but for packets of data instead of cargo), and then configure that traffic to get forwarded on to your personal computer.
+
+Unfortunately, there's no *single* way that this is done. Every router manufacturer does it a little differently. That means I can't guide you through the exact steps required, because I don't know what router you have, but I can tell you what information you need up front, and what to look for once you're poking around your router.
+
+#### 1. Get your local IP address
+
+You need to know your computer's network IP address. To get that, open GNOME **Settings** and click on **Wi-Fi** in the left column (or **Network** if you're on a wired connection.) In the **Wi-Fi** panel, click the gear icon and find **IPv4 Adress** in the **Details** window that appears. A local IP address starts with 192.168 or 10.
+
+For example, my network IP address is 10.0.1.2. Write down your notwork IP address for later.
+
+#### 2. Get your public IP address
+
+Click this link to obtain your public IP address: [http://ifconfig.me][9]
+
+For example, my public IP address is 93.184.216.34 Write down your public IP address for later.
+
+#### 3. Configure your router
+
+Router interfaces differ from manufacturer to manufacturer, but the idea is the same regardless of what brand of router you have in your home. First, log in to your router. The router's address and login information is often printed on the router itself, or in its documentation. I own a TP-Link GX90 router, and I log in to it by pointing my web browser to 10.0.1.1, but your router might be 192.168.0.1 or some other address.
+
+My router calls port forwarding "Virtual servers," which is a category found in the router's **NAT forwarding** tab. = Other routers may just call it **Port forwarding** or **Firewall** or even **Applications**. It may take a little clicking around to find the right category, or you may need to spend some time studying your router's documentation.
+
+When you find the port forwarding setting (whatever it might be titled in your router), you need to add a new rule that identifies an external port (I use 59001) and sends traffic that arrives at it to an internal one (5900 is the standard VNC port.)
+
+In step 1, you obtained your network IP address. Use it as the destination for traffic coming to port 59001 of your router. Here's an example of what my router configuration looks like, but yours is almost sure to be different:
+
+![router configuration][10]
+
+This configuration sends traffic arriving at external port 59001 to 10.0.1.2 at port 5900, which is precisely what VNC requires.
+
+Now you can tell the friend you're trying to share your screen with to enter your *public* IP address (in this example, that's 93.184.216.34) and port 59001.
+
+### Linux screen sharing and trust
+
+Only share control of your screen with someone you trust. VNC can be complex to setup because there are security and privacy concerns around giving someone other than yourself access to you computer. However, once you've got it set up, you have instant and easy access to sharing your screen when you want to share something cool you're working on, or get help with something that's been confusing you.
+
+Image by: (Seth Kenlon, CC BY-SA 4.0)
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/share-screens-linux-gnome-connections
+
+作者:[Seth Kenlon][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://opensource.com/users/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/chat_video_conference_talk_team.png
+[2]: https://opensource.com/article/20/5/open-source-video-conferencing
+[3]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-11%2019-47-19.png
+[4]: https://opensource.com/article/22/2/screen-share-linux-kde
+[5]: https://opensource.com/sites/default/files/2022-08/kde-desktop-sharing.webp
+[6]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-11%2020-09-19.png
+[7]: https://opensource.com/sites/default/files/2022-08/gufw-vnc.png
+[8]: https://opensource.com/sites/default/files/2022-08/Screenshot%20from%202022-08-12%2005-11-10.png
+[9]: http://ifconfig.me
+[10]: https://opensource.com/sites/default/files/2022-08/router-port-forward.webp
diff --git a/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md b/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md
new file mode 100644
index 0000000000..aa208d59e7
--- /dev/null
+++ b/sources/tech/20220830 Why We Need Time Series Databases for Site Reliability Engineering.md
@@ -0,0 +1,148 @@
+[#]: subject: "Why We Need Time Series Databases for Site Reliability Engineering"
+[#]: via: "https://www.opensourceforu.com/2022/08/why-we-need-time-series-databases-for-site-reliability-engineering/"
+[#]: author: "K. Narasimha Sekhar https://www.opensourceforu.com/author/k-narasimha-sekhar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Why We Need Time Series Databases for Site Reliability Engineering
+======
+
+It’s not uncommon to deal with petabytes of data today, even when carrying out traditional types of analysis and reporting. Traditional databases, however, do not offer optimal mechanisms to store and retrieve large scale time series data. To meet the demand of time series analysis, new types of databases are emerging.
+
+### Real-world use cases
+
+Time series data streams are gathered in many real-world scenarios. The volume of data and the velocity of data generation differ from case to case.
+
+Typical scenarios from different fields are described below.
+
+* Monitoring data gathered as part of site reliability engineering: Health, performance, and capacity parameters are collected periodically over time from various layers of infrastructure and applications. These time series data streams are analysed for anomalies, fault detection, forecasting, etc. Huge amounts of time series data need to be analysed in real-time to avoid service breakdowns and for quick recovery. This data is also stored and retrieved for processing later, such as capacity forecasting.
+* IoT devices and sensors generate continuous streams of data.
+* Autonomous trading algorithms continuously collect data on how the markets are changing in order to optimise returns.
+* The retail industry collects and monitors supply chain and inventory data to optimise costs.
+* Weather forecasting teams continuously collect climate parameters such as temperature, humidity, etc, for predictions.
+* Autonomous vehicles continuously collect data about how their environment is changing, adjusting the drive based on weather conditions, engine status, and countless other variables.
+* In the medical field, sensors generate time data streams for blood pressure tracking, weight tracking, cholesterol measurements, heart rate monitoring, etc.
+
+There are numerous real-world scenarios where we collect time series data streams. These demand an efficient database for storing and retrieving time series data.
+
+![Figure 1: Alerting engine based on time series data analysis][1]
+
+### Time series data analysis
+
+Time series data is a sequence of data points collected over time intervals, giving us the ability to track changes over time. Because data points in time series are collected at adjacent time periods, the observations can be correlated. This feature distinguishes time series data from traditional data. Time series data can be useful to help recognise patterns or a trend. Knowing the value of a specific parameter at the current time is quite different than the ability to observe its behaviour over a long time interval. Time series data allows us to measure and analyse change — what has changed in the past, what is changing in the present, and what changes may take place in the future. Time series data can track changes over milliseconds, days, or even years. Table 1 outlines the typical questions that time series analysis can help to answer.
+
+| Category | Typical questions to be addressed |
+| :- | :- |
+| Prognostication | What are the short- and long-term trends for a measurement or group of measurements? |
+| Introspection | How do several measurements correlate over a period of time? |
+| Prediction | How do I build a machine learning model based on the temporal behaviour of many measurements correlated to externally known facts? |
+| Introspection | Have similar patterns of measurements preceded similar events? |
+| Diagnosis | What measurements might indicate the cause of some event, such as a system failure? |
+| Forecasting | How many more servers will be needed for handling next quarter’s workload? |
+| Segmentation | How to divide a data stream into a sequence of discrete segments in order to reveal the underlying properties of its source? |
+
+Typical steps in time series data analysis are:
+
+* Collecting the data and cleaning it
+* Visualising with respect to time vs key feature
+* Observing the stationarity of the series
+* Developing charts to understand the nature of the data
+* Model building such as AR, MA, ARMA and ARIMA
+* Extracting insights from the predictions
+
+There are three components of time series analysis — trend, seasonality and residual analysis.
+
+*Trend:* This indicates the direction in which the data is moving over a period of time.
+
+*Seasonality:* Seasonality is about periodic behaviour — spikes or drops caused by different factors like:
+
+* Naturally occurring events like weather fluctuations
+* Business or administrative procedures like the start or end of a fiscal year
+* Social and cultural behaviour like holidays or festivals
+* Calendar events, like the number of Mondays per month or holidays that change every year
+
+*Residual analysis:* These are the irregular fluctuations that cannot be predicted using trend or seasonality analysis.
+
+An observed data stream could be additive (trend + seasonality + residual) or multiplicative (trend * seasonality * residual).
+
+Once these components are identified, models are built to understand time series and check for anomalies, forecasting and correlations. For time series data modelling, AR, MA, ARMA and ARIMA algorithms are widely adopted. Many other advanced AI/ML algorithms are being proposed for better evaluation.
+
+### Time series databases
+
+A time series database (TSDB) is a database optimised for time-stamped or time series data. Time series data is simply measurements or events that are tracked, monitored, down sampled, and aggregated over time. These could be server metrics, application performance monitoring, network data, sensor data, events, clicks, trades in a market, and many other types of analytics data.
+
+Looking back 10 years, the amount of data that was once collected in 10 minutes for some very active systems is now generated every second. To process these high volumes, we need different tools and approaches.
+
+To design an optimal TSDB, we must analyse the properties of time series data, and the demands of time series analysis applications. The typical characteristics of time series data and its use cases are:
+
+* Time series is a sequence of values, each with a time value indicating when the value was recorded.
+* Time series data entries are rarely amended.
+* Time series data is often retrieved by reading a contiguous sequence of samples.
+* Most of the time, we collect and store multiple time series. Queries to retrieve data from one or a few time series for a particular time range are very common.
+* The volume and velocity of time series data is very high.
+* Both long-term and short-term trends in the time series are very important for analysis.
+* Summarising or aggregating high volume time series data sets is a very basic requirement.
+* Traditional DB operations such as searching, sorting, joining tables, etc, are not required.
+
+Properties that make time series data very different from other data workloads are data life cycle management, summarisation, and large range scans of many records. TSDB is designed to simplify and strengthen the process for real-world time series applications.
+
+Storing time series data in flat files limits its utility. Data will outgrow these and the access is inefficient. Traditional RDBMS databases are not designed from the ground up for time series data storage. They will not scale well to handle huge volumes of time series data. Also, the schema is not appropriate. Getting a good performance for time series from an SQL database requires significant customisation and configuration. Without that, unless you’re working with a very small data set, an SQL-based database will simply not work properly. A NoSQL non-relational database is preferred because it scales well and efficiently to enable rapid queries based on time range.
+
+![Figure 2: Time series analytics engine on AWS Cloud][2]
+
+A TSDB is optimised for best performance for queries based on a range of time. New NoSQL non-relational databases come with considerable advantages (like flexibility and performance) over traditional relational databases (RDBMS) for this purpose. NoSQL databases and relational databases share the same basic goals: to store and retrieve data and to coordinate changes. The difference is that NoSQL databases trade away some of the capabilities of relational databases in order to improve scalability. The benefits of making this trade include greater simplicity in the NoSQL database, the ability to handle semi-structured and denormalised data and, potentially, much higher scalability for the system.
+
+At very large scales, time-based queries can be implemented as large, contiguous scans that are very efficient if the data is stored appropriately in a time series database. And if the amount of data is very large, a non-relational TSDB in a NoSQL system is typically needed to provide sufficient scalability.
+
+Non-relational time series databases enable discovery of patterns in time series data, long-term trends, and correlations between data representing different types of events. The time ranges of interest extend in both directions. In addition to the very short time-range queries, long-term histories for time series data are needed, especially to discover complex trends.
+
+Time series databases have key architectural design properties that make them very different from other databases. These include time-stamp data storage and compression, data life cycle management, data summarisation, the ability to handle large time series-dependent scans of many records, and time series aware queries.
+
+For example, with a time series database, it is common to request a summary of data over a large time period. This requires going over a range of data points to perform computations like a percentile increase this month of a metric over the same period in the last six months, summarised by month. This kind of workload is very difficult to optimise for with a distributed key value store. TSDBs are optimised for exactly this use case and can give millisecond-level responses over months of data. Here is another example. With time series databases, it’s common to keep high precision data around for a short period of time. This data is aggregated and down sampled into long-term trend data. This means that for every data point that goes into the database, it will have to be deleted after its period of time is up. This kind of data life cycle management is difficult for application developers to implement in regular databases. They must devise schemes for cheaply evicting large sets of data and constantly summarising that data at scale. With a time series database, this functionality is provided out-of-the-box.
+
+Since time series data comes in time order and is typically collected in real-time, time series databases are immutable and append-only to accommodate extremely high volumes of data. This append-only property distinguishes time series databases from relational databases, which are optimised for transactions but only accommodate lower ingest volumes. In general, depending on their particular use case, NoSQL databases will trade off the ACID principles for a BASE model (whose principles are basic availability, soft state and eventual consistency). For example, one individual point in a time series is fairly useless in isolation, and the important thing is the trend in total.
+
+### Alerts based on time series data analysis for site reliability
+
+Time series data models are very common in site reliability engineering. Time series analysis is used to monitor system health, performance, anomaly detection, security threat detection, inventory forecasting, etc. Figure 1 shows a typical alerting mechanism based on analysing time series data collected from different components.
+
+Modern data centres are complex systems with a variety of operations and analytics taking place around the clock. Multiple teams need access at the same time, which requires coordination. In order to optimise resource use and manage workloads, systems administrators monitor a huge number of parameters with frequent measurements for a fine-grained view. For example, data on CPU usage, memory residency, IO activity, levels of disk storage, and many other parameters are all useful to collect as time series.
+
+Once these data sets are recorded as time series, data centre operations teams can reconstruct the circumstances that lead to outages, plan upgrades by looking at trends, or even detect many kinds of security intrusions by noticing changes in the volume and patterns of data transfer between servers and the outside world.
+
+### Open source TSDBs
+
+[Time series databases][3] are the fastest growing segment in the database industry. There are many commercial and open source time series databases available. A few well-known open source time series databases are listed below:
+
+* InfluxDB is one of the most popular time series open source databases, and is written in Go. It has been designed to provide a highly scalable data ingestion and storage engine. It is very efficient at collecting, storing, querying, visualising, and taking action on streams of time series data, events, and metrics in real-time. It uses InfluxQL, which is very similar to a structured query language, for interacting with data.
+* Prometheus is an open source monitoring solution used to understand insights from metrics data and send the necessary alerts. It has a local on-disk time-series database that stores data in a custom format on disk. It provides a functional query language called PromQL.
+* TimescaleDB is an open source relational database that makes SQL scalable for time series data. This database is built on PostgreSQL.
+* Graphite is an all-in-one solution for storing and efficiently visualising real-time time series data. Graphite can store time series data and render graphs on demand. To collect data, we can use tools such as collectd, Ganglia, Sensu, telegraf, etc.
+* QuestDB is a relational column-oriented database that can perform real-time analytics on time series data. It works with SQL and some extensions to create a relational model for time series data. It supports relational and time-series joins, which helps in correlating the data.
+* OpenTSDB is a scalable time series database that has been written on top of HBase. It is capable of storing trillions of data points at millions of writes per second. It has a time-series daemon (TSD) and command-line utilities. TSD is responsible for storing data in or retrieving it from HBase. You can talk to TSD using HTTP API, telnet, or a simple built-in GUI. You need tools like flume, collectd, vacuumetrix, etc, to collect data from various sources into OpenTSDB.
+
+### Cloud native TSDBs
+
+Cloud hyperscalers like Azure, AWS and Google offer time series databases and analytics services as part of their cloud portfolio. AWS Timestream is a serverless time series database service that is fast and scalable. It is used majorly for IoT applications to store trillions of events in a day and is 1000 times faster with 1/10th the cost of relational databases. Using its purpose-built query engine, you can query recent and historical data simultaneously. It provides multiple built-in functions to analyse time series data to find useful insights.
+
+Microsoft Azure Time Series Insights provides a time series analytics engine. For data ingestion there are Azure IoT Hub and Event Hub services. To analyse cloud infrastructure and time series streams, these cloud vendors offers a range of native tools such as AWS CloudWatch, Azure Monitor, Amazon Kinesis, etc.
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/08/why-we-need-time-series-databases-for-site-reliability-engineering/
+
+作者:[K. Narasimha Sekhar][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/k-narasimha-sekhar/
+[b]: https://github.com/lkxed
+[1]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-1-Alerting-engine-based-on-time-series-data-analysis.jpg
+[2]: https://www.opensourceforu.com/wp-content/uploads/2022/06/Figure-2-Time-series-analytics-engine-on-AWS-Cloud.jpg
+[3]: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiU2ZaOj9X4AhVLwjgGHcBfB8QQFnoECEAQAQ&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FTime_series_database&usg=AOvVaw3Q9XvE3JIoBTEyu897tQQN
diff --git a/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md b/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md
new file mode 100644
index 0000000000..4c9d4a8d4b
--- /dev/null
+++ b/sources/tech/20220831 21 Basic Linux Networking Commands You Should Know.md
@@ -0,0 +1,595 @@
+[#]: subject: "21 Basic Linux Networking Commands You Should Know"
+[#]: via: "https://itsfoss.com/basic-linux-networking-commands/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+21 Basic Linux Networking Commands You Should Know
+======
+It’s not every day at It’s FOSS that we talk about the “command line side” of Linux. But as some of you readers pointed out in the internal survey (exclusive for It’s FOSS newsletter subscribers), you would also like to learn some command line tricks.
+
+So I compiled a list of essential Linux networking commands that helped me during my college days and gave me a firm overview of how you can use Linux on the networking side.
+
+These commands will help you set-up as well as troubleshoot various networking issues you may encounter with your Linux system.
+
+### Essential networking commands in Linux
+
+This compilation includes CLI utilities that will help you with troubleshooting network issues, monitoring packets, connected devices, and much more.
+
+Before I show the commands with some details, let me share a brief overview of all the commands which I’m going to discuss today:
+
+| Command | Description |
+| :- | :- |
+| ip | Manipulating routing to assigning and configuring network parameters |
+| traceroute | Identify the route taken by packets to reach the host |
+| tracepath | Gets maximum transmission unit while tracing the path to the network host |
+| ping | Often used to check the connectivity between the host and the server |
+| ss | Gets details about network sockets |
+| dig | Gives all the necessary information about the DNS name server |
+| host | Prints IP address of a specific domain and viscera |
+| hostname | Mostly used to print and change the hostname |
+| curl | Transfers data over the network by supporting various protocols |
+| mtr | A combination of ping and traceroute is used to diagnose the network |
+| whois | Gets info about registered domains, IP addresses, name servers, and more |
+| ifplugstatus | Detects the link status of a local Ethernet device |
+| iftop | Monitors stats related to bandwidth |
+| tcpdump | Packet sniffing and analyzing utility used to capture, analyze and filter network traffic |
+| ethtool | Allows users to configure Ethernet devices |
+| nmcli | Troubleshooting utility for network connections |
+| nmap | Primarily used to audit network security |
+| bmon | An open-source utility to monitor real-time bandwidth |
+| firewalld | CLI tool to configure rules of Firewall |
+| iperf | Utility to measure network performance and tuning |
+| speedtest-cli | CLI utility of speedtest.net to check internet speeds |
+| vnstat | Mostly used to monitor network traffic and bandwidth consumption |
+
+Now, let’s discuss them with examples and more depth.
+
+Please note that not all the commands here will come preinstalled. I have added instructions for Debian/Ubuntu. For other distributions, please use your package manager.
+
+#### 1. IP command
+
+IP (Internet Protocol) is one of the most basic yet essential enough that you’d often find it being used by sysadmins, and its use cases can be ranging from manipulating routing to assigning and configuring network parameters.
+
+While the use cases may be endless, let me show you the most basic use case of Ip command (finding an IP address):
+
+```
+ip address
+```
+
+![ip address][1]
+
+Similarly, you can also use the Ip command to continuously monitor the state of devices by using `monitor` option instead of `address` that we used to get IP addresses previously.
+
+```
+ip monitor
+```
+
+![ip monitor][2]
+
+#### 2. traceroute
+
+Using the traceroute command, you can identify the route taken by packets to reach the host. And it can be quite useful when you want to interrogate the transmission of data packets and hops taken by packets.
+
+By default, your system may not have traceroute installed and if you’re on Debian-derivative (including Ubuntu), installation is single command ahead:
+
+```
+sudo apt install traceroute
+```
+
+For example, I’d be tracerouting packets to google.com
+
+```
+traceroute google.com
+```
+
+![traceroute google.com][3]
+
+By default, traceroute will utilize IPv4 but you can change this behavior by using `-6` option that will indicate traceroute to use IPv6. Let me show you how:
+
+![traceroute 6 google.com][4]
+
+#### 3. tracepath
+
+The tracepath command is used to discover MTU (Maximum Transmission Unit) while tracing the path to the network host. It’s quite similar to what I discussed above but it does require sudo privileges and also has no fact functions like traceroute.
+
+But what is MTU in the first place?
+
+MTU is nothing but the largest frame or packet that can be transmitted or received over the network.
+
+Now, let’s have a look at the basic example of tracepath with google.com
+
+```
+tracepath google.com
+```
+
+![tracepath google.com][5]
+
+Similarly, you can print both IP address and hostname using `-b` option.
+
+```
+tracepath -b google.com
+```
+
+![tracepath b google.com][6]
+
+#### 4. ping
+
+[The ping (Packet Internet Groper) command][7] can be considered one of the most important commands while troubleshooting your network, as it is the most common way to check the connectivity between the host and the server.
+
+For example, I’d be pinging google:
+
+```
+ping google.com
+```
+
+![ping google.com][8]
+
+Here, the last line (min/avg/max) indicates the time to get a response from the specified server.
+
+And if you’re getting an error saying **“bash: ping: command not found”**, you can check out our guide on [how to install Ping on Ubuntu][9].
+
+#### 5. ss
+
+The ss (socket statistics) command is used to detail about network socket (endpoint for sending and receiving data across the network).
+
+To list all the listening and non-listening TCP connection, you have to use `-at` option as shown below:
+
+```
+ss -at
+```
+
+![ss at][10]
+
+Similarly, you can do the same with UDP ports using `-au` option:
+
+```
+ss -au
+```
+
+![ss au][11]
+
+#### 6. dig
+
+The [dig (Domain Information Groper) command][12] is used to fetch all the necessary information about the DNS name server.
+
+To install the dig utility on Ubuntu-based distros, follow the given command:
+
+```
+sudo apt install dnsutils
+```
+
+Now, let me show you how to get info from a specific DNS, and for this example, I’d be using itsfoss.com as DNS.
+
+```
+dig itsfoss.com
+```
+
+![dig itsfoss.com][13]
+
+#### 7. host
+
+The host command is mainly used to get the IP address of a specific domain, or you can get the domain name from a specific IP address. In other words, it’s just a DNS lookup utility.
+
+To find the IP of the domain, you just have to append the domain name with the host command. Let me show you how:
+
+```
+host itsfoss.com
+```
+
+![host itsfoss.com][14]
+
+Similarly, you can use an IP address to fetch the domain name:
+
+```
+host 8.8.4.4
+```
+
+![host 8.8.4.4][15]
+
+#### 8. hostname
+
+You must be familiar with this command if you’ve been using Linux for a while, as this is mostly used to [change the hostname of your system][16] and NIS (Network Information System) domain name.
+
+When used without any options, it gets the current hostname of the system:
+
+```
+hostname
+```
+
+![hostname][17]
+
+Changing the hostname from a file containing the desired hostname is yet another interesting feature of this utility.
+
+```
+sudo hostname -F
+```
+
+![sudo hostname f][18]
+
+#### 9. curl
+
+The curl (Client URL) command is mostly used to transfer data over the network and supports various protocols including HTTP, FTP, IMAP, and many others.
+
+This tool is preferred in automation as it is built to work without any human interaction and can also be used in endpoint testing, Debugging, and error logging.
+
+The curl utility does not come pre-installed and if you’re on any Debian-derivative, you just have to use the following command for installation:
+
+```
+sudo apt install curl
+```
+
+It is quite easy to download files [using the curl command][19], You just have to use `-O` option with the URL, and you’d be good to go!
+
+```
+curl -O [URL]
+```
+
+![curl o url][20]
+
+While downloading large files, the progress bar can be quite convenient, and you can do the same with curl using `-#` option.
+
+![curl # o][21]
+
+#### 10. mtr
+
+It is a combination of ping and traceroute utilities and is mainly used for network diagnostics and gives live look at network response and connectivity.
+
+The simplest way to use mtr is to append a domain name or IP address with it, and it will give a live traceroute report.
+
+```
+mtr [URL/IP]
+```
+
+![mtr google.com][22]
+
+And if you want mtr to show both hostnames and IP addresses, you can pair it with `-b` option as shown below:
+
+```
+mtr -b [URL]
+```
+
+![mtr b][23]
+
+#### 11. whois
+
+The whois can help you find info about registered domains, IP addresses, name servers, and a lot more as it is the client for the whois directory service.
+
+This utility may not be pre-installed on your device and for installation in Ubuntu-based distro, you can use the given command:
+
+```
+sudo apt install whois
+```
+
+Generally, the whois command is paired with the domain name as given:
+
+```
+whois [DomainName]
+```
+
+![whois google.com][24]
+
+Alternatively, you can also use an IP address instead of a domain and you’d get the same details.
+
+#### 12. ifplugstatus
+
+The ifplugstatus is one of the most basic yet useful enough to troubleshoot connectivity at the basic level. And is used to detect the link status of a local ethernet and works similarly to mii-diag, mii-tool, and ethtool by supporting APIs for all 3.
+
+For installation on Ubuntu-based distros, you can follow the given command:
+
+```
+sudo apt install ifplugd
+```
+
+This utility does not have any fancy options and often used without being paired with any:
+
+```
+ifplugstatus
+```
+
+![ifplugstatus][25]
+
+#### 13. iftop
+
+The iftop (Interface TOP) is often used by admins to monitor stats related to bandwidth and can also be used as a diagnostic tool when you’re having issues with the network.
+
+This utility requires manual installation and can be easily installed on machines running Ubuntu by the given command:
+
+```
+sudo apt install iftop
+```
+
+When iftop is used without any options, it shows bandwidth stats of the default interface:
+
+```
+sudo iftop
+```
+
+![iftop][26]
+
+And you can also specify the network device by appending the device name with `-i` option.
+
+```
+sudo iftop -i
+```
+
+In my case its, `enp1s0` so my output will be as follows:
+
+![sudo iftop i enp1s0][27]
+
+#### 14. tcpdump
+
+The tcpdump is a packet sniffing and analyzing utility used to capture, analyze and filter network traffic. It can also be used as a security tool because it saves captured data in pcap file which can be [accessed through Wireshark][28].
+
+Like many other tools, tcpdump does not come pre-installed, and you can follow the given command for installation if you’re on Ubuntu base.
+
+```
+sudo apt install tcpdump
+```
+
+Once you’re done with the installation, you can get capture packets for the current interface as given below:
+
+```
+sudo tcpdump
+```
+
+![sudo tcpdump][29]
+
+So how about saving captured packets in pcap file? Let me show you how:
+
+```
+sudo tcpdump -w Captured_Packets.pcap -i
+```
+
+![sudo tcpdump w][30]
+
+To access the saved file, you need to use `-r` option by appending file name:
+
+```
+sudo tcpdump -r Captured_Packets.pcap
+```
+
+![sudo tcpdump r filename][31]
+
+#### 15. ethtool
+
+As its name suggests, the ethtool utility is primarily concerned with managing ethernet devices. Using this utility allows you to tweak network card speed, auto-negotiation, and much more.
+
+But it may not be pre-installed on your machine and can be installed on a Ubuntu-powered machine by utilizing the given command:
+
+```
+sudo apt install ethtool
+```
+
+To fetch the interface details, you just have to append the device name with the command as shown below:
+
+```
+sudo ethtool
+```
+
+![sudo ethtool enp1s0][32]
+
+#### 16. nmcli
+
+Being a simple yet powerful network troubleshooting tool, it is one of the first utilities that any sysadmin would use for troubleshooting the network and can also be used in scripts.
+
+You can use nmcli command as given to monitor the connectivity status of devices:
+
+```
+nmcli dev status
+```
+
+![nmcli dev status][33]
+
+When used without any options, it will bring info about all the present devices in your system.
+
+```
+nmcli
+```
+
+![nmcli][34]
+
+#### 17. nmap
+
+The nmap is a tool to explore and audit network security. It is often used by hackers and security enthusiasts as it allows you to get real-time info on the network, IPs connected to your network in a detailed manner, port scanning, and much more.
+
+For installation of nmap utility on Ubuntu-based distros, utilize the given command:
+
+```
+sudo apt install nmap
+```
+
+Let’s start scanning with hostname:
+
+```
+nmap itsfoss.com
+```
+
+![nmap itsfoss.com][35]
+
+#### 18. bmon
+
+The bmon is an open-source utility to monitor real-time bandwidth and debug issues by presenting stats in a more human-friendly way. The best part of this tool is the graphical presentation and can even get your output in HTML!
+
+Installation is quite simple as bmon is present in default repos of popular Linux distros and that also includes Ubuntu.
+
+```
+sudo apt install bmon
+```
+
+Now, you just have to launch bmon and you’d be able to monitor bandwidth in eye pleasant way:
+
+```
+bmon
+```
+
+![bmon][36]
+
+#### 19. firewalld
+
+Managing firewalls can be considered the core part of network security and this tool allows you to add, configure and remove rules on firewall.
+
+But the firewalld requires manual installation, and you can utilize the given command for installation if you’re using an Ubuntu-based distro:
+
+```
+sudo apt install firewalld
+```
+
+For example, I’d show you, how you can open port 80 permanently for the public zone:
+
+```
+sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
+```
+
+![sudo firewall cmd permanent zone=public][37]
+
+Similarly, to remove the recently added rule, you have to use `-remove` option as shown below:
+
+```
+sudo firewall-cmd --zone=public --remove-port=80/tcp
+```
+
+![sudo firewall cmd zone=public remove][38]
+
+#### 20. iperf
+
+The iperf is an open-source utility written in C allowing users to perform network performance measurement and tuning.
+
+This tool is present in the default repository of Ubuntu and can be installed from the given command:
+
+```
+sudo apt install iperf
+```
+
+To start monitoring the network, users must initiate this client on the server by given command:
+
+```
+iperf -s -u
+```
+
+Where, `-s` option indicates server and `-u` option is for UDP format.
+
+![iperf s u][39]
+
+Now, you can connect to your server (using `-c` option indicating client side) by providing an IP address payload for the preferred protocol. For this example, I went with UDP (using `-u` option) with a payload of 100.
+
+```
+iperf -c 10.0.2.15 -u 100
+```
+
+![iperf c][40]
+
+#### 21. speedtest-cli
+
+As the name suggests, this is the CLI utility for the speedtest.net website. This open-source utility released under Apache 2.0 license can be quite helpful when you want a reliable source for [checking internet speeds][41] from cli.
+
+Installation is quite straightforward and can easily be installed utilizing the given command if you’re on an Ubuntu base:
+
+```
+sudo apt install speedtest-cli
+```
+
+Once you’re done with the installation part, you just have to use a single command to get your speeds tested:
+
+```
+speedtest-cli
+```
+
+![speedtest cli][42]
+
+#### 22. vnstat
+
+The vnstat utility is mostly used by sysadmins to monitor network traffic and bandwidth consumption (for the most part) as this tool monitors traffic on network interfaces of your system.
+
+As with any other networking tool, you can find vnstat in the default repositories, and if you’re on Ubuntu, the installation can be done through the given command:
+
+```
+sudo apt install vnstat
+```
+
+You can use vnstat command without any options, and it will bring basic stats of all available interfaces of your system:
+
+```
+vnstat
+```
+
+![vnstat][43]
+
+For live monitoring, you can pair vnstat command with `-l` option:
+
+how to get the most out of man pages
+
+![vnstat l][44]
+
+### A long List, right?
+
+This compilation is not even the tip of the iceberg and only shares the purpose and basic examples of each command because adding more would have made this even longer.
+
+Popular but [deprecated Linux commands][45] like ipconfig have been deliberately left out of this list.
+
+And if you’re curious, you can learn [how to get the most out of man pages][46]which will teach you how you can use any utility at its max potential.
+
+And if I forgot to mention any of your favorites, please let me know in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/basic-linux-networking-commands/
+
+作者:[Sagar Sharma][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://itsfoss.com/author/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/wp-content/uploads/2022/08/ip-address-1.png
+[2]: https://itsfoss.com/wp-content/uploads/2022/08/ip-monitor.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/08/traceroute-google.com_.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/traceroute-6-google.com_.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/08/tracepath-google.com_.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/tracepath-b-google.com_.png
+[7]: https://linuxhandbook.com/ping-command-ubuntu/
+[8]: https://itsfoss.com/wp-content/uploads/2022/08/ping-google.com_.png
+[9]: https://linuxhandbook.com/ping-command-ubuntu/
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/ss-at.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/08/ss-au.png
+[12]: https://linuxhandbook.com/dig-command/
+[13]: https://itsfoss.com/wp-content/uploads/2022/08/dig-itsfoss.com_.png
+[14]: https://itsfoss.com/wp-content/uploads/2022/08/host-itsfoss.com_.png
+[15]: https://itsfoss.com/wp-content/uploads/2022/08/host-8.8.4.4.png
+[16]: https://itsfoss.com/change-hostname-ubuntu/
+[17]: https://itsfoss.com/wp-content/uploads/2022/08/hostname.png
+[18]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-hostname-f.png
+[19]: https://linuxhandbook.com/curl-command-examples/
+[20]: https://itsfoss.com/wp-content/uploads/2022/08/curl-o-url.png
+[21]: https://itsfoss.com/wp-content/uploads/2022/08/curl-o.png
+[22]: https://itsfoss.com/wp-content/uploads/2022/08/mtr-google.com_.png
+[23]: https://itsfoss.com/wp-content/uploads/2022/08/mtr-b.png
+[24]: https://itsfoss.com/wp-content/uploads/2022/08/whois-google.com_.png
+[25]: https://itsfoss.com/wp-content/uploads/2022/08/ifplugstatus.png
+[26]: https://itsfoss.com/wp-content/uploads/2022/08/iftop.png
+[27]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-iftop-i-enp1s0.png
+[28]: https://itsfoss.com/install-wireshark-ubuntu/
+[29]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump.png
+[30]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump-w-.png
+[31]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-tcpdump-r-filename.png
+[32]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-ethtool-enp1s0.png
+[33]: https://itsfoss.com/wp-content/uploads/2022/08/nmcli-dev-status.png
+[34]: https://itsfoss.com/wp-content/uploads/2022/08/nmcli.png
+[35]: https://itsfoss.com/wp-content/uploads/2022/08/nmap-itsfoss.com_.png
+[36]: https://itsfoss.com/wp-content/uploads/2022/08/bmon-800x591.png
+[37]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-firewall-cmd-permanent-zonepublic.png
+[38]: https://itsfoss.com/wp-content/uploads/2022/08/sudo-firewall-cmd-zonepublic-remove.png
+[39]: https://itsfoss.com/wp-content/uploads/2022/08/iperf-s-u.png
+[40]: https://itsfoss.com/wp-content/uploads/2022/08/iperf-c-.png
+[41]: https://itsfoss.com/network-speed-monitor-linux/
+[42]: https://itsfoss.com/wp-content/uploads/2022/08/speedtest-cli.png
+[43]: https://itsfoss.com/wp-content/uploads/2022/08/vnstat.png
+[44]: https://itsfoss.com/wp-content/uploads/2022/08/vnstat-l.png
+[45]: https://itsfoss.com/deprecated-linux-commands/
+[46]: https://linuxhandbook.com/man-pages/
diff --git a/sources/tech/20220831 How we track the community health of our open source project.md b/sources/tech/20220831 How we track the community health of our open source project.md
new file mode 100644
index 0000000000..59aa92fe79
--- /dev/null
+++ b/sources/tech/20220831 How we track the community health of our open source project.md
@@ -0,0 +1,105 @@
+[#]: subject: "How we track the community health of our open source project"
+[#]: via: "https://opensource.com/article/22/8/open-source-community-health-metrics-savannah"
+[#]: author: "Ruth Cheesley https://opensource.com/users/rcheesley"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How we track the community health of our open source project
+======
+Mautic chose Savannah CRM to support community building and recognition efforts.
+
+To be an effective leader in an open source community, you need a lot of information. How do I know who the most active members in my community are? Which companies are making the most contributions? Which contributors are drifting away and becoming inactive? Who in the community is knowledgeable about a specific topic?
+
+These were just a few of the questions I had when I started leading the Mautic community at Acquia. But the problem was not a shortage of information. On the contrary, there were so many places our community interacted and so many things to track that I was drowning in data. I could access plenty of data sources, but they were not helping me manage the community effectively or answering my questions.
+
+### Tracking all the places
+
+I needed to find a tool to bring all of this together and give the community leadership team a centralized place to see activity everywhere we have people discussing Mautic. More importantly, we needed a tool that could accurately track who was contributing in every way that we defined contributions.
+
+I tried several tools, but the most promising was the open source Community Relationship Manager Savannah CRM, a relative newcomer to the market. What stood out to me in Savannah was its focus on contribution as well as community health. Other tools I reviewed either did not have a clear concept of contributions or did not cover all the places we wanted to track.
+
+I started working locally by checking out the [GitHub repository][2] for the Django-based application and quickly began to see the power of bringing all of my metrics into one place. Straight away, I could see a list of new contributors, most active community members, organizations, and even an interactive display allowing me to see how contributors were connected with each other and across the different channels we use.
+
+![Savannah community dashboard][3]
+
+Image by: (Michael Hall, CC BY-SA 4.0)
+
+In the early days of using Savannah, this function helped identify potential leaders for teams and initiatives. The tagging feature also meant I could quickly find out who was talking about a specific topic and where those conversations were happening in the community.
+
+As the community matured, notifications alerting me to contributors becoming inactive started to be really helpful in prompting a personal check-in with them. Using projects to track activity and contributor funnels in specific areas of our community has helped us spot where contributions are dropping off. Having the ability to "watch" community members who previously breached the code of conduct made it much easier to keep track of their future conduct and act swiftly if there were more incidents.
+
+Over time we have moved to a hosted plan (mainly because we don't have the contributors to manage our own infrastructure at this time) and have continued to extend how we are using this tool.
+
+It's really at the heart of everything we do in our community, and it helps me proactively manage our community. It supports everything from my monthly recognition shout-outs to determining whether an organization has a sustained history of contributing that would entitle them to become—and remain—a Community Partner.
+
+### Tracking all the open source contributions
+
+Over the last two years, we have expanded what we track as a contribution in Mautic. Currently, the list includes:
+
+* Authoring a blog post on mautic.org
+* Creating a community-focused podcast episode
+* Making a pull request (PR) on any of our GitHub repositories
+* Reviewing a PR on any of our GitHub repositories
+* Completing a Jira issue on any of our Jira projects
+* Providing help or feedback on Slack
+* Having an answer accepted as a solution on the Discourse forums
+* Giving help on a Reddit thread
+* Organizing or speaking at an official Mautic event
+* Organizing or speaking at a Meetup
+* Having an answer to a question accepted on Stack Exchange
+
+Most of these are available out of the box with Savannah, but some, such as reviewing a PR or completing a Jira issue, we implemented with the application programming interface (API) and integrations with automation tools.
+
+We also track and highlight the folks who support and engage with others before they contribute, since this often helps the individual make that contribution in the future.
+
+### Tracking progress over time
+
+We have several publicly shared reports, including:
+
+* [Activity over the last 90 days][4]
+* [Annual report][5] (2021)
+* [All contributions over time][6]
+* Monthly reports ([July 2022][7], [June 2022][8], [May 2022][9])
+
+Any report in Savannah and any screen can be shared publicly, making it a really easy way to share things with others.
+
+![A pie chart reflects the amount of conversations among eight different sources. The top sources on the chart are Slack, GitHub, and Discourse. Other sources included Reddit, Stack Exchange, and RSS][10]
+
+Image by: (Ruth Cheesley, CC BY-SA 4.0)
+
+For us, it allows folks to see what is happening within the community and also offers a public way to recognize the organizations and individuals who are consistently contributing or engaging in the community.
+
+### New features in Savannah
+
+We have experimented with some of the newer features in Savannah, such as tracking when we send swag to contributors and whether it affects future contributions. Another feature I am excited to look into allows us to flag a potential contributor opportunity—for example, if we come across someone we would like to support with writing for the blog, creating a meetup group, or submitting a new feature. Savannah then allows us to track the nurturing of that contributor.
+
+There are often new features being added, which is great to see. Because it is an open source project, you can, of course, make your own PR to implement new features or fix bugs you come across.
+
+So far, Savannah has been an excellent tool for tracking our community health in the Mautic community, and it has really helped us both track and recognize contributions across our far-reaching community. I hope that you find it useful in your communities too!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/8/open-source-community-health-metrics-savannah
+
+作者:[Ruth Cheesley][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://opensource.com/users/rcheesley
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/Open%20Pharma.png
+[2]: https://github.com/savannahhq/savannah
+[3]: https://opensource.com/sites/default/files/2022-08/savannah.png
+[4]: https://savannahcrm.com/public/overview/2b4590bf-cad0-4c71-870a-6f942a25f8fe/
+[5]: https://savannahcrm.com/public/report/be33f366-f98e-4f21-915b-cdecadd3dc0e/
+[6]: https://savannahcrm.com/public/contributions/d26d705d-c5e5-40f5-bd6a-ba1ffda474c3/
+[7]: https://savannahcrm.com/public/report/ecba71f9-a28a-48f4-a268-a499e063b000/
+[8]: https://savannahcrm.com/public/report/5b0329df-dad0-4091-85ce-373a0e7e4cf3/
+[9]: https://savannahcrm.com/public/report/c7227c78-1053-4652-b4a2-0d9a53f0f413/
+[10]: https://opensource.com/sites/default/files/2022-08/source%20of%20contributions_0.png
diff --git a/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md b/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md
new file mode 100644
index 0000000000..5cd75e15f4
--- /dev/null
+++ b/sources/tech/20220901 Are You Familiar with These Popular Open Source Databases-.md
@@ -0,0 +1,189 @@
+[#]: subject: "Are You Familiar with These Popular Open Source Databases?"
+[#]: via: "https://www.opensourceforu.com/2022/09/are-you-familiar-with-these-popular-open-source-databases/"
+[#]: author: "Jishnu Saurav Mittapalli https://www.opensourceforu.com/author/jishnu-saurav-mittapalli/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Are You Familiar with These Popular Open Source Databases?
+======
+*As data grows by leaps and bounds, its organisation becomes all-important. This article briefly describes the most popular databases being used by software development teams today.*
+
+In software systems, data is stored in an organised format and can be accessed electronically using a database. As data has become a very important asset today, it is very important for us to have a basic knowledge about the different databases in use today.
+The first database that we will be looking at is MySQL.
+
+### MySQL
+
+MySQL is one of the most widely used open source database management systems. Owned by Oracle Corporation, it works on most major operating systems like Windows, MacOS, Linux, etc. One big benefit of MySQL is that it works really well for small and large applications.
+
+#### Advantages
+
+* It works well with a variety of operating systems and programming languages like PHP, C, C++, Perl, etc.
+* It is open source and free.
+* It supports a huge size of data of about 8 million terabytes.
+* MySQL is customisable as it is open source.
+* It is also much faster than other databases.
+* To install and get started with MySQL on your Ubuntu based computer, use the command given below:
+
+```
+$sudo apt update
+$sudo apt install mysql-server
+$sudo systemctl start mysql.service
+```
+
+### MariaDB
+
+MariaDB is popular primarily because of its good performance and compatibility with MySQL. It supports relational databases. The developers of MySQL have built MariaDB and guarantee that it is going to stay open sourced. This popular database server is part of most major cloud offerings today, and gives great importance to stability and performance. MariaDB has recently added clustering techniques using the Galera cluster, and is also compatible with Oracle databases.
+
+#### Advantages
+
+* Easy installation
+* Supports operation on Big Data
+* High scalability
+* Easy import of data
+* To install and get started with MariaDB on your Ubuntu based computer, use the command given below:
+
+```
+$sudo apt update
+$sudo apt install mysql-server
+$sudo systemctl start mysql.service
+```
+
+### RethinkDB
+
+RethinkDB is an open source, free, distributed, and document based database server. This NoSQL database has been developed by Rethink, and can store JSON files with schemas that are dynamic. More importantly, real-time updates for query results can be pushed for applications to use. Since it is a distributed database, it is highly scalable. It has many automatic functions, making it a highly available database. As it is a popular database today, it is important that we learn how to use it.
+
+#### Advantages
+
+* This is basically an open source database that can be used for Web based applications.
+* It is easy to scale because it’s a distributed database.
+* It has many automatic functions with a high availability.
+* This NoSQL database is JSON dynamic document based.
+* The following commands can be helpful for using RethinkDB on your Ubuntu machine:
+
+```
+Get required packages source
+/etc/lsb-release && echo” deb https://download.rethinkdb.com/repository/ubuntu-$DISTRIB_CODENAME $DISTRIB_CODENAME main” | sudo tee /etc/apt/sources.list.d/rethinkdb.list
+
+Get required repositories
+$wget -qO- https://download.rethinkdb.com/repository/raw/pubkey.gpg | sudo apt-key add
+$sudo apt update
+$sudo apt-get install rethinkdb
+$sudo systemctl start rethinkdb
+```
+
+### OrientDB
+
+OrientDB is a NoSQL and Java based open source database management system. This multi-model database service system supports all sorts of data like documents, dictionaries, objects, and graphs. It stores the relationships in the form of a graph database.
+The following commands can be helpful for using OrientDB on your Ubuntu machine:
+
+```
+$sudo apt-get update
+$wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux
+$tar -zxvf orientdb-community-2.2.20.tar.gz
+$sudo mv ~/orientdb-community-2.2.20 /opt/orientdb
+```
+
+### CouchDB
+
+CouchDB is an important NoSQL based open source database server developed in Erlang. It uses many protocols and formats to transfer, process and share data. JSON files are used to store the data, MapReduce is used as the base and JavaScript is used as the querying language.
+
+#### Advantages
+
+* It can store any kind of data.
+* MapReduce helps in increasing its efficiency.
+* The overall structure is very simple.
+* Indexing and retrieval is fast.
+* The following commands can help you to use CouchDB on your Ubuntu machine:
+
+```
+$echo “deb https://apache.bintray.com/couchdb-deb focal main” >> /etc/apt/sources.list
+$sudo apt-get update
+$sudo apt install apache2 couchdb -y
+```
+
+### Firebird
+
+Firebird is an open source database management system that mainly works on relational databases. It is compatible with all operating systems like Linux, Windows and MacOS. It was originally forked from the Interbase repository, which was also an open source database.
+
+#### Advantages
+
+* The functionality of the database is not limited.
+* It is a very stable and powerful database.
+* The configuration and usage of the database is much simpler than other databases.
+* The following commands can help you use Firebird on your Ubuntu machine:
+
+```
+$sudo apt-get update
+$sudo apt-get install firebird2.5-superclassic
+```
+
+### Cassandra
+
+Cassandra is owned and developed by Apache. This highly scalable, distributed, high performance database can handle large amounts of data and works really well. As it is distributed among many servers, it has no single point of failure. It is basically a NoSQL database, which implies it is not a relational database.
+
+#### Advantages
+
+* High performance
+* High scalability
+* Peer-to-peer architecture is used instead of master slave architecture
+* The following commands can be helpful in using Firebird on your Ubuntu machine:
+
+```
+$curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
+$sudo apt-get update
+$sudo apt-get install cassandra
+$sudo systemctl enable cassandra
+$sudo systemctl start cassandra
+```
+
+### PostgreSQL
+
+Today PostgreSQL is one of the most popular open source relational database management systems. It is easily extensible and, at the same time, is compliant with SQL. More than 30 years of active development has gone into this DBMS.
+
+### Advantages
+
+* In Postgres we can store a wider variety of data compared to MySQL.
+* It is largely compliant with the SQL standard.
+* It is also highly expandable.
+
+The following commands can be helpful for using PostgreSQL on your Ubuntu machine:
+
+```
+$sudo apt-get update
+$sudo apt apt install postgresql postgresql-contrib
+```
+
+### CockroachDB
+
+CockroachDB is a database built for reliability, i.e., it can survive any kind of adverse situation (just like cockroaches can survive any disastrous situation and multiply). This database can handle large amounts of data. Multicluster databases can also be built.
+
+### Advantages
+
+* Deployment is easy
+* High consistency
+* Transactions are distributed
+* Availability is high
+* It is also compatible with SQL
+
+### Redis
+
+Redis is an open source, key value based data storage database. This NoSQL database is really handy because it uses different keys of various types.
+
+We’ve gone through the most well-known and popular open source database management systems that are being used to store and manage data. Learning about these different databases can be a lot of fun. Try the different options, and use the one that fits your requirements the best. Also, do check out the official documentation of these databases.
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/09/are-you-familiar-with-these-popular-open-source-databases/
+
+作者:[Jishnu Saurav Mittapalli][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/jishnu-saurav-mittapalli/
+[b]: https://github.com/lkxed
diff --git a/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md b/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md
new file mode 100644
index 0000000000..30a5ed0b8f
--- /dev/null
+++ b/sources/tech/20220901 How To Convert Arch Linux Packages To AppImage Using Arch2appimage.md
@@ -0,0 +1,268 @@
+[#]: subject: "How To Convert Arch Linux Packages To AppImage Using Arch2appimage"
+[#]: via: "https://ostechnix.com/convert-arch-linux-packages-to-appimage/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How To Convert Arch Linux Packages To AppImage Using Arch2appimage
+======
+Arch2appimage - A Python script to convert any arch linux package to an AppImage
+
+We already have discussed how to convert a DEB package to an Arch Linux package format with **[Debtap][1]** utility. We also have seen how to use **[Alien][2]** tool to convert Linux packages to different formats. Today, we will be discussing yet another Linux package converter tool named **Arch2appimage**. In this guide, we will see a brief introduction to Arch2appimage, and how to install Arch2appimage in Linux and how to **convert Arch Linux packages to AppImage** format with Arch2appimage application.
+
+### What Is Arch2appimage?
+
+**Arch2appimage** is a Python script to convert any Arch linux package (official/AUR) to an AppImage format. Arch2appimage downloads the AUR source code, compiles it and finally converts the package to an AppImage executable file.
+
+Arch2appimage packages the given package to AppImage format including all necessary dependencies. It includes not only the dependencies, but also the dependencies to the dependencies for **better compatibility**.
+
+Why would I convert an Arch linux package into appimage format? You might winder. AUR (Arch User Repository) is an unofficial, community-driven, and largest software repository that hosts user-created Arch Linux packages. AUR has every kind of packages in it. You may find an interesting package that is only available in AUR and want to use it on a different Linux platform, say Fedora. This is where Arch2Appimage utility comes in help.
+
+Using Arch2Appimage script, you can easily convert an Arch Linux package file to the AppImage format without much hassle. It is quite helpful to pack one package and run in another distribution, for example Fedora, Debian, openSUSE or any Linux distribution that supports AppImage format..
+
+As you may already, AppImage is one of the popular universal package format. Unlike the platform-specific package formats like `.pkg`, `.deb`, `.rpm` etc., an AppImage file is completely portable and AppImages can run on virtually any Linux system.
+
+Please note that Arch2appimage needs an Arch Linux and its variants like EndeavourOS or Manjaro Linux. Because it uses **[Yay][3]** under the hood to download the packages. However, the developer says you could modify the script to use your compiler as long as dependencies are met.
+
+Arch2appimage is written in **Python** and the source code is freely available in GitHub.
+
+### Install Arch2appimage In Arch Linux
+
+To be able to run Arch2appimage in your Arch Linux system, make sure you have installed **Python 3** and **[Pip][4]** package manager to install the dependencies.
+
+Git clone the Arch2appimage repository:
+
+```
+$ git clone https://github.com/redicculus/arch2appimage.git
+```
+
+This will cone the contents of Arch2appimage repository in a local folder called **arch2appimage**. Cd into the arch2appimage directory:
+
+```
+$ cd arch2appimage
+```
+
+And then install Arch2appimage using command:
+
+```
+$ pip3 install -r requirements.txt
+```
+
+This should be enough to run Arch2appimage on your system. It is time to pack your favorite Arch Linux packages to AppImage format.
+
+### Convert Arch Linux Packages To AppImage Format Using Arch2appimage
+
+Launch Arch2appimage script using command:
+
+```
+$ python3 arch2appimage.py
+```
+
+You will be asked a series of questions. Read the questions carefully and answer them accordingly.
+
+![Convert Arch Linux Packages To AppImage Format][5]
+
+First, enter the name of the package that you want to convert into AppImage format. For demonstration purpose, I am going to package **"Gedit"** application. The source code of "Gedit" package will be downloaded from AUR.
+
+```
+Convert any Arch linux package (official/AUR) to AppImage!!
+Loading Chaotic AUR package list...
+
+Enter the name of the package (leave empty to quit)
+[?] >>: gedit
+Downloading gedit...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB • 1.4 MB/s • 0:00:00
+```
+
+Choose an icon to be used for your application (i.e. gedit). Arch2appimage will give two or more choices. You can choose a suitable icon from the list.
+
+```
+Please select the icon file to be used
+[?] >>: AppDir/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg
+ > AppDir/usr/share/icons/hicolor/scalable/apps/org.gnome.gedit.svg
+ AppDir/usr/share/icons/hicolor/symbolic/apps/org.gnome.gedit-symbolic.svg
+```
+
+Arch2appimage utility will show you the list of packages to be downloaded. If you want to add additional packages, simply enter its name, else press ENTER to continue.
+
+```
+These packages (and their dependencies) will be downloaded:
+1. gtksourceview4
+2. gsettings-desktop-schemas
+3. libpeas
+4. gspell
+5. python-gobject
+
+If you would like to add additional packages please enter them below (space seperated). Leave empty to start downloading
+[?] >>:
+Downloading gtksourceview4...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB • 841.4 kB/s • 0:00:00
+Downloading gsettings-desktop-schemas...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 684.8/684.8 kB • 762.1 kB/s • 0:00:00
+Downloading libpeas...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.0/144.0 kB • 366.0 kB/s • 0:00:00
+Downloading gspell...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 125.9/125.9 kB • 325.7 kB/s • 0:00:00
+Downloading python-gobject...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 260.1/260.1 kB • 420.5 kB/s • 0:00:00
+```
+
+You will be asked to download latest version of **libunionpreload.so** package. You can choose either "yes" or "No". If you choose Yes, a latest version of the above package will be downloaded or the existing old version will be used.
+
+```
+Would you like to download the latest libunionpreload.so? If you select No the existing one will be used.
+[?] >>: Yes
+ > Yes
+ No
+
+Downloading libunionpreload.so...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 22.6/22.6 kB • ? • 0:00:00
+```
+
+Now the package is ready to be converted to AppImage format. The package source code and its dependencies will be downloaded and kept in **arch2appimage/AppDir** directory.
+
+You can choose the option either "Build the AppImage" to convert the given package to AppImage or choose "Add more packages" option to add other packages. I choose **"Build the AppImage"** option.
+
+```
+AppDir is ready. Please take a look into the directory to ensure everything is OK.
+Exec the AppRun (command './AppRun') to test if everything works.
+
+What would you like to do next?
+[?] >>: Build the AppImage
+ > Build the AppImage
+ Add more packages
+```
+
+Next, choose "Yes" to download the latest AppImageTool (Appimagetool is a tool that lets you generate AppImage files.) or "No" to use the existing one. I go with Yes.
+
+Congratulations! The Gedit package is converted into AppImage format and saved in `arch2appimage/out` directory.
+
+```
+Would you like to download the latest AppImageTool? If you select No the existing one will be used.
+[?] >>: Yes
+ > Yes
+ No
+
+Downloading AppImageTool...
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB • 3.7 MB/s • 0:00:00
+Running AppImageTool...
+
+appimagetool, continuous build (commit 4bcfe23), build built on 2022-08-17 01:03:50 UTC
+Using architecture x86_64
+/home/ostechnix/arch2appimage/AppDir should be packaged as out/gedit-x86_64.AppImage
+Deleting pre-existing .DirIcon
+Creating .DirIcon symlink based on information from desktop file
+Generating squashfs...
+Parallel mksquashfs: Using 2 processors
+Creating 4.0 filesystem on out/gedit-x86_64.AppImage, block size 131072.
+[====================================================================================================================/] 2371/2371 100%
+
+Exportable Squashfs 4.0 filesystem, gzip compressed, data block size 131072
+ compressed data, compressed metadata, compressed fragments,
+ compressed xattrs, compressed ids
+ duplicates are removed
+Filesystem size 7284.77 Kbytes (7.11 Mbytes)
+ 24.68% of uncompressed filesystem size (29513.93 Kbytes)
+Inode table size 26215 bytes (25.60 Kbytes)
+ 27.56% of uncompressed inode table size (95103 bytes)
+Directory table size 22102 bytes (21.58 Kbytes)
+ 27.04% of uncompressed directory table size (81735 bytes)
+Number of duplicate files found 49
+Number of inodes 2848
+Number of files 2338
+Number of fragments 228
+Number of symbolic links 105
+Number of device nodes 0
+Number of fifo nodes 0
+Number of socket nodes 0
+Number of directories 405
+Number of ids (unique uids + gids) 1
+Number of uids 1
+ root (0)
+Number of gids 1
+ root (0)
+Embedding ELF...
+Marking the AppImage as executable...
+Embedding MD5 digest
+Success
+
+Please consider submitting your AppImage to AppImageHub, the crowd-sourced
+central directory of available AppImages, by opening a pull request
+at https://github.com/AppImage/appimage.github.io
+```
+
+Next, you will be asked if you want to rebuild the package again. Choosing "Yes" to build the gedit application again and choosing "No" will exit the process. I don't want to restart the building process, so I choose No.
+
+```
+Would you like to re-build it?
+[?] >>: No
+ Yes
+ > No
+```
+
+Finally choose "Yes" to remove the AppDir and close Archappimage utility.
+
+```
+Would you like to remove AppDir/
+[?] >>: Yes
+ > Yes
+ No
+
+Exiting...
+```
+
+That's it. The gedit package is converted to AppImage format and the resulting file is saved in **arch2appimage/out** directory.
+
+```
+[ostechnix@manjaro arch2appimage]$ ls out/
+gedit-x86_64.AppImage
+```
+
+You can now run the AppImage file using command:
+
+```
+[ostechnix@manjaro arch2appimage]$ ./out/gedit-x86_64.AppImage
+```
+
+You can also double click the AppImage file to launch it from your graphical file manager application.
+
+![Launch Gedit Application AppImage][6]
+
+The AppImage file is packaged with all necessary dependencies. So you can run it on any Linux distribution without installing it or any other additional application.
+
+If you want to integrate the Appimage files to your application launcher, refer the following link.
+
+* [Integrate AppImages To Application Menu Using AppImageLauncher][7]
+
+### Conclusion
+
+Arch2appimage is very new project. So you should expect bugs. I tested Arch2appimage only for a brief time in my Manjaro Linux desktop. It works fine with Gedit application. I tested a few other applications such as pacman and yt-dlp. But they didn't work. Arch2appimage kept asking me to enter the path to the `.desktop` file. I don't know where it is. I guess all issues will be sorted out in the stable version.
+
+**Resource:**
+
+* [Arch2appimage GitHub Repository][8]
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/convert-arch-linux-packages-to-appimage/
+
+作者:[sk][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://ostechnix.com/author/sk/
+[b]: https://github.com/lkxed
+[1]: https://ostechnix.com/convert-deb-packages-arch-linux-packages/
+[2]: https://ostechnix.com/convert-linux-packages-alien/
+[3]: https://ostechnix.com/yay-found-yet-another-reliable-aur-helper/
+[4]: https://ostechnix.com/manage-python-packages-using-pip/
+[5]: https://ostechnix.com/wp-content/uploads/2022/09/Convert-Arch-Linux-Packages-To-AppImage-Format.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/09/Launch-Gedit-Application-AppImage.png
+[7]: https://ostechnix.com/integrate-appimages-to-application-menu-using-appimagelauncher/
+[8]: https://github.com/redicculus/arch2appimage
diff --git a/sources/tech/20220901 How Tracee solves the lack of BTF information.md b/sources/tech/20220901 How Tracee solves the lack of BTF information.md
new file mode 100644
index 0000000000..6fa634f91b
--- /dev/null
+++ b/sources/tech/20220901 How Tracee solves the lack of BTF information.md
@@ -0,0 +1,385 @@
+[#]: subject: "How Tracee solves the lack of BTF information"
+[#]: via: "https://opensource.com/article/22/9/ebpf-monitor-traffic-tracee"
+[#]: author: "Alessio Greggi https://opensource.com/users/alegrey91"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How Tracee solves the lack of BTF information
+======
+By tracing processes using Linux eBPF (Berkeley packet filter) technology, Tracee can correlate collected information and identify malicious behavioral patterns.
+
+![Mesh networking connected dots][1]
+
+Tracee is a project by Aqua Security for tracing processes at runtime. By tracing processes using [Linux eBPF][2] (Berkeley packet filter) technology, Tracee can correlate collected information and identify malicious behavioral patterns.
+
+### eBPF
+
+BPF is a system to help in network traffic analysis. The later eBPF system extends classic BPF to improve the programmability of the Linux kernel in different areas, such as network filtering, function hooking, and so on. Thanks to its register-based virtual machine, which is embedded in the kernel, eBPF can execute programs written with a restricted C language without needing to recompile the kernel or load a module. Through eBPF, you can run your program in kernel context and hook various events in the kernel path. To do so, eBPF needs to have deep knowledge about data structures that the kernel is using.
+
+### eBPF CO-RE
+
+eBPF interfaces with Linux kernel ABI (application binary interface). Access to kernel structures from eBPF VM depends on the specific Linux kernel release.
+
+eBPF CO-RE (compile once, run everywhere) is the ability to write an eBPF program that will successfully compile, pass kernel verification, and work correctly across different kernel releases without the need to recompile it for each particular kernel.
+
+#### Ingredients
+
+CO-RE needs a precise synergism of these components:
+
+* BTF (BPF type format) information: Allows the capture of crucial pieces of information about kernel and BPF program types and code, enabling all the other parts of BPF CO-RE puzzle.
+* Compiler (Clang): Records relocation information. For example, if you were going to access the task_struct->pid field, Clang would record that it was exactly a field named `pid` of type `pid_t` residing within a struct `task_struct`. This system ensures that even if a target kernel has a `task_struct` layout in which the `pid` field is moved to a different offset within a `task_struct` structure, you'll still be able to find it just by its name and type information.
+* BPF loader (libbpf): Ties BTFs from kernel and BPF programs together to adjust compiled BPF code to specific kernels on target hosts.
+
+So how do these ingredients mix together for a successful recipe?
+
+#### Development/build
+
+To make the code portable, the following tricks come into play:
+
+* CO-RE helpers/macros
+* BTF-defined maps
+* #include "vmlinux.h" (the header file containing all the kernel types)
+
+#### Run
+
+The kernel must be built with the `CONFIG_DEBUG_INFO_BTF=y` option in order to provide the `/sys/kernel/btf/vmlinux` interface that exposes BTF-formatted kernel types. This allows libbpf to resolve and match all the types and fields and update necessary offsets and other relocatable data to make sure that the eBPF program is working properly for the specific kernel on the target host.
+
+### The problem
+
+The problem arises when an eBPF program is written to be portable but the target kernel doesn't expose the `/sys/kernel/btf/vmlinux` interface. For more information, [refer to this list][3] of distributions that support BTF.
+
+To load an run an eBPF object in different kernels, the libbpf loader uses the BTF information to calculate field offset relocations. Without the BTF interface, the loader doesn't have the necessary information to adjust the previously recorded types that the program tries to access after processing the object for the running kernel.
+
+Is it possible to avoid this problem?
+
+#### Use cases
+
+This article explores [Tracee][4], an Aqua Security open source project, that provides a possible solution.
+
+Tracee provides different running modes to adapt itself to the environment conditions. It supports two eBPF integration modes:
+
+* CO-RE: A portable mode, which seamlessly runs on all supported environments
+* Non CO-RE: A kernel-specific mode, requiring the eBPF object to be built for the target host
+
+Both of them are implemented in the eBPF C code (`pkg/ebpf/c/tracee.bpf.c` ), where the pre-processing conditional directive takes place. This allows you to compile CO-RE the eBPF binary, passing the `-DCORE` argument at build time with Clang (take a look at the `bpf-core` Make target).
+
+In this article, we're going to cover a case of the portable mode when the eBPF binary is built CO-RE, but the target kernel has not been built with `CONFIG_DEBUG_INFO_BTF=y` option.
+
+To better understand this scenario, it helps to understand what's possible when the kernel doesn't expose BTF-formatted types on sysfs.
+
+#### No BTF support
+
+If you want to run Tracee on a host without BTF support, there are two options:
+
+1. [Build and install][5] the eBPF object for your kernel. This depends on Clang and on the availability of a kernel version-specific kernel-headers package.
+2. Download the BTF files from [BTFHUB][6] for your kernel release and provide it to the `tracee-ebpf`'s loader through the `TRACEE_BTF_FILE` environment variable.
+
+The first option is not a CO-RE solution. It compiles the eBPF binary, including a long list of kernel headers. That means you need kernel development packages installed on the target system. Also, this solution needs Clang installed on your target machine. The Clang compiler can be resource-heavy, so compiling eBPF code can use a significant amount of resources, potentially affecting a carefully balanced production workload. That said, it's a good practice to avoid the presence of a compiler in your production environment. This could lead to attackers successfully building an exploit and performing a privilege escalation.
+
+The second option is a CO-RE solution. The problem here is that you have to provide the BTF files in your system in order to make Tracee work. The entire archive is nearly 1.3 GB. Of course you can provide just the right BTF file for your kernel release, but that can be difficult when dealing with different kernel releases.
+
+In the end, these possible solutions can also introduce problems, and that's where Tracee works its magic.
+
+### A portable solution
+
+With a non-trivial building procedure, the Tracee project compiles a binary to be CO-RE even if the target environment doesn't provide BTF information. This is possible with the `embed` Go package that provides, at runtime, access to files embedded in the program. During the build, the continuous integration (CI) pipeline downloads, extracts, minimizes, and then embeds BTF files along with the eBPF object inside the `tracee-ebpf` resultant binary.
+
+Tracee can extract the right BTF file and provide it to libbpf, which in turn loads the eBPF program to run across different kernels. But how can Tracee embed all these BTF files downloaded from BTFHub without weighing too much in the end?
+
+It uses a feature recently introduced in bpftool by the Kinvolk team called [BTFGen][7], available using the `bpftool gen min_core_btf` subcommand. Given an eBPF program, BTFGen generates reduced BTF files, collecting just what the eBPF code needs for its run. This reduction allows Tracee to embed all these files that are now lighter (just a few kilobytes) and support kernels that don't have the `/sys/kernel/btf/vmlinux` interface exposed.
+
+#### Tracee build
+
+Here's the execution flow of the Tracee build:
+
+![Detailed flowchart of tracee build from tracee/3rdparty/btfhub.sh to tracee-ebpf bin compiled][8]
+
+Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0)
+
+First, you must build the `tracee-ebpf` binary, the Go program that loads the eBPF object. The Makefile provides the command `make bpf-core` to build the `tracee.bpf.core.o` object with BTF records.
+
+Then `STATIC=1 BTFHUB=1 make all` builds `tracee-ebpf`, which has `btfhub` targeted as a dependency. This last target runs the script `3rdparty/btfhub.sh`, which is responsible for downloading the BTFHub repositories:
+
+* btfhub
+* btfhub-archive
+
+Once downloaded and placed in the `3rdparty` directory, the procedure executes the downloaded script `3rdparty/btfhub/tools/btfgen.sh`. This script generates reduced BTF files, tailored for the `tracee.bpf.core.o` eBPF binary.
+
+The script collects `*.tar.xz` files from `3rdparty/btfhub-archive/` to uncompress them and finally process them with bpftool, using the following command:
+
+```
+for file in $(find ./archive/${dir} -name *.tar.xz); do
+ dir=$(dirname $file)
+ base=$(basename $file)
+ extracted=$(tar xvfJ $dir/$base)
+ bpftool gen min_core_btf ${extracted} dist/btfhub/${extracted} tracee.bpf.core.o
+done
+```
+
+This code has been simplified to make it easier to understand the scenario.
+
+Now, you have all the ingredients available for the recipe:
+
+* tracee.bpf.core.o eBPF object
+* BTF reduced files (for all kernel releases)
+* tracee-ebpf Go source code
+
+At this point, `go build` is invoked to do its job. Inside the `embedded-ebpf.go` file, you can find the following code:
+
+```
+//go:embed "dist/tracee.bpf.core.o"
+//go:embed "dist/btfhub/*"
+```
+
+Here, the Go compiler is instructed to embed the eBPF CO-RE object with all the BTF-reduced files inside itself. Once compiled, these files will be available using the `embed.FS` file system. To have an idea of the current situation, you can imagine the binary with a file system structured like this:
+
+```
+dist
+├── btfhub
+│ ├── 4.19.0-17-amd64.btf
+│ ├── 4.19.0-17-cloud-amd64.btf
+│ ├── 4.19.0-17-rt-amd64.btf
+│ ├── 4.19.0-18-amd64.btf
+│ ├── 4.19.0-18-cloud-amd64.btf
+│ ├── 4.19.0-18-rt-amd64.btf
+│ ├── 4.19.0-20-amd64.btf
+│ ├── 4.19.0-20-cloud-amd64.btf
+│ ├── 4.19.0-20-rt-amd64.btf
+│ └── ...
+└── tracee.bpf.core.o
+```
+
+The Go binary is ready. Now to try it out!
+
+#### Tracee run
+
+Here's the execution flow of the Tracee run:
+
+![Flow chart of tracee run assuming BTF info is not available in the kernel, which leads to "copy btf kernel related file" and "load btf file using libbpf under the hood"][9]
+
+Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0)
+
+As the flow chart illustrates, one of the very first phases of `tracee-ebpf` execution is to discover the environment where it is running. The first condition is an abstraction of the `cmd/tracee-ebpf/initialize/bpfobject.go` file, specifically where the `BpfObject()` function takes place. The program performs some checks to understand the environment and make decisions based on it:
+
+1. BPF file given and BTF (vmlinux or env) exists: always load BPF as CO-RE
+2. BPF file given but no BTF exists: it is a non CO-RE BPF
+3. No BPF file given and BTF (vmlinux or env) exists: load embedded BPF as CO-RE
+4. No BPF file given and no BTF available: check embedded BTF files
+5. No BPF file given and no BTF available and no embedded BTF: non CO-RE BPF
+
+Here's the code extract:
+
+```
+func BpfObject(config *tracee.Config, kConfig *helpers.KernelConfig, OSInfo *helpers.OSInfo) error {
+ ...
+ bpfFilePath, err := checkEnvPath("TRACEE_BPF_FILE")
+ ...
+ btfFilePath, err := checkEnvPath("TRACEE_BTF_FILE")
+ ...
+ // Decision ordering:
+ // (1) BPF file given & BTF (vmlinux or env) exists: always load BPF as CO-RE
+ ...
+ // (2) BPF file given & if no BTF exists: it is a non CO-RE BPF
+ ...
+ // (3) no BPF file given & BTF (vmlinux or env) exists: load embedded BPF as CO-RE
+ ...
+ // (4) no BPF file given & no BTF available: check embedded BTF files
+ unpackBTFFile = filepath.Join(traceeInstallPath, "/tracee.btf")
+ err = unpackBTFHub(unpackBTFFile, OSInfo)
+
+ if err == nil {
+ if debug {
+ fmt.Printf("BTF: using BTF file from embedded btfhub: %v\n", unpackBTFFile)
+ }
+ config.BTFObjPath = unpackBTFFile
+ bpfFilePath = "embedded-core"
+ bpfBytes, err = unpackCOREBinary()
+ if err != nil {
+ return fmt.Errorf("could not unpack embedded CO-RE eBPF object: %v", err)
+ }
+
+ goto out
+ }
+ // (5) no BPF file given & no BTF available & no embedded BTF: non CO-RE BPF
+ ...
+out:
+ config.KernelConfig = kConfig
+ config.BPFObjPath = bpfFilePath
+ config.BPFObjBytes = bpfBytes
+
+ return nil
+}
+```
+
+This analysis focuses on the fourth case, when eBPF program and BTF files are not provided to `tracee-ebpf`. At that point, `tracee-ebpf` tries to load the eBPF program extracting all the necessary files from its embed file system. `tracee-ebpf` is able to provide the files that it needs to run, even in a hostile environment. It is a sort of high-resilience mode used when none of the conditions have been satisfied.
+
+As you see, `BpfObject()` calls these functions in the fourth case branch:
+
+* unpackBTFHub()
+* unpackCOREBinary()
+
+They extract respectively:
+
+* The BTF file for the underlying kernel
+* The BPF CO-RE binary
+
+##### Unpack the BTFHub
+
+Now take a look starting from `unpackBTFHub()` :
+
+```
+func unpackBTFHub(outFilePath string, OSInfo *helpers.OSInfo) error {
+ var btfFilePath string
+
+ osId := OSInfo.GetOSReleaseFieldValue(helpers.OS_ID)
+ versionId := strings.Replace(OSInfo.GetOSReleaseFieldValue(helpers.OS_VERSION_ID), "\"", "", -1)
+ kernelRelease := OSInfo.GetOSReleaseFieldValue(helpers.OS_KERNEL_RELEASE)
+ arch := OSInfo.GetOSReleaseFieldValue(helpers.OS_ARCH)
+
+ if err := os.MkdirAll(filepath.Dir(outFilePath), 0755); err != nil {
+ return fmt.Errorf("could not create temp dir: %s", err.Error())
+ }
+
+ btfFilePath = fmt.Sprintf("dist/btfhub/%s/%s/%s/%s.btf", osId, versionId, arch, kernelRelease)
+ btfFile, err := embed.BPFBundleInjected.Open(btfFilePath)
+ if err != nil {
+ return fmt.Errorf("error opening embedded btfhub file: %s", err.Error())
+ }
+ defer btfFile.Close()
+
+ outFile, err := os.Create(outFilePath)
+ if err != nil {
+ return fmt.Errorf("could not create btf file: %s", err.Error())
+ }
+ defer outFile.Close()
+
+ if _, err := io.Copy(outFile, btfFile); err != nil {
+ return fmt.Errorf("error copying embedded btfhub file: %s", err.Error())
+
+ }
+
+ return nil
+}
+```
+
+The function has a first phase where it collects information about the running kernel (`osId`, `versionId`, `kernelRelease`, etc). Then, it creates the directory that is going to host the BTF file (`/tmp/tracee` by default). It retrieves the right BTF file from the `embed` file system:
+
+```
+btfFile, err := embed.BPFBundleInjected.Open(btfFilePath)
+```
+
+Finally, it creates and fills the file.
+
+##### Unpack the CORE Binary
+
+The `unpackCOREBinary()` function does a similar thing:
+
+```
+func unpackCOREBinary() ([]byte, error) {
+ b, err := embed.BPFBundleInjected.ReadFile("dist/tracee.bpf.core.o")
+ if err != nil {
+ return nil, err
+ }
+
+ if debug.Enabled() {
+ fmt.Println("unpacked CO:RE bpf object file into memory")
+ }
+
+ return b, nil
+}
+```
+
+Once the main function `BpfObject()` returns, `tracee-ebpf` is ready to load the eBPF binary through `libbpfgo`. This is done in the `initBPF()` function, inside `pkg/ebpf/tracee.go`. Here's the configuration of the program execution:
+
+```
+func (t *Tracee) initBPF() error {
+ ...
+ newModuleArgs := bpf.NewModuleArgs{
+ KConfigFilePath: t.config.KernelConfig.GetKernelConfigFilePath(),
+ BTFObjPath: t.config.BTFObjPath,
+ BPFObjBuff: t.config.BPFObjBytes,
+ BPFObjName: t.config.BPFObjPath,
+ }
+
+ // Open the eBPF object file (create a new module)
+
+ t.bpfModule, err = bpf.NewModuleFromBufferArgs(newModuleArgs)
+ if err != nil {
+ return err
+ }
+ ...
+}
+```
+
+In this piece of code we are initializing the eBPF args filling the libbfgo structure `NewModuleArgs{}`. Through its `BTFObjPath` argument, we are able to instruct libbpf to use the BTF file, previously extracted by the `BpfObject()` function.
+
+At this point, `tracee-ebpf` is ready to run properly!
+
+![Illustration of the kernel][10]
+
+Image by: (Alessio Greggi and Massimiliano Giovagnoli, CC BY-SA 4.0)
+
+##### eBPF module initialization
+
+Next, during the execution of the `Tracee.Init()` function, the configured arguments will be used to open the eBPF object file:
+
+```
+Tracee.bpfModule = libbpfgo.NewModuleFromBufferArgs(newModuleArgs)
+```
+
+Initialize the probes:
+
+```
+t.probes, err = probes.Init(t.bpfModule, netEnabled)
+```
+
+Load the eBPF object into kernel:
+
+```
+err = t.bpfModule.BPFLoadObject()
+```
+
+Populate eBPF maps with initial data:
+
+```
+err = t.populateBPFMaps()
+```
+
+And finally, attach eBPF programs to selected events' probes:
+
+```
+err = t.attachProbes()
+```
+
+### Conclusion
+
+Just as eBPF simplified the way to program the kernel, CO-RE is tackling another barrier. But leveraging such features has some requirements. Fortunately, with Tracee, the Aqua Security team found a way to take advantage of portability in case those requirements can't be satisfied.
+
+At the same time, we're sure that this is only the beginning of a continuously evolving subsystem that will find increasing support over and over, even in different operating systems.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/ebpf-monitor-traffic-tracee
+
+作者:[Alessio Greggi][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://opensource.com/users/alegrey91
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/mesh_networking_dots_connected.png
+[2]: https://opensource.com/article/22/8/ebpf-network-observability-cloud
+[3]: https://github.com/aquasecurity/btfhub/blob/main/docs/supported-distros.md
+[4]: https://github.com/aquasecurity/tracee
+[5]: https://aquasecurity.github.io/tracee/dev/building/nocore-ebpf/#install-the-non-co-re-ebpf-object
+[6]: https://github.com/aquasecurity/btfhub-archive
+[7]: https://kinvolk.io/blog/2022/03/btfgen-one-step-closer-to-truly-portable-ebpf-programs/
+[8]: https://opensource.com/sites/default/files/2022-08/tracee%20build.png
+[9]: https://opensource.com/sites/default/files/2022-08/tracee%20run.png
+[10]: https://opensource.com/sites/default/files/2022-08/tracee%20bpf.png
diff --git a/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md b/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md
new file mode 100644
index 0000000000..3268a7af74
--- /dev/null
+++ b/sources/tech/20220901 Micro- Making File Editing Easier in Linux Terminal.md
@@ -0,0 +1,130 @@
+[#]: subject: "Micro: Making File Editing Easier in Linux Terminal"
+[#]: via: "https://itsfoss.com/micro-editor-linux/"
+[#]: author: "sreenath https://itsfoss.com/author/sreenath/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Micro: Making File Editing Easier in Linux Terminal
+======
+
+While [modern open source code editors][1] have taken the programming world by storm, Linux command line is still ruled by a selected set of text editors. Popular [command line editors][2] like [Vim][3] and Emacs are also infamous for their weird keyboard shortcuts.
+
+There are several jokes about those weird keyboard shortcuts in the programming world. [Exiting Vim][4] is perhaps the most common of them all. Here’s an example.
+
+![vim shortcut linux humor][5]
+
+**[Micro is a modern terminal-based text editor][6]** that attempts to take the pain of keyboard shortcuts and provide popular shortcuts as well as mouse supports.
+
+Micro is made with [the GO Programming Language][7]. It’s actively being developed by [Zachary Yedidia][8] and many other open source enthusiasts are contributing to it.
+
+According to [Micro’s GitHub project][9] documentation,
+
+> Micro aims to be easy to use and intuitive, while also taking advantage of the full capabilities of modern terminals.
+
+And that’s true. You’re probably wondering what’s special about this one, there are plenty of other terminal-based text editors out there. The answer is that Micro is so easy to use that the learning curve is almost flat, you don’t need to learn anything new, and it has some very interesting features.
+
+### Features
+
+![Micro editor interface][10]
+
+Some of the main highlights of the Micro editor are:
+
+* Support for universal keyboard shortcuts (Ctrl-S, Ctrl-C, Ctrl-V, Ctrl-Z etc.)
+* Syntax highlighting ( for over 130 languages)
+* Color scheme and True Color support
+* Search and Replace feature
+* Common editor features such as Undo and Redo, Unicode support, Line numbering, Soft wrapping etc.
+* Copy and Paste from the system clipboard
+* Configurable
+* Simple auto-completion.
+* Splits and tabs
+* Good Mouse Support such as drag to select, double click to select a word, triple-click to select by line etc.
+* Plug-in support and a built-in plugin manager to automatically install, remove, and update plugins.
+* Macros
+* Cross Platform
+
+### Installation
+
+Micro is available in the repositories of all major distributions. In Ubuntu, you can install it with:
+
+```
+sudo apt install micro
+```
+
+This will install `xclip` as a dependency for clipboard functionality.
+
+Additionally, you can download the pre-built binary from the link below:
+
+[Download Micro][11]
+
+Once you download it, extract the file and you’ll find the binary file inside it. Copy this binary file to your /bin directory. And then, you can run it in the terminal using the command “micro”.
+
+For clipboard support, you need `xclip` and `xsel` packages. In Ubuntu and other Ubuntu based Linux distributions, you can use the following command to install it:
+
+```
+sudo apt install xclip
+```
+
+For detailed information on configuring Micro, [see here][12].
+
+![Micro Terminal Text Editor split view with multiple files opened][13]
+
+### Essential commands and shortcuts
+
+| Function | Command |
+| :- | :- |
+| Open a File in Micro | micro [FILENAME] |
+| To List Available Plug-Ins | micro -plugin available |
+| To Install a Plug-In | micro -plugin install [PLUGIN] |
+| To Remove a Plug-In | micro -plugin remove [PLUGIN] |
+| To Execute a Command inside Micro | Ctrl + E |
+| To Split open a file Horizontally through command | hsplit [FILENAME] |
+| To Split open a file Vertically through command | vsplit [FILENAME] |
+| To get Help inside Micro Editor | Ctrl + G |
+| To Save a File | Ctrl + S |
+| To Copy Text Inside Micro | Ctrl + C |
+| To Paste Text Inside Micro | Ctrl + V |
+| To Close Micro Editor | Ctrl + Q |
+| To Move Through Available Commands | TAB (Shift + Tab for reverse direction) |
+
+[Download Micro Editor Quick Cheat Sheet][14]
+
+[Download][15]
+
+### Thoughts about Micro?
+
+I think that Micro’s a pretty good tool for text editing. Though it’s not feature-rich like Vim or other mature text editors, it can easily replace tools like Nano for occasional file editing in the terminal.
+
+If you often have to edit files in the terminal but you don’t feel too comfortable with Vim, give it a try and tell us about your experience.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/micro-editor-linux/
+
+作者:[sreenath][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://itsfoss.com/author/sreenath/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/best-modern-open-source-code-editors-for-linux/
+[2]: https://itsfoss.com/command-line-text-editors-linux/
+[3]: https://www.vim.org/
+[4]: https://itsfoss.com/how-to-exit-vim/
+[5]: https://itsfoss.com/wp-content/uploads/2022/08/vim-shortcut-linux-humor.jpeg
+[6]: https://micro-editor.github.io/
+[7]: https://golang.org/
+[8]: https://github.com/zyedidia
+[9]: https://github.com/zyedidia/micro
+[10]: https://itsfoss.com/wp-content/uploads/2022/08/emmabuntus.jpg
+[11]: https://github.com/zyedidia/micro/releases
+[12]: https://github.com/zyedidia/micro#configuration
+[13]: https://itsfoss.com/wp-content/uploads/2022/08/micro-terminal-text-editor-split-view-with-multiple-files-opened.png
+[14]: https://itsfoss.com/wp-content/uploads/2022/08/micro-command-line-text-editor-cheat-sheet.pdf
+[15]: https://itsfoss.com/wp-content/uploads/2022/08/micro-command-line-text-editor-cheat-sheet.pdf
diff --git a/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md b/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md
new file mode 100644
index 0000000000..a9e8017b3c
--- /dev/null
+++ b/sources/tech/20220902 How to display the presence and absence of nth-highest group-wise values in SQL.md
@@ -0,0 +1,307 @@
+[#]: subject: "How to display the presence and absence of nth-highest group-wise values in SQL"
+[#]: via: "https://opensource.com/article/22/9/nth-highest-values-sql"
+[#]: author: "Mohammed Kamil Khan https://opensource.com/users/kamilk98"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to display the presence and absence of nth-highest group-wise values in SQL
+======
+A step-by-step breakdown of the query.
+
+![Digital creative of a browser on the internet][1]
+
+While skimming through SQL to prepare for interviews, I often come across this question: Find the employee with the highest or (second-highest) salary by joining a table containing employee information with another that contains department information. This raises a further question: What about finding the employee who earns the nth-highest salary department-wide?
+
+Now I want to pose a more complex scenario: What will happen when a department doesn't have an employee earning the nth-highest salary? For example, a department with only two employees will not have an employee earning the third-highest salary.
+
+Here's my approach to this question:
+
+### Create department and employee tables
+
+I create a table that includes fields such as `dept_id` and `dept_name`.
+
+```
+CREATE TABLE department (
+ dept_id INT,
+ dept_name VARCHAR(60)
+);
+```
+
+Now I insert various departments into the new table.
+
+```
+INSERT INTO department (dept_id,dept_name)
+VALUES (780,'HR');
+INSERT INTO department (dept_id,dept_name)
+VALUES (781,'Marketing');
+INSERT INTO department (dept_id,dept_name)
+VALUES (782,'Sales');
+INSERT INTO department (dept_id,dept_name)
+VALUES (783,'Web Dev');
+```
+
+![A table showing the data from the earlier code snippets with the columns "Department ID" and "Department Name"][2]
+
+igure 1. The department table
+
+Next, I create another table incorporating the fields `first_name`, `last_name`, `dept_id`, and `salary`.
+
+```
+CREATE TABLE employee (
+ first_name VARCHAR(100),
+ last_name VARCHAR(100),
+ dept_id INT,
+ salary INT
+);
+```
+
+Then I insert values into the table:
+
+```
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Sam','Burton',781,80000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Peter','Mellark',780,90000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Happy','Hogan',782,110000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Steve','Palmer',782,120000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Christopher','Walker',783,140000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Richard','Freeman',781,85000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Alex','Wilson',782,115000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Harry','Simmons',781,90000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Thomas','Henderson',780,95000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Ronald','Thompson',783,130000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('James','Martin',783,135000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Laurent','Fisher',780,100000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Tom','Brooks',780,85000);
+INSERT INTO employee (first_name,last_name,dept_id,salary)
+VALUES ('Tom','Bennington',783,140000);
+```
+
+![A table showing data from the earlier code snippets with first name, last name, dept ID, and salary columns, ordered by department ID number][3]
+
+Figure 2. A table of employees ordered by department ID
+
+I can infer the number of employees in each department using this table (department ID:number of employees):
+
+* 780:4
+* 781:3
+* 782:3
+* 783:4
+
+If I want the view the second-highest-earning employees from different departments, along with their department's name (using `DENSE_RANK` ), the table will be as follows:
+
+![A table with department ID, department name, first name, last name, and salary columns, listing the second-highest-earning employee in each of four departments, ordered from lowest to highest salary][4]
+
+Figure 3. The second-highest-earning employee in each department
+
+If I apply the same query to find the fourth-highest-earning employees, the output will be only Tom Brooks of department 780 (HR), with a salary of $85,000.
+
+![The table listing fourth-highest-earning employees lists only one employee.][5]
+
+Figure 4. The fourth-highest-earning employee
+
+Though department 783 (Web Dev) has four employees, two (James Martin and Ronald Thompson) will be classified as the third-highest-earning employees of that department, since the top two earners have the same salary.
+
+### Finding the nth highest
+
+Now, to the main question: What if I want to display the `dept_ID` and `dept_name` with null values for employee-related fields for departments that do not have an nth-highest-earning employee?
+
+![The list of fourth-highest-earning employee by department, showing "null" in the first name, last name, and salary columns for departments that do not have a fourth-highest earner.][6]
+
+Figure 5. All departments listed, whether or not they have an nth-highest-earning employee
+
+The table displayed in Figure 5 is what I am aiming to obtain when specific departments do not have an nth-highest-earning employee: The marketing, sales, and web dev departments are listed, but the name and salary fields contain a null value.
+
+The ultimate query that helps obtain the table in Figure 5 is as follows:
+
+```
+SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+FROM (SELECT * FROM (
+SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+FROM employee INNER JOIN department
+ON employee.dept_id=department.dept_id) AS k
+WHERE rank1=4)A),
+full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)),
+nulled AS(SELECT
+CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END,
+CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END,
+first_name,last_name,salary
+FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id)
+SELECT * FROM null1
+UNION
+SELECT * FROM nulled
+ORDER BY dept_id)
+B;
+```
+
+### Breakdown of the query
+
+I will break down the query to make it less overwhelming.
+
+Use `DENSE_RANK()` to display employee and department information (not involving null for the absence of the nth-highest-earning member):
+
+```
+SELECT * FROM (
+ SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+ employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+ FROM employee INNER JOIN department
+ ON employee.dept_id=department.dept_id) AS k
+ WHERE rank1=4
+```
+
+Output:
+
+![A table of the fourth-highest earners showing only the department with a fourth-highest earner][7]
+
+Figure 6. The fourth-highest earner
+
+Exclude the `rank1` column from the table in Figure 6, which identifies only one employee with a fourth-highest salary, even though there are four employees in another department.
+
+```
+SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+ FROM (SELECT * FROM (
+ SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+ employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+ FROM employee INNER JOIN department
+ ON employee.dept_id=department.dept_id) AS k
+ WHERE rank1=4)A
+```
+
+Output:
+
+![The fourth-highest earner table (table six) without the rank 1 column][8]
+
+Figure 7. The fourth-highest earner table without the rank 1 column
+
+Point out the departments from the department table that do not have an nth-highest-earning employee:
+
+```
+SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+ FROM (SELECT * FROM (
+ SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+ employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+ FROM employee INNER JOIN department
+ ON employee.dept_id=department.dept_id) AS k
+ WHERE rank1=4)A),
+full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL))
+SELECT * FROM full1)B
+```
+
+Output:
+
+![The full1 table listing the departments without a fourth-highest earner by department ID and name: marketing, sales, web dev][9]
+
+Figure 8. The full1 table listing the departments without a fourth-highest earner
+
+Replace `full1` in the last line of the above code with `null1` :
+
+```
+SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+ FROM (SELECT * FROM (
+ SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+ employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+ FROM employee INNER JOIN department
+ ON employee.dept_id=department.dept_id) AS k
+ WHERE rank1=4)A),
+full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL))
+SELECT * FROM null1)B
+```
+
+![The null1 table listing all departments, with null values for those without a fourth-highest earner][10]
+
+Figure 9. The null1 table listing all departments, with null values for those without a fourth-highest earner
+
+Now, I fill the null values of the `dept_id` and `dept_name` fields in Figure 9 with the corresponding values from Figure 8.
+
+```
+SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+ FROM (SELECT * FROM (
+ SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+ employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+ FROM employee INNER JOIN department
+ ON employee.dept_id=department.dept_id) AS k
+ WHERE rank1=4)A),
+full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)),
+nulled AS(SELECT
+CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END,
+CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END,
+first_name,last_name,salary
+FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id)
+SELECT * FROM nulled) B;
+```
+
+![The table with department id, department name, first name, last name, and salary columns, with null values in the name and salary columns][11]
+
+Figure 10. The result of the nulled query
+
+The nulled query uses `CASE WHEN` on the nulls encountered in the `dept_id` and `dept_name` columns of the `null1` table and replaces them with the corresponding values in the `full1` table. Now all I need to do is apply `UNION` to the tables obtained in Figure 7 and Figure 10. This can be accomplished by declaring the last query in the previous code using `WITH` and then `UNION` -izing it with `null1`.
+
+```
+SELECT * FROM (WITH null1 AS (SELECT A.dept_id, A.dept_name, A.first_name, A.last_name, A.salary
+FROM (SELECT * FROM (
+SELECT department.dept_id, department.dept_name, employee.first_name, employee.last_name,
+employee.salary, DENSE_RANK() OVER (PARTITION BY employee.dept_id ORDER BY employee.salary DESC) AS Rank1
+FROM employee INNER JOIN department
+ON employee.dept_id=department.dept_id) AS k
+WHERE rank1=4)A),
+full1 AS (SELECT dept_id, dept_name FROM department WHERE dept_id NOT IN (SELECT dept_id FROM null1 WHERE dept_id IS NOT NULL)),
+nulled AS(SELECT
+CASE WHEN null1.dept_id IS NULL THEN full1.dept_id ELSE null1.dept_id END,
+CASE WHEN null1.dept_name IS NULL THEN full1.dept_name ELSE null1.dept_name END,
+first_name,last_name,salary
+FROM null1 RIGHT JOIN full1 ON null1.dept_id=full1.dept_id)
+SELECT * FROM null1
+UNION
+SELECT * FROM nulled
+ORDER BY dept_id)
+B;
+```
+
+![The complete table: department ID, department name, first name, last name, salary columns. The first row contains the information of the one fourth-highest earner, and the next three columns show the remaining departments, with ID, and null value in the other three columns.][12]
+
+Figure 11. The final result
+
+Now I can infer from Figure 11 that marketing, sales, and web dev are the departments that do not have any employees earning the fourth-highest salary.
+
+Image By: (Mohammed Kamil Khan, CC BY-SA 4.0)
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/nth-highest-values-sql
+
+作者:[Mohammed Kamil Khan][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://opensource.com/users/kamilk98
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/browser_web_internet_website.png
+[2]: https://opensource.com/sites/default/files/2022-08/fig.%201%20sql.png
+[3]: https://opensource.com/sites/default/files/2022-08/FIG%202%20sql.png
+[4]: https://opensource.com/sites/default/files/2022-08/fig%203%20sql.png
+[5]: https://opensource.com/sites/default/files/2022-08/fg%204%20sql.png
+[6]: https://opensource.com/sites/default/files/2022-08/fig%205%20sql.png
+[7]: https://opensource.com/sites/default/files/2022-08/fig%206%20sql.png
+[8]: https://opensource.com/sites/default/files/2022-08/fig%207%20sql.png
+[9]: https://opensource.com/sites/default/files/2022-08/fig%208%20sql.png
+[10]: https://opensource.com/sites/default/files/2022-08/fig%209%20sql.png
+[11]: https://opensource.com/sites/default/files/2022-08/fig%2010%20sql.png
+[12]: https://opensource.com/sites/default/files/2022-08/fig%2011%20sql.png
diff --git a/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md b/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md
new file mode 100644
index 0000000000..8167e889e6
--- /dev/null
+++ b/sources/tech/20220902 Julia and Python- Which Language is Quicker-.md
@@ -0,0 +1,268 @@
+[#]: subject: "Julia and Python: Which Language is Quicker?"
+[#]: via: "https://www.opensourceforu.com/2022/09/julia-and-python-which-language-is-quicker/"
+[#]: author: "B Thangaraju https://www.opensourceforu.com/author/b-thangaraju/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Julia and Python: Which Language is Quicker?
+======
+*Julia is a dynamic programming language with a high level of abstraction. While it is a general-purpose language that may be used to develop any program, it has several characteristics that are ideally suited to numerical analysis and computational research. Python was designed in the early 1990s as a simple object-oriented programming language, but has evolved significantly since then. This article takes a deeper look at the performance of both for neural networks and machine learning.*
+
+Julia’s architecture features parametric polymorphism in a dynamic programming language, as well as a multiple dispatch programming paradigm as its primary programming model. It allows concurrent, parallel, and distributed computing with or without message passing interface (MPI) or the built-in ‘OpenMP-style’ threads, as well as the direct invocation of C and FORTRAN libraries without intermediate code. Julia employs a just-in-time (JIT) compiler, which the Julia community refers to as ‘just-ahead-of-time’ (JAOT) since it compiles all code to machine code by default before running it.
+
+Unlike Python, Julia was designed specifically for use in statistics and machine learning.
+Julia can fly through linear algebra, whereas Python can plod through it. This is because Python was never designed to accommodate all of the matrices and equations that machine learning requires. Python isn’t bad by any means, especially with NumPy, but Julia is a lot better tailored to this kind of mathematics in terms of a no-package experience. Julia’s operand system is a lot more like R’s than Python’s, which is a significant plus. The majority of linear algebra can be completed in less time and with less effort.
+
+As we know, in recent years Python has dominated the areas of machine learning and data science. Because of the variety of third-party libraries that we can use in Python, it helps to develop machine learning code easily. While there are so many advantages of Python, there is one major drawback — it’s an interpreted language, which makes it slow. This is the age of data, and the more data there is the more time it takes to work on it. That’s where Julia comes into the picture.
+
+Most of the research work on Julia so far has been on topics like high power computing or the scientific calculation capabilities of Julia. But here we will talk about how Julia is not only capable of working on complex scientific calculations efficiently but also on commercial-based problems, and can tackle Python in machine learning and neural networks.
+
+### Objective and experimentation
+
+Julia is as simple as Python but is a compiled language like C. So let’s test how fast Julia is in comparison with Python. For that, we will first test these languages on some simple programs and then move to the main focus of our experiment, which is to test them for machine learning and deep learning.
+
+Julia and Python provide many libraries and open source benchmarking tools. For benchmarking and calculating time in Julia, we used CPUTime and time libraries. Similarly, for Python, we used the time module.
+
+### Matrix multiplication
+
+We tried out simple arithmetic operations first, but since these will not generate much difference in time we decided to check out the timing in matrix multiplication. We started with creating two (10 * 10) matrices of random float numbers and performed dot products in these. As we know, Python has a NumPy library, which is famous for working with matrices and vectors. Similarly, Julia has a LinearAlgebra library that works well with matrices and vectors. So we compared the matrix multiplication with and without using their respective libraries. The source code for all the programs used in this article is available in our GitHub repository ([https://github.com/mr-nerdster/Julia_Research.gitsee][1]). The 10×10 matrix multiplication program written in Julia is given below:
+
+```
+@time LinearAlgebra.mul!(c,x,y)
+
+function MM()
+x = rand(Float64,(10,10))
+y = rand(Float64,(10,10))
+c = zeros(10,10)
+
+for i in range(1,10)
+for j in range(1,10)
+for k in range(1,10)
+c[i,j] += x[i,k]*y[k,j]
+end
+end
+end
+end
+@time MM
+
+0.000001 seconds
+MM (generic function with 1 method)
+```
+
+Julia takes 0.000017 seconds using the library and 0.000001 seconds using loops.
+
+The same matrix multiplication program was written in Python, as shown below. From the results it can be seen that with the library the program takes less time compared to without the library.
+
+```
+import numpy as np
+import time as t
+x = np.random.rand(10,10)
+y = np.random.rand(10,10)
+start = t.time()
+z = np.dot(x, y)
+print(“Time = “,t.time()-start)
+Time = 0.001316070556640625
+
+import random
+import time as t
+l = 0
+h= 10
+cols = 10
+rows= 10
+
+choices = list (map(float, range(l,h)))
+x = [random.choices (choices , k=cols) for _ in range(rows)]
+y = [random.choices (choices , k=cols) for _ in range(rows)]
+
+result = [([0]*cols) for i in range (rows)]
+
+start = t.time()
+
+for i in range(len(x)):
+for j in range(len(y[0])):
+for k in range(len(result)):
+result[i][j] += x[i][k] * y[k][j]
+
+print(result)
+print(“Time = “, t.time()-start)
+
+Time = 0.0015912055969238281
+```
+
+Python takes 0.0013 seconds using the library and 0.0015 seconds using loops.
+
+### Linear search
+
+The next experiment that we performed was a linear search on one hundred thousand randomly generated numbers. We used two methods here — one by using a for loop and the other by using an operator. We performed 1000 searches with integers ranging from 1 to 1000, and as you can see in the output below we also printed out how many integers we find in the data set. The output of time by using loops and by using the IN operator is given below. Here we measured time by taking the median CPU time of 3 runs.
+
+The program was written for Julia and the results are shown below.
+
+```
+import numpy as np
+import time as t
+x = np.random.rand(10,10)
+y = np.random.rand(10,10)
+start = t.time()
+z = np.dot(x, y)
+print(“Time = “,t.time()-start)
+Time = 0.001316070556640625
+
+import random
+import time as t
+l = 0
+h= 10
+cols = 10
+rows= 10
+
+choices = list (map(float, range(l,h)))
+x = [random.choices (choices , k=cols) for _ in range(rows)]
+y = [random.choices (choices , k=cols) for _ in range(rows)]
+
+result = [([0]*cols) for i in range (rows)]
+
+start = t.time()
+
+for i in range(len(x)):
+for j in range(len(y[0])):
+for k in range(len(result)):
+result[i][j] += x[i][k] * y[k][j]
+
+print(result)
+print(“Time = “, t.time()-start)
+
+Time = 0.0015912055969238281
+```
+
+The same program was written for Python and the results are:
+
+```
+FOR_SEARCH:
+Elapsed CPU time: 16.420260511 seconds
+matches: 550
+Elapsed CPU time: 16.140975079 seconds
+matches: 550
+Elapsed CPU time: 16.49639576 seconds
+matches: 550
+
+IN:
+Elapsed CPU time: 6.446583343 seconds
+matches: 550
+Elapsed CPU time: 6.216615487 seconds
+matches: 550
+Elapsed CPU time: 6.296716556 seconds
+matches: 550
+```
+
+From the above results, it is evident that there are no time differences between using a loop and an operator in Julia. However, the loop takes almost three times more execution time than the IN operator in Python. The interesting point here is that, in both cases, Julia has a much faster execution time than Python.
+
+### Linear regression
+
+The next experiments were performed in machine learning algorithms. We first worked on one of the most common and simple machine learning algorithms, i.e., linear regression with a simple data set. We used a ‘Head Brain’ data set that contains 237 data entries and has two columns [HeadSize, BrainWeight]. In this, we had to calculate the brain weight by using the head size. So we implemented linear regression from scratch, without using any library on this data set in both Python and Julia.
+
+*Julia:*
+
+```
+GC.gc()
+@CPUtime begin
+linear_reg()
+end
+elapsed CPU time: 0.000718 seconds
+```
+
+*Python:*
+
+```
+gc.collect()
+start = process_time()
+linear_reg()
+end = process_time()
+
+print(end-start)
+elapsed time: 0.007180344000000005
+```
+
+The time taken by both Julia and Python is given above.
+
+### Logistic regression
+
+Next, we carried out an experiment on the most common type of machine learning algorithm, i.e., logistic regression, by using libraries in both languages. For Python, we used its most commonly used library sklearn while in Julia we used the GLM library. The data set that we used for this is the information about a bank’s clients, which contains 10,000 data entries. The target variable is a binary variable that indicates whether the consumer left the bank (closed his or her account) or remained a customer.
+
+The time taken by Julia for logistic regression is given below.
+
+```
+@time log_rec()
+0.027746 seconds (3.32 k allocations: 10.947 MiB)
+```
+
+The time taken by Python for logistic regression is also given below.
+
+```
+gc.collect()
+start = process_time()
+LogReg()
+end = process_time()
+print(end-start)
+
+Accuracy : 0.8068
+0.34901400000000005
+```
+
+### Neural networks
+
+After testing both languages on various programs and data sets, we tested them on neural networks and used the MNIST data set. This data set contains gray-scale images of hand-drawn digits, from zero through nine. Each image is 28×28 pixels. Each pixel value indicates the lightness or darkness of that pixel, and this value is an integer between 0 and 255, both inclusive. The data also contains a label column which represents the digit that was drawn in the respected image.
+
+![Figure 1: Example of MNIST data set][2]
+
+Figure 1 shows a few examples of the MNIST data set.
+
+We created a simple neural network to test the time taken by both languages. The structure of our neural network is like this:
+
+```
+Input ---> Hidden layer ---> Output
+```
+
+It contains an input layer, hidden layer, and output layer. To avoid complexities, we did not use any preprocessing on our data set, and worked on it as it is. We trained this model for 40 iterations and checked the time difference between Julia and Python in it.
+
+![Figure 2: Julia takes 5.76 seconds in a neural network][3]
+
+For Julia, the Flux library was used to implement the neural network and for Python, the Keras library was used. Figure 2 shows the time taken by Julia in a neural network.
+Figure 3 shows the time taken by Python and a few iterations of the model in the neural network.
+
+![Figure 3: Python takes 110.3 seconds in a neural network][4]
+
+The results show that there are huge time differences between Julia and Python when it comes to a neural network.
+
+Table 1 summarises all the results of our experiments, and gives the time difference (in percentage) between Julia and Python.
+
+| Experiment | Julia (seconds) | Python(seconds) | Time difference (%) |
+| :- | :- | :- | :- |
+| Matrix multiplication (without library) | 0.000001 | 0.0015 | 99.9 |
+| Matrix multiplication (with library) | 0.000017 | 0.0013 | 98.69 |
+| Linear search (using loop ) | 0.42 | 16.4 | 97.43 |
+| Linear search (using IN operator) | 0.43 | 6.2 | 93.06 |
+| Linear regression | 0.000718 | 0.00718 | 90 |
+| Logistic regression | 0.025 | 0.34901 | 92.83 |
+| Neural networks | 5.76 | 110.3 | 94.77 |
+
+All the experiments we carried out indicated that as the complexity of the program as well as the size of the data set increases, the execution time difference between Julia and Python increases. From the results, we can conclude that Julia is the better programming language for machine learning and neural networks.
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/09/julia-and-python-which-language-is-quicker/
+
+作者:[B Thangaraju][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/b-thangaraju/
+[b]: https://github.com/lkxed
+[1]: https://github.com/mr-nerdster/Julia_Research.gitsee
+[2]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-1-Example-of-MNIST-data-set.jpg
+[3]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-2-Julia-takes-5.76-seconds-in-a-neural-network.jpg
+[4]: https://www.opensourceforu.com/wp-content/uploads/2022/07/Figure-3-Python-takes-110.3-seconds-in-a-neural-network.jpg
diff --git a/sources/tech/20220902 Where is DevOps Headed-.md b/sources/tech/20220902 Where is DevOps Headed-.md
new file mode 100644
index 0000000000..1008e0839d
--- /dev/null
+++ b/sources/tech/20220902 Where is DevOps Headed-.md
@@ -0,0 +1,50 @@
+[#]: subject: "Where is DevOps Headed?"
+[#]: via: "https://www.opensourceforu.com/2022/09/where-is-devops-headed/"
+[#]: author: "Bhagvan Kommadi https://www.opensourceforu.com/author/bhagvan-kommadi/"
+[#]: collector: "lkxed"
+[#]: translator: "Yufei-Yan"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Where is DevOps Headed?
+======
+*Microsoft, Google, Amazon, IBM, and Oracle are today focusing on DevOps on the cloud. IT automation is what these big companies are offering enterprises. However, DevOps is evolving continuously. DevSecOps, AIOps and NoOps are set to be the next buzzwords.*
+
+Agile methodology and DevOps have become popular as developers and managers see the business value in delivering good quality software in time. To have flexible release cycles and deliver software with scalable and customisable features is the goal of every enterprise in the world. DevOps has smoothened the release process with CI/CD tools and pipelines being deployed on to the cloud. Polyglot microservices architecture blended with DevOps is helping enterprises to cut down the total cost of ownership. They now have capabilities to upgrade their technology stack with progressive Web apps and the latest UI frameworks. Overall, teams are performing with better efficiency and quality software modules are being developed.
+
+### Autonomous DevOps
+
+Containers and DevOps go together with cloud native applications. Kubernetes and Docker are being used as containers and a new term called NoOps is trending now. Orchestration is an important feature of different containers. Container clusters are being created in developer environments to scale the application. There are new containers like Mesos, Swarm, Openshift Rancher and Nomad getting into the cloud native application space. NoOps helps in cutting down the coding cycles in order to monitor and manage the application. Defect fixing and hotfixes are different activities, which are part of NoOps. NoOps helps to improve the synergy between technical teams and business operations personnel. It helps in better monitoring, management, and process automation. NoOps infrastructure enables control of app deployment on the cloud. Enterprises derive benefits like better delivery, service resilience, faster time to market, good quality, and CI/CD automation.
+
+### DevSecOps
+
+DevSecOps is another popular trend related to the security concerns addressed during development operations. Recent issues related to vulnerabilities (log4j), security breaches (Google, Facebook, Microsoft), and security attacks have increased the importance of DevSecOps in enterprises. A shift left approach emphasises the importance of security and quality to be addressed earlier in the software life cycle. Privacy and compliances like GDPR need to be considered at the architectural phase itself. This helps in cutting down costs and improving the speed of the software delivery. Auditing tools and security checklists are part of the DevOps tools and systems, which we call DevSecOps now.
+
+### AIOps
+
+AI DevOps is now called AIOps. It is being predicted that AI applications will be managed by AIOps in future. Tools and software related to AIOps are being developed and available as first releases. AI/ML applications deployment and model updates can be handled by AIOps. This will play an important role in Industry 4.0 and data science. There is a school of thought that NoOps will be the end point for AIOps. AIOps consists of data set management, model training, model serving, metadata management, model updates, and service updates. Distributed training is enabled by AIOps, which gives the capabilities for hyper parameter optimisation, workflow management, and ‘what if’ analysis.
+
+### Microservices configuration management
+
+DevOps and microservices are being implemented as standard deployment and architectural blueprints these days. Apps can be scaled at the module level. Microservices help in simplifying the fixing of defects and isolating problem areas. Microservices by design can be scaled by adding more instances of computing power. But when they are not implemented correctly, issues related to data security and management crop up.
+
+### Platform as a Product
+
+Software as a Service and Platform as a Product are popular these days on the cloud. DevOps makes these a reality by accelerating the deployment and delivery of features to the platform. CI/CD pipelines help in visualising the app deployment, right from coding to live phases. Continuous delivery, integration and deployment are all part of DevOps. The future is about DevOps assembly lines simulating industry assembly lines.
+
+DevOps is slowly graduating to DevSecOps and AIOps. NoOps for enterprises is the future. The need of the hour is to cut down the occurrence of security related attacks, incidents, and breaches. Data security and privacy is a high priority for enterprises, and these new technologies will all help with that.
+
+--------------------------------------------------------------------------------
+
+via: https://www.opensourceforu.com/2022/09/where-is-devops-headed/
+
+作者:[Bhagvan Kommadi][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/bhagvan-kommadi/
+[b]: https://github.com/lkxed
diff --git a/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md b/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md
new file mode 100644
index 0000000000..cc600bbf46
--- /dev/null
+++ b/sources/tech/20220903 GNOME Web 43 Looks Beautiful with Adwaita Tab View.md
@@ -0,0 +1,106 @@
+[#]: subject: "GNOME Web 43 Looks Beautiful with Adwaita Tab View"
+[#]: via: "https://www.debugpoint.com/gnome-web-43-tab-view/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+GNOME Web 43 Looks Beautiful with Adwaita Tab View
+======
+GNOME Web 43 Tab View looks awesome and its going to change your workflow.
+
+Our beloved GNOME Web (Epiphany) becoming more and more intuitive in every passing day – thanks to the developers.
+
+Recently, it has been ported to GTK4, libadwaita which brings the nice looks overall and some cool new features. All of these changes arriving on [GNOME 43][1] release due in a few weeks.
+
+### GNOME Web 43 Tab View
+
+In my opinion, the most cool feature of GNOME Web 43 is the Tab view. Here’s how it looks.
+
+![GNOME Web 43 Tab View][2]
+
+Cool, isn’t it? Here are the key features.
+
+The GNOME Web 43 tab view brings small and **responsive preview of all the open tabs** in a single page. It’s a different view in GNOME Web 43 and do not get confused with the default recent page view.
+
+A **new toolbar button** at the top bar of GNOME Web kicks off this view. Its a **toggle** button, that means – to turn off this view, simply click again.
+
+Next, the tab view is **responsive** in nature. That means, as you keep on adding tabs, the tab views **resizes** itself by calculating available space from the size of parent Web dialog.
+
+Since the GNOME Web 43 tab view is completely different page of the Web, it has two additional controls.
+
+First is a **search button** at the left top section of Tab view which enables you to search the *titles*of the open tabs. Its dynamic and search result arrives in the same page.
+
+Secondly, a new Tab button at the bottom helps you to **create a new tab** from Web’s Tab view page itself. That means, you don’t need to go to the horizontal tab view to create a tab.
+
+Also, if you press escape in this view, you go back to the main view. Finally a total tab count at the top section – gives you a hint of how many tabs you have opened.
+
+### Video
+
+Here’s a nice video which I prepared to show you how cool it is.
+
+![][3]
+
+So, in summary, here’s what you get in GNOME Web 43 tab view:
+
+* Tab view is a new page with responsive preview of your open tabs.
+* Search and create tab option.
+* Drag and drop feature to re-order the tab thumbnails.
+* All the tab context menu features (such as Pin tab, reload tab, etc.) available in this tab view.
+* Awesome keyboard shortcuts to browse the tabs (such as CTRL+Page Up and Down to go up and back).
+* Tab preview image is dynamic, that means as your page loads, tab view refreshes by itself!
+
+### Implementation
+
+This feature is courtesy of libadwaita library. It was available since libadwaita v1.0, but implemented now. You can read the documentation [here][4].
+
+```
+final class Adw.TabView : Gtk.Widget {
+/* No available fields */
+}
+
+AdwTabView*
+adw_tab_view_new (
+ void
+)
+```
+
+*The main TabView class and constructor to create Tabview*
+
+As of writing this post, this feature is NOT yet merged (MR!1190) to Epiphany main branch for GNOME 43. Above screenshots and feature highlights are from the development version of Web 43.
+
+### What about Files, Terminal and Text editor?
+
+I know what you are thinking.
+
+What if the same feature arrives in Files or in GNOME Terminal? Wouldn’t it be cool?
+
+Yes, there is a strong possibility. Because the feature is actually part of Libadwaita and Web is the first native app that implements it.
+
+If GNOME devs want, Files and other native apps can inherit this feature via libadwaita. However, I haven’t came across any draft/roadmap to implement this for other apps, yet.
+
+### Wrapping up
+
+So, that about this cool new GNOME Web 43 tab view feature. Finally, Web is becoming a viable alternative web browser other than Firefox.
+
+What do you think about the above feature? Do let me know in the comment box.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/gnome-web-43-tab-view/
+
+作者:[Arindam][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.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/gnome-43/
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/09/GNOME-Web-43-Tab-View.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/09/GNOME-43-Web-Tav-View.mp4
+[4]: https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/ctor.TabView.new.html
diff --git a/sources/tech/20220903 Infuse your awk scripts with Groovy.md b/sources/tech/20220903 Infuse your awk scripts with Groovy.md
new file mode 100644
index 0000000000..0dd7cadd45
--- /dev/null
+++ b/sources/tech/20220903 Infuse your awk scripts with Groovy.md
@@ -0,0 +1,348 @@
+[#]: subject: "Infuse your awk scripts with Groovy"
+[#]: via: "https://opensource.com/article/22/9/awk-groovy"
+[#]: author: "Chris Hermansen https://opensource.com/users/clhermansen"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Infuse your awk scripts with Groovy
+======
+Awk and Groovy complement each other to create robust, useful scripts.
+
+Recently I wrote a series on using Groovy scripts to clean up the tags in my music files. I developed a [framework][2] that recognized the structure of my music directory and used it to iterate over the content files. In the final article of that series, I separated this framework into a utility class that my scripts could use to process the content files.
+
+This separate framework reminded me a lot of the way awk works. For those of you unfamiliar with awk, you might benefit from Opensource.com's eBook, [A practical guide to learning awk][3].
+
+I have used awk extensively since 1984, when our little company bought its first "real" computer, which ran System V Unix. For me, awk was a revelation: It had associative memory— think arrays indexed by strings instead of numbers. It had regular expressions built in, seemed designed to deal with data, especially in columns, and was compact and easy to learn. Finally, it was designed to work in Unix pipelines, reading its data from standard input or files and writing to output, with no ceremony required to do so—data just appeared in the input stream.
+
+To say that awk has been an essential part of my day-to-day computing toolkit is an understatement. And yet there are a few things about how I use awk that leave me unsatisfied.
+
+Probably the main issue is that awk is good at dealing with data presented in delimited fields but curiously not good at handling comma-separated-value files, which can have field delimiters embedded within a field, provided that the field is quoted. Also, regular expressions have moved on since awk was invented, and needing to remember two sets of regular expression syntax rules is not conducive to bug-free code. [One set of such rules is bad enough][4].
+
+Because awk is a small language, it's missing some things that I sometimes find useful, like a richer assortment of base types, structures, switch statements, and so on.
+
+In contrast, Groovy has all of these good things: access to [the OpenCSV library][5], which facilitates dealing with CSV files, Java regular expressions and great matching operators, a rich assortment of base types, classes, switch statements, and more.
+
+What Groovy lacks is the simple pipeline-oriented view of data as an incoming stream and processed data as an outgoing stream.
+
+But my music directory processing framework made me think, maybe I can create a Groovy version of awk's "engine". That's my objective for this article.
+
+### Install Java and Groovy
+
+Groovy is based on Java and requires a Java installation. Both a recent and decent version of Java and Groovy might be in your Linux distribution's repositories. Groovy can also be installed following the instructions on the [Groovy homepage][6]. A nice alternative for Linux users is [SDKMan][7], which can be used to get multiple versions of Java, Groovy and many other related tools. For this article, I'm using SDK's releases of:
+
+* Java: version 11.0.12-open of OpenJDK 11;
+* Groovy: version 3.0.8.
+
+### Creating awk with Groovy
+
+The basic idea here is to encapsulate the complexities of opening a file or files for processing, splitting the line into fields, and providing access to the stream of data in three parts:
+
+* Before any data is processed
+* On each line of data
+* After all data is processed
+
+I'm not going for the general case of replacing awk with Groovy. Instead, I'm working toward my typical use case, which is:
+
+* Use a script file rather than having the code on the command line
+* Process one or more input files
+* Set my default field delimiter to `|` and split lines read on that delimiter
+* Use OpenCSV to do the splitting (what I can't do in awk)
+
+### The framework class
+
+Here's the "awk engine" in a Groovy class:
+
+```
+1 @Grab('com.opencsv:opencsv:5.6')
+ 2 import com.opencsv.CSVReader
+ 3 public class AwkEngine {
+ 4 // With admiration and respect for
+ 5 // Alfred Aho
+ 6 // Peter Weinberger
+ 7 // Brian Kernighan
+ 8 // Thank you for the enormous value
+ 9 // brought my job by the awk
+10 // programming language
+11 Closure onBegin
+12 Closure onEachLine
+13 Closure onEnd
+
+14 private String fieldSeparator
+15 private boolean isFirstLineHeader
+16 private ArrayList fileNameList
+
+17 public AwkEngine(args) {
+18 this.fileNameList = args
+19 this.fieldSeparator = "|"
+20 this.isFirstLineHeader = false
+21 }
+
+22 public AwkEngine(args, fieldSeparator) {
+23 this.fileNameList = args
+24 this.fieldSeparator = fieldSeparator
+25 this.isFirstLineHeader = false
+26 }
+
+27 public AwkEngine(args, fieldSeparator, isFirstLineHeader) {
+28 this.fileNameList = args
+29 this.fieldSeparator = fieldSeparator
+30 this.isFirstLineHeader = isFirstLineHeader
+31 }
+
+32 public void go() {
+33 this.onBegin()
+34 int recordNumber = 0
+35 fileNameList.each { fileName ->
+36 int fileRecordNumber = 0
+37 new File(fileName).withReader { reader ->
+38 def csvReader = new CSVReader(reader,
+39 this.fieldSeparator.charAt(0))
+40 if (isFirstLineHeader) {
+41 def csvFieldNames = csvReader.readNext() as
+42 ArrayList
+43 csvReader.each { fieldsByNumber ->
+44 def fieldsByName = csvFieldNames.
+45 withIndex().
+46 collectEntries { name, index ->
+47 [name, fieldsByNumber[index]]
+48 }
+49 this.onEachLine(fieldsByName,
+50 recordNumber, fileName,
+51 fileRecordNumber)
+52 recordNumber++
+53 fileRecordNumber++
+54 }
+55 } else {
+56 csvReader.each { fieldsByNumber ->
+57 this.onEachLine(fieldsByNumber,
+58 recordNumber, fileName,
+59 fileRecordNumber)
+60 recordNumber++
+61 fileRecordNumber++
+62 }
+63 }
+64 }
+65 }
+66 this.onEnd()
+67 }
+68 }
+```
+
+While this looks like a fair bit of code, many of the lines are continuations of a split longer lines (for example, normally you would combine lines 38 and 39, lines 41 and 42, and so on). Let's look at this line by line.
+
+Line 1 uses the `@Grab` annotation to fetch the OpenCSV library version 5.6 from [Maven Central][8]. No XML required.
+
+In line 2, I import OpenCSV's `CSVReader` class.
+
+In line 3, just as with Java, I declare a public utility class, `AwkEngine`.
+
+Lines 11-13 define the Groovy Closure instances used by the script as hooks into this class. These are "public by default" as is the case with any Groovy class—but Groovy creates the fields as private and external references to these (using getters and setters provided by Groovy). I'll explain that further in the sample scripts below.
+
+Lines 14-16 declare the private fields—the field separator, a flag to indicate whether the first line of a file is a header, and a list for the file name.
+
+Lines 17-31 define three constructors. The first receives the command line arguments. The second receives the field separator character. The third receives the flag indicating whether the first line is a header or not.
+
+Lines 31-67 define the engine itself, as the `go()` method.
+
+Line 33 calls the `onBegin()` closure (equivalent to the awk `BEGIN {}` statement).
+
+Line 34 initializes the `recordNumber` for the stream (equivalent to the awk `NR` variable) to 0 (note I am doing 0-origin here rather than the awk 1-origin).
+
+Lines 35-65 use each `{}` to loop over the list of files to be processed.
+
+Line 36 initializes the `fileRecordNumber` for the file (equivalent to the awk `FNR` variable) to 0 (0-origin, not 1-origin).
+
+Lines 37-64 get a `Reader` instance for the file and process it.
+
+Lines 38-39 get a `CSVReader` instance.
+
+Line 40 checks to see whether the first line is being treated as a header.
+
+If the first line is being treated as a header, then lines 41-42 get the list of field header names from the first record.
+
+Lines 43-54 process the rest of the records.
+
+Lines 44-48 copy the field values into the map of `name:value`.
+
+Lines 49-51 call the onEachLine`()` closure (equivalent to what appears in an awk program between `BEGIN {}` and `END {}`, though no pattern can be attached to make the execution conditional), passing in the map of `name:value`, the stream record number, the file name and the file record number.
+
+Lines 52-53 increment the stream record number and file record number.
+
+Otherwise:
+
+Lines 56-62 process the records.
+
+Lines 57-59 call the `onEachLine()` closure, passing in the array of field values, the stream record number, the file name and the file record number.
+
+Lines 60-61 increment the stream record number and file record number.
+
+Line 66 calls the `onEnd()` closure (equivalent to the awk `END {}` ).
+
+That's it for the framework. Now you can compile it:
+
+```
+$ groovyc AwkEngine.groovy
+```
+
+A couple of comments:
+
+If an argument is passed in that is not a file, the code fails with a standard Groovy stack trace, which looks something like this:
+
+```
+Caught: java.io.FileNotFoundException: not-a-file (No such file or directory)
+java.io.FileNotFoundException: not-a-file (No such file or directory)
+at AwkEngine$_go_closure1.doCall(AwkEngine.groovy:46)
+```
+
+OpenCSV tends to return `String[]` values, which are not as convenient as `List` values in Groovy (for example there is no `each {}` defined for an array). Lines 41-42 convert the header field value array into a list, so perhaps `fieldsByNumber` in line 57 should also be converted into a list.
+
+### Using the framework in scripts
+
+Here's a very simple script using `AwkEngine` to examine a file like `/etc/group`, which is colon-delimited and has no header:
+
+```
+1 def ae = new AwkEngine(args, ‘:')
+2 int lineCount = 0
+
+3 ae.onBegin = {
+4 println “in begin”
+5 }
+
+6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber ->
+7 if (lineCount < 10)
+8 println “fileName $fileName fields $fields”
+9 lineCount++
+10 }
+
+11 ae.onEnd = {
+12 println “in end”
+13 println “$lineCount line(s) read”
+14 }
+
+15 ae.go()
+```
+
+Line 1 calls the two-argument constructor, passing in the argument list and the colon as delimiter.
+
+Line 2 defines a script top-level variable, `lineCount`, used to record the count of lines read (note that Groovy closures don't require variables defined external to the closure to be final).
+
+Lines 3-5 define the `onBegin()` closure, which just prints the string "in begin" on standard output.
+
+Lines 6-10 define the `onEachLine()` closure, which prints the file name and the fields for the first 10 lines and in any case increments the line count.
+
+Lines 11-14 define the `onEnd()` closure, which prints the string "in end" and the count of the number of lines read.
+
+Line 15 runs the script using the `AwkEngine`.
+
+Run this script as follows:
+
+```
+$ groovy Test1Awk.groovy /etc/group
+in begin
+fileName /etc/group fields [root, x, 0, ]
+fileName /etc/group fields [daemon, x, 1, ]
+fileName /etc/group fields [bin, x, 2, ]
+fileName /etc/group fields [sys, x, 3, ]
+fileName /etc/group fields [adm, x, 4, syslog,clh]
+fileName /etc/group fields [tty, x, 5, ]
+fileName /etc/group fields [disk, x, 6, ]
+fileName /etc/group fields [lp, x, 7, ]
+fileName /etc/group fields [mail, x, 8, ]
+fileName /etc/group fields [news, x, 9, ]
+in end
+78 line(s) read
+$
+```
+
+Of course the `.class` files created by compiling the framework class must be on the classpath for this to work. Naturally, you could use `jar` to package up those class files.
+
+I really like Groovy's support for the delegation of behavior, which requires various shenanigans in other languages. For many years Java required anonymous classes and quite a bit of extra code. Lambdas have gone a long way to fixing this, but they still cannot refer to non-final variables outside their scope.
+
+Here's another, more interesting script that is very reminiscent of my typical use of awk:
+
+```
+1 def ae = new AwkEngine(args, ‘;', true)
+2 ae.onBegin = {
+3 // nothing to do here
+4 }
+
+5 def regionCount = [:]
+6 ae.onEachLine = { fields, recordNumber, fileName, fileRecordNumber ->
+7 regionCount[fields.REGION] =
+8 (regionCount.containsKey(fields.REGION) ?
+9 regionCount[fields.REGION] : 0) +
+10 (fields.PERSONAS as Integer)
+11 }
+
+12 ae.onEnd = {
+13 regionCount.each { region, population ->
+14 println “Region $region population $population”
+15 }
+16 }
+
+17 ae.go()
+```
+
+Line 1 calls the three-argument constructor, recognizing that this is a "true CSV" file with the header being on the first line. Because it's a Spanish file, where the comma is used as the decimal "point", the standard delimiter is the semicolon.
+
+Lines 2-4 define the `onBegin()` closure which in this case doesn't do anything.
+
+Line 5 defines an (empty) `LinkedHashMap`, which you will fill with String keys and Integer values. The data file is from Chile's most recent census and you are calculating the number of people in each region of Chile in this script.
+
+Lines 6-11 processes the lines in the file (there are 180,500 including the header)—note that in this case, because you are defining line 1 as the CSV column headers, the fields parameter is going to be an instance of `LinkedHashMap`.
+
+Lines 7-10 increment the `regionCount` map, using the value in the field REGION as the key and the value in the field PERSONAS as the value—note that, unlike awk, in Groovy you can't refer to a non-existent map entry on the right-hand side and expect a blank or zero value to materialize.
+
+Lines 12- 16 print out population by region.
+
+Line 17 runs the script on the `AwkEngine` instance.
+
+Run this script as follows:
+
+```
+$ groovy Test2Awk.groovy ~/Downloads/Censo2017/ManzanaEntidad_CSV/Censo*csv
+Region 1 population 330558
+Region 2 population 607534
+Region 3 population 286168
+Region 4 population 757586
+Region 5 population 1815902
+Region 6 population 914555
+Region 7 population 1044950
+Region 8 population 1556805
+Region 16 population 480609
+Region 9 population 957224
+Region 10 population 828708
+Region 11 population 103158
+Region 12 population 166533
+Region 13 population 7112808
+Region 14 population 384837
+Region 15 population 226068
+$
+```
+
+That's it. For those of you who love awk and yet would like a little more, I hope you enjoy this Groovy approach.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/awk-groovy
+
+作者:[Chris Hermansen][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://opensource.com/users/clhermansen
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/browser_screen_windows_files.png
+[2]: https://opensource.com/article/22/8/music-tagging-framework-groovy
+[3]: https://opensource.com/downloads/awk-ebook
+[4]: http://regex.info/blog/2006-09-15/247
+[5]: http://opencsv.sourceforge.net/
+[6]: https://groovy.apache.org/download.html
+[7]: https://opensource.com/article/22/3/manage-java-versions-sdkman
+[8]: https://mvnrepository.com/artifact/com.opencsv/opencsv
diff --git a/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md
new file mode 100644
index 0000000000..9aff22aaf7
--- /dev/null
+++ b/sources/tech/20220904 Create Bootable USB Using Etcher in Linux – Download and Usage Guide.md
@@ -0,0 +1,131 @@
+[#]: subject: "Create Bootable USB Using Etcher in Linux – Download and Usage Guide"
+[#]: via: "https://www.debugpoint.com/etcher-bootable-usb-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Create Bootable USB Using Etcher in Linux – Download and Usage Guide
+======
+A quick and easy tutorial on how to create a bootable USB using the Etcher tool in Ubuntu and other Linux.
+
+[Etcher][1] is a utility created by [Balena][2], that makes your life easy with its unique take on creating bootable USB and SD cards with a .iso file. In this guide, I will show you the steps to download and install Etcher.
+
+Although it is a bit trivial for some, it may be difficult for others. Hence this guide.
+
+Primarily Etcher is used for flashing or writing the Linux OS .iso images, for example, Ubuntu, [Linux Mint][3] .iso images, etc. But ideally, it should work for any other .iso files as well.
+
+There are other utilities available as well to create bootable USB disks in particular, like earlier I wrote about a [guide][4] using Unetbootin.
+
+But that said, Etcher is, in my opinion, **faster, cleaner, and better**. It seldom fails. The success rate is high.
+
+Before I explain the steps, a quick recap of its features.
+
+### Etcher Features
+
+* Crisp 3-step process to create a bootable USB drive
+* Autodetect the USB
+* Select the file, Select target, and write fast
+* Clone a drive
+* Choose the local downloaded .iso file Or directly from the URL
+* Clean and eye-friendly UI
+* Cross-platform – Linux, Windows, and macOS
+* Built-in JS, electron
+* Standalone AppImage executable available for Linux
+
+### Installing Etcher
+
+Etcher is available for all platforms. So you can easily install it using the following methods in all Linux distributions, macOS, and Windows.
+
+Firstly, go to the below link.
+
+[Download ETCHER][5]
+
+#### For All Linux distributions
+
+Download the AppImage executable from the above link. Then change the permission to the *executable* from ‘`right click -> properties` ’. Then run the file.
+
+For distribution-specific packages, refer below.
+
+#### Debian, Ubuntu
+
+To install Etecher in Debian, Ubuntu, Linux Mint, and related distributions, follow the below commands from the terminal.
+
+```
+echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.listsudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 379CE192D401AB61sudo apt-get updatesudo apt-get install balena-etcher-electron
+```
+
+#### Fedora
+
+For Fedora, follow the below commands from the terminal.
+
+```
+sudo wget https://balena.io/etcher/static/etcher-rpm.repo -O /etc/yum.repos.d/etcher-rpm.reposudo dnf install -y balena-etcher-electron
+```
+
+#### Arch Linux
+
+For Arch Linux, make sure yay is installed. Then you can run the below command to install.
+
+```
+yay -S balena-etcher
+```
+
+### Create bootable USB Using Etcher
+
+Once you have installed it successfully. Launch the application. The first window shows 3 steps which you need to follow. Of course, you need a USB stick and the .iso file to write.
+
+##### Step 1: Select the file
+
+Plugin your target USB or SD card. Browse and select the location of your .iso file. Or, you can pull it directly from the internet as well via the URL option.
+
+![Step 1 - Select the file][6]
+
+##### Step 2: Select the target device
+
+Click on select target and carefully choose your USB or SD card. Etcher is friendly enough to notify you which one of the devices is your system device so that you don’t end up destroying data.
+
+Choose by clicking the check box. And click select.
+
+![Step 2 - Select Target device][7]
+
+##### Step3: Click flash to start creating the bootable USB or SD card.
+
+![Step 3 - Start the process][8]
+
+Wait until the process finishes.
+
+![Process is complete][9]
+
+And that’s it. You can safely remove the USB or SD card for your use.
+
+### Closing Note
+
+While there are many ways to create a bootable USB, such as you can use Unetbootin, MKUSB, or even using Ubuntu’s default Disk utility, Etcher makes it easier to do it. The UI design, only 3 steps process, makes it ideal for new users and source advanced users who want reliability.
+
+Because a bootable USB is a critical asset and you should use an excellent program to prepare it.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/etcher-bootable-usb-linux/
+
+作者:[Arindam][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.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.balena.io/etcher/
+[2]: https://www.balena.io/
+[3]: https://www.debugpoint.com/linux-mint/
+[4]: https://www.debugpoint.com/2015/05/how-to-create-a-bootable-usb-drive-in-ubuntu/
+[5]: https://github.com/balena-io/etcher/releases
+[6]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step1-Select-the-file.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step-2-Select-Target-device.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/Step-3-Start-the-process.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/Process-is-complete.jpg
diff --git a/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md b/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md
new file mode 100644
index 0000000000..49c5dc8884
--- /dev/null
+++ b/sources/tech/20220904 How to Enable Dark Mode in Web Browser.md
@@ -0,0 +1,94 @@
+[#]: subject: "How to Enable Dark Mode in Web Browser"
+[#]: via: "https://www.debugpoint.com/dark-mode-browser/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Enable Dark Mode in Web Browser
+======
+This guide is about helping you on how to enable dark mode in the popular web browser(s) such as Firefox, Google Chrome, Chromium and Microsoft Edge.
+
+We all love dark mode. Many people prefer it over standard light mode. While many desktop applications provide the dark mode natively, some apps adapt to dark mode via the desktop environment’s underlying modes.
+
+You can not deny that we all spend hours on web browsers. We seldom use desktop apps (unless you are specific to work, such as video editing, etc.). So, when you spend many hours reading and studying in a browser, you can always opt for dark mode. But, coming to the web browser, things are a little different.
+
+This guide gives you the simple steps which you can follow to enable dark mode in Mozilla Firefox, Chromium, Google Chrome and Edge browsers.
+
+### Enable Dark Mode in Web Browser
+
+#### Enable Dark Mode in Firefox
+
+* Open Firefox and click on the little hamburger menu at the right-top.
+* Click `Settings > Extension and Themes`.
+* Select the `Dark Theme` and click `enable`. And you should see the dark mode is applied to Firefox.
+
+![Enable dark mode in Firefox][1]
+
+![Firefox in Dark Mode][2]
+
+* To revert it back, follow the same steps and select Light Theme.
+
+#### Dark Mode in Chromium and Google Chrome
+
+Chromium or Google Chrome doesn’t pre-install any dark theme by default. Hence, you need to go to Chrome Web Store and download any dark theme you want. For this guide I would recommend “Morpheon Dark” theme, which over a million users use.
+
+Open the Morpheon Dark theme page (below link) from the Chromium web browser.
+
+[Morpheon Dark Theme in Chrome Web Store][3]
+
+Click on Add To Chrome button. And it should be enabled in Chrome.
+
+You may want to explore other Black and White or dark themes available in Chrome Web Store. [Visit this page for all collections of dark themes.][4]
+
+However, one thing you should remember is that – this theme would not change the settings or context menu. Which is obvious. Because it just changes the browser window, and those menus are part of the operating system itself (sometimes).
+
+![Chromium Dark Theme][5]
+
+Follow the same steps for the Google Chrome browser as well.
+
+#### Edge Browser – Dark Mode
+
+[Microsoft Edge browser][6], however, comes with a better dark theme by default. It allows you to use GTK+, Light and Dark mode from settings.
+
+* Open Edge Browser
+* Click on the three little dots on the right-top side.
+* Go to Appearance and choose Dark. And you should be all set.
+
+This dark theme implementation of Edge is better because it changes the context menu and the address bar.
+
+![Edge in Dark Theme][7]
+
+### Closing Notes
+
+If you are an advanced user, you probably do not need this guide. You can figure it out.
+
+But we cover all the basic to advanced tutorials for all our readers. Many new Linux users may not know how to enable dark mode in the browser as well.
+
+So, that said, I hope this helps you and others. Let me know in the comment box below if you face any trouble.
+
+[Next: Create Bootable USB Using Etcher in Linux – Download and Usage Guide][8]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/dark-mode-browser/
+
+作者:[Arindam][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.debugpoint.com/author/admin1/
+[b]: https://github.com/lkxed
+[1]: https://www.debugpoint.com/wp-content/uploads/2021/10/Enable-dark-mode-in-Firefox.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2021/10/Firefox-in-Dark-Mode-1024x423.jpg
+[3]: https://chrome.google.com/webstore/detail/morpheon-dark/mafbdhjdkjnoafhfelkjpchpaepjknad?hl=en-GB
+[4]: https://chrome.google.com/webstore/category/collection/dark_themes
+[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/Chromium-Dark-Theme-1024x463.jpg
+[6]: https://www.debugpoint.com/2020/10/how-to-install-edge-ubuntu-linux/
+[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/Edge-in-Dark-Theme-1024x541.jpg
+[8]: https://www.debugpoint.com/etcher-bootable-usb-linux/
diff --git a/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md
new file mode 100644
index 0000000000..697a1f2649
--- /dev/null
+++ b/sources/tech/20220905 3 things to know about planning for OTA updates in your homelab.md
@@ -0,0 +1,67 @@
+[#]: subject: "3 things to know about planning for OTA updates in your homelab"
+[#]: via: "https://opensource.com/article/22/9/plan-ota-updates-edge"
+[#]: author: "Alan Smithee https://opensource.com/users/alansmithee"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+3 things to know about planning for OTA updates in your homelab
+======
+Define your over-the-air update plan for mobile phones, IoT devices, and edge computing before you even start coding your app.
+
+![Why and how to handle exceptions in Python Flask][1]
+
+Image from Unsplash.com, Creative Commons Zero
+
+Updates to a system used to be relatively straightforward. When a developer needed to revise something that they'd already distributed to the public, an updater would be released for people to run. Users would run the updater, allowing old files to be replaced by new files and new files to be added. Even with these "relatively straightforward" updates, though, there was a catch. What happens when a user's installation is in an unexpected state? What happens when an upgrade is interrupted? These questions are just as relevant now when all kinds of devices are online, and sometimes in need of important security updates. Many updates today are delivered wirelessly, over-the-air (OTA), and the potential for poor connections, sudden loss of signal, or loss of power, can potentially be disastrous to what should be a minor update. These are the top three strategies you need to consider when planning to deliver over-the-air updates.
+
+### 1. Verification
+
+The TCP protocol has a lot of verification built in, so it's usually true that when you [send packets to a device][2], you can be confident that each packet has been received intact. However, TCP can't report errors on something it doesn't know about, so it's up to you to verify things like:
+
+* Have you sent all files required for the update? A device can't receive what wasn't sent in the first place.
+* Are the files received the same as the files you sent? At the very least, check SHA sums to verify file integrity.
+* When possible, use [digital signing][3] to ensure that a file is from a trusted source.
+* You must verify that the device is able to apply an update before you allow the update to begin. Check permissions and battery state before committing to an update, and ensure that your update process overrides any unexpected user events, like a scheduled reboot or hibernation.
+* Finally, you must verify that an update that claims to have completed successfully has actually completed. Check file locations and integrity on the target device before allowing the update to officially be marked as resolved by the system.
+
+### 2. Fallback and failstates
+
+The worst-case scenario for an update is that a device is left in a broken state, such that it can't even be used to continue an aborted update. In that scenario, the updater files exist on the target device, but the process has been interrupted. This can leave a device in an unknown state, where some files have been replaced with updated versions, while others haven't been touched. In the worst case, files that have been updated are incompatible with files that haven't yet been updated, and so the device cannot function as expected.
+
+There are a few strategies to handle this. The initial update step could be to install a special boot image or environment dedicated to completing the update, and setting a "flag" on the system to establish that an update is in progress. This ensures that even when a device suddenly loses power in the middle of an update, the update process is started fresh during the next boot. The flag signaling a successful update is removed only once the update has been verified.
+
+A special boot image may not be feasible or necessary, depending on the security policy of the target device and what you're updating. The principle remains the same, though. Once it has been started, an update must establish an environment in which the pending update is the only way forward until it's resolved.
+
+Up until an update has been granted permission to start, though, a user (when there is one) should have the ability to delay or ignore the update.
+
+### 3. Additive
+
+In many edge and IoT devices, the foundation of the target device is immutable. Updates only add to a known state of a system. Projects like [Fedora Silverblue][4] are demonstrating that this model can work across many markets, so that luxury might become commonplace. Until then, though, part of successfully applying an update is understanding the environment you're about to affect.
+
+You don't need an immutable core to apply additive updates, though. You may be able to architect a system to use the same concept, using update as a way to add libraries or packages without revising the old versions. As the final step of such an update, the executable with updated paths is the only actual revision you make.
+
+### OTA updates
+
+The world is increasingly wireless. For mobile phones, IoT devices, and [edge computing][5], over-the-air updates are often the only option. Implementing an OTA update policy takes careful planning and careful accounting for improbable scenarios. You know your target devices best, so map out your update schema well before you begin coding so that your initial architecture is designed for robust and safe OTA.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/plan-ota-updates-edge
+
+作者:[Alan Smithee][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://opensource.com/users/alansmithee
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/lead-images/computer_code_programming_laptop.jpg
+[2]: https://www.redhat.com/sysadmin/beginners-guide-network-troubleshooting-linux
+[3]: https://www.redhat.com/sysadmin/digital-signatures-gnupg
+[4]: https://silverblue.fedoraproject.org
+[5]: https://www.redhat.com/en/topics/edge-computing/what-is-edge-computing?intcmp=7013a000002qLH8AAM
diff --git a/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md b/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md
new file mode 100644
index 0000000000..bf81ae4708
--- /dev/null
+++ b/sources/tech/20220905 How To Perform Arithmetic Operations In Bash.md
@@ -0,0 +1,269 @@
+[#]: subject: "How To Perform Arithmetic Operations In Bash"
+[#]: via: "https://ostechnix.com/bash-arithmetic-operations/"
+[#]: author: "Karthick https://ostechnix.com/author/karthick/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How To Perform Arithmetic Operations In Bash
+======
+Different Ways To Do Mathematical Operations In Bash
+
+In this article, we will focus on how to **do mathematical operations in bash scripts**. We can **perform arithmetic operations in Bash** using the built-in and external tools. First, we will learn about the built-in tools.
+
+**Note:** Unlike other programming languages, bash arithmetic operations are not straight-forward(at least for me). There are multiple bash built-in and external programs to perform the same operations. If you want to perform any complex mathematical computation, then a shell is not a recommended way to do it.
+
+#### Contents
+
+1. Do Mathematical Operations In Bash Using The Built-in "let" Command
+2. Do Arithmetic Operations In Bash Using The Built-in Double Brackets
+3. Perform Arithmetic Operations In Bash Using Expr Utility
+4. Perform Bash Arithmetic Operations Using bc Utility
+5. Perform Mathematical Operations With AWK
+6. Conclusion
+
+### Do Mathematical Operations In Bash Using The Built-in "let" Command
+
+Using the `let` command, you can perform arithmetic, incremental, bitwise, and conditional operations. The drawback with the let command is it cannot handle floating point values.
+
+The `let` command in bash is a built-in command. You can verify that by running the following command in the terminal.
+
+```
+$ type -a letlet is a shell builtin
+```
+
+Run the following command to get the help section where you can find the list of operators supported by the ‘let’ command.
+
+```
+$ let -help
+```
+
+**Sample output:**
+
+![Display let Command Help Section][1]
+
+There are a few essential points to note when working with the let command.
+
+* The output of any operation should be assigned to a variable and then printed. The ‘let’ command will not allow you to print the outputs straight away.
+* No space is allowed between the operator and the operand.
+
+Create a shell script, copy and paste the below example code and try running the script. In the code given below, I am performing arithmetic operations. As mentioned already, the output of the expression should be assigned to a variable before printing it out.
+
+```
+#!/usr/bin/env bash
+
+let NUMBER1=10
+let NUMBER2=3
+
+# Addition => + operator
+let ADD=$NUMBER1+$NUMBER2
+echo "Addition of two numbers : ${ADD}"
+
+# Subtraction => - operator
+let SUB=$NUMBER1-$NUMBER2
+echo "Subtraction of two numbers : ${SUB}"
+
+# Multiply => * operator
+let MUL=$NUMBER1*$NUMBER2
+echo "Multiply two numbers : ${MUL}"
+
+# Divide => / operator
+let DIV=$NUMBER1/$NUMBER2
+echo "Division of two numbers : ${DIV}"
+
+# Remainder => % operator
+let REM=$NUMBER1%$NUMBER2
+echo "Remainder of two numbers : ${REM}"
+
+# Exponent => ** operator
+let EXPO=$NUMBER1**$NUMBER2
+echo "Exponent of two numbers : ${EXPO}"
+```
+
+![Do Mathematical Operations In Bash Scripts][2]
+
+You can also do post increment and post decrement operations too. This operation will be mostly used when we are running loops in the script.
+
+* The post increment operation will increase the variable value to VARIABLE + 1.
+* The pre-increment operation will increase the variable value to VARIABLE - 1.
+
+```
+let variable++let variable--
+```
+
+![Do Post Increment And Post Decrement Operations][3]
+
+You can also do other comparison operations like checking for equality, inequality, greater than, less than, etc. I would strongly recommend not using the `let` command to do any comparison operations as there are better ways to handle it.
+
+### Do Arithmetic Operations In Bash Using The Built-in Double Brackets
+
+As an alternative to the `let` command, you can use the **double brackets** method where you have to place the operator and the operand within the double brackets.
+
+The advantage of this method over the `let` command is that the result can be straightaway printed or stored in a variable and you can add spaces between the operator and the operand. Similar to the `let` command, you cannot do any floating point operations.
+
+The example given below is pretty much the same as the examples shown in the `let` command. All you have to do is put your expression inside double brackets. There is no need to prepend the variables with the **$** symbol inside the double brackets. Just give the variable name and the value will be interpreted.
+
+From the below image, if you can see lines 12 and 13 you will see a difference in how the expression is handled. Anything within the brackets will be first evaluated and the result of it will be computed against other operands. You can see this behavior in the output of **"Multiply"** and **"Multiply1"**.
+
+![Perform Arithmetic Operations In Bash Scripts Using Double Brackets][4]
+
+Similar to the `let` command, you can also do post increment and decrement operations.
+
+```
+((NUMBER2++)((NUMBER1--))
+```
+
+You can also perform shorthand operations.
+
+```
+(( NUMBER2 = NUMBER2 + 10 ))(( NUMBER2 += 10 )) # Shorthand
+```
+
+![Perform Post Increment And Decrement Operations][5]
+
+### Perform Arithmetic Operations In Bash Using Expr Utility
+
+In the previous sections, we have seen about built-in functionality and in this section, we will take a look at **"expr"**, which is an external program.
+
+Not only the mathematical operations, the expr utility can also do operations on strings like finding the index of a character, length of a string, substring etc.
+
+Before using the expr program, go through the man page which will give you a fair bit of understanding about this utility.
+
+```
+$ man expr$ expr -help
+```
+
+Following is the syntax for the `expr` command:
+
+```
+$ expr
+```
+
+The basic arithmetic operation is the same as what we have seen in the previous sections. The only difference here is when using ***** to do a multiplication operation you have to escape it with **"\"** otherwise it will throw an error.
+
+```
+expr 10 + 3 # Additionexpr 10 - 3 # Subtractionexpr 10 * 3 # Multiplyexpr 10 / 3 # Divideexpr 10 % 3 # Remainder
+```
+
+![Perform Arithmetic Operations In Bash Using Expr Utility][6]
+
+Till now we have seen about three different ways to do basic arithmetic and incremental operation. Compared to the `let` and `expr`, the **recommended approach is to use double parentheses**.
+
+A commonality with these three approaches is that they cannot handle floating point operations. You have to rely on external utilities like `awk` and `bc` to do floating point operations.
+
+### Perform Bash Arithmetic Operations Using bc Utility
+
+The **bc** utility is an external program that can be used to do basic as well as complex mathematical operations. **Floating point operation is also supported** by the bc utility.
+
+You can view the type of the bc utility and its manual page using the following commands:
+
+```
+$ type -a bc$ man bc
+```
+
+Following examples show simple mathematical operations with Integer and floating values.
+
+```
+# Add
+$ echo "10 + 100" | bc
+=> 110
+
+$ echo "10.15 + 11.20" | bc
+21.35
+
+# Subtract
+$ echo "100 - 25" | bc
+=> 75
+
+$ echo "100 - 25.5" | bc
+=> 74.5
+
+# Multiply
+$ echo "10 * 5" | bc
+=> 50
+
+$ echo "10.10 * 4" | bc
+=> 40.40
+```
+
+When doing division operation you have to set the scale value for the result to be printed in floating point value otherwise the result will be an integer value. The value set in the scale decides how many digits to be printed after the decimal.
+
+```
+# without scale
+echo "10.10 / 4" | bc
+=> 2
+```
+
+```
+# with scaleecho "scale=2;10.10 / 4" | bc=> 2.52
+```
+
+You can also do exponent operation.
+
+```
+$ echo "2.2^4" | bc=> 23.4
+```
+
+### Perform Mathematical Operations With AWK
+
+**Awk** offers more functionality to do mathematical computation compared to other utilities. It has a couple of built-in functions which will make our life easy.
+
+Below is the syntax to do mathematical computation.
+
+```
+$ awk "BEGIN {print expression }"
+```
+
+To perform a simple multiplication, run:
+
+```
+$ awk "BEGIN {print 23 * 4.5 }"=> 103.5
+```
+
+From a floating point value, you can get the integer value alone using the `int` function.
+
+```
+$ awk "BEGIN{print int(10.111) }"=> 10
+```
+
+You can also calculate the square root of a given number using the `sqrt` function.
+
+```
+$ awk "BEGIN{print sqrt(10) }"=> 3.16228
+```
+
+Particularly when working with CSV files I often end up in situations to compute the average of a column. You can simply calculate the average of a column with the following code.
+
+Since this is a CSV file, I am setting the field separator to(-F “,”). Here the entire second column is first added and divided by the NR(number of records).
+
+```
+$ awk -F "," '{sum+=$2} END { print "average value from column 2 = ",sum/NR}' data.csv
+```
+
+We will post a detailed guide about **awk** in the days to come.
+
+### Conclusion
+
+In this article, I have shown you various methods to perform simple mathematical operations in Bash. If you are performing very simple arithmetic operations, stick with the double bracket approach and for more complex operations use awk.
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/bash-arithmetic-operations/
+
+作者:[Karthick][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://ostechnix.com/author/karthick/
+[b]: https://github.com/lkxed
+[1]: https://ostechnix.com/wp-content/uploads/2022/09/Display-let-Command-Help-Section.png
+[2]: https://ostechnix.com/wp-content/uploads/2022/09/Do-Mathematical-Operations-In-Bash-Scripts.png
+[3]: https://ostechnix.com/wp-content/uploads/2022/09/Do-Post-Increment-And-Post-Decrement-Operations.png
+[4]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Arithmetic-Operations-In-Bash-Scripts-Using-Double-Brackets.png
+[5]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Post-Increment-And-Decrement-Operations.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/09/Perform-Arithmetic-Operations-In-Bash-Using-Expr-Utility.png
diff --git a/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md b/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md
new file mode 100644
index 0000000000..c09c980102
--- /dev/null
+++ b/sources/tech/20220905 How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step.md
@@ -0,0 +1,235 @@
+[#]: subject: "How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step"
+[#]: via: "https://www.linuxtechi.com/how-to-deploy-docker-swarm-on-ubuntu/"
+[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Deploy Docker Swarm on Ubuntu 22.04 Step-by-Step
+======
+In this guide, we will cover how to deploy Docker Swarm on Ubuntu 22.04 step-by-step.
+
+#### What is Docker Swarm?
+
+Docker Swarm is a container orchestration tool that runs on the Docker platform. It helps users to create and manage a cluster of Docker nodes. Clustering in Docker is a crucial concept in providing redundancy by enabling Docker Swarm to fail over should one or more nodes in the cluster fail.
+
+Docker Swarm uses the standard Docker API to communicate with other tools such as Docker Engine. It intelligently assigns containers to worker nodes and ensures resource optimization by scheduling container workloads to run on the most suitable node(s)
+
+##### Lab setup
+
+To demonstrate how Docker Swarm works, we have a simple cluster that comprises a Swarm Manager node and two worker nodes as shown. The Manager nodes handle all the cluster management tasks while the worker nodes will run the containers.
+
+* swarm-manager 10.128.0.57
+* worker-node-1 10.128.0.58
+* worker-node-2 10.128.0.59
+
+### Step 1) Configure the Cluster hosts file
+
+To start off, log into each of the nodes and update the /etc/hosts file with the following entries:
+
+```
+swarm-manager 10.128.0.57
+worker-node-1 10.128.0.58
+worker-node-2 10.128.0.59
+```
+
+Next, ensure that all the nodes can ping each other. Therefore, on the manager node, run the commands:
+
+```
+$ ping -c 4 10.128.0.58
+$ ping -c 4 10.128.0.59
+```
+
+On worker Node 1
+
+```
+$ ping -c 4 10.128.0.57
+$ ping -c 4 10.128.0.59
+```
+
+On worker Node 2
+
+```
+$ ping -c 4 10.128.0.57
+$ ping -c 4 10.128.0.58
+```
+
+### Step 2) Install Docker CE on all the nodes
+
+The next step is to install Docker on all the nodes. We are going to install Docker Community Edition (Docker CE) which is free to install and use.
+
+Therefore, log into each of the nodes and update the local package index.
+
+```
+$ sudo apt update
+```
+
+Next, install the prerequisites package needed during the installation
+
+```
+$ sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
+```
+
+Once all the packages have been installed, add the Docker GPG key
+
+```
+$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
+```
+
+In the next step, add the official Docker repository to your Ubuntu 22.04 system
+
+```
+$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+```
+
+Next, update the local package index to make the system, aware of the newly added repository.
+
+```
+$ sudo apt update
+```
+
+Then install Docker from the official Docker repository,
+
+```
+$ sudo apt install docker-ce -y
+```
+
+The command installs Docker alongside additional packages that will be required by Docker to function as expected.
+
+![Install-docker-ce-apt-command-ubuntu][1]
+
+Once Docker is installed, add the currently logged-in user to the Docker group to avoid running Docker as a [sudo user][2] every time you run Docker.
+
+```
+$ sudo usermod -aG docker ${USER}
+$ newgrp docker
+```
+
+### Step 3) Verify Docker is running on all the nodes
+
+Once installed, the Docker daemon starts automatically. You can verify that the service is running by running the command:
+
+```
+$ sudo systemctl status docker
+```
+
+![Docker-Service-Status-Ubuntu-22-04][3]
+
+Additionally, be sure to enable the Docker service so that it starts automatically on boot time.
+
+```
+$ sudo systemctl enable docker
+```
+
+### Step 4) Create Docker Swarm Cluster
+
+The next step is to initialize the Docker Swarm on the Manager node. Once initialized, we will then add the worker nodes to the cluster.
+
+To create a Docker Swarm Cluster, run the command:
+
+```
+$ sudo docker swarm init --advertise-addr 10.128.0.57
+```
+
+![Docker-Swarm-Init-Ubuntu-22-04][4]
+
+Once Docker Swarm has been initialized, a command for joining the worker nodes to the cluster will be displayed on the terminal. Copy the command as you will need to run it on each of the worker nodes as previously mentioned.
+
+Next, login back to each of the worker nodes and paste the command in order to join the cluster.
+
+```
+$ sudo docker swarm join --token SWMTKN-1-1k397e5o52cae0yipopqcu9werjcwuss1exbyj4635rrjjl723-7ocx56uhb7p1ri7h2u6ynxyno 10.128.0.57:2377
+```
+
+If all goes well, you should get the following output
+
+Output
+
+This node joined a swarm as a worker
+
+![Docker-Swarm-Join-Worker-Nodes-Ubuntu][5]
+
+Next, confirm that all the nodes have joined the cluster as follows.
+
+```
+$ sudo docker node ls
+```
+
+You should get the following output displaying all the nodes in the cluster.
+
+![List-Nodes-in-docker-Swarm-Ubuntu][6]
+
+### Step 5) Test Docker Swarm Installation
+
+To test docker swarm installation, head over to the manager node and deploy a container application to the cluster. In this example, we are deploying an Nginx web server container and mapping it to port 8080 on the host.
+
+```
+$ sudo docker service create --name web-server --publish 8080:80 nginx:latest
+```
+
+![Nginx-Based-Service-docker-swarm][7]
+
+Next, verify the status of the application service deployed.
+
+```
+$ sudo docker service ls
+```
+
+![List-Service-in-Docker-Swarm][8]
+
+### Step 6) Create replicas of the service
+
+Finally, create three replicas of the service and scale them across both the Docker manager and the worker nodes.
+
+```
+$ sudo docker service scale web-server=3
+```
+
+![Service-Scale-docker-Swarm][9]
+
+Next, confirm the status of the replicas. This time around, you will notice that we have 3 replicas.
+
+![Verify-Service-inDocker-Swarm][10]
+
+At this point, Nginx web server container should be running across all the nodes in the cluster on port 8080. To confirm this, head over to your browser, and access the web server from all the nodes.
+
+http://manager-node:8080
+
+http://worker-node-1:8080
+
+http://worker-node-2:8080
+
+![Nginx-Sample-Page-Docker-Swarm-Service][11]
+
+##### Conclusion
+
+In this guide, we managed to install and configure Docker Swarm. We also went a step further and deployed an application to the cluster and later scaled it across all the nodes in the cluster.
+
+Read Also: 20 Useful Docker Command Examples in Linux
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/how-to-deploy-docker-swarm-on-ubuntu/
+
+作者:[Pradeep Kumar][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.linuxtechi.com/author/pradeep/
+[b]: https://github.com/lkxed
+[1]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Install-docker-ce-apt-command-ubuntu.png
+[2]: https://www.linuxtechi.com/create-sudo-user-on-rhel-rocky-linux-almalinux/
+[3]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Service-Status-Ubuntu-22-04.png
+[4]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Swarm-Init-Ubuntu-22-04.png
+[5]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Docker-Swarm-Join-Worker-Nodes-Ubuntu.png
+[6]: https://www.linuxtechi.com/wp-content/uploads/2022/09/List-Nodes-in-docker-Swarm-Ubuntu.png
+[7]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Based-Service-docker-swarm.png
+[8]: https://www.linuxtechi.com/wp-content/uploads/2022/09/List-Service-in-Docker-Swarm.png
+[9]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Service-Scale-docker-Swarm.png
+[10]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Verify-Service-inDocker-Swarm.png
+[11]: https://www.linuxtechi.com/wp-content/uploads/2022/09/Nginx-Sample-Page-Docker-Swarm-Service.png
diff --git a/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md b/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md
new file mode 100644
index 0000000000..d7bb9a8147
--- /dev/null
+++ b/sources/tech/20220905 Manage containers on Fedora Linux with Podman Desktop.md
@@ -0,0 +1,142 @@
+[#]: subject: "Manage containers on Fedora Linux with Podman Desktop"
+[#]: via: "https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/"
+[#]: author: "Mehdi Haghgoo https://fedoramagazine.org/author/powergame/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Manage containers on Fedora Linux with Podman Desktop
+======
+![][1]
+
+Podman Desktop is an open-source GUI application for managing containers on Linux, macOS, and Windows.
+
+Historically, developers have been using Docker Desktop for graphical management of containers. This worked for those who had Docker Daemon and Docker CLI installed. However, for those who used Podman daemon-less tool, although there were a few Podman frontends like [Pods][2], [Podman desktop companion][3], and [Cockpit][4], there was no official application. This is not the case anymore. Enter Podman Desktop!
+
+This article will discuss features, installation, and use of Podman Desktop, which is developed by developers from Red Hat and other open-source contributors.
+
+### Installation
+
+To install Podman Desktop on Fedora Linux, head over to [podman-desktop.io][5], and click the *Download for Linux* button. You will be presented with two options: Flatpak and zip. In this example we are using Flatpak. After clicking *Flatpak*, open it in GNOME Software by double clicking the file (if you are using GNOME). You can also install it via the terminal:
+
+```
+flatpak install podman-desktop-X.X.X.flatpak
+```
+
+In the above command, replace X.X.X with the specific version you have downloaded. If you downloaded the zip file, then extract the archive, and launch the *Podman Desktop* application binary. You can also find pre-release versions by going to the project’s [releases][6] page on GitHub.
+
+### Features
+
+Podman Desktop is still in its early days. Yet, it supports many common container operations like creating container images, running containers, etc. In addition, you can find a Podman extension under Extensions Catalog in Preferences, which you can use to manage Podman virtual machines on macOS and Windows. Futhermore, Podman Desktop has support for Docker Desktop extensions.
+
+You can install such extensions in the Docker Desktop Extensions section under Preferences. The application window has two panes. The left narrow pane shows different features of the application and the right pane is the content area, which will display relevant information given what is selected on the left.
+
+![Podman Desktop 0.0.6 running on Fedora 36][7]
+
+### Demo
+
+To get an overall view of Podman Desktop’s capabilities, we will create an image from a Dockerfile and push it to a registry, then pull and run it, all from within Podman Desktop.
+
+#### Build image
+
+The first step is to create a simple Dockerfile by entering the following lines in the command line:
+
+```
+cat <>Dockerfile
+FROM docker.io/library/httpd:2.4
+COPY . /var/www/html
+WORKDIR /var/www/html
+
+CMD ["httpd", "-D", "FOREGROUND"]
+EOF
+```
+
+Now, go to the Images section and press the Build Image button. You will be taken to a new page to specify the Dockerfile, build context and image name. Under Containerfile path, click and browse to pick your Dockerfile. Under image name, enter a name for your image. You can specify a fully qualified image name (FQIN) in the form example.com/username/repo:tag if you want to push the image to a container registry. In this example, I enter quay.io/codezombie/demo-httpd:latest, because I have a public repository named demo-httpd on quay.io. You can follow a similar format to specify your FQIN pointing to your container registry (Quay, Docker Hub, GitHub Container Registry, etc.). Now, press *Build* and wait for the build to complete.
+
+#### Push image
+
+Once the build is finished, it’s time to push the image. So, we need to configure a registry in Podman Desktop. Go to Preferences, Registries and press *Add registry.*
+
+![Add Registry dialog][8]
+
+In the Add Registry dialog, enter your registry server address, and your user credentials and click ADD REGISTRY.
+
+Now, I go back to my image in the list of images and push it to the repository by pressing the upload icon. When you hover over the image name that starts with the name of the registry added in the settings (quay.io in this demo), a push button appears alongside the image name.
+
+![The push button that appears when you hover over the image name][9]
+
+![Image pushed to repository via Podman Desktop][10]
+
+Once the image is pushed, anyone with access to the image repository can pull it. Since my image repository is public, you can easily pull it in Podman Desktop.
+
+#### Pull image
+
+So, to make sure things work, remove this image locally and pull it in Podman Desktop. Find the image in the list and remove it by pressing the *delete* icon. Once the image is removed, click the *Pull Image* button. Enter the fully qualified name in the *Image to Pull* section and press *Pull image*.
+
+![Our container image is successfully pulled][11]
+
+#### Create a container
+
+As the last part in our Podman Desktop demo, let us spin up a container from our image and check the result. I go to *Containers* and press *Create Container*. This will open up a dialog with two choices: *From Containerfile/Dockerfile*, and *From existing image*. Press *From existing image*. This takes us to the list of images. There, select the image we pulled.
+
+![Create a container in Podman Desktop][12]
+
+Now, we select our recently-pulled image from the list and press the *Play* button in front of it. In the dialog that appears, I enter demo-web as *Container Name* and 8000 as *Port Mapping*, and press *Start Container*.
+
+![Container configuration][13]
+
+The container starts running and we can check out our Apache server’s default page by running the following command:
+
+```
+curl http://localhost:8000
+```
+
+![It works!][14]
+
+You should also be able to see the running container in the Containers list, with its status changed to *Running*. There, you will find available operations in front of the container. For example, you can click the terminal icon to open a TTY into the container!
+
+![][15]
+
+### What Comes Next
+
+Podman Desktop is still young and under [active development][16]. There is a project [roadmap][17] on GitHub with a list of exciting and on-demand features including:
+
+* Kubernetes Integration
+* Support for Pods
+* Task Manager
+* Volumes Support
+* Support fo Docker Compose
+* Kind Support
+
+--------------------------------------------------------------------------------
+
+via: https://fedoramagazine.org/manage-containers-on-fedora-linux-with-podman-desktop/
+
+作者:[Mehdi Haghgoo][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://fedoramagazine.org/author/powergame/
+[b]: https://github.com/lkxed
+[1]: https://fedoramagazine.org/wp-content/uploads/2022/09/podman-desktop-on-fedora-816x345.jpg
+[2]: https://github.com/marhkb/pods
+[3]: https://github.com/iongion/podman-desktop-companion
+[4]: https://github.com/cockpit-project/cockpit/
+[5]: https://podman-desktop.io/
+[6]: https://github.com/containers/podman-desktop/releases/
+[7]: https://fedoramagazine.org/wp-content/uploads/2022/08/pd.png
+[8]: https://fedoramagazine.org/wp-content/uploads/2022/08/registry.png
+[9]: https://fedoramagazine.org/wp-content/uploads/2022/08/image.png
+[10]: https://fedoramagazine.org/wp-content/uploads/2022/08/Screenshot-from-2022-08-27-23-51-38.png
+[11]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-2.png
+[12]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-3.png
+[13]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-5.png
+[14]: https://fedoramagazine.org/wp-content/uploads/2022/08/image-6.png
+[15]: https://fedoramagazine.org/wp-content/uploads/2022/09/image-2-1024x393.png
+[16]: https://github.com/containers/podman-desktop
+[17]: https://github.com/orgs/containers/projects/2
diff --git a/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md b/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md
new file mode 100644
index 0000000000..7ca3535a6c
--- /dev/null
+++ b/translated/tech/20220520 Ubuntu vs Manjaro- Comparing the Different Linux Experiences.md
@@ -0,0 +1,202 @@
+[#]: subject: "Ubuntu vs Manjaro: Comparing the Different Linux Experiences"
+[#]: via: "https://itsfoss.com/ubuntu-vs-manjaro/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "Return7g"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+对比Ubuntu和Manjaro:比较不同的Linux发行版体验
+
+======
+Ubuntu 是基于 Debian 最流行的桌面和服务器 Linux 发行版。
+
+Manjaro 是基于 Arch 量身定制的 Linux 发行版。
+
+两者在用户体验以及功能上都大相径庭。
+
+然而,在比较Manjaro的GNOME版和Ubuntu时,其中一个共同点是[桌面环境][1]。
+
+
+但它们之间的差异到底在哪? Manjaro 的包管理器会更好用吗?Ubuntu 和 Manjaro 上的软件生态怎么样?
+
+接下来,我们来看看两个 Linux 发行版在某些关键问题上的差异。
+
+
+### 发行周期
+Ubuntu根据你选择的版本不同提供了两个发行周期。如果你选择的是长期发行版本(Long Term Support, LTS),那么你在至少未来五年内都会收到安全维护更新。
+
+假如你安装了 Ubuntu 22.04 ,那么你在**2027 年 4 月**之前都能获取更新。
+![ubuntu22 04 lts about][2]
+
+因此我们更推荐普通用户使用 LTS 版本。
+
+如果你想要更新更好的体验,你可以选择每**九个月**更新一次的非 LTS 版本。例如 Ubuntu 21.04, Ubuntu 21.10, Ubuntu 22.10。
+
+需要注意的是,非 LTS 版本涉及的更改可能会影响你的工作流程以及用户体验。因此并不推荐所有人都去使用非 LTS 版本。
+
+选择 Manjaro Linux 时你将会获得滚动发行时间表,因此你不必担心对你使用版本的支持。它会通过定期更新升级到最新的可用版本。
+
+![manjaro about][3]
+
+由于滚动发行周期的原因,你可以快速获取到最新的软件包。因此如果你想使用某个软件的历史版本,Manjaro 或许并不适合你。
+
+### 桌面环境
+Ubuntu 有 GNOME 版本桌面的定制版。它可能不是最新的,但如果你使用较新的 Ubuntu 版本,它可能包含最新的 GNOME 桌面环境。
+
+![ubuntu 22 04 wallpaper][4]
+
+Canonical (Ubuntu 背后的公司)并不提供其它桌面环境
+
+但如果你想在 Ubuntu 上使用其它桌面环境,你可以选择官方的[Ubuntu 风格][5] KDE, Budgie, LXQt, MATE 以及 XFCE 作为桌面环境。与具有其他桌面环境的非官方或更新版本的 Ubuntu 相比,它们是经过良好测试且稳定的 Ubuntu Linux 发行版。
+
+但是这些Ubuntu 版本没有五年的软件支持; 相反,你将被限制为对 LTS 版本的三年支持。
+
+如果使用 Manjaro,你可以选择官方提供的三个版本:XFCE, KDE 和 GNOME。 无论桌面环境如何,你都会使用滚动发布模式。
+
+![manjaro gnome 42][6]
+
+当然你也可以使用一些社区版本如 Budgie, MATE, LXQt。
+
+### 包管理器以及软件生态
+在上述这些发行版中找到大多数必要的 Linux 应用是没问题的。
+
+Manjaro Linux 使用 Pamac 作为其包管理器获得了更快速的体验。
+
+![manjaro package manager][8]
+
+与 Ubuntu 上的应用商店相比,Manjaro Linux 在快速安装/更新软件方面提供了更好的体验。 而且,如果您想通过单击启用它们,它还支持开箱即用的 Flatpak/Snap。
+
+Ubuntu 比较重视 Snap 包,你会发现一些应用程序预装为 Snap包(如 Firefox 浏览器)。
+
+![firefox as snap][9]
+
+对于 Manjaro Linux来说,你可以根据自身需求决定是否启用 Flatpak/Snap。
+
+在使用 Ubuntu时,应用商店提供的 Linux 应用并不是最好的。取决于你的系统配置和使用年限,它会变得越来越慢。
+![ubuntu 22 04 software center][10]
+
+除此之外,Manjaro Linux 还可以访问 [AUR][11],它可以获得你在 Ubuntu 应用商店中可能找不到的几乎所有软件。
+
+因此,就软件生态系统和包管理器而言,Manjaro Linux 的确要比 Ubuntu 有更多的优势。
+
+### 易用性和目标用户
+
+Ubuntu 桌面主要是为了易于使用而量身定制的。它专注于提供最佳的软件和硬件兼容性组合,让所有计算机用户都可以使用 Ubuntu Linux,而无需了解 Linux 世界中的大部分内容。
+
+即使有人不知道 Linux 上的“包管理器”是什么,在他们使用它时也可以完全把它作为 Windows/macOS 的完美替代品。
+
+当然,我们也有一个指南来帮助您[安装最新的 Ubuntu 后要做的事情][12]。
+
+
+Manjaro Linux 也是为桌面用户使用量身定制的。 但是它并不适合首次使用 Linux 的用户使用。
+
+它旨在简化 Arch Linux 的操作。 因此主要面向想要使用 Arch Linux 的 Linux 用户增加了一些便利性。
+
+### 稳定性
+![stability tux][13]
+
+Ubuntu LTS 版本主要关注稳定性和可靠性,因此你也可以在服务器上部署它们。
+
+相比之下,Manjaro Linux 可能没有开箱即用那么稳定。 你在 Manjaro Linux 中安装软件包时需要更加仔细,同时密切注意你的配置,以确保更新不会破坏你的系统。
+
+对于 Ubuntu 用户来说则无需担心软件更新,尤其是在考虑 LTS 版本时,更新通常不会破坏你的系统。
+
+
+### 个性化
+Ubuntu 有一个由 Canonical 为最终用户设置的定制 GNOME 桌面。 虽然你可以自由选择不同的 Linux 发行版,但 Ubuntu 提供的开箱即用的功能让然很少
+
+Ubuntu 多年来一直在改进,最近增加了[在 Ubuntu 22.04 LTS 中添加强调色][14] 的能力。 但是它仍然还有很长的路要走。
+
+如果你想获得个性化的桌面体验,你只能借助[GNOME Tweak][15] 等软件来实现。
+
+对比 Manjaro GNOME,你也只能使用相同的工具来自定义桌面。
+
+Manjaro 还对外观进行了一些自定义调整。但是它提供了更多组件来更改布局和其他一些选项。
+
+![manjaro layout][16]
+
+在个性定制方面,你在 Manjaro 和 Ubuntu 上的体验大致相同。
+
+如果您想要更多自定义选项,Manjaro Linux 可能是一个不错的选择。 但是如果你只想要一个个性化体验而不需要太多的改变,Ubuntu 应该就足够了。
+
+### 臃肿的软件
+这对每个人来说可能都不是什么大问题。 但如果你不喜欢预装许多应用程序,那么 Ubuntu 可能会令你感到麻烦。
+
+![ubuntu 22 apps][17]
+
+虽然可以随时删除不需要的应用程序。但是你会发现更多随 Ubuntu 一起安装的软件和服务还有很多。
+
+使用 Manjaro时,你在安装时只需要安装最基础的内容即可。它们坚持使用最基础的实用程序,最大限度地减少预装的软件包数量。 因此,Manjaro 很少会和软件臃肿联系到一起。
+
+但是你在默认安装的 Manjaro 上可能找不到你最喜欢的 Linux 软件。 因此,如果你想在安装后立即使用一些你喜欢的软件,Ubuntu 可能是一个不错的选择。
+
+
+### 性能
+![ubuntu 22 04 neofetch lolcat][18]
+
+虽然 Ubuntu 提高了系统性能,甚至可以在 2 GB 内存的树莓派上运行,但它仍然不是性能最好的 Linux 发行版。
+
+当然,性能确实取决于你选择使用的桌面环境。
+
+但是与 Manjaro 的 GNOME 版本相比,Manjaro 提供了更快捷的体验。
+
+需要注意的是,性能和动画首选项的用户体验还取决于你的系统配置。例如,Manjaro 推荐旧电脑系统达到拥有 1GB 内存和 1GHz 处理器。
+
+但是,对于 Ubuntu,在撰写本文时,你至少需要 4 GB 内存 和 2 GHz 双核处理器才能获得理想的桌面体验。
+
+
+### 文档
+考虑到 Ubuntu 的受欢迎程度,Ubuntu 更易于使用,并且对新用户来说可能更舒适。
+
+[Ubuntu 的文档][19] 即使不是最好也足够好了。
+
+谈到 Manjaro Linux,他们有一个 [wiki][20],其中包含基础信息和深入的指南来帮助你入门。
+
+总的来说,[Arch Linux 的文档][21] 非常细致,几乎每个人(甚至是老手)都会参考它来寻求帮助。
+
+Arch Linux 的文档在很大程度上也适用于 Manjaro Linux,因此在文档方面,使用 Manjaro Linux 比 Ubuntu 更有优势。
+
+### 结束语
+作为两个完全不同的 Linux 发行版,它们服务于各种类型的用户。你可以选择任意你感兴趣的操作系统并尝试去使用它来判断它是否适合你。
+
+但是不管 Linux 发行版如何,你想避免对系统进行任何更改并专注于你的工作,Ubuntu 应该是一个明智的选择。
+
+无论如何,如果 Ubuntu 的性能对你的体验有相当大的影响,你应该去尝试 Manjaro。 你可以阅读我的 [关于从 Ubuntu 切换到 Manjaro 的初步想法][22]。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/ubuntu-vs-manjaro/
+
+作者:[Ankush Das][a]
+选题:[lkxed][b]
+译者:[Return7g](https://github.com/Return7g)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/author/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/what-is-desktop-environment/
+[2]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu22-04-lts-about.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-about.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-wallpaper.jpg
+[5]: https://itsfoss.com/which-ubuntu-install/
+[6]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-gnome-42.png
+[7]: https://itsfoss.com/essential-linux-applications/
+[8]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-package-manager.png
+[9]: https://itsfoss.com/wp-content/uploads/2022/04/firefox-as-snap.jpg
+[10]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-software-center.jpg
+[11]: https://itsfoss.com/aur-arch-linux/
+[12]: https://itsfoss.com/things-to-do-after-installing-ubuntu-22-04/
+[13]: https://itsfoss.com/wp-content/uploads/2022/05/stability-tux.png
+[14]: https://itsfoss.com/accent-color-ubuntu/
+[15]: https://itsfoss.com/gnome-tweak-tool/
+[16]: https://itsfoss.com/wp-content/uploads/2022/05/manjaro-layout.png
+[17]: https://itsfoss.com/wp-content/uploads/2022/05/ubuntu-22-apps.jpg
+[18]: https://itsfoss.com/wp-content/uploads/2022/04/ubuntu-22-04-neofetch-lolcat-800x445.png
+[19]: https://help.ubuntu.com/
+[20]: https://wiki.manjaro.org/index.php/Main_Page
+[21]: https://wiki.archlinux.org/
+[22]: https://news.itsfoss.com/manjaro-linux-experience/
diff --git a/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md b/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md
new file mode 100644
index 0000000000..da3bfc901e
--- /dev/null
+++ b/translated/tech/20220819 How to Create and Switch Workspaces in Linux Mint.md
@@ -0,0 +1,84 @@
+[#]: subject: "How to Create and Switch Workspaces in Linux Mint"
+[#]: via: "https://itsfoss.com/workspaces-linux-mint/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+如何在 Linux Mint 中创建和切换工作区
+======
+工作区是组织工作的好方法。
+
+假设你打开了太多应用。你的任务栏会很混乱,你可能很难在不同的程序之间查找/移动。
+
+在这种情况下,工作区会派上用场。你可以对不同工作区中的应用进行分组。因此,假设你打开了许多与编程相关的应用。你也在处理文档。
+
+你可以将它们组织在单独的工作区中。单击并拖动应用窗口,它应该显示将应用移动到不同工作区的选项。
+
+这将以更有条理的方式简化你的工作,并节省一些时间和挫败感。
+
+听起来不错?让我向您展示如何在带 [Cinnamon][1] 环境的 Linux Mint 中创建工作区并在它们之间切换。
+
+### 创建新工作区
+
+在 Linux Mint 中创建或访问工作区很容易。只需按 `CTRL + ALT+ UP`。它将向你显示如下所示的屏幕。
+
+只需单击右侧的 + 号即可添加默认 4 以外的新工作区。
+
+![Workspace Overview in Linux Mint][2]
+
+Linux Mint 中的工作区是持久的。创建后,这些工作区将始终存在,即使在下次启动后也是如此。
+
+### 在工作区之间切换
+
+有两种方法可以访问工作区并在它们之间切换。
+
+* 使用 Ctrl+Alt+向上箭头键,将带上所有工作区,然后使用箭头键或鼠标本身在它们之间移动。
+* 使用热角(hot corner)并在左上角移动鼠标。
+
+默认情况下,最新版本的 Linux Mint 中禁用热角功能。
+
+要启用热角在工作区之间切换,你应该进入系统设置并选择 **Hot Corners** 选项。
+
+![Hot Corners Option in System Settings][3]
+
+现在,通过切换按钮启用左上角。默认情况下,此角专用于显示所有工作区(你也可以更改它)。
+
+![Show All Workspaces in Top Left Corner][4]
+
+你现在可以通过将鼠标悬停在左上角来访问工作区网格。
+
+此外,如果需要,你可以按右侧的 **+** 符号添加新工作区。或根据需要通过单击名称来重命名现有工作区。
+
+![Workspace Overview Accessible from Top Left Corner][5]
+
+### 删除工作区
+
+实际上,你可以通过单击 + 号来创建多个工作区。如果你想删除工作区,请单击工作区右上角的 **X** 号,同时将鼠标悬停在该工作区上。
+
+![Delete a Workspace][6]
+
+我希望这篇快速文章能帮助你在 Linux Mint 中创建工作区。你经常使用工作空间吗?让我们知道你对工作空间的看法。同时,你还可以查看[安装 Linux Mint 20 后要做的事情][7]的帖子。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/workspaces-linux-mint/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/quickly-fix-broken-unity-installing-cinnamon-20-ubuntu-1310/
+[2]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-in-linux-mint.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/08/hot-corners-option-in-system-settings.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/08/show-all-workspaces-in-top-left-corner.png
+[5]: https://itsfoss.com/wp-content/uploads/2022/08/workspace-overview-accessible-from-top-left-corner-1.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/08/delete-a-workspace.png
+[7]: https://itsfoss.com/things-to-do-after-installing-linux-mint-20/
diff --git a/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md b/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md
new file mode 100644
index 0000000000..47f1b610b8
--- /dev/null
+++ b/translated/tech/20220831 Don-t Suspend Ubuntu When Laptop Lid is Closed.md
@@ -0,0 +1,90 @@
+[#]: subject: "Don’t Suspend Ubuntu When Laptop Lid is Closed"
+[#]: via: "https://itsfoss.com/laptop-lid-suspend-ubuntu/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+笔记本电脑合盖时不挂起 Ubuntu
+======
+如果你在笔记本电脑上使用 Ubuntu,你可能已经注意到当你合上盖子时系统处于挂起状态。
+
+这是预期的行为。它可以节省电池和你的工作。你掀开盖子,系统唤醒,你可以登录并继续工作。
+
+这一切听起来都不错,除非你使用多显示器设置。像我这样的一些人更喜欢关闭笔记本电脑,只使用外接显示器。
+
+但是,如果关闭笔记本电脑盖会挂起系统,那么会产生问题。
+
+让我告诉你如何改变这种行为。
+
+### 关闭笔记本电脑盖时不要挂起
+
+实际上,我注意到最近的 Ubuntu 版本在这个情况下更智能。当笔记本电脑连接到扩展坞并合上盖子时,它不会进入挂起模式。
+
+这是正常的预期行为,但由于 Ubuntu 之神才知的原因,它可能不会一直有效。
+
+好消息是你可以使用 GUI 和命令行强制更改此行为。
+
+让我分享这两种方法。
+
+#### 方法 1:使用 GNOME Tweaks
+
+如果你使用的是默认的 GNOME 桌面,那么你很幸运。 [在 Ubuntu 的软件中心安装 GNOME Tweaks 工具][1]或使用以下命令:
+
+```
+sudo apt install gnome-tweaks
+```
+
+安装后,启动 Tweaks 应用。在侧边栏的**常规选项卡**中,**关闭“关闭笔记本电脑盖时观其”按钮**。
+
+![change lid close behavior ubuntu][2]
+
+这就好了。你不需要重启即可使更改生效。
+
+现在,让我们谈谈命令行方法。
+
+#### 方法 2:更改登录配置(针对高级用户)
+
+如果你查看文件 /etc/systemd/logind.conf 的内容,你将看到三种不同类型的笔记本电脑合盖默认设置。
+
+* HandleLidSwitch:当笔记本电脑使用电池供电时
+* HandleLidSwitchExternalPower:当笔记本电脑插入电源插座时
+* HandleLidSwitchDocked:当笔记本电脑连接到扩展坞时
+
+![Default laptop lid closing settings][3]
+
+如你所见,如果合上盖子,笔记本电脑将挂起,无论它是否连接到电源。连接扩展坞忽略合盖。
+
+如果需要,你可以根据自己的喜好将这些参数的值更改为其中之一:
+
+* lock:合盖时锁定
+* ignore:什么都不做
+* poweroff:关机
+* hibernate:合盖时休眠
+
+如果你不希望你的系统在笔记本电脑盖合上时执行任何特殊操作,我建议你使用 `ignore`。
+
+你可以编辑 /etc/systemd/logind.conf 文件并取消注释上述设置并更改其值,或者在 /etc/systemd/logind.conf.d 目录中创建一个新文件。如果此目录不存在,请创建此目录。
+
+我不会给你确切的命令。如果你熟悉命令行,你应该可以做到。如果你对命令行感到不舒服,请使用前面的 GUI 方法。
+
+我希望这可以帮助你。如果你有任何问题,请告诉我。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/laptop-lid-suspend-ubuntu/
+
+作者:[Abhishek Prakash][a]
+选题:[lkxed][b]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://itsfoss.com/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/gnome-tweak-tool/
+[2]: https://itsfoss.com/wp-content/uploads/2022/08/change-lid-close-behavior-ubuntu.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/08/laptop-lid-settings-ubuntu.png