Thanks for installing AwesomeProject! With AwesomeProject,
+you can manage your music collection like a wizard.
+
+
But first, we need to install it:
+
+
You can install AwesomeProject from
+source. Download the tar file, extract it, then run:
+./configure ; make ; make install
+
+
AwesomeProject is available in
+most Linux distributions. Check your graphical package manager and search for AwesomeProject to install it.
+
+
+
+
+```
+
+例子中的 HTML 文档没有与之关联的样式表,所以浏览器中会显示所有的段落。
+
+![Image of html in black text.][2]
+
+我们可在文档中添加一些简单的样式来为 读者reader、专家expert 或者 初学者novice 突出任何元素。为了使不同的文本更容易区分,让我们把读者类的背景颜色设置成米白色,专家类的字体颜色设置为深红色,初学者的字体颜色则设置为深蓝色。
+
+```
+
+
+
+
+
+
+How to install the software
+
+
+
+
+
+
+
+
How to install the software
+```
+
+当你在浏览器中查看这个网页时,这些样式有助于突出这两个段落。安装指导的所有段落都有一个米白色背景,因为他们都有 读者reader 这个类。第一个段落的字体是深红色的,这是由 专家expert 这个类定义的。第二个段落的字体是深蓝色的,则是由 初学者novice 这个类定义的。
+
+![Image of html in red and black text.][3]
+
+### 添加 JavaScript 控件
+
+这些类的应用,使你可以添加一些简单的 JavaScript 函数,只显示其中一个内容块。一个方法是,首先给所有的读者类元素设置 `display:none` 。这会将内容隐藏,使其不会在页面上显示。然后,用函数将你想显示的类元素设置为 `display:block` :
+
+```
+
+```
+
+要在 HTML 文档中使用这个 JavaScript,你可以吧这个功能附加到一个按钮上。由于 `readerview` 函数需要一个听众audience(这应该是相对那个虚拟音乐播放器来说的)作为参数,你可以使用你想查看的听众类别来调用这个函数,可以是读者reader,专家expert 或者 初学者novice 。
+
+```
+
+
+
+How to install the software
+
+
+
+
+
+
+
+
How to install the software
+
+
+
+
Thanks for installing AwesomeProject! With AwesomeProject,
+you can manage your music collection like a wizard.
+
+
But first, we need to install it:
+
You can install AwesomeProject from
+source. Download the tar file, extract it, then run
+./configure ; make ; make install
+
+
AwesomeProject is available in
+most Linux distributions. Check your graphical package
+manager and search for AwesomeProject to install it.
+
+
+
+```
+
+有了这些设置,用户可以在网页上选择他们想看的文本。
+
+![Image of window that allows you to select between novice and expert text.][4]
+
+点击任何一个按钮都将只显示用户想要阅读的文本。例如,如果你点击了 “阅读初学者内容view novice text” 按钮,你就只会看到蓝色段落。
+
+![Image showing blue text when you press the novice button.][5]
+
+点击 “阅读专家内容view expert text” 按钮,就会隐藏初学者文本,只显示红色的专家文本。
+
+![Image of red text after the expert button is clicked.][6]
+
+### 将此扩展到你的文档
+
+如果你的项目需要你为不同的听众编写多个操作文档,你可以考虑使用这种方法,一次发布,多次阅读。为所有的用户编写一个文档,是每个人都能很容易的发现和分享你项目的文档。而你也不必同时维护尽在细节上有所不同的多个文档。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/dynamic-documentation-javascript
+
+作者:[Jim Hall][a]
+选题:[lkxed][b]
+译者:[duoluoxiaosheng](https://github.com/duoluoxiaosehng)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/jim-hall
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/downloads/learn-javascript
+[2]: https://opensource.com/sites/default/files/2022-12/publishonec.textblack.png
+[3]: https://opensource.com/sites/default/files/2022-12/publishone.red_.blue_.png
+[4]: https://opensource.com/sites/default/files/2022-12/publishone.novicexpert.png
+[5]: https://opensource.com/sites/default/files/2022-12/publishone.blue_.png
+[6]: https://opensource.com/sites/default/files/2022-12/publishone.red_.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/23/100615quu385qf83bu3p35.jpg
\ No newline at end of file
diff --git a/published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md b/published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
new file mode 100644
index 0000000000..008fd59109
--- /dev/null
+++ b/published/202212/20221215.4 ⭐️ Pulsar A Community-Led Open Source Code Editor to Continue the Legacy of Atom.md
@@ -0,0 +1,85 @@
+[#]: subject: "Pulsar: A Community-Led Open Source Code Editor to Continue the Legacy of Atom"
+[#]: via: "https://news.itsfoss.com/pulsar-editor/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15356-1.html"
+
+Pulsar:一个由社区主导的以继承 Atom 的开源代码编辑器
+======
+
+> Pulsar 的目标是成为 Atom 的替代品,随着其开发的进一步深入,将挑战 Visual Studio Code。
+
+![Pulsar:一个由社区领导的开源代码编辑器,以延续 Atom 遗志][1]
+
+微软决定杀死 Atom 文本编辑器,以支持 Visual Studio Code,这并不奇怪。
+
+如果你不知道,你可以看一下我们以前的报道:
+
+> [为了支持微软 VS Code,微软的 GitHub 正在扼杀 GitHub 的 Atom 编辑器][5]
+
+虽然你可能有了更好的选择,但曾经流行的 Atom 是一个令人印象深刻的工具。
+
+**它有一个可用的社区构建版**;然而,还有一个新的版本(**Pulsar**),旨在实现与原始 Atom 对等的功能,并引入现代功能和更新架构。
+
+根据它的文档,原来开发 Atom 社区版的团队现在参与创建了 Pulsar。他们之所以做一个独立的复刻版本,是因为项目的目标不同。
+
+**Pulsar** 希望将一切现代化,以成为 Atom 的继承者。
+
+> 💡 Pulsar 是一个新项目,作为 Atom 的新复刻,有开发/测试版本可供测试。
+
+### Pulsar 编辑器看起来怎么样?
+
+![Pulsar 编辑器][2]
+
+当然,用户界面也是大同小异。考虑到 Pulsar 还没有一个稳定的版本,看起来有时会显得有些混淆。
+
+然而,文档、软件包以及从 Git 仓库安装软件包的能力等基本要素看起来都已具备。
+
+根据官方网站的介绍,Pulsar 的主要功能亮点包括:
+
+- 跨平台支持(Linux、macOS 和 Windows)
+- 内置的软件包管理器
+- 智能自动补全
+- 文件系统浏览器
+- 多窗格的用户界面
+- 查找和替换功能
+
+在写这篇文章时,Pulsar 还不能自动更新。你可以通过官方网站安装较新的版本。
+
+![Pulsar 编辑器设置][3]
+
+你可以自定义编辑器、改变键盘绑定、管理软件包、应用主题,并通过所有可用选项配置你的体验。
+
+到目前为止,要说 Pulsar 是否会比 Atom 社区版更好还为时过早。然而,这是我们可以关注的事情。
+
+### 下载并试用 Pulsar
+
+如前所述,Pulsar 正处于早期开发阶段。因此,你可以找到用于 Linux 发行版的二进制文件和 AppImage 文件,你可以在任何发行版上试用。
+
+在我的测试中,它 **在 Linux Mint 不能正常运行**,但在 **Ubuntu 22.04 LTS** 上工作良好。
+
+你可以到它的 [官方下载页面][4] 去获取你的系统所需的软件包,并进行测试。
+
+> **[Pulsar 编辑器][4]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/pulsar-editor/
+
+作者:[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/w2000/2022/12/pulsar-hackable-text-editor.png
+[2]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor.png
+[3]: https://news.itsfoss.com/content/images/2022/12/pulsar-editor-settings.png
+[4]: https://pulsar-edit.dev/download.html#releases
+[5]: https://news.itsfoss.com/atom-being-discontinued/
\ No newline at end of file
diff --git a/published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md b/published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
new file mode 100644
index 0000000000..73a9c460db
--- /dev/null
+++ b/published/202212/20221215.5 ⭐️ XFCE 4.18 Release Looks Impressive!.md
@@ -0,0 +1,138 @@
+[#]: subject: "XFCE 4.18 Release Looks Impressive!"
+[#]: via: "https://news.itsfoss.com/xfce-4-18-release/"
+[#]: author: "Jacob Crume https://news.itsfoss.com/author/jacob/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15355-1.html"
+
+Xfce 4.18 版本发布:令人印象深刻
+======
+
+> Xfce 4.18 已发布,添加了一些有趣的功能和细微的变化。
+
+![Xfce 4.18 版本看起来令人印象深刻!][1]
+
+Xfce 是目前最好的桌面环境之一。它因其简单性而受欢迎,是一个轻量级的选择。
+
+不像其他桌面环境,你不会看到 Xfce 定期的添加功能。所以,等待升级总是令人兴奋的。
+
+Xfce 4.18 是最新的版本,它增加了一些有用的功能和其他技术改进。让我重点介绍一下。
+
+### Xfce 4.18 的新变化
+
+![Xfce 4.18 有新的默认壁纸][2]
+
+虽然这不是一个完整的变化列表,但其中一些比较明显的变化包括:
+
+- 文件管理器的改进。
+- 桌面和面板的变化。
+- 更多的设置。
+- 新的壁纸。
+
+#### 文件管理器的改进
+
+![Xfce 4.18 文件管理器的分割视图][3]
+
+Xfce 的默认文件管理器 Thunar 在这个版本中得到了相当多的改变。作为许多 Linux 用户的最爱,Thunar 有一个干净直观的用户界面,使其对不同技能水平的人都很简单易用。
+
+在这个版本中,这个有用的工具获得了几个新功能。比如说:
+
+- 工具条上新的搜索图标使用户能够快速搜索文件和文件夹。
+- 你现在可以添加一个分割视图。
+- 启用独立的图像预览。
+
+还有一个有趣的新增功能,可以帮助你**高亮文件**,以便快速发现它们。你可以设置一个前景和背景颜色,如果你不想要这个功能,也可以重置。
+
+![xfce 4.18 文件高亮][4]
+
+你可以从文件的属性选项中访问这个功能。
+
+Thunar 文件管理器还增加了一些其他功能,包括:
+
+- 一个用于定制键盘快捷键的新标签。
+- 新的书签菜单。
+
+#### 精致的设置和桌面变化
+
+Xfce 桌面的大部分都保持不变。你不应该期待开箱后有不同的用户体验。
+
+虽然没有重大的视觉改造,但有细微的完善和功能改进。
+
+例如,你可以发现日历小部件的新能力。显示设置提供了更多选项,即使你没有连接多个显示器。
+
+Xfce 面板也有一些变化。
+
+![Xfce 4.18 面板设置][5]
+
+这些变化包括用像素而不是百分比来调整高度,以及一个新的 “保持面板在窗口上方” 选项。这使得窗口可以在面板下面延伸,而不是在顶部被切断。
+
+更不用说,时钟小程序现在可以自定义其字体类、字体大小和布局。
+
+![Xfce 4.18 时钟][6]
+
+#### 新壁纸
+
+当然,我们也得到了一些新的壁纸;你已经在本文的开头看到了新的默认壁纸。
+
+![Xfce 4.18 新壁纸集][7]
+
+如果你很好奇,你可以看看其他为 [壁纸竞赛][8] 提交的各种作品。也许你会发现别人不喜欢的东西。
+
+![Xfce 4.18 新壁纸集锦][9]
+
+这些是计划添加到背景集的其它候选作品。
+
+#### 其他变化
+
+除了之前提到的那些,这个版本还引入了一些其他变化。
+
+- 初步的 Wayland 支持,它允许 Xfce 在 Wayland 显示服务器上运行。
+- GTK4 的更新,提供了更好的性能和稳定性。
+- 一些核心应用程序的小更新,包括对 Xfdesktop、Xfwm4 和 Xfce4-panel 应用程序的改进。
+
+关于完整的变化列表,你可以参考 [官方博客文章][10]。
+
+### 获得 Xfce 4.18
+
+你可以通过软件库为滚动发布的发行版(如 Arch Linux)安装它。对于其他发行版,如果你不想自己做实验,你可能必须等待官方的更新。
+
+要想快速尝试,你可以安装 Xubuntu 23.04 日常构建版来获得这些功能。
+
+如果你使用的是其他为了稳定起见而不提供快速桌面环境更新的 Linux 发行版,如果你知道自己在做什么,你可以尝试手动安装。
+
+> **[下载 Xfce 4.18][11]**
+
+### 总结
+
+Xfce 4.18 是 Xfce 桌面环境的一次重大更新,有许多新的功能和改进。
+
+Thunar 文件管理器的更新尤其值得注意,因为它们为用户提供了更多的控制和定制选项。初步的 Wayland 支持和 GTK4 更新将提高性能和稳定性。
+
+总的来说,Xfce 4.18是一个受欢迎的更新,将改善 Xfce 用户的用户体验。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/xfce-4-18-release/
+
+作者:[Jacob Crume][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/jacob/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/xfce-4-18-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-hero.jpg
+[3]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-manager.jpg
+[4]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-file-highlight.jpg
+[5]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-panel.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-clock-settings.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallaper.jpg
+[8]: https://gitlab.xfce.org/artwork/public/-/issues/1#note_58300
+[9]: https://news.itsfoss.com/content/images/2022/12/xfce-4-18-new-wallpapers.jpg
+[10]: https://alexxcons.github.io/blogpost_8.html
+[11]: https://www.xfce.org/
diff --git a/published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md b/published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
new file mode 100644
index 0000000000..d7ac11e4c3
--- /dev/null
+++ b/published/202212/20221216.1 ⭐️ Harmonoid A Beautiful Cross-Platform Music Player With Essential Features.md
@@ -0,0 +1,108 @@
+[#]: subject: "Harmonoid: A Beautiful Cross-Platform Music Player With Essential Features"
+[#]: via: "https://itsfoss.com/harmonoid/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15386-1.html"
+
+Harmonoid:基本够用的漂亮的跨平台音乐播放器
+======
+
+![][0]
+
+幸运的是,[Linux 的优秀开源音乐播放器][1] 并不缺乏。过去我们已经介绍了多种选择。
+
+在这里,我重点介绍一款免费使用(但不是自由开源软件),可用于多种平台(包括 Linux、Windows 和 Android)的音乐播放器。
+
+### Harmonoid:Material Design 的直观用户体验
+
+![harmonoid player][2]
+
+Harmonoid 是用 Dart 语言编写的。它利用 [libmpv][3] 和 [mpv][4] 在桌面平台上实现媒体播放功能。
+
+它提供了一个优秀的用户界面。并且不使用 electron.js。所以,如果你讨厌 Electron,你可以试试这个。
+
+通常,你会在 Android 上看到应用具有 Material Design UI。如果你不知道,Material 是谷歌的开源设计系统。
+
+![harmonoid player info][5]
+
+没有多少创作者将它用于桌面应用。作为一种改变,Harmonoid 具有 Material Design 用户体验,可以同时做到快速和直观。
+
+这让 Harmonoid 为 Linux 用户呈现了独特的用户体验。动画感觉流畅且易于导航,并提供大量有价值的功能来帮助管理你的音乐库。
+
+![harmonoid url][6]
+
+如果你想要一个有良好 UI 和功能集的音乐播放器,我建议你尝试一下 Harmonoid。
+
+### Harmonoid 的特点
+
+![harmonoid player options][7]
+
+[Harmonoid][8] 可能看起来像一个简单的音乐播放器,但它包含了一些最有价值的功能。他们包括:
+
+- 跟唱功能,你可以找到歌词,或者你可以手动添加它们
+- 编辑歌曲详细信息,包括艺术家、年份、流派、曲目编号、专辑和标题
+- 轻松分类和排序你的音乐列表
+- 一个快速搜索功能来找到你要找的东西
+- 缓存元数据以在你每次加载时提供快速体验
+- 与 Windows 和 Linux 的良好集成支持
+- 支持在 Discord 中展示,可以显示你的音乐以及插图和播放按钮
+- 调整音乐的速度、音量和音高
+- 原始元数据读取器可读取你库中任何文件或歌曲的标签
+- 播放由 MPV 提供
+- .LRC 文件兼容性
+- 支持在线 URL(YouTube)和广播流
+- 跨平台
+- 多位艺术家支持
+- 深色/浅色模式
+
+除了这些之外,还有一些小功能可以发挥很大的作用,例如**无缝播放和上下文菜单集成,并且它通常是一个轻量级应用**。
+
+Harmonoid 应该非常适合想要同时播放音乐或整理收藏的用户。我会说它提供了两全其美的方法。
+
+![harmonoid settings][9]
+
+### 在 Linux 上安装 Harmonoid
+
+你可以从其 [下载页面][10] 获取 .deb/.rpm 包并将其安装在基于 Ubuntu 的发行版或 Fedora 上。
+
+此外,你需要使用以下命令安装 mpv 和 libmpv(对于 Ubuntu):
+
+```
+sudo apt install mpv lipmpv-dev
+```
+
+确保安装这些软件包可以让你用 Harmonoid 处理所有类型的文件进行播放。
+
+你还可以在 [AUR][11] 上找到基于 Arch 的发行版的 Harmonoid。要探索有关该播放器的更多信息,请访问其 [GitHub 页面][12]和[官方网站][8]。
+
+你是否尝试过 Harmonoid 在你的 Linux 系统上播放和整理音乐? 你最喜欢的 Linux 音乐播放器是什么? 在下面的评论中让我知道你的想法。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/harmonoid/
+
+作者:[Ankush Das][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/ankush/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/best-music-players-linux/
+[2]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player.png
+[3]: https://github.com/mpv-player/mpv/tree/master/libmpv
+[4]: https://mpv.io
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-info.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-url.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-player-options.png
+[8]: https://harmonoid.com
+[9]: https://itsfoss.com/content/images/wordpress/2022/12/harmonoid-settings.png
+[10]: https://harmonoid.com/downloads
+[11]: https://aur.archlinux.org/packages/harmonoid-bin
+[12]: https://github.com/harmonoid/harmonoid
+[0]: https://img.linux.net.cn/data/attachment/album/202212/27/173656kmq05d54llttls55.jpg
\ No newline at end of file
diff --git a/published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md b/published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
new file mode 100644
index 0000000000..945591e75c
--- /dev/null
+++ b/published/202212/20221216.3 ⭐️ Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years.md
@@ -0,0 +1,88 @@
+[#]: subject: "Better Late Than Never! GNOME's File Picker Adds Thumbnail View After 18 Years"
+[#]: via: "https://news.itsfoss.com/gnome-file-picker/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15380-1.html"
+
+虽迟但到!GNOME 的文件选取器在 18 年后增加了缩略图视图
+======
+
+> 一个长期缺位、也是急需的功能请求,终于通过了!
+
+![][1]
+
+如今,程序的用户界面是非常重要的;即使是最简单的交互也能决定用户的体验。
+
+GNOME 的文件选取器在查看文件时缺乏适当的缩略图预览,而是依赖于一个普通的列表视图。这对许多人来说可能是不直观的。
+
+多年来,缺乏这一功能也成了许多段子和讨论的主题。
+
+但是现在,在最初的 [功能请求][2] 提出 18 年之后,GNOME 终于可以支持一个合适的缩略图视图了。
+
+让我们来看看这个即将到来的对 GNOME 文件选取器的改变。
+
+### 该功能将随着 GNOME 44 到来
+
+![GNOME 文件缩略图视图][3]
+
+正如这个由 GNOME 开发者 [Matthias Clasen][4] 提供的早期构建截图所展示的。GNOME 上的文件选取器将具有一个缩略图视图。
+
+这就是它在 GNOME 43 上的样子:
+
+![GNOME 43 的文件选取器][5]
+
+**如何访问它?** 在 GNOME 上文件选取器的网格视图里,可以显示文件和文件夹的缩略图预览。
+
+现在将很容易区分文件管理器中的项目;不再需要打开一个文件来查看它包含的内容了!
+
+![GNOME 文件缩略图视图选取器][6]
+
+当这个功能到来时,你可以通过点击右上方的新视图切换按钮来启用它。
+
+**有什么变化?** 对于一个简单的功能添加来说,18 年是一个很长的时间。众多的技术原因使其实施成为一项艰巨的任务。
+
+但我很高兴,它终于来了。😃
+
+使之成为可能的原因之一是最近在 GTK 代码库中进行的废弃和现代化工作。
+
+> 💡 GTK 是 GNOME 的一切的核心的工具箱。
+
+而且,这些变化导致 [GtkListView][7] 和 [GtkGridView][8] 使用相同的数据模型来实现这个功能。
+
+**预期何时?** 这个历史上的 [合并请求][9] 已经被接受,并为其引入 GNOME 铺平道路。
+
+你可以期待它在 2023 年的某个时候与 GNOME 44 一起到来。
+
+我很期待!😁
+
+我们将把它作为 GNOME 44 功能提供的一部分来报道。所以,请继续关注我们的报道吧!
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/gnome-file-picker/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/gtk-file-chooser-gets-thumbnail-preview-support.png
+[2]: https://bugzilla.gnome.org/show_bug.cgi?id=141154
+[3]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail.png
+[4]: https://twitter.com/matthias_clasen
+[5]: https://news.itsfoss.com/content/images/2022/12/file-picker-now.png
+[6]: https://news.itsfoss.com/content/images/2022/12/GNOME_File_Thumbnail-2.png
+[7]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklistview.c
+[8]: https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgridview.c
+[9]: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5163
+[10]: https://mastodon.social/@itsfoss
+[11]: https://twitter.com/itsfoss2
+[12]: https://notion.grsm.io/front-static/logo-ios.png
+[13]: https://www.notion.so/front-static/meta/default.png
diff --git a/published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md b/published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
new file mode 100644
index 0000000000..bdf9cf56a9
--- /dev/null
+++ b/published/202212/20221218.1 ⭐️ Try this Python-based file manager on Linux.md
@@ -0,0 +1,113 @@
+[#]: subject: "Try this Python-based file manager on Linux"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15396-1.html"
+
+在 Linux 上试试这个基于 Python 的文件管理器
+======
+
+![][0]
+
+> Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。
+
+Dragonfly Navigator 是用 Python 和 Qt 编写的通用文件管理器。它易于安装和使用,并且是 Python 可以做什么的一个很好的例子。
+
+Python 是一种流行的语言有几个原因,但我认为它的主要优势之一是它对初级程序员和有经验的编码人员同样有用。你可以从一门语言中获得一些令人兴奋的东西,从 [绘制基本几何形状][1] 到 [抓取网页][2] 再到编写僵尸启示录 [游戏][3],或者编写你每天都可以使用的桌面应用。这就是 Dragonfly Navigator:一个人人都可以使用的桌面程序。
+
+### 安装 Dragonfly Navigator
+
+要安装 Dragonfly Navigator,首先从 [Git 仓库][4] 下载源代码。如果你使用的是 Debian Linux 或类似软件,请下载 `.deb` 文件。如果你使用的是 Fedora、CentOS、Mageia、OpenMandriva 或类似软件,请下载 `.tar.gz` 文件。
+
+Dragonfly Navigator 只有很少的依赖。因为你不是通过包管理器安装它,所以由你来解决这些问题。它只有两个依赖,所以使用你的包管理器(`dnf` 或 `apt`)找到并安装它们:
+
+- PyQt5,也称为 `python-qt5`
+- Python PIL,也称为 `pillow`
+
+### 启动 Dragonfly Navigator
+
+要启动 Dragonfly Navigator,请安装 `.deb` 文件(在基于 Debian 的系统上)或解压缩 `.tar.gz` 文件:
+
+```
+$ tar xvf dragonfly*gz
+```
+
+在基于 Debian 的系统上,Dragonfly Navigator 出现在你的应用菜单中。在其他系统上,你必须手动启动它,除非你 [手动安装][5]。
+
+现在,我没有安装它,所以我手动启动它:
+
+```
+$ cd dragonfly
+$ ./dragonfly
+```
+
+![Dragonfly Navigator is a two-panel file manager][6]
+
+### 双面板
+
+Dragonfly Navigator 是一个双面板文件管理器,这意味着它总是向你显示两个目录。在启动时,这两个目录恰好是你的主目录。你可以在任一面板中浏览文件和文件夹。它们的功能完全相同,只有当你开始复制或移动文件时你“位于”哪个面板中才重要。
+
+### 打开目录
+
+要打开目录,请双击它。默认情况下,该目录在同一面板中打开。但是,如果你想使用双面板布局,请在双击时按住 `Ctrl` 键以在另一个面板中显示其内容。
+
+### 打开文件
+
+要打开文件,请双击或右键单击它。
+
+是的,你可以右键单击文件将其打开。如果你习惯于右键单击调出上下文菜单,那么这需要一些时间来适应。不过,Dragonfly Navigator 中没有上下文菜单,你可能会惊讶地发现,当你将打开文件这一非常常见的操作减少到只需单击一次时,你会觉得自己节省了多少时间。现在可能看起来很傻,但相信我,你会逐渐珍惜它的。
+
+### 快速预览
+
+某些文件可用于快速预览,因此你不必在某个特定应用中打开它们。要预览文件,请将鼠标悬停在文件上,然后按键盘上的 `Alt` 键。预览出现在对面的面板中。
+
+![The second panel of Dragonfly Navigator can be used as a preview pane.][7]
+
+### 复制和移动文件
+
+要将文件从一个目录复制或移动到另一个目录(或从一个目录到另一个目录),有几个步骤。
+
+- 在一个面板中,进入目标目录。这是你要将文件复制到的位置。
+- 在另一个面板中,选择要复制的文件。
+- 单击 Dragonfly Navigator 中间条中的 “复制Copy” 按钮。
+
+要移动文件,请按照相同的步骤操作,但要单击 “移动Move” 按钮。
+
+如果你不习惯双面板文件管理器,一开始会觉得很陌生。但是你仔细想想,在你常用的文件管理器中复制一个文件需要几个步骤(找到文件,打开另一个窗口,拖放等等)。做几次之后,它成为第二天性。
+
+### 选择文件
+
+通常,你单击一个文件或文件夹以使其成为你的活动选择。这可能与你当前的文件管理器没有什么不同,或者至少与你过去使用过的某些文件管理器没有什么不同。
+
+要选择一个范围内的多个项目,请单击一个文件,然后按住 `Shift` 键并单击另一个文件。你单击的两个文件之间的所有项目也被选中。
+
+要选择多个任意文件,请按住 `Ctrl` 键并单击要选择的文件。
+
+### Qt 和 Python 的力量
+
+Qt 工具包是一个强大的编程程序,Python 能够用它创建出色的应用。我在本文中只介绍了 Dragonfly Navigator 的基础知识,所以请下载它,阅读文档,点击并探索它,也许你会发现一个有趣的新文件管理器。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/linux-file-manager-dragonfly-navigator
+
+作者:[Seth Kenlon][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/17/10/python-101#turtle
+[2]: https://opensource.com/article/20/5/web-scraping-python
+[3]: https://opensource.com/downloads/python-gaming-ebook
+[4]: https://github.com/suncore/dflynav/releases
+[5]: https://opensource.com/article/18/1/how-install-apps-linux
+[6]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator.webp
+[7]: https://opensource.com/sites/default/files/2022-10/dragonfly-navigator-preview.webp
+[0]: https://img.linux.net.cn/data/attachment/album/202212/30/105706fk81jdkd1jkh9xpc.jpg
\ No newline at end of file
diff --git a/published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md b/published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
new file mode 100644
index 0000000000..c9f1a84de3
--- /dev/null
+++ b/published/202212/20221220.5 ⭐️⭐️ Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements.md
@@ -0,0 +1,156 @@
+[#]: subject: "Linux Mint 21.1 Arrives with a Ton of Visual Changes and Improvements"
+[#]: via: "https://news.itsfoss.com/linux-mint-21-1-release/"
+[#]: author: "Rishabh Moharir https://news.itsfoss.com/author/rishabh/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15383-1.html"
+
+Linux Mint 21.1 发布:大量的视觉变化和改进
+======
+
+> Linux Mint 21.1 带有一个新的默认主题和其他一些改进。
+
+![][1]
+
+Linux Mint 21 已经收到了它的第一个更新,即 **Linux Mint 21.1 “Vera”**。
+
+如果你想了解 Linux Mint 21 “Venessa”,我们的官方点评应该能让你尽快了解:
+
+> **[Linux Mint 21:最好的发行版变得更好了](https://itsfoss.com/linux-mint-21-review/)**
+
+这个版本与通常的小版本相似。它包括了对外观、感觉和功能的各种变化,这些变化可能看起来很细微,但会影响用户体验。
+
+让我们来看看主要的亮点。我们关注的是 Linux Mint 的 Cinnamon 版。
+
+### Linux Mint 21.1 Vera:有什么新内容?
+
+基于 **Ubuntu 22.04 LTS**,该版本的底层将继续使用 **Linux 5.15 LTS** 内核。
+
+![][2]
+
+#### 👀 焕然一新的用户界面
+
+当你第一次启动进入桌面时,你应该很快注意到光标的新外观。它默认采用了新的 Bibata 主题。
+
+![][3]
+
+光标、图标主题列表增加了一些新的主题,如 Yaru、Breeze 和 GoogleDot,以及传统的 DMZ 主题。
+
+![][4]
+
+除了传统的 Mint-X、Mint-Y 和 Mint-Legacy 主题外,用户还可以找到一组独特的应用图标主题,这包括 Papirus、Breeze、Numix 和 Yaru。
+
+![][5]
+
+另一件你可能会注意到的有趣的事情,默认的强调色不再是传统的绿色,这是因为 **桌面主题现在换成了 Aqua**。强调色库提供了更多鲜艳的颜色,使桌面看起来更干净、更有吸引力。
+
+对于那些希望恢复传统外观的人,你可以在主题中选择 “Mint-Y-Legacy”。
+
+此外,以前在桌面上可见的 **电脑、主文件夹、网络和垃圾箱图标** 被默认删除,它们可以在文件管理器中访问。主文件夹的图标则显示在面板上。如果你想恢复以前的方式,你可以通过进入 系统首选项System Preferences 来恢复。
+
+#### ✨ 增强的驱动器管理器
+
+由于驱动器管理器在用户模式下运行,所以当你启动它时不再要求输入密码。
+
+![][6]
+
+有专门的屏幕来显示离线连接和检测到 现场 USBLive USB 时的情况。你也应该发现挂载现场 USB 比以前更顺畅了。
+
+![][7]
+
+对它也进行了一些修复。
+
+Packagekit 现在可以清除已删除的驱动程序和软件包。这解决了一个众所周知的问题,即用户想要在不同版本的英伟达驱动之间进行切换。
+
+此外,Debconf 也进行了修补,以解决启用安全启动时英伟达驱动程序的一个问题。
+
+#### 👨💻 Flatpak 集成和软件管理器的改进
+
+很高兴看到 软件管理器Software Manager 和 更新管理器Update Manager 都支持 Flatpak 了。
+
+安装和更新 Flatpak 应用程序的过程没有什么不同,应该是很容易的。
+
+![][8]
+
+例如,软件管理器已被更新,以帮助区分用户正在查看的应用程序是哪个版本:Flatpak 版本还是系统版本。还有一个下拉框,用于在一个应用程序的系统版本和 Flatpak 版本之间切换。
+
+卸载 Flatpak 应用程序和快捷方式不再需要密码了。在进行多项操作时也是如此。
+
+#### 🔨 对 XApp 的改进
+
+用户现在可以配置登录屏幕的光标大小和主题。以前,这些设置是全局设置。
+
+另一方面,Warpinator 获得了更好的安全性,而 WebApp 管理器WebApp Manager 在编辑 WebApp 时具有额外的设置,包括私人浏览和导航栏。
+
+#### ⭐ 新的 ISO 验证工具
+
+在大多数情况下,人们想验证一个下载的 ISO 镜像的完整性。
+
+因此,更简单方便的方法是,你可以通过右击 ISO 镜像,选择 “验证Verify”来完成。这就打开了 ISO 验证ISO Verification工具,你可以在那里填写必要的细节来进行验证。
+
+![][9]
+
+值得注意的是,对于 Linux Mint 和 Ubuntu 的 ISO 镜像,SHA256sum 和 GPG 文件的 URL 是自动填写的。
+
+#### 🎨 Cinnamon 5.6 桌面
+
+Linux Mint 的旗舰桌面环境也有一些微小的视觉更新和变化。
+
+在桌面的面板上,你会注意到主菜单和应用程序之间有一个细细的分隔线。像 Windows 一样,在最右边的角落里增加了一个新的角栏小程序,可配置,并支持创新的操作。
+
+![][10]
+
+说到视觉效果,默认的文件管理器 Nemo 已经经历了一些变化:
+
+- 当选择一个或多个项目时,只有名称保持高亮,而图标则没有。
+- 日期现在以等宽字体显示。
+- 路径栏也得到了一些改进。
+
+你可以毫不费力地访问 显示设置Display Settings,因为它的快捷方式已被添加到桌面的上下文菜单中。
+
+### 🛠️ 其他改进措施
+
+其他两个桌面环境已经分别更新到 **MATE 1.26** 和 **XFCE 4.16**。
+
+美术作品集也得到了扩展,包括几张很酷的壁纸。
+
+虽然我们只介绍了这个版本的主要亮点,但你可以通过 [官方更新日志][11] 了解更多细节。
+
+### 获得 Linux Mint 21.1
+
+现有的 Mint 用户应该得到通知,可以通过更新管理器轻松升级到 Mint 21.1。
+
+那些想要重新安装 Linux Mint 的人可以从 [官方下载页面][12] 获得 ISO。
+
+> **[Linux Mint 21.1][12]**
+
+如果你的网络较慢或不稳定,你也可以 [使用 Torrent 链接][13]。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/linux-mint-21-1-release/
+
+作者:[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/12/linux-mint-21-1-release.png
+[2]: https://news.itsfoss.com/content/images/2022/12/Home.png
+[3]: https://news.itsfoss.com/content/images/2022/12/bibata.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Themes.png
+[5]: https://news.itsfoss.com/content/images/2022/12/linux-mint-new-look.png
+[6]: https://news.itsfoss.com/content/images/2022/12/Drivemanager1.png
+[7]: https://news.itsfoss.com/content/images/2022/12/DriverManager2.png
+[8]: https://news.itsfoss.com/content/images/2022/12/Software_Manager.png
+[9]: https://news.itsfoss.com/content/images/2022/12/ISOVerify.png
+[10]: https://news.itsfoss.com/content/images/2022/12/Folder.png
+[11]: https://www.linuxmint.com/rel_vera_cinnamon_whatsnew.php
+[12]: https://www.linuxmint.com/download.php
+[13]: https://linuxmint.com/torrents/
diff --git a/published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md b/published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
new file mode 100644
index 0000000000..aa952da127
--- /dev/null
+++ b/published/202212/20221221.3 ⭐️⭐️ Open source solutions for EV charging.md
@@ -0,0 +1,79 @@
+[#]: subject: "Open source solutions for EV charging"
+[#]: via: "https://opensource.com/article/22/12/open-source-ev-charging"
+[#]: author: "Joshua Pearce https://opensource.com/users/jmpearce"
+[#]: collector: "lkxed"
+[#]: translator: "duoluoxiaosheng"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15385-1.html"
+
+开源电动汽车充电解决方案
+======
+
+> 利用太阳能、硬件和开源来建立你自己的电动车充电站。
+
+![][0]
+
+也许你讨厌在寒冷或者酷热的时候加油,也许你关心环境问题。也许不断上涨的油价和通胀让你不得不考虑怎么更合理的安排开支。也许你只是认为电动汽车看起来很酷。不管什么原因,你都会因为即将拥有一辆电动汽车而感到激动,激动的不仅仅只有你。电动汽车的市场份额将在 [2040 年增长到 30%][1] 。[美国政府提供了一个简易的比较工具][2],用来展示维护一辆电动汽车的花费比维护一辆化石燃料汽车要少很多。尽管如此,电动汽车的充电费用仍然会给你的钱包带来沉重的负担。
+
+通常,解决成本问题的最优雅的方法之一是应用开源原则来加速创新。幸运的是,在电动汽车充电领域已经找到了一种获得低成本电力和充电桩的方法。
+
+为了控制电动汽车充电的成本,首先,你需要低成本的电力。在过去,这意味着从石油倒退到煤炭。如今,能将太阳能直接转化为电能的 [光伏发电][3]solar photovolataic(PV) 设备提供的电力通常被认为成本是最低的。煤炭公司正在因为无法继续与清洁的太阳能竞争而破产。这也是 [太阳能发电在世界各地都爆炸性增长][4] 的原因。许多房主把 [太阳能电池板放到他们的房顶][5] 或者后院的支架上,以满足他们家庭的电力需求。但是,如果你的屋顶面积有限或者后院很小,你怎样才能使用太能能给你的电动汽车充电呢?
+
+### 开源光伏停车篷
+
+大型企业正在采取的一个方法是在他们的停车场上建造一个光伏顶篷。如果你自己想做一个,一个新的 [研究][6] 提供了三种新型开源光伏顶篷系统全面的机械和经济方面的分析。
+
+- 使用纯木材的单一停车位横跨系统
+- 使用木材和铝的双停车位横跨系统
+- 使用木材和铝的悬臂系统
+
+这些设计是以 5 * 6 个停车位的样式呈现的,但是这三个系统都可以扩展到任何需要的停车位数量。包括一个 6 千瓦的家用单车充电系统(如下图)。所有的支架都有 25 年的预期寿命来配合标准的光伏保修。
+
+![Image of a single car PV canopy.][7]
+
+这些开源光伏顶篷都是为了抵御加拿大残酷的冬天而设计的,它们遵循加拿大严格的建筑规范。所以,不管你住在其他任何地方,这些系统的设计都仍然可以为你工作。顶篷的 [完整设计][8] 以及材料清单,包括基本说明都有提供。它们以开源许可的方式发布,保证任何人都可以依照关于 DIY 太阳能收集器的免费书籍 《[拥抱太阳][9]To Catch the Sun》 制作它。
+
+前面提到的 [研究][6] 结果显示,开源设计比专利产品的成本低很多。单跨系统可节省成本 82% 到 85%,双跨系统节省成本 43% 到 50%,悬臂系统节省 31% 到 40% 。
+
+最重要的是,这些设计给你提供了足够多的能源(如果你只是正常通勤)来满足你的充电需求。在运行的第一年,光伏顶篷可以提供目前市场上效率最低的电动汽车充电所需电量的 157% 。
+
+![Image of an OpenEVSE charging station.][10]
+
+### 开源电动汽车充电桩
+
+减少电动车维护成本的另一个办法是安装一个开源的电动车充电桩。[OpenEVSE][11] 是一个基于 Arduino 的充电桩,由 [开源软件][12] 和硬件组成,可以以 DIY 的方式制作。它们体积小,重量轻,便于携带,你可以在家里或者旅途上使用它们。
+
+OpenEVSE 为世界各地的许多电动车制造商提供充电站。你可以根据自己的需求调整它。OpenEVSE 已经相当成熟,支持许多先进的功能,包括可调电流,温度检测和实时功率显示。你可以购买预先组装好的硬件马上体验。如果你想体验更多的乐趣节省更多的钱,可以购买一套套件自己动手制作。
+
+![Image of the OpenEVSE kit.][13]
+
+我希望未来可以看到更多关于电动汽车充电解决方案的设计。睁大眼睛,撸起袖子加油干,享受组装你的开源太阳能充电桩的乐趣。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-ev-charging
+
+作者:[Joshua Pearce][a]
+选题:[lkxed][b]
+译者:[duoluoxiaosheng](https://github.com/duoluoxiaosheng)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/jmpearce
+[b]: https://github.com/lkxed
+[1]: https://about.bnef.com/electric-vehicle-outlook/
+[2]: https://fueleconomy.gov/feg/Find.do?action=sbsSelect
+[3]: https://opensource.com/article/21/11/open-source-solar-power
+[4]: https://www.alliedmarketresearch.com/photovoltaic-market
+[5]: https://linux.cn/article-15374-1.html
+[6]: https://doi.org/10.3390/technologies10060114
+[7]: https://opensource.com/sites/default/files/2022-12/Single%20car%20open%20source%20PV%20canopy.png
+[8]: https://www.appropedia.org/Open-source_Photovoltaic_-_Electrical_Vehicle_Carport_Designs
+[9]: https://tocatchthesun.com/
+[10]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20charging%20an%20electric%20car.png
+[11]: https://openevse.com/index.html
+[12]: https://github.com/OpenEVSE
+[13]: https://opensource.com/sites/default/files/2022-12/OpenEVSE%20kit.png
+[0]: https://img.linux.net.cn/data/attachment/album/202212/27/171530ayuyongagafyxp5o.jpg
\ No newline at end of file
diff --git a/published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md b/published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
new file mode 100644
index 0000000000..d94f5b884e
--- /dev/null
+++ b/published/202212/20221226.1 ⭐️ Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1.md
@@ -0,0 +1,102 @@
+[#]: subject: "Manjaro Linux 22.0 Releases Featuring Xfce 4.18 and Linux Kernel 6.1"
+[#]: via: "https://news.itsfoss.com/manjaro-22-0-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15391-1.html"
+
+Manjaro Linux 22.0 发布
+======
+
+> Manjaro Linux 22.0 带着各种升级来了!
+
+![][1]
+
+Manjaro Linux 是一个基于 Arch Linux 的滚动发布发行版,专注于提供用户友好和无障碍体验。
+
+自 6 月发布 “[Ruah][2]” 以来,Manjaro 的开发仍在继续,并为最新的版本铺平了道路,它被称为 “Sikaris”。
+
+这是 2022 年最后的流行的发行版之一。让我们看看它提供了什么。
+
+### Manjaro 22 “Sikaris” 有什么新内容?
+
+![][3]
+
+Sikaris 版本带来了许多改进,一些值得注意的包括:
+
+- 桌面环境的升级
+- Linux 内核 6.1
+- 动态墙纸
+- 各种用户体验的改进
+
+#### 桌面环境的升级
+
+这个版本对 Manjaro Linux 的三个不同版本进行了许多改进。让我带你看看这些改进。
+
+**对于 Manjaro GNOME:** 它使用是的 GNOME 43,有一个重新设计的系统状态菜单,可以让你在常用的设置之间快速切换。
+
+他们还更新了他们的 “布局切换器Layouts Switcher” 应用程序,包括各种改进和修复。
+
+![][4]
+
+此外,你可以创建你的动态壁纸并使用 [Gradience][5] 来定制你的主题。
+
+**对于 Manjaro KDE:** “Sikaris” 版本采用了最新的 Plasma 5.26 桌面环境,具有许多改进,如动画壁纸、新的小工具,以及 Plasma 大屏幕的改进。
+
+![][6]
+
+还有一些其它的调整,允许壁纸根据系统的主题来改变。
+
+此外,Dolphin 文件管理器现在有一个新的功能叫“选择模式Selection Mode”,可以让你选择多个文件或文件夹。
+
+**对于 Manjaro Xfce:** 使用的是 Xfce 4.18,该版本在 Thunar 文件管理器中获得了新的文件高亮显示和递归搜索功能。
+
+可能是第一个包括 [新发布的 Xfce 4.18][7] 的开箱即用发行版。
+
+面板也被更新了,允许最大化的应用程序填满面板后面的区域,而且面板的长度现在是以像素而不是百分比计算的。
+
+![][8]
+
+此外,“控制中心Control Center”现在将所有用于管理系统的桌面模块集中到一个易于使用的窗口。
+
+这些功能应该会改善你的整体体验! 😃
+
+#### Linux 内核 6.1
+
+Manjaro 22 ”Sikaris“ 使用 [Linux 内核 6.1][9] 提供了各种增强功能。
+
+这些包括对 Rust 的实验性支持,对英特尔即将推出的 Meteor Lake 芯片的初步支持,改进的 ARM SoC 支持,以及更多。
+
+### 下载 Manjaro 22
+
+Manjaro 22 “Sikaris” 可用于 X86_64 和 ARM 系统,前往官方 [下载页面][10] 获取。
+
+> **[下载 Manjaro 22][10]**
+
+**对于现有的用户,** 你只需在命令行中运行 `sudo pacman -Syu` 就可以得到这个版本的 Manjaro Linux。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/manjaro-22-0-release/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/manjaro-22-0-release.png
+[2]: https://news.itsfoss.com/manjaro-21-3-0-release/
+[3]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE_2.png
+[4]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_GNOME.png
+[5]: https://github.com/GradienceTeam/Gradience
+[6]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_KDE.png
+[7]: https://news.itsfoss.com/xfce-4-18-release/
+[8]: https://news.itsfoss.com/content/images/2022/12/Manjaro_Linux_XFCE.png
+[9]: https://news.itsfoss.com/linux-kernel-6-1-release/
+[10]: https://manjaro.org/download/
diff --git a/published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md b/published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
new file mode 100644
index 0000000000..9b925483b3
--- /dev/null
+++ b/published/202212/20221227.0 ⭐️⭐️ 5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code.md
@@ -0,0 +1,121 @@
+[#]: subject: "5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code"
+[#]: via: "https://news.itsfoss.com/upcoming-code-editors/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15399-1.html"
+
+5 个即将推出的可能会挑战 VS Code 的代码编辑器
+======
+
+> 这些有趣的代码编辑器可能会在 2023 年取代 VS Code!
+
+![5 Upcoming Code Editors that May Challenge the Supremacy of Visual Studio Code][1]
+
+嗯,2022 年即将结束。
+
+我们推出了针对 Linux 发布的新的卓越代码编辑器,从 [Lite XL][2] 到 [Pulsar][3] 等。
+
+因此,为了纪念这一点,我编制了这份即将推出的 Linux 代码编辑器列表,它们很有可能挑战 [VS Code][4] 的霸主地位。
+
+让我带你了解它。
+
+### 1、Pulsar
+
+![pulsar][5]
+
+[Pulsar][6] 是一个社区主导的开源代码编辑器,旨在替代著名的 Atom 代码编辑器。
+
+它使用与 Atom 相同的代码库,有一个开源的后端(得益于逆向工程的工作),更新了依赖性。
+
+他们有计划在不久的将来对其进行改进。
+
+它可以从 [官方网站][7] 下载,但请记住,它还处于早期开发阶段。
+
+### 2、Atom 社区版
+
+![atom community][8]
+
+“[Atom 社区版][10]” 也是从现已停止维护的 Atom 编辑器的 [灰烬][9] 中重生的,它是一个旨在接管其前身的概念和想法的项目。
+
+他们的目标是从提供最基本的特性开始,并使其与 [atom-ide-ui][11] 包中的可用功能相媲美。
+
+它可能会有更多东西,但就目前的形式而言,我现在不建议新用户这样做。与 Pulsar 相比,他们的长期目标略有不同,这使它成为另一个值得一看的项目。
+
+但是,到 2023 年,情况可能会有所不同。
+
+尽管如此,那些喜欢冒险的人可以使用 [源代码][12] 来构建它。
+
+### 3、Lapce
+
+![lapce][13]
+
+一个轻量级和快速的开源代码编辑器?
+
+这就是 [Lapce][14]!
+
+它是一个基于 Rust 的开源代码编辑器,专注于提供这样的体验。
+
+我们在它处于 pre-alpha 阶段时对其进行了介绍,但在 2023 年它可能会引起注意。
+
+### 4、Zed
+
+![zed breadcrumbs][15]
+
+[Zed][16] 是即将推出的代码编辑器,旨在挑战 VS Code 的统治地位。
+
+它有许多功能,例如实时协作、极简界面、代码动作、命令面板等 [更多功能][17]。
+
+事实上,Atom 的创始人 [Nathan Sobo][18] 是这一切的幕后推手,并将其称为 Atom 的“_精神继承者_”。
+
+### 5、Lite XL
+
+![lite xl][19]
+
+[Lite XL][2] 是一个用 Lua 编写的开源代码编辑器,仅使用 3MB 的存储空间和大约 20MB 的内存。(与 VS Code 的 ~550 MB 相比)。
+
+如果你正在寻找一个完全最小化的代码编辑器,它可能会合你的口味。
+
+你现在可以从 [官方网站][20] 获取它,它会定期更新,预计 2023 年也会如此。
+
+**好了,这是这份名单的结束,也是 2022 年的结束。** 😃
+
+_我可能错过了一些代码编辑器,我知道你会在评论部分告诉我。随时分享你的想法!_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/upcoming-code-editors/
+
+作者:[Sourav Rudra][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://news.itsfoss.com/author/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/upcoming-editors-which-may-challenge-vs-code.png
+[2]: https://itsfoss.com/lite-xl/
+[3]: https://news.itsfoss.com/pulsar-editor/
+[4]: https://code.visualstudio.com
+[5]: https://news.itsfoss.com/content/images/2022/12/Pulsar.png
+[6]: https://pulsar-edit.dev
+[7]: https://pulsar-edit.dev/download.html#releases
+[8]: https://news.itsfoss.com/content/images/2022/12/Atom_Community.jpg
+[9]: https://github.blog/2022-06-08-sunsetting-atom/
+[10]: https://atom-community.github.io
+[11]: https://github.com/facebookarchive/atom-ide-ui
+[12]: https://github.com/atom-community/atom
+[13]: https://news.itsfoss.com/content/images/2022/12/Lapce.jpg
+[14]: https://lapce.dev
+[15]: https://news.itsfoss.com/content/images/2022/12/Zed_Early.jpg
+[16]: https://zed.dev/
+[17]: https://zed.dev/features
+[18]: https://twitter.com/nathansobo
+[19]: https://news.itsfoss.com/content/images/2022/12/LiteXL.jpg
+[20]: https://lite-xl.com/en/downloads
+[21]: https://mastodon.social/@itsfoss
+[22]: https://twitter.com/itsfoss2
diff --git a/published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md b/published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
new file mode 100644
index 0000000000..aa582149ce
--- /dev/null
+++ b/published/202212/20221229.0 ⭐️ Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development.md
@@ -0,0 +1,123 @@
+[#]: subject: "Be Delighted! Unity Teases Version 7.7 as the Sign of Active Development"
+[#]: via: "https://news.itsfoss.com/unity-7-7-dev/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15398-1.html"
+
+Unity 正在积极开发,预告 7.7 版
+======
+
+> Unity 7.7 版的更新计划为该桌面环境带来一些视觉上的改革。
+
+![][1]
+
+Unity,经典的桌面环境,从 2010 年到 2017 年都是 Ubuntu 的一部分,将收到一个大的新版本。你可以期待它在 2023 年的某个时候发布,但目前还没有具体的发布日期。
+
+但不是由 [Canonical][2] 发布。
+
+**如果你不知道:** Unity 的开发由一位年轻的开发者 [Rudra Saraswat][3] 接手,他也是 [Ubuntu Unity][4] 衍生版的创造者,这是 Ubuntu 的一个官方特色版。
+
+在最近的一篇 [博文][5] 中,Rudra 向我们揭示了 Unity 7.7 的一角和即将到来的各种改进。
+
+让我带你看看这些。
+
+### Unity 7.7 值得期待的地方
+
+![unity 7.7 一窥][6]
+
+这次披露的内容有很多,其中包括:
+
+- 更新的欢迎应用程序
+- UWidgets
+- 改进的仪表盘
+- 面板的调整
+- 增强的通知指示器
+
+#### 更新的欢迎应用程序
+
+![][7]
+
+一个新的欢迎应用程序将被引入 Unity,它基于 Ubuntu Flutter 社区开发的原型(用 [Flutter][8] 编写)。
+
+这个应用程序将不只限于一个发行版,而是适用于 Unity 所支持的所有发行版。
+
+#### UWidgets
+
+![][9]
+
+终于有了,Unity 桌面上的小部件?像 KDE 一样?
+
+好吧,在 Unity 中引入用 Python 编写的小部件,应该很简单就可以设置(只是复制几个文件的问题)。
+
+屏幕截图展示了一堆小部件,如时钟、系统监视器、Spotify 的小部件等等。
+
+这还不是全部,Rudra 还提到:
+
+> 我们将为 UWidgets 建立一个网页商店/仓库,在那里你可以提交你自己的小部件,或者下载并试用 Unity 7.7 上所有这些令人惊叹的小部件。
+
+这应该会使用户更容易找到和下载小部件!
+
+#### 改进的仪表盘
+
+![][10]
+
+仪表盘Dash也被刷新了,新的设计基于 Unity 7 的原始设计概念(在 Canonical 放弃它之前)。
+
+按照截图,它应该不会占用大量的屏幕空间,而且还很有用。
+
+#### 面板的调整
+
+![][11]
+
+现在的面板比之前的版本略大且更精致。
+
+#### 增强的通知指示器
+
+![][12]
+
+这对 Unity 来说是一个巨大的可用性改进;用户现在终于可以利用一个适当的通知指示器了。
+
+它将显示与你的应用程序、系统和更多相关的基本通知。
+
+#### 其他变化
+
+![][13]
+
+一些更有用的技术改进包括:
+
+- unity-control-center 的外壳 UI 得到了改进
+- 默认的面板不透明度降低到 0.75
+- 默认的启动器图标尺寸被缩小了
+- 启动器按钮(Ubuntu 图标)被替换为半透明的图标,类似于 Ubuntu Unity 21.04 的启动器按钮。
+
+_对 Unity 7.7 感到激动?请在下面的评论中告诉我你的想法。_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/unity-7-7-dev/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/ubuntu-unity-7-7-release.png
+[2]: https://canonical.com
+[3]: https://about.ruds.io
+[4]: https://ubuntuunity.org
+[5]: https://unityd.org/unity-7-7-peek/
+[6]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Welcome.jpg
+[8]: https://flutter.dev
+[9]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_UWidgets.jpg
+[10]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Dash.jpg
+[11]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Panels.jpg
+[12]: https://news.itsfoss.com/content/images/2022/12/Unity_7.7_Sneakpeek_Notif.jpg
+[13]: https://news.itsfoss.com/content/images/2022/12/unity-control-center.png
diff --git a/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
new file mode 100644
index 0000000000..481d09dc61
--- /dev/null
+++ b/published/20221201.5 ⭐️⭐️ What is Firefox ESR How to Install it in Ubuntu.md
@@ -0,0 +1,145 @@
+[#]: subject: "What is Firefox ESR? How to Install it in Ubuntu?"
+[#]: via: "https://itsfoss.com/firefox-esr-ubuntu/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15421-1.html"
+
+什么是 Firefox ESR?如何在 Ubuntu 中安装它?
+======
+
+![][0]
+
+Ubuntu 的 Snap 版本你不喜欢?不喜欢每一次 Firefox 的发布都要不断地改变东西?如果你重视稳定性而不是功能,你可以试试 Firefox ESR 版本。
+
+### 什么是 Firefox ESR?
+
+Firefox ESR 是 Firefox 的特别版,它不一定像普通版那样每月都有新功能,但它能提供稳定和安全的浏览体验。这适用于企业、组织和机构,在这些地方,稳定性和核心功能比闪亮的新功能更重要。
+
+可以把 Firefox ESR 看作是 Linux 发行版的长期稳定版本。它们不一定得到全新的功能,但它们会得到定期的安全和维护更新。这给了用户一个熟悉和稳定的环境。
+
+#### 你为什么要关心 Firefox ESR?
+
+Firefox 几乎每个月都会发布一个新版本。它包含安全和功能更新。
+
+但有些人可能不喜欢各种功能的加入和删除。如果在更新之后,你一直想知道某些设置到哪里去了,或者不喜欢与以前不同的东西,Firefox ESR 可能值得一试。
+
+基本上,如果你更看重稳定性而不是新功能,那么 Firefox ESR 就适合你。这也是 Debian 中携带的 Firefox 版本,Debian 以其是市场上最稳定的发行版之一而闻名。
+
+让我告诉你如何在 Ubuntu 上获得 Firefox ESR。**你可以同时安装 Firefox 和 Firefox-ESR 两个版本。它们的标识没有视觉上的区别,所以你必须注意你打开的是哪个火狐版本。**
+
+### 在 Ubuntu 中安装 Firefox ESR
+
+在进入安装之前,让我来分享一下普通 Firefox 和 Firefox-ESR 之间的版本差异是什么。在写这篇文章的时候:
+
+- Firefox 的版本是 **107.0-2**。
+- Firefox-ESR 目前的版本是 **102.5.0esr**。
+
+所以,如果这对你来说没问题,让我们看看第一个方法。
+
+#### 方法 1:使用 PPA 安装 Firefox-ESR
+
+Firefox-ESR 在 Ubuntu 的默认仓库中是不可用的,所以你可以使用 PPA。
+
+PPA 只不过是一个由个别技术人员或开发者维护的仓库,拥有默认仓库所没有的东西。
+
+如果你想了解更多关于 PPA 的信息,我建议你查看我们的其他指南,其中解释了 [如何在 Linux 上使用 PPA][1]。
+
+打开你的终端,使用给定的命令来添加 Firefox-ESR 的 PPA:
+
+```
+sudo add-apt-repository ppa:mozillateam/ppa
+```
+
+然后按回车键确认你要添加 PPA:
+
+![add firefox esr repository in ubuntu][2]
+
+完成后,你需要更新 Ubuntu 中的仓库索引,以便从这些变化中生效:
+
+```
+sudo apt update
+```
+
+现在,你可以通过使用给定的命令来安装 Firefox-ESR:
+
+```
+sudo apt install firefox-esr
+```
+
+接下来,你可以使用给定的命令来检查你系统中 Firefox-ESR 的安装版本:
+
+```
+firefox-esr -v
+```
+
+![check installed version of firefox esr in ubuntu][3]
+
+如何从 Ubuntu 卸载 Firefox-ESR?
+
+如果 ESR 对你的工作来说感觉太过时了,或者由于其他原因你想从你的系统中删除它,你可以按照以下步骤删除 Firefox-ESR 包和仓库。
+
+首先,让我们用下面的方法删除 Firefox-ESR 包:
+
+```
+sudo apt remove firefox-esr
+```
+
+现在,你可以使用给定的命令来 [从 Ubuntu 删除 PPA][4]:
+
+```
+sudo add-apt-repository --remove ppa:mozillateam/ppa
+```
+
+这就完成了!
+
+#### 方法 2:使用 Snap 安装 Firefox-ESR
+
+不管你爱不爱它,Snap 在 Ubuntu 上是预先配置好的,我发现使用 Snap 是安装软件包的一个很好的方法,特别是当你想避免从源码构建它们或使用 PPA 时。
+
+使用 Snap 安装 Firefox-ESR,你需要做的就是使用给定的命令:
+
+```
+sudo snap install firefox --channel=esr/stable
+```
+
+![install firefox esr using snaps in ubuntu][5]
+
+如何删除 Firefox-ESR Snap?
+
+要删除 Firefox-ESR(snap 包),请使用 [snap remove 命令][6]:
+
+```
+sudo snap remove firefox
+```
+
+这就完成了!
+
+### 总结
+
+我在本指南中解释了如何使用多种方法在 Ubuntu 中安装 Firefox-ESR。我个人使用 Firefox-ESR 而不是普通版本,因为我有随机崩溃的情况。
+
+自从我改用 Firefox-ESR 后,一切都变得稳如磐石。如果你也有同样的问题,你应该试一试。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/firefox-esr-ubuntu/
+
+作者:[Sagar 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/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/ppa-guide/
+[2]: https://itsfoss.com/content/images/wordpress/2022/11/add-firefox-esr-repository-in-ubuntu.png
+[3]: https://itsfoss.com/content/images/wordpress/2022/11/check-installed-version-of-firefox-esr-in-ubuntu.png
+[4]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
+[5]: https://itsfoss.com/content/images/wordpress/2022/11/install-firefox-esr-using-snaps-in-ubuntu.png
+[6]: https://itsfoss.com/remove-snap/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/07/165704ojar9wfkvptwop0w.jpg
\ No newline at end of file
diff --git a/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
new file mode 100644
index 0000000000..cdc1ab5063
--- /dev/null
+++ b/published/20221202.0 ⭐️⭐️ 8 ideas for measuring your open source software usage.md
@@ -0,0 +1,150 @@
+[#]: subject: "8 ideas for measuring your open source software usage"
+[#]: via: "https://opensource.com/article/22/12/open-source-usage-metrics"
+[#]: author: "Georg Link https://opensource.com/users/georglink"
+[#]: collector: "lkxed"
+[#]: translator: "CanYellow"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15411-1.html"
+
+衡量你的开源软件使用情况的 8 个方法
+======
+
+![][0]
+
+> 想知道如何为你的开源软件项目收集使用指标?考虑一下使用这些替代方案的利弊。
+
+我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户量和知名度来衡量软件的重要性。我们一般都想知道有多少人使用该软件,有多少次安装,以及有多少人生活接触过它。
+
+但简而言之,我们尚无法直接回答上述问题。
+
+如果你想要寻找一个明确的解决方案,那很抱歉要让你失望了。有关使用指标的问题,没有人有完美的答案,至少没有准确的答案。
+
+好消息是,有一些近似的和替代指标至少能够部分地满足你对软件使用情况了解的渴求。本文探讨了这些替代方案以及它们的优点和缺点。
+
+### 下载量
+
+当你浏览提供软件的网站时,你通常可以看到软件的下载次数。映入我脑海的一个例子是 Firefox ,它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字,给人的印象是 Firefox 是一个流行的浏览器,在一段时间内确实如此。
+
+然而,个人行为会直接影响这一数字的准确性。举例而言,当一个人定期重置他们的设备时,每一次重建都会引发一次独立的下载。考虑到这一现实,需要设计一种方法从下载量中去除几十次(或许是几百次)的下载次数,因为那是一个人。
+
+下载量不仅会高估使用量,还会低估使用量。例如,一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到 U 盘上,然后安装到数百台设备上。
+
+下载量指标是易于收集的,你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件,还是遇到了问题而放弃了它。
+
+对于开源项目而言,你可以考虑各种下载量指标,比如来自以下途径的下载指标:
+
+- 项目官网
+- 包管理器,比如 npm、PyPi 和 Maven
+- 代码仓库,如 GitHub、GitLab、Gitee 等
+
+你可能还对源代码的下载量感兴趣,因为下游项目更可能使用源代码形式(参见 [《如何衡量你的开源项目的影响》][1]一文)。相应的下载指标包括:
+
+- 从代码仓库克隆的数量,比如 GitHub、GitLab 和 Gitee
+- 从官网下载的归档文件(tar、zip)的数量
+- 通过像 npm、PyPi 和 Maven 这样的包管理器下载的源代码数量
+
+源代码的下载指标比二进制代码的下载指标更不可靠(虽然尚无相关研究表明如此)。试想一下,一名开发人员想要你的最新版本的源代码,并将他们的构建管道配置为每次构建都克隆你的仓库。再想象一下,一个自动构建过程失败了,它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了,下载来源是由这些缓存所提供的。
+
+> **[相关阅读:跟踪你的开源社区的 5 个指标][2]**
+
+总而言之,下载量指标是用于提供当前使用情况和探测趋势的很好的指征。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言,如果你为你的软件做了广告并在活动期间得到了更高的下载量,可以合理地假定广告推动了更多人下载该软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中?什么操作系统或者特定语言的版本更加流行?这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。
+
+### 议题
+
+作为一个开源项目,你可能有一个议题追踪器。当某个人提出一个议题时一般有两个目标,报告一个漏洞或者请求增加一项功能。提议者很可能已经使用过你的软件了。作为一名用户,他可能发现了一个漏洞或者发现了对一个新功能的需求。
+
+很明显,大多数用户不会执行额外的步骤来提交议题。提议者是我们的忠实用户,我们对他们表示感谢。此外,通过提出议题,他们已经成为了非代码贡献者,他们也有希望成为代码贡献者。经验法则是大约每 10000 名用户中,可能有 100 名提议者,以及 1 名代码贡献者。当然取决于用户类型,上述比例可能有出入。
+
+回到指标问题,你可以将提议者数量作为评估使用量的下界。相关的指标包括:
+
+- 提议者数量
+- 活跃提议者的数量(在过去 6 个月内提出议题的提议者)
+- 同时有代码贡献的提议者的数量
+- 尚未解决的议题的数量
+- 对议题发布的评论数量
+
+### 邮件列表、论坛和问答网站
+
+很多开源项目都拥有用户邮件列表、论坛,并且出现在类似 Stack Overflow 的问答网站上。与提问者一样,在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动,包括:
+
+- 用户邮件列表的订阅量
+- 论坛用户的数量
+- 问题的数量
+- 答案的数量
+- 发布信息的数量
+
+### 上报功能
+
+为了获得精确的用户数量,一个方案是让软件在使用时上报信息。
+
+这是令人毛骨悚然的。想象一下,系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接,你不仅无法再收到软件报告(被防火墙拦截了),恐怕连你的软件也可能在未来被禁止使用。
+
+负责任的设置上报功能的方式为设置一项可选服务来检查更新并让用户知道使用最新版本。另一项可选功能可以集中在使用遥测上,你可以通过该功能询问用户是否允许匿名上报软件使用情况。如果经过深思熟虑的实施,这种方式可以允许用户通过他们使用软件的方式帮助优化软件。用户可以持有这样的意见:我一般不允许这种使用信息的分享;但对于一些软件,因为希望开发人员在长期内将软件优化得更好,我愿意这样做。
+
+### 星标与复刻
+
+星标与复刻是如 GitHub、GitLab、Gitee 等社交化编程平台的功能。这些平台上的用户可以给一个项目加星标。为什么他们要给项目加星标呢?GitHub 的文档作出了解释:你可以给一个仓库和主题加星标,以跟踪感兴趣的项目,和在你的新闻订阅中发现相关的内容。给一个项目加星标与将其加入书签的效果一样,并且还提供了一种向项目仓库的维护者展示赞赏的方式。星标的数量已经成为了项目流行程度的标志。当一个项目发布重大公告并获得相当的关注时,项目的星标数量会呈上升趋势。星标的数量指标并不反映软件的使用量。
+
+在社交化编程平台上的复刻Fork是将项目仓库复制一份在自己名下。仓库的非维护者可以在他们自己的克隆仓库中做修改,并将修改通过拉取请求pull request(PR)的方式提交审核。复刻比星标更能反映软件社区的规模。开发者也可能为了保存一份代码副本而克隆一个项目,以便在原始仓库消失后他们仍能访问代码。因为复刻功能在代码贡献工作流中的应用,复刻量是衡量开发社区的良好指标。复刻量通常也不反映非开发人员的使用,因为非开发人员一般不创建复刻。
+
+### 社交媒体
+
+包括 Facebook、Instagram、LinkIn、Reddit、Twtter 等社交媒体平台提供了相同兴趣的人们聚集的平台。采用社交媒体策略,开源项目可以通过在平台上设置相应的聚集空间来吸引对项目感兴趣的人们。通过这些社交媒体途径,开源项目可以分享项目新闻、更新,指出贡献者和用户。这些社交媒体途径还可以用于认识那些本不会通过其他途径与项目互动的人。
+
+我在犹豫是否建议关注以下指标,因为它与软件的真实使用量没有清晰的联系,并通常需要分析其中的积极、消极和中性的情绪。人们可能因为很多不同的原因对你的项目感到激动而关注它,但并不实际使用它。然而与之前已经讨论过的指标一样,能够在社交媒体上吸收人群本就是项目受关注的整体指标。不同社交媒体平台的指标包括:
+
+- 关注者与订阅者的数量
+- 消息的数量
+- 活跃的消息作者的数量
+- 喜欢、分享、回复以及其他交互的数量
+
+### 网站分析与文档
+
+网站流量也是一个有用的指标。这一指标主要受到你的服务范围以及市场营销活动影响,而不是用户量。然而,我们还有一张王牌:我们的用户文档、教程、手册以及 API 文档。我们可以发现我们的网站以及文档中的什么主题更引人注意。文档的访问者数量应当大致随着软件的使用者数量增长而增长。因此我们可以通过网站的访问量探知对项目的普遍兴趣,并进一步通过观察文档的访问者来观察用户风向。这些指标包括:
+
+- 网站访问者数量
+- 文档访问者的数量
+- 访问者在你的网站与文档上所花的时间
+
+### 活动
+
+活动的指标可以在你主持与项目相关的活动时使用。这是建立社区的很好的方式。有多少人提交摘要想要在你的活动中发言?有多少人出席你的活动?不论是在线下活动还是线上活动这可能都很有趣。当然,你如何推广你的活动在很大程度上决定有多少人到场。同时你可以将自己的活动与人们出行的大型活动放在一起以方便人们参加你的活动。只要你使用一贯的活动策略,你可以通过演讲者提交的材料与参会者注册的增加来表征软件受欢迎程度与用户群的增加。
+
+你并不需要举办你自己的活动来收集有用的指标。如果你在开源活动中主持有关你项目的讨论,你可以衡量有多少人出席主要关注你的项目的会议。像 [FOSDEM][T1] 这样的活动,一些讨论特别聚焦于开源项目的更新与发布,会议室中都挤满了人(像 FOSDEM 的所有会议一样)。
+
+你可以考虑如下指标:
+
+- 以你的项目为中心的活动的出席人数
+- 提交到以你的项目为中心的活动的演讲数量
+- 以你的项目为中心的演讲的出席人数
+
+### 关于估算开源软件使用的结论
+
+正如我们已经如上展现的,有很多指标可以反映软件使用的趋势,没有一个指标是完美的。在大多数情况下,这些指标可能被个人行为、系统设计和噪音所严重影响。因此,考虑到每一个指标的相对不确定性,我们建议你不要孤立地使用任何一个指标。但是如果你从不同的来源收集了一系列的指标,你应当能够探测到用户行为与软件使用的趋势。如果你有办法在多个具有共性的开源项目中比较同一组指标,例如类似的功能、强大的相互依赖性、在同一基础设施上托管,以及其他特征,你就可以提升你对用户行为基线的感知。
+
+需要注意的是,在这篇概述中,我们选择突出能够评估直接使用情况的指标。而大多数软件都依赖于其他各种软件包,如果我们不提及作为软件依赖链的一部分而被间接使用的严重影响,这就是我们的疏忽。因此,我们建议将上下游依赖的合计数量作为你的分析中的另一层内容。
+
+最后,作为数据与指标的使用者,我们鼓励你认识到你的利益相关方的权利与责任。你发布的任何指标都有可能影响用户行为。最好的做法是经常一同分享你的背景信息——基础、来源、估算方法和其他关键上下文信息,这有助于其他人解释你的结果。
+
+感谢 [CHAOSS][T2] 社区在爱尔兰都柏林举行的 CHAOSScon EU 2022 上的富有洞察力的对话,上述对话激发这篇博文的想法。我们还要感谢 CHAOSS 社区的成员审阅并帮助优化本文。
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/12/open-source-usage-metrics
+
+作者:[Georg Link, Sophia Vargas][a]
+选题:[lkxed][b]
+译者:[CanYellow](https://github.com/CanYellow)
+校对:[wxy](https://github.com/wxy)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://opensource.com/users/georglink
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/18/5/metrics-project-success
+[2]: https://opensource.com/article/22/11/community-metrics
+
+[T1]: https://fosdem.org/
+[T2]: https://chaoss.community
+[0]: https://img.linux.net.cn/data/attachment/album/202301/04/173129vmnstoxnzmjlnsxw.jpg
\ No newline at end of file
diff --git a/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
new file mode 100644
index 0000000000..4c68d5c5f1
--- /dev/null
+++ b/published/20221210.2 ⭐️ How to Update Flatpak Packages in Linux.md
@@ -0,0 +1,130 @@
+[#]: subject: "How to Update Flatpak Packages in Linux"
+[#]: via: "https://itsfoss.com/update-flatpak/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15408-1.html"
+
+如何在 Linux 中更新 Flatpak 软件包
+======
+
+![][0]
+
+我相信几乎所有的 Linux 用户都会保持他们系统的更新。
+
+但这种更新通常是针对默认的 [包管理器][1]。例如,[更新 Ubuntu][2] 往往意味着更新所有的 APT 软件包。
+
+然而,还有其他的打包格式,如 Snap 和 Flatpak。Snap 应用程序会自动更新,但 Flatpak 不会。
+
+那么你如何更新 Flatpak 软件包呢?好吧,你可以用这个命令来更新所有已安装和可更新的 Flatpak 包:
+
+```
+flatpak update
+```
+
+这很简单。但让我再讨论一下关于更新 Flatpak 的一些事情,比如说:
+
+- 更新所有或特定的 Flatpak 包
+- 通过软件中心更新 Flatpak 包
+
+让我们先从终端的方法开始。
+
+### 方法 1:使用终端来更新 Flatpak 包
+
+首先让我从最实用的方法开始,你也应该从这个方法开始。
+
+#### 更新每一个过时的 Flatpak 包
+
+更新现有的 Flatpak 包的整个目录是很容易的。
+
+输入给定的命令,就可以得到过期包的列表:
+
+```
+flatpak update
+```
+
+![update flatpak packages in linux][3]
+
+你只需输入 `Y` 并按下回车键,就能搞定每一个更新。
+
+#### 更新特定的 Flatpak 包
+
+要更新特定的软件包,你需要可以更新的软件包的列表。你用的是你之前看到的那个命令。
+
+```
+flatpak update
+```
+
+![update flatpak packages in linux][4]
+
+从输出中复制你要更新的软件包的名称。在以下命令中使用软件包的名称:
+
+```
+flatpak update package_name
+```
+
+例如,如果你想更新 Telegram,下面的命令可以完成这项工作:
+
+```
+flatpak update org.telegram.desktop
+```
+
+![update specific package in flatpak][5]
+
+这就完成了。
+
+### 方法 2:从软件中心更新 Flatpak 应用
+
+有 Flatpak 内置支持的发行版会在软件中心提供 Flatpak 应用的更新。Fedora 和 Linux Mint 就是这样的发行版。
+
+但如果你使用的是 Ubuntu,你就需要在 GNOME 软件中心添加 Flatpak 支持:
+
+```
+sudo apt install gnome-software-plugin-flatpak
+```
+
+完成后,你将在 Ubuntu 中拥有两个软件中心。这是因为默认的软件中心不是 GNOME 的,而是 Snap Store。
+
+从系统菜单中打开这个新的软件中心:
+
+![open software center in ubuntu][6]
+
+进入“更新Update”页面,你会发现过时的软件包列表。这包括 APT 和 Flatpak 软件包。
+
+![update flatpak from software center][7]
+
+在这里,你可以一次更新所有的软件包,或者你可以有选择地更新什么。
+
+### 总结
+
+许多 Linux 桌面用户往往忘记更新 Flatpak 软件包,因为它们不包括在定期的系统更新中。
+
+由于 Flatpak 是一个沙盒式的打包解决方案,你可能不会面临任何与过时的软件包有关的问题,但你肯定会错过新的功能和修复。
+
+这就是为什么我建议每隔几周运行一次 Flatpak 更新命令。
+
+我希望你喜欢这个快速的 Flatpak 小技巧。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/update-flatpak/
+
+作者:[Sagar 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/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/package-manager/
+[2]: https://itsfoss.com/update-ubuntu/
+[3]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png
+[4]: https://itsfoss.com/content/images/wordpress/2022/12/3.-update-flatpak-packages-in-linux.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/4.-update-specific-package-in-flatpak.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/1.-open-software-center-in-ubuntu.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/2.-update-flatpak-from-software-center.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/03/154131lop17rnnrkiprkl7.jpg
\ No newline at end of file
diff --git a/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
new file mode 100644
index 0000000000..dfc488c153
--- /dev/null
+++ b/published/20221220.1 ⭐️ How to Downgrade Flatpak Packages in Linux.md
@@ -0,0 +1,117 @@
+[#]: subject: "How to Downgrade Flatpak Packages in Linux"
+[#]: via: "https://itsfoss.com/downgrade-flatpak-packages/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15402-1.html"
+
+如何在 Linux 中降级 Flatpak 软件包
+======
+
+![][0]
+
+> Flatpak 软件包的一个鲜为人知的特点是,它允许你对已安装的应用程序进行降级。下面是如何使用它的方法。
+
+从技术上讲,小版本或次要更新是为了解决问题。但是,当某些更新破坏你当前的工作流程时,情况可能会变得更糟。
+
+无论是 Flatpak 包还是 Snap,当出现问题时,一切都会在某个时候崩溃。作为一个沙盒打包方案,它可能不会影响整个系统,但如果你遇到一个让你的应用体验变差的错误,你可能会后悔更新。
+
+比如之前 [Black Box][1] 的更新就带来了一些错误,无法选择文字!开发人员现在已经解决了这个问题,但在他们没有解决之前,我降级了那个特定的包以使其正常工作。
+
+所以,如果你想降级特定的 Flatpak 应用,你可以按照本指南进行操作。
+
+### 在 Linux 中降级 Flatpak 包
+
+**免责声明:** 与安装 Flatpak 不同,你需要 `sudo` 权限才能降级 Flatpak 包。如果你的用户没有该权限,你可以按照我们关于 [如何向用户授予 sudo 访问权限][2] 的详细指南进行操作。
+
+以下是步骤:
+
+#### 1、获取包的应用 ID
+
+第一步是找到要降级的包的应用 ID。你可以列出已安装的软件包轻松找到它:
+
+```
+flatpak list --app
+```
+
+![find flatpak package id in linux][4]
+
+记下要降级的包的应用 ID。
+
+这里,我要降级 Black Box,所以我的应用 ID 将是 `com.raggesilver.BlackBox`。
+
+#### 2、列出以前的版本并获取该提交的代码
+
+获得应用 ID 后,你需要列出以前的版本。
+
+你可以按照给定的命令语法做到这点:
+
+```
+flatpak remote-info --log flathub
+```
+
+![find previous releases in flatpak][5]
+
+找到首选的先前版本后,复制如上所示的提交的代码。
+
+#### 3、降级 Flatpack 包
+
+执行前两个步骤后,你应该有以下内容:
+
+- 包的应用 ID。
+- 首选旧版本的提交代码。
+
+现在,你必须将它们放在以下命令中:
+
+```
+sudo flatpak update --commit=
+```
+
+当我将 Black Box 降级到以前的版本时,我将使用以下命令:
+
+```
+sudo flatpak update --commit=c4ef3f4be655cbe2559451a9ef5977ab28139c54bb5adbd7db812f3482bd0db5 com.raggesilver.BlackBox
+```
+
+![downgrade flatpak package in linux][6]
+
+这就完成了!
+
+要检查你是否已成功降级软件包,你可以列出需要更新的软件包(考虑到其他所有内容都是最新的)。它应该包括你最近降级的软件包的名称:
+
+```
+flatpak update
+```
+
+![downgrade flatpak package][7]
+
+如你所见,Black Box 已过时,需要更新,这意味着包已成功降级!
+
+### 总结
+
+在本快速教程中,我解释了如何降级 Flatpak 软件包,希望对你有所帮助。
+
+如果你有任何疑问或建议,请在评论中告诉我。
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/downgrade-flatpak-packages/
+
+作者:[Sagar 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/sagar/
+[b]: https://github.com/lkxed
+[1]: https://itsfoss.com/blackbox-terminal/
+[2]: https://itsfoss.com/add-sudo-user-ubuntu/
+[4]: https://itsfoss.com/content/images/wordpress/2022/12/find-flatpak-package-id-in-linux.png
+[5]: https://itsfoss.com/content/images/wordpress/2022/12/find-previous-releases-in-flatpak-1.png
+[6]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package-in-linux.png
+[7]: https://itsfoss.com/content/images/wordpress/2022/12/downgrade-flatpak-package.png
+[0]: https://img.linux.net.cn/data/attachment/album/202301/01/160400h0mmppwwvxd004bm.jpg
\ No newline at end of file
diff --git a/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
new file mode 100644
index 0000000000..0b6dccf74a
--- /dev/null
+++ b/published/20221222.2 ⭐️⭐️ 3 delightful features of the Linux QtFM file manager.md
@@ -0,0 +1,96 @@
+[#]: subject: "3 delightful features of the Linux QtFM file manager"
+[#]: via: "https://opensource.com/article/22/12/linux-file-manager-qtfm"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: "geekpi"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15404-1.html"
+
+Linux QtFM 文件管理器的 3 个令人愉快的功能
+======
+
+![][0]
+
+> 这个 Linux 文件管理器做了你所期望的一切,没有留下不愉快的惊喜。但这里有一些令人惊喜的事情,使它值得一试。
+
+QtFM 是一个简单的文件管理器,旨在通过一个快速直观的界面提供文件管理的基本功能。它适用于 Linux、BSD 和 macOS。
+
+QtFM,顾名思义,使用 Qt(规范发音为 “cute”)编程工具包。我在 C++ 和 Python 中使用过 Qt 工具包,使用它总是一种乐趣。它是跨平台的,具有多个有用的抽象级别,因此开发人员不必直接与特定于供应商的 SDK 交互,而且它具有高度可配置性。从用户的角度来看,无论你使用的是最新的硬件还是[旧计算机][1],这都是一种“自然”且快速的体验。
+
+### 使用 QtFM
+
+QtFM 没有太多内容。它专注于实现其名称所声称的:Qt 的文件管理器(FM)。其布局可能是你对文件管理器的期望:左侧是常用位置和设备的列表,右侧是文件列表。
+
+![QtFM file manager][2]
+
+它只有四个菜单:
+
+- 文件File:创建新文件或文件夹,打开新选项卡或窗口,或退出应用。
+- 编辑Edit:在左侧面板中复制、粘贴、移至垃圾箱或创建新书签。
+- 视图View:在列表视图和图标视图之间切换,调整布局。
+- 帮助Help:许可信息和在线文档链接。
+
+与 QtFM 交互与你可能习惯使用的任何标准文件管理器的体验大致相同。你可以点击导航、在其默认应用中打开文件、拖放文件和文件夹、复制和粘贴文件和文件夹、启动应用,以及你在与计算机内容交互时执行的任何其他操作。它很熟悉,所以基本上没有学习曲线,也没有不愉快的惊喜。
+
+然而,也有一些惊喜。这是我最喜欢的三个。
+
+### 1、将命令放入上下文菜单
+
+使用 QtFM,你可以将可以在终端中运行的任何命令添加到右键单击上下文菜单中。例如,假设你想要一个将图像转换为 [webp 格式][3] 的选项到右键菜单。无需学习复杂的框架或脚本语言,无需开发插件。你只需 3 个步骤即可完成:
+
+- 转到 “编辑Edit” 菜单并选择 “设置Settings”。
+- 单击 “自定义操作选项卡Custom actions tab”。
+- 单击 “添加Add” 按钮并输入要运行的命令,用 `%f` 代表源文件,用 `%n` 代表新文件。
+
+![QtFM custom actions][4]
+
+该操作现在出现在你的 QtFM 上下文菜单中。
+
+### 2、灵活的布局
+
+Qt 工具包的内置功能之一是它的许多组件(“小部件”)是可分离的。QtFM 利用了这一点,并允许你从 “视图View” 菜单中解锁其布局。解锁后,你可以拖动工具栏和侧面板,将它们固定在窗口周围的新位置。我能够将菜单栏、导航工具栏和 URI 字段组合到一个统一的面板中,并且为了方便,我在窗口的右侧放置了一个文件树。
+
+![QtFM unlocking the layout][5]
+
+这不需要应用设计甚至配置的特殊知识。你只需解锁、拖放和锁定。
+
+### 3、标签视图
+
+许多 Linux 文件管理器提供选项卡的方式与大多数 Web 浏览器相同。这是一个简单的界面技巧,可让你方便地保留多个位置。我不知道它是否真的节省了时间,但我总觉得它确实如此。QtFM 也提供选项卡,我特别喜欢它实现选项卡的方式有两点。
+
+首先,选项卡默认位于窗口底部(你可以在 “设置Settings” 中更改它)。因为我倾向于从左到右、从上到下阅读,所以我通常更喜欢在窗口的底部和右端设置“额外”信息。当然,“额外”信息的构成因用户而异,因此我不会责怪任何开发人员将小部件和面板放置在我不会放置小部件和面板的地方。不过,当开发人员不小心同意我的偏好时,这很好。
+
+其次,标签是响应式的。只需将鼠标悬停在目标选项卡上,即可将文件或文件夹从一个选项卡拖动到另一个选项卡中。感觉就像从一个窗口拖放到另一个窗口一样自然。
+
+### 安装 QtFM
+
+在 Linux 上,你的发行版可能会将 QtFM 打包在它的软件仓库中。如果是这样,你可以使用包管理器进行安装。例如,在 Debian 和基于 Debian 的系统上:
+
+```
+$ sudo apt install qtfm
+```
+
+如果你的发行版不提供 QtFM,你可以在其 [网站][6] 上找到它的软件包,或者你可以从它的 [Git 仓库][7] 下载源码。
+
+---
+
+via: https://opensource.com/article/22/12/linux-file-manager-qtfm
+
+作者:[Seth Kenlon][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/seth
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/10/obsolete-computer-linux-opportunity
+[2]: https://opensource.com/sites/default/files/2022-12/qtfm.webp
+[3]: https://opensource.com/article/20/4/webp-image-compression
+[4]: https://opensource.com/sites/default/files/2022-12/qtfm-custom-action.webp
+[5]: https://opensource.com/sites/default/files/2022-12/qtfm-layout-unlock.webp
+[6]: https://qtfm.eu/
+[7]: https://github.com/rodlie/qtfm/
+[0]: https://img.linux.net.cn/data/attachment/album/202301/02/170250zuwyuzzr9o3myl3l.jpg
\ No newline at end of file
diff --git a/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
new file mode 100644
index 0000000000..834ab618b2
--- /dev/null
+++ b/published/20221230.1 ⭐️⭐️ Vanilla OS Stable Release Has Landed!.md
@@ -0,0 +1,137 @@
+[#]: subject: "Vanilla OS Stable Release Has Landed!"
+[#]: via: "https://news.itsfoss.com/vanilla-os-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15401-1.html"
+
+不普通的普通操作系统:Vanilla OS 稳定版发布了!
+======
+
+> Vanilla OS 已经准备好让你尝试!在这里了解令人兴奋的地方。
+
+![][1]
+
+Vanilla OS 是一个基于 Ubuntu 的发行版,旨在为用户提供一个具有随需应变能力和自由选择软件包的 GNOME 体验。(LCTT 译注:Vanilla —— “香草”,因为作为太普通的香料,所以也有“普普通通”的意思。)
+
+经过几个月的测试,**Vanilla OS 的第一个版本** 终于以 **Vanilla 22.10 Kinetic** 的形式出现了,其提供了原汁原味的 **GNOME 43**。
+
+在最近的一次采访中,我们问创建者:“很多人认为我们已经有太多的发行版了。为什么还要有 Vanilla OS?”,**Mirko Brombin**,分享了一些有趣的见解享。请看下面我们与他的对话,探索关于 Vanilla OS 的令人兴奋的事情:
+
+> **[“不要害怕做出贡献”:Mirko Brombin 谈 Vanilla OS 和其他未来项目][22]**
+
+Vanilla OS 有几个特点,你可能会觉得有帮助,请允许我向你介绍一下。
+
+### 主要亮点
+
+![Vanilla OS 22.10 Kinetic][2]
+
+作为一个新的发行版,Vanilla OS 有一个装备精良的功能集,你可能会喜欢。一些值得注意的亮点包括:
+
+- 原生安装程序
+- Vanilla OS 首次设置First Setup 功能
+- Vanilla OS 控制中心
+- apx 软件包管理器
+- 随需应变能力
+
+#### 原生安装程序
+
+![Vanilla OS 安装程序][3]
+
+Vanilla OS 有一个用 [GTK4][4] 和 [libadwaita][5] 编写的原生的安装程序,它取代了该操作系统在早期开发阶段时使用的 [Calamares][6] 安装程序。
+
+![Vanilla OS 安装程序正在进行][7]
+
+之前,他们还宣布将使用来自 Crystal Linux 团队的 [Jade][8] 安装程序。
+
+但是,他们改变了主意,选择在现有的 [Vanilla 首次设置][10] 项目之上建立 [Vanilla 安装程序][9]。
+
+#### Vanilla OS 首次设置
+
+![Vanilla OS 首次设置][11]
+
+Vanilla OS 的安装完成后,你会看到一个快速设置屏幕,上面用各种语言写着 “欢迎”。
+
+![Vanilla OS 软件包管理器选择][12]
+
+然后它将带你完成各种设置,如选择颜色方案,选择你想要的软件包管理器,是否要安装受限制的编解码器,等等。
+
+我必须说,这很方便! 😃️
+
+#### Vanilla OS 控制中心
+
+![Vanilla OS 控制中心][13]
+
+这个图形化工具使你能够对操作系统进行修改,如运行关键更新和安装额外的驱动程序。
+
+#### 随需应变的不变性
+
+![展示 - Vanilla OS 中的 ABRoot 事务性更新][14]
+
+正如上面 Vanilla OS 的创始人所展示的,这个操作系统可以提供完全的不变性和原子性,允许你在两个根分区(A/B)之间进行交易。
+
+你问这是什么意思? 🤔
+
+嗯,这意味着你的系统的核心部分被锁定,以防止任何不必要的变化,特别是那些由损坏的应用程序或错误的更新引起的变化。
+
+Vanilla OS 使用 [ABRoot][15] 来实现这一目标,之前,他们曾尝试使用 [Almost][16],但结果并不理想。
+
+![][17]
+
+它还有一个**智能更新功能**,他们解释如下:
+
+> VSO(Vanilla System Operator)是一个工具,它将定期检查更新,然后如果设备没有处于大量使用状态,就在后台下载和安装。事实上,VSO 检查是否满足某些检查条件,如资源是否空闲(CPU/RAM),连接是否允许,电池是否至少有 30% 的电量等。
+
+更新是通过 ABroot 应用的,并在下一次重启时得到修补,而不需要花费额外时间。
+
+#### apx 软件包管理器
+
+![Vanilla OS apx][18]
+
+Vanilla OS 带有 [apx][19] 工具,允许你在不修改根文件系统的情况下在管理的容器内安装软件包。
+
+### 下载 Vanilla OS
+
+如果你认为 Vanilla OS 解决了你在 Ubuntu 上遇到的问题,并且想要一个原汁原味的 GNOME 体验,那就来试试吧。
+
+你可以在其 [官方博客文章][20] 中了解更多关于 Vanilla OS 22.10 的信息。
+
+> **[下载 Vanilla OS][21]**
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/vanilla-os-release/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/vanilla-os-release.png
+[2]: https://youtu.be/aDvIJ_Hu90Y
+[3]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer.png
+[4]: https://news.itsfoss.com/gtk-4-release/
+[5]: https://news.itsfoss.com/gnome-libadwaita-library/
+[6]: https://calamares.io
+[7]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Installer-2.png
+[8]: https://github.com/crystal-linux/jade
+[9]: https://github.com/Vanilla-OS/vanilla-installer
+[10]: https://github.com/Vanilla-OS/first-setup
+[11]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-First-Setup.png
+[12]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Package-Manager.png
+[13]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-Control-Center.png
+[14]: https://youtu.be/hIN-x3P12Tk
+[15]: https://github.com/Vanilla-OS/ABRoot
+[16]: https://documentation.vanillaos.org/docs/almost/
+[17]: https://news.itsfoss.com/content/images/2022/12/vanilla-os-updates.png
+[18]: https://news.itsfoss.com/content/images/2022/12/Vanilla-OS-apx.png
+[19]: https://github.com/Vanilla-OS/apx
+[20]: https://vanillaos.org/2022/12/29/vanilla-os-22-10-kinetic.html
+[21]: https://vanillaos.org
+[22]: https://news.itsfoss.com/interview-mirko-brombin/
\ No newline at end of file
diff --git a/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
new file mode 100644
index 0000000000..173a76f9e9
--- /dev/null
+++ b/published/20230103.0 ⭐️⭐️ Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish.md
@@ -0,0 +1,87 @@
+[#]: subject: "Ultramarine Linux 37 Release Adds Pop OS-Style KDE Plasma, Drops Cutefish"
+[#]: via: "https://debugpointnews.com/ultramarine-linux-37-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15410-1.html"
+
+Ultramarine Linux 37 版本发布
+======
+
+![][1]
+
+> Ultramarine Linux 的新版本来了。Ultramarine Linux 37 带有新的自定义软件仓库、KDE Plasma 特色版等等。
+
+如果你不知道,Ultramarine Linux 是一个基于 Fedora 的发行版,提供了 Budgie、Pantheon、GNOME 等桌面环境。这个发行版通过这些令人赞叹的桌面环境给你提供了最好的 Fedora 体验。
+
+最近,这个小项目被 [FyraLabs][2] 收购,后者是 PhotonBrowser 和 tauOS 背后的公司。而这使得 Ultramarine 项目有了必要的人力和资金来继续建设他们的发行版。
+
+自 Fedora 37 发布以来,该团队一直致力于重件当前版本,这包括采用新的基础设施和 CI/CD 管道迁移。终于,Ultramarine Linux 37 登场了。
+
+那么,它有什么新东西呢?
+
+### Ultramarine Linux 37 的新功能
+
+自从被 Fyralabs 收购后,该团队升级并迁移到用于自动化 CI/CD 构建的 GitHub Actions。Ultramarine 自己的软件仓库用于分发其精心组织的软件包(例如 Pantheon 桌面),它在这个版本中会发生变化,并转移到 FyraLabs 的基础设施上。
+
+因此,如果你正在运行 Ultramarine 36 版本,它可能无法正常工作。你最好重新安装这个版本,因为显然没有从 36 版到 37 版的升级路径。
+
+此外,Ultramarine 37 为 Fedora 软件包引入了一个名为 [Terra][3] 的滚动仓库,其中包括数百个 Fedora 不提供的应用程序。你可以认为它类似于 [RPM Fusion][4],尽管有所不同。
+
+要了解更多,请访问 [本页][3] 或从命令行添加以下软件仓库:
+
+```
+sudo dnf config-manager --add-repo https://terra.fyralabs.com/terra.repo
+```
+
+事实上,这开启了一种可能性,因为你也可以尝试在 Fedora Linux 中谨慎地使用它。如果上述软件仓库能在普通的 Fedora 安装中开箱即用,那就更棒了。
+
+在上述变化的基础上,Ultramarine Linux 37 首次引入了 KDE Plasma 作为官方版本。KDE Plasma 特色版带来了含有 Latte Dock 和 Lightly Qt 主题的 Pop OS 风格外观。
+
+![Ultramarine Linux 37 具有独特的 Pop OS 风格的 KDE Plasma 主题][5]
+
+Ultramarine Linux 37 也放弃了 Cutefish 桌面,因为它目前正处于 [混乱的开发状态,没有可见的路线图][6]。这是该团队的一个很好的决定,因为打包一个已经停止的项目是没有意义的。
+
+Budgie 桌面旗舰版使用上游的 Fedora 软件包,有更多的默认应用程序。最近,Fedora Linux 删除了对 elementary OS 的 Pantheon 桌面的支持,很遗憾。感谢 Ultramarine Linux 开发者,你仍然可以体验它,因为它已经被转移到新的 Terra 软件仓库中。
+
+你应该庆幸,Ultramarine Linux 是唯一一个的基于 Fedora 的支持令人赞叹的 Pantheon 桌面的发行版。
+
+最后,Ultramarine Linux 37 的核心基于 [Fedora 37][7],采用 Linux 主线内核 6.0。因此,所有更新的软件包和工具链都在这个版本中。
+
+所以,这就是关于这个版本的总结。请继续关注几天后对这个版本的官方点评。如果有兴趣,你可以在这里阅读之前的版本(36)的评论。
+
+> **[Ultramarine Linux:带有 Budgie、Cutefish 和 Pantheon 桌面的终极 Fedora 特色版][8]**
+
+### 下载和升级
+
+由于没有升级路径,建议你对该版本进行全新安装。你可以在下面下载各个桌面环境的 ISO 文件。
+
+> **[下载 Ultramarine Linux 37][9]**
+
+参考自:[发布公告][10]。
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/ultramarine-linux-37-release/
+
+作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/ultra37head.jpg
+[2]: https://twitter.com/UltramarineProj/status/1579991853478182914
+[3]: https://terra.fyralabs.com/
+[4]: https://www.debugpoint.com/enable-rpm-fusion-fedora-rhel-centos/
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Ultramarine-Linux-37-with-unique-Pop-OS-style-KDE-Plasma-Theme.jpg
+[6]: https://www.debugpoint.com/cutefish-development-restarts/
+[7]: https://debugpointnews.com/fedora-37-release-accouncement/
+[8]: https://www.debugpoint.com/ultramarine-linux-36/
+[9]: https://repos.fyralabs.com/isos/ultramarine/37/
+[10]: https://github.com/Ultramarine-Linux/build-scripts/releases/tag/37-1.0
diff --git a/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
new file mode 100644
index 0000000000..83f6605f84
--- /dev/null
+++ b/published/20230104.1 ⭐️ Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release.md
@@ -0,0 +1,68 @@
+[#]: subject: "Official Fedora Budgie & Sway Spins to Arrive With Fedora 38 Release"
+[#]: via: "https://news.itsfoss.com/fedora-budgie-sway-official/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15418-1.html"
+
+Fedora 38 将发布 Budgie 和 Sway 官方定制版
+======
+
+> 两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。
+
+![][1]
+
+我们期待着它们在 Fedora 37 时出现,但在 Fedora 38 中终于来了!
+
+早在 2022 年 5 月,Budgie 项目的主要开发者 Joshua Strobl [宣布][2],Budgie 已被提交到 Fedora 中。
+
+遗憾的是,在那之后不久,我们并没有看到任何官方 [Fedora 定制版][3] 发布的迹象,尽管它在 [Fedora 37 发布][4] 期间进入了 Fedora 软件库。
+
+**但现在有了。**
+
+随着 Fedora 38 的发布,看起来我们会得到一个 [Budgie][5] 的官方定制版,同时还有一个 [Sway][6] 窗口管理器的定制版。
+
+### Fedora Budgie 和 Sway
+
+在 [最近的一次会议][9] 上,Fedora 工程和指导委员会(FESCo)投票决定将 Budgie 和 Sway 窗口管理器的 Fedora 官方定制版纳入 Fedora 38 的发布中。
+
+根据 Budgie 和 Sway 的初步修改建议,我们可以期待很多变化。
+
+对于 Budgie:
+
+- Fedora 38 将提供 Budgie 桌面环境,包含一套核心应用程序,如用于更新/软件包管理的 GNOME “软件”应用、一个文本编辑器、一个网页浏览器和一个终端。
+- 它还将使用 [Materia GTK][10] 和 [Papirus][11] 图标主题,整个系统采用 GTK 主题设计。
+- Budgie 定制版还将采用 lightdm + slick-gtk-greeter,以获得更直观的用户问候体验。
+
+对于 Sway 定制版:它旨在提供一个极简体验,只包括默认配置之上的一些元素。
+
+预期时间:随着 Fedora 38 的开发在未来几个月内的加快,你可以期待这些定制版在 2023 年 4 月期间出现。当然,会有预装了 Budgie 和 Sway 的单独 ISO 文件。
+
+因此,我认为看到 Budgie 与 Fedora 的体验会非常吸引人,特别是当 Budgie 的开发似乎正在发生一些有趣的变化。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/fedora-budgie-sway-official/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/fedora-budgie-sway-spins-arrive.png
+[2]: https://www.reddit.com/r/Fedora/comments/uq3gah/budgie_desktop_has_now_been_submitted_for/
+[3]: https://spins.fedoraproject.org
+[4]: https://news.itsfoss.com/fedora-37-release/
+[5]: https://blog.buddiesofbudgie.org
+[6]: https://swaywm.org
+[7]: https://unlocator.com/favicon.ico
+[8]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
+[9]: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/RNJZUX3ZI34DIX6E4PVDKYQWCOFDQ4UY/
+[10]: https://github.com/nana-4/materia-theme
+[11]: https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
diff --git a/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
new file mode 100644
index 0000000000..97aa2ad8ee
--- /dev/null
+++ b/published/20230105.2 ⭐️ Nitrux 2.6.0 Takes Bold Steps Drops apt, Adds Flathub and Pipewire.md
@@ -0,0 +1,83 @@
+[#]: subject: "Nitrux 2.6.0 Takes Bold Steps: Drops apt, Adds Flathub and Pipewire"
+[#]: via: "https://debugpointnews.com/nitrux-2-6-0-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15420-1.html"
+
+Nitrux 2.6.0 大胆抛弃 apt
+======
+
+![][1]
+
+> Nitrux 2.6.0 带有 Flathub、默认支持的 Pipewire、最新内核和 KDE 框架。
+
+![Nitrux 2.6.0 Desktop][2]
+
+[Nitrux Linux][3] 是基于 Debian 的,它带有一个名为 NX 桌面的修改版的 KDE Plasma 桌面。这个独特的 Linux 发行版带来了一套自己的建立在 Maui kit 和 Qt 之上的 Nitrux 应用程序。Nitrux 是无 systemd 的,使用 OpenRC 作为启动系统。所有这些独特的功能和令人惊叹的外观,使它成为当今最好的 Linux 发行版之一。
+
+Nitrux 2.6.0 被提升为一个主要版本,因为它对 12 月发布的 2.5.1 版本进行了关键的更新。
+
+### Nitrux 2.6.0 的新内容
+
+这个版本的一个主要重点是在 SDDM 显示管理器中引入 Plasma Wayland 会话。Wayland 还不是默认的,但可以作为选项选择。X11 仍然是默认的。我相信在下一个主要版本中 NItrux 团队可以默认启用 Wayland。
+
+此外,现代声音管理器 Pipewire 现在是默认的,因为它已经在 Ubuntu 和 Fedora 中标准化了,而且感觉很稳定。由于有了 Pipewire,你的音频工作流程将变得更好。
+
+Nitrux 2.6.0 还默认启用了最大的 Flatpak 应用程序仓库 - Flathub。这意味着你不需要再手动设置 Flatpak 和启用 Flathub。现在,Flatpak 应用程序的安装变得更加容易。
+
+其他值得注意的变化包括:Nitrux 使根(/)分区成为不可变分区,以防止它被破坏,Samba 包现在是 Nitrux 默认安装的一部分,Calamares 安装程序有了一个定制的自动分区方案。
+
+![Nitrux 2.6 安装自动分区][4]
+
+从一开始,Nitrux 就倾向于为其整个桌面组件提供自包含的可执行文件。主要的选择是 AppImage 文件格式。在这个版本中,你会得到默认的 Flathub 环境,而流行的 apt 软件包管理器现在被放弃了。这可能会改变一些用户的工作流程,因为 `apt` 命令将无法工作;尽管它是基于 Debian 的。
+
+因此,Nitrux 团队建议使用 Distrobox 容器来设置单独的环境,以便与 apt 一起使用。然而,对于普通用户来说,理解容器、不可变的根分区会有点困难。
+
+![apt 被放弃][5]
+
+讽刺的是 `apt` 会在安装时使用,因为 Calamares 需要它。然而,在安装完成后,它会被删除。
+
+> 现场 ISO 中包括 APT 和 dpkg,但这是因为 Calamares 需要它们来完成安装,并将从安装的系统中删除。
+>
+> —— NITRUX TEAM
+
+Nitrux 2.6.0 的核心是 liqurix 内核 6.1,以及游戏和多媒体功能。这个版本由 KDE Plasma 2.26.4、KDE Framework 5.101.0 和 Qt 5.15.7 LTS 驱动。
+
+如果你想阅读更多信息,可以在 [这里][6] 找到详细的发布说明。
+
+### 下载
+
+你可以从以下页面下载这个版本。然而,没有可用的升级路径。因此,建议进行新的安装。
+
+- [FOSS Torrents(Torrent)][7]
+- [Sourceforge(镜像)][8]
+- [OSDN(镜像)][9]
+
+参考自 [发布公告][10]。
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/nitrux-2-6-0-release/
+
+作者:[arindam][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://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2023/01/nitrux-head.jpg
+[2]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6.0-Desktop.jpg
+[3]: https://nxos.org/
+[4]: https://debugpointnews.com/wp-content/uploads/2023/01/Nitrux-2.6-install-automatic-partition.jpg
+[5]: https://debugpointnews.com/wp-content/uploads/2023/01/Screenshot-from-2023-01-05-13-44-57.png
+[6]: https://nxos.org/notes/notes-nitrux-2-6-0
+[7]: https://fosstorrents.com/distributions/nitrux/
+[8]: https://sourceforge.net/projects/nitruxos/files/Release/ISO
+[9]: https://osdn.net/projects/nitrux/releases/p18379
+[10]: https://nxos.org/changelog/release-announcement-nitrux-2-6-0/
diff --git a/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
new file mode 100644
index 0000000000..9d332fdddd
--- /dev/null
+++ b/published/20230106.2 ⭐️ Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users.md
@@ -0,0 +1,97 @@
+[#]: subject: "Budgie's Upcoming 10.7 Release Promises These 3 Key Improvements for Linux Users"
+[#]: via: "https://news.itsfoss.com/budgie-10-7-features/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: "wxy"
+[#]: reviewer: "wxy"
+[#]: publisher: "wxy"
+[#]: url: "https://linux.cn/article-15424-1.html"
+
+Budgie 10.7 即将带来 3 项关键改进
+======
+
+> Budgie 10.7 有很多有价值的改进。请看本文。
+
+![][1]
+
+Budgie 是一个旨在将杂乱无章降到最低,为用户提供一个干净/简约的体验的桌面环境。
+
+早在 2022 年 1 月,Solus 的前联合负责人 Joshua Strobl [离开了 Solus][2],从事 [SerpentOS][3] 的开发,但他还继续参与 Budgie 的开发。
+
+因此,他将该项目复刻到一个新的代码仓库,并成立了 [Buddies Of Budgie][4] 组织。三个月后,他们发布了 **Budgie 10.6**。
+
+这是一个很不错的版本,即使不是很特别。
+
+展望未来,他们发布了 2023 年的计划,其中包括发布 **Budgie 10.7**。
+
+[Joshua Strobl][5] 在博文中也提到了更多计划内容:
+
+> 至少,它应该是一个很好的基础,并为 Budgie 桌面今年的发展方向提供一个清晰的蓝图:Budgie 10.x 将会增加新的功能、QoL 改进和修复。Budgie 11 的开发工作也将起步。
+
+### Budgie 10.7 可以期待什么?
+
+Budgie 10.7 的开发工作自去年以来一直在进行。它本应在 2022 年发布,但需要更多的时间来提供一个完美的体验。
+
+已经完成了很多工作,但其中一些值得注意的三个变化是:
+
+- 对 Budgie 菜单的更新
+- 新的 Budgie 屏幕截图工具
+- 对 Budgie 运行对话框的改进
+
+#### 对 Budgie 菜单的更新
+
+![Budgie 10.7 菜单][6]
+
+在这个版本中,Budgie 菜单将得到一些改进,例如。
+
+- 一个新的电源菜单,包含所有常用的选项,如**暂停、休眠、注销和关闭电源**。
+- 更新的个人用户菜单可以快速访问 XDG 目录。这将让你直接打开文件管理器窗口进入主页、文档、音乐等文件夹。
+- 快速访问 Budgie 控制中心和桌面设置。
+- 能够从菜单本身显示各种桌面设置。
+
+#### Budgie 屏幕截图工具
+
+![Budgie 10.7 屏幕截图工具][7]
+
+终于,你不再需要下载另一个工具来在 Budgie 上进行截图;从 10.7 开始,它将具有一个原生的屏幕截图应用程序。
+
+它将支持对屏幕、窗口的捕捉,甚至是进行选区捕捉。
+
+#### 对 Budgie 运行对话框的改进
+
+![Budgie 10.7 运行对话框][8]
+
+Budgie 运行对话框将获得许多改进,例如:
+
+- 一个新的应用程序索引器将被用于 Budgie 菜单,以寻找和分类应用程序。它应该能提供一个 “可预测的模糊搜索体验”。
+- 根据显示器的工作区域改进对话框的大小计算。
+- 更好的应用程序名称和描述的标签样式。
+
+### 发布和未来计划
+
+根据他们的 [公告][9],他们打算在 2023 年第一季度的某个时候发布 Budgie 10.7。他们还没有确定一个具体的日期。
+
+并计划在不久之后发布带有错误修复的 10.7.1 版本,然后在 2023 年第二季度发布 Budgie 10.8。
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/budgie-10-7-features/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/budgie-10-7-release.png
+[2]: https://news.itsfoss.com/solus-co-lead-resign-budgie-serpent/
+[3]: https://serpentos.com
+[4]: https://blog.buddiesofbudgie.org
+[5]: https://joshuastrobl.com
+[6]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Menu.jpg
+[7]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_SS.png
+[8]: https://news.itsfoss.com/content/images/2023/01/Budgie_10.7_Preview_Run.jpg
+[9]: https://blog.buddiesofbudgie.org/state-of-the-budgie-2022/
diff --git a/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md b/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md
deleted file mode 100644
index bddcb326ed..0000000000
--- a/sources/news/20221003 World-s First Open Source Wi-Fi 7 Access Points Are Now Available.md
+++ /dev/null
@@ -1,38 +0,0 @@
-[#]: subject: "World’s First Open Source Wi-Fi 7 Access Points Are Now Available"
-[#]: via: "https://www.opensourceforu.com/2022/10/worlds-first-open-source-wi-fi-7-access-points-are-now-available/"
-[#]: author: "Laveesh Kocher https://www.opensourceforu.com/author/laveesh-kocher/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-World’s First Open Source Wi-Fi 7 Access Points Are Now Available
-======
-*The first Open source Wi-Fi 7 products in the world will be released by HFCL in conjunction with Qualcomm under its IO product line.*
-
-The world’s first Open source Wi-Fi 7 Access Points will be introduced by HFCL Limited, the top high-tech enterprise and integrated next-gen communication product and solution provider, in collaboration with Qualcomm Technologies, Inc. on October 1, 2022 at the India Mobile Congress in Pragati Maidan, New Delhi.
-
-Based on IEEE 802.11be, a ground-breaking Wi-Fi technology that is intended to give Extremely High Throughput (EHT), increased spectrum efficiency, better interference mitigation, and support for Real Time Applications (RTA), HFCL becomes the first OEM to release Open source Wi-Fi 7 Access Points. In order to provide a better user experience while yet using less power, Wi-Fi 7 uses faster connections with 320MHz and 4kQAM, numerous connections with Multi Link operation, and Adaptive Connections for adaptive interference puncturing.
-
-Wi-Fi 7 promises a significant technological advance above all prior Wi-Fi standards updates, providing a more immersive user experience and paving the way for a more robust digital future. The peak data speeds supported by HFCL’s Wi-Fi 7 APs will exceed 10 Gbps, and they will have latency under 2 ms as opposed to the 5 Gbps and 10 ms of existing Wi-Fi 6 products.
-
-Technology providers like telecom operators, Internet service providers, system integrators, and network administrators will be able to offer mission-critical and real-time application services and provide a better user experience than ever before thanks to HFCL’s Wi-Fi 7 product line, which is supported by a strong R&D focus. A wide variety of dual band and tri-band indoor and outdoor variations may be found in the new Wi-Fi 7 product portfolio.
-
-Being the first Wi-Fi 7 Access points in the market to embrace Open standards, all Wi-Fi 7 variations will come pre-installed with open source software. With the goal of providing improved global connectivity and maintaining interoperability in multi-vendor scenarios, open standards support disaggregated Wi-Fi systems delivered as free open source software.
-
-The introduction of Wi-Fi 7 will primarily support the country’s upcoming 5G rollout, particularly for enhancing inside coverage. Additionally, the technology will make it easier to construct a variety of apps because to its increased throughput, dependable network performance, and lower latency. The Internet of Things (IoT) and Industrial Internet of Things (IIoT) applications including surveillance, remote industrial automation, AV/VR/XR, and other video-based applications will benefit from Wi-Fi 7 technology for businesses. With numerous developments in Cloud/Edge Computing and Cloud gaming, it will also increase the number of remote offices, real-time collaborations, and online video conferencing.
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/10/worlds-first-open-source-wi-fi-7-access-points-are-now-available/
-
-作者:[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/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md b/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md
deleted file mode 100644
index 5c7d0d7da1..0000000000
--- a/sources/news/20221013 Blender 3.4 to Enable Native Wayland Support for Linux.md
+++ /dev/null
@@ -1,77 +0,0 @@
-[#]: subject: "Blender 3.4 to Enable Native Wayland Support for Linux"
-[#]: via: "https://news.itsfoss.com/blender-3-4-release/"
-[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Blender 3.4 to Enable Native Wayland Support for Linux
-======
-Blender is bringing in native Wayland support soon. Learn more here.
-
-![Blender 3.4 to Enable Native Wayland Support for Linux][1]
-
-Blender is a popular 3D creation suite that many professionals use.
-
-The developers of Blender have recently added native Wayland support for Linux in the daily builds, and have confirmed adding the support in the upcoming Blender 3.4 release.
-
-This is probably one of the significant development progress after [Blender 3.0 release][2] last year!
-
-### Blender With Native Wayland
-
-[Wayland][3] is a replacement to the X11 [display server][4] that aims to be a simpler and more modern solution.
-
-Providing native Wayland support has become necessary, mainly because many distros now come with that kind of support out of the box.
-
-With more Wayland support in the works and users switching to a distro with native support, this move was a given.
-
-[Linux Laptops - Powered by Open Source][5]
-
-With the daily builds, the **libdecor** library has made this possible. If you want to test it out, you need to have it installed for Blender to work correctly with native Wayland support.
-
-While initial support for Wayland was present in Blender since 2020, it was not ready for prime time. It had a lot of issues, such as no tablet support, no NDOF support, no Hi-DPI support, and similar.
-
-Now, it looks like most of those issues are gone.
-
-### Expect it With Blender 3.4
-
-A blog post by one of Blender's developers *Campbell Barton,* reveals that if all goes well with the daily builds, the Wayland support is coming to Blender 3.4.
-
-Here's what he mentions:
-
-> Now Wayland is enabled in our official builds, I hope to validate it for the up coming release. So unless issues arise which we’re unable to resolve, it will be officially supported in Blender 3.4x onward.
-
-At this point, I can only hope that no significant issues affect its integration.
-
-Otherwise, it may push back to a later release cycle.
-
-Blender 3.4 will release in early **December 2022**, with improvements across the board and new features such as headless rendering for Linux, improvements for Sculpt, Intel Open PGL integration, and more.
-
-> 💡 Blender with Wayland has some technical limitations. You can find more details on that in the [blog post][9].
-
-💬*Are you excited to try out native Wayland support on Blender?*
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/blender-3-4-release/
-
-作者:[Sourav Rudra][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/sourav/
-[b]: https://github.com/lkxed
-[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/blender-3-4-release.png
-[2]: https://news.itsfoss.com/blender-3-0-release/
-[3]: https://wayland.freedesktop.org/
-[4]: https://itsfoss.com/display-server/
-[5]: https://starlabs.systems/?rfsn=4790429.bdbc07
-[6]: https://starlabs.systems/?rfsn=4790429.bdbc07
-[7]: https://itsfoss.com/open-source-video-editors/
-[8]: https://itsfoss.com/open-source-video-editors/
-[9]: https://code.blender.org/2022/10/wayland-support-on-linux/
diff --git a/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
new file mode 100644
index 0000000000..c42c37b80c
--- /dev/null
+++ b/sources/news/20221220.4 ⭐️ EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0.md
@@ -0,0 +1,133 @@
+[#]: subject: "EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0"
+[#]: via: "https://news.itsfoss.com/endeavouros-cassini/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0
+======
+
+EndeavourOS's latest update has arrived!
+
+![EndeavourOS 'Cassini' Releases With New Features and Linux Kernel 6.0][1]
+
+EndeavourOS is a popular Arch-based Linux distribution that aims to make the Arch experience easy.
+
+Code-named 'Cassini', it signifies a new phase in EndeavourOS's development that aims to make the OS better than its previous iterations.
+
+Similar to a [previous release][2], this release is also named after one of NASA's [projects][3].
+
+Let's see what makes this release so unique.
+
+Unlocator Smart DNSRemove geographic blocks from streaming services using Unlocator Smart DNS. Simple to use and with a full free trial included.![][4]Unlocator![][5]
+
+### 🆕 EndeavourOS 'Cassini': What's New?
+
+![endeavouros cassini][6]
+
+The 'Cassini' release packs plenty of improvements, some of the noteworthy highlights include:
+
+- **Improved ARM Support**
+- **Linux Kernel 6.0**
+- **Various User Interface Updates**
+- **Updated Software Packages**
+
+#### Improved ARM Support
+
+![endeavouros cassini arm][7]
+
+EndeavourOS now features support for the [Pinebook Pro][8].
+
+This was made possible by including the new 'linux-eos-arm' kernel that comes with the 'amdgpu' driver for supporting generic ARM devices.
+
+The developers also added that:
+
+> We’ve leveraged existing work and PKGBUIDs of both Manjaro ARM and archlinuxarm-pbp projects to create our Pinebook Pro images and would like to thank them for their continuing work in supporting PineBook Pro for Arch Linux ARM platform.
+
+Furthermore, EndeavourOS also has enhanced support for ARM devices like the [Phytiuim D2000][9], [Raspberry Pi][10], and [Odroid N2+][11].
+
+#### 🎨 Various User Interface Updates
+
+![endeavouros cassini budgie][12]
+
+With this release, EndeavourOS has received quite a few user interface tweaks; some of the highlights include:
+
+- The 'Discover' icon was replaced with a 'Konsole' icon on KDE Plasma.
+- [Qogir theme][13] is being used for icons in Cinnamon and Budgie.
+- In the case of GNOME, the wallpaper follows night and day theme like the Console.
+- The default wallpaper is now set by the 'settings' package instead of 'welcome'.
+- A load of cleanup work for Calamares.
+
+#### Linux Kernel 6.0
+
+EndeavourOS 'Cassini' features Linux Kernel 6.0.12.arch1-1, which enables it to have enhanced support for [OpenRISC][14] and [LoongArch][15] architectures.
+
+Alongside that, there is a noticeable uplift in performance for AMD EPYC, Ryzen Threadripper, and Intel Xeon Ice Lake chips.
+
+You can go through our coverage for more details:
+
+#### Updated Software Packages
+
+This release also features a lot of updated software, including:
+
+- Calamares 3.3.0-alpha3
+- Firefox 108.0.1-1
+- Mesa 22.3.1-1
+- Xorg-Server 21.1.5-1
+- nvidia-dkms 525.60.11-1
+- Grub 2:2.06.r403.g7259d55ff-1
+
+#### 🛠️ Other Changes
+
+There were also a few other changes that I want to mention, such as:
+
+- [dracut][16] has replaced [mkinitcpio][17] to handle the installation process.
+- You can now choose not to install a bootloader.
+- You have two bootloader options to pick from, [systemd-boot][18] and [Grub][19].
+- The Grub submenu is now enabled by default.
+- gedit and GNOME terminal have been replaced by [gnome-text-editor][20] and [GNOME Console][21].
+
+### 📥 Download EndeavourOS Cassini
+
+You can find the latest release on the [official website][22] from one of the available mirrors.
+
+_💬 What do you think of this release? Was it worth the wait?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/endeavouros-cassini/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2022/12/endeavour-os-cassini-release.png
+[2]: https://news.itsfoss.com/endeavouros-artemis-release/
+[3]: https://solarsystem.nasa.gov/missions/cassini/overview/
+[4]: https://unlocator.com/favicon.ico
+[5]: https://unlocator.com/wp-content/uploads/2019/05/unlocatoricon.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini.jpg
+[7]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_ARM.png
+[8]: https://itsfoss.com/pinebook-pro/
+[9]: https://phytium.com.cn/en/article/721
+[10]: https://www.raspberrypi.org
+[11]: https://www.hardkernel.com/shop/odroid-n2-with-4gbyte-ram-2/
+[12]: https://news.itsfoss.com/content/images/2022/12/EndeavourOS-Cassini_2-1.jpg
+[13]: https://github.com/vinceliuice/Qogir-theme
+[14]: https://openrisc.io
+[15]: https://en.wikipedia.org/wiki/Loongson
+[16]: https://dracut.wiki.kernel.org/index.php/Main_Page
+[17]: https://wiki.archlinux.org/title/mkinitcpio
+[18]: https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/
+[19]: https://www.gnu.org/software/grub/
+[20]: https://itsfoss.com/gnome-text-editor/
+[21]: https://gitlab.gnome.org/GNOME/console
+[22]: https://endeavouros.com/latest-release/
diff --git a/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
new file mode 100644
index 0000000000..e55d86badd
--- /dev/null
+++ b/sources/news/20221222.1 ⭐️ Tails 5.8 Arrives with Official Wayland Support.md
@@ -0,0 +1,74 @@
+[#]: subject: "Tails 5.8 Arrives with Official Wayland Support"
+[#]: via: "https://debugpointnews.com/tails-5-8-release/"
+[#]: author: "arindam https://debugpointnews.com/author/dpicubegmail-com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Tails 5.8 Arrives with Official Wayland Support
+======
+
+![][1]
+
+**A sizable update arrives in Tails 5.8, bringing Wayland support, newly redesigned persistence storage and more.**
+
+Tails, aka The Amnesic Incognito Live System, is a [privacy-focussed Linux Distribution][2] which uses the Tor network to protect you while browsing the web. Tails are based on Debian stable branch and come with many goodies such as an IRC client, Tor browser, email clients, and messengers to help you roam around on the web anonymously.
+
+![Tails 5.8 desktop][3]
+
+### What’s New in Tails 5.8 Release
+
+At a high level, Tails 5.8 includes significant redesigns of existing features, improved usability, and strengthened security. Also, bringing modern tech aligns with the changing times and needs of the hour.
+
+The persistence storage module gets a complete redesign in this release. In the new version of Persistent Storage, you no longer have to restart after creating a Persistent Storage or activating a new feature. You can also change the password for your Persistent Storage from within the application. Additionally, you can now create a Persistent Storage directly from the Welcome Screen if you don’t already have one. The Persistent Storage had not been updated much since its initial release in 2012 due to challenges in modifying and improving the code.
+
+The Tails team has also replaced the deprecated X.Org display system with Wayland. While you may not notice any visual changes, Wayland provides increased security for Tails by making it harder for a compromised application to compromise or misuse other applications.
+
+![Browse internet securely using Tails 5.8][4]
+
+For example, since Tails 4.8, the Unsafe Browser has been disabled by default due to a security vulnerability that could reveal your IP address and deanonymize you through the use of an invisible Unsafe Browser. Wayland addresses this vulnerability and makes it safe to enable the Unsafe Browser by default again. However, if desired, you can still disable the Unsafe Browser from the Welcome Screen.
+
+In addition to addressing security concerns, Wayland also introduces new features that were previously not supported in the Unsafe Browser, including sound, file uploads and downloads, alternative input methods for non-Latin languages such as Chinese, and accessibility features like the screen reader and virtual keyboard.
+
+The Tails team has also made it easier to enter new Tor bridges by allowing you to scan a QR code. You can obtain a QR code by sending an empty email to [bridges@torproject.org][5] from a Gmail or Riseup email address or by visiting [https://bridges.torproject.org/][6] and printing the QR code on paper.
+
+Furthermore, the entire Debian stable base is bumped up to the latest version, including pre-loaded apps.
+
+A complete changelog is available [here][7] if you want to dive deeper into the changes.
+
+### Download and upgrade
+
+If you are already running a prior version of the Tails 5.0 series, you should automatically get this update once you boot up Tails from the USB stick.
+
+In addition, if you want to install Tails 5.8 fresh, grab the ISO files from the below links:
+
+- [For USB sticks (USB image)][8]
+- [For DVDs and virtual machines (ISO image)][9]
+
+Via [release announcement][10].
+
+--------------------------------------------------------------------------------
+
+via: https://debugpointnews.com/tails-5-8-release/
+
+作者:[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://debugpointnews.com/author/dpicubegmail-com/
+[b]: https://github.com/lkxed
+[1]: https://debugpointnews.com/wp-content/uploads/2022/12/tails58head.jpg
+[2]: https://www.debugpoint.com/privacy-linux-distributions-2022/
+[3]: https://debugpointnews.com/wp-content/uploads/2022/12/Tails-5.8-desktop.jpg
+[4]: https://debugpointnews.com/wp-content/uploads/2022/12/Browse-internet-securely-using-Tails-5.8.jpg
+[5]: https://debugpointnews.commailto:bridges@torproject.org
+[6]: https://bridges.torproject.org/
+[7]: https://gitlab.tails.boum.org/tails/tails/-/blob/master/debian/changelog
+[8]: https://tails.boum.org/install/download/index.en.html
+[9]: https://tails.boum.org/install/download-iso/index.en.html
+[10]: https://tails.boum.org/news/version_5.8/index.en.html
diff --git a/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
new file mode 100644
index 0000000000..07be806ba7
--- /dev/null
+++ b/sources/news/20230105.3 ⭐️ Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately.md
@@ -0,0 +1,100 @@
+[#]: subject: "Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately"
+[#]: via: "https://news.itsfoss.com/pinta-2-1-release/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately
+======
+
+Pinta 2.1 comes with WebP support and various other useful improvements.
+
+![Pinta 2.1 Release Introduces WebP Support. But You Can't Use It Yet Unfortunately][1]
+
+Pinta is a free and open-source drawing app for Linux that offers a ton of features in a relatively small package.
+
+It is one of the [best Linux tools for digital artists][2] available.
+
+Its last major release was in January 2022, introducing improved Hi DPI support, GTK 3 port, and [more][3].
+
+Marking 2023's first release, Pinta 2.1 promises to offer even further refinements.
+
+**Notice the new Pinta icon in the image above? Well, that's one of the changes.**
+
+Let's see how this release pans out.
+
+### 🆕 What's New in Pinta 2.1?
+
+![pinta 2.1][4]
+
+[Pinta 2.1][5] is offering plenty of new improvements; some notable ones include:
+
+- **WebP Support**
+- **Improved .ora Support**
+- **Enhanced Handles**
+- **Dark Mode**
+- **Improved File Dialog**
+- **Various Bug Fixes and Changes**
+
+**WebP Support:** Pinta finally has support for WebP files, but it does not come out of the box. For Linux users, the [webp-pixbuf-loader][6]**dependency is required to enable WebP support.**
+
+> 📋 Unfortunately, WebP support is not included in the Flatpak and Snap builds of Pinta 2.1. Even if you have that library installed on your system. So, you probably have to build it from the source or use WebP files on Windows/macOS only.
+
+**Improved .ora Support:** With Pinta 2.1, hidden layers are now round-tripped properly for .ora files.
+
+Furthermore, when you save a .ora file, a flattened image is now included in the archive.
+
+It is like this because it is required by the spec to accommodate the viewer software.
+
+**Enhanced Handles:** The selection move and shape control point handles are now more intuitive, especially when working on zoomed-in or small images.
+
+**Dark Mode:** Pinta has finally received full support for dark mode across the app; all icons, toolbars, dialogs, etc., are now in high-res SVG format.
+
+**Improved File Dialog:** The file dialog now uses MIME types on Linux, allowing valid image files with unknown extensions to be included in the image file filter.
+
+**Various Bug Fixes and Changes:** Apart from the changes I listed above, here are some that are also worth mentioning:
+
+- Upgraded to .NET 7.
+- New '**Transparency Mode**' in Gradient Tool.
+- Standard GTK about dialog.
+- The gradient tool now updates properly while drawing transparent colors.
+- The new screenshot command now uses the XDG portal.
+
+If you want to go deep into the technical details of the release, head to its [release notes][7].
+
+### 📥 Download Pinta 2.1
+
+Pinta 2.1 is available in the [Snap store][8], as well as on [Flathub][9]. The repositories include an outdated back, so you can safely ignore it.
+
+You can also try building it from the [source code][10] and explore other download options for Windows/macOS.
+
+[Download Pinta 2.1][11]
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/pinta-2-1-release/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w2000/2023/01/pinta-2-1-release.png
+[2]: https://itsfoss.com/best-linux-graphic-design-software/
+[3]: https://news.itsfoss.com/pinta-2-0-release/
+[4]: https://news.itsfoss.com/content/images/2023/01/Pinta_2.1.png
+[5]: https://www.pinta-project.com
+[6]: https://github.com/aruiz/webp-pixbuf-loader/
+[7]: https://github.com/PintaProject/Pinta/releases/tag/2.1
+[8]: https://snapcraft.io/pinta
+[9]: https://flathub.org/apps/details/com.github.PintaProject.Pinta
+[10]: https://github.com/PintaProject/Pinta
+[11]: https://www.pinta-project.com/releases/
+
diff --git a/sources/talk/20190331 Codecademy vs. The BBC Micro.md b/sources/talk/20190331 Codecademy vs. The BBC Micro.md
index bb5ee313c8..197795acea 100644
--- a/sources/talk/20190331 Codecademy vs. The BBC Micro.md
+++ b/sources/talk/20190331 Codecademy vs. The BBC Micro.md
@@ -2,7 +2,7 @@
[#]: via: "https://twobithistory.org/2019/03/31/bbc-micro.html"
[#]: author: "Two-Bit History https://twobithistory.org"
[#]: collector: "lujun9972"
-[#]: translator: "yesimmia"
+[#]: translator: "CanYellow"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md b/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md
deleted file mode 100644
index 024278de13..0000000000
--- a/sources/talk/20200105 Friend of a Friend- The Facebook That Could Have Been.md
+++ /dev/null
@@ -1,242 +0,0 @@
-[#]: subject: "Friend of a Friend: The Facebook That Could Have Been"
-[#]: via: "https://twobithistory.org/2020/01/05/foaf.html"
-[#]: author: "Two-Bit History https://twobithistory.org"
-[#]: collector: "lujun9972"
-[#]: translator: "aREversez"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Friend of a Friend: The Facebook That Could Have Been
-======
-
-> _I express my network in a FOAF file, and that is the start of the revolution._ —Tim Berners-Lee (2007)
-
-The FOAF standard, or Friend of a Friend standard, is a now largely defunct/ignored/superseded[1][1] web standard dating from the early 2000s that hints at what social networking might have looked like had Facebook not conquered the world. Before we talk about FOAF though, I want to talk about the New York City Subway.
-
-The New York City Subway is controlled by a single entity, the Metropolitan Transportation Agency, better known as the MTA. The MTA has a monopoly on subway travel in New York City. There is no legal way to travel in New York City by subway without purchasing a ticket from the MTA. The MTA has no competitors, at least not in the “subway space.”
-
-This wasn’t always true. Surprisingly, the subway system was once run by two corporations that competed with each other. The Inter-borough Rapid Transit Company (IRT) operated lines that ran mostly through Manhattan, while the Brooklyn-Manhattan Transit Corporation (BMT) operated lines in Brooklyn, some of which extended into Manhattan also. In 1932, the City opened its own service called the Independent Subway System to compete with the IRT and BMT, and so for a while there were _three_ different organizations running subway lines in New York City.
-
-One imagines that this was not an effective way to run a subway. It was not. Constructing interchanges between the various systems was challenging because the IRT and BMT used trains of different widths. Interchange stations also had to have at least two different fare-collection areas since passengers switching trains would have to pay multiple operators. The City eventually took over the IRT and BMT in 1940, bringing the whole system together under one operator, but some of the inefficiencies that the original division entailed are still problems today: Trains designed to run along lines inherited from the BMT (e.g. the A, C, or E) cannot run along lines inherited from the IRT (e.g. the 1, 2, or 3) because the IRT tunnels are too narrow. As a result, the MTA has to maintain two different fleets of mutually incompatible subway cars, presumably at significant additional expense relative to other subway systems in the world that only have to deal with a single tunnel width.
-
-This legacy of the competition between the IRT and BMT suggests that subway systems naturally tend toward monopoly. It just makes more sense for there to be a single operator than for there to be competing operators. Average passengers are amply compensated for the loss of choice by never having to worry about whether they brought their IRT MetroCard today but forgot their BMT MetroCard at home.
-
-Okay, so what does the Subway have to do with social networking? Well, I have wondered for a while now whether Facebook has, like the MTA, a natural monopoly. Facebook does seem to have _a_ monopoly, whether natural or unnatural—not over social media per se (I spend much more time on Twitter), but over my internet social connections with real people I know. It has a monopoly over, as they call it, my digitized “social graph”; I would quit Facebook tomorrow if I didn’t worry that by doing so I might lose many of those connections. I get angry about this power that Facebook has over me. I get angry in a way that I do not get angry about the MTA, even though the Subway is, metaphorically and literally, a sprawling trash fire. And I suppose I get angry because at root I believe that Facebook’s monopoly, unlike the MTA’s, is not a natural one.
-
-What this must mean is that I think Facebook owns all of our social data now because they happened to get there first and then dig a big moat around themselves, not because a world with competing Facebook-like platforms is inefficient or impossible. Is that true, though? There are some good reasons to think it isn’t: Did Facebook simply get there first, or did they instead just do social networking better than everyone else? Isn’t the fact that there is only one Facebook actually convenient if you are trying to figure out how to contact an old friend? In a world of competing Facebooks, what would it mean if you and your boyfriend are now Facebook official, but he still hasn’t gotten around to updating his relationship status on VisageBook, which still says he is in a relationship with his college ex? Which site will people trust? Also, if there were multiple sites, wouldn’t everyone spend a lot more time filling out web forms?
-
-In the last few years, as the disadvantages of centralized social networks have dramatically made themselves apparent, many people have attempted to create decentralized alternatives. These alternatives are based on open standards that could potentially support an ecosystem of inter-operating social networks (see e.g. [the Fediverse][2]). But none of these alternatives has yet supplanted a dominant social network. One obvious explanation for why this hasn’t happened is the power of network effects: With everyone already on Facebook, any one person thinking of leaving faces a high cost for doing so. Some might say this proves that social networks are natural monopolies and stop there; I would say that Facebook, Twitter, et al. chose to be walled gardens, and given that people have envisioned and even built social networks that inter-operate, the network effects that closed platforms enjoy tell us little about the inherent nature of social networks.
-
-So the real question, in my mind, is: Do platforms like Facebook continue to dominate merely because of their network effects, or is having a single dominant social network more efficient in the same way that having a single operator for a subway system is more efficient?
-
-Which finally brings me back to FOAF. Much of the world seems to have forgotten about the FOAF standard, but FOAF was an attempt to build a decentralized and open social network before anyone had even heard of Facebook. If any decentralized social network ever had a chance of occupying the redoubt that Facebook now occupies before Facebook got there, it was FOAF. Given that a large fraction of humanity now has a Facebook account, and given that relatively few people know about FOAF, should we conclude that social networking, like subway travel, really does lend itself to centralization and natural monopoly? Or does the FOAF project demonstrate that decentralized social networking was a feasible alternative that never became popular for other reasons?
-
-### The Future from the Early Aughts
-
-The FOAF project, begun in 2000, set out to create a universal standard for describing people and the relationships between them. That might strike you as a wildly ambitious goal today, but aspirations like that were par for the course in the late 1990s and early 2000s. The web (as people still called it then) had just trounced closed systems like America Online and [Prodigy][3]. It could only have been natural to assume that further innovation in computing would involve the open, standards-based approach embodied by the web.
-
-Many people believed that the next big thing was for the web to evolve into something called the Semantic Web. [I have written about][4] what exactly the Semantic Web was supposed to be and how it was supposed to work before, so I won’t go into detail here. But I will sketch the basic vision motivating the people who worked on Semantic Web technologies, because the FOAF standard was an application of that vision to social networking.
-
-There is an essay called [“How Google beat Amazon and Ebay to the Semantic Web”][5] that captures the lofty dream of the Semantic Web well. It was written by Paul Ford in 2002. The essay imagines a future (as imminent as 2009) in which Google, by embracing the Semantic Web, has replaced Amazon and eBay as the dominant e-commerce platform. In this future, you can search for something you want to purchase—perhaps a second-hand Martin guitar—by entering `buy:martin guitar` into Google. Google then shows you all the people near your zipcode selling Martin guitars. Google knows about these people and their guitars because Google can read RDF, a markup language and core Semantic Web technology focused on expressing relationships. Regular people can embed RDF on their web pages to advertise (among many other things) the items they have to sell. Ford predicts that as the number of people searching for and advertising products this way grows, Amazon and eBay will lose their near-monopolies over, respectively, first-hand and second-hand e-commerce. Nobody will want to search a single centralized database for something to buy when they could instead search the whole web. Even Google, Ford writes, will eventually lose its advantage, because in theory anyone could crawl the web reading RDF and offer a search feature similar to Google’s. At the very least, if Google wanted to make money from its Semantic Web marketplace by charging a percentage of each transaction, that percentage would probably by forced down over time by competitors offering a more attractive deal.
-
-Ford’s imagined future was an application of RDF, or the Resource Description Framework, to e-commerce, but the exciting thing about RDF was that hypothetically it could be used for anything. The RDF standard, along with a constellation of related standards, once widely adopted, was supposed to blow open database-backed software services on the internet the same way HTML had blown open document publishing on the internet.
-
-One arena that RDF and other Semantic Web technologies seemed poised to takeover immediately was social networking. The FOAF project, known originally as “RDF Web Ring” before being renamed, was the Semantic Web effort offshoot that sought to accomplish this. FOAF was so promising in its infancy that some people thought it would inevitably make all other social networking sites obsolete. A 2004 Guardian article about the project introduced FOAF this way:
-
-> In the beginning, way back in 1996, it was SixDegrees. Last year, it was Friendster. Last week, it was Orkut. Next week, it could be Flickr. All these websites, and dozens more, are designed to build networks of friends, and they are currently at the forefront of the trendiest internet development: social networking. But unless they can start to offer more substantial benefits, it is hard to see them all surviving, once the Friend Of A Friend (FOAF) standard becomes a normal part of life on the net.[2][6]
-
-The article goes on to complain that the biggest problem with social networking is that there are too many social networking sites. Something is needed that can connect all of the different networks together. FOAF is the solution, and it will revolutionize social networking as a result.
-
-FOAF, according to the article, would tie the different networks together by doing three key things:
-
- * It would establish a machine-readable format for social data that could be read by any social networking site, saving users from having to enter this information over and over again
- * It would allow “personal information management programs,” i.e. your “Contacts” application, to generate a file in this machine-readable format that you could feed to social networking sites
- * It would further allow this machine-readable format to be hosted on personal homepages and read remotely by social networking sites, meaning that you would be able to keep your various profiles up-to-date by just pushing changes to your own homepage
-
-
-
-It is hard to believe today, but the problem in 2004, at least for savvy webizens and technology columnists aware of all the latest sites, was not the lack of alternative social networks but instead the proliferation of them. Given _that_ problem—so alien to us now—one can see why it made sense to pursue a single standard that promised to make the proliferation of networks less of a burden.
-
-### The FOAF Spec
-
-According to the description currently given on the FOAF project’s website, FOAF is “a computer language defining a dictionary of people-related terms that can be used in structured data.” Back in 2000, in a document they wrote to explain the project’s goals, Dan Brickley and Libby Miller, FOAF’s creators, offered a different description that suggests more about the technology’s ultimate purpose—they introduced FOAF as a tool that would allow computers to read the personal information you put on your homepage the same way that other humans do.[3][7] FOAF would “help the web do the sorts of things that are currently the proprietary offering of centralised services.”[4][8] By defining a standard vocabulary for people and the relationships between them, FOAF would allow you to ask the web questions such as, “Find me today’s web recommendations made by people who work for Medical organizations,” or “Find me recent publications by people I’ve co-authored documents with.”
-
-Since FOAF is a standardized vocabulary, the most important output of the FOAF project was the FOAF specification. The FOAF specification defines a small collection of RDF _classes_ and RDF _properties_. (I’m not going to explain RDF here, but again see [my post about the Semantic Web][4] if you want to know more.) The RDF _classes_ defined by the FOAF specification represent subjects you might want to describe, such as people (the `Person` class) and organizations (the `Organization` class). The RDF _properties_ defined by the FOAF specification represent logical statements you might make about the different subjects. A person could have, for example, a first name (the `givenName` property), a last name (the `familyName` property), perhaps even a personality type (the `myersBriggs` property), and be near another person or location (the `based_near` property). The idea was that these classes and properties would be sufficient to represent the kind of the things people say about themselves and their friends on their personal homepage.
-
-The FOAF specification gives the following as an example of a well-formed FOAF document. This example uses XML, though an equivalent document could be written using JSON or a number of other formats:
-
-```
-
-
- Dan Brickley
-
-
-
-
-
-```
-
-This FOAF document describes a person named “Dan Brickley” (one of the specification’s authors) that has a homepage at `http://danbri.org`, something called an “open ID,” and a picture available at `/images/me.jpg`, presumably relative to the base address of Brickley’s homepage. The FOAF-specific terms are prefixed by `foaf:`, indicating that they are part of the FOAF namespace, while the more general RDF terms are prefixed by `rdf:`.
-
-Just to persuade you that FOAF isn’t tied to XML, here is a similar FOAF example from Wikipedia, expressed using a format called JSON-LD[5][9]:
-
-```
-
- {
- "@context": {
- "name": "http://xmlns.com/foaf/0.1/name",
- "homepage": {
- "@id": "http://xmlns.com/foaf/0.1/workplaceHomepage",
- "@type": "@id"
- },
- "Person": "http://xmlns.com/foaf/0.1/Person"
- },
- "@id": "https://me.example.com",
- "@type": "Person",
- "name": "John Smith",
- "homepage": "https://www.example.com/"
- }
-
-```
-
-This FOAF document describes a person named John Smith with a homepage at `www.example.com`.
-
-Perhaps the best way to get a feel for how FOAF works is to play around with [FOAF-a-matic][10], a web tool for generating FOAF documents. It allows you to enter information about yourself using a web form, then uses that information to create the FOAF document (in XML) that represents you. FOAF-a-matic demonstrates how FOAF could have been used to save everyone from having to enter their social information into a web form ever again—if every social networking site could read FOAF, all you’d need to do to sign up for a new site is point the site to the FOAF document that FOAF-a-matic generated for you.
-
-Here is a slightly more complicated FOAF example, representing me, that I created using FOAF-a-matic:
-
-```
-
-
-
-
-
-
-
-
-
- Sinclair Target
- Sinclair
- Target
-
-
-
-
- John Smith
-
-
-
-
-
-
-
-```
-
-This example has quite a lot of preamble setting up the various XML namespaces used by the document. There is also a section containing data about the tool that was used to generate the document, largely so that, it seems, people know whom to email with complaints. The `foaf:Person` element describing me tells you my name, email address, and homepage. There is also a nested `foaf:knows` element telling you that I am friends with John Smith.
-
-This example illustrates another important feature of FOAF documents: They can link to each other. If you remember from the previous example, my friend John Smith has a homepage at `www.example.com`. In this example, where I list John Smith as a `foaf:person` with whom I have a `foaf:knows` relationship, I also provide a `rdfs:seeAlso` element that points to John Smith’s FOAF document hosted on his homepage. Because I have provided this link, any program reading my FOAF document could find out more about John Smith by following the link and reading his FOAF document. In the FOAF document we have for John Smith above, John did not provide any information about his friends (including me, meaning, tragically, that our friendship is unidirectional). But if he had, then the program reading my document could find out not only about me but also about John, his friends, their friends, and so on, until the program has crawled the whole social graph that John and I inhabit.
-
-This functionality will seem familiar to anyone that has used Facebook, which is to say that this functionality will seem familiar to you. There is no `foaf:wall` property or `foaf:poke` property to replicate Facebook’s feature set exactly. Obviously, there is also no slick blue user interface that everyone can use to visualize their FOAF social network; FOAF is just a vocabulary. But Facebook’s core feature—the feature that I have argued is key to Facebook’s monopoly power over, at the very least, myself—is here provided in a distributed way. FOAF allows a group of friends to represent their real-life social graph digitally by hosting FOAF documents on their own homepages. It allows them to do this without surrendering control of their data to a centralized database in the sky run by a billionaire android-man who spends much of his time apologizing before congressional committees.
-
-### FOAF on Ice
-
-If you visit the current FOAF project homepage, you will notice that, in the top right corner, there is an image of the character Fry from the TV series Futurama, stuck inside some sort of stasis chamber. This is a still from the pilot episode of Futurama, in which Fry gets frozen in a cryogenic tank in 1999 only to awake a millennium later in 2999. Brickley, whom I messaged briefly on Twitter, told me that he put that image there as a way communicating that the FOAF project is currently “in stasis,” though he hopes that there will be a future opportunity to resuscitate the project along with its early 2000s optimism about how the web should work.
-
-FOAF never revolutionized social networking the way that the 2004 Guardian article about it expected it would. Some social networking sites decided to support the standard: LiveJournal and MyOpera are examples.[6][11] FOAF even played a role in Howard Dean’s presidential campaign in 2004—a group of bloggers and programmers got together to create a network of websites they called “DeanSpace” to promote the campaign, and these sites used FOAF to keep track of supporters and volunteers.[7][12] But today FOAF is known primarily for being one of the more widely used vocabularies of RDF, itself a niche standard on the modern web. If FOAF is part of your experience of the web today at all, then it is as an ancestor to the technology that powers Google’s “knowledge panels” (the little sidebars that tell you the basics about a person or a thing if you searched for something simple). Google uses vocabularies published by the schema.org project—the modern heir to the Semantic Web effort—to populate its knowledge panels.[8][13] The schema.org vocabulary for describing people seems to be somewhat inspired by FOAF and serves many of the same purposes.
-
-So why didn’t FOAF succeed? Why do we all use Facebook now instead? Let’s ignore that FOAF is a simple standard with nowhere near as many features as Facebook—that’s true today, clearly, but if FOAF had enjoyed more momentum it’s possible that applications could have been built on top of it to deliver a Facebook-like experience. The interesting question is: Why didn’t this nascent form of distributed social networking catch fire when Facebook was not yet around to compete with it?
-
-There probably is no single answer to that question, but if I had to pick one, I think the biggest issue is that FOAF only makes sense on a web where everyone has a personal website. In the late 1990s and early 2000s, it might have been easy to assume the web would eventually look like this, especially since so many of the web’s early adopters were, as far as I can tell, prolific bloggers or politically engaged technologists excited to have a platform. But the reality is that regular people don’t want to have to learn how to host a website. FOAF allows you to control your own social information and broadcast it to social networks instead of filling out endless web forms, which sounds pretty great if you already have somewhere to host that information. But most people in practice found it easier to just fill out the web form and sign up for Facebook than to figure out how to buy a domain and host some XML.
-
-What does this mean for my original question about whether or not Facebook’s monopoly is a natural one? I think I have to concede that the FOAF example is evidence that social networking _does_ naturally lend itself to monopoly.
-
-That people did not want to host their own data isn’t especially meaningful itself—modern distributed social networks like [Mastodon][14] have solved that problem by letting regular users host their profiles on nodes set up by more savvy users. It is a sign, however, of just how much people hate complexity. This is bad news for decentralized social networks, because they are inherently more complex under the hood than centralized networks in a way that is often impossible to hide from users.
-
-Consider FOAF: If I were to write an application that read FOAF data from personal websites, what would I do if Sally’s FOAF document mentions a John Smith with a homepage at `example.com`, and Sue’s FOAF document mentions a John Smith with a homepage at `example.net`? Are we talking about a single John Smith with two websites or two entirely different John Smiths? What if the both FOAF documents list John Smith’s email as `johnsmith@gmail.com`? This issue of identity was an acute one for FOAF. In a 2003 email, Brickley wrote that because there does not exist and probably should not exist a “planet-wide system for identifying people,” the approach taken by FOAF is “pluralistic.”[9][15] Some properties of FOAF people, such as email addresses and homepage addresses, are special in that their values are globally unique. So these different properties can be used to merge (or, as Libby Miller called it, “smoosh”) FOAF documents about people together. But none of these special properties are privileged above the others, so it’s not obvious how to handle our John Smith case. Do we trust the homepages and conclude we have two different people? Or do we trust the email addresses and conclude we have a single person? Could I really write an application capable of resolving this conflict without involving (and inconveniencing) the user?
-
-Facebook, with its single database and lack of political qualms, could create a “planet-wide system for identifying people” and so just gave every person a unique Facebook ID. Problem solved.
-
-Complexity alone might not doom distributed social networks if people cared about being able to own and control their data. But FOAF’s failure to take off demonstrates that people have never valued control very highly. As one blogger has put it, “‘Users want to own their own data’ is an ideology, not a use case.”[10][16] If users do not value control enough to stomach additional complexity, and if centralized systems are more simple than distributed ones—and if, further, centralized systems tend to be closed and thus the successful ones enjoy powerful network effects—then social networks are indeed natural monopolies.
-
-That said, I think there is still a distinction to be drawn between the subway system case and the social networking case. I am comfortable with the MTA’s monopoly on subway travel because I expect subway systems to be natural monopolies for a long time to come. If there is going to be only one operator of the New York City Subway, then it ought to be the government, which is at least nominally more accountable than a private company with no competitors. But I do not expect social networks to stay natural monopolies. The Subway is carved in granite; the digital world is writ in water. Distributed social networks may now be more complicated than centralized networks in the same way that carrying two MetroCards is more complicated than carrying one. In the future, though, the web, or even the internet, could change in fundamental ways that make distributed technology much easier to use.
-
-If that happens, perhaps FOAF will be remembered as the first attempt to build the kind of social network that humanity, after a brief experiment with corporate mega-databases, does and always will prefer.
-
-_If you enjoyed this post, more like it come out every four weeks! Follow [@TwoBitHistory][17] on Twitter or subscribe to the [RSS feed][18] to make sure you know when a new post is out._
-
-_Previously on TwoBitHistory…_
-
-> I know it's been too long since my last post, but my new one is here! I wrote almost 5000 words on John Carmack, Doom, and the history of the binary space partitioning tree.
->
-> — TwoBitHistory (@TwoBitHistory) [November 6, 2019][19]
-
- 1. Please note that I did not dare say “dead.” [↩︎][20]
-
- 2. Jack Schofield, “Let’s be Friendsters,” The Guardian, February 19, 2004, accessed January 5, 2020, . [↩︎][21]
-
- 3. Dan Brickley and Libby Miller, “Introducing FOAF,” FOAF Project, 2008, accessed January 5, 2020, . [↩︎][22]
-
- 4. ibid. [↩︎][23]
-
- 5. Wikipedia contributors, “JSON-LD,” Wikipedia: The Free Encyclopedia, December 13, 2019, accessed January 5, 2020, . [↩︎][24]
-
- 6. “Data Sources,” FOAF Project Wiki, December 11 2009, accessed January 5, 2020, . [↩︎][25]
-
- 7. Aldon Hynes, “What is Dean Space?”, Extreme Democracy, accessed January 5, 2020, . [↩︎][26]
-
- 8. “Understand how structured data works,” Google Developer Portal, accessed January 5, 2020, . [↩︎][27]
-
- 9. tef, “Why your distributed network will not work,” Progamming is Terrible, January 2, 2013, . [↩︎][28]
-
- 10. Dan Brickley, “Identifying things in FOAF,” rdfweb-dev Mailing List, July 10, 2003, accessed on January 5, 2020, . [↩︎][29]
-
-
-
-
---------------------------------------------------------------------------------
-
-via: https://twobithistory.org/2020/01/05/foaf.html
-
-作者:[Two-Bit History][a]
-选题:[lujun9972][b]
-译者:[aREversez](https://github.com/aREversez)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://twobithistory.org
-[b]: https://github.com/lujun9972
-[1]: tmp.mJHAgyVHGr#fn:1
-[2]: https://en.wikipedia.org/wiki/Fediverse
-[3]: https://en.wikipedia.org/wiki/Prodigy_(online_service)
-[4]: https://twobithistory.org/2018/05/27/semantic-web.html
-[5]: https://www.ftrain.com/google_takes_all
-[6]: tmp.mJHAgyVHGr#fn:2
-[7]: tmp.mJHAgyVHGr#fn:3
-[8]: tmp.mJHAgyVHGr#fn:4
-[9]: tmp.mJHAgyVHGr#fn:5
-[10]: http://www.ldodds.com/foaf/foaf-a-matic
-[11]: tmp.mJHAgyVHGr#fn:6
-[12]: tmp.mJHAgyVHGr#fn:7
-[13]: tmp.mJHAgyVHGr#fn:8
-[14]: https://en.wikipedia.org/wiki/Mastodon_(software)
-[15]: tmp.mJHAgyVHGr#fn:9
-[16]: tmp.mJHAgyVHGr#fn:10
-[17]: https://twitter.com/TwoBitHistory
-[18]: https://twobithistory.org/feed.xml
-[19]: https://twitter.com/TwoBitHistory/status/1192196764239093760?ref_src=twsrc%5Etfw
-[20]: tmp.mJHAgyVHGr#fnref:1
-[21]: tmp.mJHAgyVHGr#fnref:2
-[22]: tmp.mJHAgyVHGr#fnref:3
-[23]: tmp.mJHAgyVHGr#fnref:4
-[24]: tmp.mJHAgyVHGr#fnref:5
-[25]: tmp.mJHAgyVHGr#fnref:6
-[26]: tmp.mJHAgyVHGr#fnref:7
-[27]: tmp.mJHAgyVHGr#fnref:8
-[28]: tmp.mJHAgyVHGr#fnref:9
-[29]: tmp.mJHAgyVHGr#fnref:10
diff --git a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
index 440d3fa159..33c7b47d73 100644
--- a/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
+++ b/sources/talk/20200406 How to Use a Differential Analyzer (to Murder People).md
@@ -2,7 +2,7 @@
[#]: via: "https://twobithistory.org/2020/04/06/differential-analyzer.html"
[#]: author: "Two-Bit History https://twobithistory.org"
[#]: collector: "lujun9972"
-[#]: translator: " "
+[#]: translator: "toknow-gh"
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20210209 Understanding Linus-s Law for open source security.md b/sources/talk/20210209 Understanding Linus-s Law for open source security.md
deleted file mode 100644
index bbaf38fdb0..0000000000
--- a/sources/talk/20210209 Understanding Linus-s Law for open source security.md
+++ /dev/null
@@ -1,90 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Understanding Linus's Law for open source security)
-[#]: via: (https://opensource.com/article/21/2/open-source-security)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-
-Understanding Linus's Law for open source security
-======
-Linus's Law is that given enough eyeballs, all bugs are shallow. How
-does this apply to open source software security?
-![Hand putting a Linux file folder into a drawer][1]
-
-In 2021, there are more reasons why people love Linux than ever before. In this series, I'll share 21 different reasons to use Linux. This article discusses Linux's influence on the security of open source software.
-
-An often-praised virtue of open source software is that its code can be reviewed (or "audited," as security professionals like to say) by anyone and everyone. However, if you actually ask many open source users when the last time they reviewed code was, you might get answers ranging from a blank stare to an embarrassed murmur. And besides, there are some really big open source applications out there, so it can be difficult to review every single line of code effectively.
-
-Extrapolating from these slightly uncomfortable truths, you have to wonder: When nobody looks at the code, does it really matter whether it's open or not?
-
-### Should you trust open source?
-
-We tend to make a trite assumption in hobbyist computing that open source is "more secure" than anything else. We don't often talk about what that means, what the basis of comparison is ("more" secure than what?), or how the conclusion has even been reached. It's a dangerous statement to make because it implies that as long as you call something _open source_, it automatically and magically inherits enhanced security. That's not what open source is about, and in fact, it's what open source security is very much against.
-
-You should never assume an application is secure unless you have personally audited and understood its code. Once you have done this, you can assign _ultimate trust_ to that application. Ultimate trust isn't a thing you do on a computer; it's something you do in your own mind: You trust software because you choose to believe that it is secure, at least until someone finds a way to exploit that software.
-
-You're the only person who can place ultimate trust in that code, so every user who wants that luxury must audit the code for themselves. Taking someone else's word for it doesn't count!
-
-So until you have audited and understood a codebase for yourself, the maximum trust level you can give to an application is a spectrum ranging from approximately, _not trustworthy at all_ to _pretty trustworthy_. There's no cheat sheet for this. It's a personal choice you must make for yourself. If you've heard from people you strongly trust that an application is secure, then you might trust that software more than you trust something for which you've gotten no trusted recommendations.
-
-Because you cannot audit proprietary (non-open source) code, you can never assign it _ultimate trust_.
-
-### Linus's Law
-
-The reality is, not everyone is a programmer, and not everyone who is a programmer has the time to dedicate to reviewing hundreds and hundreds of lines of code. So if you're not going to audit code yourself, then you must choose to trust (to some degree) the people who _do_ audit code.
-
-So exactly who does audit code, anyway?
-
-Linus's Law asserts that _given enough eyeballs, all bugs are shallow_, but we don't really know how many eyeballs are "enough." However, don't underestimate the number. Software is very often reviewed by more people than you might imagine. The original developer or developers obviously know the code that they've written. However, open source is often a group effort, so the longer code is open, the more software developers end up seeing it. A developer must review major portions of a project's code because they must learn a codebase to write new features for it.
-
-Open source packagers also get involved with many projects in order to make them available to a Linux distribution. Sometimes an application can be packaged with almost no familiarity with the code, but often a packager gets familiar with a project's code, both because they don't want to sign off on software they don't trust and because they may have to make modifications to get it to compile correctly. Bug reporters and triagers also sometimes get familiar with a codebase as they try to solve anomalies ranging from quirks to major crashes. Of course, some bug reporters inadvertently reveal code vulnerabilities not by reviewing it themselves but by bringing attention to something that obviously doesn't work as intended. Sysadmins frequently get intimately familiar with the code of an important software their users rely upon. Finally, there are security researchers who dig into code exclusively to uncover potential exploits.
-
-### Trust and transparency
-
-Some people assume that because major software is composed of hundreds of thousands of lines of code, it's basically impossible to audit. Don't be fooled by how much code it takes to make an application run. You don't actually have to read millions of lines. Code is highly structured, and exploitable flaws are rarely just a single line hidden among the millions of lines; there are usually whole functions involved.
-
-There are exceptions, of course. Sometimes a serious vulnerability is enabled with just one system call or by linking to one flawed library. Luckily, those kinds of errors are relatively easy to notice, thanks to the active role of security researchers and vulnerability databases.
-
-Some people point to bug trackers, such as the [Common Vulnerabilities and Exposures (CVE)][2] website, and deduce that it's actually as plain as day that open source isn't secure. After all, hundreds of security risks are filed against lots of open source projects, out in the open for everyone to see. Don't let that fool you, though. Just because you don't get to see the flaws in closed software doesn't mean those flaws don't exist. In fact, we know that they do because exploits are filed against them, too. The difference is that _all_ exploits against open source applications are available for developers (and users) to see so those flaws can be mitigated. That's part of the system that boosts trust in open source, and it's wholly missing from proprietary software.
-
-There may never be "enough" eyeballs on any code, but the stronger and more diverse the community around the code, the better chance there is to uncover and fix weaknesses.
-
-### Trust and people
-
-In open source, the probability that many developers, each working on the same project, have noticed something _not secure_ but have all remained equally silent about that flaw is considered to be low because humans rarely mutually agree to conspire in this way. We've seen how disjointed human behavior can be recently with COVID-19 mitigation:
-
- * We've all identified a flaw (a virus).
- * We know how to prevent it from spreading (stay home).
- * Yet the virus continues to spread because one or more people deviate from the mitigation plan.
-
-
-
-The same is true for bugs in software. If there's a flaw, someone noticing it will bring it to light (provided, of course, that someone sees it).
-
-However, with proprietary software, there can be a high probability that many developers working on a project may notice something not secure but remain equally silent because the proprietary model relies on paychecks. If a developer speaks out against a flaw, then that developer may at best hurt the software's reputation, thereby decreasing sales, or at worst, may be fired from their job. Developers being paid to work on software in secret do not tend to talk about its flaws. If you've ever worked as a developer, you've probably signed an NDA, and you've been lectured on the importance of trade secrets, and so on. Proprietary software encourages, and more often enforces, silence even in the face of serious flaws.
-
-### Trust and software
-
-Don't trust software you haven't audited.
-
-If you must trust software you haven't audited, then choose to trust code that's exposed to many developers who independently are likely to speak up about a vulnerability.
-
-Open source isn't inherently more secure than proprietary software, but the systems in place to fix it are far better planned, implemented, and staffed.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/2/open-source-security
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/yearbook-haff-rx-linux-file-lead_0.png?itok=-i0NNfDC (Hand putting a Linux file folder into a drawer)
-[2]: https://cve.mitre.org
diff --git a/sources/talk/20210718 Is Open-Source Software Secure.md b/sources/talk/20210718 Is Open-Source Software Secure.md
deleted file mode 100644
index d6d249b54b..0000000000
--- a/sources/talk/20210718 Is Open-Source Software Secure.md
+++ /dev/null
@@ -1,163 +0,0 @@
-[#]: subject: (Is Open-Source Software Secure?)
-[#]: via: (https://news.itsfoss.com/open-source-software-security/)
-[#]: author: (Ankush Das https://news.itsfoss.com/author/ankush/)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Is Open-Source Software Secure?
-======
-
-Being someone who prefers [Linux for desktop][1] and encourages using open-source software, you may expect the answer to the question raised in the headline with a big “**Yes**“.
-
-But I am not going to limit discussing the benefits of open-source software. Let us explore more!
-
-Here, I plan to share my thoughts on if open-source software is secure and what are the things involved in it that make secure or insecure.
-
-### Why Should You Care if Open-Source Software is Secure?
-
-No matter whether you use [Linux][2] or any other operating system, you will be surrounded with open-source software in some way (directly/indirectly).
-
-To give you an example, most of the proprietary software tools depend on some form of open-source libraries to make things work.
-
-Furthermore, there is a reason why companies of various scale (including Google, Microsoft, and Facebook) rely on open-source software or contribute their resources to the open-source community in one way or the other.
-
-Hence, the security of open-source software is something essential to know about.
-
-### Myths About Open-Source Software Security
-
-![][3]
-
-While there are several arguments to pitch the cons of open-source software in terms of security, some of them just do not make any sense.
-
-#### Anyone Can See & Exploit the Code
-
-The code is accessible to everyone, yes. But just because you can see the code—does that mean anyone can exploit it?
-
-**Not really.**
-
-Even though anyone can create a fork (or copy) of the software, the original software cannot be manipulated easily.
-
-Usually, the project maintainer (or a group of them) manage the code repository and accept the commits from contributors. The code is reviewed before approval. And no one can hijack the code just like that.
-
-**It takes effort for an attacker to exploit a vulnerability or add malicious code in a software, no matter if it is open-source or closed source.**
-
-#### Without Dedicated Resources, Security Breaks down
-
-Many believe that without dedicated employees or a team for an open-source software, it is difficult to maintain security.
-
-In contrast, with several types of contributors joining and leaving, the software gets more attention from a wide range of developers.
-
-And they may be able to spot security issues better than a few employees assigned for a proprietary software.
-
-Some projects from the likes of Mozilla have a dedicated team to effectively iron out security issues. Similarly, most of the successful open source projects have plenty of resources to dedicate for security.
-
-Hence, the open-source software ecosystem is a mixed bag for security. Even without dedicated resources, the projects get help from various contributors, and some are profitable to a great extent which helps them dedicate more resources.
-
-### Open Source Software is Secure: Here’s How
-
-![][3]
-
-Now that we have tackled the myths, let me highlight how open-source software deals with security issues.
-
-In other words, the benefits in security with open-source software.
-
-Not to forget, the perks of open-source software translate to some of the reasons why [Linux is better than Windows][4].
-
-#### More Eyes Looking at the Code
-
-Unlike a proprietary software, access to code is not limited to a few developers.
-
-Some projects may even have thousands of developers watching the code, reviewing them, and flagging or fixing security issues.
-
-And this gives an edge over closed-source software by having **the ability to identify issues quickly and addressing them as soon as possible.**
-
-Not just limited to more developers, often enterprises get involved with open-source projects that they utilize. And when they do, they will also go through the code and review it.
-
-This gives another source of external audit that may help improve the security of the software.
-
-In contrast, with a closed-source software, a limited number of developers may not be able to find all kinds of security issues. And it may take them longer to fix all the issues one by one.
-
-#### Community Decision Making to Prioritize Security Issues
-
-The developers of a closed-source software may have certain restrictions and priorities as what to work on and when to resolve an issue.
-
-However, in case of an open-source project, the community of contributors can prioritize and assign themselves what they want to work on and when to fix an issue. You do not need to depend on a vendor or follow their instructions to address a security issue.
-
-The decision making that goes into addressing and fixing the security issues is more transparent and flexible in case of an open-source software. Hence, it can prove to be more effective leaving you with three specific benefits:
-
- * **Transparency**
- * **No dependency on the vendor**
- * **Faster security updates**
-
-
-
-### Open Source Software is not Bulletproof: Here’s Why
-
-![][3]
-
-While there are cases where open-source software may get an edge for security, there could be instances or factors that affects it.
-
-It is important to acknowledge that these problems exist, accordingly, an enterprise or an individual can make better decision about the state of security for an open-source software.
-
-#### Not enough Eyes to Review Code and Uncertainty
-
-Even if the code is accessible the world of developers, there are chances that a **project does not have enough contributors/developers to thoroughly review the code**.
-
-In that case, we cannot have great confidence of an open-source software being peer-reviewed, because it lacks exactly that.
-
-The open-source software may “claim” to have the best security just because its open-source, which is misleading when there are not enough developers working on it.
-
-Also, we do not know how many developers are looking/reviewing the code and how exactly the code walkthrough is going on.
-
-For instance, the Heartbleed bug was spotted after 2 years of its introduction in a project that was already popular i.e **OpenSSL**.
-
-#### Software Responsibility or Accountability
-
-This may not be important for individuals, but an **open-source software often comes with no warranties**.
-
-So, if a business uses it, they must take the responsibility of any losses or damages caused by the use of that software.
-
-This is something that tells you that nothing can be 100% secure and bug-free. No matter how many eyes you have on a code, or how skilled the contributors are, there will be risks in some form, be it security or data loss.
-
-And this brings us to the fact that open-source software is not bulletproof.
-
-### Open Source May Have its Edge for Better Security But…
-
-Nothing is superior when it comes to security. No matter if it is closed-source or open-source, the same set of principles apply when it comes to security.
-
-There are various external factors that can affect the security of a software, and **many of those are not source dependent**.
-
-The code must be monitored in the same way to keep things secure.
-
-Yes, the **open-source approach introduces benefits that closed-source software will never have**, but that does not mean that it is bulletproof.
-
-_What do you think about the state of security when it comes to open-source software?_ _Do you think it is superior to proprietary solutions?_
-
-I would appreciate your valuable thoughts in the comments down below.
-
-#### Big Tech Websites Get Millions in Revenue, It's FOSS Got You!
-
-If you like what we do here at It's FOSS, please consider making a donation to support our independent publication. Your support will help us keep publishing content focusing on desktop Linux and open source software.
-
-I'm not interested
-
---------------------------------------------------------------------------------
-
-via: https://news.itsfoss.com/open-source-software-security/
-
-作者:[Ankush Das][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://news.itsfoss.com/author/ankush/
-[b]: https://github.com/lujun9972
-[1]: https://news.itsfoss.com/linux-foundation-linux-desktop/
-[2]: https://itsfoss.com/what-is-linux-distribution/
-[3]: data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjQzOSIgd2lkdGg9Ijc4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiLz4=
-[4]: https://itsfoss.com/linux-better-than-windows/
diff --git a/sources/talk/20210816 What was your first programming language.md b/sources/talk/20210816 What was your first programming language.md
index ecc66550ad..7e13d19ddb 100644
--- a/sources/talk/20210816 What was your first programming language.md
+++ b/sources/talk/20210816 What was your first programming language.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/21/8/first-programming-language"
[#]: author: "Jen Wike Huger https://opensource.com/users/jen-wike"
[#]: collector: "lujun9972"
-[#]: translator: "gpchn"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md b/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md
index ba9a2cf4d2..948d479519 100644
--- a/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md
+++ b/sources/talk/20220423 I Ditched Ubuntu for Manjaro- Here-s What I Think After a Week.md
@@ -2,7 +2,7 @@
[#]: via: "https://news.itsfoss.com/manjaro-linux-experience/"
[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
[#]: collector: "lujun9972"
-[#]: translator: "KevinZonda"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20220509 Cloud service providers- How to keep your options open.md b/sources/talk/20220509 Cloud service providers- How to keep your options open.md
index 2d7819ac3a..277e470cda 100644
--- a/sources/talk/20220509 Cloud service providers- How to keep your options open.md
+++ b/sources/talk/20220509 Cloud service providers- How to keep your options open.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/5/cloud-service-providers-open"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: "FelixYFZ "
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md
index 2d6d4eed87..7f66bd67f9 100644
--- a/sources/talk/20220609 SSL Certificates- Make the Right Choice.md
+++ b/sources/talk/20220609 SSL Certificates- Make the Right Choice.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.opensourceforu.com/2022/06/ssl-certificates-make-the-right-choice/"
[#]: author: "Jitendra Bhojwani https://www.opensourceforu.com/author/jitendra-bhojwani/"
[#]: collector: "lkxed"
-[#]: translator: "KevinZonda"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/talk/20220616 Using habits to practice open organization principles.md b/sources/talk/20220616 Using habits to practice open organization principles.md
deleted file mode 100644
index ac9fdd2d56..0000000000
--- a/sources/talk/20220616 Using habits to practice open organization principles.md
+++ /dev/null
@@ -1,142 +0,0 @@
-[#]: subject: "Using habits to practice open organization principles"
-[#]: via: "https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles"
-[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland"
-[#]: collector: "lkxed"
-[#]: translator: "Donkey-Hao"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Using habits to practice open organization principles
-======
-Follow these steps to implement habits that support open culture and get rid of those that don't.
-
-![Selfcare, drinking tea on the porch][1]
-
-Image by: opensource.com
-
-Habits are a long-term interest of mine. Several years ago, I gave a presentation on habits, both good and bad, and how to expand on good habits and change bad ones. Just recently, I read the habits-focused book Smart Thinking by Art Markman. You might ask what this has to do with [open organization principles.][2] There is a connection, and I'll explain it in this two-part article on managing habits.
-
-In this first article, I talk about habits, how they work, and—most important—how you can start to change them. In the second article, I review Markman's thoughts as presented in his book.
-
-### The intersection of principles and habits
-
-Suppose you learned about open organization principles and although you found them interesting and valuable, you just weren't in the habit of using them. Here's how that might look in practice.
-
-Community: If you're faced with a significant challenge but think you can't address it alone, you're likely in the habit of just giving up. Wouldn't it be better to have the habit of building a community of like-minded people that collectively can solve the problem?
-
-Collaboration: Suppose you don't think you're a good collaborator. You like to do things alone. You know that there are cases when collaboration is required, but you don't have a habit of engaging in it. To counteract that, you must build a habit of collaborating more.
-
-Transparency: Say you like to keep most of what you do and know a secret. However, you know that if you don't share information, you're not likely to get good information from others. Therefore, you must create the habit of being more transparent.
-
-Inclusivity: Imagine you are uncomfortable working with people you don't know and who are different from you, whether in personality, culture, or language. You know that if you want to be successful, you must work with a wide variety of people. How do you create a habit of being more inclusive?
-
-Adaptability: Suppose you tend to resist change long after what you're doing is no longer achieving what you had hoped it would. You know you must adapt and redirect your efforts, but how can you create a habit of being adaptive?
-
-### What is a habit?
-
-Before I give examples regarding the above principles, I'll explain some of the relevant characteristics of a habit.
-
-* A habit is a behavior performed repeatedly—so much so that it's now performed without thinking.
-* A habit is automatic and feels right at the time. The person is so used to it, that it feels good when doing it, and to do something else would require effort and make them feel uncomfortable. They might have second thoughts afterward though.
-* Some habits are good and extremely helpful by saving you a lot of energy. The brain is 2% of the body's weight but consumes 20% of your daily energy. Because thinking and concentration require a lot of energy, your mind is built to save it through developing unconscious habits.
-* Some habits are bad for you, so you desire to change them.
-* All habits offer some reward, even if it is only temporary.
-* Habits are formed around what you are familiar with and what you know, even habits you don’t necessarily like.
-
-### The three steps of a habit
-
-1. Cue (trigger): First, a cue or trigger tells the brain to go into automatic mode, using previously learned habitual behavior. Cues can be things like seeing a candy bar or a television commercial, being in a certain place at a certain time of day, or just seeing a particular person. Time pressure can trigger a routine. An overwhelming atmosphere can trigger a routine. Simply put, something reminds you to behave a certain way.
-2. Routine: The routine follows the trigger. A routine is a set of physical, mental, and/or emotional behaviors that can be incredibly complex or extremely simple. Some habits, such as those related to emotions, are measured in milliseconds.
-3. Reward: The final step is the reward, which helps your brain figure out whether a particular activity is worth remembering for the future. Rewards can range from food or drugs that cause physical sensations to joy, pride, praise, or personal self-esteem.
-
-### Bad habits in a business environment
-
-Habits aren't just for individuals. All organizations have good and bad institutional habits. However, some organizations deliberately design their habits, while others just let them evolve without forethought, possibly through rivalries or fear. These are some organizational habit examples:
-
-* Always being late with reports
-* Working alone or working in groups when the opposite is appropriate
-* Being triggered by excess pressure from the boss
-* Not caring about declining sales
-* Not cooperating among a sales team because of excess competition
-* Allowing one talkative person to dominate a meeting
-
-### A step-by-step plan to change a habit
-
-Habits don't have to last forever. You can change your own behavior. First, remember that many habits can not be changed concurrently. Instead, find a keystone habit and work on it first. This produces small, quick rewards. Remember that one keystone habit can create a chain reaction.
-
-Here is a four-step framework you can apply to changing any habit, including habits related to open organization principles.
-
-##### Step one: identify the routine
-
-Identify the habit loop and the routine in it (for example, when an important challenge comes up that you can't address alone). The routine (the behaviors you do) is the easiest to identify, so start there. For example: "In my organization, no one discusses problems with anyone. They just give up before starting." Determine the routine that you want to modify, change, or just study. For example: "Every time an important challenge comes up, I should discuss it with people and try to develop a community of like-minded people who have the skills to address it."
-
-##### Step two: experiment with the rewards
-
-Rewards are powerful because they satisfy cravings. But, we're often not conscious of the cravings that drive our behavior. They are only evident afterward. For example, there may be times in meetings when you want nothing more than to get out of the room and avoid a subject of conversation, even though down deep you know you should figure out how to address the problem.
-
-To learn what a craving is, you must experiment. That might take a few days, weeks, or longer. You must feel the triggering pressure when it occurs to identify it fully. For example, ask yourself how you feel when you try to escape responsibility.
-
-Consider yourself a scientist, just doing experiments and gathering data. The steps in your investigation are:
-
-1. After the first routine, start adjusting the routines that follow to see whether there's a reward change. For example, if you give up every time you see a challenge you can't address by yourself, the reward is the relief of not taking responsibility. A better response might be to discuss the issue with at least one other person who is equally concerned about the issue. The point is to test different hypotheses to determine which craving drives your routine. Are you craving the avoidance of responsibility?
-2. After four or five different routines and rewards, write down the first three or four things that come to mind right after each reward is received. Instead of just giving up in the face of a challenge, for instance, you discuss the issue with one person. Then, you decide what can be done.
-3. After writing about your feeling or craving, set a timer for 15 minutes. When it rings, ask yourself whether you still have the craving. Before giving in to a craving, rest and think about the issue one or two more times. This forces you to be aware of the moment and helps you later recall what you were thinking about at that moment.
-4. Try to remember what you were thinking and feeling at that precise instant, and then 15 minutes after the routine. If the craving is gone, you have identified the reward.
-
-##### Step three: isolate the cue or trigger
-
-The cue is often hard to identify because there's usually too much information bombarding you as your behaviors unfold. To identify a cue amid other distractions, you can observe four factors the moment the urge hits you:
-
-Location: Where did it occur? ("My biggest challenges come out in meetings.")
-
-Time: When did it occur? ("Meetings in the afternoon, when I'm tired, are the worst time, because I'm not interested in putting forth any effort.")
-
-Feelings: What was your emotional state? ("I feel overwhelmed and depressed when I hear the problem.")
-
-People: Who or what type of people were around you at the time, or were you alone? ("In the meetings, most other people don't seem interested in the problem either. Others dominate the discussion.")
-
-##### Step four: have a plan
-
-Once you have confirmed the reward driving your behavior, the cues that trigger it, and the behavior itself, you can begin to shift your actions. Follow these three easy steps:
-
-1. First, plan for the cue. ("In meetings, I'm going to look for and focus my attention on important problems that come up.")
-2. Second, choose a behavior that delivers the same reward but without the penalties you suffer now. ("I'm going to explore a plan to address that problem and consider what resources and skills I need to succeed. I'm going to feel great when I create a community that's able to address the problem successfully.")
-3. Third, make the behavior a deliberate choice each and every time, until you no longer need to think about it. ("I'm going to consciously pay attention to major issues until I can do it without thinking. I might look at agendas of future meetings, so I know what to expect in advance. Before and during every meeting, I will ask why should I be here, to make sure I'm focused on what is important."
-
-##### Plan to avoid forgetting something that must be done
-
-To successfully start doing something you often forget, follow this process:
-
-1. Plan what you want to do.
-2. Determine when you want to complete it.
-3. Break the project into small tasks as needed.
-4. With a timer or daily planner, set up cues to start each task.
-5. Complete each task on schedule.
-6. Reward yourself for staying on schedule.
-
-### Habit change
-
-Change takes a long time. Sometimes a support group is required to help change a habit. Sometimes, a lot of practice and role play of a new and better routine in a low-stress environment is required. To find an effective reward, you need repeated experimentation.
-
-Sometimes habits are only symptoms of a more significant, deeper problem. In these cases, professional help may be required. But if you have the desire to change and accept that there will be minor failures along the way, you can gain power over any habit.
-
-In this article, I've used examples of community development using the cue-routine-reward process. It can equally be applied to the other open organization principles. I hope this article got you thinking about how to manage habits through knowing how habits work, taking steps to change habits, and making plans to avoid forgetting things you want done. Whether it's an open organization principle or anything else, you can now diagnose the cue, the routine, and the reward. That will lead you to a plan to change a habit when the cue presents itself.
-
-In my next article, I'll look at habits through the lens of Art Markman's thoughts on Smart Thinking.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/open-organization/22/6/using-habits-practice-open-organization-principles
-
-作者:[Ron McFarland][a]
-选题:[lkxed][b]
-译者:[Donkey-Hao](https://github.com/Donkey-Hao)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/ron-mcfarland
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/coffee_tea_selfcare_wfh_porch_520.png
-[2]: https://theopenorganization.org/definition/open-organization-definition/
diff --git a/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md b/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md
deleted file mode 100644
index ab229e6dba..0000000000
--- a/sources/talk/20220926 The story behind Joplin, the open source note-taking app.md
+++ /dev/null
@@ -1,140 +0,0 @@
-[#]: subject: "The story behind Joplin, the open source note-taking app"
-[#]: via: "https://opensource.com/article/22/9/joplin-interview"
-[#]: author: "Richard Chambers https://opensource.com/users/20i"
-[#]: collector: "lkxed"
-[#]: translator: "MareDevi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-The story behind Joplin, the open source note-taking app
-======
-Laurent Cozic sat down with me to discuss how Joplin got started and what's next for the open source note-taking app.
-
-In this interview, I met up with Laurent Cozic, creator of the note-taking app, Joplin. [Joplin][2] was a winner of the [20i][3] rewards, so I wanted to find out what makes it such a success, and how he achieved it.
-
-**Could you summarize what Joplin does?**
-
-[Joplin][4] is an open source note-taking app. It allows you to capture your thoughts and securely access them from any device.
-
-**Obviously, there are other note-taking apps out there—but apart from it being free to use, what makes it different?**
-
-The fact that it is open source is an important aspect for many of our users, because it means there is no vendor locking on the data, and that data can be easily exported and accessed in various ways.
-
-We also focus on security and data privacy, in particular with the synchronization end-to-end encryption feature, and by being transparent about any connection that the application makes. We also work with security researchers to keep the app more secure.
-
-Finally, Joplin can be customized in several different ways—through plugins, which can add new functionalities, and themes to customize the app appearance. We also expose a data API, which allows third-party applications to access Joplin data.
-
-**[[ Related read 5 note-taking apps for Linux ]][5]**
-
-**It's a competitive market, so what inspired you to build it?**
-
-It happened organically. I started looking into it in 2016, as I was looking at existing commercial note-taking applications, and I didn't like that the notes, attachments, or tags could not easily be exported or manipulated by other tools.
-
-This is probably due to vendor locking and partly a lack of motivation from the vendor since they have no incentive to help users move their data to other apps. There is also an issue with the fact that these companies usually will keep the notes in plain text, and that can potentially cause issues in terms of data privacy and security.
-
-So I decided to start creating a simple mobile and terminal application with sync capabilities to have my notes easily accessible on my devices. Later the desktop app was created and the project grew from there.
-
-![Image of Joplin on Chrome OS.][6]
-
-Image by: (Opensource.com, CC BY-SA 4.0)
-
-**How long did Joplin take to make?**
-
-I've been working on it on and off since 2016 but it wasn't full time. The past two years I've been focusing more on it.
-
-**What advice might you have for someone setting to create their own open source app?**
-
-Pick a project you use yourself and technologies you enjoy working with.
-
-Managing an open source project can be difficult sometimes so there has to be this element of fun to make it worthwhile. Then I guess "release early, release often" applies here, so that you can gauge user's interest and whether it makes sense to spend time developing the project further.
-
-**How many people are involved in Joplin's development?**
-
-There are 3-4 people involved in the development. At the moment we also have six students working on the project as part of Google Summer of Code.
-
-**Lots of people create open source projects, yet Joplin has been a resounding success for you. Could you offer creators any tips on how to get noticed?**
-
-There's no simple formula and to be honest I don't think I could replicate the success in a different project! You've got to be passionate about what you're doing but also be rigorous, be organized, make steady progress, ensure the code quality remains high, and have a lot of test units to prevent regressions.
-
-Also be open to the user feedback you receive, and try to improve the project based on it.
-
-Once you've got all that, the rest is probably down to luck—if it turns out you're working on a project that interests a lot of people, things might work out well!
-
-**Once you get noticed, how do you keep that momentum going, if you don't have a traditional marketing budget?**
-
-I think it's about listening to the community around the project. For example I never planned to have a forum but someone suggested it on GitHub, so I made one and it became a great way to share ideas, discuss features, provide support, and so on. The community is generally welcoming of newcomers too, which creates a kind of virtuous circle.
-
-Next to this, it's important to communicate regularly about the project.
-
-We don't have a public roadmap, because the ETA for most features is generally "I don't know", but I try to communicate about coming features, new releases, and so on. We also communicate about important events, the Google Summer of Code in particular, or when we have the chance to win something like the 20i FOSS Awards.
-
-Finally, very soon we'll have an in-person meetup in London, which is another way to keep in touch with the community and collaborators.
-
-**How does user feedback influence the roadmap?**
-
-Significantly. Contributors will often work on something simply because they need the feature. But next to this, we also keep track of the features that seem most important to users, based on what we read about on the forum and on the GitHub issue tracker.
-
-For example, the mobile app is now high priority because we frequently hear from users that its limitations and issues are a problem to effectively use Joplin.
-
-![Image of Joplin being used on a Desktop.][8]
-
-Image by: (Opensource.com, CC BY-SA 4.0)
-
-**How do you keep up to date with the latest in dev and coding?**
-
-Mostly by reading Hacker News!
-
-**Do you have a personal favorite FOSS that you'd recommend?**
-
-Among the less well-known projects, [SpeedCrunch][9] is very good as a calculator. It has a lot of features and it's great how it keeps a history of all previous calculations.
-
-I also use [KeepassXC][10] as a password manager. It has been improving steadily over the past few years.
-
-Finally, [Visual Studio Code][11] is great as a cross-platform text editor.
-
-**I'd assumed that Joplin was named after Janis, but Wikipedia tells me it's Scott Joplin. What made you choose the name?**
-
-I wanted to name it "jot-it" at first but I think the name was already taken.
-
-Since I was listening to Scott Joplin ragtime music a lot back then (I was pretty much obsessed with it), I decided to use his name.
-
-I think the meaning of a product name is not too important, as long as the name itself is easy to write, pronounce, remember, and perhaps is associated with something positive (or at least nothing negative).
-
-And I think "Joplin" ticks all these boxes.
-
-**Is there anything you can say about plans for Joplin? An exclusive tease of a new feature, perhaps?**
-
-As mentioned earlier, we are very keen to make improvements to the mobile app, both in terms of UX design and new features.
-
-We're also looking at creating a "Plugin Store" to make it easier to browse and install plugins.
-
-**Thanks for your time Laurent— best of luck with the future of Joplin.**
-
-*[This interview was originally published on the 20i blog and has been republished with permission.][12]*
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/9/joplin-interview
-
-作者:[Richard Chambers][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/20i
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/wfh_work_home_laptop_work.png
-[2]: https://joplinapp.org/
-[3]: https://www.20i.com/foss-awards/winners
-[4]: https://opensource.com/article/19/1/productivity-tool-joplin
-[5]: https://opensource.com/article/22/8/note-taking-apps-linux
-[6]: https://opensource.com/sites/default/files/2022-09/joplin-chrome-os.png
-[7]: https://opensource.com/article/21/10/google-summer-code
-[8]: https://opensource.com/sites/default/files/2022-09/joplin-desktop.png
-[9]: https://heldercorreia.bitbucket.io/speedcrunch/
-[10]: https://opensource.com/article/18/12/keepassx-security-best-practices
-[11]: https://opensource.com/article/20/6/open-source-alternatives-vs-code
-[12]: https://www.20i.com/blog/joplin-creator-laurent-cozic/
diff --git a/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md b/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md
new file mode 100644
index 0000000000..3e6109f32f
--- /dev/null
+++ b/sources/talk/20221016.0 ⭐️⭐️ What’s new in GNOME 43.md
@@ -0,0 +1,74 @@
+[#]: subject: "What’s new in GNOME 43?"
+[#]: via: "https://opensource.com/article/22/10/whats-new-gnome-43-linux"
+[#]: author: "Jim Hall https://opensource.com/users/jim-hall"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+What’s new in GNOME 43?
+======
+
+I love the [GNOME][1] desktop, and I use it as my daily [Linux desktop environment][2]. I find with GNOME, I can focus on the stuff I need to get done, but I still have flexibility to make the desktop look and act the way I want.
+
+The GNOME Project recently released GNOME 43, the latest version of the GNOME desktop. I met with GNOME developer Emmanuele Bassi to ask a few questions about this latest release:
+
+**Jim Hall (Jim): GNOME has lots of great desktop features. What are some of the new features in GNOME 43?**
+
+**Emmanuele Bassi (Emmanuele):** GNOME 43 has a complete redesign of the system status menu in the Shell. The new design is meant to give quick and easy access to various settings: network connections and VPNs; audio input and output sources and volumes; toggling between light and dark styles. It also has a shortcut for taking a screenshot or starting a screen recording.
+
+GNOME core applications have also been ported to the new major version of the GNOME toolkit, GTK4. GTK4 is more efficient when it comes to its rendering pipeline, which leads to smoother transitions and animations. Additionally, GNOME applications use libadwaita, which provides new UI elements and adaptive layouts that can seamlessly scale between desktop and mobile form factors.
+
+The GNOME file manager, Nautilus, is one of the applications that has been ported over to GTK4 and libadwaita, and it has benefitted from the new features in the core platform; it’s now faster, and it adapts its UI when the window is resized.
+
+The system settings can now show device security information, including manufacturing errors and hardware misconfiguration, as well as possible security issues like device tampering. Lots of work is planned for future releases, as device security is an area of growing concern.
+
+**Jim: What do you love most about GNOME 43?**
+
+**Emmanuele:** The most important feature of GNOME, one that I constantly take advantage of and that I always miss when I have to deal with other operating systems is how much the OS does not get in the way of what I’m doing. Everything is designed to let me concentrate on my job, without interruptions. I don’t have bells and whistles constantly on my screen, competing for attention. Everything is neatly tucked away, ready to be used only when I need to.
+
+**Jim: Many folks are familiar with GNOME today, but may not be familiar with its history. How did GNOME get started?**
+
+**Emmanuele:** GNOME started in 1997, 25 years ago, as a project for using existing free and open source components to create a desktop environment for everyone that would be respectful of users’ and developers’ freedom. At the time there were only commercial desktops for Unix, or desktops that were based on non-free components. Being able to take the entire desktop, learn from it, and redistribute it has always been a powerful motivator for contributors—even commercial ones.
+
+Over the past 25 years, GNOME contributors have worked not just on making the desktop, but creating a platform capable of developing and distributing applications.
+
+**Jim: Open source projects keep going because of a strong community. What keeps the GNOME community strong?**
+
+**Emmanuele:** I don’t pretend to speak for everyone in the project, but for myself I think the main component is the respect of every voice within the community of contributors, which comes from the shared vision of creating an entirely free and open platform. We all know where we want to go, and we are all working towards the same goal. Sometimes, we may end up pulling in different directions, which is why donating to entities like the GNOME Foundation, which sponsor gatherings and conferences, is crucial: they allow a more comprehensive communication between all the involved parties, and at the end we get better results for it.
+
+GNOME also takes very seriously respectful communication between members of the community; we have a strong code of conduct, which is enforced within the community itself and covers all venues of communication, including in person events.
+
+**Jim: GNOME established the Human Interface Guidelines (HIG) to unify the GNOME design and GNOME app interfaces. How did the HIG come about?**
+
+**Emmanuele****:**The Human Interface Guidelines (HIG) came into being after Sun did a usability study on GNOME 1, one of the very first usability studies for a free software project. The findings from that study led to the creation of a standardized document that projects under the GNOME umbrella would have to follow, which is how we ended up with GNOME 2, back in 2002.
+
+The HIG was a rallying point and a symbol, a way to demonstrate that the entire project cared about usability and accessibility, and it provided the tools to both desktop and application developers to create a consistent user experience.
+
+Over the years, the HIG moved away from being a complete checklist of pixels of padding and grids of components, and instead it now provides design principles, UI patterns, conventions, and resources for contributors and application developers. The HIG now has its own implementation library, called libadwaita, which application developers can use when targeting GNOME, and immediately benefit from a deeper integration within the platform without having to re-implement the various styles and patterns manually.
+
+_Thanks to Emmanuele Bassi for answering this interview. You can find GNOME at_[_https://www.gnome.org/_][3]
+
+_Read the release announcement for GNOME 43 at_[_https://release.gnome.org/43/_][4]
+
+_Learn about what’s new in GNOME 43 for developers at_[_https://release.gnome.org/43/developers/_][5]
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/whats-new-gnome-43-linux
+
+作者:[Jim Hall][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/jim-hall
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/19/12/gnome-linux-desktop
+[2]: https://opensource.com/article/20/5/linux-desktops
+[3]: https://www.gnome.org/
+[4]: https://release.gnome.org/43/
+[5]: https://release.gnome.org/43/developers/
diff --git a/sources/talk/20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md b/sources/talk/20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md
new file mode 100644
index 0000000000..6ee7fe0e8a
--- /dev/null
+++ b/sources/talk/20221018.2 ⭐️⭐️⭐️ Exploring innovative Open Organization charts.md
@@ -0,0 +1,189 @@
+[#]: subject: "Exploring innovative Open Organization charts"
+[#]: via: "https://opensource.com/article/22/10/innovative-open-organization-chart"
+[#]: author: "Ron McFarland https://opensource.com/users/ron-mcfarland"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Exploring innovative Open Organization charts
+======
+
+The ability to react quickly and adapt to changing situations is critical in today's business and work environment. In the past, offering efficient, standardized systems was the way to reduce costs and provide more to the public. In today's rapidly changing world, that's not enough. Collaborating, deciding, and executing quickly on a project requires that the traditional organization chart change to strengthen **adaptability**, **transparency**, **collaboration**, **inclusivity,** and project **community—**all five Open Organization Principles. Today, there are too many interdependencies to stick to the traditional top-down organization chart.
+
+I just read the book [Team of Teams, by Stanley McChrystal][1], which discusses this concern, particularly in military combat situations. It is the efficiency of small, empowered, trusted, goal-oriented teams working together (and with other teams) that will be successful in the future. Their ability to interact with other teams will make a small group scalable within a large organization. McChrystal writes that adaptability, transparency, and cross-silo collaboration are key to their success. These are three of the Open Organization Principles. I think it's equally valid in the business environment and not just in military operations.
+
+### Speed in decision-making and how to address continual unpredictability
+
+When do you make a decision yourself, and when do you take decisions to top management? McChrystal states, "a 70% chance of success today is better than 90% tomorrow when speed of action is critical." These days, the competitors, or enemies, are moving at that pace.
+
+In my article "[The 4 components of a great decision, What makes a "good" open decision?][2]" I wrote that decision-making speed was very important. Well, that's more true than ever, and you can't do that if you need approvals up and down a large vertical organization chart. Quick decisions must be made on the frontline, where the issues are. A horizontal organization that gets the people most directly involved in the decision-making process is required and is part of the strength that McChrystal is talking about.
+
+![A horizontal org chart with connections between teams][3]
+
+Image by:
+
+(Ron McFarland, CC BY-SA 4.0)
+
+These connections should have solid lines, and the vertical lines should be dotted, as communications should go up the line only when need be and horizontally minute by minute in real-time.
+
+### Information reversal
+
+In another presentation, I talked about an upside-down organization chart, which I called the [hierarchy of support][4]. Compare this with a vertical organizational chart.
+
+![Hierarchy of company objectives][5]
+
+Image by:
+
+(Ron McFarland, CC BY-SA 4.0)
+
+A typical vertical organization chart has top management in the top box. The staff provided frontline information to superiors so that they could decide.
+
+Then, lines connect downward to departments under the top box, and directives move downward. Task directives flow from those department managers to the staff under them.
+
+In a rapidly changing, unpredictable environment, the superiors should provide surrounding information to the staff so frontline people can make decisions independently. Imagine turning that organization chart upside down, with top management at the bottom and the staff at the top.
+
+![Hierarchy of company support][6]
+
+Image by:
+
+(Ron McFarland, CC BY-SA 4.0)
+
+With today's information technology, the frontline staff is often better informed than their superiors. Therefore, managers' main job is to support the staff where needed, but the decisions should be made rapidly on the frontline.
+
+McChrystal uses the expression, "Eyes on - Hands off." I think he is suggesting what I'm saying in a different way. He calls top managers giving directives "chess players" and supporting managers "gardeners."
+
+McChrystal started a training company called [Crosslead][7] that trains individuals and companies on how this type of organization works. Their name implies the horizontal, frontline communication I mentioned in my upside-down organization chart.
+
+The book mentions Open Organization Principles throughout:
+
+- **Adaptability**, which he calls "resilience."
+- **Collaboration**, which is horizontal within teams and between teams.
+- **Community**, which is **Inclusivity** and **Transparency** within teams.
+
+### Getting through the forest by knowing the working environment
+
+Imagine your goal is to get through a forest to your home on the other side. Unfortunately, the forest is rapidly changing because of the weather and climate.
+
+One person gives you a map of the best way to go through the forest, but that map was made in the past and might be outdated. It might be the best way to get home, but blockages along that route may force you to return to your starting location.
+
+Another person has a current satellite image of the forest which shows every possible route and its present condition. Furthermore, he has guides spread throughout the forest who can communicate and advise you on the best route.
+
+Wouldn't the second method be more reliable with a rapidly changing forest?
+
+### McChrystal's organization chart
+
+It starts with a frontline team, a specific goal, and members' specific tasks. The members select a leader depending on the task at hand. Who is most experienced, informed, and qualified to lead them toward the given team goal?
+
+It might well be that the official leader is the least qualified to make decisions, so the system is very slow at best and freezes at worst. Who will most people follow? That will determine the leader of any given task.
+
+McChrystal writes about the "Perry Principle," in which top management could not give orders by sea because there was no communication system in [Admiral Perry's][8] days. McChrystal calls this a "principle" because empowerment was given to frontline staff as a last resort and only when forced. He thinks this should be reversed. Top management should only make the decision themselves when the frontline people can't decide for one reason or another.
+
+The team chart that McChrystal is proposing is on the right.
+
+![Command organizational chart versus team organizational chart][9]
+
+Image by:
+
+Team of Teams, page 96.
+
+An exponential growth in frontline connectedness speeds up the communication and action process in a way that the current hierarchical structure can not handle. The command chart on the left is just too slow in a rapidly changing environment.
+
+By the time the situation is reported, everything changes and reported information is obsolete. Therefore, a frontline leader, like a start-up entrepreneur, must have the authority, initiative, intuition, and creative thinking to make decisions and immediately act on them to achieve the best result. Speed determines success or failure.
+
+Up until now, adaptability has mostly been characteristic of small interactive teams rather than large top-down hierarchies.
+
+In this new environment, that frontline leader's superior must withhold decision-making on the one hand but relentlessly support the frontline on the other. This will lead to frontline decision-making competence to iterate and adjust in a fraction of the normal time.
+
+### Attention directed from efficiency to adaptability
+
+McChrystal introduces the work of [Frederick Winslow Taylor][10], who developed the reductionist theory and the optimization and standardization of processes. This process was the most efficient way to reduce costs and save energy. He believed there was one ideal way for any process.
+
+So, he researched processes, developed instruction sheets, and instructed the frontline staff just to follow directions. It was a hard and fast line between thinking (by the researcher) and action (by the frontline worker). This approach is fine for repeated, well-known, stable processes, but not in changing environments, like factories with complicated but linear predictable activities, but not in changing environments. Unfortunately, this concept took the initiative to improve away from the frontline operator, as all they had to do was act and not think.
+
+When modification was required, the frontline worker froze, unqualified and unskilled at adapting.
+
+McChrystal writes that his military combat environment is not predictable. It is a "complex system." This complexity has countless unpredictable interdependencies in the environment.
+
+When one event takes place, it may have a massive impact or no impact at all. This results in great unpredictability. We have to manage this unpredictability. In the past, communication was from a few to a few with some connected impact. Now, it is many to many, and no one knows who or what the impact is on who or what. It is totally unpredictable.
+
+I believe this reductionist process is still important, but it can only go so far.
+
+Therefore, those basic practice instruction sheets should come in the form of suggestions only and not orders to follow. McChrystal calls these situations _complexity systems_. It's like opening and walking through a door only to learn of other doors to choose from.
+
+Those other doors cannot be foreseen without walking through the previous door. After selecting one of those doors, you discover more doors to choose from. To be most effective, whenever you select a door, you let everyone in the system know which one you picked and ask for advice if available. This is where real-time transparency is vital. In this environment, planning is not helpful, but feedback is.
+
+Being better equipped and more efficient are not enough in complex environments. Being agile and resilient become critical factors. When disturbances come, the system must continue to function and adjust. This is all-important in a world of continual situational change. In this world, planning for disruption is vital. It is "rolling with the punches" or even benefiting from them by developing an immune system to disruption. When shocks come, options have been planned, developed, practiced, and applied when needed. Simply working on one ideal process is not enough. If all the attention is on the execution of one procedure, other more helpful skills may suffer. It is moving away from predicting a single forecast, exploring all possibilities, and preparing for them. McChrystal asks to contrast efficiency and effectiveness. He says, "Efficiency is doing things right. Effectiveness is doing the right thing." He thinks the latter is more important in a complex situation. To do that, people should be skilled in many rarely needed but still necessary tasks.
+
+### Collaboration over vertical communication walls
+
+Furthermore, breaching vertical walls between divisions or teams increases the speed of action, particularly where cross-functional collaboration is vital to the speed of response.
+
+According to McChrystal, both between teams and within teams, collective consciousness is developed over years of joint practice, trust building, cooperation, deep group, and individual understanding, bonding, and service to their greater purpose.
+
+The entire group can improvise in a coordinated way when necessary. Teamwork is a process of reevaluating everyone's move and intent, constant messaging, and real-time adjustment.
+
+### Barriers between teams
+
+As you move down the traditional organization chart, motivation and contextual awareness become more limited and specific, and greater distance from the overall organization's objectives. Members are tight within their team but separated from the other groups within the organization and possibly the entire organization's goals.
+
+![Command of teams organizational chart][11]
+
+Image by:
+
+Team of Teams, page 129
+
+### Real-time communication and connections between teams
+
+In a complex, rapidly changing environment, the below chart is more appropriate, where there is a good deal of continual information flow and connections.
+
+![Inter-team organizational chart][12]
+
+Image by:
+
+Team of Teams, page 129
+
+Team members tackling complex environments must all grasp not just their team's purpose but the overarching goal of the entire organizational system. They must also consider how their activities impact other groups.
+
+To be successful, team participation and team-to-team participation are vital, according to McChrystal. In Jim Whitehurst's [book][13] on letting and encouraging everyone to speak up in meetings, even the quiet people express this same point.
+
+I wrote about it in my first article, [When empowering employee decision-making, intent is everything][14], posted on April 19, 2016. This concept is true when trying to connect teams as well.
+
+Teams working on a problem and collaborating in real time can perform tasks more concurrently rather than sequentially, saving a massive amount of valuable time.
+
+### Wrap up
+
+This article presents several images of new organization chart concepts. Unofficially, to get things done, much horizontal communication has been going on for decades. The difference now is that updates are in minutes and not at weekly or monthly meetings.
+
+I also discussed the importance of the speed of decision-making in today's working environment and that a new real-time communication flow system is needed. I mentioned that at least three critical Organization Principles, namely adaptability, transparency, and collaboration, were vitally important to make communication flow and allow faster decision-making and execution. Furthermore, I also presented that just having a highly efficient and low-cost system is not enough when faced with a rapidly changing, unpredictable working environment. An approach better able to adapt to change needs to be introduced and put into use, namely a new open organization chart.
+
+In the second part of this article, I will discuss how this type of organization can work, including how to develop it and improve it. Also, I'll give examples of how it can work in various situations.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/innovative-open-organization-chart
+
+作者:[Ron McFarland][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/ron-mcfarland
+[b]: https://github.com/lkxed
+[1]: https://www.shortform.com/summary/team-of-teams-summary-stanley-mcchrystal?gclid=CjwKCAjwy_aUBhACEiwA2IHHQFl6iYqOX4zSl3JxC-BVubNJo3Ee11s2nF2t4HMN6roJn2yehivPshoCXlQQAvD_BwE
+[2]: https://opensource.com/open-organization/17/3/making-better-open-decisions
+[3]: https://opensource.com/sites/default/files/2022-10/horizontal-org-chart.png
+[4]: https://www.slideshare.net/RonMcFarland1/hierarchy-of-objectives-support
+[5]: https://opensource.com/sites/default/files/2022-10/hierarchy-company-objectives.png
+[6]: https://opensource.com/sites/default/files/2022-10/hierarchy-company-support.png
+[7]: http://www.crosslead.com/
+[8]: https://en.wikipedia.org/wiki/Matthew_C._Perry
+[9]: https://opensource.com/sites/default/files/2022-10/command-vs-team-chart.png
+[10]: https://en.wikipedia.org/wiki/Frederick_Winslow_Taylor
+[11]: https://opensource.com/sites/default/files/2022-10/command-of-teams.png
+[12]: https://opensource.com/sites/default/files/2022-10/connections-between-teams.png
+[13]: https://www.goodreads.com/book/show/23258978-the-open-organization
+[14]: https://opensource.com/open-organization/16/4/when-empowering-employee-decision-making-intent-everything
diff --git a/sources/talk/20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md b/sources/talk/20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md
new file mode 100644
index 0000000000..fbbc0a73db
--- /dev/null
+++ b/sources/talk/20221024.5 ⭐️⭐️ Remixing Linux for blind and visually impaired users.md
@@ -0,0 +1,108 @@
+[#]: subject: "Remixing Linux for blind and visually impaired users"
+[#]: via: "https://opensource.com/article/22/9/linux-visually-impaired-users"
+[#]: author: "Vojtech Polasek https://opensource.com/users/vpolasek"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Remixing Linux for blind and visually impaired users
+======
+
+Vojtux, a Fedora project, is an unofficial Linux distribution aimed at visually impaired users.
+
+When I was around 5 years old, my father brought home our first computer. From that moment on, I knew I wanted to pursue a career in computers. I haven't stopped hanging around them since. During high school, when considering which specific area I wanted to focus on, I started experimenting with hacking, and that was the moment I decided to pursue a career as a security engineer.
+
+I'm now a software engineer on the security compliance team. I've been at Red Hat for over two years, and I work remotely in the Czech Republic. I've used Linux for about 12 years, mainly Arch Linux and Fedora, but I've also administered Debian, Gentoo, and Ubuntu in the past.
+
+![Image of Vojtech][1]
+
+Photo description: Black and white image of a smiling Vojtech, with a red frame around it and an illustrated paper airplane in the background.
+
+Outside of my day job, I play blind football, and I'm involved in various projects connecting visually impaired and sighted people together, including working in a small NGO that runs activities for blind and visually impaired people. I'm also working on an accessible Fedora project called [Vojtux][2], an unofficial Linux distribution aimed at visually impaired users.
+
+### The assistive technology stack
+
+When I use a smart device, I need several pieces of assistive technology. The first and most essential is called a screen reader. This is software that presents what's on the screen to blind or visually impaired people, either through speech or through braille (basically, it tries to serve as our eyes). It can read out notifications and tell me which button or page element I'm focusing on, allowing me to interact with graphical user interfaces.
+
+Screen readers use speech synthesis to speak aloud what appears on the screen. There are a variety of speech synthesizers, and some voices are more "natural-sounding" than others. The one I use, Espeak, is not very natural-sounding, but it's lightweight and fast. It also supports almost all languages, including Czech (which I use).
+
+Finally, I use a Braille display, a device that represents a line of text in Braille. I use this a lot, especially when I'm coding or doing code reviews. It's easier to grasp the structure of code when I can freely move from one code element to another by touch. I can also use its buttons to move the cursor to the character or area of the screen I'm interested in, and it has a Braille keyboard too if I want to use it.
+
+### How I use assistive technology on a daily basis
+
+When using a computer as a blind or visually impaired person, there are a couple of things that are relatively straightforward to do using the tech above. Personally, these are a few of the things I do every day:
+
+- The text console is pretty much my favorite application. As a general rule, when something's in text, then blind people can read it with a screen reader (this doesn't hold true in all cases, but in most.) I mainly use the console for system management, text editing, and working with guidance and documentation.
+- I browse the web and interact with websites.
+- I code and do code reviews using VSCode and [Eclipse][3].
+- I send emails and instant messages.
+- I can use word processing software, like Google Docs (which is not open source, but common in the modern office) and [LibreOffice][4]. Google Docs developers have added a lot of keyboard shortcuts, which I can use to move around documents, jump to headings or into comments, and so on.
+- I can play multimedia, usually. It depends on how the application is written. Some media players are more accessible than others.
+
+### Possible but painful
+
+This brings me to tasks that aren't so easy. I like to call these "possible but painful".
+
+PDF files can be difficult. Sometimes I end up needing to use optical character recognition (OCR) software to convert images to text. For example, recently I needed to read a menu for a restaurant. They had the PDF of their menu on their website, but it had been flattened, and didn't have a text layer. For me, this shows up as a blank screen. I had to use an OCR application from my smartphone to extract the text for me. Not only is this an extra step, but the resulting "translation" of the text isn't always entirely accurate.
+
+Viewing and creating a presentation can be problematic. To work around this, I create slides in HTML, using software such as [Pandoc][5], which can process [markdown][6] and convert it into slides. I've been using this for many years and it works well—it allows me total control of the resulting slides, because the markdown is just simple text.
+
+Video games can be made more accessible by basing them on sound or text. However, playing games can be doubly challenging on Linux as not only would you need to find an accessible game, but most PC games are also native to Windows so you would be dealing with some compatibility issues as well.
+
+Some websites and interfaces are more difficult to navigate than others. These issues are often quite easy to solve just by setting some attributes correctly. In general, lots of web content comes in the form of images, especially today. One of the easiest ways to make web content more accessible is to make sure that alternative text is added to images so that screen readers can read it out, and people who cannot distinguish the image have some idea what's there. Another thing I experience a lot is unlabeled controls: you know there's a button or a check box but you don't know what it does.
+
+### The Vojtux project optimises Linux for accessibility
+
+Developers don't intentionally set out to build applications that aren't accessible. The problem is that they usually don't know how to test them. There aren't many blind Linux users, so there aren't many people testing the accessibility of applications and providing feedback. Therefore, developers don't produce accessible applications, and they don't get many users. And so the cycle continues.
+
+This is one thing we hope to tackle with the Vojtux project. We want to create a Fedora remix that's user-friendly for visually impaired and blind users. We hope it will attract more users, and that those users start discovering issues to report, which will hopefully be solved by other developers in the open source community.
+
+So why are we doing this? Well, it's important to point out that Fedora is not an inaccessible distribution by design. It does have many accessibility tools available in the form of packages. But these aren't always present from the beginning, and there are a lot of small things which need to be configured before it can be proficiently used. This is something that can be discouraging to a beginner Fedora user.
+
+We want Vojtux to be as friendly and predictable for a blind user as possible. When a user launches a live image, the screen immediately starts being read as soon as a graphical user interface appears. All [environment variables][7] needed for accessibility are loaded and configured correctly.
+
+Vojtux brings the following changes, among others:
+
+- Environment variables for accessibility are configured from the start.
+- The Orca screen reader starts as soon as the graphical interface loads.
+- A custom repo is added with extra voice synthesis and packaged software.
+- Many alternative keyboard shortcuts have been added.
+- There's a special script that can turn your monitor on and off. Many users do not need the monitor at all and having it off is a great power saver!
+
+### So how can you help?
+
+First, if you'd like to contribute to Vojtux (or just spread the word), you can find out more on [our repository][2].
+
+Additionally, when working on a team with someone who has a visual impairment, there might be some additional considerations depending on the accessibility tech being used. For example, it's not easy for us to listen to someone and read at the same time, because we are basically getting both things through audio, unless someone is very proficient with the Braille display.
+
+Lastly, bear in mind that blind and visually impaired users consume the same end products as you do, whether that's presentation slides or websites or PDFs. When building products or creating content, your choices have a huge effect on accessibility and how easy it is for us to engage with the end result. Know that we are here, we love to use computers and technology, and we're often willing to help you test it, too.
+
+![Image of Vojtech holding a football][8]
+
+Image description: Vojtech holding a football. He is wearing a football uniform and protective goggles.
+
+This article originally published in September 2022 and has since been updated with the project's official name, Vojtux.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/9/linux-visually-impaired-users
+
+作者:[Vojtech Polasek][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/vpolasek
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/sites/default/files/2022-08/Vojtech.png
+[2]: https://github.com/vojtapolasek/Fegora
+[3]: https://opensource.com/article/20/12/eclipse
+[4]: https://opensource.com/article/22/2/libreoffice-accessibility
+[5]: https://opensource.com/article/18/9/intro-pandoc
+[6]: https://opensource.com/article/19/9/introduction-markdown
+[7]: https://opensource.com/article/19/8/what-are-environment-variables
+[8]: https://opensource.com/sites/default/files/2022-08/Vojtech%20holding%20a%20football.jpg
diff --git a/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md b/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md
new file mode 100644
index 0000000000..6902cdd07b
--- /dev/null
+++ b/sources/talk/20221031.0 ⭐️⭐️⭐️ 20 technology horror stories about learning the hard way.md
@@ -0,0 +1,262 @@
+[#]: subject: "20 technology horror stories about learning the hard way"
+[#]: via: "https://opensource.com/article/22/10/technology-horror-stories"
+[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+20 technology horror stories about learning the hard way
+======
+
+Sysadmins, web designers, engineers, and programmers share their scariest experiences on the command line.
+
+Halloween will be here before you know it! This fun, over-the-top holiday is a great time to ponder the mortal fears of the developer in each of us. What haunts you the most, in the quiet moments just before your code starts to run?
+
+Getting into the spirit of Halloween, I asked some Opensource.com writers: What's the scariest code you've seen or written?
+
+### Bad permissions
+
+I was responsible for a server, and I FTP'd something up. There were some funky things displaying, so I thought some permissions needed to be changed.
+
+Needless to say, I foolishly turned off read mode and took down the site. (A website is not much good when nobody can access it.)
+
+It took me hours to fix. This was at an agency years ago when I was the sole web developer.
+
+—[Miriam Goldman][1]
+
+### Shambling HTML
+
+I took down a client's website, who was an author on the Wall Street Journal bestseller list at the time, because the original WordPress default theme had an update available.
+
+His developer had hardcoded HTML into the theme instead of creating a child theme. I ran the update.
+
+This was in the days when folks didn't have nightly backups easily, so I spent hours on the phone with the hosting provider. Things like staging, child themes, nightly backups, or manual backups, are all now normal things, as well as the ability to auto-update and manually roll back. Not so in that era.
+
+—[Courtney Robertson][2]
+
+### Not-so-secret key
+
+I think many of us have seen a secret key in public code before. Or another favorite: A friend of mine sending emails to 100,000 users from the dev server.
+
+—[John E. Picozzi][3]
+
+### Unix mix-up
+
+This is a Unix story. It's fixed in [Linux][4] today.
+
+A day before I was going to give an important demo of a new component to management, I had to refresh my code (this was way before [Git][5] existed.) I went to my home directory, found the project directory, and deleted everything. Unfortunately, in that flavor of Unix, this command followed symbolic links, and I had a link to the latest version of the code (not all was on the source code system as it was still in the testing phase).
+
+A day later, there was a network problem in the building, so the demo was delayed for a day, and we managed to recover. It was more than three decades ago. Even now I have no clue whether the network problem was a coincidence or an attempt of our sysadmin to save us (if so, it worked!)
+
+—[Josh Salomon][6]
+
+### Imperative
+
+Seeing `!important;` all over a CSS file instead of proper use of specificity.
+
+I once had to override and customize almost all of a WordPress theme's CSS because the owner of the site wouldn't budge on getting a new theme that was closer to the design he wanted.
+
+That same theme was last updated by the developer in 2018, and the website is still using it.
+
+—[Christi Nickerson][7]
+
+### Misquoted
+
+In a previous role, my predecessor misquoted the lyrics to Journey's "Any Way You Want It" in a code comment.
+
+—[Ben Cotton][8]
+
+### The ghost of Algol68
+
+Algol68's complexity, back in the late 1960s and early 1970s, frightened away many influential people, including Niklaus Wirth. The most common complaint I can recall back then was along the lines of "who could write a compiler for such a complicated beast?" And yet many people did. Moreover, many of the concepts developed or at least formalized as [Algol68][9] appeared in later languages, notably in C and the Bourne shell (thanks to Steve Bourne).
+
+Some of Algol68's concepts have not aged well. The concept of I/O dealing with "books" and "chapters," and so on, is a bit weird today. Leaving things like character sets to the implementation seems pretty old-fashioned.
+
+But some are, or should be, tremendously relevant today, such as expressions that yield a value, strong typing (types in Algol68 are called "modes"), [heap memory and garbage collection][10], definition and overloading of operators, and more.
+
+Sticking with the Hallowe'en theme, both tricks and treats.
+
+Algol68 is a language that merits study, if for no other reason than to see where so many of modern computing's ideas came from, and to see how many have been lost along the way.
+
+—[Chris Hermansen][11]
+
+### Passwords exposed
+
+I was doing a tech audit for an incoming support client, and the previous developer put passwords in plain text throughout the full theme, and used horrible ways to connect to a remote database. Their composer file was also ghoulishly bloated. It took five minutes every time I tried to get the site up and running locally. Outdated dependencies, repos I could not access, the list goes on.
+
+—[Miriam Goldman][1]
+
+### The maze
+
+The scariest code I ever saw was a piece of PDP-11 assembly language in the kernel of an operating system named RSTS, which nobody remembers today. Source code was on microfiche in those days, and I had followed this code path through a few twists and turns, trying to figure out what was going on. And then, I ran into this instruction:
+
+```
+MOV R5,PC
+```
+
+I threw up my hands and wailed. I really did wail. People in the office thought I'd hit my head, or had a heart attack.
+
+In those days, memory was precious and a `MOV` instruction used a teeny tiny bit less memory than a `BR` (for "branch") instruction. Copying the contents of register 5 into the program counter was really a cheap unconditional branch to the address stored in register 5. Except, I had no clue what was stored in register 5, or how to find it.
+
+To this day, almost 40 years later, I wonder who would write code like that and how anyone could debug it.
+
+—[Greg Scott][12]
+
+### Off by one
+
+I work in the automation industry, where the PLCs are programmed in some pretty weird languages.
+
+An example that haunts me is the fact that in the language [ST][13], you can define arrays to begin at index 1. It means that the first element is at position 1, not 0. It drives me nuts when I see it.
+
+—[Stephan Avenwedde][14]
+
+### Divergence
+
+I took a MongoDB instance down for 40 minutes once during a stage-to-prod launch. Our staging environment had diverged from production. It was just a database configuration difference—not very exciting. But it's a good lesson to make sure your staging and prod environments are in sync!
+
+—[Em Nouveau][15]
+
+### Unearthly whispers
+
+This is from a project that's still alive and kicking, but I've changed the code to hide the source.
+
+```
+for(int c =0; y < yyy && c < ccc; y++, c++){// some code here}
+```
+
+It seems like an innocent loop at first. But maybe you're asking why there are two variables with two stop conditions and two increments. And then you realize there's only one initializer and the second variable (`y`) is initialized before this loop in a different code block.
+
+When I realized this, it took me about an hour to understand why the code was written in this way, and how it's supposed to work. Obviously, there were no `c` comments and the variable names are meaningless (`c` is called `c` in the code and `y` has a bit more meaningful name, but not meaningful enough to explain to me its meaning, not even today when I understand what it does).
+
+—[Josh Salomon][6]
+
+### Critical data
+
+Around 1980, I got my first job after college. I was the Assistant Computing Center Director at an engineering college in Indiana. That's a fancy title for the second-in-command of a two-person IT shop. I handled administrative computing on a PDP-11/40, with RK05 removable "pizza platter" disk drives (2.5 MB each.) Each admin office had one drive, and part of my job was to back them up, disk to disk, every week. But I got busy over that summer and skipped the Registrar's Office four weeks in a row. And then I realized the risk, so I made sure to start my monthly disk-to-tape backup.
+
+I dismounted the Registrar's pizza platter from the 11/40 and mounted it on the 11/70, which had a 9-track tape drive, and started my backup. A few minutes later, I heard a scraping noise inside that disk drive. Yep, the heads crashed. In a few short minutes, I'd destroyed all the Registrar's data, and the then-most-recent backup, which was a four-week-old 9 track tape.
+
+It was a, well, uncomfortable moment when I had to look the Registrar department head in the eye and tell him I had destroyed all his data.
+
+Today, I tell new IT people you're not a pro until you've destroyed somebody's critical data, and there's no way to recover it. Remember that feeling in the pit of your stomach forever.
+
+—[Greg Scott][12]
+
+### Angry mob
+
+A client hacked WordPress core to add features that later came out in a routine update and couldn't understand why the site kept crashing every time they attempted to update LearnDash. (They also didn't like our report that called out their poor development practices.) They basically showed us the door calling us liars and incompetents. To this day, I still have delegate access to their domains and wp-admin access to production and development of two domains.
+
+They also, despite us sharing a link to an encrypted location for sharing access credentials, sent our logins over emails.
+
+—[Laura Byrne][16]
+
+### Don't forget to backup
+
+I've not worked much on corporate networks, so I haven't downed any servers. However, as I young person, I tried to help a person with an IT problem and somehow caused Windows 95 to crash, and had to reinstall it for free.
+
+Another of my saddest moments as a very young Amiga user was when my save disk, containing all my files, broke due to some mechanical failure. Nowadays, I've gotten better at backing up more of my important personal files.
+
+—[Rikard Grossman-Nielsen][17]
+
+### Root of all evil
+
+I was new to Linux, and I'd just come from DOS where I used Norton Commander. Then Midnight Commander got released and I was very happy about it. It wasn't packaged for the Linux distro I used at the time (Jurix), so I compiled it myself from source, just like other software I used at that time. It worked perfectly well, and suddenly I felt more at home on Linux.
+
+That's not the horror story.
+
+My colleagues told me not to run Midnight Commander as root, regardless of how comforting it was. But root was easy, and it felt more like DOS, so I ignored their advice. Long story short: I accidentally removed the content of the entire `/etc` directory. Until that time, I'd never had to use backups, but that day I learned that backups are actually useful.
+
+27 years later, I still remember this story, and I do regular backups.
+
+—[Peter Czanik][18]
+
+### Illusion
+
+The worst project one agency had me "make" was a one-pager that seemed straightforward at first. I said I'd be able to hash it together with some HTML and CSS, maybe a little Javascript. But they specifically asked me not to do that. They wanted me to cut out the design and literally use CSS to position those pieces around the page. They also had me add all CSS inline, directly into the HTML file, because they literally wanted **one page**.
+
+None of the text was real text.
+
+There were no real HTML elements aside from the ones needed to position those images.
+
+I told them that the design was simple enough that I could throw it together with actual code, but they didn't want that. They only wanted me to spend the time to cobble the pieces together and then move on to a different project. They had me make two little one-page sites like that.
+
+It hurt my front-end soul. It was physically painful for me to do that project. It was a temp-to-perm gig, and when they offered me full-time, I politely declined.
+
+—[Rachel Vasquez][19]
+
+### Corruption
+
+The scariest things to me are memory corruptions that can occur in ANSI C99. During a screencast, I captured this (not quite) paranormal occurrence in this [YouTube clip][20].
+
+![Image of gseqencer before memory corruption.][21]
+
+The GtkEntry labeled `file` shows some random glyphs. I've double checked the [code][22], but didn't find any issues.
+
+The `ags_export_soundcard_open_response_callback()` function is a callback to the "response" event of GtkFileChooserDialog. (For the record, the tool to target this problem is [valgrind][23].)
+
+![Image of gsequencer after memory corruption.][24]
+
+—[Joël Krähemann][25]
+
+### Python fears
+
+The most horrific programming feature I ever saw is the access Python gives to its `dict`. Changing the type of an object at runtime is against my programming code of conduct.
+
+—[Josh Salomon][6]
+
+### Franken-net
+
+In 2006, I built firewalls based on Fedora and a bunch of scripting, and persuaded a customer with a large website inside a colo center to replace a proprietary firewall with one of mine. I built it and showed up to install it at 4AM one morning. That was when I learned (the hard way) that he had a load balancer behind his firewall, but with a public IP address. The customer endured a 5-minute outage, but I reconnected everything to the original, and it all came back online.
+
+I found a way to handle his franken-net configuration by using proxy ARP. The idea was whenever anyone from the outside world did an ARP request for the load balancer, I would answer. A few days later, I showed up at 4AM again and installed my system. This time, I knocked everything in the entire colo center offline. I had set up my proxy ARP to respond to everything, and so all traffic on the LAN eventually found me and disappeared into a black hole.
+
+Once I realized what I'd done, I put it all back the way it was. But the damage was done. If you tried to browse your favorite website around 4AM US Central time one morning in 2006 and it didn't respond, it might have been my fault. I knocked an entire colo site offline by installing one system in a rack and turning it on.
+
+The website operator screamed and I slunk out the door. They never invited me back to try again. That was a shame, because bridging probably would have worked.
+
+—[Greg Scott][12]
+
+### Your horror story
+
+What's your favorite technology-related horror story? Tell us in the comments (but be nice, and change project names to protect the innocent!)
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/technology-horror-stories
+
+作者:[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/users/miriamgoldman
+[2]: https://opensource.com/users/courtneyrdev
+[3]: https://opensource.com/users/johnpicozzi
+[4]: https://opensource.com/tags/linux
+[5]: https://opensource.com/downloads/cheat-sheet-git
+[6]: https://opensource.com/users/joshs
+[7]: http://cnickerson.com
+[8]: https://opensource.com/users/bcotton
+[9]: https://opensource.com/article/20/12/learn-algol-68
+[10]: https://opensource.com/article/22/6/garbage-collection-java-virtual-machine
+[11]: https://opensource.com/users/clhermansen
+[12]: https://opensource.com/users/greg-scott
+[13]: https://en.wikipedia.org/wiki/Structured_text
+[14]: https://opensource.com/users/hansic99
+[15]: https://opensource.com/users/nouveau
+[16]: http://twitter.com/@NewYorkerLaura
+[17]: https://opensource.com/users/rikardgn
+[18]: https://opensource.com/users/czanik
+[19]: https://opensource.com/users/rachievee
+[20]: https://youtu.be/Go6r-CT06zc?t=103
+[21]: https://opensource.com/sites/default/files/2022-10/gsequencer-before-memory-corruption.png
+[22]: https://git.savannah.nongnu.org/cgit/gsequencer.git/tree/ags/app/ags_export_soundcard_callbacks.c?h=4.4.x#n397
+[23]: https://opensource.com/article/21/8/memory-programming-c
+[24]: https://opensource.com/sites/default/files/2022-10/scarygsequencer-after-memory-corruption.png
+[25]: https://opensource.com/users/joel2001k
diff --git a/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md
new file mode 100644
index 0000000000..be8a97423b
--- /dev/null
+++ b/sources/talk/20221107.1 ⭐️⭐️ What you actually need to know about open source to get started.md
@@ -0,0 +1,97 @@
+[#]: subject: "What you actually need to know about open source to get started"
+[#]: via: "https://opensource.com/article/22/11/get-started-open-source"
+[#]: author: "Katie Edwards https://opensource.com/users/kaedward"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+What you actually need to know about open source to get started
+======
+
+A beginner's guide to open source explained in plain terms.
+
+So you want (or need) to figure out what ["open source"][1] really means. I'll cover the basics of open source, whether you're interested in contributing to a project or want to be in the loop at a new job where the term keeps getting thrown around.
+
+Full disclosure: I am a person with little technical experience, working in the content-design fringes of a very technical open source environment. Given my background in marketing and communication, I felt like a fish out of water when I made this career switch. [Git][2], data science, the ins and outs of software… It was, and still is a year later, a lot to comprehend.
+
+But that's why I'm writing this piece. I want to help make open source a little less intimidating. After all, at the center of open source is a supportive learning community—built for everyone, technically experienced or not.
+
+I'll start with the absolute basics.
+
+### What is open source?
+
+For the record, the industry definition of open source is available at the [Open Source Initiative][3] site.
+
+However, the popular perception of "open source" software is usually that it doesn't cost anything, the source code is accessible, anyone can contribute to it, and you can redistribute it or do whatever else you want with it.
+
+Some of that is true, and some of it plays into a few common misconceptions, one of which is cost.
+
+#### Open source costs $0
+
+Is it true? Usually, but not always. By nature of its code being publicly available, open source software can be obtained at no cost. However, for-profit companies do exist around open source projects. But if the software is available at no cost, how do open source companies even exist? How do they make money?
+
+The concept of having a "free product" is counter-intuitive. But that's just the thing: A company doesn't have to sell software to profit from the management of products, storage of data, and customer support.
+
+Many companies follow a subscription model, offering customer support in case of bugs or general confusion. Data storage isn't free, so that is another area where these companies can bring in income. In this regard, the "product" isn't the software; it's the benefit of a subscription.
+
+- **The source code is accessible**: Is it true? Yes, always. This accessibility is a prerequisite for adopting the term "open source." The source code must be available to view, use, modify, and redistribute.
+- **You can do whatever you want with the code**: Is it true? It depends. Subject to licensing terms, there are some limitations on how you can use code, but you can generally use it however you'd like. Whether that means tweaking a project to fit a specific need or using it as the basis for something else, open source software is yours, and everyone else's, to modify.
+- **Anyone can contribute to open source projects**: Is it true? Yes - within limits. Anyone with the [right skill set][4] can contribute to open source. However, that doesn't mean all contributions are always accepted and implemented.
+
+For example, say you're interested in a project where the end goal is a catalog of all the types of birds in the world. You're really into dinosaurs, specifically dinosaurs that may have eventually evolved into modern-day birds. So, you contribute entries for all of the most bird-like dinosaurs. The project owners could see this and think, "Sweet, those are some great prehistoric birds." However, they're also allowed to say, "Hmm, those dinosaurs are like birds, but they're technically not birds yet. They probably don't belong on Birdpedia."
+
+Luckily, projects don't usually work under lawless conditions. Open source projects typically come with contribution guidelines and codes of conduct, so you don't have to worry about your additions flying off the rails.
+
+### Why open source?
+
+So, after all the contributions are made (if it's ever actually done), why would people give away their software for no cost? If so many people put their time and effort into creating something, why wouldn't they band together and slap a price tag on it?
+
+This question comes with a lot of answers. Here are a few:
+
+- Starting a business is hard, especially if the project you're working on doesn't form the strong foundation for a money machine. It can be easier to rally a bunch of like-minded people without commitments or the expectation of paychecks.
+- Most open source communities consist of people interested in improving software or bringing it into existence but don't have the time or interest to commit to working full-time on a project. Sometimes open source represents passion projects, geek groups, and crowd-sourced solutions to annoying problems.
+- The groups that form around open source projects of all sizes foster supportive communities where contributors and onlookers alike can practice their skills, improve software they regularly use, teach and learn from each other, and feel empowered to make their voices heard. Many open source communities are essentially hyper-focused online hobby clubs.
+
+### Where do I get involved?
+
+Now you may ask yourself, "But what do I do with this information? Can I contribute to open source projects? What if I'm not good enough yet?"
+
+Never fear—even [beginners][5] are welcome to contribute to open source projects. It's a great way to hone your skills while working with a community towards a larger goal. And, as I talked about earlier, the worst that can happen is your changes aren't merged into Birdpedia (and that's because those product owners just can't see your vision of a Birdpedia where birds and their ancestors gleefully coexist in an online world of bird-related knowledge).
+
+Do you have to know how to code to contribute to projects? Contrary to popular belief, [no, you don't][6]. Projects "take a village" to thrive, which means they need input from people of all different backgrounds. Visual designers, writers, marketers, reviewers, translators, subject matter enthusiasts, and even just users of the resulting product are all valuable contributors. Not only do they help build out and improve products, but they identify bugs, suggest improvements, spread the word about the project, and generally strengthen the community.
+
+In short, no matter what your background or experience, if you're interested in open source or a specific project, you're nearly guaranteed to be welcomed with open arms.
+
+### Get started with open source now
+
+Still not sure where to begin? Here are some ideas and resources to get you started:
+
+- [Up For Grabs][7] is a "list of open source projects which have curated tasks specifically for new contributors." This is a great place to find an easy first PR opportunity, which is a great way to find out what kind of contributions you'll enjoy.
+- Check out this list of [beginner-friendly projects][8] on GitHub.
+- If you're still not feeling inspired, consider [contributing][9] to (or flying with) [PatternFly][10], Red Hat's open design system.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/get-started-open-source
+
+作者:[Katie Edwards][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/kaedward
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/resources/what-open-source
+[2]: https://opensource.com/resources/what-is-git
+[3]: https://opensource.org/osd
+[4]: https://opensource.com/life/16/1/8-ways-contribute-open-source-without-writing-code
+[5]: https://opensource.com/article/18/4/get-started-open-source-project
+[6]: https://opensource.com/article/22/8/non-code-contribution-powers-open-source
+[7]: https://up-for-grabs.net/?ref=hackernoon.com#/
+[8]: https://github.com/MunGell/awesome-for-beginners
+[9]: https://github.com/patternfly
+[10]: https://www.patternfly.org/v4/get-started/design
diff --git a/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md b/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md
new file mode 100644
index 0000000000..757bb09bfc
--- /dev/null
+++ b/sources/talk/20221108.1 ⭐️⭐️ What stickers are on your laptop.md
@@ -0,0 +1,272 @@
+[#]: subject: "What stickers are on your laptop?"
+[#]: via: "https://opensource.com/article/22/11/laptop-stickers"
+[#]: author: "AmyJune Hineline https://opensource.com/users/amyjune"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+What stickers are on your laptop?
+======
+
+Your laptop is a blank canvas ready to be decorated with self-expression. What are your favorite stickers? Take our poll and then read what other open source enthusiasts had to say.
+
+Having just switched work laptops last December, I realized how much I love applying stickers to my work machines. Sometimes the stickers are souvenirs from past events, others are from projects that I am passionate about, and some are just for fun!
+
+Curious to know what others had on their laptops, I asked!
+
+### Accessibility advocate
+
+![AMyJune's laptop with lots of Drupal stickers][1]
+
+Here is my work laptop (Can you tell my roots are in Drupal). My favorite decal is the Druplicon with the wheelchair... When [Drupal 8 came out, we took the logo][2] and blended it with the wheelchair because the agency I worked with focused on accessibility.
+
+—[AmyJune Hineline][3]
+
+### Fresh Java
+
+![Alan Formy-Duval's laptop with various linux decals][4]
+
+I have always had stickers on my computers and stuff since I was a kid. I think my favorite is either Tux or the Linux Inside. They are mostly field-relevant except for just a few. In the bottom-right corner, I have Java running on Tomcat (haha) - an area I spent much of my career doing.
+
+—[Alan Formy-Duval][5]
+
+### Utilitarian purpose
+
+![Rikard Grossman-Nielsen's laptop with two velcro strips glued on][6]
+
+Well, I don't have any stickers. However, I've glued Velcro bands on my two laptops to secure my external hard drive for when I'm gaming on the bus. I have also glued a lock notch on.
+
+—[Rikard Grossman-Nielsen][7]
+
+### Maintain the look
+
+![John 'Warthog9' Hawley's laptop with a mix of decals][8]
+
+Not the most decorated laptop by far, but I like the collection (and you know, hard to get more without travel for a while!)
+
+My favorite is the "last one to commit is the maintainer". It's a snarky comment on the state of maintainership, as well as a promise that the code will live on as a result.
+
+Mostly it boils down to things I use or contribute to, think are meaningful, or just found the sticker awesome.
+
+—[John 'Warthog9' Hawley][9]
+
+### Window covering
+
+I never put stickers on my laptop because it seems to me the only really cool stickers are the ones I don't have (said the grumpy old man.)
+But the old homebrew computer my kids used to use in high school, a 3GHz Core Duo with 8 GB of memory, has an Open Mainframe sticker on it that I grabbed at the Linux Foundation Open Source Summit here in Vancouver a few years ago. I quite like that one.
+And because in my life, the **Control** key lives next to the **A**, not down on the bottom row, I have a few keyboards around with a **CTRL** sticker on the CapsLock key and a **CAPS** sticker on the **Control** key, which work together with the [swap Ctrl and CapsLock option in GNOME Tweak Tool][10].
+Finally, I used to peel off Windows stickers, back when my only option was buying computers and paying the Windows tax, and put Linux sticker over the gummy patch. Same with keyboards that had the Windows logo on the Super key.
+
+—[Chris Hermansen][11]
+
+### Mementos
+
+![StrangeMama's laptop with a Kanopi sticker and various other decals][12]
+
+The Kanopi sticker is by far my favorite sticker. Not only is it shiny and iridescent, but it's a constant reminder of how amazing this company is to work for. They seriously put their employees first, and they're super mindful in selecting client projects that align with Kanopi's overall company mission and vision.
+The Curt V8 sticker is in remembrance of a dear friend. He loved Fords and my husband loves Chevys. The constant fun rivalry resulted in randomly placed Ford and Chevy objects snuck into garages depending on whose house we were at. I smile every time I see this Ford emulated sticker on my laptop, since I live in a Chevy family.
+The variety of stickers represents the family adventures that we have been on throughout the years. Date nights, friends, family road trips, scary hiking adventures (Angels Landing), and my youngest's drive to get a police sticker from every city and state.
+
+—[Kristine Strange][13]
+
+### Conference swag
+
+![Cindy William's laptop with various decals including a Kanopi sticker and Glimore Girls decals][14]
+
+The dragon is [my college mascot][15]. I also have some Gilmore Girls and coffee stickers.
+
+Here’s a photo of my daughter’s door, filled with stickers I’ve brought back from conferences over the years.
+
+![Cindy William's daughter's door covering tale to stern with decals from various WordPress and Drupal Camps][16]
+
+—[Cindy Williams][17]
+
+### Sticking with chicken
+
+This is my not-work laptop. My work laptop is basically being covered in a honeycomb of hex-shaped stickers of our products, open source projects I use and support, and at least one Opensource.com hexagon. :)
+
+I can’t pick a favorite, since they are all favorites, or I wouldn’t have them on the laptop that goes with me everywhere. I am overly fond of the chickens, the Raven, and Sergi the Cat with his knives.
+
+![Kevin Sonney's laptop with various decals][18]
+
+![Kevin Sonney's laptop with various decals][19]
+
+—[Kevin Sonney][20]
+
+### Foodie fun
+
+I used to load up my laptops with stickers. The one I bought last year filled up fast:
+
+![DJ Billings' laptop with various decals including a muffin][21]
+
+My favorite is the cupcake & donut one because I illustrated it.
+I just bought a [System76][22] Darter Pro laptop and I love it. I got a bunch of really cool stickers with it, but I've been hesitant to put them on the laptop. I don't know why.
+
+—[DJ Billings][23]
+
+### Keeping it clean
+
+![Don Watkins' laptop with opensource.com and Red Hat stickers][24]
+
+I don’t put a lot of stickers on my laptops but I’ve got my two favorites on my current laptop, which is System76 Darter Pro.
+
+—[Don Watkins][25]
+
+### Life's essentials
+
+![Katie Sanders' laptop and Yeto mug with decals][26]
+
+I included my water bottle, too. I think I like those stickers even more.
+Beer, dogs, music, croissants. What else could I need in life?
+
+—[Katie Sanders][27]
+
+### My mantra
+
+![Faye Polson's laptop with "yeet or be yeeted" decal][28]
+
+My favorite sticker is **yeet or be yeeted**.
+
+—[Faye Polson][29]
+
+### Garlic
+
+![Tiffany Bridge's laptop with movie, WordPress, and garlic decals][30]
+
+Most of the stickers are professional, but the **Greetings from Hamunaptra, City of the Dead** sticker is a subtle reference to one of my favorite movies, **The Mummy** (1999) starring Brendan Fraser and Rachel Weisz.
+
+The flags and the **Blackbeard’s Bar & Grill** stickers are references to **Our Flag Means Death**, which I am completely obsessed with.
+And the garlic is the Cosmic Garlic sticker of my friend's shop. Garlic is a folk remedy for all kinds of diseases, so it seemed like a good thing to put on a laptop during a pandemic.
+
+—[Tiffany Bridge][31]
+
+### Open source projects
+
+![Seth Kenlon's laptop with various linux and open source decals][32]
+
+I usually cover my laptop with projects I use, contribute to, or admire. Statistically, my laptop should be layered with a lot more stickers by now. I haven't been to a tech conference in three years, so the pace has been slower than usual.
+
+—[Seth Kenlon][33]
+
+### Decked out in Drupal
+
+![April's laptop features several Drupal stickers.][34]
+
+I add stickers that represent me in tech. So I include organizations I'm a part of, events I've attended, and projects I support.
+It's always fun to see the Drupal bear on people’s laptops since I designed it.
+Notice all of my stickers are on a laptop cover for preservability.
+
+—[April Sides][35]
+
+### Wild about WordPress
+
+![Michelle Frechette's laptop with misc WordPress and Wapuu decals][36]
+
+My favorite is hard to pick, but probably the **Michelle wapuu**! She’s so me!
+
+The stickers **I press all the words** and **WordPress is my super power** are from WordCamp Rochester, so those are near and dear to me.
+
+Basically, I’ll add a sticker if I have a history with it (I spoke at the camp, for example), or I just like it!
+
+—[Michelle Frechette][37]
+
+### An eye for art
+
+![Dagger McJagger's Laptop with misc Drupal and open source decals][38]
+
+I heavily lean towards art stickers. Seeing art on my computer reminds me of the people I know and experiences I’ve had while using this computer.
+
+My favorite is the sad-face Midsommar sticker that my partner gave me. After seeing the movie for the first time, we stood outside the theater discussing it for hours into the night. We still reference it to this day.
+
+—[Jonathan Daggerhart][39]
+
+### Custom skin
+
+![Sallie Goetsch's laptop with a custom goddess Ereshkigal skin][40]
+
+I got a new travel laptop in 2019, and it remains pristine because I have not been to any events since then. My work laptop has a custom skin of the goddess Ereshkigal, after whom I named the computer.
+
+—Sallie Goetsch
+
+### GNU Emacs
+
+![Sachin Patil's laptop with only one sticker][41]
+
+A GNU Emacs sticker.
+
+—[Sachin Patil][42]
+
+### Opensource.com
+
+After seeing everyone's responses, and maybe getting some cool stickers in the mail from a very brilliant community manager...
+
+OK, OK, I give! AmyJune, Don, and Sachin convinced me to put ONE sticker on my laptop.
+
+Here's a photo showing my laptop with its singular sticker:
+
+![Chris Hermansen's laptop with an opensource.com sticker on it][43]
+
+—Chris Hermansen
+
+### Stickers and open source
+
+You don't have to adorn your computer with stickers. It's not required, and it certainly doesn't mean you love open source more or less than anybody else. But if you love an open source project, there's a good chance that it's got a sticker you can use to decorate your computer (or your door, water bottle, or USB microphone). Rest assured that if you love open source and you love stickers, there's a strong intersection between the two!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/laptop-stickers
+
+作者:[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/2022-11/amyjune-laptop.webp
+[2]: https://www.drupal.org/files/cta/graphic/drupal%208%20logo%20isolated%20CMYK%2072_1.png
+[3]: https://opensource.com/users/amyjune
+[4]: https://opensource.com/sites/default/files/2022-10/Alan%20F..webp
+[5]: https://opensource.com/users/alanfdoss
+[6]: https://opensource.com/sites/default/files/2022-10/%20Rikard%20Grossman-Nielsen-1.webp
+[7]: https://opensource.com/users/rikardgn
+[8]: https://opensource.com/sites/default/files/2022-10/%20John%20%27Warthog9%27%20Hawley%20.webp
+[9]: https://opensource.com/users/warthog9
+[10]: https://opensource.com/article/18/11/how-swap-ctrl-and-caps-lock-your-keyboard
+[11]: https://opensource.com/users/clhermansen
+[12]: https://opensource.com/sites/default/files/2022-10/kristine.webp
+[13]: https://opensource.com/users/strangemama
+[14]: https://opensource.com/sites/default/files/2022-10/cindy%20williams.webp
+[15]: https://www.uab.edu
+[16]: https://opensource.com/sites/default/files/2022-10/cindy%20duaghter%20door.webp
+[17]: https://opensource.com/users/cindytwilliams
+[18]: https://opensource.com/sites/default/files/2022-10/%20Kevin%20Sonney%20.webp
+[19]: https://opensource.com/sites/default/files/2022-10/%20Kevin%20Sonney%202.webp
+[20]: https://opensource.com/users/ksonney
+[21]: https://opensource.com/sites/default/files/2022-10/DJ_laptop-stickers.webp
+[22]: https://opensource.com/article/19/5/system76-secret-sauce
+[23]: https://opensource.com/users/itsjustdj
+[24]: https://opensource.com/sites/default/files/2022-10/don%20watkins.webp
+[25]: https://opensource.com/users/don-watkins
+[26]: https://opensource.com/sites/default/files/2022-10/Katie%20Sanders.webp
+[27]: https://enterprisersproject.com/user/katie-sanders
+[28]: https://opensource.com/sites/default/files/2022-10/faye3.webp
+[29]: https://twitter.com/faye_polson
+[30]: https://opensource.com/sites/default/files/2022-10/tiffany_0.webp
+[31]: https://tiff.is/
+[32]: https://opensource.com/sites/default/files/2022-10/seth-laptop.webp
+[33]: https://opensource.com/users/seth
+[34]: https://opensource.com/sites/default/files/2022-11/april.webp
+[35]: https://opensource.com/users/weekbeforenext
+[36]: https://opensource.com/sites/default/files/2022-10/Michelle%20Fre.webp
+[37]: https://meetmichelle.online
+[38]: https://opensource.com/sites/default/files/2022-10/Dagger%20McJagger.webp
+[39]: https://opensource.com/users/daggerhart
+[40]: https://opensource.com/sites/default/files/2022-10/Ereshkigal%20laptop%20skin.webp
+[41]: https://opensource.com/sites/default/files/2022-10/psachin.webp
+[42]: https://opensource.com/users/psachin
+[43]: https://opensource.com/sites/default/files/2022-10/%20chris%20hermansen%20.webp
diff --git a/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md
new file mode 100644
index 0000000000..47d1016c92
--- /dev/null
+++ b/sources/talk/20221110.6 ⭐️⭐️ 4 key differences between Twitter and Mastodon.md
@@ -0,0 +1,81 @@
+[#]: subject: "4 key differences between Twitter and Mastodon"
+[#]: via: "https://opensource.com/article/22/11/twitter-vs-mastodon"
+[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+4 key differences between Twitter and Mastodon
+======
+
+Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Here are a few other advantages.
+
+Social media is not always sociable, and sometimes we need a sufficient impetus to change what we do and what we read. I began using Twitter as a replacement for my RSS reader in 2008, which revolutionized how I read and learned up to that point. Tweets from educators and free and open source (FOSS) advocates worldwide kept me informed and engaged in a learning network that was without equal. That's changed over the past half dozen years, and recently a change in ownership and the shaping of what I read was driven more by an algorithm than by my personal interests and choices. During a yearly meetup of correspondents and editors of Opensource.com a few years ago, [Seth Kenlon][1] suggested giving [Mastodon][2] a try. I joined [Fosstodon][3] in 2019. Fosstodon is a Mastodon instance for a community of like-minded people who enjoy free and open source software.
+
+### Mastodon vs Twitter
+
+Change is not easy. Being a creature of habit, I stayed with my old standby even though it was becoming increasingly tiresome. The threat of its sale in the spring of 2022 invited me to reconsider Fosstodon.
+
+### 1. Favorite instead of like
+
+The Mastodon interface is similar to Twitter. Rather than "liking" a post, you "favorite" a post on Mastodon by clicking the star icon under the post content.
+
+![Favorite button][4]
+
+### 2. Share a post
+
+Re-sharing on my old network is a "retweet," but on Mastodon, it's a "boost." You click the double-arrow icon under the post content to boost a post.
+
+![Boost button][5]
+
+### 3. Mastodon instances
+
+Because anyone can run a Mastodon instance, different instances not only have unique communities (like the ones that form around specific hashtags on Twitter, but Mastodon also has hashtags). Some have a unique set of rules. For instance, unlike my former social network, there were content moderation rules on Fosstodon that seemed strict initially. I made a post unrelated to FOSS software, and my post was removed. I was told it had been removed because I'd not issued a "content warning." That irked me, so I looked for another instance and found a couple more to my liking. One was [Mastodon.social][6], and the other [Scholar.social][7]. The former is a general server with no expectation about what you will post. The latter was an instance dedicated to academics. In all cases, there are well-enforced codes of conduct.
+
+Each instance has rules, and while they differ slightly in the description, they clearly spell out what is and is not acceptable behavior. Fosstodon published its [code of conduct][8], which established the rules and expectations of behavior on the site.
+
+### 4. Open source social networking
+
+If you want to run your own Mastodon instance or help develop one, you'll be happy to know that Mastodon is open source. It uses an AGPLv3 license, and its source code is available as a [Git repository][9]. The software provides a social network server that uses the [ActivityPub][10] protocol to communicate with other servers worldwide.
+
+Mastodon is not a single site on the internet but a series of sites spanning the globe and communicating with each other. This federated network is referred to as the "fediverse." Unlike other social networks, where there's a single owner of the network, Mastodon and other ActivityPub sites are owned by anyone who runs a server.
+
+From a user's perspective, this doesn't matter at first. You can sign up on any Mastodon instance and then connect to all other instances.
+
+There is power to this distributed design, though. If you encounter an instance with a community producing content you'd rather not see, you can block either a single user from that instance or the whole instance.
+
+In the past month, I've returned to Fosstodon primarily because open source is my passion. I enjoy sharing open source content on Fosstodon because the other users of Fosstodon are generally receptive to posts about free and open source software. When I have something to share that's not considered appropriate on Fosstodon, I share it on Scholar.social or Mastodon.social.
+
+Not all instances have topics they focus on, and even those that do often use their topical interests as a guideline rather than grounds for strict removal of posts. If you have a particular interest, you might be able to find a community built around that topic, and you're likely to see that you have an instant audience. Of course, you'll still always be able to communicate with users of other instances, too.
+
+### Try Mastodon
+
+Mastodon is not a corporation. All of its instances are staffed and supported by each server's contributors. Some instances make it easy to support them with Patreon or PayPal.
+
+I have found the fediverse a welcoming place that brings joy back into social networking. Have you joined Mastodon? What are your takeaways? Let us know in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/twitter-vs-mastodon
+
+作者:[Don Watkins][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/don-watkins
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/users/seth
+[2]: https://joinmastodon.org/
+[3]: https://fosstodon.org/about/
+[4]: https://opensource.com/sites/default/files/2022-11/favorite-button.webp
+[5]: https://opensource.com/sites/default/files/2022-11/boost-button.webp
+[6]: https://mastodon.social/about
+[7]: https://scholar.social/about/more
+[8]: https://hub.fosstodon.org/coc/
+[9]: https://github.com/mastodon/mastodon
+[10]: https://en.wikipedia.org/wiki/ActivityPub
diff --git a/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md
new file mode 100644
index 0000000000..afe4c238a8
--- /dev/null
+++ b/sources/talk/20221206.2 ⭐️⭐️ 'Don't be Afraid to Contribute' Mirko Brombin Talks about Vanilla OS and Other Future Projects.md
@@ -0,0 +1,155 @@
+[#]: subject: "'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects"
+[#]: via: "https://news.itsfoss.com/interview-mirko-brombin/"
+[#]: author: "Ankush Das https://news.itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+'Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects
+======
+
+A conversation with Mirko Brombin, founder of Vanilla OS and Bottles creator.
+
+!['Don't be Afraid to Contribute': Mirko Brombin Talks about Vanilla OS and Other Future Projects][1]
+
+There are many interesting personalities in the Linux and open-source world.
+
+We aim to interact with them and share their stories/thoughts with you. While we did a few interviews in 2021, we are resuming the mission to share insightful conversations with amazing folks in our open-source and Linux universe.
+
+[Mirko Brombin][2] is one such cool guy 😎 He works as a UX designer full-time, and despite doing all that, he is involved with open-source projects that we admire!
+
+If you did not know, he is the creator of **[Bottles][3]** (an app to run Windows apps/games on Linux) and **[Vanilla OS][4]**'s founder.
+
+So, I asked a couple of questions to provide details about his **projects**, his **work/life**, and some **valuable tips** for our readers who want to join the open-source community.
+
+**Q.** _**Many people think that we have more than enough distros. Why Vanilla OS?**_
+
+![vanilla os][5]
+
+**A:** It is because this one is 10x faster and safer than all the others! Just kidding. **Vanilla OS was born mainly out of a need of mine and a desire to experiment**. I have been a Linux user for many years and have tried many distributions. They always suffered from the lack of certain features and concepts that led me to compulsively distro-hop. In recent years I have been a happy user of Silverblue, a distribution that made me explore the benefits of immutable systems.
+
+Silverblue is a fantastic project. It's one of the most solid distributions I have tried. However, it does not fully meet my needs. Maintaining Bottles often requires me to play games for testing purposes, and having an NVIDIA GPU, I have had quite a few problems with Silverblue, from driver installation to constant driver breakage and a distinctly noticeable drop in performance. Let's be clear, **NVIDIA is a problem in every distribution** but there is much that can be done to improve the quality of life for users using these GPUs, such as guiding driver installation, pre-configuring the setup for Optimus (Integrated+Dedicated) laptops, and allowing PRIME profile switching in an easy way. To date, only Ubuntu and derivatives have been pre-configured for this workflow.
+
+![nvidia illustration][6]
+
+My problem with Ubuntu-based distributions is that they do not offer an experience compatible with my needs either. **I am a devoted GNOME user**, I fully endorse the user experience envisioned by GNOME, and I am completely addicted to it.
+
+I understand the need for **Ubuntu, Pop!_OS,** and others to provide their own vision and branding, but these modifications are deal breakers for me and probably for many users. GNOME designers and developers are professionals that have been working in this industry for countless years, perfecting their vision, but many distributions change the workflow in ways that I cannot use my systems effectively.
+
+**Another problem with Ubuntu is that it does not offer immutability and atomicity of transactions**, two mechanisms that make the system solid and safe from easy breakage, for example, when an update goes wrong.
+
+![solving ubuntu problems][7]
+
+Adding up all those shortcomings and my passion for throwing myself into increasingly complex projects, I decided to create **Vanilla OS, an Ubuntu-based distribution, with a stock GNOME desktop** and all the merits of immutability and atomicity.
+
+**Q.****_Some of your projects, like Bottles and the upcoming Vanilla OS, are immensely popular. Do you have other project ideas for the future?_****A:** I have a long list of projects that I would like to accomplish in the future, but my next goal is to develop and contribute to a project idealized by @[TheEvilSkeleton][8]: a **utility to configure MangoHud, an overlay that displays useful information about game FPS, temperatures, CPU/GPU load and more**.
+
+With this new project, we plan to integrate it in Bottles and provide a graphical interface to customize MangoHud parameters. Similarly, we did the same thing for vkBasalt with vkbasalt-cli.
+
+**_Q. There will always be a new distro, even if some of us would rather not see more. When I tried out Vanilla OS, it did not feel like “just another distro” but with a unique angle to it._****_So, what’s your near future plan with Vanilla OS?_****A:** My future plan for Vanilla OS is **to make the project sustainable so that I can work on it full-time**. This is more of a dream in my drawer but, who knows.
+
+I have many ideas that I'll share on social media eventually. Something I can tell you now is that one of my dreams is to see Vanilla OS on multiple platforms like desktops, mobile, and tablets. I want to create an environment with an Apple-like continuity, without the scamming, as the **user experience is always the main focus for me.**
+
+Q. _**Bottles is a fantastic tool to help users run Windows software on Linux in a few clicks. Various other tools like Heroic Games Launcher have been trying to make things easy for Windows users to play their favorite games on Linux easily.**__**How do you think that’s going? Do you have any stats to share about that through Bottles?**_**A:** Heroic is a project that I admire and follow closely. I am friends with [Flavio][9] (the founder) and [Linguin][10] (one of the developers), and I know how hard the whole team is working to make the gaming experience on Linux more and more fulfilling, so **a Hooray! for Heroic**.
+
+![Heroic Games launcher][11]
+
+**Bottles** is like a son to me, I have raised him at my best, and he is giving me a lot of satisfaction. Recently I had to decrease my presence in the project to focus on others and my daily job. This has been possible thanks to a team of contributors who have joined over time, people who share the same vision of the project as I do and cherish its ideals.
+
+![bottles screenshot][12]
+
+The structure of the project is changing radically. Initially, I was the one making every decision, whereas now everything is discussed and put to a vote, trying to get a shared verdict. In this, it is like watching a son grow up and make his own decisions, aware of what I have taught him over time.
+
+**Release 2022.11.14**, is the first release entirely developed by the Bottles team. One of the best releases ever in my opinion. For this, I have to give special thanks to @**TheEvilSkeleton,** who led the release, and [noëlle][13], who made the graphics part.
+
+A small milestone I would like to share with you is the **achievement of 400,000+ downloads from Flathub.** 🎉
+
+![Bottle download stats][14]
+
+_**Q. If someone gets interested in contributing to any one of your projects. What advice would you give them? What programming language should they focus on if they want to collaborate with you?**_**A:** My advice is not to be afraid to contribute and ask questions, even if it's a "bad" question. Even if you are afraid. There is no such thing as a bad contribution. A well-written ticket is already a great way to do your part. Personally, I don't give weight to contributions, I give credit to those who have spent much more time certainly, but for me, every single contribution is a small brick that helps the project grow.
+
+**I mostly use Python and Go** for my projects but I would not make it a requirement. If a user wants to help with Vanilla OS, for example by making an application we need, well, they can use whatever language they like.
+
+![python programming][15]
+
+The only thing I would ask is to carefully consider the language and choose the one best suited for the type of project you need to create, as the choice will affect who can contribute (or not), for example, I would never choose Rust for a small tool, as Rust is not an easy language for newcomers and new contributors typically contribute to smaller projects that are written in user-friendly languages.
+
+_**Q. Other than your creations, what other project or distro would you mention as one of your favorites?**_**A:** I have many projects that I would like to mention here, but it would become a season of Vikings. Among all of them, the one that, in my opinion, deserves mention is **Distrobox, a project made by** [Luca di Maio][16]**, a friend of mine as well as an active member in the making of the Vanilla OS project.**
+
+Distrobox is a tool that installs Linux distributions inside managed containers integrated with the system, allowing, for example, to install and run software in a Fedora container while running Ubuntu, integrating it seamlessly with the host system.
+
+Distrobox is also employed by Apx, the Vanilla OS package manager. Every package installed through Apx resides in the Distrobox container, keeping the system safe from any discrepancies or breaks from a possible update gone wrong.
+
+_**Q. How do you keep up with all the projects you’re working on? What’s your mantra on productivity or time management?**_**A:** Contrary to what you may think, I don't work much on my projects, my daily job takes a lot of my time, and I have many other passions to cultivate.
+
+![productivity][17]
+
+I don't have any particular time management or organization; normally I try to stay focused on my projects by reasoning about them in my spare time and taking notes, so as soon as I get back to work on a project, I already have a clear idea of what I need to do.
+
+_**Q. You are also a GNOME Foundation member. What’s it like being a GNOME foundation member? Can anyone apply to be a part of it?**_**A:** I am still a very recent member and I don't have much to say, except that it is wonderful to be inside the project that I absolutely love and respect the most, as it has changed the way I use my PC, with a workflow designed to be free of distractions and where everything is intuitive and immediate; in short, where the user experience is always first.
+
+Anyone can apply, as long as they are an active person with demonstrable contributions.
+
+**_Q. As a GNOME foundation member, what do you think GNOME should improve compared to the KDE Plasma side?_****A:** I don't want to sound brash but I think **GNOME is currently complete as it is**. I've seen it grow since the beginning and I know how many steps have been taken since GNOME 2 and 3, I'm sure many more are to come but **right now I can't find a lack in comparison to KDE**.
+
+![gnome user][18]
+
+I know at this point someone is saying "_Eh but KDE has themes and a setting for this and that._" and I agree, it is a fact that KDE is the most customizable desktop environment of all, but you have to understand that GNOME doesn't implement all these settings because the whole thing is designed to provide a single, but efficient, user experience. Providing a setting to change every single aspect of it is more of an invitation for the user to do so, feeding bug reports for a different experience than designed.
+
+It is important to understand that more customization inevitably leads to more discrepancies and bugs, as all components of the system are meant to work in a certain way, and altering them takes you out of the testing environment that is used in GNOME.
+
+**_Q. What do you like to do in your spare time?_**
+
+![world history and podcast][19]
+
+**A:** In my free time, I love to **write recipes** or listen to the **world's history podcasts**.
+
+10-yo Mirko would find me boring, haha 😁
+
+_**Q. A message to our readers (to inspire them/add a tip that you always wanted to share, etc)**_
+
+![dialogue is good][20]
+
+**A:** Don't be afraid to contribute or speak. I often find that someone has a great idea to solve a problem and has never told anyone because of the fear that it was wrong. Let's be clear that a contribution is something to improve and is therefore always welcome.
+
+Certainly, not all ideas are feasible or correct but dialogue is a great way to find out.
+
+Don't be shy; come on!
+
+> 💭 Share your thoughts on the interview and if you want us to talk to your favorite open-source/Linux creator, feel free to mention them in the comments.
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/interview-mirko-brombin/
+
+作者:[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/w2000/2022/12/interview-with-mirko-brombin.png
+[2]: https://mirko.pm
+[3]: https://usebottles.com
+[4]: https://vanillaos.org
+[5]: https://news.itsfoss.com/content/images/2022/12/vanillaos.jpg
+[6]: https://news.itsfoss.com/content/images/2022/12/nvidia.png
+[7]: https://news.itsfoss.com/content/images/2022/12/ubuntu.png
+[8]: https://github.com/TheEvilSkeleton
+[9]: https://github.com/flavioislima
+[10]: https://github.com/imLinguin
+[11]: https://news.itsfoss.com/content/images/2022/12/Heroic_2.jpg
+[12]: https://news.itsfoss.com/content/images/2022/12/bottle-creation-dark.png
+[13]: https://github.com/jannuary
+[14]: https://news.itsfoss.com/content/images/2022/12/download-milestone.png
+[15]: https://news.itsfoss.com/content/images/2022/12/python.png
+[16]: https://github.com/89luca89
+[17]: https://news.itsfoss.com/content/images/2022/12/productivity.png
+[18]: https://news.itsfoss.com/content/images/2022/12/gnome-1.png
+[19]: https://news.itsfoss.com/content/images/2022/12/history-1.png
+[20]: https://news.itsfoss.com/content/images/2022/12/dialogue.png
diff --git a/sources/tech/20210103 How open principles will impact the future of work.md b/sources/tech/20210103 How open principles will impact the future of work.md
deleted file mode 100644
index 9217b08384..0000000000
--- a/sources/tech/20210103 How open principles will impact the future of work.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (How open principles will impact the future of work)
-[#]: via: (https://opensource.com/open-organization/21/1/open-is-future-of-work)
-[#]: author: (Ron McFarland https://opensource.com/users/ron-mcfarland)
-
-How open principles will impact the future of work
-======
-In many ways, the nature of our work defines us. So how do we prepare
-for a future when the nature of work will change dramatically?
-![Working on a team, busy worklife][1]
-
-If we define "work" as any contribution that receives any kind of reward, then work is—and always has been—one of the major factors that define who we are. It is a major aspect of our lives. Throughout our work (whatever that may be for us), we meet friends, identify sources of intellectual stimulation and emotional fulfillment, grow, and feel at our most creative and innovative. To our families, friends, communities and societies, work is extremely important. We should not take work—or its role in our lives—lightly or for granted.
-
-So if the [nature of work is going to change][2] in the future, it might mean that something key to our very sense of _self_ is going to change. And we should plan for those changes very seriously.
-
-Consider the transformation of work throughout the Industrial Revolution (between the 1700s and 1800s). It drove many people from rural farm work into factories in the cities, fundamentally altering their lifestyles. It required new, more specialized skills (rather than the kind of artisanship common in rural economies). As we examine our own personal work environments in the decades to come, we'll see a potential reversal of the trends we saw during the Industrial era: from hierarchy and interchangeable general skills and activities to the reinstatement of horizontal collaboration and more specialized mastery (back to artisanship).
-
-This time, though, these changes come on a global scale rather than a local one, and the speed of change is far more accelerated.
-
-And in this new work environment, [open organization principles][3] will play a vital role.
-
-In this series, I'll review [_The Shift_, a book by Professor Lynda Gratton][4]—a book that, while written in 2014 from data assembled in 2010, still rings true today (and will in the future, too). In this book, Gratton projects how work will change around 2025 and 2050. This is vital information, as it will help us make sound choices when preparing for and developing our careers moving forward.
-
-Gratton explains predominant forces influencing the future of work in this timeframe. In this article series, I'll summarize them—and explain how open organization principles are involved in each.
-
-### Five factors influencing the future of work
-
-Driving the Industrial Revolution were inventions that used coal and steam power. Today, [Gratton][5] says, five subtle forces are causing a similar "shift":
-
- 1. increased global activities
- 2. rapid advances in technology
- 3. human longevity and demographics
- 4. societal and family structural changes
- 5. the need for a low-carbon economy
-
-
-
-In short: Computers will become faster. Materials will become stronger. Medicines will cure more diseases allowing longer human life. To varying degrees, these will all impact on how we work in the future. Here are a few notes on each.
-
-#### 1\. Globalization
-
-In a previous article, "[Globalization: A history of openness][6]," I discussed multiple forces and factors related to globalization, one of them being trade. Between 1950 and 2010 the volume of global trade has increased by 60 times, while at the same time transportation costs have fallen. And at the same time, developing countries are seeing not only increased trade but new innovations. I also discussed globalization in early history as part of my article "[Open organizations through the ages][7]." And I explored the importance of global governance—both now and into the future—in my article ["What would a global open organization look like?"][8] According to Gratton, globalization will have an undeniable and unavoidable impact on the future work.
-
-If the nature of work is going to change in the future, it might mean that something key to our very sense of self is going to change. And we should plan for those changes very seriously.
-
-#### 2\. Technology
-
-The cost of computing has been coming down at an alarming rate. And it will continue to decrease. This will help connect billions of people that have been mostly left out of the greater global economy until now. They will start to both enter the workforce and become more influential consumers. At the same time, computers and advanced automation [will replace jobs performed by humans][9] in the future. This all will influence work shifts in the future.
-
-#### 3\. Demographics and longevity
-
-Gratton also notes the impacts that various generations will have on the future of work, particularly in the United States. Younger generations will play a major role in the future, as their attitudes are different from earlier generations. Moreover, birth rates in various global regions will have an impact on prosperity. There will be more migration, as some regions' populations will decline while others increase. They will move to what Professor Gratton calls "creative clusters." And finally, Gratton argues, the life expectancy globally will change. By 2025, 10% of the world's population will be over the age of 65. These people will more than likely want to continue to work for sustained income, continued mental stimulation, physical activity, connection to others, and a source of meaning and purpose in their lives. Also, consider that many children today will more than likely live longer than 100 years. If they retired at 65 years old, they would have 35 years to do very little. With that thought in mind, having several career changes and being active in volunteer and community service programs in the future will expand greatly.
-
-#### 4\. Society
-
-In addition to the generational changes, Gratton notes several important social changes, too. There will be changing roles of women in the workplace, she says. People will have more choices to form the life they want than ever before. And with increased productivity per person, there will be more average free time available than ever before, she writes.
-
-#### 5\. Energy resources
-
-I've talked about the expansion of resource-saving industries in a presentation I've given on "[The Resource Industrial Revolution][10]." Gratton adds valuable points to this conversation. Climate change, she notes, will gradually become a major issue, which will reduce transportation and consumption. In particular, global water supply will not be able to keep pace with demand. Water desalination projects will expand greatly (possibly powered by [Generation IV][11] distributed small modular nuclear power plants (SMR's) now being developed). Environmental catastrophes will displace people and migration will create displaced communities throughout the globe. More energy-efficient ways of living will be discovered and introduced. This will influence future jobs.
-
-### Preparing for the future
-
-These five forces will prompt fundamental changes to the way we work in the future, Gratton argues. But we need to begin preparing for that future now. In the next article of this series, I'll explain Gratton's outlook and a few scenarios for grappling with a rapidly changing future. How could a person look at those changes as career opportunities? On the other hand, what would happen if a person simply _ignored_ those changes to come? I'll review Gratton's thoughts on those questions. Also, I'll also explain how open principles can form the heart of necessary changes.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/open-organization/21/1/open-is-future-of-work
-
-作者:[Ron McFarland][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/ron-mcfarland
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/team_dev_email_chat_video_work_wfm_desk_520.png?itok=6YtME4Hj (Working on a team, busy worklife)
-[2]: https://opensource.com/open-organization/18/7/transformation-beyond-digital-2
-[3]: https://theopenorganization.org/definition/
-[4]: http://lyndagratton.com/books/the-shift/
-[5]: https://en.wikipedia.org/wiki/Lynda_Gratton
-[6]: https://opensource.com/open-organization/20/7/globalization-history-open
-[7]: https://opensource.com/open-organization/20/8/global-history-collaboration
-[8]: https://opensource.com/open-organization/20/9/global-open-organization
-[9]: https://opensource.com/open-organization/19/9/claiming-human-age-of-AI
-[10]: https://www.slideshare.net/RonMcFarland1/the-starting-of-the-third-industrial-revolution
-[11]: https://en.wikipedia.org/wiki/Generation_IV_reactor
diff --git a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md b/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md
deleted file mode 100644
index 9689098aec..0000000000
--- a/sources/tech/20210108 The Definitive Guide to Using and Customizing the Dock in Ubuntu.md
+++ /dev/null
@@ -1,245 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (The Definitive Guide to Using and Customizing the Dock in Ubuntu)
-[#]: via: (https://itsfoss.com/customize-ubuntu-dock/)
-[#]: author: (Abhishek Prakash https://itsfoss.com/author/abhishek/)
-
-The Definitive Guide to Using and Customizing the Dock in Ubuntu
-======
-
-When you log into Ubuntu, you’ll see the dock on the left side with some application icons on it. This dock (also known as launcher or sometimes as panel) allows you to quickly launch your frequently used programs.
-
-![][1]
-
-I rely heavily on the dock and I am going to share a few tips about using the dock effectively and customize its looks and position.
-
-You’ll learn the following in this tutorial:
-
- * Basic usage of the dock: adding more applications and using shortcuts for launching applications.
- * Customize the looks of the dock: Change the icon size, icon positions.
- * Change the position: for single screen and multi-monitor setup
- * Hide mounted disk from the dock
- * Auto-hide or disable the dock
- * Possibility of additional dock customization with dconf-editor
- * Replace dock with other docking applications
-
-
-
-I’ll use the terms dock, panel and launcher in the tutorial. All of them refer to the same thing.
-
-### Using the Ubuntu dock: Absolute basic that you must know
-
-If you are new to Ubuntu, you should know a few things about using the dock. You’ll eventually discover these dock features, I’ll just speed up the discovery process for you.
-
-#### Add new applications to the dock (or remove them)
-
-The steps are simple. Search for the application from the menu and run it.
-
-The running application appears in the dock, below all other icons. Right click on it and select the “Add to Favorites” option. This will lock the icon to the dock.
-
-![Right-click on the icon and select “Add to Favorites”][2]
-
-Removing an app icon from the doc is even easier. You don’t even need to run the application. Simply right click on it and select “Remove From Favorites”.
-
-![Right-click on the icon and select “Remove from Favorites”][3]
-
-#### Reorder icon position
-
-By default, new application icons are added after all the other icons on the launcher. You don’t have to live with it as it is.
-
-To change the order of the icons, you just need to drag and drop to the other position of your choice. No need to “lock it” or any additional effort. It stays on that location until you make some changes again.
-
-![Reorder Icons On Ubuntu Docks][4]
-
-#### Right click to get additional options for some apps
-
-Left-clicking on an icon launches the application or bring it to focus if the application is already running.
-
-Right-clicking the icon gives you additional options. Different applications will have different options.
-
-For browsers, you can open a new private window or preview all the running windows.
-
-![][5]
-
-For file manager, you can go to all the bookmarked directories or preview opened windows.
-
-You can, of course, quit the application. Most applications will quit while some applications like Telegram will be minimized to the system tray.
-
-#### Use keyboard shortcut to launch applications quickly [Not many people know about this one]
-
-The dock allows you to launch an application in a single mouse click. But if you are like me, you can save that mouse click with a keyboard shortcut.
-
-Using the Super/Window key and a number key will launch the application on that position.
-
-![][6]
-
-If the application is already running, it is brought to focus, i.e. it appears in front of all the other running application windows.
-
-Since it is position-based, you should make sure that you don’t reorder the icons all the time. Personally, I keep Firefox at position 1, file manager at 2 and the alternate browser at 3 and so on until number 9. This way, I quickly launch the file manager with Super+2.
-
-I find it easier specially because I have a three screen setup and moving the mouse to the launcher on the first screen is a bit too much of trouble. You can enable or disable the dock on additional screen. I’ll show that to you later in this tutorial.
-
-### Change the position of the dock
-
-By default, the dock is located on the left side of your screen. Some people like the launcher at the bottom, in a more traditional way.
-
-Ubuntu allows you to change the position of the dock. You can move it to the bottom or to the right side or on the top. I am not sure many people actually put the dock on the top or the right side, so moving the dock to the top is not an option here.
-
-![Change Launcher Position][7]
-
-To change the dock position, go to Settings->Appearance. You should see some options under Dock section. You need to change the “Position on screen” settings here.
-
-![Go to Settings->Appearance->Dock][8]
-
-#### Position of dock on a multiple monitor setup
-
-If you have multiple screens attached to your system, you can choose whether to display the dock on all screens or one of chosen screens.
-
-![Ubuntu Dock Settings Multimonitor][9]
-
-Personally, I display the dock on my laptop screen only which is my main screen. This gives me maximum space on the additional two screens.
-
-### Change the appearance of the dock
-
-Let’s see some more dock customization options in Ubuntu.
-
-Imagine you added too many applications to the dock or have too many applications open. It will fill up the space and you’ll have to scroll to the top and bottom to go to the applications at end points.
-
-What you can do here is to change the icon size and the dock will now accommodate more icons. Don’t make it too small, though.
-
-![][10]
-
-To do that, go to Settings-> Appearance and change it by moving the slider under Icon size. The default icons size is 48 pixels.
-
-![Changing Icon Size In Ubuntu Dock][11]
-
-#### Hide mounted disks from the launcher
-
-If you plug in a USB disk or SD Card, it is mounted to the system, and an icon appear in the launcher immediately. This is helpful because you can right click on it and select safely remove drive option.
-
-![Mounted disks are displayed In the Ubuntu Dock][12]
-
-If you somehow find it troublesome, you can turn this feature off. Don’t worry, you can still access the mounted drives from the file manager.
-
-Open a terminal and use the following command:
-
-```
-gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
-```
-
-The changes take into effect immediately. You won’t be bothered with mounted disk being displayed in the launcher.
-
-If you want the default behavior back, use this command:
-
-```
-gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
-```
-
-### Change the behavior of dock
-
-Let’s customize the default behavior of the dock and make it more suitable to your needs.
-
-#### Enable minimize on click
-
-If you click on the icon of a running application, its window will be brought to focus. That’s fine. However, if you click on it, nothing happens. By default, clicking on the same icon won’t minimize the application.
-
-Well, this is the behavior in modern desktop, but I don’t like it. I prefer that the application is minimized when I click on its icon for the second time.
-
-If you are like me, you may want to [enable click to minimize option in Ubuntu][13]:
-
-To do that, open a terminal and enter the following command:
-
-```
-gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
-```
-
-#### Auto-hide Ubuntu dock and get more screen space
-
-If you want to utilize the maximum screen space, you can enable auto-hide option for the dock in Ubuntu.
-
-This will hide the dock, and you’ll get the entire screen. The dock is still accessible, though. Move your cursor to the location of the dock where it used to be, and it will appear again. When the dock reappears, it is overlaid on the running application window. And that’s a good thing otherwise too many elements would start moving on the screen.
-
-The auto-hide option is available in Settings-> Appearance and under Dock section. Just toggle it.
-
-![Auto-hide the dock][14]
-
-If you don’t like this behavior, you can enable it again the same way.
-
-#### Disable Ubuntu dock
-
-Auto-hide option is good enough for many people, but some users simply don’t like the dock. If you are one of those users, you also have the option to disable the Ubuntu dock entirely.
-
-Starting with Ubuntu 20.04, you have the Extensions application available at your disposal to [manage GNOME Extensions][15].
-
-![Look for Extensions app in the menu][16]
-
-With this Extensions application, you can easily disable or re-enable the dock.
-
-![Disable Ubuntu Dock][17]
-
-### Advanced dock customization with dconf-editor [Not recommended]
-
-##### Warning
-
-The dconf-editor allows you to change almost every aspect of the GNOME desktop environment. This is both good and bad because you must be careful in editing. Most of the settings can be changed on the fly, without asking for conformation. While you may reset the changes, you could still put your system in such a state that it would be difficult to put things back in order.
-
-For this reason, I advise not to play with dconf-editor, specially if you don’t like spending time in troubleshooting and fixing problems or if you are not too familiar with Linux and GNOME.
-
-The [dconf editor][18] gives you additional options to customize the dock in Ubuntu. Install it from the software center and then navigate to org > gnome > shell > extensions > dash-to-dock. You’ll find plenty of options here. I cannot even list them all here.
-
-![][19]
-
-### Replace the dock in Ubuntu
-
-There are several third-party dock applications available for Ubuntu and other Linux distributions. You can install a dock of your choice and use it.
-
-For example, you can install Plank dock from the software center and use it in similar fashion to Ubuntu dock.
-
-![Plank Dock in Ubuntu][20]
-
-Disabling Ubuntu Dock would be a better idea in this case. It won’t be wise to use multiple docks at the same time.
-
-### Conclusion
-
-This tutorial is about customizing the default dock or launcher provided in Ubuntu’s GNOME implementation. Some suggestions should work on the dock in vanilla GNOME as work well.
-
-I have shown you most of the common Ubuntu dock customization. You don’t need to go and blindly follow all of them. Read and think which one suits your need and then act upon it.
-
-Was it too trivial or did you learn something new? Would you like to see more such tutorials? I welcome your suggestions and feedback on dock customization.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/customize-ubuntu-dock/
-
-作者:[Abhishek Prakash][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://itsfoss.com/author/abhishek/
-[b]: https://github.com/lujun9972
-[1]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock.png?resize=800%2C450&ssl=1
-[2]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/add-icons-to-dock.png?resize=800%2C450&ssl=1
-[3]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/remove-icons-from-dock.png?resize=800%2C450&ssl=1
-[4]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/reorder-icons-on-ubuntu-docks.gif?resize=800%2C430&ssl=1
-[5]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/right-click-icons-ubuntu-dock.png?resize=800%2C450&ssl=1
-[6]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/keyboard-shortcut-for-ubuntu-dock.png?resize=800%2C450&ssl=1
-[7]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-launcher-position-ubuntu.png?resize=800%2C450&ssl=1
-[8]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/change-dock-position-ubuntu.png?resize=800%2C450&ssl=1
-[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/ubuntu-dock-settings-multimonitor.png?resize=800%2C450&ssl=1
-[10]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/normal-icon-size-dock.jpg?resize=1024%2C1080&ssl=1
-[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/01/changing-icon-size-in-ubuntu-dock.png?resize=800%2C450&ssl=1
-[12]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/external-mounted-disks-in-ubuntu-dock.png?resize=800%2C450&ssl=1
-[13]: https://itsfoss.com/click-to-minimize-ubuntu/
-[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/01/autohide-dock-ubuntu.png?resize=800%2C450&ssl=1
-[15]: https://itsfoss.com/gnome-shell-extensions/
-[16]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2020/06/GNOME-extensions-app-ubuntu.jpg?resize=800%2C240&ssl=1
-[17]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/disable-dock-ubuntu.png?resize=800%2C450&ssl=1
-[18]: https://wiki.gnome.org/Apps/DconfEditor
-[19]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/dconf-editor-dock.png?resize=592%2C599&ssl=1
-[20]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/01/plank-dock-Ubuntu.jpg?resize=800%2C382&ssl=1
diff --git a/sources/tech/20210202 Convert audio files with this versatile Linux command.md b/sources/tech/20210202 Convert audio files with this versatile Linux command.md
deleted file mode 100644
index 683907b70f..0000000000
--- a/sources/tech/20210202 Convert audio files with this versatile Linux command.md
+++ /dev/null
@@ -1,240 +0,0 @@
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-[#]: subject: (Convert audio files with this versatile Linux command)
-[#]: via: (https://opensource.com/article/20/2/linux-sox)
-[#]: author: (Klaatu https://opensource.com/users/klaatu)
-
-Convert audio files with this versatile Linux command
-======
-SoX Sound Exchange can even add effects to your audio files.
-![HiFi vintage stereo][1]
-
-I work with media, and when you work with any kind of media, you learn pretty quickly that standardization is a valuable tool. Just as you wouldn't try to add a fraction to a decimal without converting one or the other, I've learned that it's not ideal to combine media of differing formats. Most hobbyist-level applications make the conversion process invisible to the user as a convenience. Flexible software aimed at users needing control over the fine details of their assets, however, often leave it up to you to convert your media to your desired format in advance. I have a few favorite tools for conversion, and one of those is the so-called _Swiss army knife of sound_, [SoX][2].
-
-### Installing
-
-On Linux or BSD, you can install the **sox** command (and some helpful symlinks) from your software repository or ports tree.
-
-You can also install SoX from its home on [Sourceforge.net][3]. It doesn't release often, but its codebase tends to be stable, so if you want the latest features (such as Opus support), it's easy and safe to build.
-
-SoX provides primarily the **sox** command, but installation also creates a few useful symlinks: **play**, **rec**, and **soxi**.
-
-### Getting information about files with SoX
-
-SoX reads and rewrites audio data. Whether it stores the rewritten audio data is up to you. There are use cases in which you don't need to store the converted data, for instance, when you're sending the output directly to your speakers for playback. Before doing any conversion, however, it's usually a good idea to determine exactly what you're dealing with in the first place.
-
-To gather information about an audio file, use the **soxi** command. This is a symlink to **sox --info**.
-
-
-```
-$ soxi countdown.mp3
-Input File : '/home/tux/countdown.mp3'
-Channels : 1
-Sample Rate : 44100
-Precision : 16-bit
-Duration : 00:00:11.21 = 494185 samples...
-File Size : 179k
-Bit Rate : 128k
-Sample Encoding: MPEG audio (layer I, II or III)
-```
-
-This output gives you a good idea of what codec the audio file is encoded in, the file length, file size, sample rate, and the number of channels. Some of these you might _think_ you already know, but I never trust assumptions when media is brought to me by a client. Verify media attributes with **soxi**.
-
-### Converting files
-
-In this example, the audio of a game show countdown has been delivered as an MP3 file. While nearly all editing applications accept compressed audio, none of them actually edit the compressed data. Conversion is happening somewhere, whether it's a secret background task or a prompt for you to save a copy. I generally prefer to do the conversion myself, in advance. This way, I can control what format I'm using. I can do lots of media in batches overnight instead of wasting valuable production time waiting for an editing application to churn through them on demand.
-
-The **sox** command is meant for converting audio files. There are a few stages in the **sox** pipeline:
-
- * input
- * combine
- * effects
- * output
-
-
-
-In command syntax, the effects step is, confusingly, written _last_. That means the pipeline is composed this way:
-
-
-```
-`input → combine → output → effects`
-```
-
-### Encoding
-
-The simplest conversion command involves only an input file and an output file. Here's the command to convert an MP3 file to a lossless FLAC file:
-
-
-```
-$ sox countdown.mp3 output.flac
-$ soxi output.flac
-
-Input File : 'output.flac'
-Channels : 1
-Sample Rate : 44100
-Precision : 16-bit
-Duration : 00:00:11.18 = 493056 samples...
-File Size : 545k
-Bit Rate : 390k
-Sample Encoding: 16-bit FLAC
-Comment : 'Comment=Processed by SoX'
-```
-
-#### Effects
-
-The effects chain is specified at the end of a command. It can alter audio prior to sending the data to its final destination. For instance, sometimes audio that's too loud can cause problems during conversion:
-
-
-```
-$ sox bad.wav bad.ogg
-sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume?
-```
-
-Applying a **gain** effect can often solve this problem:
-
-
-```
-`$ sox bad.wav bad.ogg gain -1`
-```
-
-#### Fade
-
-Another useful effect is **fade**. This effect lets you define the shape of a fade-in or fade-out, along with how many seconds you want the fade to span.
-
-Here's an example of a six-second fade-in using an inverted parabola:
-
-
-```
-`$ sox intro.ogg intro.flac fade p 6`
-```
-
-This applies a three-second fade-in to the head of the audio and a fade-out starting at the eight-second mark (the intro music is only 11 seconds, so the fade-out is also three-seconds in this case):
-
-
-```
-`$ sox intro.ogg intro.flac fade p 3 8`
-```
-
-The different kinds of fades (sine, linear, inverted parabola, and so on), as well as the options **fade** offers (fade-in, fade-out), are listed in the **sox** man page.
-
-#### Effect syntax
-
-Each effect plugin has its own syntax, so refer to the man page for details on how to invoke each one.
-
-Effects can be daisy-chained in one command, at least to the extent that you want to combine them. In other words, there's no syntax to apply a **flanger** effect only during a six-second fade-out. For something that precise, you need a graphical sound wave editor or a digital audio workstation such as [LMMS][4] or [Rosegarden][5]. However, if you just have effects that you want to apply once, you can list them together in the same command.
-
-This command applies a -1 **gain** effect, a tempo **stretch** of 1.35, and a **fade-out**:
-
-
-```
-$ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6
-$ soxi output.flac
-
-Input File : 'output.flac'
-Channels : 1
-Sample Rate : 44100
-Precision : 16-bit
-Duration : 00:00:15.10 = 665808 samples...
-File Size : 712k
-Bit Rate : 377k
-Sample Encoding: 16-bit FLAC
-Comment : 'Comment=Processed by SoX'
-```
-
-### Combining audio
-
-SoX can also combine audio files, either by concatenating them or by mixing them.
-
-To join (or _concatenate_) files into one, provide more than one input file in your command:
-
-
-```
-`$ sox countdown.mp3 intro.ogg output.flac`
-```
-
-In this example, **output.flac** now contains **countdown** audio, followed immediately by **intro** music.
-
-If you want the two tracks to play over one another at the same time, though, you can use the **\--combine mix** option:
-
-
-```
-`$ sox --combine mix countdown.mp3 intro.ogg output.flac`
-```
-
-Imagine, however, that the two input files differed in more than just their codecs. It's not uncommon for vocal tracks to be recorded in mono (one channel), but for music to be recorded in at least stereo (two channels). SoX won't default to a solution, so you have to standardize the format of the two files yourself first.
-
-#### Altering audio files
-
-Options related to the file name listed _after_ it. For instance, the **\--channels** option in this command applies _only_ to **input.wav** and NOT to **example.ogg** or **output.flac**:
-
-
-```
-`$ sox --channels 2 input.wav example.ogg output.flac`
-```
-
-This means that the position of an option is very significant in SoX. Should you specify an option at the start of your command, you're essentially only overriding what SoX gleans from the input files on its own. Options placed immediately before the _output_ file, however, determine how SoX writes the audio data.
-
-To solve the previous problem of incompatible channels, you can first standardize your inputs, and then mix:
-
-
-```
-$ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1
-$ soxi countdown-stereo.flac
-
-Input File : 'countdown-stereo.flac'
-Channels : 2
-Sample Rate : 44100
-Precision : 16-bit
-Duration : 00:00:11.18 = 493056 samples...
-File Size : 545k
-Bit Rate : 390k
-Sample Encoding: 16-bit FLAC
-Comment : 'Comment=Processed by SoX'
-
-$ sox --combine mix \
-countdown-stereo.flac \
-intro.ogg \
-output.flac
-```
-
-SoX absolutely requires multiple commands for complex actions, so it's normal to create several temporary and intermediate files as needed.
-
-### Multichannel audio
-
-Not all audio is constrained to one or two channels, of course. If you want to combine several audio channels into one file, you can do that with SoX and the **\--combine merge** option:
-
-
-```
-$ sox --combine merge countdown.mp3 intro.ogg output.flac
-$ soxi output.flac
-
-Input File : 'output.flac'
-Channels : 3
-[...]
-```
-
-### Easy audio manipulation
-
-It might seem strange to work with audio using no visual interface, and for some tasks, SoX definitely isn't the best tool. However, for many tasks, SoX provides an easy and lightweight toolkit. SoX is a simple command with powerful potential. With it, you can convert audio, manipulate channels and waveforms, and even generate your own sounds. This article has only provided a brief overview of its capabilities, so go read its man page or [online documentation][2] and then see what you can create.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/20/2/linux-sox
-
-作者:[Klaatu][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/klaatu
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/hi-fi-stereo-vintage.png?itok=KYY3YQwE (HiFi vintage stereo)
-[2]: http://sox.sourceforge.net/sox.html
-[3]: http://sox.sourceforge.net
-[4]: https://opensource.com/life/16/2/linux-multimedia-studio
-[5]: https://opensource.com/article/18/3/make-sweet-music-digital-audio-workstation-rosegarden
diff --git a/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md b/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md
index ee23f126fe..2a9a7650f4 100644
--- a/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md
+++ b/sources/tech/20210307 How to Install Nvidia Drivers on Linux Mint -Beginner-s Guide.md
@@ -2,7 +2,7 @@
[#]: via: (https://itsfoss.com/nvidia-linux-mint/)
[#]: author: (Ankush Das https://itsfoss.com/author/ankush/)
[#]: collector: (lujun9972)
-[#]: translator: (hwlife)
+[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/tech/20210330 A DevOps guide to documentation.md b/sources/tech/20210330 A DevOps guide to documentation.md
deleted file mode 100644
index 4f9defbb3b..0000000000
--- a/sources/tech/20210330 A DevOps guide to documentation.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: subject: (A DevOps guide to documentation)
-[#]: via: (https://opensource.com/article/21/3/devops-documentation)
-[#]: author: (Will Kelly https://opensource.com/users/willkelly)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-A DevOps guide to documentation
-======
-Bring your documentation writing into the DevOps lifecycle.
-![Typewriter with hands][1]
-
-DevOps is challenging technical documentation norms like at no other time in IT history. From automation to increased delivery velocity to dismantling the waterfall software development lifecycle model, these all spell the need for making dramatic changes to business and the philosophy of technical documentation.
-
-Here are some ways DevOps is influencing technical documentation.
-
-### The technical writer's changing role
-
-The technical writer's role must adapt to DevOps. The good news is that many technical writers are already embedded in development teams, and they may have a leg up by already having collaborative relationships and growing knowledge of the product.
-
-But you have some pivoting to do if your technical writers are used to working in siloes and relying on drafts written by subject matter experts as the basis for documentation.
-
-Make the investments to ensure your documentation and other project-related content development efforts gain the tools, structure, and support they require. Start by changing your [technical writer hiring practices][2]. Documentation at the [speed of DevOps][3] requires rethinking your content strategy and breaking down longstanding silos between your DevOps team and the technical writer assigned to support the project.
-
-DevOps also causes development teams to break away from the rigors of traditional documentation practices. Foremost, documentation's [definition of done][4] must change. Some corporate cultures make the technical writer a passive participant in software development. DevOps makes new demands—as the DevOps cultural transformation goes, so does the technical writer's role. Writers will need (and must adjust to) the transparency DevOps offers. They must integrate into DevOps teams. Depending on how an organization casts the role, bringing the technical writer into the team may present skillset challenges.
-
-### Documentation standards, methodologies, and specifications
-
-While DevOps has yet to influence technical documentation itself, the open source community has stepped up to help with application programming interface (API) documentation that's finding use among DevOps teams in enterprises of all sizes.
-
-Open source specifications and tools for documenting APIs are an exciting area to watch. I'd like to think it is due to the influence of [Google Season of Docs][5], which gives open source software projects access to professional technical writing talent to tackle their most critical documentation projects.
-
-Open source APIs are available and need to become part of the DevOps documentation discussion. The importance of cloud-native application integration requirements is on the rise. The [OpenAPI specification][6]—an open standard for defining and documenting an API—is a good resource for API documentation in DevOps environments. However, a significant criticism is that the specification can make documentation time-consuming to create and keep current.
-
-There were brief attempts to create a [Continuous Documentation][7] methodology. There was also a movement to create a [DocOps][8] Framework that came out of CA (now Broadcom). Despite its initial promise, DocOps never caught on as an industry movement.
-
-The current state of DevOps documentation standards means your DevOps teams (including your technical writer) need to begin creating documentation at the earliest stages of a project. You do this by adding documentation as both an agile story and (just as important) as a management expectation; you enforce it by tying it to annual performance reviews.
-
-### Documentation tools
-
-DevOps documentation authoring should occur online in a format or a platform accessible to all team members. MediaWiki, DokuWiki, TikiWiki, and other [open source wikis][9] offer DevOps teams a central repository for authoring and maintaining documentation.
-
-Let teams choose their wiki just as you let them choose their other continuous integration/continuous development (CI/CD) toolchains. Part of the power of open source wikis is their extensibility. For example, DokuWiki includes a range of extensions you can install to create an authoring platform that meets your DevOps team's authoring requirements.
-
-If you're ambitious enough to bolster your team's authoring and collaboration capabilities, [Nextcloud][10] (an open source cloud collaboration suite) is an option for putting your DevOps teams online and giving them the tools they need to author documentation.
-
-### DevOps best practices
-
-Documentation also plays a role in DevOps transformation. You're going to want to document the best practices that help your organization realize efficiency and process gains from DevOps. This information is too important to communicate only by word of mouth across your DevOps teams. Documentation is a unifying force if your organization has multiple DevOps teams; it promotes standardization of best practices and sets you up to capture and benchmark metrics for code quality.
-
-Often it's developers who shoulder the work of documenting DevOps practices. Even if their organizations have technical writers, they might work across development teams. Thus, it's important that developers and sysadmins can capture, document, and communicate their best practices. Here are some tips to get that effort going in the right direction:
-
- * Invest the time upfront to create a standard template for your DevOps best practices. Don't fall into the trap of copying a template you find online. Interview your stakeholders and teams to create a template that meets your team's needs.
- * Look for ways to be creative with information gathering, such as recording your team meetings and using chat system logs to serve as a foundation for your documentation.
- * Establish a wiki for publishing your best practices. Use a wiki that lets you maintain an audit trail of edits and updates. Such a platform sets your teams up to update and maintain best practices as they change.
-
-
-
-It's smart to document dependencies as you build out your CI/CD toolchains. Such an effort pays off when you onboard new team members. It's also a little bit of insurance when a team member forgets something.
-
-Finally, automation is enticing to DevOps stakeholders and practitioners alike. It's all fun and games until automation breaks. Having documentation for automation run books, admin guides, and other things in place (and up to date) means your staff can get automation working again regardless of when it breaks down.
-
-### Final thoughts
-
-DevOps is a net positive for technical documentation. It pulls content development into the DevOps lifecycle and breaks down the siloes between developers and technical writers within the organizational culture. Without the luxury of a technical writer, teams get the tools to accelerate their document authoring's velocity to match the speed of DevOps.
-
-What is your organization doing to bring documentation into the DevOps lifecycle? Please share your experience in the comments.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/3/devops-documentation
-
-作者:[Will Kelly][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/willkelly
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/typewriter-hands.jpg?itok=oPugBzgv (Typewriter with hands)
-[2]: https://opensource.com/article/19/11/hiring-technical-writers-devops
-[3]: https://searchitoperations.techtarget.com/opinion/Make-DevOps-documentation-an-integral-part-of-your-strategy?_ga=2.73253915.980148481.1610758264-908287796.1564772842
-[4]: https://www.agilealliance.org/glossary/definition-of-done
-[5]: https://developers.google.com/season-of-docs
-[6]: https://swagger.io/specification/
-[7]: https://devops.com/continuous-documentation
-[8]: https://www.cmswire.com/cms/information-management/the-importance-of-docops-in-the-new-era-of-business-027489.php
-[9]: https://opensource.com/article/20/7/sharepoint-alternative
-[10]: https://opensource.com/article/20/7/nextcloud
diff --git a/sources/tech/20210415 5 reasons sysadmins love systemd.md b/sources/tech/20210415 5 reasons sysadmins love systemd.md
deleted file mode 100644
index f063a55ddc..0000000000
--- a/sources/tech/20210415 5 reasons sysadmins love systemd.md
+++ /dev/null
@@ -1,204 +0,0 @@
-[#]: subject: (5 reasons sysadmins love systemd)
-[#]: via: (https://opensource.com/article/21/4/sysadmins-love-systemd)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-5 reasons sysadmins love systemd
-======
-Systemd's speed and ease make it a popular way to manage modern Linux
-systems.
-![Woman sitting in front of her laptop][1]
-
-As systems administrators know, there's a lot happening on modern computers. Applications run in the background, automated events wait to be triggered at a certain time, log files are written, status reports are delivered. Traditionally, these disparate processes have been managed and monitored with a collection of Unix tools to great effect and with great efficiency. However, modern computers are diverse, with local services running alongside containerized applications, easy access to clouds and the clusters they run on, real-time processes, and more data to process than ever.
-
-Having a unified method of managing them is an expectation for users and a useful luxury for busy sysadmins. For this nontrivial task, the system daemon, or **systemd**, was developed and quickly adopted by all major Linux distributions.
-
-Of course, systemd isn't the only way to manage a Linux system. There are many alternative init systems, including sysvinit, OpenRC, runit, s6, and even BusyBox, but systemd treats Linux as a unified data set, meant to be manipulated and queried consistently with robust tools. For a busy systems administrator and many users, the speed and ease of systemd is an important feature. Here are five reasons why.
-
-### Boot management
-
-Booting a Linux computer can be a surprisingly rare event, if you want it to be. Certainly in the server world, uptimes are often counted in _years_ rather than months or weeks. Laptops and desktops tend to be shut down and booted pretty frequently, although even these are as likely to be suspended or hibernated as they are to be shut down. Either way, the time since the most recent boot event can serve as a sort of session manager for a computer health check. It's a useful way to limit what data you look at when monitoring your system or diagnosing problems.
-
-In the likely event that you can't remember the last time you booted your computer, you can list boot sessions with systemd's logging tool, `journalctl`:
-
-
-```
-$ journalctl --list-boots
--42 7fe7c3... Fri 2020-12-04 05:13:59 - Wed 2020-12-16 16:01:23
--41 332e99... Wed 2020-12-16 20:07:39 - Fri 2020-12-18 22:08:13
-[...]
--1 e0fe5f... Mon 2021-03-29 20:47:46 - Mon 2021-03-29 21:59:29
- 0 37fbe4... Tue 2021-03-30 04:46:13 - Tue 2021-03-30 10:42:08
-```
-
-The latest boot sessions appear at the bottom of the list, so you can pipe the output to `tail` for just the latest boots.
-
-The numbers on the left (42, 41, 1, and 0 in this example) are index numbers for each boot session. In other words, to view logs for only a specific boot session, you can use its index number as reference.
-
-### Log reviews
-
-Looking at logs is an important method of extrapolating information about your system. Logs provide a history of much of the activity your computer engages in without your direct supervision. You can see when services launched, when timed jobs ran, what services are running in the background, which activities failed, and more. One of the most common initial troubleshooting steps is to review logs, which is easy to do with `journalctl`:
-
-
-```
-`$ journalctl --pager-end`
-```
-
-The `--pager-end` (or `-e` for short) option starts your view of the logs at the end of the `journalctl` output, so you must scroll up to see events that happened earlier.
-
-Systemd maintains a "catalog" of errors and messages filled with records of errors, possible solutions, pointers to support forums, and developer documentation. This can provide important context to a log event, which can otherwise be a confusing blip in a sea of messages, or worse, could go entirely unnoticed. To integrate error messages with explanatory text, you can use the `--catalog` (or `-x` for short) option:
-
-
-```
-`$ journalctl --pager-end --catalog`
-```
-
-To further limit the log output you need to wade through, you can specify which boot session you want to see logs for. Because each boot session is indexed, you can specify certain sessions with the `--boot` option and view only the logs that apply to it:
-
-
-```
-`$ journalctl --pager-end --catalog --boot 42`
-```
-
-You can also see logs for a specific systemd unit. For instance, to troubleshoot an issue with your secure shell (SSH) service, you can specify `--unit sshd` to see only the logs that apply to the `sshd` daemon:
-
-
-```
-$ journalctl --pager-end \
-\--catalog --boot 42 \
-\--unit sshd
-```
-
-### Service management
-
-The first task for systemd is to boot your computer, and it generally does that promptly, efficiently, and effectively. But the task that's never finished is service management. By design, systemd ensures that the services you want to run do indeed start and continue running during your session. This is nicely robust, because in theory even a crashed service can be restarted without your intervention.
-
-Your interface to help systemd manage services is the `systemctl` command. With it, you can view the unit files that define a service:
-
-
-```
-$ systemctl cat sshd
-# /usr/lib/systemd/system/sshd.service
-[Unit]
-Description=OpenSSH server daemon
-Documentation=man:sshd(8) man:sshd_config(5)
-After=network.target sshd-keygen.target
-Wants=sshd-keygen.target
-
-[Service]
-Type=notify
-EnvironmentFile=-/etc/crypto-policies/back-ends/opensshserver.config
-EnvironmentFile=-/etc/sysconfig/sshd
-ExecStart=/usr/sbin/sshd -D $OPTIONS $CRYPTO_POLICY
-ExecReload=/bin/kill -HUP $MAINPID
-KillMode=process
-Restart=on-failure
-RestartSec=42s
-
-[Install]
-WantedBy=multi-user.target
-```
-
-Most unit files exist in `/usr/lib/systemd/system/` but, as with many important configurations, you're encouraged to modify them with local changes. There's an interface for that, too:
-
-
-```
-`$ systemctl edit sshd`
-```
-
-You can see whether a service is currently active:
-
-
-```
-$ systemctl is-active sshd
-active
-$ systemctl is-active foo
-inactive
-```
-
-Similarly, you can see whether a service has failed with `is-failed`.
-
-Starting and stopping services is nicely intuitive:
-
-
-```
-$ systemctl stop sshd
-$ systemctl start sshd
-```
-
-And enabling a service to start at boot time is simple:
-
-
-```
-`$ systemctl enable sshd`
-```
-
-Add the `--now` option to enable a service to start at boot time or to start it for your current session.
-
-### Timers
-
-Long ago, when you wanted to automate a task on Linux, the canonical tool for the job was `cron`. There's still a place for the cron command, but there are also some compelling alternatives. For instance, the [`anacron` command][2] is a versatile, cron-like system capable of running tasks that otherwise would have been missed during downtime.
-
-Scheduled events are little more than services activated at a specific time, so systemd manages a cron-like function called [timers][3]. You can list active timers:
-
-
-```
-$ systemctl list-timers
-NEXT LEFT
-Tue 2021-03-30 12:37:54 NZDT 16min left [...]
-Wed 2021-03-31 00:00:00 NZDT 11h left [...]
-Wed 2021-03-31 06:42:02 NZDT 18h left [...]
-
-3 timers listed.
-Pass --all to see loaded but inactive timers, too.
-```
-
-You can enable a timer the same way you enable a service:
-
-
-```
-`$ systemctl enable myMonitor.timer`
-```
-
-### Targets
-
-Targets are the final major component of the systemd matrix. A target is defined by a unit file, the same as services and timers. Targets can also be started and enabled in the same way. What makes targets unique is that they group other unit files in an arbitrarily significant way. For instance, you might want to boot to a text console instead of a graphical desktop, so the `multi-user` target exists. However, the `multi-user` target is only the `graphical` target without the desktop unit files as dependencies.
-
-In short, targets are an easy way for you to collect services, timers, and even other targets together to represent an intended state for your machine.
-
-In fact, within systemd, a reboot, a power-off, or a shut-down action is just another target.
-
-You can list all available targets using the `list-unit-files` option, constraining it with the `--type` option set to `target`:
-
-
-```
-`$ systemctl list-unit-files --type target`
-```
-
-### Taking control with systemd
-
-Modern Linux uses systemd for service management and log introspection. It provides everything from personal Linux systems to enterprise servers with a modern mechanism for monitoring and easy maintenance. The more you use it, the more systemd becomes comfortably predictable and intuitive, and the more you discover how disparate parts of your system are interconnected.
-
-To get better acquainted with systemd, you must use it. And to get comfortable with using it, [download our cheat sheet][4] and refer to it often.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/4/sysadmins-love-systemd
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_4.png?itok=VGZO8CxT (Woman sitting in front of her laptop)
-[2]: https://opensource.com/article/21/2/linux-automation
-[3]: https://opensource.com/article/20/7/systemd-timers
-[4]: https://opensource.com/downloads/linux-systemd-cheat-sheet
diff --git a/sources/tech/20210426 How we built an open source design system to create new community logos.md b/sources/tech/20210426 How we built an open source design system to create new community logos.md
deleted file mode 100644
index 81089c3c74..0000000000
--- a/sources/tech/20210426 How we built an open source design system to create new community logos.md
+++ /dev/null
@@ -1,134 +0,0 @@
-[#]: subject: (How we built an open source design system to create new community logos)
-[#]: via: (https://opensource.com/article/21/4/ansible-community-logos)
-[#]: author: (Fiona Lin https://opensource.com/users/fionalin)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-How we built an open source design system to create new community logos
-======
-Learn how Ansible's new logos were developed with stakeholder input to
-ensure a consistent brand across the entire project.
-![UX design Mac computer with mobile and laptop][1]
-
-As interaction designers on Red Hat's User Experience (UX) Design and Ansible product teams, we worked for about six months to build a logo family with the Ansible community. This journey started even earlier when a project manager asked us for a "quick and easy" logo for a slide deck. After gathering a few requirements, we presented a logo to the stakeholders within a few days and without much need for iteration. A few months later, another stakeholder decided they would also benefit from having imagery for their materials, so we repeated the process.
-
-At this point, we noticed a pattern: logo resources like these no longer represented individual requests but rather a common need across the Ansible project. After completing several logo requests, we had built a makeshift series that—without conscious branding and design conventions—created the potential for visual inconsistencies across the Ansible brand. As the logo collection grew, we recognized this looming problem and the need to combat it.
-
-Our solution was to create an Ansible design system, a brand-specific resource to guide consistent logo design well into the future.
-
-### What is a design system?
-
-A design system is a collection of reusable assets and guidelines that help inform the visual language of any digital product suite. Design systems create patterns to bring separate products together and elevate brands through scalability and consistency.
-
-Especially in a large corporation with multiple products in the portfolio, scaling does not come easily without standardization as different teams contribute to each product. Design systems work as a baseline for each team to build new assets on. With a standardized look and feel, products are unified as one family across the portfolio.
-
-### Getting started building a design system
-
-After receiving a series of requests from stakeholders to create logos for the open source Ansible community, such as Ansible Builder, Ansible Runner, and Project Receptor, we decided to design a structure for our workflow and create a single source of truth to work for moving forward.
-
-First, we conducted a visual audit of the existing logos to determine what we had to work with. Ansible's original logo family consists of four main images: the Angry Spud for AWX, the Ansibull for Ansible Core/Engine, and the monitor with wings for AWX. Most of the logos were tied together with a consistent shade of red and bull imagery, but the stroke width, stroke color, line quality, and typography were vast and varied.
-
-![Original Ansible logos][2]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-The Angry Spud uses a tan outline and a hand-drawn style, while the bull is a symmetrical, geometric vector. The AWX monitor was the outlier with its thin line-art wings, blue vector rectangle, and Old English typeface (not included here, but an exception from the rest of the family, which uses a modern sans serif).
-
-### Establishing new design criteria
-
-Taking color palette, typography, and imagery into consideration, we generated a consistent composition that features the Ansibull for all core Ansible products, along with bold lines and vibrant colors.
-
-![Ansible design system][4]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-The new Ansible community logo design style guide details the color palette, typography, sizing, spacing, and logo variations for Ansible product logos.
-
-The new style guide presents a brand new, modern custom typeface based on GT America by [Grilli Type][5], an independent Swiss type foundry. We created a softer look for the typeface to match the imagery's roundedness by rounding out certain corners of each letter.
-
-We decided to curate a more lively, saturated, and universal color palette by incorporating more colors in the spectrum and basing them on primary colors. The new palette features light blue, yellow, and pink, each with a lighter highlight and darker shadow. This broader color scope allows more flexibility within the system and introduces a 3D look and feel.
-
-![New Ansible logos][6]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-We also introduced new imagery, such as the hexagons in the Receptor and AWX logos for visual continuity. Finally, we made sure each logo works on both light and dark backgrounds for maximum flexibility.
-
-### Expanding the design portfolio
-
-Once we established the core logo family, we moved onto creating badges for Ansible services, such as Ansible Demo and Ansible Workshop. To differentiate services from products, we decided to enclose service graphics in a circle that contains the name of the service in the same custom typography. The new service badges show the baby Ansibull (from the Ansible Builder logo) completing tasks related to each service, such as pointing to a whiteboard for Ansible Demo or using building tools for Ansible Workshop.
-
-![New Ansible services logos][7]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-### Using open source for design decisions
-
-The original AWX logo was influenced by rock-and-roll imagery, such as the wings and the heavy metal typeface (omitted from the image here).
-
-![Original AWX logo][8]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-Several members of the Ansible community, including the Red Hat Diversity and Inclusion group, brought to our attention that these elements resemble imagery used by hate groups.
-
-Given the social implications of the original logo's imagery, we had to work quickly with the Ansible community to design a replacement. Instead of working in a silo, as we did for the initial logos, we broadened the project's scope to carefully consider a wider range of stakeholders, including the Ansible community, Red Hat Diversity and Inclusion group, and Red Hat Legal team.
-
-We started brainstorming by reaching out to the Ansible open source community for ideas. One of the Ansible engineers, Rebeccah Hunter, contributed in the sketching phase and later became an embedded part of our design team. Part of the challenge of involving a large group of stakeholders was that we had a variety of ideas for new logo concepts, ranging from an auxiliary cable to a bowl of ramen.
-
-We sketched five community-surfaced logos, each featuring a different branded visual: a sprout, a rocket, a monitor, a bowl of ramen, and an auxiliary cable.
-
-![AWX logo concepts][9]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-After completing these initial concept sketches, we set up a virtual voting mechanism that we used throughout the iteration process. This voting system allowed us to use community feedback to narrow from five initial concepts down to three: the rocket, the bowl of ramen, and the monitor. We further iterated on these three directions and presented back, via a Slack channel dedicated to this effort, until we landed on one direction, the AWX monitor, that aligned with the community's vision.
-
-![New AWX logo][10]
-
-(Fiona Lin and Taufique Rahman, [CC BY-SA 4.0][3])
-
-With community voices as our guide, we pursued the monitor logo concept for AWX. We preserved the monitor element from the original logo while modernizing the look and feel to match our updated design system. We used a more vibrant color palette, a cleaner sans-serif typeface, and elements, including the hexagon motif, from the Project Receptor logo.
-
-By engaging with our community from the beginning of the process, we were able to design and iterate in the open with a sense of inclusiveness from all stakeholders. In the end, we felt this was the best approach for replacing a controversial logo. The final version was handed off to the Red Hat Legal team, and after approval, we replaced all current assets with this new logo.
-
-### Key takeaways
-
-Creating a set of rules and assets for a design system keeps your digital products consistent across the board, eliminates brand confusion, and enables scalability.
-
-As you explore building a design system with your own community, you may benefit from these key takeaways we learned along our path:
-
- * Scaling new logos with a design system is a much easier process than without one.
- * Juggling design options becomes less daunting when you use a polling system to validate results.
- * Directing a large audience's attention on sets of three eliminates decision fatigue and focuses community feedback.
-
-
-
-We hope this article provides insight into designing a system with an open source community and helps you recognize the benefit of developing a system early in your process. If you are creating a new design system, what questions do you have? And if you have created one, what lessons have you learned? Please share your ideas in the comments.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/4/ansible-community-logos
-
-作者:[Fiona Lin][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/fionalin
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ux-design-mac-laptop.jpg?itok=9-HKgXa9 (UX design Mac computer with mobile and laptop)
-[2]: https://opensource.com/sites/default/files/pictures/original_logos.png (Original Ansible logos)
-[3]: https://creativecommons.org/licenses/by-sa/4.0/
-[4]: https://opensource.com/sites/default/files/pictures/design_system.png (Ansible design system)
-[5]: https://www.grillitype.com/
-[6]: https://opensource.com/sites/default/files/pictures/new_logos.png (New Ansible logos)
-[7]: https://opensource.com/sites/default/files/pictures/new_service_badges.png (New Ansible services logos)
-[8]: https://opensource.com/sites/default/files/uploads/awx_original.png (Original AWX logo)
-[9]: https://opensource.com/sites/default/files/uploads/awx_concepts.png (AWX logo concepts)
-[10]: https://opensource.com/sites/default/files/uploads/awx.png (New AWX logo)
diff --git a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md b/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md
deleted file mode 100644
index b66a99ec02..0000000000
--- a/sources/tech/20210530 Complete Guide to Configuring SSH in Ubuntu.md
+++ /dev/null
@@ -1,252 +0,0 @@
-[#]: subject: (Complete Guide to Configuring SSH in Ubuntu)
-[#]: via: (https://itsfoss.com/set-up-ssh-ubuntu/)
-[#]: author: (Chris Patrick Carias Stas https://itsfoss.com/author/chris/)
-[#]: collector: (lujun9972)
-[#]: translator: (hwlife)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Complete Guide to Configuring SSH in Ubuntu
-======
-
-SSH has become the default method of accessing a remote Linux server these days.
-
-SSH stands for Secure Shell and it’s a powerful, efficient, and popular network protocol used to establish communication between two computers in a remote fashion. And let’s not forget the secure part of its name; SSH encrypts all traffic to prevent attacks like hijacking and eavesdropping while offering different authentication methods and a myriad of configuration options.
-
-In this beginner’s guide, you’ll learn:
-
- * The basic concept of SSH
- * Setting up SSH server (on the system you want to access remotely)
- * Connecting to remote server via SSH from the client machine (your personal computer)
-
-
-
-### The absolute basics of SSH
-
-Before you see any configuration process, it will be better to go through the absolute basic concept of SSH.
-
-The SSH protocol is based on server-client architecture. The “server” allows the “client” to be connected over a communication channel. This channel is encrypted and the exchange is governed by the use of public and private SSH keys.
-
-![Image credit: SSH][1]
-
-[OpenSSH][2] is one of the most popular open source tools that provides the SSH functionality on Linux, BSD and Windows.
-
-For a successful SSH set up, you need to:
-
- * Have SSH server components on the machine that acts as the server. This is provided by **openssh-server** package.
- * Have SSH client component on the machine from where you want to connect to the remote server machine. This is provided by **openssh-client** package and most Linux and BSD distributions come preinstalled with it.
-
-
-
-It is important to keep a distinction between the server and client. You might not want your personal computer to act as SSH server unless you have good reasons where you want others to connect to your system via SSH.
-
-Generally, you have a dedicated system working as the server. For example, a [Raspberry Pi running Ubuntu server][3]. You [enable SSH on the Raspberry Pi][4] so that you could control and manage the device from your main personal computer using SSH in a terminal.
-
-With that information, let’s see how you can set up a SSH server on Ubuntu.
-
-### Configuring SSH Server on Ubuntu
-
-Setting up SSH is not complicated and just needs a few steps to do it.
-
-#### Prerequisites
-
- * A user with **sudo** privileges on the server machine
- * Internet connection to download the required packages
- * At least another system in your network. It can be another computer on your LAN, a remote server via Internet, or a virtual machine hosted in your computer.
-
-
-
-_**Again, the SSH server installation should be done on the system that you want to act as server and to which you want to connect remotely via SSH.**_
-
-#### Step 1: Install required packages
-
-Let’s start by opening a terminal window to enter the necessary commands.
-
-Remember to [update your Ubuntu system][5] before installing new packages or software with to make sure that you are running the latest versions.
-
-```
-sudo apt update && sudo apt upgrade
-```
-
-The package you need to run SSH Server is provided by openssh-server component from OpenSSH:
-
-```
-sudo apt install openssh-server
-```
-
-![][6]
-
-#### Step 2: Checking the status of the server
-
-Once the downloading and installation of the package is done the SSH service should be already running, but to be sure we will check it with:
-
-```
-service ssh status
-```
-
-You may also use the systemd commands:
-
-```
-sudo systemctl status ssh
-```
-
-You should see something like this, with the word Active highlighted. Hit `q` to return to the command prompt.
-
-![][7]
-
-If in your case the service is not running you will have to activate like this:
-
-```
-sudo systemctl enable --now ssh
-```
-
-#### Step 3: Allowing SSH through the firewall
-
-Ubuntu comes with a firewall utility called [UFW][8] (UncomplicatedFirewall) which is an interface for **iptables** that in turn manages the network’s rules. If the firewall is active, it may prevent the connection to your SSH Server.
-
-To configure UFW so that it allows the wanted access, you need to run the following command:
-
-```
-sudo ufw allow ssh
-```
-
-The status of UFW can be checked running `sudo ufw status`.
-
-At this time our SSH Server is up and running, just waiting for a connection from a client.
-
-### Connecting to the remote system from your local machine
-
-Your local Linux system should already have SSH client installed. If not, you may always install it using the following command on Ubuntu:
-
-```
-sudo apt install openssh-client
-```
-
-To connect to your Ubuntu system you need to know the IP address of the computer and use the `ssh` command, like this:
-
-```
-ssh [email protected]
-```
-
-Change **username** to your actual user in the system and **address** to the IP address of your Ubuntu machine.
-
-If you don’t [know the IP address of your computer][9] you can type `ip a` in the terminal of the server and check the output. You should have something like this:
-
-![Using “ip a” to find the IP address][10]
-
-As can be seen here my IP address is **192.168.1.111**. Let’s try connecting using the **[[email protected]][11]** format.
-
-```
-ssh [email protected]
-```
-
-The first time you connect to a SSH server, it will ask for permission to add the host. Type `yes` and hit Enter to continue.
-
-![First time connecting to the server][12]
-
-Immediately SSH tells you that the host was permanently added and then asks for the password assigned to the username. Type in the password and hit Enter one more time.
-
-![Host added, now type in the password][13]
-
-And voila! You will be logged into your Ubuntu system remotely!
-
-![Connected!][14]
-
-Now you can work in your remote system’s terminal as normal.
-
-#### Closing the SSH connection
-
-To close the connection you just need to type `exit` and it will close it at once, without asking for confirmation.
-
-![Closing the connection with “exit”][15]
-
-### Stopping and Disabling SSH in Ubuntu
-
-If you want to stop SSH service you will need this command:
-
-```
-sudo systemctl stop ssh
-```
-
-This will stop the service until you restart it or until the system is rebooted. To restart it, type:
-
-```
-sudo systemctl start ssh
-```
-
-Now, if you want to disable it from starting during system boot, use this:
-
-```
-sudo systemctl disable ssh
-```
-
-This won’t stop the service from running during the current session, just from loading during startup. If you want to let it start again during system boot, type:
-
-```
-sudo systemctl enable ssh
-```
-
-#### Other SSH clients
-
-The tool `ssh` is included in most *nix systems, from Linux to macOS, but those are not the only options in existence, here are a couple of clients that can be used from other operating systems:
-
- * [PuTTY][16] is a free SSH client for Windows and it’s open source. It’s full of features and very easy to use. If you are connecting to your Ubuntu machine from a Windows station, PuTTY is a great option.
- * [JuiceSSH][17] is an amazing tool for Android users. If you are on the go and need a mobile client to connect to your Ubuntu system, I amply recommend giving JuiceSSH a go. It’s been around for almost 10 years and it’s free to use.
- * And finally, [Termius][18] is available for Linux, Windows, macOS, iOS, and Android. It has a free tier version and also several premium options. If you are running a lot of servers and working with teams sharing connections then Termius is a good option for you.
-
-
-
-#### Wrapping Up
-
-With these instructions, you can set up SSH as a server service in our Ubuntu systems to be able to connect remotely and securely to your computer in order to work with the command line and perform any required task.
-
-Our other website, Linux Handbook, has various informational articles on SSH. From here, I recommend reading the following:
-
- * [Getting started with SSH on Linux][19]
- * [Using SSH Config file to manage multiple SSH connections][20]
- * [Adding public key to SSH server for password less authentication][21]
- * [SSH hardening tips][22] to secure your SSH server
-
-
-
-If you find it overwhelming, [Linux Handbook has a premium video course that explains SSH for beginners][23] along with hands-on labs to follow. This will give you a more streamlined knowledge of the topic.
-
-Happy remote working!
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/set-up-ssh-ubuntu/
-
-作者:[Chris Patrick Carias Stas][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://itsfoss.com/author/chris/
-[b]: https://github.com/lujun9972
-[1]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-diagram.png?resize=800%2C259&ssl=1
-[2]: https://www.openssh.com/
-[3]: https://itsfoss.com/install-ubuntu-server-raspberry-pi/
-[4]: https://itsfoss.com/ssh-into-raspberry/
-[5]: https://itsfoss.com/update-ubuntu/
-[6]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0001.png?resize=800%2C253&ssl=1
-[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0002.png?resize=800%2C263&ssl=1
-[8]: https://itsfoss.com/set-up-firewall-gufw/
-[9]: https://itsfoss.com/check-ip-address-ubuntu/
-[10]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-find-ip.png?resize=800%2C341&ssl=1
-[11]: https://itsfoss.com/cdn-cgi/l/email-protection
-[12]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0004.png?resize=800%2C87&ssl=1
-[13]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0005.png?resize=800%2C57&ssl=1
-[14]: https://i0.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0006.png?resize=800%2C322&ssl=1
-[15]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/05/ssh-0007.png?resize=800%2C87&ssl=1
-[16]: https://www.putty.org/
-[17]: https://juicessh.com/
-[18]: https://termius.com/
-[19]: https://linuxhandbook.com/ssh-basics/
-[20]: https://linuxhandbook.com/ssh-config-file/
-[21]: https://linuxhandbook.com/add-ssh-public-key-to-server/
-[22]: https://linuxhandbook.com/ssh-hardening-tips/
-[23]: https://linuxhandbook.com/sshcourse/
diff --git a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md b/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md
deleted file mode 100644
index 432ef50ae2..0000000000
--- a/sources/tech/20210604 Optimize Java serverless functions in Kubernetes.md
+++ /dev/null
@@ -1,267 +0,0 @@
-[#]: subject: (Optimize Java serverless functions in Kubernetes)
-[#]: via: (https://opensource.com/article/21/6/java-serverless-functions-kubernetes)
-[#]: author: (Daniel Oh https://opensource.com/users/daniel-oh)
-[#]: collector: (lujun9972)
-[#]: translator: (cool-summer-021)
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Optimize Java serverless functions in Kubernetes
-======
-Achieve faster startup and a smaller memory footprint to run serverless
-functions on Kubernetes.
-![Ship captain sailing the Kubernetes seas][1]
-
-A faster startup and smaller memory footprint always matter in [Kubernetes][2] due to the expense of running thousands of application pods and the cost savings of doing it with fewer worker nodes and other resources. Memory is more important than throughput on containerized microservices on Kubernetes because:
-
- * It's more expensive due to permanence (unlike CPU cycles)
- * Microservices multiply the overhead cost
- * One monolith application becomes _N_ microservices (e.g., 20 microservices ≈ 20GB)
-
-
-
-This significantly impacts serverless function development and the Java deployment model. This is because many enterprise developers chose alternatives such as Go, Python, and Nodejs to overcome the performance bottleneck—until now, thanks to [Quarkus][3], a new Kubernetes-native Java stack. This article explains how to optimize Java performance to run serverless functions on Kubernetes using Quarkus.
-
-### Container-first design
-
-Traditional frameworks in the Java ecosystem come at a cost in terms of the memory and startup time required to initialize those frameworks, including configuration processing, classpath scanning, class loading, annotation processing, and building a metamodel of the world, which the framework requires to operate. This is multiplied over and over for different frameworks.
-
-Quarkus helps fix these Java performance issues by "shifting left" almost all of the overhead to the build phase. By doing code and framework analysis, bytecode transformation, and dynamic metamodel generation only once, at build time, you end up with a highly optimized runtime executable that starts up super fast and doesn't require all the memory of a traditional startup because the work is done once, in the build phase.
-
-![Quarkus Build phase][4]
-
-(Daniel Oh, [CC BY-SA 4.0][5])
-
-More importantly, Quarkus allows you to build a native executable file that provides [performance advantages][6], including amazingly fast boot time and incredibly small resident set size (RSS) memory, for instant scale-up and high-density memory utilization compared to the traditional cloud-native Java stack.
-
-![Quarkus RSS and Boot Time Metrics][7]
-
-(Daniel Oh, [CC BY-SA 4.0][5])
-
-Here is a quick example of how you can build the native executable with a [Java serverless][8] function project using Quarkus.
-
-### 1\. Create the Quarkus serverless Maven project
-
-This command generates a Quarkus project (e.g., `quarkus-serverless-native`) to create a simple function:
-
-
-```
-$ mvn io.quarkus:quarkus-maven-plugin:1.13.4.Final:create \
- -DprojectGroupId=org.acme \
- -DprojectArtifactId=quarkus-serverless-native \
- -DclassName="org.acme.getting.started.GreetingResource"
-```
-
-### 2\. Build a native executable
-
-You need a GraalVM to build a native executable for the Java application. You can choose any GraalVM distribution, such as [Oracle GraalVM Community Edition (CE)][9] and [Mandrel][10] (the downstream distribution of Oracle GraalVM CE). Mandrel is designed to support building Quarkus-native executables on OpenJDK 11.
-
-Open `pom.xml`, and you will find this `native` profile. You'll use it to build a native executable:
-
-
-```
-<profiles>
- <profile>
- <id>native</id>
- <properties>
- <quarkus.package.type>native</quarkus.package.type>
- </properties>
- </profile>
-</profiles>
-```
-
-> **Note:** You can install the GraalVM or Mandrel distribution locally. You can also download the Mandrel container image to build it (as I did), so you need to run a container engine (e.g., Docker) locally.
-
-Assuming you have started your container runtime already, run one of the following Maven commands.
-
-For [Docker][11]:
-
-
-```
-$ ./mvnw package -Pnative \
--Dquarkus.native.container-build=true \
--Dquarkus.native.container-runtime=docker
-```
-
-For [Podman][12]:
-
-
-```
-$ ./mvnw package -Pnative \
--Dquarkus.native.container-build=true \
--Dquarkus.native.container-runtime=podman
-```
-
-The output should end with `BUILD SUCCESS`.
-
-![Native Build Logs][13]
-
-(Daniel Oh, [CC BY-SA 4.0][5])
-
-Run the native executable directly without Java Virtual Machine (JVM):
-
-
-```
-`$ target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner`
-```
-
-The output will look like:
-
-
-```
-__ ____ __ _____ ___ __ ____ ______
- --/ __ \/ / / / _ | / _ \/ //_/ / / / __/
- -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \
-\--\\___\\_\\____/_/ |_/_/|_/_/|_|\\____/___/
-INFO [io.quarkus] (main) quarkus-serverless-native 1.0.0-SNAPSHOT native
-(powered by Quarkus xx.xx.xx.) Started in 0.019s. Listening on:
-INFO [io.quarkus] (main) Profile prod activated.
-INFO [io.quarkus] (main) Installed features: [cdi, kubernetes, resteasy]
-```
-
-Supersonic! That's _19_ _milliseconds_ to startup. The time might be different in your environment.
-
-It also has extremely low memory usage, as the Linux `ps` utility reports. While the app is running, run this command in another terminal:
-
-
-```
-`$ ps -o pid,rss,command -p $(pgrep -f runner)`
-```
-
-You should see something like:
-
-
-```
- PID RSS COMMAND
-10246 11360 target/quarkus-serverless-native-1.0.0-SNAPSHOT-runner
-```
-
-This process is using around _11MB_ of memory (RSS). Pretty compact!
-
-> **Note:** The RSS and memory usage of any app, including Quarkus, will vary depending on your specific environment and will rise as application experiences load.
-
-You can also access the function with a REST API. Then the output should be `Hello RESTEasy`:
-
-
-```
-$ curl localhost:8080/hello
-Hello RESTEasy
-```
-
-### 3\. Deploy the functions to Knative service
-
-If you haven't already, [create a namespace][14] (e.g., `quarkus-serverless-native`) on [OKD][15] (OpenShift Kubernetes Distribution) to deploy this native executable as a serverless function. Then add a `quarkus-openshift` extension for Knative service deployment:
-
-
-```
-`$ ./mvnw -q quarkus:add-extension -Dextensions="openshift"`
-```
-
-Append the following variables in `src/main/resources/application.properties` to configure Knative and Kubernetes resources:
-
-
-```
-quarkus.container-image.group=quarkus-serverless-native
-quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000
-quarkus.native.container-build=true
-quarkus.kubernetes-client.trust-certs=true
-quarkus.kubernetes.deployment-target=knative
-quarkus.kubernetes.deploy=true
-quarkus.openshift.build-strategy=docker
-```
-
-Build the native executable, then deploy it to the OKD cluster directly:
-
-
-```
-`$ ./mvnw clean package -Pnative`
-```
-
-> **Note:** Make sure to log in to the right project (e.g., `quarkus-serverless-native`) using the `oc login` command ahead of time.
-
-The output should end with `BUILD SUCCESS`. It will take a few minutes to complete a native binary build and deploy a new Knative service. After successfully creating the service, you should see a Knative service (KSVC) and revision (REV) using either the `kubectl` or `oc` command tool:
-
-
-```
-$ kubectl get ksvc
-NAME URL [...]
-quarkus-serverless-native True
-
-$ kubectl get rev
-NAME CONFIG NAME K8S SERVICE NAME GENERATION READY REASON
-quarkus-serverless-native-00001 quarkus-serverless-native quarkus-serverless-native-00001 1 True
-```
-
-### 4\. Access the native executable function
-
-Retrieve the serverless function's endpoint by running this `kubectl` command:
-
-
-```
-`$ kubectl get rt/quarkus-serverless-native`
-```
-
-The output should look like:
-
-
-```
-NAME URL READY REASON
-quarkus-serverless-native True
-```
-
-Access the route `URL` with a `curl` command:
-
-
-```
-`$ curl http://quarkus-serverless-restapi-quarkus-serverless-native.SUBDOMAIN/hello`
-```
-
-In less than one second, you will get the same result as you got locally:
-
-
-```
-`Hello RESTEasy`
-```
-
-When you access the Quarkus running pod's logs in the OKD cluster, you will see the native executable is running as the Knative service.
-
-![Native Quarkus Log][16]
-
-(Daniel Oh, [CC BY-SA 4.0][5])
-
-### What's next?
-
-You can optimize Java serverless functions with GraalVM distributions to deploy them as serverless functions on Knative with Kubernetes. Quarkus enables this performance optimization using simple configurations in normal microservices.
-
-The next article in this series will guide you on making portable functions across multiple serverless platforms with no code changes.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/6/java-serverless-functions-kubernetes
-
-作者:[Daniel Oh][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/daniel-oh
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/ship_captain_devops_kubernetes_steer.png?itok=LAHfIpek (Ship captain sailing the Kubernetes seas)
-[2]: https://opensource.com/article/19/6/reasons-kubernetes
-[3]: https://quarkus.io/
-[4]: https://opensource.com/sites/default/files/uploads/quarkus-build.png (Quarkus Build phase)
-[5]: https://creativecommons.org/licenses/by-sa/4.0/
-[6]: https://quarkus.io/blog/runtime-performance/
-[7]: https://opensource.com/sites/default/files/uploads/quarkus-boot-metrics.png (Quarkus RSS and Boot Time Metrics)
-[8]: https://opensource.com/article/21/5/what-serverless-java
-[9]: https://www.graalvm.org/community/
-[10]: https://github.com/graalvm/mandrel
-[11]: https://www.docker.com/
-[12]: https://podman.io/
-[13]: https://opensource.com/sites/default/files/uploads/native-build-logs.png (Native Build Logs)
-[14]: https://docs.okd.io/latest/applications/projects/configuring-project-creation.html
-[15]: https://docs.okd.io/latest/welcome/index.html
-[16]: https://opensource.com/sites/default/files/uploads/native-quarkus-log.png (Native Quarkus Log)
diff --git a/sources/tech/20210607 Identify security properties on Linux using checksec.md b/sources/tech/20210607 Identify security properties on Linux using checksec.md
deleted file mode 100644
index 3d1e118830..0000000000
--- a/sources/tech/20210607 Identify security properties on Linux using checksec.md
+++ /dev/null
@@ -1,438 +0,0 @@
-[#]: subject: (Identify security properties on Linux using checksec)
-[#]: via: (https://opensource.com/article/21/6/linux-checksec)
-[#]: author: (Gaurav Kamathe https://opensource.com/users/gkamathe)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Identify security properties on Linux using checksec
-======
-Learn how to use checksec to identify an executable's security
-properties, understand what they mean, and know how to use them.
-![Target practice][1]
-
-Compiling source code produces a binary. During compilation, you can provide flags to the compiler to enable or disable certain properties on the binary. Some of these properties are relevant to security.
-
-Checksec is a nifty little tool (and shell script) that, among other functions, identifies the security properties that were built into a binary when it was compiled. A compiler might enable some of these properties by default, and you might have to provide specific flags to enable others.
-
-This article explains how to use checksec to identify the security properties on a binary, including:
-
- 1. The underlying commands checksec uses to find information on the security properties
- 2. How to enable security properties using the GNU Compiler Collection (GCC) when compiling a sample binary
-
-
-
-## Install checksec
-
-To install checksec on Fedora and other RPM-based systems, use:
-
-
-```
-`$ sudo dnf install checksec`
-```
-
-For Debian-based distros, use the equivalent `apt` command.
-
-## The shell script
-
-Checksec is a single-file shell script, albeit a rather large one. An advantage is that you can read through the script quickly and understand all the system commands running to find information about binaries or executables:
-
-
-```
-$ file /usr/bin/checksec
-/usr/bin/checksec: Bourne-Again shell script, ASCII text executable, with very long lines
-
-$ wc -l /usr/bin/checksec
-2111 /usr/bin/checksec
-```
-
-Take checksec for a drive with a binary you probably run daily: the ubiquitous `ls` command. The command's format is `checksec --file=` followed by the absolute path of the `ls` binary:
-
-
-```
-$ checksec --file=/usr/bin/ls
-RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE
-Full RELRO Canary found NX enabled PIE enabled No RPATH No RUNPATH No Symbols Yes 5 17 /usr/bin/ls
-```
-
-When you run this in a terminal, you see color-coding that shows what is good and what probably isn't. I say "probably" because even if something is in red, it doesn't necessarily mean things are horrible—it might just mean the distro vendors made some tradeoffs when compiling the binaries.
-
-The first line provides various security properties that are usually available for binaries, like `RELRO`, `STACK CANARY`, `NX`, and so on (I explain in detail below). The second line shows the status of these properties for the given binary (`ls`, in this case). For example, `NX enabled` means some property is enabled for this binary.
-
-## A sample binary
-
-For this tutorial, I'll use the following "hello world" program as the sample binary.
-
-
-```
-#include <stdio.h>
-
-int main()
-{
- [printf][2]("Hello World\n");
- return 0;
-}
-
-```
-
-Note that I did not provide `gcc` with any additional flags during compilation:
-
-
-```
-$ gcc hello.c -o hello
-
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped
-
-$ ./hello
-Hello World
-```
-
-Run the binary through checksec. Some of the properties are different than with the `ls` command above (on your screen, these may be displayed in red):
-
-
-```
-$ checksec --file=./hello
-RELRO STACK CANARY NX PIE RPATH RUNPATH Symbols FORTIFY Fortified Fortifiable FILE
-Partial RELRO No canary found NX enabled No PIE No RPATH No RUNPATH 85) Symbols No 0 0./hello
-$
-```
-
-## Changing the output format
-
-Checksec allows various output formats, which you can specify with `--output`. I'll choose the JSON format and pipe the output to the `jq` utility for pretty printing.
-
-To follow along, [ensure you have `jq` installed][3] because this tutorial uses this output format to quickly grep for specific properties from the output and report `yes` or `no` on each:
-
-
-```
-$ checksec --file=./hello --output=json | jq
-{
- "./hello": {
- "relro": "partial",
- "canary": "no",
- "nx": "yes",
- "pie": "no",
- "rpath": "no",
- "runpath": "no",
- "symbols": "yes",
- "fortify_source": "no",
- "fortified": "0",
- "fortify-able": "0"
- }
-}
-```
-
-## Walking through the security properties
-
-The binary above includes several security properties. I'll compare that binary against the `ls` binary above to examine what is enabled and explain how checksec found this information.
-
-### 1\. Symbols
-
-I'll start with the easy one first. During compilation, certain symbols are included in the binary, mostly for debugging. These symbols are required when you are developing software and require multiple cycles for debugging and fixing things.
-
-These symbols are usually stripped (removed) from the final binary before it's released for general use. This does not affect the binary's execution in any way; it will run just as it would with the symbols. Stripping is often done to save space, as the binary is somewhat lighter once the symbols have been stripped. In closed-source or proprietary software, symbols often are removed because having these symbols in a binary makes it somewhat easy to infer the software's inner workings.
-
-According to checksec, symbols are present in this binary, yet they were not in the `ls` binary. You can also find this information by running the `file` command on the program—you see `not stripped` in the output towards the end:
-
-
-```
-$ checksec --file=/bin/ls --output=json | jq | grep symbols
- "symbols": "no",
-
-$ checksec --file=./hello --output=json | jq | grep symbols
- "symbols": "yes",
-
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped
-```
-
-How did checksec find this information? Well, it provides a handy `--debug` option to show which functions ran. Therefore, running the following command should show you which functions ran within the shell script:
-
-
-```
-`$ checksec --debug --file=./hello`
-```
-
-In this tutorial, I'm looking for the underlying commands used to find this information. Since it's a shell script, you can always utilize Bash features. This command will output every command that ran from within the shell script:
-
-
-```
-`$ bash -x /usr/bin/checksec --file=./hello`
-```
-
-If you scroll through the output, you should see an `echo_message` followed by the security property's category. Here is what checksec reports about whether the binary contains symbols:
-
-
-```
-\+ readelf -W --symbols ./hello
-\+ grep -q '\\.symtab'
-\+ echo_message '\033[31m96) Symbols\t\033[m ' Symbols, ' symbols="yes"' '"symbols":"yes",'
-```
-
-To simplify this, checksec utilizes the `readelf` utility to read the binary and provides a special `--symbols` flag that lists all symbols within the binary. Then it greps for a special value, `.symtab`, that provides a count of entries (symbols) it finds. You can try out the following commands on the test binary you compiled above:
-
-
-```
-$ readelf -W --symbols ./hello
-$ readelf -W --symbols ./hello | grep -i symtab
-```
-
-## How to strip symbols
-
-You can strip symbols after compilation or during compilation.
-
- * **Post compilation:** After compilation, you can use the `strip` utility on the binary to remove the symbols. Confirm it worked using the `file` command, which now shows the output as `stripped`: [code] $ gcc hello.c -o hello
-$
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, not stripped
-$
-$ strip hello
-$
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=322037496cf6a2029dcdcf68649a4ebc63780138, for GNU/Linux 3.2.0, stripped
-$
-```
-## How to strip symbols during compilation
-
-Instead of stripping symbols manually after compilation, you can ask the compiler to do it for you by providing the `-s` argument:
-```
-
-
-$ gcc -s hello.c -o hello
-$
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=247de82a8ad84e7d8f20751ce79ea9e0cf4bd263, for GNU/Linux 3.2.0, stripped
-$
-
-```
-After rerunning checksec, you can see that `symbols` are shown as `no`:
-```
-
-
-$ checksec --file=./hello --output=json | jq | grep symbols
- "symbols": "no",
-$
-
-```
-### 2\. Canary
-
-Canaries are known values that are placed between a buffer and control data on the _stack_ to monitor buffer overflows. When an application executes, two kinds of memory are assigned to it. One of them is a _stack_, which is simply a data structure with two operations: `push`, which puts data onto the stack, and `pop`, which removes data from the stack in reverse order. Malicious input could overflow or corrupt the stack with specially crafted input and cause the program to crash:
-```
-
-
-$ checksec --file=/bin/ls --output=json | jq | grep canary
- "canary": "yes",
-$
-$ checksec --file=./hello --output=json | jq | grep canary
- "canary": "no",
-$
-
-```
-How does checksec find out if the binary is enabled with a canary? Using the method above, you can narrow it down by running the following command within the shell script:
-```
-`$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie'`
-```
-#### Enable canary
-
-To protect against these cases, the compiler provides the `-stack-protector-all` flag, which adds extra code to the binary to check for such buffer overflows:
-```
-
-
-$ gcc -fstack-protector-all hello.c -o hello
-
-$ checksec --file=./hello --output=json | jq | grep canary
- "canary": "yes",
-
-```
-Checksec shows that the property is now enabled. You can also verify this with:
-```
-
-
-$ readelf -W -s ./hello | grep -E '__stack_chk_fail|__intel_security_cookie'
- 2: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@GLIBC_2.4 (3)
- 83: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __stack_chk_fail@@GLIBC_2.4
-$
-
-```
-### 3\. PIE
-
-PIE stands for position-independent executable. As the name suggests, it's code that is placed somewhere in memory for execution regardless of its absolute address:
-```
-
-
-$ checksec --file=/bin/ls --output=json | jq | grep pie
- "pie": "yes",
-
-$ checksec --file=./hello --output=json | jq | grep pie
- "pie": "no",
-
-```
-Often, PIE is enabled only for libraries and not for standalone command-line programs. In the output below, `hello` is shown as `LSB executable`, whereas, the `libc` standard library (`.so`) file is marked `LSB shared object`:
-```
-
-
-$ file hello
-hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=014b8966ba43e3ae47fab5acae051e208ec9074c, for GNU/Linux 3.2.0, not stripped
-
-$ file /lib64/libc-2.32.so
-/lib64/libc-2.32.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4a7fb374097fb927fb93d35ef98ba89262d0c4a4, for GNU/Linux 3.2.0, not stripped
-
-```
-Checksec tries to find this information with:
-```
-
-
-$ readelf -W -h ./hello | grep EXEC
- Type: EXEC (Executable file)
-
-```
-If you try the same command on a shared library instead of `EXEC`, you will see a `DYN`:
-```
-
-
-$ readelf -W -h /lib64/libc-2.32.so | grep DYN
- Type: DYN (Shared object file)
-
-```
-#### Enable PIE
-
-To enable PIE on a test program, send the following arguments to the compiler:
-```
-`$ gcc -pie -fpie hello.c -o hello`
-```
-You can verify PIE is enabled using checksec:
-```
-
-
-$ checksec --file=./hello --output=json | jq | grep pie
- "pie": "yes",
-$
-
-```
-It should show as a PIE executable with the type changed from `EXEC` to `DYN`:
-```
-
-
-$ file hello
-hello: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=bb039adf2530d97e02f534a94f0f668cd540f940, for GNU/Linux 3.2.0, not stripped
-
-$ readelf -W -h ./hello | grep DYN
- Type: DYN (Shared object file)
-
-```
-### 4\. NX
-
-NX stands for "non-executable." It's often enabled at the CPU level, so an operating system with NX enabled can mark certain areas of memory as non-executable. Often, buffer-overflow exploits put code on the stack and then try to execute it. However, making this writable area non-executable can prevent such attacks. This property is enabled by default during regular compilation using `gcc`:
-```
-
-
-$ checksec --file=/bin/ls --output=json | jq | grep nx
- "nx": "yes",
-
-$ checksec --file=./hello --output=json | jq | grep nx
- "nx": "yes",
-
-```
-Checksec determines this information with the command below. `RW` towards the end means the stack is readable and writable; since there is no `E`, it's not executable:
-```
-
-
-$ readelf -W -l ./hello | grep GNU_STACK
- GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10
-
-```
-#### Disable NX for demo purposes
-
-It's not recommended, but you can disable `NX` when compiling a program by using the `-z execstack` argument:
-```
-
-
-$ gcc -z execstack hello.c -o hello
-
-$ checksec --file=./hello --output=json | jq | grep nx
- "nx": "no",
-
-```
-Upon compilation, the stack becomes executable (`RWE`), which allows malicious code to execute:
-```
-
-
-$ readelf -W -l ./hello | grep GNU_STACK
- GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RWE 0x10
-
-```
-### 5\. RELRO
-
-RELRO stands for Relocation Read-Only. An Executable Linkable Format (ELF) binary uses a Global Offset Table (GOT) to resolve functions dynamically. When enabled, this security property makes the GOT within the binary read-only, which prevents some form of relocation attacks:
-```
-
-
-$ checksec --file=/bin/ls --output=json | jq | grep relro
- "relro": "full",
-
-$ checksec --file=./hello --output=json | jq | grep relro
- "relro": "partial",
-
-```
-Checksec finds this information by using the command below. Here, one of the RELRO properties is enabled; therefore, the binary shows "partial" when verifying via checksec:
-```
-
-
-$ readelf -W -l ./hello | grep GNU_RELRO
- GNU_RELRO 0x002e10 0x0000000000403e10 0x0000000000403e10 0x0001f0 0x0001f0 R 0x1
-
-$ readelf -W -d ./hello | grep BIND_NOW
-
-```
-#### Enable full RELRO
-
-To enable full RELRO, use the following command-line arguments when compiling with `gcc`:
-```
-
-
-$ gcc -Wl,-z,relro,-z,now hello.c -o hello
-
-$ checksec --file=./hello --output=json | jq | grep relro
- "relro": "full",
-
-```
-Now, the second property is also enabled, making the program full RELRO:
-```
-
-
-$ readelf -W -l ./hello | grep GNU_RELRO
- GNU_RELRO 0x002dd0 0x0000000000403dd0 0x0000000000403dd0 0x000230 0x000230 R 0x1
-
-$ readelf -W -d ./hello | grep BIND_NOW
- 0x0000000000000018 (BIND_NOW)
-
-```
-### 6\. Fortify
-
-Fortify is another security property, but it's out of scope for this article. I will leave learning how checksec verifies fortify in binaries and how it's enabled with `gcc` as an exercise for you to tackle.
-```
-
-
-$ checksec --file=/bin/ls --output=json | jq | grep -i forti
- "fortify_source": "yes",
- "fortified": "5",
- "fortify-able": "17"
-
-$ checksec --file=./hello --output=json | jq | grep -i forti
- "fortify_source": "no",
- "fortified": "0",
- "fortify-able": "0"
-
-```
-## Other checksec features
-
-The topic of security is never-ending, and while it's not possible to cover everything here, I do want to mention a few more features of the `checksec` command that make it a pleasure to work with.
-
-### Run against multiple binaries
-
-You don't have to provide each binary to checksec individually. Instead, you can provide a directory path where multiple binaries reside, and checksec will verify all of them for you in one go:
-```
-`$ checksec --dir=/usr
\ No newline at end of file
diff --git a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md b/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md
deleted file mode 100644
index dd5ec7ed2c..0000000000
--- a/sources/tech/20210618 5 more reasons to run Kubernetes in your Linux homelab.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: (5 more reasons to run Kubernetes in your Linux homelab)
-[#]: via: (https://opensource.com/article/21/6/kubernetes-linux-homelab)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-5 more reasons to run Kubernetes in your Linux homelab
-======
-Kubernetes' advantages aren't just what it can do, they're also what
-knowing it can do for you.
-![Working from home at a laptop][1]
-
-In [5 reasons to run Kubernetes on your Raspberry Pi homelab][2], I explain why you might want to use Kubernetes at home. Those reasons are relatively arbitrary, and they mostly focus on outcomes. Aside from what Kubernetes can do, there are several other good reasons to look at Kubernetes as an important next step in your personal computing experience.
-
-### 1\. It's built on the foundation of Linux
-
-![T-shirt reading "Containers are Linux"][3]
-
-(Seth Kenlon, [CC BY-SA 4.0][4])
-
-Kubernetes has a certain reputation. More accurately, it has several reputations. For some people, it's a mysterious technology with an unpronounceable name. To other people, it's a sheepdog helping them herd an over-abundance of containers. For others, it's a kind of operating system for the cloud, a useful interface to effective cloud development. And for most people, probably, it's back-end software they've never even heard of. As you might expect, it's all of these things and more.
-
-Not everyone interacts with Kubernetes the same way, but if you have an inclination toward systems administration, you'll find that Kubernetes is _just another Linux command_.
-
-I have a t-shirt that reads "Containers are Linux," which states what is, upon reflection, obvious. Container technology uses cgroups to run images of a minimal Linux operating system containing an application or set of applications. From start to finish, when you choose to run a container, you're choosing to run Linux. While Kubernetes commands run on many platforms, it's managing Linux containers, and when you interact with Kubernetes through a terminal, it's Linux business as usual: command, options, args, syntax. Running `kubeadm` or (on OKD or OpenShift) `oc` commands feels familiar because they work like any other Linux command you're used to running. What starts out seeming foreign feels natural in no time, and any Linux user interested in spending time in the terminal can find plenty of fun things to explore in Kubernetes.
-
-### 2\. Flexible
-
-Kubernetes used to be a little rigid. It supported, essentially, one container runtime—so stringently, in fact, that there's a hardcoded shim to this day to get around that legacy. Luckily, today Kubernetes has become flexible enough to allow for admins' many diverse needs. There's [Podman][5] and [CRI-O][6] available as container engines, both of which can integrate with [systemd][7]. (I meant what I said when I told you it was all Linux underneath.) You have choices of filesystems, cluster size and construction, monitoring tools, images, programming languages, and much more. Frankly, some people say there's _too much_ choice, which is usually when I suspect that after a few more years, it'll have just enough choice for me.
-
-### 3\. Personal development
-
-Containers are a fruitful business, and they have the habit of multiplying rapidly. That's by design. Containers are meant to scale, and they scale by spawning clones. Stick the containers into groups (call them _pods_), and automate how pod lifecycles are managed. That's all Kubernetes really is, and it's changing how servers can run.
-
-You might not need an infinitely scaleable collection of containers, and you may not need anything to help you manage the one or two containers you do run. However, if you're looking to profit from your ability to wrangle pods, then Kubernetes is exactly the tool you want. As more and more companies and organizations go global and embrace [digital transformation][8], Kubernetes is becoming a required skill in IT. If that's the path you're on, it's a good investment to learn it now and get familiar with common problems and their solutions.
-
-### 4\. Make containers make sense
-
-You may remember several years ago when open source projects started distributing their code as container images. For many, it was puzzling at the time. Not many admins really [understood what a container was][9], or where the boundaries of the imaginary container were, or how to get into the container, or why data couldn't live inside the container.
-
-Now, the IT world—including developers—is comfortable with the concept of containers. Delivery to containers just makes sense for a modern [CI/CD workflow][10]. For the sysadmin, though, the advantages of containers are twofold: installation is (theoretically) easier than waiting for a distro to update its packages, and containers scale. Yet it's very likely that neither of these benefits really manifests for you until you've used Kubernetes. Once you start managing containers with Kubernetes and related tools, the benefits of continuous delivery and the ability to scale are probably merely ideas you've read about. Integrate containers into how you manage your servers, and you suddenly understand what the excitement is all about.
-
-![Apache JMeter][11]
-
-(Seth Kenlon, [CC BY-SA 4.0][4])
-
-The most basic of tests makes it pretty clear. Just spin up your favorite web server in a container, create a pod, then hit your server with traffic from [Apache JMeter][12], and watch containers respond.
-
-### 5\. Cloud-native
-
-If you do more development than systems administration, Kubernetes provides an excellent platform for what has easily become the biggest target of all: web apps. We all use web apps now, even though most people just think of them as "websites." The web has a hugely significant user base (to say the least), so it makes sense to provide open source applications through the browser. There are some great open source applications that run over a network, and many of those are delivered as containers to provide easy installation and a consistent user experience.
-
-### Bonus: It's fun
-
-Remember when you were still new to Linux? For some people, that might have been decades ago, and for others, it's still around the corner. For all of us, though, learning something new can be a fun challenge. If you've reached the point that Linux installs are more a bother than a challenge, you might want to try building a Kubernetes cluster in your broom closet. It will reintroduce you to all kinds of concepts you'd forgotten about. Hacking on plain-text ([YAML][13] specifically) configuration files, configuring network interfaces and networks, routing traffic, poring over the advantages and disadvantages of one backend over another, running `--dry-run` after `--dry-run` tests, tentatively pressing Return to find out whether you got everything right. Honestly, Kubernetes is just fun.
-
-If you want to build your own infrastructure, there's nothing quite like building your own Kubernetes cluster. A whole new world will open to you. You quickly become a cloud architect, perfecting your open cloud, installing amazing open source web applications in containers, and maybe even offering access to your family and friends.
-
-You become the solution. It's so very satisfying.
-
-### Explore Kubernetes
-
-Kubernetes might seem out of reach at first. It's new, a little scary, and worst yet, it apparently requires a cloud. However, there are a few ways to get started.
-
-First, install either [Minikube][14] or [Minishift][14]. Both of these allow you to run a local instance of Kubernetes on your personal computer. It's not quite as satisfying as building a cluster and opening it up to your friends, but it's a great, safe way to get familiar with the landscape, commands, and toolkit.
-
-Once you're ready for the real thing, read Chris Collins' article [Build a Kubernetes cluster with the Raspberry Pi][15]. After that, download our free ebook [Running Kubernetes on your Raspberry Pi homelab][16]. Before you know it, you'll find yourself wearing Kubernetes t-shirts, too.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/6/kubernetes-linux-homelab
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/wfh_work_home_laptop_work.png?itok=VFwToeMy (Working from home at a laptop)
-[2]: https://opensource.com/article/20/8/kubernetes-raspberry-pi
-[3]: https://opensource.com/sites/default/files/uploads/containers-are-linux.jpg (T-shirt reading "Containers are Linux")
-[4]: https://creativecommons.org/licenses/by-sa/4.0/
-[5]: http://podman.io
-[6]: http://cri-o.io
-[7]: https://opensource.com/article/21/5/systemd
-[8]: https://enterprisersproject.com/what-is-digital-transformation
-[9]: https://opensource.com/article/18/11/behind-scenes-linux-containers
-[10]: https://opensource.com/article/18/8/what-cicd
-[11]: https://opensource.com/sites/default/files/uploads/jmeter.png (Apache JMeter)
-[12]: https://jmeter.apache.org
-[13]: https://www.redhat.com/sysadmin/yaml-beginners
-[14]: https://opensource.com/article/18/10/getting-started-minikube
-[15]: https://opensource.com/article/20/6/kubernetes-raspberry-pi
-[16]: https://opensource.com/downloads/kubernetes-raspberry-pi
diff --git a/sources/tech/20210623 Parsing config files with Lua.md b/sources/tech/20210623 Parsing config files with Lua.md
deleted file mode 100644
index 50b47fa003..0000000000
--- a/sources/tech/20210623 Parsing config files with Lua.md
+++ /dev/null
@@ -1,231 +0,0 @@
-[#]: subject: (Parsing config files with Lua)
-[#]: via: (https://opensource.com/article/21/6/parsing-config-files-lua)
-[#]: author: (Seth Kenlon https://opensource.com/users/seth)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Parsing config files with Lua
-======
-Configure persistent application settings with the Lua programming
-language.
-![Woman sitting in front of her computer][1]
-
-Not all applications need configuration files; many applications benefit from starting fresh each time they are launched. Simple utilities, for instance, rarely require preferences or settings that persist across uses. However, when you write a complex application, it's nice for users to be able to configure how they interact with it and how it interacts with their system. That's what configuration files are for, and this article discusses some of the ways you can implement persistent settings with the Lua programming language.
-
-### Choose a format
-
-The important thing about configuration files is that they are consistent and predictable. You do not want to dump information into a file under the auspices of saving user preferences and then spend days writing code to reverse-engineer the random bits of information that have ended up in the file.
-
-There are several popular [formats for configuration files][2]. Lua has libraries for most of the common configuration formats; in this article, I'll use the INI format.
-
-### Installing the library
-
-The central hub for Lua libraries is [Luarocks.org][3]. You can search for libraries on the website, or you can install and use the `luarocks` terminal command.
-
-On Linux, you can install it from your distribution's software repository. For example:
-
-
-```
-`$ sudo dnf install luarocks`
-```
-
-On macOS, use [MacPorts][4] or [Homebrew][5]. On Windows, use [Chocolatey][6].
-
-Once `luarocks` is installed, you can use the `search` subcommand to search for an appropriate library. If you don't know the name of a library, you can search for a keyword, like `ini` or `xml` or `json`, depending on what's relevant to what you're trying to do. In this case, you can just search for `inifile`, which is the library I use to parse text files in the INI format:
-
-
-```
-$ luarocks search inifile
-Search results:
-inifile
- 1.0-2 (rockspec) -
- 1.0-2 (src) -
- 1.0-1 (rockspec) -
- [...]
-```
-
-A common trap programmers fall into is installing a library on their system and forgetting to bundle it with their application. This can create problems for users who don't have the library installed. To avoid this, use the `--tree` option to install the library to a local folder within your project directory. If you don't have a project directory, create one first, and then install:
-
-
-```
-$ mkdir demo
-$ cd demo
-$ luarocks install --tree=local inifile
-```
-
-The `--tree` option tells `luarocks` to create a new directory, called `local` in this case, and install your library into it. With this simple trick, you can install all the dependency code your project uses directly into the project directory.
-
-### Code setup
-
-First, create some INI data in a file called `myconfig.ini`:
-
-
-```
-[example]
-name=Tux
-species=penguin
-enabled=false
-
-[demo]
-name=Beastie
-species=demon
-enabled=false
-```
-
-Save the file as `myconfig.ini` into your home directory, _not_ into your project directory. You usually want configuration files to exist outside your application so that even when a user uninstalls your application, the data they generate while using the application remains on their system. Users might remove unnecessary config files manually, but many don't. As a result, if they reinstall an application, it will retain all of their preferences.
-
-Config file locations are technically unimportant, but each operating system (OS) has a specification or a tradition of where they ought to be placed. On Linux, this is defined by the [Freedesktop specification][7]. It dictates that configuration files are to be saved in a hidden folder named `~/.config`. For clarity during this exercise, just save the file in your home directory so that it's easy to find and use.
-
-Create a second file named `main.lua` and open it in your favorite text editor.
-
-First, you must tell Lua where you've placed the additional library you want it to use. The `package.path` variable determines where Lua looks for libraries. You can view Lua's default package path in a terminal:
-
-
-```
-$ Lua
-> print(package.path)
-./?.lua;/usr/share/lua/5.3/?.lua;/usr/share/lua/5.3/?/init.lua;/usr/lib64/lua/5.3/?.lua;/usr/lib64/lua/5.3/?/init.lua
-```
-
-In your Lua code, append your local library location to `package.path`:
-
-
-```
-`package.path = package.path .. ';local/share/lua/5.3/?.lua`
-```
-
-### Parsing INI files with Lua
-
-With the package location established, the next thing to do is to require the `inifile` library and then handle some OS logistics. Even though this is a simple example application, the code needs to get the user's home directory location from the OS and establish how to communicate filesystem paths back to the OS when necessary:
-
-
-```
-package.path = package.path .. ';local/share/lua/5.3/?.lua
-inifile = require('inifile')
-
-\-- find home directory
-home = os.getenv('HOME')
-
-\-- detect path separator
-\-- returns '/' for Linux and Mac
-\-- and '\' for Windows
-d = package.config:sub(1,1)
-```
-
-Now you can use `inifile` to parse data from the config file into a Lua table. Once the data has been placed into a table, you can query the table as you would any other Lua table:
-
-
-```
-\-- parse the INI file and
-\-- put values into a table called conf
-conf = inifile.parse(home .. d .. 'myconfig.ini')
-
-\-- print the data for review
-print(conf['example']['name'])
-print(conf['example']['species'])
-print(conf['example']['enabled'])
-```
-
-Run the code in a terminal to see the results:
-
-
-```
-$ lua ./main.lua
-Tux
-penguin
-false
-```
-
-That looks correct. Try doing the same for the `demo` block.
-
-### Saving data in the INI format
-
-Not all parser libraries read and write data (often called _encoding_ and _decoding_), but the `inifile` library does. That means you can use it to make changes to a configuration file.
-
-To change a value in a configuration file, you set the variable representing the value in the parsed table, and then you write the table back to the configuration file:
-
-
-```
-\-- set enabled to true
-conf['example']['enabled'] = true
-conf['demo']['enabled'] = true
-
-\-- save the change
-inifile.save(home .. d .. 'myconfig.ini', conf)
-```
-
-Take a look at the configuration file now:
-
-
-```
-$ cat ~/myconfig.ini
-[example]
-name=Tux
-species=penguin
-enabled=true
-
-[demo]
-name=Beastie
-species=demon
-enabled=true
-```
-
-### Config files
-
-The ability to save data about how a user wants to use an application is an important part of programming. Fortunately, it's a common task for programmers, so much of the work has probably already been done. Find a good library for encoding and decoding into an open format, and you can provide a persistent and consistent user experience.
-
-Here's the entire demo code for reference:
-
-
-```
-package.path = package.path .. ';local/share/lua/5.3/?.lua'
-inifile = require('inifile')
-
-\-- find home directory
-home = os.[getenv][8]('HOME')
-
-\-- detect path separator
-\-- returns '/' for Linux and Mac
-\-- and '\' for Windows
-d = package.config:sub(1,1)
-
-\-- parse the INI file and
-\-- put values into a table called conf
-conf = inifile.parse(home .. d .. 'myconfig.ini')
-
-\-- print the data for review
-print(conf['example']['name'])
-print(conf['example']['species'])
-print(conf['example']['enabled'])
-
-\-- enable Tux
-conf['example']['enabled'] = true
-
-\-- save the change
-inifile.save(home .. d .. 'myconfig.ini', conf)
-```
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/6/parsing-config-files-lua
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/OSDC_women_computing_2.png?itok=JPlR5aCA (Woman sitting in front of her computer)
-[2]: https://opensource.com/article/21/6/config-files-and-their-formats
-[3]: https://opensource.com/article/19/11/getting-started-luarocks
-[4]: https://opensource.com/article/20/11/macports
-[5]: https://opensource.com/article/20/6/homebrew-mac
-[6]: https://opensource.com/article/20/3/chocolatey
-[7]: https://www.freedesktop.org/wiki/Specifications
-[8]: http://www.opengroup.org/onlinepubs/009695399/functions/getenv.html
diff --git a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md b/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md
deleted file mode 100644
index ccf231735e..0000000000
--- a/sources/tech/20210629 Try Linux on any operating system with VirtualBox.md
+++ /dev/null
@@ -1,325 +0,0 @@
-[#]: subject: (Try Linux on any operating system with VirtualBox)
-[#]: via: (https://opensource.com/article/21/6/try-linux-virtualbox)
-[#]: author: (Stephan Avenwedde https://opensource.com/users/hansic99)
-[#]: collector: (lujun9972)
-[#]: translator: ( )
-[#]: reviewer: ( )
-[#]: publisher: ( )
-[#]: url: ( )
-
-Try Linux on any operating system with VirtualBox
-======
-VirtualBox helps anyone—even a command line novice—set up a virtual
-machine.
-![Person programming on a laptop on a building][1]
-
-VirtualBox makes it easy for anyone to try Linux. You don't even need experience with the command line to set up a simple virtual machine to tinker with Linux. I'm kind of a power user when it comes to virtual machines, but this article will show even novices how to virtualize a Linux system. In addition, it provides an overview of how to run and install a Linux system for testing purposes with the open source hypervisor [VirtualBox][2].
-
-### Terms
-
-Before starting, you should understand the difference between the two operating systems (OSes) in this setup:
-
- * **Host system:** This is your actual OS on which you install VirtualBox.
- * **Guest system:** This is the system you want to run virtualized on top of your host system.
-
-
-
-Both systems, host and guest, must interact with each other when it comes to input/output, networking, file access, clipboard, audio, and video.
-
-In this tutorial, I'll use Windows 10 as the _host system_ and [Fedora 33][3] as the _guest system_.
-
-### Prerequisites
-
-When we talk about virtualization, we actually mean [hardware-assisted virtualization][4]. Hardware-assisted virtualization requires a compatible CPU. Almost every ordinary x86 CPU from the last decade comes which this feature. AMD calls it **AMD-V,** and Intel calls it **VT-x**. The virtualization feature adds some additional CPU instructions, and it can be enabled or disabled in the BIOS.
-
-To start with virtualization:
-
- * Make sure that AMD-V or VT-x is enabled in the BIOS.
- * Download and install [VirtualBox][5].
-
-
-
-### Prepare the virtual machine
-
-Download the image of the Linux distribution you want to try out. It does not matter if it's a 32-bit or 64-bit OS image. You can even start a 64-bit OS image on a 32-bit host system (with limitations in memory usage, of course) and vice versa.
-
-> **Considerations:** If possible, choose a Linux distribution that comes with the [Logical Volume Manager][6] (LVM). LVM decouples the filesystem from the physical hard drives. This allows you to increase the size of your guest system's hard drive if you are running out of space.
-
-Now, open VirtualBox and click on the yellow **New** button:
-
-![VirtualBox New VM][7]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Next, configure how much memory the guest OS is allowed to use:
-
-![Set VM memory size][9]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-My recommendation: **Don't skimp on memory!** When memory is low, the guest system will start paging memory from RAM to the hard drive, worsening the system's performance and responsiveness extremely. If the underlying host system starts paging, you might not notice. For a Linux workstation system with a graphical desktop environment, I recommend at least 4GB of memory.
-
-Next, create the hard disk:
-
-![Create virtual hard disk][10]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Choose the default option, **VDI**:
-
-![Selecting hard disk file type][11]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-In this window, I recommend choosing **dynamically allocated**, as this allows you to increase the size later. If you choose **fixed size**, the disk will be probably faster, but you won't be able to modify it:
-
-![Dynamically allocating hard disk][12]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-With a Linux distribution that uses LVM, you can start with a small hard disk. If you are running out of space, you can increase it on demand.
-
-> **Note**: Fedora's website says [it requires][13] a minimum of 20GB free disk space. I highly recommend you stick to that specification. I chose 8GB here so that I can demonstrate how to increase it later. If you are new to Linux or inexperienced with the command line, choose 20GB.
-
-![Setting hard disk size][14]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-After creating the hard drive, select the newly created virtual machine from the list in VirtualBox's main window and click on **Settings**. In the Settings menu, go to **System** and select the **Processor** tab. By default, VirtualBox assigns only one CPU core to the guest system. On a modern multicore CPU, it should not be any problem to assign at least two cores, which will speed up the guest system significantly:
-
-![Assigning cores to guest system][15]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-#### Network adapter setup
-
-The next thing to take care of is the network setup. By default, VirtualBox creates one NAT connection, which should be OK for most use cases:
-
-![Network settings][16]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-You can create more than one network adapter. Here are the most common types:
-
- * **NAT:** The NAT adapter performs a [network address translation][17]. From the outside, it looks like the host and the guest system use the same IP address. You are not able to access the guest system from within the host system over the network. (Although you could define [port forwarding][18] to access certain services.) When your host system has access to the internet, the guest system will have access, too. NAT requires no further configuration.
- * _Choose **NAT** if you only need internet access for the guest system._
- * **Bridged adapter:** Here, the guest and the host system share the same physical Ethernet device. Both systems will have independent IP addresses. From the outside, it looks like there are two separate systems in the network, both sharing the same physical Ethernet adapter. This setup is more flexible but requires more configuration.
- * _Choose **Bridged adapter** if you want to share the guest system's network services._
- * **Host-only adapter:** In this configuration, the guest system can only talk to the host or other guest systems running on the same host. The host system can also connect to the guest system. There is no internet nor physical network access for the guest.
- * _Choose **Host-only adapter** for advanced security._
-
-
-
-#### Assign the OS image
-
-Navigate to **Storage** and select the virtual optical drive. Click on the **CD icon** on the right, and select **Choose a disk file…**. Then assign the downloaded Linux distribution image you want to install:
-
-![Assigning OS image][19]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-### Install Linux
-
-The virtual machine is now configured. Leave the **Settings** menu and go back to the main window. Click on the **Green arrow** (i.e., the start button). The virtual machine will start up and boot from the virtual optical drive, and you will find yourself in your Linux distribution's installer:
-
-![VirtualBox Fedora installer][20]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-#### Partitioning
-
-The installer will ask you for partitioning information during the installation process. Choose **Custom**:
-
-![Selecting Custom partition configuration][21]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-> **Note:** I'm assuming you're creating this virtual machine just for testing purposes. Also you don't need to care about hibernation for your guest system, as this function is implicitly provided by VirtualBox. Therefore, you can omit the swap partition to save disk space on your host system. Keep in mind that you can add a swap partition later if needed. In [_An introduction to swap space on Linux systems_][22], David Both explains how to add a swap partition and choose the correct size.
-
-Fedora 33 and later offer a [zram][23] partition, a compressed part of the memory used for paging and swap. The zram partition is resized on demand, and it is much faster than a hard disk swap partition.
-
-To keep it simple, just add these two mount points:
-
-![Adding mount points][24]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Apply the changes and proceed with the installation.
-
-### Install VirtualBox Guest Additions
-
-After you finish the installation, boot from the hard drive and log in. Now you can install VirtualBox Guest Additions, which include special device drivers and system applications that provide:
-
- * Shared clipboard
- * Shared folders
- * Better performance
- * Freely scalable window size
-
-
-
-To install them, click on the top menu in **Devices** and select **Insert Guest Additions CD image…**:
-
-![Selecting Guest Additions CD image][25]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-On most Linux distributions, the CD image with the Guest Additions is mounted automatically, and they are available in the file browser. Fedora will ask you if you want to run the installation script. Click **Run** and enter your credentials to grant the process root rights:
-
-![Enabling Guest Additions autorun][26]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-When the installation is finished, reboot the system.
-
-### LVM: Enlarge disk space
-
-Creating an 8GB hard disk was a dumb decision, as Fedora quickly starts signaling that it is running out of space:
-
-![Fedora hard disk running out of space][27]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-As I mentioned, a disk space of 20GB is recommended, and 8GB is the _absolute_ minimum for a Fedora 33 installation to boot up. A fresh installation with no additional software (except the VirtualBox Guest Additions) takes nearly the whole 8GB of available space. Don't open the GNOME Software center or anything else that might download files from the internet in this condition.
-
-Luckily, I chose to use LVM, so I can easily fix this mishap.
-
-To increase the filesystem's space within the virtual machine, you must first increase the virtual hard drive on your host system.
-
-Shut down the virtual machine. If your host system is running Windows, open a command prompt and navigate to `C:\Program Files\Oracle\VirtualBox`. Resize the disk to 12,000MB with the following command:
-
-
-```
-`VBoxManage.exe modifyhd "C:\Users\StephanA\VirtualBox VMs\Fedora_33\Fedora_33.vdi" --resize 12000`
-```
-
-Boot the virtual machine and open the **Disks** utility. You should see the newly created unassigned free space. Select **Free Space** and click the **+** button:
-
-![Free space before adding][28]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Now, create a new partition. Select the amount of free space you want to use:
-
-![Creating a new partition and setting size][29]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-You don't want to create a filesystem or anything else on your new partition, so select **Other**:
-
-![Selecting "other" for partition volume type][30]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Select **No Filesystem**:
-
-![Setting "No filesystem" on new partition][31]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-The overview should now look like this:
-
-![VirtualBox after adding new partition][32]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-There is a new partition device, **/dev/sda3**. Check your LVM volume group by typing `vgscan`:
-
-![Checking LVM volume group by typing vgscan:][33]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Now you have everything you need. Extend the volume group in the new partition:
-
-
-```
-`vgextend fedora_localhost-live /dev/sda3`
-```
-
-![vgextend command output][34]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Because the volume group is larger, you can increase the size of the logical volume. The command `vgdisplay` shows that it has 951 free extends available:
-
-![vgdisplay command output][35]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Increase the logical volume by 951 extends:
-
-
-```
-`lvextend -l+951 /dev/mapper/fedora_localhost--live-root`
-```
-
-![lvextend command output][36]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-After you increase the logical volume, the last thing to do is to resize the filesystem:
-
-
-```
-`resize2fs /dev/mapper/fedora_localhost--live-root`
-```
-
-![resize2fs command output][37]
-
-(Stephan Avenwedde, [CC BY-SA 4.0][8])
-
-Done! Check the **Disk Usage Analyzer**, and you should see that the extended space is available for the filesystem.
-
-### Summary
-
-With a virtual machine, you can check how a piece of software behaves with a specific operating system or a specific version of an operating system. Besides that, you can also try out any Linux distribution you want to test without worrying about breaking your system. For advanced users, VirtualBox offers a wide range of possibilities when it comes to testing, networking, and simulation.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/6/try-linux-virtualbox
-
-作者:[Stephan Avenwedde][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/hansic99
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_code_programming_laptop.jpg?itok=ormv35tV (Person programming on a laptop on a building)
-[2]: https://www.virtualbox.org/
-[3]: https://getfedora.org/
-[4]: https://en.wikipedia.org/wiki/Hardware-assisted_virtualization
-[5]: https://www.virtualbox.org/wiki/Downloads
-[6]: https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)
-[7]: https://opensource.com/sites/default/files/uploads/virtualbox_new_vm.png (VirtualBox New VM)
-[8]: https://creativecommons.org/licenses/by-sa/4.0/
-[9]: https://opensource.com/sites/default/files/uploads/virtualbox_memory_size_1.png (Set VM memory size)
-[10]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_1.png (Create virtual hard disk)
-[11]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_2.png (Selecting hard disk file type)
-[12]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_3.png (Dynamically allocating hard disk)
-[13]: https://getfedora.org/en/workstation/download/
-[14]: https://opensource.com/sites/default/files/uploads/virtualbox_create_hd_4.png (Setting hard disk size)
-[15]: https://opensource.com/sites/default/files/uploads/virtualbox_cpu_settings.png (Assigning cores to guest system)
-[16]: https://opensource.com/sites/default/files/uploads/virtualbox_network_settings2.png (Network settings)
-[17]: https://en.wikipedia.org/wiki/Network_address_translation
-[18]: https://www.virtualbox.org/manual/ch06.html#natforward
-[19]: https://opensource.com/sites/default/files/uploads/virtualbox_choose_image3.png (Assigning OS image)
-[20]: https://opensource.com/sites/default/files/uploads/virtualbox_running.png (VirtualBox Fedora installer)
-[21]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_1.png (Selecting Custom partition configuration)
-[22]: https://opensource.com/article/18/9/swap-space-linux-systems
-[23]: https://fedoraproject.org/wiki/Changes/SwapOnZRAM
-[24]: https://opensource.com/sites/default/files/uploads/virtualbox_partitioning_2.png (Adding mount points)
-[25]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_2.png (Selecting Guest Additions CD image)
-[26]: https://opensource.com/sites/default/files/uploads/virtualbox_guest_additions_autorun.png (Enabling Guest Additions autorun)
-[27]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_usage_1.png (Fedora hard disk running out of space)
-[28]: https://opensource.com/sites/default/files/uploads/virtualbox_disks_before.png (Free space before adding)
-[29]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_1.png (Creating a new partition and setting size)
-[30]: https://opensource.com/sites/default/files/uploads/virtualbox_new_partition_2.png (Selecting "other" for partition volume type)
-[31]: https://opensource.com/sites/default/files/uploads/virtualbox_no_partition_3.png (Setting "No filesystem" on new partition)
-[32]: https://opensource.com/sites/default/files/uploads/virtualbox_disk_after.png (VirtualBox after adding new partition)
-[33]: https://opensource.com/sites/default/files/uploads/virtualbox_vgscan.png (Checking LVM volume group by typing vgscan:)
-[34]: https://opensource.com/sites/default/files/uploads/virtualbox_vgextend_2.png (vgextend command output)
-[35]: https://opensource.com/sites/default/files/uploads/virtualbox_vgdisplay.png (vgdisplay command output)
-[36]: https://opensource.com/sites/default/files/uploads/virtualbox_lvextend.png (lvextend command output)
-[37]: https://opensource.com/sites/default/files/uploads/virtualbox_resizefs.png (resize2fs command output)
diff --git a/sources/tech/20210709 What you need to know about security policies.md b/sources/tech/20210709 What you need to know about security policies.md
index 2e94785530..12289bea9b 100644
--- a/sources/tech/20210709 What you need to know about security policies.md
+++ b/sources/tech/20210709 What you need to know about security policies.md
@@ -2,7 +2,7 @@
[#]: via: (https://opensource.com/article/21/7/what-security-policy)
[#]: author: (Chris Collins https://opensource.com/users/clcollins)
[#]: collector: (lujun9972)
-[#]: translator: (FelixYFZ )
+[#]: translator: ( )
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
diff --git a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md
deleted file mode 100644
index 8cd2bba801..0000000000
--- a/sources/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md
+++ /dev/null
@@ -1,189 +0,0 @@
-[#]: subject: "Installing Packages From External Repositories in Ubuntu [Explained]"
-[#]: via: "https://itsfoss.com/adding-external-repositories-ubuntu/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Installing Packages From External Repositories in Ubuntu [Explained]
-======
-
-You have some ideas about installing packages in Ubuntu with apt command. Those packages come from Ubuntu’s repositories.
-
-How about third-party or external repository? No, I am not talking about PPA here.
-
-Sooner or later, you’ll come across installation instructions that goes in at least four lines. You install something called ‘apt-transport-https’ and then do something with gpg and sources list. After that, you install the package.
-
-Can’t recall completely. Let me share an example for [installing the latest version Yarn on Ubuntu][1]:
-
-```
-sudo apt install apt-transport-https curl
-curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
-sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
-sudo apt update && sudo apt install yarn
-```
-
-You’ll often come across such installation method while installing programming tools directly from the developers.
-
-Many people just follow the instructions without thinking twice about what’s going on here. Nothing wrong with that but knowing the process actually improves your knowledge on the matter and could also help in troubleshooting.
-
-Let me explain the logic behind those lines.
-
-### Understanding the procedure of installation from external repositories
-
-Before you proceed, I highly recommend reading these two articles so that things are a bit more clear to you:
-
- * [Concept of repositories in Ubuntu][2]
- * [Concept of PPA in Ubuntu][3]
-
-
-
-To recall quickly, here’s a visual representation of repositories and [package manager in Linux][4].
-
-![Illustration of repository and package manager][5]
-
-The entire idea here is that you add a new, external repository to your system. This way, you’ll be able to download and install packages available from this new repository. If the repository provides an update on the package version, you get to update the installed package along with the system updates (apt update && apt upgrade).
-
-So, how does this work? Let’s go through the lines one by one.
-
-#### Part 1: Getting HTTPS support for apt
-
-The first line is this:
-
-```
-sudo apt install apt-transport-https curl
-```
-
-Curl is a [tool for downloading files in Linux terminal][6]. The main part here is the installation of **apt-transport-https** and frankly speaking not needed anymore.
-
-Confused? This apt-transport-https package allows your system to access repositories over the secure HTTPS protocol. By design, Ubuntu repositories use http, not https.
-
-Take a look at the screenshot below. The https ones are the external repositories I have added into my system. Ubuntu repositories and PPA use http.
-
-![][7]
-
-In the older version of apt package manager, https support was not included. apt-transport-https package adds https support to apt. To add a repository that uses https, this package is installed first.
-
-Did I not say it is not needed anymore? Yes because the newer versions of apt (higher than 1.5) support https and thus you do not need to install apt-transport-https anymore.
-
-And yet you see this package mentioned in the instructions. This is more for legacy reasons or for really old distribution versions that might be using an older version of apt.
-
-Now, you may wonder why Ubuntu repositories use http, not https when https is the secure protocol. Is it not a security risk? The next segment will answer that question.
-
-#### Part 2: Adding GPG key of the remote repository
-
-Linux repositories have this built-in GPG-key based security mechanism. Every repository added its public GPG key to your system’s trusted keys. The packages from the repositories are ‘signed’ by this GPG key and thanks to the stored public key, your system verifies that the package is coming from the repository.
-
-If there is a [mismatch between the keys, your system will throw an error][8] instead of installing or updating packages from the said repository.
-
-So far, so good. The next step is to add the public GPG key of the external repository to your Linux system so that it trusts the package from this repository.
-
-```
-curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
-```
-
-In the above command, you download the GPG key from the given URL using curl. The option `sS` ensures that you don’t see the flooded output (silent mode) but shows the error (if any). The last `-` tells apt-key to take stdin instead of a file (which is the output of the curl command in this case).
-
-The download key is added to the system with `apt-key add` command.
-
-You can see the GPG keys added by various repositories in your system using the `apt-key list` command.
-
-![List GPG keys][9]
-
-That’s one way of adding the GPG key to the system. You’ll some other commands that my look slightly different but do the same job of adding the public key of the repository to your system.
-
-```
-sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
-```
-
-You’ll notice a warning that apt-key is deprecated. You could still use apt-key command till Ubuntu 22.04 but it will eventually be removed. Let’s not worry about it at the moment.
-
-#### Part 3: Adding the external repository to your sources list
-
-The next command adds a new entry into the sources list of your system. This way, your system will know that it has to check this repository for packages and updates.
-
-```
-sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
-```
-
-There is a file /etc/apt/sources.list that contains the details of the Ubuntu repositories. This file should not be touched. All the additional repositories should be placed in their own respective file (ending with .list convention) in the /etc/apt/sources.list.d directory.
-
-![External repository should have their own sources list file in the /etc/apt/sources.list.d directory][10]
-
-This makes package management easier. If you are removing a repository from the system, you just need to delete the corresponding sources file. No need to mess with the main sources.list file.
-
-Let’s look at the command in a bit more detail.
-
-```
-sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'
-```
-
-With sh, you are asking to run the command in a new shell, instead of the [subshell][11]. `-c` option tells the sh command to read the commands from the operand instead of standard input. Then it runs the echo command which basically adds line **deb stable main** to /etc/apt/sources.list.d/yarn.list file (file will be created)
-
-Now, there could be numerous ways you can create a .list file in the specified directory and add the line with repository details in it. You could use it like this as well:
-
-```
-echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
-```
-
-You get the gist, right?
-
-#### Part 4: Installing the application from newly added repository
-
-So far, you have added the GPG key of the repository and the URL of the repository to the system.
-
-But your system still does not know about the package available from this new repository. This is why you need to update the local cache of package metadata first with this command:
-
-```
-sudo apt update
-```
-
-Your system will have the information about the packages available from the newly added repository and you can install the package now:
-
-```
-sudo apt install yarn
-```
-
-To save time, you can [run the two commands one after another in a single lin][12]e.
-
-```
-sudo apt update && sudo apt install yarn
-```
-
-The `&&` ensures that the second command only runs when the previous command completed without any error.
-
-And thus the process completes.
-
-### Did it make things clear or confused you even more?
-
-I explained the logic behind the steps for using external repositories in Ubuntu. I hope you have a better understanding of the topic now, but it is also possible that too much detail could be confusing.
-
-If things are still not clear or if you have additional questions, please let me know. If you notice technical inaccuracies, please let me know in the comment section.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/adding-external-repositories-ubuntu/
-
-作者:[Abhishek Prakash][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://itsfoss.com/author/abhishek/
-[b]: https://github.com/lujun9972
-[1]: https://itsfoss.com/install-yarn-ubuntu/
-[2]: https://itsfoss.com/ubuntu-repositories/
-[3]: https://itsfoss.com/ppa-guide/#comments
-[4]: https://itsfoss.com/package-manager/
-[5]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2020/10/linux-package-manager-explanation.png?resize=800%2C450&ssl=1
-[6]: https://itsfoss.com/download-files-from-linux-terminal/
-[7]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/08/apt-update-http-https.png?resize=800%2C527&ssl=1
-[8]: https://itsfoss.com/solve-gpg-error-signatures-verified-ubuntu/
-[9]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/07/list-apt-key-gpg-ubuntu.png?resize=800%2C547&ssl=1
-[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/sources-list-ubuntu.png?resize=800%2C313&ssl=1
-[11]: https://linuxhandbook.com/subshell/
-[12]: https://itsfoss.com/run-multiple-commands-linux/
diff --git a/sources/tech/20210811 My top 5 tips for setting up Terraform.md b/sources/tech/20210811 My top 5 tips for setting up Terraform.md
deleted file mode 100644
index 143727fb09..0000000000
--- a/sources/tech/20210811 My top 5 tips for setting up Terraform.md
+++ /dev/null
@@ -1,75 +0,0 @@
-[#]: subject: "My top 5 tips for setting up Terraform"
-[#]: via: "https://opensource.com/article/21/8/terraform-tips"
-[#]: author: "Ayush Sharma https://opensource.com/users/ayushsharma"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-My top 5 tips for setting up Terraform
-======
-These are the lessons I've learned after five years with Terraform.
-![Puzzle pieces coming together to form a computer screen][1]
-
-Working with Terraform for over five years has taught me some key lessons. Five practices have been critical to having a logical and usable Terraform setup regardless of the size of the team or the nature of the project.
-
-### 1\. Know your target audience.
-
-This one might seem obvious, but I've seen it go wrong several times. When organizing Terraform code, either standardizing the directory structure or defining naming conventions, it's vital to consider the intended audience. Will your team be using these Terraform scripts and modules? Are you handing the work over to another team? Will new people be joining your team sooner or later? Are you working on this project solo? Will you be using this setup in six months or a year, or will it be assigned to someone else?
-
-Questions like these affect several decisions. Ideally, you should have [Remote State][2] and [State Locking][3] in place regardless of the team size now or in the future. Remote State will ensure your laptop is not the only place your Terraform works, and State Locking will ensure that only one person at a time is changing the infrastructure.
-
-The naming convention should make sense to the eventual owners of the project, not just the team that is writing the code. If the project is for another team, make sure they have a say in the naming convention. If non-technical stakeholders or internal security/GCR teams review the code, make sure they check the naming convention. In addition to resource names, you should leverage resource tags to highlight any data classification/privacy requirements (high, medium, low) for more careful examination by reviewers.
-
-### 2\. Reuse. Reuse. Reuse.
-
-The [Terraform Registry][4] provides a library of ready-to-use modules for the most common use-cases. I've written about the extensive parameterization available in the VPC module and security groups. Simply calling modules with different parameters is enough to handle most, if not all, potential use cases. Reuse these shared modules as much as possible to avoid endless typing, testing, checking, fixing, and refactoring.
-
-I've also found that separating modules and resources based on the frequency of use or change is beneficial. For example, infrastructure scaffolding used only once belongs together, such as setting up the VPC, security groups, routing tables, VPC endpoints, and so on. But things like private hosted zone entries, autoscaling groups, target groups, load balancers, etc., might change with every deployment, so separating these from the one-time scaffolding will make code reviews easier and debugging faster.
-
-### 3\. Be explicit rather than implicit.
-
-There are common patterns to Terraform code that I have seen lead to incorrect assumptions baked into the design. Teams can assume that the Terraform version used to write the code today will never change, or the external modules won't change, or the providers they are using won't change. These lead to invisible issues a few weeks down the road when these external dependencies inevitably get updated.
-
-Ensure you explicitly define versions everywhere possible: In the main Terraform block, in the provider block, in the module block, etc. Defining versions ensures that your dependent libraries stay frozen so that you can explicitly update dependencies when required after thorough discussions, reviews, and testing.
-
-### 4\. Automate everywhere. Your laptop. Your shared VM. Your CI/CD.
-
-Leveraging automation at every stage of the deployment process can avoid future problems before they even arise.
-
-Use [Git pre-commit hooks][5] to run `terraform fmt` and `terraform validate` before you commit your code. Pre-commit hooks ensure that code is, at a bare minimum, adequately formatted and syntactically correct. Check-in this pre-commit file to the repo, and everyone on your team can benefit from the same automation. This small but vital quality control at the first step of the process can achieve substantial time savings as your project progresses.
-
-All modern deployment tools have CI processes. You can use these to run SAST and unit testing tools when pushing your code to origin. I've written on my blog about how [Checkov can test Terraform code for security and compliance and create custom checks][6] for organization-specific conventions. Add these unit testing tools to your CI pipeline to improve code quality and robustness.
-
-### 5\. Have an awesome README.md.
-
-We all like to think that Terraform code is self-documenting. Sure it is, but only if your future team already knows your company's naming conventions and guidelines and secret handshakes and inside jokes and whatever else your repo contains besides valid Terraform code. Getting into the habit of having a good `README.md` can be a huge time saver, and it keeps your team honest by holding them accountable for everything explicitly committed to in the README.
-
-At a minimum, your README should contain the steps to initialize the right Terraform environment on your workstations (Linux, Windows, Mac, and so on), including the Terraform version to install. It should specify the required dependencies (Checkov, TerraGrunt, and others) with versions and any handy Linux aliases your team uses (some people like to define `tff` as a short-hand for `terraform fmt`). Most importantly, the branching and PR review strategy and process, naming conventions, and resource tagging standards should be specified.
-
-The README should pass a simple test: if a new member joins your team tomorrow, is the README enough to teach them what to do and how to do it correctly? If not, you may find yourself hosting never-ending standards and process meetings repeatedly for the next few months.
-
-### Wrap up
-
-After many years of working with Terraform, these are my five best bits of wisdom to pass along. Feel free to share your own best practices below.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/8/terraform-tips
-
-作者:[Ayush Sharma][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/ayushsharma
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/puzzle_computer_solve_fix_tool.png?itok=U0pH1uwj (Puzzle pieces coming together to form a computer screen)
-[2]: https://www.terraform.io/docs/language/state/index.html
-[3]: https://www.terraform.io/docs/language/state/locking.html
-[4]: https://registry.terraform.io/
-[5]: https://opensource.com/life/16/8/how-construct-your-own-git-server-part-6
-[6]: https://notes.ayushsharma.in/2021/07/cloud-infrastructure-sast-terraform-checkov
diff --git a/sources/tech/20210917 Open source game achievements.md b/sources/tech/20210917 Open source game achievements.md
deleted file mode 100644
index 663e6387a2..0000000000
--- a/sources/tech/20210917 Open source game achievements.md
+++ /dev/null
@@ -1,82 +0,0 @@
-[#]: subject: "Open source game achievements"
-[#]: via: "https://fedoramagazine.org/open-source-game-achievements/"
-[#]: author: "Dennis Payne https://fedoramagazine.org/author/dulsi/"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Open source game achievements
-======
-
-![][1]
-
-Photo by [Michał Parzuchowski][2] on [Unsplash][3]
-
-Learn how Gamerzilla brings an achievement system to open source games and enables all developers to implement achievements separate from the game platform.
-
-Some open source games rival the quality of commercial games. While it is hard to match the quality of triple-a games, open source games compete effectively against the indie games. But, gamer expectations change over time. Early games included a high score. Achievements expanded over time to promote replay. For example, you may have completed a level but you didn’t find all the secrets or collect all the coins. The Xbox 360 introduced the first multi-game online achievement system. Since that introduction, many game platforms added an achievement system.
-
-Open source games are largely left out of the achievement systems. You can publish an open source game on Steam, but it costs money and they focus on working with companies not the free software community. Additionally, this locks players into a non-free platform.
-
-Commercial game developers are not well served either, since some players enjoy achievements and refuse to purchase from other stores due to the inability to share their accomplishments. This lock-in gives the power to the platform holder. Each platform has a different system forcing the developer to implement support and testing multiple times. Smaller platform are likely to be skipped entirely. Furthermore, the platform holder has access to the achievement data on all companies using their system which could be used for competitive advantage.
-
-### Architecture of Gamerzilla
-
-[Gamerzilla][4] is an open source game achievement system which attempts to correct this situation. The design considered both open source and commercial games. You can run your own Gamerzilla server, use one provided by a game store, or even distributions, or other groups could run them. Where you buy the game doesn’t matter. The achievement data uploads to your Gamerzilla server.
-
-Game achievements require two things, a game, and a Gamerzilla server. As game collections grow, however, that setup has a disadvantage. Each game needs to have credentials to upload to the Gamerzilla server. Many gamers turn to game launchers due to their large number of games and ability to synchronize with one or more stores. By adding Gamerzilla support to the launcher, the individual games no longer need to know your credentials. Session results will relay from the game launcher to the Gamerzilla server.
-
-At one time, freegamedev.net provided the Hubzilla social networking system. We created an addon allowing us to jump start Gamerzilla development. Unfortunately server upgrades broke the service so freegamedev.net stopped offering it.
-
-For Gamerzilla servers, two implementations exist. Maintaining Hubzilla is a complex task, so we developed a standalone Gamerzilla service using *.*Net and React. The API used by games remains the same so it doesn’t matter which implementation you connect to.
-
-Game launchers development and support often lags. To facilitate adding support, we created libgamerzilla. The library handles all the interaction between the game launcher, games, and the Gamerzilla server. Right now only _GameHub_ has an implementation with Gamerzilla support and merging into the project is pending. On Fedora Linux, libgamerzilla-server package serves as a temporary solution. It does not launch games but listens for achievements and relays them to your server.
-
-Game support continues growing. As with game launchers, developers use libgamerzilla to handle the Gamerzilla integration. The library, written in C, is in use in a variety of languages like Python and nim. Games which already have an achievement system typically take only a few days to add support. For other games ,collecting all the information to award the achievements occupies the bulk of the implementation time.
-
-### Setting up a server
-
-The easiest server to setup is the Hubzilla addon. That, however, requires a working Hubzilla site which is not the simplest thing to setup. The new .Net and React server can be setup relatively easily on Fedora Linux, although there are a lot of steps. The [readme][5] details all the steps. The long set of steps is, in part, due to the lack of a built release. This means you need to build the .Net and the React code. Once built, React code serves up directly in Apache. A new service runs the .Net piece. Apache proxies all requests to the Gamerzilla API for the new service.
-
-With the setup steps done, Gamerzilla runs but there are no users. There needs to be an easy way to create an administrator and register new users. Unfortunately this piece does not exist yet. At this time, users must be entered directly using the sqlite3 command line tool. The instructions are in the [readme][5]. Users can be publicly visible or not. The approval flag allows new users to not use the system immediately but web registration still needs to be implemented The user piece is designed with replacement in mind. It would not be hard to replace backend/Service/UserService.cs to integrate with an existing site. Gaming web sites could use this to offer Gamerzilla achievements to their users.
-
-Currently the backend uses a sqlite database. No performance testing has been done. We expect that larger installations may need to modify the system to use a more robust database system.
-
-### Testing the system
-
-There is no game launcher easily available at the moment. If you install libgamerzilla-server, you will have the command _gamerzillaserver_ available from the command line. The first time you run it, you enter your url and login information. Subsequent executions will simply read the information from the configuration file. There is currently no way to correct a mistake except deleting the file at _.local/share/ga_merzillaserver/server.cfg and running _gamerzillaserver_ again.
-
-Most games have no built releases with Gamerzilla support. [Pinball Disc Room on itch.io][6] does have support built in the Linux version. The web version has no achievements There are only two achievements in the game, one for surviving for ten seconds and the other for unlocking and using the tunnel. With a little practice you can get an achievement. You need to check your Gamerzila server as the game provides no visual notification of the achievement.
-
-Currently no game packaged in Fedora Linux supports Gamerzilla. SuperTuxKart merged support but is still awaiting a new release. Seahorse adventures and Shippy 1984 added achievements but new releases are not packaged yet. Some games with support, we maintain independently as the developers ignore pull requests or other attempt to contact them.
-
-### Future work
-
-Gamerzilla needs more games. A variety of games currently support the system. An addition occurs nearly every month. If you have a game you like, ask the developer to support Gamerzilla. If you are making a game and need help adding support, please let us now.
-
-Server development proceeds at a slow pace and we hope to have a functional registration system soon. After that we may setup a permanent hosting site. Right now you can see our [test server][7]. Some people expressed concern with the .Net backend. The API is not very complex and could be rewritten in Python fairly easily.
-
-The largest unknown remains game launchers. GameHub wants a generic achievement interface. We could try to work with them to get that implemented. Adding support to the itch.io app could increase interest in the system. Another possibility is to do away with the game launcher entirely. Perhaps adding something like the gamerzillaserver to Gnome might be possible. You would then configure your url and login information on a settings page. Any game launched could then record achievements.
-
---------------------------------------------------------------------------------
-
-via: https://fedoramagazine.org/open-source-game-achievements/
-
-作者:[Dennis Payne][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://fedoramagazine.org/author/dulsi/
-[b]: https://github.com/lujun9972
-[1]: https://fedoramagazine.org/wp-content/uploads/2021/09/game_acheivements-816x345.jpg
-[2]: https://unsplash.com/@mparzuchowski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[3]: https://unsplash.com/s/photos/jenga?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[4]: http://identicalsoftware.com/gamerzilla/
-[5]: https://github.com/dulsi/gamerzilla.net#readme
-[6]: https://dulsi.itch.io/pinball-disc-room
-[7]: http://108.49.106.217/
diff --git a/sources/tech/20210922 Install PowerShell on Fedora Linux.md b/sources/tech/20210922 Install PowerShell on Fedora Linux.md
deleted file mode 100644
index 05a2aa5445..0000000000
--- a/sources/tech/20210922 Install PowerShell on Fedora Linux.md
+++ /dev/null
@@ -1,320 +0,0 @@
-[#]: subject: "Install PowerShell on Fedora Linux"
-[#]: via: "https://fedoramagazine.org/install-powershell-on-fedora-linux/"
-[#]: author: "TheEvilSkeletonOzymandias42 https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Install PowerShell on Fedora Linux
-======
-
-![][1]
-
-Photos by [NOAA][2] and [Cedric Fox][3] on [Unsplash][4]
-
-PowerShell (also written pwsh) is a powerful open source command-line and object-oriented shell developed and maintained by Microsoft. It is syntactically verbose and intuitive for the user. This article is a guide on how to install PowerShell on the host and inside a Podman or Toolbox container.
-
-### Table of contents
-
- * [Why use PowerShell][5]
- * [Demonstration][6]
- * [Comparison between Bash and PowerShell][7]
- * [Install PowerShell][8]
- * [Install PowerShell on a host using the package manager][9]
- * [Method 1: Microsoft repositories][10]
- * [Method 2: RPM file][11]
- * [Install via container][12]
- * [Method 1: Podman container][13]
- * [Method 2: Fedora Linux Toolbox container][14]
-
-
-
-### Why use PowerShell
-
-PowerShell, as the name suggests, is _power_ful. The syntax is verbose and semantically clear to the end user. For those that don’t want to write long commands all the time, most commands are aliased. The aliases can be viewed with _Get-Alias_ or [here][15].
-
-The most important difference between PowerShell and traditional shells, however, is its output pipeline. While normal shells output strings or character streams, PowerShell outputs objects. This has far reaching implications for how command pipelines work and comes with quite a few advantages.
-
-#### Demonstration
-
-The following examples illustrate the verbosity and simplicity. Lines that start with the pound symbol (**#**) are comments. Lines that start with **PS >** are commands, **PS >** being the prompt:
-
-```
-# Return all files greater than 50MB in the current directory.
-## Longest form
-PS > Get-Childitem | Where-Object Length -gt 50MB
-## Shortest form (with use of aliases)
-PS > gci | ? Length -gt 40MB
-## Output looks like this
- Directory: /home/Ozymandias42/Downloads
-Mode LastWriteTime Length Name
----- ------------- ------ ----
------ 20/08/2020 13:55 2000683008 40MB-file.img
-
-
-# In order: get VMs, get snapshots, only select the last 3 and remove selected list:
-PS > Get-VM VM-1 | Get-Snapshot | Select-Object -Last 3 | Remove-Snapshot
-```
-
-What this shows quite well is that input-output reformatting with tools like _cut_, _sed_, _awk_ or similar, which Bash scripts often need, is usually not necessary in PowerShell. The reason for this is that PowerShell works fundamentally different than traditional POSIX shells such as Bash, Zsh, or other shells like Fish. The commands of traditional shells are output as strings whereas in PowerShell they are output as objects.
-
-#### Comparison between Bash and PowerShell
-
-The following example illustrates the advantages of the object-output in PowerShell in contrast to the traditional string-output in Bash. Suppose you want a script that outputs all processes that occupy 200MB or more in RAM. With Bash, this might look something like this:
-
-```
-$ ps -eO rss | awk -F' ' \
- '{ if($2 >= (1024*200)) { \
- printf("%s\t%s\t%s\n",$1,$2,$6);} \
- }'
-
-PID RSS COMMAND
-A B C
-[...]
-```
-
-The first obvious difference is readability or more specifically, semantic clarity. Neither _ps_ nor _awk_ are self-descriptive. _ps_ shows the **p**rocess **s**tatus and _awk_ is a text processing tool and language whose letters are the initials of its developers’ last names, **A**ho, **W**einberger, **K**ernighan (see [Wikipedia][16]). Before contrasting it with PowerShell however, examine the script:
-
- * _ps -e_ outputs all running processes;
-
- * _-O rss_ outputs the default output of _ps_ plus the amount of kilobytes each process uses, the _rss_ field; this output looks like this:
-
-```
-PID RSS S TTY TIME COMMAND 1 13776 S ? 00:00:01 /usr/lib/systemd/systemd
-```
-
- * | pipe operator uses the output of the command on the left side as input for the command on the right side.
-
- * _awk -F’ ‘_ declares “space” as the input field separator. So going with the above example, PID is the first, RSS the second and so on.
-
- * _‘{ if($2 >= (1024*200)_ is the beginning of the actual AWK-script. It checks whether field 2 ([RSS][17]) contains a number larger than or equal to 1024*200KB (204800KB, or 200MB);
-
- * _{ printf(“%s\t%s\t%s\n”,$1,$2,$6);} }’_ continues the script. If the previous part evaluates to true, this outputs the first, second and sixth field ([PID][18], [RSS][17] and COMMAND fields respectively).
-
-
-
-
-With this in mind, step back and look at what was required for this script to be written and for it to work:
-
- * The input command _ps_ had to have the field we wanted to filter against in its output. This was not the case by default and required us to use the _-O_ flag with the _rss_ field as argument.
- * We had to treat the output of _ps_ as a list of input fields, requiring us to know their order and structure. Or in other words, we had to at least _know_ that _RSS_ would be the second field. Meaning we had to know how the output of _ps_ would look beforehand.
- * We then had to know what unit the data we were filtering against was in as well as what unit the processing tool would work in. Meaning we had to know that the _RSS_ field uses kilobytes and that _awk_ does too. Otherwise we would not have been able to write the expression _($2 <= 1024*200)_
-
-
-
-Now, contrast the above with the PowerShell equivalent:
-
-```
-# Longest form
-PS > Get-Process | Where-Object WorkingSet -ge 200MB
-# Shortest form (with use of aliases)
-PS > gps | ? ws -ge 200MB
-
-NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------- ----- ----- ------ -- -- -----------
- A B C D E F G
-[...]
-```
-
-This first thing to notice is that we have perfect semantic clarity. The commands are perfectly self-descriptive in what they do.
-
-Furthermore there is no requirement for input-output reformatting, nor is there concern about the unit used by the input command. The reason for this is that PowerShell does not output strings, but objects.
-
-To understand this think about the following. In Bash the output of a command is equal to that what it prints out in the terminal. In PowerShell what is printed on the terminal is not equal to the information, that is actually available. This is, because the output-printing system in PowerShell also works with objects. So every command in PowerShell marks some of the properties of its output objects as printable and others not. However, it always includes all properties, whereas Bash only includes what it actually prints. One can think of it like JSON objects. Where output in Bash would be separated into “fields” by a delimiter such as a space or tab, it becomes an easily addressable object property in PowerShell, with the only requirement being, that one has to know its name. Like _WorkingSet_ in the above example.
-
-To see all available properties of a command’s output objects and their types, one can simply do something like:
-
-```
-PS > Get-Process | Get-Member
-```
-
-### Install PowerShell
-
-PowerShell is available in several package formats, including RPM used by Fedora Linux. This article shows how to install PowerShell on Fedora Linux using various methods.
-
-I recommend installing it natively. But I will also show how to do it in a container. I will show using both the official Microsoft PowerShell container and a Fedora Linux 30 toolbox container. The advantage of the container-method is that it’s guaranteed to work, since all dependencies are bundled in it, and isolation from the host. Regardless, I recommend doing it natively, despite the official docs only explicitly stating Fedora Linux releases 28 to 30 as being supported.
-
-**Note:** Supported means guaranteed to work. It does not necessarily mean incompatible with other releases. This means, that while not guaranteed, releases higher than 30 should still work. They did in fact work in our tests.
-
-It is more difficult to set up PowerShell and run it in a container than to run it directly on a host. It takes more time to install and you will not be able to run host commands directly.
-
-#### Install PowerShell on a host using the package manager
-
-##### Method 1: Microsoft repositories
-
-Installation is as straight-forward as can be and the procedure doesn’t differ from any other software installed through third party repositories.
-
-It can be split into four general steps:
-
- 1. Adding the new repository’s GPG key
- 2. Adding repository to DNF repository list
- 3. Refreshing DNF cache to include available packages from the new repository
- 4. Installing new packages
-
-
-
-Powershell is then launched with the command _pwsh_.
-
-```
-$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
-$ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
-$ sudo dnf makecache
-$ sudo dnf install powershell
-$ pwsh
-```
-
-To remove the repository and packages, run the following.
-
-```
-$ sudo rm /etc/yum.repos.d/microsoft.repo
-$ sudo dnf remove powershell
-```
-
-##### Method 2: RPM file
-
-This method is not meaningfully different from the first method. In fact it adds the GPG key and the repository implicitly when installing the RPM file. This is because the RPM file contains the link to both in it’s metadata.
-
-First, get the _.rpm_ file for the version you want from the [PowerShell Core GitHub repository][19]. See the readme.md
-“Get Powershell” table for links.
-
-Second, enter the following:
-
-```
-$ sudo dnf install powershell-.rhel.7..rpm
-```
-
-Substitute _<version>_ and _<architecture>_ with the version and architecture you want to use respectively, for example [powershell-7.1.3-1.rhel.7.x86_64.rpm][20].
-
-Alternatively you could even run it with the link instead, skipping the need to download it first.
-
-```
-$ sudo dnf install https://github.com/PowerShell/PowerShell/releases/download/v/powershell-.rhel.7..rpm
-```
-
-To remove PowerShell, run the following.
-
-```
-$ sudo dnf remove powershell
-```
-
-#### Install via container
-
-##### Method 1: Podman container
-
-Podman is an [Open Container Initiative][21] (OCI) compliant drop-in replacement for Docker.
-
-Microsoft provides a [PowerShell Docker container][22]. The following example will use that container with Podman.
-
-For more information about Podman, visit [Podman.io][23]. Fedora Magazine has a [tag][24] dedicated to Podman.
-
-To use PowerShell in Podman, run the following script:
-
-```
-$ podman run \
- -it \
- --privileged \
- --rm \
- --name powershell \
- --env-host \
- --net=host --pid=host --ipc=host \
- --volume $HOME:$HOME \
- --volume /:/var/host \
- mcr.microsoft.com/powershell \
- /usr/bin/pwsh -WorkingDirectory $(pwd)
-```
-
-This script creates a Podman container for PowerShell and immediately attaches to it. It also mounts the _/home_ and the host’s root directories into the container so they’re available there. However, the host’s root directory is available in _/var/host_.
-
-Unfortunately, you can only indirectly run host commands while inside the container. As a workaround, run _chroot /var/host_ to chroot to the root and then run host commands.
-
-To break the command down, everything is mandatory unless specified:
-
- * -it creates a persistent environment that does not kick you out when you enter it;
- * \--privileged gives extended privileges to the container (optional);
- * \--rm removes the container when you exit;
- * \--name powershell sets the name of the container to _powershell_;
- * \--env-host sets all host environment variables to the container’s variables (optional);
- * \--volume $HOME:$HOME mounts the user directory;
- * \--volume /:/var/host mounts the root directory to _/var/host_ (optional);
- * \--net=host --pid=host --ipc=host runs the process in the host’s namespaces instead of a separate set of namespaces for the contained process;
- * docker.io/microsoft/powershell enters the container;
- * /usr/bin/pwsh -WorkingDirectory $(pwd) enters the container in the current directory (optional).
-
-
-
-Optional but very convenient: alias _pwsh_ with the script to easily access the Podman container by typing _pwsh_.
-
-To remove the PowerShell image, run the following.
-
-```
-$ podman rmi mcr.microsoft.com/powershell
-```
-
-##### Method 2: Fedora Linux Toolbox container
-
-Toolbox is an elegant solution to setup persistent environments without affecting the host system as a whole. It acts as a wrapper around Podman and takes care of supplying a lot of the flags demonstrated in the previous method. For this reason, Toolbox is a lot easier to use than Podman. It was designed to work for development and debugging. With Toolbox, you can run any command the same as you would directly on the Fedora Workstation host (including _dnf_).
-
-The installation procedure is similar to the installation on the host methods, with the only difference being that those steps are done inside a container. Make sure you have the _toolbox_ package installed.
-
-Preparing and entering the Fedora 34 Toolbox container is a two step process:
-
- 1. Creating the Fedora 34 Toolbox container
- 2. Running the Fedora 34 Toolbox container
-
-
-
-```
-$ toolbox create --image registry.fedoraproject.org/f34/fedora-toolbox
-$ toolbox enter --container fedora-toolbox
-```
-
-Then, follow the instructions at [Method 1: Microsoft repositories][10].
-
-Optional but very convenient: alias _pwsh_ with _toolbox run –container fedora-toolbox_ _pwsh_ to easily access the Toolbox container by typing _pwsh_.
-
-To remove the Toolbox container, make certain you have stopped the Toolbox session by entering _exit_ and then run the following:
-
-```
-$ podman kill fedora-toolbox
-$ toolbox rm fedora-toolbox
-```
-
---------------------------------------------------------------------------------
-
-via: https://fedoramagazine.org/install-powershell-on-fedora-linux/
-
-作者:[TheEvilSkeletonOzymandias42][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://fedoramagazine.org/author/theevilskeleton/https://fedoramagazine.org/author/ozymandias42/
-[b]: https://github.com/lujun9972
-[1]: https://fedoramagazine.org/wp-content/uploads/2021/05/powershell-816x345.jpg
-[2]: https://unsplash.com/@noaa?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[3]: https://unsplash.com/@thecedfox?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[4]: https://unsplash.com/s/photos/shell?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText
-[5]: tmp.c7U2gcu9Hl#why-use-powershell
-[6]: tmp.c7U2gcu9Hl#demonstration
-[7]: tmp.c7U2gcu9Hl#comparison-between-bash-and-powershell
-[8]: tmp.c7U2gcu9Hl#install-powershell
-[9]: tmp.c7U2gcu9Hl#install-on-host-via-package-manager
-[10]: tmp.c7U2gcu9Hl#method-1-microsoft-repositories
-[11]: tmp.c7U2gcu9Hl#method-2-rpm-file
-[12]: tmp.c7U2gcu9Hl#install-via-container
-[13]: tmp.c7U2gcu9Hl#method-1-podman-container
-[14]: tmp.c7U2gcu9Hl#method-2-fedora-toolbox-container
-[15]: https://ilovepowershell.com/2011/11/03/list-of-top-powershell-alias/
-[16]: https://en.wikipedia.org/wiki/AWK
-[17]: https://en.wikipedia.org/wiki/Resident_set_size
-[18]: https://en.wikipedia.org/wiki/Process_identifier
-[19]: https://github.com/PowerShell/PowerShell
-[20]: https://github.com/PowerShell/PowerShell/releases/download/v7.1.3/powershell-7.1.3-1.rhel.7.x86_64.rpm
-[21]: https://opencontainers.org/
-[22]: https://hub.docker.com/_/microsoft-powershell
-[23]: https://podman.io/
-[24]: https://fedoramagazine.org/tag/podman/
diff --git a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md b/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md
deleted file mode 100644
index 3fd4ae17bb..0000000000
--- a/sources/tech/20210929 Troubleshooting -Bash- Command Not Found- Error in Linux.md
+++ /dev/null
@@ -1,151 +0,0 @@
-[#]: subject: "Troubleshooting “Bash: Command Not Found” Error in Linux"
-[#]: via: "https://itsfoss.com/bash-command-not-found/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Troubleshooting “Bash: Command Not Found” Error in Linux
-======
-
-_**This beginner tutorial shows how to go about fixing the Bash: command not found error on Debian, Ubuntu and other Linux distributions.**_
-
-When you use commands in Linux, you expect to see an output. But sometimes, you’ll encounter issues where the terminal shows ‘command not found’ error.
-
-![][1]
-
-There is no straightforward, single solution to this error. You have to do a little bit of troubleshooting on your own.
-
-It’s not too difficult, honestly. The error gives some hint already when it says “bash: command not found”. Your shell (or Linux system) cannot find the command you entered.
-
-There could be three possible reasons why it cannot find the command:
-
- * It’s a typo and the command name is misspelled
- * The command is not even installed
- * The command is basically an executable script and its location is not known
-
-
-
-Let’s go in detail on each possible root cause.
-
-### Fixing “bash: command not found” error
-
-![][2]
-
-#### Method 1: Double check the command name (no, seriously)
-
-It is human to make mistakes, specially while typing. It is possible that the command you entered has a typo (spelling mistake).
-
-You should specially pay attention to:
-
- * The correct command name
- * The spaces between the command and its options
- * The use of 1 (numeral one), I (capital i) and l (lowercase L)
- * Use of uppercase and lowercase characters
-
-
-
-Take a look at the example below, where I have misspelled the common ls command.
-
-![][3]
-
-So, make double sure what you are typing.
-
-#### Method 2: Ensure that the command is installed on your system
-
-This is another common reason behind the command not found error. You cannot run a command if it is not installed already.
-
-While your Linux distribution comes with a huge number of commands installed by default, it is not possible to pre-install all the command line tools in a system. If the command you are trying to run is not a popular, common command, you’ll have to install it first.
-
-You can use your distribution’s package manager to install it.
-
-![You may have to install the missing command][4]
-
-In some cases, popular commands may get discontinued and you may not even install it anymore. You’ll have to find an alternative command to achieve the result.
-
-Take the example of ipconfig command. This deprecated command was used for [getting Ip address][5] and other network interface information. Older tutorials on the web still mention using this command but you cannot use it anymore in newer Linux versions. It has been replaced by the ifconfig tool.
-
-![Some popular commands get discontinued over the time][1]
-
-Occasionally, your system won’t find even the extremely common commands. This is often the case when you are running a Linux distribution in Docker containers. To cut down on the size of the operating system image, the containers often do not include even the most common Linux commands.
-
-This is why Docker user stumble across things like [ping command not found error][6] etc.
-
-![Docker containers often have only a few commands installed][7]
-
-So, the solution is to either install the missing command or find a tool that could do the same thing you were trying to do with the missing command.
-
-#### Method 3: Check if it is an executable script with correct path
-
-This is a common mistake Linux rookies make while [running a shell script][8].
-
-Even if you are in the same directory and try to run an executable script just by its name, it will show an error.
-
-```
-[email protected]:~/scripts# sample
--bash: sample: command not found
-```
-
-You need to either specify the shell interpreter explicitly or its absolute path.
-
-![][9]
-
-If you are in some other directory and try to execute the shell script without giving the correct path to the file, it will complain about not finding the file.
-
-![][10]
-
-##### Adding it to the PATH
-
-In some cases, you download the entire software in a tar file, extract it and find an executable file along with other program files. To run the program, you need to run the executable file.
-
-But for that, you need to be in the same directory or specify the entire path to the executable file. This is tiresome.
-
-Here, you can use the PATH variable. This variable has a collection of directories and these directories have the binary (executable) files of various Linux commands. When you run a command, your Linux system checks the mentioned directories in the PATH variable to look for the executable file of that command.
-
-You can check the location of the binary of a command by using the `which` command:
-
-![][11]
-
-If you want to run an executable file or script from anywhere on the system, you need to add the location of the file to this PATH variable.
-
-![][12]
-
-The PATH variable then needs to be added to the rc file of the shell so that the changes made to PATH variable is permanent.
-
-You get the gist here. It is important that your Linux system has the knowledge about the location of the executable script. Either you give the path while running it or you add its location to the PATH variable.
-
-### Did it help you?
-
-I understand that when you are new to Linux, things could be overwhelming. But when you understand the root cause of the problem, it gradually improved your knowledge.
-
-Here, there is no straightforward solution possible for the ‘command not found error’. I gave you some hints and pointers and that should help you in troubleshooting.
-
-If you still have doubt or need help, please let me know in the comment section.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/bash-command-not-found/
-
-作者:[Abhishek Prakash][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://itsfoss.com/author/abhishek/
-[b]: https://github.com/lujun9972
-[1]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error.png?resize=741%2C291&ssl=1
-[2]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-command-not-found-error-1.png?resize=800%2C450&ssl=1
-[3]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-error.png?resize=723%2C234&ssl=1
-[4]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/command-not-found-debian.png?resize=741%2C348&ssl=1
-[5]: https://itsfoss.com/check-ip-address-ubuntu/
-[6]: https://linuxhandbook.com/ping-command-ubuntu/
-[7]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/ping-command-not-found-ubuntu.png?resize=786%2C367&ssl=1
-[8]: https://itsfoss.com/run-shell-script-linux/
-[9]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/bash-script-command-not-found-error-800x331.png?resize=800%2C331&ssl=1
-[10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/09/script-file-not-found-error-800x259.png?resize=800%2C259&ssl=1
-[11]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/path-location.png?resize=800%2C241&ssl=1
-[12]: https://i2.wp.com/itsfoss.com/wp-content/uploads/2021/09/adding-executable-to-PATH-variable-linux.png?resize=800%2C313&ssl=1
diff --git a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md b/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md
deleted file mode 100644
index 2af97315bf..0000000000
--- a/sources/tech/20211020 Diagnose connectivity issues with the Linux ping command.md
+++ /dev/null
@@ -1,162 +0,0 @@
-[#]: subject: "Diagnose connectivity issues with the Linux ping command"
-[#]: via: "https://opensource.com/article/21/10/linux-ping-command"
-[#]: author: "Seth Kenlon https://opensource.com/users/seth"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Diagnose connectivity issues with the Linux ping command
-======
-One of the most fundamental diagnostic tools for networked connectivity
-is the ping command.
-![World locations with red dots with a sun burst background][1]
-
-Networked computers are so common these days that most of us take it for granted that a computer on one side of a room can contact one on the other side of the room, much less the other side of the world. When it works as designed, networking is what makes the Internet, the cloud, file shares, media streaming, remote administration, printing, and much more possible. When something goes wrong, it can sometimes be challenging to diagnose. One of the most fundamental diagnostic tools for networked connectivity is the `ping` command.
-
-### The basic ping
-
-When you can't reach a computer on your local network, or a server on the Internet, you can ping it. A ping sends an Internet Control Message Protocol (ICMP) packet to a destination IP address. ICMP is, by design, a rudimentary format used mostly for diagnostics: It's essentially a call and response signal.
-
-But there's an order to troubleshooting, and it starts as close to home as possible. When in doubt, first ping your own computer to ensure you're running a networking stack. The computer you're operating is also called your _localhost_, and it has a special IP address assigned for speaking to itself: 12.0.0.1.
-
-The `ping`** **command understands the _localhost_ hostname, its IP address, and a shortcut of just `0`.
-
-You can control how many signals you send with the `-c` (as in _count_)** **option.
-
-
-```
-$ ping 0 -c1
-PING 0 (127.0.0.1) 56(84) bytes of data.
-64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
-
-\--- 0 ping statistics ---
-1 packets transmitted, 1 received, 0% packet loss, time 0ms
-rtt min/avg/max/mdev = 0.069/0.069/0.069/0.000 ms
-```
-
-After you've established that your local networking stack is up and running, you can ping your router. The address of a router usually starts with 192,168, or 10. The exact IP address depends on your router's configuration.
-
-When you don't specify how many pings to send, you can stop `ping` from running with **Ctrl**+**C**.
-
-
-```
-$ ping 192.168.0.1
-PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
-From 192.168.0.100: icmp_seq=2 Redirect Host(New nexthop: 192.168.0.1)
-From 192.168.0.100: icmp_seq=3 Redirect Host(New nexthop: 192.168.0.1)
-From 192.168.0.100: icmp_seq=4 Redirect Host(New nexthop: 192.168.0.1)
-From 192.168.0.100: icmp_seq=5 Redirect Host(New nexthop: 192.168.0.1)
-^C
-```
-
-If you can reach your router, that means your wired or wireless connection is working.
-
-What about other hosts on my network? You can ping all kinds of devices. Not all are guaranteed to respond (some devices drop ICMP packets), but many do. For instance, I can ping my printer:
-
-
-```
-`$ ping 192.168.0.4 `
-```
-
-### Pinging beyond your network
-
-Beyond establishing that your own network is working as expected, you can also ping out into the wider world beyond your router. Again, not all servers are permitted to receive, much less respond to, ICMP. However, there are some that do, and a vital server to the working of the Internet is a nameserver.
-
-Google's DNS server is relatively easy to remember, and it does respond to pings:
-
-
-```
-$ ping -c 2 8.8.8.8
-PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
-64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
-64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.5 ms
-
-\--- 8.8.8.8 ping statistics ---
-2 packets transmitted, 2 received, 0% packet loss, time 1000ms
-rtt min/avg/max/mdev = 53.304/53.424/53.544/0.120 ms
-```
-
-When a site has apparently disappeared, you might be able to probe the worldwide DNS network to find out what its host server's address is, and then ping that server. This at least tells you whether the host is down or whether it's just a web server issue.
-
-For example, say you're trying unsuccessfully to reach example.com. First, find the IP address using the `host` command:
-
-
-```
-$ host example.com
-example.com has address 93.184.216.34
-example.com has IPv6 address 2606:2800:220:1:248:1893:25c8:1946
-example.com mail is handled by 0
-```
-
-And then ping the website's host by IP:
-
-
-```
-`$ ping 93.184.216.34 -c 1`
-```
-
-### Ping and IPv6
-
-Ping works over IPv4 as well as IPv6. Using only one of them explicitly can be enforced by specifying `-4` or `-6`.
-
-### Packet size
-
-You can change the size of the ICMP packets you're sending with the `-s` option. The default packet size is 56, which translates into 64 ICMP data bytes when combined with the 8-byte header. This command sends 43 bytes:
-
-
-```
-`$ ping -s 35 -c 5 8.8.8.8`
-```
-
-You can print a timestamp before each ping report in your terminal with the `-D` option. This provides the UNIX epoch time, plus microseconds:
-
-
-```
-$ ping -D 8.8.8.8
-PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
-[1634013430.297468] 64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=53.3 ms
-[1634013431.298738] 64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=53.1 ms
-```
-
-### Ping time
-
-You can change the time interval between pings using the `-i` option. This changes the ping interval to two seconds:
-
-
-```
-`$ ping -s 2 `
-```
-
-You can also stop pinging after some value of time (in seconds) with the `-w` option:
-
-
-```
-`$ ping -w 6`
-```
-
-### Variants
-
-There are many implementations of ping. The `iputils` package provides a `ping` command, [Busybox ][2]has a `ping` command, and there's one from BSD and others. There's even a GUI for `ping`: Gping is available for Linux, macOS, and Windows. You can find more information for `gping` on [Github][3].
-
-### Learn to ping
-
-The `ping` command is simple, but it can be eyes and ears out on the vast expanse that is your network. Next time you have connectivity issues, let `ping` be the first tool you turn to.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/21/10/linux-ping-command
-
-作者:[Seth Kenlon][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/seth
-[b]: https://github.com/lujun9972
-[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/world_remote_teams.png?itok=Wk1yBFv6 (World locations with red dots with a sun burst background)
-[2]: https://opensource.com/article/21/8/what-busybox
-[3]: https://github.com/orf/gping
diff --git a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md b/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md
deleted file mode 100644
index 096deb298b..0000000000
--- a/sources/tech/20220519 For the Love of Ubuntu- Here are the Mascots of All Ubuntu Releases.md
+++ /dev/null
@@ -1,461 +0,0 @@
-[#]: subject: "For the Love of Ubuntu: Here are the Mascots of All Ubuntu Releases"
-[#]: via: "https://itsfoss.com/all-Ubuntu-mascots/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-For the Love of Ubuntu: Here are the Mascots of All Ubuntu Releases
-======
-This is a collection of the mascots of all the Ubuntu releases so far.
-
-You may have noticed that every Ubuntu release has a version name and codename. The codename is composed of two words that start with the same letter. The first word is an adjective, and the other one is (usually) an (endangered) species.
-
-These releases also have a mascot for those codenames. Ubuntu 22.04 is codenamed Jammy Jellyfish and hence the Jellyfish mascot on its wallpaper.
-
-These ‘mascots’ were not always part of Ubuntu releases. The codenames were always there, but not the mascots.
-
-The first-ever Ubuntu release was version 4.10 in October 2004. But it wasn’t until the Ubuntu 8.04 LTS ‘Hardy Heron’ release that you saw the associated mascot.
-
-Earlier, I complied the [list of the default wallpapers of all Ubuntu releases][1]. In this one, you get to look at the mascots of those releases.
-
-Let’s hop on to Ubuntu’s mascot journey in reverse chronological order.
-
-### Ubuntu 22.04 Jammy Jellyfish
-
-![Ubuntu 22.04 mascot][2]
-
-Released on 21 April 2021.
-
-Jammy means covered with, filled with, or resembling jam. Informally, it also means lucky.
-
-Jellyfish are mainly free-swimming marine animals with umbrella-shaped bells and trailing tentacles, although a few are anchored to the seabed by stalks rather than being mobile.
-
-### Ubuntu 21.10 Impish Indri
-
-![Ubuntu 21.10 mascot][3]
-
-Released on 14 October 2021.
-
-Impish means showing no respect for somebody/something in a way that is amusing rather than serious.
-
-The Indri, also called the babakoto, is one of the largest living lemurs, with a head-and-body length of about 64–72 cm and a weight of between 6 and 9.5 kg. It has a black and white coat and maintains an upright posture when climbing or clinging
-
-### Ubuntu 21.04 Hirsute Hippo
-
-![Ubuntu 21.04 mascot][4]
-
-Released on 22 April 2021.
-
-Hirsute means hairy.
-
-The hippopotamus, also called the hippo, common hippopotamus, or river hippopotamus, is a large semiaquatic mammal native to sub-Saharan Africa. It is one of only two extant species in the family Hippopotamidae, the other being the pygmy hippopotamus. Its name comes from the ancient Greek for “river horse”.
-
-Not sure if I have seen many hairy hippo.
-
-### Ubuntu 20.10 Groovy Gorilla
-
-![Ubuntu 20.10 mascot][5]
-
-Released on 22 October 2020.
-
-Groovy means fashionable and exciting.
-
-Gorillas are herbivorous, predominantly ground-dwelling great apes that inhabit the tropical forests of equatorial Africa. The genus Gorilla is divided into two species: the eastern gorilla and the western gorilla, and either four or five subspecies.
-
-### Ubuntu 20.04 LTS Focal Fossa
-
-![Ubuntu 20.04 mascot 1][6]
-
-Released on 23 April 2020.
-
-Focal means something providing a focus, important in other meaning.
-
-The fossa (Cryptoprocta ferox) is **the largest carnivorous mammal on the island of Madagascar**. They can reach nearly six feet in length, with half of that due to their long tails. They look like a cross between a cat, a dog, and a mongoose. Fossas have slender bodies, muscular limbs, and short, reddish-brown coats.
-
-### Ubuntu 19.10 Eoan Ermine
-
-![Ubuntu 19.10 mascot][7]
-
-Released on 17 October 2019.
-
-Eoan means relating to dawn or east.
-
-The stoat or short-tailed weasel, also known as the Eurasian ermine, Beringian ermine, or simply ermine, is a mustelid native to Eurasia and the northern portions of North America. Because of its wide circumpolar distribution, it is listed as Least Concern on the IUCN Red List.
-
-### Ubuntu 19.04 Disco Dingo
-
-![Ubuntu 19.04 mascot][8]
-
-Released on 18 April 2019.
-
-Disco relates to the disco music and nightclubs.
-
-The dingo is an ancient lineage of dog found in Australia. Its taxonomic classification is debated as indicated by the variety of scientific names presently applied in different publications.
-
-### Ubuntu 18.10 Cosmic Cuttlefish
-
-![Ubuntu 18.10 mascot][9]
-
-Released on 18 October 2018.
-
-Cosmic means something distinct from the earth,
-
-Cuttlefish or cuttles are marine molluscs of the order Sepiida. They belong to the class Cephalopoda, which also includes squid, octopuses, and nautiluses. Cuttlefish have a unique internal shell, the cuttlebone, which is used for control of buoyancy.
-
-### Ubuntu 18.04 LTS Bionic Beaver
-
-![Ubuntu 18.04 mascot][10]
-
-Released on 26 April 2018.
-
-Bionic means having or denoting an artificial, typically electromechanical, body part or parts.
-
-Beavers are large, semiaquatic rodents in the genus Castor native to the temperate Northern Hemisphere. There are two extant species: the North American beaver and the Eurasian beaver. Beavers are the second-largest living rodents after the capybaras.
-
-The British users found this release name particularly amusing.
-
-### Ubuntu 17.10 Artful Aardvark
-
-![Ubuntu 17.10 mascot][11]
-
-Released on 19 October 2017.
-
-Ubuntu switched back to GNOME by default with this release.
-
-Artful means cleaver or carfty.
-
-The aardvark is a medium-sized, burrowing, nocturnal mammal native to Africa. It is the only living species of the order Tubulidentata, although other prehistoric species and genera of Tubulidentata are known. Unlike most other insectivores, it has a long pig-like snout, which is used to sniff out food.
-
-### Ubuntu 17.04 Zesty Zapus
-
-![Ubuntu 17.04 mascot][12]
-
-Released on 13 April 2017.
-
-Last release to feature the Unity desktop.
-
-Zesty means having a strong, pleasant, and somewhat spicy flavor.
-
-Zapus is a genus of North American jumping mouse. It is the only genus whose members have the dental formula. Zapus are the only extant mammals aside from the Aye-aye with a total of 18 teeth.
-
-### Ubuntu 16.10 Yakkety Yak
-
-![Ubuntu 16.10 mascot][13]
-
-Released on 13 October 2016.
-
-‘Yakkety’ could mean a lot of things. While ‘yakking’ is an informal term for talking a lot, ‘yakkety’ could be an alternative spelling of ‘Yakety’ Sax — a well known pop-jazz musical instrument, says OMGUbuntu!.
-
-Yak is a large domesticated wild ox with shaggy hair, humped shoulders, and large horns, used in Tibet as a pack animal and for its milk, meat, and hide.
-
-### Ubuntu 16.04 LTS Xenial Xerus
-
-![Ubuntu 16.04 mascot][14]
-
-Released on 21 April 2016.
-
-Xenial means something related to hospitality.
-
-The Xerus has four subspecies – **cape ground squirrel, striped ground squirrel, mountain ground squirrel, and unstriped ground squirrel**. These animals are diurnal and are usually known to be herbivores in nature and usually eat nuts, roots, and seeds. However, sometimes they also eat eggs and other small animals.
-
-### Ubuntu 15.10 Wily Werewolf
-
-![Ubuntu 15.10 mascot][15]
-
-Released on 22 October 2015.
-
-Perhaps one of the rare Ubuntu releases that had a finctional character in its codename, unless you don’t consider warewolves fictional.
-
-Wily means skilled at gaining an advantage, especially deceitfully.
-
-The werewolves are mythical creatures that can hide their ears and tail. It is a human but also a wolf, and most people fear them because of how they look.
-
-### Ubuntu 15.04 Vivid Vervet
-
-![Ubuntu 15.04 mascot][16]
-
-Released on 23 April 2015.
-
-Vivid means intensely deep or bright..
-
-The vervet monkey, or simply vervet, is an Old World monkey of the family Cercopithecidae native to Africa. The term “vervet” is also used to refer to all the members of the genus Chlorocebus. The five distinct subspecies can be found mostly throughout Southern Africa, as well as some of the eastern countries.
-
-### Ubuntu 14.10 Utopic Unicorn
-
-![Ubuntu 14.10 mascot][17]
-
-Released on 23 October 2014.
-
-Another of the Ubuntu release with fictional animal in its release codename unless you consider Unicrons are real.
-
-Utopic relates to utopia which is a fictional, impractical but ideal place.
-
-The **unicorn** is a legendary creature that has been described since antiquity as a beast with a single large, pointed, spiraling horn projecting from its forehead.
-
-### Ubuntu 14.04 LTS Trusty Tahr
-
-![Ubuntu 14.04 mascot][18]
-
-Released on 17 April 2014.
-
-Trusty means reliable or faithful.
-
-Tahr is a goatlike mammal that inhabits cliffs and mountain slopes in Oman, southern India, and the Himalayas.
-
-### Ubuntu 13.10 Saucy Salamander
-
-![Ubuntu 13.10 mascot][19]
-
-Released on 17 October 2013.
-
-Saucy means expressing in a bold, lively, or spirited manner.
-
-Salamanders are a group of amphibians typically characterized by their lizard-like appearance, with slender bodies, blunt snouts, short limbs projecting at right angles to the body, and the presence of a tail in both larvae and adults. All ten extant salamander families are grouped together under the order Urodela.
-
-### Ubuntu 13.04 Raring Ringtail
-
-![Ubuntu 13.04 mascot][20]
-
-Released on 25 April 2013.
-
-Raring means very enthusiastic and eager to do something.
-
-The Ringtail is **a cat-sized carnivore resembling a small fox with a long raccoonlike tail**. Its bushy tail is flattened and nearly as long as the head and body, with alternating black and white rings. These animals are almost wholly nocturnal and spend the majority of the day sleeping in their dens.
-
-### Ubuntu 12.10 Quantal Quetzal
-
-![Ubuntu 12.10 mascot][21]
-
-Released on 18 October 2012.
-
-Quantal means relating to a quantum or quanta, or to quantum theory.
-
-**Quetzals** are strikingly colored birds in the trogon family. They are found in forests, especially in humid highlands, with the five species from the genus *Pharomachrus* being exclusively Neotropical, while a single species, the eared quetzal, *Euptilotis neoxenus*, is found in Mexico and very locally in the southernmost United States. Quetzals are fairly large (all over 32 cm or 13 inches long), slightly bigger than other trogon species. The resplendent quetzal is the national bird of Guatemala because of its vibrant colour.
-
-### Ubuntu 12.04 LTS Precise Pangolin
-
-![Ubuntu 12.04 mascot][22]
-
-Released on 26 April 2012.
-
-Precise means marked by exactness and accuracy of expression or detail.
-
-Pangolins, sometimes known as scaly anteaters, are mammals of the order Pholidota. The one extant family, the Manidae, has three genera: Manis, Phataginus, and Smutsia. Manis comprises the four species found in Asia, while Phataginus and Smutsia include two species each, all found in sub-Saharan Africa.
-
-### Ubuntu 11.10 Oneiric Ocelot
-
-![Ubuntu 11.10 mascot][23]
-
-Released on 13 October 2011.
-
-Onerice relates to dreams or dreaming.
-
-The ocelot (Leopardus pardalis) is a medium-sized spotted wild cat that reaches 40–50 cm (15.7–19.7 in) at the shoulders and weighs between 8 and 15.5 kg (17.6 and 34.2 lb). It was first described by Carl Linnaeus in 1758.
-
-### Ubuntu 11.04 Natty Narwhal
-
-![Ubuntu 11.04 mascot][24]
-
-Released on 28 April 2011.
-
-The first release to feature the Unity desktop.
-
-Natty means smart and fashionable.
-
-The narwhal, also known as a narwhale, is a medium-sized toothed whale that possesses a large “tusk” from a protruding canine tooth. It lives year-round in the Arctic waters around Greenland, Canada and Russia. It is one of two living species of whale in the family Monodontidae, along with the beluga whale.
-
-### Ubuntu 10.10 Maverick Meerkat
-
-![Ubuntu 10.10 mascot][25]
-
-Released on 10 October 2010.
-
-Maverick means an unorthodox or independent-minded person.
-
-The meerkat or suricate is a small mongoose found in southern Africa. It is characterised by a broad head, large eyes, a pointed snout, long legs, a thin tapering tail, and a brindled coat pattern.
-
-### Ubuntu 10.04 LTS Lucid Lynx
-
-![Ubuntu 10.04 mascot][26]
-
-Released on 29 April 2010.
-
-Lucid means easy to understand or bright.
-
-A lynx is any of the four species within the medium-sized wild cat genus Lynx. The name lynx originated in Middle English via Latin from the Greek word λύγξ, derived from the Indo-European root leuk- in reference to the luminescence of its reflective eyes.
-
-### Ubuntu 9.10 Karmic Koala
-
-![Ubuntu 9.10 mascot][27]
-
-Released on 29 October 2009.
-
-Karmic means relating to or characteristic of karma.
-
-The koala or, inaccurately, koala bear is an arboreal herbivorous marsupial native to Australia. It is the only extant representative of the family Phascolarctidae and its closest living relatives are the wombats.
-
-### Ubuntu 9.04 Jaunty Jackalope
-
-![Ubuntu 9.04 mascot][28]
-
-Released on 23 April 2009.
-
-The first Ubuntu version I ever used.
-
-Jaunty means having or expressing a lively, cheerful, and self-confident manner.
-
-The jackalope is **a mythical animal of North American folklore, in the category of fearsome critters, described as a jackrabbit with antelope horns**. The word jackalope is a portmanteau of jackrabbit and antelope. Many jackalope taxidermy mounts, including the original, are made with deer antlers.
-
-### Ubuntu 8.10 Intrepid Ibex
-
-![Ubuntu 8.10 mascot][29]
-
-Released on 30 October 2008.
-
-Intrepid means fearless; adventurous.
-
-An ibex is any of several species of wild goat, distinguished by the male’s large recurved horns, which are transversely ridged in front. Ibex are found in Eurasia, North Africa and East Africa.
-
-### Ubuntu 8.04 LTS Hardy Heron
-
-![Ubuntu 8.04 mascot][30]
-
-Released on 24 April 2008.
-
-The first Ubuntu release where the mascot appeared on its default wallpaper.
-
-Hardy means capable of enduring difficult conditions; robust.
-
-The herons are long-legged, long-necked, freshwater and coastal birds
-
-### Ubuntu 7.10 Gutsy Gibbon
-
-![Ubuntu 7.10 mascot][31]
-
-Released on 18 October 2007.
-
-Gusty is characterized by or blowing in gusts.
-
-Gibbons are apes live in subtropical and tropical rainforest from eastern Bangladesh to Northeast India to southern China and Indonesia
-
-### Ubuntu 7.04 Feisty Fawn
-
-![Ubuntu 7.04 mascot][32]
-
-Released on 19 April 2007.
-
-Feisty means small but determined. Fawn is a young deer in its first year.
-
-### Ubuntu 6.10 Edgy Eft
-
-![Ubuntu 6.10 mascot][33]
-
-Released on 26 October 2006.
-
-Edgy means tense or nervous.
-
-Eft is the terrestrial juvenile phase of newt. A newt is a type of salamander (a type of lizard). This newt has three distinct developmental life stages: aquatic larva, terrestrial juvenile (eft), and adult.
-
-So basically eft is a teenaged newt :)
-
-### Ubuntu 6.06 Dapper Drake
-
-![Ubuntu 6.06 mascot][34]
-
-Released on 1 June 2006.
-
-Dapper means neat and trim in dress and appearance. Drake is a fully sexually mature adult male duck of any duck species.
-
-### Ubuntu 5.10 Breezy Badger
-
-![Ubuntu 5.10 mascot][35]
-
-Released on 12 October 2005.
-
-Breezy means pleasantly windy.
-
-Badgers are short-legged omnivores, united by their squat bodies, adapted for fossorial activity.
-
-### Ubuntu 5.04 Hoary Hedgehog
-
-![Ubuntu 5.04 mascot][36]
-
-Released on 8 April 2005.
-
-Hoary means greyish white.
-
-A hedgehogis a spiny mammal found throughout parts of Europe, Asia, and Africa, and in New Zealand by introduction.
-
-### Ubuntu 4.10 : Warty Warthog
-
-![Ubuntu 4.10 mascot][37]
-
-Released on 20 October 2004.
-
-This is where it all started.
-
-Wart is a small, hard, benign growth on the skin, caused by a virus. Warty means someone full of warts.
-
-The common warthog is a wild member of the pig family found in grassland, savanna, and woodland in sub-Saharan Africa.
-
-### Conclusion
-
-Does this article add value to an Ubuntu user? Not technically, but it’s good to look back at the history. If you have been an Ubuntu user for years, it could trigger nostalgia.
-
-Ubuntu 9.04 was the first time I tried Linux on a desktop. It was in late September of 2009 if I recall correctly. Only a few weeks later, my system was upgraded to Ubuntu 9.10. I used to spend time browing in Ubuntu Forum thoses days, exploring this new OS and learning new things.
-
-So, did this article bring back some good old memories? Which was your first Ubuntu version? Share it in the comments.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/all-Ubuntu-mascots/
-
-作者:[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/author/abhishek/
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/Ubuntu-default-wallpapers-download/
-[2]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-22-04-mascot.jpg
-[3]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-21-10-mascot.jpg
-[4]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-21-04-mascot.jpg
-[5]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-20-10-mascot.jpg
-[6]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-20-04-mascot-1.jpg
-[7]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-19-10-mascot.jpg
-[8]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-19-04-mascot.jpg
-[9]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-18-10-mascot.jpg
-[10]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-18-04-mascot.jpg
-[11]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-17-10-mascot.jpg
-[12]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-17-04-mascot.jpg
-[13]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-16-10-mascot.jpg
-[14]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-16-04-mascot.jpg
-[15]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-15-10-mascot.jpg
-[16]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-15-04-mascot.jpg
-[17]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-14-10-mascot.jpg
-[18]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-14-04-mascot.jpg
-[19]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-13-10-mascot.jpg
-[20]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-13-04-mascot.jpg
-[21]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-12-10-mascot.jpg
-[22]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-12-04-mascot.jpg
-[23]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-11-10-mascot.jpg
-[24]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-11-04-mascot.jpg
-[25]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-10-10-mascot.jpg
-[26]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-10-04-mascot.jpg
-[27]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-9-10-mascot.jpg
-[28]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-9-04-mascot.jpg
-[29]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-8-10-mascot.jpg
-[30]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-8-04-mascot.jpg
-[31]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-7-10-mascot.jpg
-[32]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-7-04-mascot.jpg
-[33]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-6-10-mascot.jpg
-[34]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-6-06-mascot.jpg
-[35]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-5-10-mascot.jpg
-[36]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-5-04-mascot.jpg
-[37]: https://itsfoss.com/wp-content/uploads/2022/05/Ubuntu-4-10-mascot.jpg
diff --git a/sources/tech/20220524 12 essential Linux commands for beginners.md b/sources/tech/20220524 12 essential Linux commands for beginners.md
deleted file mode 100644
index c5273a7bc3..0000000000
--- a/sources/tech/20220524 12 essential Linux commands for beginners.md
+++ /dev/null
@@ -1,187 +0,0 @@
-[#]: subject: "12 essential Linux commands for beginners"
-[#]: via: "https://opensource.com/article/22/5/essential-linux-commands"
-[#]: author: "Don Watkins https://opensource.com/users/don-watkins"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-12 essential Linux commands for beginners
-======
-I recommend these commands to anyone who is getting started with Linux.
-
-![Command line prompt][1]
-
-Image by: Opensource.com
-
-When operating on the Linux command line, it is easy to get disoriented, which can have disastrous consequences. I once issued a remove command before realizing that I'd moved the boot directory of my computer. I learned to use the `pwd` command to know exactly which part of the file system I was in (and these days, there are command projects, like [trashy and trash-cli][2], that serve as intermediates when removing files).
-
-When I was new to Linux, I had a cheat sheet that hung over my desk to help me remember those commands as I managed my Linux servers. It was called the *101 commands for Linux* cheat sheet. As I became more familiar with these commands, I became more proficient with server administration.
-
-Here are 12 Linux commands I find most useful.
-
-### 1. Print working directory (pwd)
-
-The `pwd` command prints your working directory. In other words, it outputs the path of the directory you are currently working in. There are two options: `--logical` to display your location with any symlinks and `--physical` to display your location after resolving any symlinks.
-
-### 2. Make directory (mkdir)
-
-Making directories is easy with the `mkdir` command. The following command creates a directory called `example` unless `example` already exists:
-
-```
-$ mkdir example
-```
-
-You can make directories within directories:
-
-```
-$ mkdir -p example/one/two
-```
-
-If directories `example` and `one` already exist, only directory `two` is created. If none of them exist, then three nested directories are created.
-
-### 3. List (ls)
-
-Coming from MS-DOS, I was used to listing files with the `dir` command. I don't recall working on Linux at the time, although today, `dir` is in the GNU Core Utilities package. Most people use the `ls` command to display the files, along with all their properties, are in a directory. The `ls` command has many options, including `-l` to view a long listing of files, displaying the file owner and permissions.
-
-### 4. Change directory (cd)
-
-It is often necessary to change directories. That's the `cd` command's function. For instance, this example takes you from your home directory into the `Documents` directory:
-
-```
-$ cd Documents
-```
-
-You can quickly change to your home directory with `cd ~` or just `cd` on most systems. You can use `cd ..` to move up a level.
-
-### 5. Remove a file (rm)
-
-Removing files is inherently dangerous. Traditionally, the Linux terminal has no Trash or Bin like the desktop does, so many terminal users have the bad habit of permanently removing data they believe they no longer need. There's no "un-remove" command, though, so this habit can be problematic should you accidentally delete a directory containing important data.
-
-A Linux system provides `rm` and `shred` for data removal. To delete file `example.txt`, type the following:
-
-```
-$ rm example.txt
-```
-
-However, it's much safer to install a trash command, such as [trashy][3] or [trash-cli][4]. Then you can send files to a staging area before deleting them forever:
-
-```
-$ trash example.txt
-```
-
-### 6. Copy a file (cp)
-
-Copy files with the `cp` command. The syntax is copy *from-here* *to-there*. Here's an example:
-
-```
-$ cp file1.txt newfile1.txt
-```
-
-You can copy entire directories, too:
-
-```
-$ cp -r dir1 newdirectory
-```
-
-### 7. Move and rename a file (mv)
-
-Renaming and moving a file is functionally the same process. When you move a file, you take a file from one directory and put it into a new one. When renaming a file, you take a file from one directory and put it back into the same directory or a different directory, but with a new name. Either way, you use the `mv` command:
-
-```
-$ mv file1.txt file_001.txt
-```
-
-### 8. Create an empty file (touch)
-
-Easily create an empty file with the `touch` command:
-
-```
-$ touch one.txt
-
-$ touch two.txt
-
-$ touch three.md
-```
-
-### 9. Change permissions (chmod)
-
-Change the permissions of a file with the `chmod` command. One of the most common uses of `chmod` is making a file executable:
-
-```
-$ chmod +x myfile
-```
-
-This example is how you give a file permission to be executed as a command. This is particularly handy for scripts. Try this simple exercise:
-
-```
-$ echo 'echo Hello $USER' > hello.sh
-
-$ chmod +x hello.sh
-
-$ ./hello.sh
-Hello, Don
-```
-
-### 10. Escalate privileges (sudo)
-
-While administering your system, it may be necessary to act as the super user (also called root). This is where the `sudo` (or *super user do*) command comes in. Assuming you're trying to do something that your computer alerts you that only an administrator (or root) user can do, just preface it with the command `sudo` :
-
-```
-$ touch /etc/os-release && echo "Success"
-touch: cannot touch '/etc/os-release': Permission denied
-
-$ sudo touch /etc/os-release && echo "Success"
-Success
-```
-
-### 11. Shut down (poweroff)
-
-The `poweroff` command does exactly what it sounds like: it powers your computer down. It requires `sudo` to succeed.
-
-There are actually many ways to shut down your computer and some variations on the process. For instance, the `shutdown` command allows you to power down your computer after an arbitrary amount of time, such as 60 seconds:
-
-```
-$ sudo shutdown -h 60
-```
-
-Or immediately:
-
-```
-$ sudo shutdown -h now
-```
-
-You can also restart your computer with `sudo shutdown -r now` or just `reboot`.
-
-### 12. Read the manual (man)
-
-The `man` command could be the most important command of all. It gets you to the documentation for each of the commands on your Linux system. For instance, to read more about `mkdir` :
-
-```
-$ man mkdir
-```
-
-A related command is `info`, which provides a different set of manuals (as long as they're available) usually written more verbosely than the often terse man pages.
-
-### What's your favorite Linux command?
-
-There are many more commands on a Linux system—hundreds! What's your favorite command, the one you find yourself using time and time again?
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/5/essential-linux-commands
-
-作者:[Don Watkins][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/don-watkins
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/command_line_prompt.png
-[2]: https://www.redhat.com/sysadmin/recover-file-deletion-linux
-[3]: https://gitlab.com/trashy/trashy
-[4]: https://github.com/andreafrancia/trash-cli
diff --git a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md b/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
deleted file mode 100644
index ba0801c1a2..0000000000
--- a/sources/tech/20220608 WiFi 6 Promises Much More than Faster Speeds.md
+++ /dev/null
@@ -1,95 +0,0 @@
-[#]: subject: "WiFi 6 Promises Much More than Faster Speeds"
-[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
-[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-WiFi 6 Promises Much More than Faster Speeds
-======
-WiFi 6 increases the network connectivity, and has been developed to ensure the trillions of devices connected in the near future continue to work seamlessly and efficiently. Though it was certified in 2019, it faced a few challenges in testing due to the pandemic. This article gives an overview of this technology.
-
-![WiFi-6][1]
-
-The next-generation standard in WiFi technology, termed ‘WiFi 6’, is also known as ‘AX WiFi’ or ‘802.11ax’. Developed to meet the exponential increase in demand for devices in the world, it can be used for virtual reality (VR) and smart home devices as well. It is an improvement on the current 802.11ac WiFi standard and meets current challenges in terms of capacity, efficiency, coverage and performance.
-
-![Figure 1: WiFi 6][2]
-
-Researched in 2014, this standard was invented in 2018 and launched by the IEEE High Efficiency WLAN Study Group (HEW SG). It began certifications in late 2019, with Samsung’s Galaxy Note 10 and Ruckus R750 employing this technology. Specified to operate between the 1GHz and 6GHz bands, WiFi 6 focuses mainly between the 2.4GHz and 5GHz frequencies.
-
-In an average household today, nine devices are connected to WiFi. WiFi 6 aims at improving the network rather than boosting the speed for individual devices.
-
-### Features of WiFi 6
-
-**Multi-user, multi-input, multi-output (MU-MIMO):** This communication between routers and multiple devices concurrently. It supports four simultaneous data streams, added to which one user can have a considerable bandwidth of incoming data from a smart router, both on the 2.4GHz and 5GHz frequencies.
-**1024-QAM:** This helps WiFi 6 encode more bits per packet. There is a 25 per cent increase in throughput. Not only does it improve efficiency in high-traffic situations, it also maximises data rates. This is a huge advantage for modern enterprise applications.
-**Orthogonal frequency-division multiplexing (OFDM):** This allows four times as many subcarriers and increases speed by 11 per cent. The expanded signal allows for greater simultaneous packet delivery across users. Hence, the wait time between packets and latency is reduced.
-*Increased channel width:* The 160MHz channel communication is added to the 80MHz band, thus doubling the channel width. This allows routers to handle more users and provide larger streams per user.
-*Target wake time (TWT):* This feature is unique to WiFi 6. It allows each device to independently negotiate wake time for transmission and reception. This helps to increase total sleep time and maximise battery life. TWT enables many additional networking options, especially for IoT devices.
-*Improved security:* All WiFi 6 devices will need to include Wi-Fi Protected Access 3 (WPA3). This will lead to encryption of unauthenticated traffic, robust password protection against brute-force dictionary attacks, and superior data reliability for sensitive information with 192-bit encryption.
-*Beamforming:* With eight support antennas, beamforming helps to improve data rates, and the range is extended by directing signals towards specific clients at once. It offers a backup for rapidly moving devices that may face issues with MU-MIMO. Beamforming also helps to control transmissions from antennas that cause signals to interfere on purpose. The signal can then be redirected to a new direction.
-
-### Devices that support WiFi 6
-
-Until recently, WiFi 5 was the standard used for routers, repeaters, mesh networks and many WiFi clients. WiFi 6 was launched in 2019. There will be some compatibility issues for the earlier devices that supported WiFi 5 — they will be able to utilise the WiFi 6 network but not be able to receive support for the same.
-
-WiFi 6 routers are backward-compatible, and it is better to make sure that the network is ready for that.
-
-WiFi 6 enables lower battery consumption, making it a great choice for any environment, including the Internet of Things (IoT). It reduces unnecessary data activity, and tells devices when to put their data to sleep and when to be active. As a result, unnecessary data activity is reduced, and performance and battery life are maximised.
-
-The Samsung Galaxy Note 10 and Ruckus R750 were the world’s first smartphone and access point certified to support Wi-Fi 6, with the latest generation of the Apple iPhone following suit. The Wi-Fi Alliance has set up its certification programme, and new wireless products hitting the market are expected to start applying for compliance certification. The devices listed below are already WiFi 6 enabled:
-
-* iPhone 11 and after
-* Samsung Galaxy S10, S20, Note 10, and Note 20
-* Apple computers with M1 processors
-* Smart TVs
-
-> To take advantage of the improvements in the 802.11ax standard fully, both hardware and software functionalities have to be built on this WiFi technology.
-
-### Hardware testing
-
-To unlock the full potential of the latest devices, a WiFi 6 router is needed to run the network. This was an expensive affair a few years ago, but now we have a number of options even for mesh systems, gaming routers, range extenders, and more. The best purchase can be made only when hands-on testing is done. Beating all its competitors, the current king in terms of speed for WiFi 6 routers is TP-Link Archer AX6000. This router was able to transmit data wirelessly at a rate of 1523 Mbps up to a distance of 1.5 metres (5 feet).
-
-One important thing to remember here is that these routers do not magically increase speeds. The theoretical maximum of achieving 9.6 Gbps is unlikely. This high theoretical speed can be split up across a whole network of devices.
-
-WiFi 6 emphasises quality connectivity in areas where connected devices are densely populated. It does not increase the speed of each device exponentially but ensures these operate at an optimum level.
-
-Only the combination of a faster plan from the Internet service providers (ISPs) along with the WiFi 6 router, can fulfil its true potential. The real challenge is for the ISPs, as they need new fibre rollouts to capitalise on this next-gen technology. An important question is: when faster ISP speeds come, will the existing hardware become redundant?
-
-### Applications of WiFi 6
-
-**Large public venues (LPVs):** Stadiums and convention centres are a few of the common areas where thousands of devices connect to WiFi at the same time. WiFi 6 can help to improve attendee experiences, increase customer interactions, and create value-added services like viewing instant replays or ordering food from one’s seat at an event. WiFi 6 allows LPV owners to create new business opportunities.
-**Transport hubs:** Public transport stations are also an area where people attempt to connect to the network simultaneously. OFDMA and BSS colouring in WiFi 6 provide the necessary tools needed to overcome this challenge.
-**IoT and smart city deployments:** Power efficiencies in WiFi 6 enable IoT devices to go into sleep mode and turn on their transmitters at predefined intervals to prolong field time without much maintenance.
-**Education:** Libraries, auditoriums, and lecture halls at college and university campuses have the highest density of WiFi users during the day, and almost no one at night. WiFi 6 is a perfect choice in this situation.
-
-### The challenges
-
-WiFi 6 does not promise an increase in speed, but is an upgrade designed to make sure the speeds of our devices within a given range/area doesn’t slow down a few years down the road. There are three major challenges it faces though, which are often overlooked.
-Improving the functionality of unsupported devices: Even though WiFi 6 is backward- compatible, justice to it can only be done when this technology is used to the maximum. This means devices need to be upgraded each time.
-
-Speed and performance outside the internal network: WiFi 6 can provide excellent connectivity for services like cloud file shares. However, the assets and resources of ISPs can affect speed and performance.
-
-*Coverage issues:* Transmission and bandwidths are capped according to the regulations prevalent in each country. Hence, the coverage of WiFi 6 may be restricted to ensure this cap is met.
-
-In spite of these challenges, companies like Aruba, Asus, AT&T, Boingo, Broadcom, Cisco, Comcast, CommScope, Cypress, Extreme Networks, Intel, Netgear, Orange, Qualcomm, TP-Link and Xiaomi are all focusing on the potential WiFi 6 has.
-
-(LCTT 译注:选题删除了原文中的相关产品推荐部分。)
-
---------------------------------------------------------------------------------
-
-via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/
-
-作者:[Sharon Katta][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/sharon-katta/
-[b]: https://github.com/lkxed
-[1]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6.jpg
-[2]: https://www.opensourceforu.com/wp-content/uploads/2022/05/WiFi-6-1.jpg
diff --git a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md
index 3db1778c50..6050ced755 100644
--- a/sources/tech/20220609 A guide to container orchestration with Kubernetes.md
+++ b/sources/tech/20220609 A guide to container orchestration with Kubernetes.md
@@ -2,7 +2,7 @@
[#]: via: "https://opensource.com/article/22/6/container-orchestration-kubernetes"
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
[#]: collector: "lkxed"
-[#]: translator: "Donkey"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md b/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md
deleted file mode 100644
index 01bb0f2517..0000000000
--- a/sources/tech/20220628 Linux su vs sudo- what-s the difference-.md
+++ /dev/null
@@ -1,150 +0,0 @@
-[#]: subject: "Linux su vs sudo: what's the difference?"
-[#]: via: "https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin"
-[#]: author: "David Both https://opensource.com/users/dboth"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Linux su vs sudo: what's the difference?
-======
-A comparison of Linux commands for escalating privileges for non-root users.
-
-![bash logo on green background][1]
-
-Image by: Opensource.com
-
-Both the `su` and the `sudo` commands allow users to perform system administration tasks that are not permitted for non-privileged users—that is, everyone but the root user. Some people prefer the `sudo` command: For example, [Seth Kenlon][2] recently published "[5 reasons to use sudo on Linux][3]", in which he extols its many virtues.
-
-I, on the other hand, am partial to the `su` command and prefer it to `sudo` for most of the system administration work I do. In this article, I compare the two commands and explain why I prefer `su` over `sudo` but still use both.
-
-### Historical perspective of sysadmins
-
-The `su` and `sudo` commands were designed for a different world. Early Unix computers required full-time system administrators, and they used the root account as their only administrative account. In this ancient world, the person entrusted with the root password would log in as root on a teletype machine or CRT terminal such as the DEC VT100, then perform the administrative tasks necessary to manage the Unix computer.
-
-The root user would also have a non-root account for non-root activities such as writing documents and managing their personal email. There were usually many non-root user accounts on those computers, and none of those users needed total root access. A user might need to run one or two commands as root, but very infrequently. Many sysadmins log in as root to work as root and log out of our root sessions when finished. Some days require staying logged in as root all day long. Most sysadmins rarely use `sudo` because it requires typing more than necessary to run essential commands.
-
-These tools both provide escalated privileges, but the way they do so is significantly different. This difference is due to the distinct use cases for which they were originally intended.
-
-### sudo
-
-The original intent of `sudo` was to enable the root user to delegate to one or two non-root users access to one or two specific privileged commands they need regularly. The `sudo` command gives non-root users temporary access to the elevated privileges needed to perform tasks such as adding and deleting users, deleting files that belong to other users, installing new software, and generally any task required to administer a modern Linux host.
-
-Allowing the users access to a frequently used command or two that requires elevated privileges saves the sysadmin a lot of requests from users and eliminates the wait time. The `sudo` command does not switch the user account to become root; most non-root users should never have full root access. In most cases, `sudo` lets a user issue one or two commands then allows the privilege escalation to expire. During this brief time interval, usually configured to be 5 minutes, the user may perform any necessary administrative tasks that require elevated privileges. Users who need to continue working with elevated privileges but are not ready to issue another task-related command can run the `sudo -v` command to revalidate the credentials and extend the time for another 5 minutes.
-
-Using the `sudo` command does have the side effect of generating log entries of commands used by non-root users, along with their IDs. The logs can facilitate a problem-related postmortem to determine when users need more training. (You thought I was going to say something like "assign blame," didn't you?)
-
-### su
-
-The `su` command is intended to allow a non-root user to elevate their privilege level to that of root—in fact, the non-root user becomes the root user. The only requirement is that the user know the root password. There are no limits on this because the user is now logged in as root.
-
-No time limit is placed on the privilege escalation provided by the su command. The user can work as root for as long as necessary without needing to re-authenticate. When finished, the user can issue the exit command to revert from root back to their own non-root account.
-
-### Controversy and change
-
-There has been some recent disagreement about the uses of `su` versus `sudo`.
-
-> Real [Sysadmins] don't use sudo. —Paul Venezia
-
-Venezia contends in his [InfoWorld article][4] that `sudo` is used as an unnecessary prop for many people who act as sysadmins. He does not spend much time defending or explaining this position; he just states it as a fact. And I agree with him—for sysadmins. We don't need the training wheels to do our jobs. In fact, they get in the way.
-
-However,
-
-> The times they are a'changin.' —Bob Dylan
-
-Dylan was correct, although he was not singing about computers. The way computers are administered has changed significantly since the advent of the one-person, one-computer era. In many environments, the user of a computer is also its administrator. This makes it necessary to provide some access to the powers of root for those users.
-
-Some modern distributions, such as Ubuntu and its derivatives, are configured to use the `sudo` command exclusively for privileged tasks. In those distros, it is impossible to log in directly as the root user or even to `su` to root, so the `sudo` command is required to allow non-root users any access to root privileges. In this environment, all system administrative tasks are performed using `sudo`.
-
-This configuration is possible by locking the root account and adding the regular user account(s) to the wheel group. This configuration can be circumvented easily. Try a little experiment on any Ubuntu host or VM. Let me stipulate the setup here so you can reproduce it if you wish. I installed Ubuntu 16.04 LTS1 and installed it in a VM using VirtualBox. During the installation, I created a non-root user, student, with a simple password for this experiment.
-
-Log in as the user student and open a terminal session. Look at the entry for root in the `/etc/shadow` file, where the encrypted passwords are stored.
-
-```
-student@ubuntu1:~$ cat /etc/shadow
-cat: /etc/shadow: Permission denied
-```
-
-Permission is denied, so we cannot look at the `/etc/shadow` file. This is common to all distributions to prevent non-privileged users from seeing and accessing the encrypted passwords, which would make it possible to use common hacking tools to crack those passwords.
-
-Now let's try to `su -` to root.
-
-```
-student@ubuntu1:~$ su -
-Password:
-su: Authentication failure
-```
-
-This fails because the root account has no password and is locked out. Use the `sudo` command to look at the `/etc/shadow` file.
-
-```
-student@ubuntu1:~$ sudo cat /etc/shadow
-[sudo] password for student:
-root:!:17595:0:99999:7:::
-
-student:$6$tUB/y2dt$A5ML1UEdcL4tsGMiq3KOwfMkbtk3WecMroKN/:17597:0:99999:7:::
-
-```
-
-I have truncated the results to show only the entry for the root and student users. I have also shortened the encrypted password so the entry will fit on a single line. The fields are separated by colons (`:` ) and the second field is the password. Notice that the password field for root is a bang, known to the rest of the world as an exclamation point (`!` ). This indicates that the account is locked and that it cannot be used.
-
-Now all you need to do to use the root account as a proper sysadmin is to set up a password for the root account.
-
-```
-student@ubuntu1:~$ sudo su -
-[sudo] password for student:
-root@ubuntu1:~# passwd root
-Enter new UNIX password:
-Retype new UNIX password:
-passwd: password updated successfully
-root@ubuntu1:~#
-```
-
-Now you can log in directly on a console as root or `su` directly to root instead of using `sudo` for each command. Of course, you could just use `sudo su -` every time you want to log in as root, but why bother?
-
-Please do not misunderstand me. Distributions like Ubuntu and their up- and downstream relatives are perfectly fine, and I have used several of them over the years. When using Ubuntu and related distros, one of the first things I do is set a root password so that I can log in directly as root. Other distributions, like Fedora and its relatives, now provide some interesting choices during installation. The first Fedora release where I noticed this was Fedora 34, which I have installed many times while writing an upcoming book.
-
-One of those installation options can be found on the page to set the root password. The new option allows the user to choose "Lock root account" in the way an Ubuntu root account is locked. There is also an option on this page that allows remote SSH login to this host as root using a password, but that only works when the root account is unlocked. The second option is on the page that allows the creation of a non-root user account. One of the options on this page is "Make this user administrator." When this option is checked, the user ID is added to a special group called the wheel group, which authorizes members of that group to use the `sudo` command. Fedora 36 even mentions the wheel group in the description of that checkbox.
-
-More than one non-root user can be set as an administrator. Anyone designated as an administrator using this method can use the `sudo` command to perform all administrative tasks on a Linux computer. Linux only allows the creation of one non-root user during installation, so other new users can be added to the wheel group when created. Existing users can be added to the wheel group by the root user or another administrator directly by using a text editor or the `usermod` command.
-
-In most cases, today's administrators need to do only a few essential tasks such as adding a new printer, installing updates or new software, or deleting software that is no longer needed. These GUI tools require a root or administrative password and will accept the password from a user designated as an administrator.
-
-### How I use su and sudo on Linux
-
-I use both `su` and `sudo`. They each have an important place in my sysadmin toolbox.
-
-I can't lock the root account because I need to use it to run my [Ansible][5] playbooks and the [rsbu][6] Bash program I wrote to perform backups. Both of these need to be run as root, and so do several other administrative Bash scripts I have written. I use the `su` command to switch users to the root user so I can perform these and many other common tasks. Elevating my privileges to root using `su` is especially helpful when performing problem determination and resolution. I really don't want a `sudo` session timing out on me while I am in the middle of my thought process.
-
-I use the `sudo` command for tasks that need root privilege when a non-root user needs to perform them. I set the non-root account up in the sudoers file with access to only those one or two commands needed to complete the tasks. I also use `sudo` myself when I need to run only one or two quick commands with escalated privileges.
-
-### Conclusions
-
-The tools you use don't matter nearly as much as getting the job done. What difference does it make if you use vim or Emacs, systemd or SystemV, RPM or DEB, `sudo` or `su` ? The bottom line here is that you should use the tools with which you are most comfortable and that work best for you. One of the greatest strengths of Linux and open source is that there are usually many options available for each task we need to accomplish.
-
-Both `su` and `sudo` have strengths, and both can be secure when applied properly for their intended use cases. I choose to use both `su` and `sudo` mostly in their historical roles because that works for me. I prefer `su` for most of my own work because it works best for me and my workflow.
-
-Share how you prefer to work in the comments!
-
-This article is taken from Chapter 19 of my book The Linux Philosophy for Sysadmins (Apress, 2018) and is republished with permission.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/6/linux-su-vs-sudo-sysadmin
-
-作者:[David Both][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/dboth
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/bash_command_line.png
-[2]: https://opensource.com/users/seth
-[3]: https://opensource.com/article/22/5/use-sudo-linux
-[4]: http://www.infoworld.com/t/unix/nine-traits-the-veteran-unix-admin-276?page=0,0&source=fssr
-[5]: https://opensource.com/article/20/10/first-day-ansible
-[6]: https://opensource.com/article/17/1/rsync-backup-linux
diff --git a/sources/tech/20220729 Learn Rust by debugging Rust.md b/sources/tech/20220729 Learn Rust by debugging Rust.md
deleted file mode 100644
index 0abe7c217e..0000000000
--- a/sources/tech/20220729 Learn Rust by debugging Rust.md
+++ /dev/null
@@ -1,242 +0,0 @@
-[#]: subject: "Learn Rust by debugging Rust"
-[#]: via: "https://opensource.com/article/22/7/learn-rust-rustlings"
-[#]: author: "Gaurav Kamathe https://opensource.com/users/gkamathe"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn Rust by debugging Rust
-======
-Rustlings is an open source project by the Rust team that helps you learn Rust through the process of debugging.
-
-![Ferris the crab under the sea, unofficial logo for Rust programming language][1]
-
-Image by: Opensource.com
-
-In my previous [article about rustup][2], I showed you how to install the Rust toolchain. Well, what good is the toolchain if you won’t be using it to get more hands-on with Rust? Learning any language involves reading existing code and writing a lot of sample programs. That's a good way to become proficient in a language. However, there's a third way: debugging code.
-
-Learning through debugging involves trying to compile a pre-written (buggy) sample program, understanding the errors generated by the compiler, fixing the sample code, and then re-compiling it. Repeat that process until the code successfully compiles and runs.
-
-[Rustlings][3] is an open source project by the Rust team that helps you learn Rust through the process of debugging. It also provides you with a lot of hints along the way. If you're a beginner to Rust and have either started or completed reading the Rust book, then rustlings is the ideal next step. Rustlings helps you apply what you've learned from the book, and move to working on bigger projects.
-
-### Installing rustlings
-
-I'm using (and recommend) a Fedora machine to try rustlings, but any Linux distribution works. To install rustlings, you must download and run its install script. It's recommended that you do this as a normal user (not root) without any special privileges.
-
-Remember, for you to be able to use rustlings, you need the Rust toolchain available on your system. If you don't have that already, please refer to my [article on rustup][4].
-
-Once you're ready, download the installation script:
-
-```
-$ curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh > rustlings_install.sh
-$ file rustlings_install.sh
-rustlings_install.sh: Bourne-Again shell script, ASCII text executable
-```
-
-Inspect the script to learn what it does:
-
-```
-$ less rustlings_install.sh
-```
-
-And then run it to install:
-
-```
-$ bash rustlings_install.sh
-[...]
-Installing /home/tux/.cargo/bin/rustlings
-Installed package `rustlings v4.8.0 (/home/tux/rustlings)` (executable `rustlings`)
-All done!
-```
-
-Run 'rustlings' to get started.
-
-### Rustlings exercises
-
-The installation provides you with the `rustlings` command. Run it along with the `--help` flag to see what options are available.
-
-```
-$ rustlings --help
-```
-
-The installation script also clones the rustlings Git repository, and installs all the dependencies required to run the sample programs. You can view the sample programs within the exercises directory under `rustlings` :
-
-```
-$ cd rustlings
-$ pwd
-/home/tux/rustlings
-$ ls
-AUTHORS.md Cargo.toml CONTRIBUTING.md info.toml install.sh README.md target Cargo.lock CHANGELOG.md exercises install.ps1 LICENSE src tests
-$ ls -m exercises/
-advanced_errors, clippy, collections, conversions, enums, error_handling, functions, generics, if, intro, macros, mod.rs,
-modules, move_semantics, option, primitive_types, quiz1.rs, quiz2.rs, quiz3.rs, quiz4.rs, README.md,
-standard_library_types, strings, structs, tests, threads, traits, variables
-```
-
-### List all exercises from the command line
-
-The `rustlings` command provides you with a `list` command which displays each sample program, its complete path, and the status (which defaults to **pending**.)
-
-```
-$ rustlings list
-Name Path Status
-intro1 exercises/intro/intro1.rs Pending
-intro2 exercises/intro/intro2.rs Pending
-variables1 exercises/variables/variables1.rs Pending
-variables2 exercises/variables/variables2.rs Pending
-variables3 exercises/variables/variables3.rs Pending
-[...]
-```
-
-Near the end of the output, you're given a progress report so you can track your work.
-
-```
-Progress: You completed 0 / 84 exercises (0.00 %).
-```
-
-### View sample programs
-
-The `rustings list` command shows you what programs are available, so at any time you can view the code of those programs by copying the complete paths into your terminal as an argument for the [cat][5] or [less][6] commands:
-
-```
-$ cat exercises/intro/intro1.rs
-```
-
-### Verify your programs
-
-Now you can start debugging programs. You can do that using the `verify` command. Notice that rustlings chooses the first program in the list (`intro1.rs` ), tries to compile it, and succeeds:
-
-```
-$ rustlings verify
-Progress: [-----------------------------------] 0/84
-✅ Successfully ran exercises/intro/intro1.rs!
-
-You can keep working on this exercise,
-or jump into the next one by removing the `I AM NOT DONE` comment:
-
- 6 | // Execute the command `rustlings hint intro1` for a hint.
- 7 |
- 8 | // I AM NOT DONE
- 9 |
-```
-
-As you can see from the output, even though the sample code compiles, there's work yet to be done. Each sample program has the following comment in its source file:
-
-```
-$ grep "NOT DONE" exercises/intro/intro1.rs
-// I AM NOT DONE
-```
-
-Although the compilation of the first program worked fine, rustlings won't move to the next program until you remove the `I AM NOT DONE` comment.
-
-### Moving to the next exercise
-
-Once you have removed the comment from `intro1.rs`, you can move to the next exercise by running the `rustlings verify` command again. This time, you may notice that rustlings tries to compile the next program (`intro2.rs` ) in the series, but runs into an error. You're expected to debug that issue, fix it, and then move forward. This is a critical step, allowing you to understand why Rust says a program has bugs.
-
-```
-$ rustlings verify
-Progress: [>------------------------] 1/84
-⚠️ Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output:
-error: 1 positional argument in format string, but no arguments were given
- --> exercises/intro/intro2.rs:8:21
- |
-8 | println!("Hello {}!");
- | ^^
-
-error: aborting due to previous error
-```
-
-### Getting a hint
-
-Rustlings has a handy `hint` argument, which tells you exactly what's wrong with the sample program, and how to fix it. You can think of it as an add-on help option, in addition to what the compiler error message tells you.
-
-```
-$ rustlings hint intro2
-Add an argument after the format string.
-```
-
-Based on the above hint, fixing the program is easy. All you need to do is add an additional argument to the `println` statement. This diff should help you understand the changes:
-
-```
-< println!("Hello {}!", "world");
----
-> println!("Hello {}!");
-```
-
-Once you make that change, and removed the `NOT DONE` comment from the source code, you can run `rustlings verify` again to compile and run the code.
-
-```
-$ rustlings verify
-Progress: [>-------------------------------------] 1/84
-✅ Successfully ran exercises/intro/intro2.rs!
-```
-
-### Track progress
-
-You aren't going to finish all of the exercises in a day, and it's easy to lose track of where you left off. You can run the `list` command to see the status of your work.
-
-```
-$ rustlings list
-Name Path Status
-intro1 exercises/intro/intro1.rs Done
-intro2 exercises/intro/intro2.rs Done
-variables1 exercises/variables/variables1.rs Pending
-variables2 exercises/variables/variables2.rs Pending
-variables3 exercises/variables/variables3.rs Pending
-[...]
-```
-
-### Run specific exercises
-
-If you don't want to start from the beginning and skip a few exercises, rustlings allows you to focus on specific exercises using the `rustlings run` command. This runs a specific program without requiring the previous lesson to be verified. For example:
-
-```
-$ rustlings run intro2
-Hello world!
-✅ Successfully ran exercises/intro/intro2.rs
-$ rustlings run variables1
-```
-
-Typing exercise names can become tedious, but rustlings provides you with a handy `next` command so you can move to the next exercise in the series.
-
-```
-$ rustlings run next
-```
-
-### Alternative watch command
-
-If you don't want to keep typing `verify` after each modification you make, you can run the `watch` command in a terminal window, and then keep modifying the source code to fix issues. The `watch` command detects these modifications, and keeps re-compiling the program to see whether the issue has been fixed.
-
-```
-$ rustlings watch
-```
-
-### Learn by debugging
-
-The Rust compiler is known to provide very meaningful error messages, which helps you understand issues in your code. This usually leads to faster debugging. Rustlings is a great way to practice Rust, to get used to reading error messages, and understand the Rust language. Check out the recent features of Rustlings 5.0.0 on [GitHub][7].
-
-**[[ Practice programming with Rust. Download our Rust cheat sheet. ]][8]**
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/7/learn-rust-rustlings
-
-作者:[Gaurav Kamathe][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/gkamathe
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/rust_programming_crab_sea.png
-[2]: https://opensource.com/article/22/6/rust-toolchain-rustup
-[3]: https://github.com/rust-lang/rustlings
-[4]: https://opensource.com/article/22/6/rust-toolchain-rustup
-[5]: https://opensource.com/article/19/2/getting-started-cat-command
-[6]: https://opensource.com/article/18/4/using-less-view-text-files-command-line
-[7]: https://github.com/rust-lang/rustlings/releases/tag/5.0.0
-[8]: https://opensource.com/downloads/rust-cheat-sheet
diff --git a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md b/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
deleted file mode 100644
index 8620d214f8..0000000000
--- a/sources/tech/20220810 How to Record Streaming Audio in Ubuntu and other Linux Distributions.md
+++ /dev/null
@@ -1,187 +0,0 @@
-[#]: subject: "How to Record Streaming Audio in Ubuntu and other Linux Distributions"
-[#]: via: "https://itsfoss.com/record-streaming-audio/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Record Streaming Audio in Ubuntu and other Linux Distributions
-======
-How to record audio in Ubuntu and other Linux distributions?
-
-If you want to record a voice over through the microphone of your computer, you can use GNOME Sound recorder or Audacity.
-
-Using GNOME Sound Recorder is easy but it lacks features. Audacity could be overwhelming initially but it has plenty of features for professional level recording. However, I am not going into that detail in this tutorial.
-
-GNOME Sound Recorder works with the microphone. There is another tool called Audio recorder and you can use it to record streaming music (from Sptify, YouTube, internet radio, Skype and most other sources) apart from microphone input.
-
-To summarize, I’ll show you the steps:
-
-* To record sound using GNOME Sound Recorder
-* To record streaming audio using Audio Recorder
-
-### Using Sound Recorder to record audio from the microphone
-
-GNOME desktop environment has a good variety of useful applications. Sound Recorder is one of them.
-
-You can install the [Sound Recorder][1] from the Ubuntu Software Center.
-
-![Sound Recorder can be installed from the Ubuntu Software Center][2]
-
-Or, you can use this command in the terminal to install it:
-
-```
-sudo apt install gnome-sound-recorder
-```
-
-Once installed, you can find it in the system menu and start from there.
-
-![GNOME Sound Recorder][3]
-
-Before you start using it, you should ensure that you have the correct input source chosen in the system settings. GNOME Sound Recorder
-
-![Ensure that you have chosen correct input in system settings][4]
-
-Once you open the Sound Recorder application, it will show an interface like the one below.
-
-![Hit the Record button to start audio recording][5]
-
-Hit on the record button and it starts recording audio instantly. While recording, you get options to pause, stop or discord the recording.
-
-![Options while recording audio][6]
-
-Your recordings are saved and available from the application interface itself. Click on the saved recordings to highlight it.
-
-You can replay the recordings or delete it. You can choose to save it to another location by clicking the save/download button. You may also rename the recordings using the edit button.
-
-![Saved recordings][7]
-
-That’s quite convenient, right? You can choose to record in MP3, FLAC and a couple of more formats.
-
-#### Removing GNOME Sound Recorder
-
-Don’t like it or find it lacking in terms of features?
-
-You can remove GNOME Sound Recorder from the Ubuntu Software Center or use the following command:
-
-```
-sudo apt remove gnome-sound-recorder
-```
-
-The application of GNOME Sound recorder is limited. It only records from the microphone and this is not what you would want in certain situations.
-
-Imagin you want to record a Skype call or something which is playing in an application or web browser? The nifty Audio Recorder helps in such cases.
-
-### Using Audio Recorder to record streaming audio
-
-You can watch this video to see how to use Audio Recorder. It’s a bit old but the steps are the same.
-
-![A Video from YouTube][8]
-
-[Subscribe to our YouTube channel for more Linux videos][9]
-
-You can use the [official PPA][10] to install Audio Recorder in Ubuntu and Linux Mint. Use the following commands in the terminal (Ctrl+Alt+T) one by one:
-
-```
-sudo apt-add-repository ppa:audio-recorder/ppa
-sudo apt update
-sudo apt install audio-recorder
-```
-
-Alternatively, you can download the source code from [launchpad][11]. Once installed, you can start the application from the Activity Overview:
-
-![Audio Recorder][12]
-
-#### Record all kinds of sound from various sources
-
-Audio Recorder records all kinds of sounds your computer makes.
-
-It records audio played through your system’s soundcard, microphones, browsers, webcams and more.
-
-In other words, it records even if your system sneezes (given that you want to record it). It allows you to select the recording device such as webcam, microphone, Skype, etc.
-
-To record the streaming music, select the appropriate source. For example, if you are playing streaming radio in Rhythmbox, then select Rythmbox.
-
-![Audio-Recorder Audio Settings][13]
-
-#### Record at your convenience
-
-Audio Recorder also gives you the option of setting timer. You can start, stop or pause recording at a given clock time or at a pre-defined interval. You can also set the limit on the recorded file size.
-
-Moreover, you can pause (and stop) when there is no audio (or very low sound) and resume it when sound comes back.
-
-All you have to do is to edit the text in the Timer panel. Comment out the “rules” you don’t want to apply and edit the ones per your requirement.
-
-![Audio-recorder Timer Settings][14]
-
-It provides additional settings like auto start at login, show tray icon and other record settings.
-
-![Audio-recorder Additional Settings][15]
-
-#### Save the recorded music file in various file formats
-
-Another gem. You can save the recorded file in your favourite file format. Supported file formats are OGG audio, Flac, MP3, SPX and WAV. I prefer MP3 for my recordings.
-
-The **recorded files are stored in ~/Audio** i.e., in the Audio folder inside your home directory.
-
-![Audio-recorder Audio Formats][16]
-
-#### How good is Audio Recorder?
-
-I used Audio Recorder in Ubuntu to [record the music played on YouTube][17]. I saved a 2-minute video in MP3 format that took 934 KB of space. But I must say I was not expecting the recorded sound quality to be so good. Honestly, I could not distinguish it from the original YouTube song.
-
-#### Removing Audio Recorder
-
-If you don’t find Audio Recorder to your liking, you can remove it using the following commands:
-
-```
-sudo apt remove audio-recorder
-```
-
-It will be a good idea to [remove the PPA as well][18]:
-
-```
-sudo apt-add-repository -r ppa:audio-recorder/ppa
-```
-
-### Conclusion
-
-There are probably several other tools for audio recording in Linux. Like GNOME, other desktop environments may also have sound recording apps. I know Deepin has one for sure.
-
-GNOME Sound Recorder is a decent tool for recording sound from your microphone. For recording sound from various sources, Audio Recorder is a good choice.
-
-I hope it helps with your audio recording needs. Let me know if you have any suggestions.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/record-streaming-audio/
-
-作者:[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://wiki.gnome.org/Apps/SoundRecorder
-[2]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-ubuntu.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/microphone-settings-ubuntu.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/using-sound-recorder-linux.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recording-with-sound-recorder.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/08/sound-recorder-interface.png
-[8]: https://youtu.be/o7Ia2QGeB7Q
-[9]: https://www.youtube.com/c/itsfoss?sub_confirmation=1
-[10]: https://launchpad.net/~audio-recorder/+archive/ubuntu/ppa
-[11]: https://launchpad.net/audio-recorder
-[12]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-in-overview.png
-[13]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-settings.png
-[14]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-timer-settings.png
-[15]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-additional-settings.png
-[16]: https://itsfoss.com/wp-content/uploads/2022/08/audio-recorder-audio-formats.png
-[17]: https://itsfoss.com/youtube-dl-audio-only/
-[18]: https://itsfoss.com/how-to-remove-or-delete-ppas-quick-tip/
diff --git a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md b/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md
deleted file mode 100644
index b32cba6876..0000000000
--- a/sources/tech/20220814 How to Record Audio in Linux With Audacity -and Reduce Noise-.md
+++ /dev/null
@@ -1,131 +0,0 @@
-[#]: subject: "How to Record Audio in Linux With Audacity (and Reduce Noise)"
-[#]: via: "https://itsfoss.com/audacity-recording/"
-[#]: author: "Anuj Sharma https://itsfoss.com/author/anuj/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Record Audio in Linux With Audacity (and Reduce Noise)
-======
-
-[Audacity][1] is a free and open source cross-platform [audio editor][2]. Professionals use it for the tone of features it provides in such a small package.
-
-You don’t have to be a professional and use all of its features. You can use it to record audio from your microphone and do some basics like background noise removal.
-
-I will show you how to do that in this tutorial.
-
-### Installing Audacity on Linux
-
-Installing Audacity on Linux is quite a straightforward process. Because of its popularity, it is available in the official repositories of most Linux distributions.
-
-You can search for it in your distribution’s software center or package manager.
-
-As a terminal fan, let me share the commands for the common distros.
-
-For Debian or Ubuntu-based distributions:
-
-```
-sudo apt install audacity
-```
-
-For RHEL or Fedora-based distributions:
-
-```
-sudo dnf install audacity
-```
-
-If you use an Arch-based distribution:
-
-```
-sudo pacman -Syu audacity
-```
-
-**Note** that installing via the official repositories may not give you the [latest version][3]. To get the latest version, you may use the AppImage, or Flatpak/Snap packages.
-
-### Recording audio using Audacity
-
-Once Audacity is installed, open it from the application menu or launch it from the terminal. You will be greeted with something like this:
-
-![Audacity Interface][4]
-
-It is easy to start recording by clicking on the **record** button (the red dot). When you are done, click on the **stop** button (square icon) to finish. You also get a waveform preview of your recording, as shown below:
-
-![record audio with audacity][5]
-
-Then, you can check what was recorded by clicking the **play** button (the green icon).
-
-In case you do not see any waveform it indicates that nothing has been recorded. Probably, you have not set up your input correctly. Ensure that you have selected the correct microphone and it is not muted in the **system settings**. You can also access this from the Audacity interface.
-
-The recordings are not saved automatically as MP3 or other formats. **To save the recording**, you can go to File → Export and select **Export as MP3** (or any other preferred format).
-
-### Reducing background noise with Audacity
-
-There is another fantastic feature available in Audacity which you can use to reduce white noise in recorded audio.
-
-The best practice would be to not say anything for the first five seconds when you start recording with Audacity. This should give you desired background noise.
-
-On the waveform of your audio recording, select the part you think is the background noise.
-
-![Background noise][6]
-
-With the noise part selected, go to **Effects → Noise Reduction** from the top file menu.
-
-It will open a pop-up window like this. Click on the “**Get Noise Profile**” here.
-
-![Noise Reduction Effect Popup Window][7]
-
-Now, you have got the noise profile set. Now you have to use it to reduce it from the recording.
-
-Press Ctrl + A shortcut key to select the entire recording. You may also select part of it, noise will be reduced from the selected portion only.
-
-With the audio track selected, again go to **Effect → Noise Reduction**.
-
-**Don’t click** on ‘Get Noise Profile’ this time. This time, you should be able to press the **OK** button.
-
-Just press the OK button and this will apply the noise reduction effect to your recording, which gets reflected on the waveform as shown below:
-
-![Audio Waveform after Noise Reduction][8]
-
-Now the recorded audio will have less noise as compared. You can fine-tune the noise filtering while selecting the Noise Reduction effect.
-
-To summarize:
-
-* Select the noise part, go to Effect->Noise Reduction and then click “Get Noise Profile”
-* Press Ctrl+A to select entire audio recording, go to Effect->Noise Reduction and press OK this time
-
-Note that you cannot remove every type of noise, but this should help nonetheless.
-
-### Audacity can do a lot more
-
-Recording audio with Audacity may not seem as easy as using GNOME Sound Recorder, but it’s not overly complicated. The noise reduction feature comes in handy if you are recording voiceovers.
-
-Audacity has a lot more features, and it is not possible to cover all of them in a single tutorial. This is why I’ll keep this short and simple.
-
-If you have a problem with [Audacity’s privacy policy adjustments][9] (in 2021), try out some of the available forks.
-
-I hope this little tutorial helps you use Audacity for audio recording. Let me know if you have questions or suggestions.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/audacity-recording/
-
-作者:[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://github.com/audacity/audacity
-[2]: https://itsfoss.com/best-audio-editors-linux/
-[3]: https://github.com/audacity/audacity/releases
-[4]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-interface.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/record-audio-with-audacity.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduction.png
-[7]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-steps.png
-[8]: https://itsfoss.com/wp-content/uploads/2022/08/audacity-noise-reduced.png
-[9]: https://news.itsfoss.com/audacity-fiasco-fork/
diff --git a/sources/tech/20220903 Infuse your awk scripts with Groovy.md b/sources/tech/20220903 Infuse your awk scripts with Groovy.md
deleted file mode 100644
index 0dd7cadd45..0000000000
--- a/sources/tech/20220903 Infuse your awk scripts with Groovy.md
+++ /dev/null
@@ -1,348 +0,0 @@
-[#]: 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/20220906 How to send raw network packets in Python with tun-tap.md b/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md
index f7f5e863bf..836dff1842 100644
--- a/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md
+++ b/sources/tech/20220906 How to send raw network packets in Python with tun-tap.md
@@ -2,7 +2,7 @@
[#]: via: "https://jvns.ca/blog/2022/09/06/send-network-packets-python-tun-tap/"
[#]: author: "Julia Evans https://jvns.ca/"
[#]: collector: "lujun9972"
-[#]: translator: "HankChow"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md b/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md
index 637044c34a..1712b69513 100644
--- a/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md
+++ b/sources/tech/20220910 How to Install and Use virt-manager Virtual Machine Manager in Ubuntu and Other Linux.md
@@ -2,7 +2,7 @@
[#]: via: "https://www.debugpoint.com/virt-manager/"
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
[#]: collector: "lkxed"
-[#]: translator: "yjacks"
+[#]: translator: " "
[#]: reviewer: " "
[#]: publisher: " "
[#]: url: " "
diff --git a/sources/tech/20220912 Why do domain names sometimes end with a dot.md b/sources/tech/20220912 Why do domain names sometimes end with a dot.md
deleted file mode 100644
index c8b73a55d5..0000000000
--- a/sources/tech/20220912 Why do domain names sometimes end with a dot.md
+++ /dev/null
@@ -1,256 +0,0 @@
-[#]: subject: "Why do domain names sometimes end with a dot?"
-[#]: via: "https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/"
-[#]: author: "Julia Evans https://jvns.ca/"
-[#]: collector: "lujun9972"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Why do domain names sometimes end with a dot?
-======
-
-Hello! When I was writing the zine [How DNS Works][1] earlier this year, someone asked me – why do people sometimes put a dot at the end of a domain name? For example, if you look up the IP for `example.com` by running `dig example.com`, you’ll see this:
-
-```
-
- $ dig example.com
- example.com. 5678 IN A 93.184.216.34
-
-```
-
-`dig` has put a `.` to the end of `example.com` – now it’s `example.com.`! What’s up with that?
-
-Also, some DNS tools require domains to have a `"."` at the end: if you try to pass `example.com` to [miekg/dns][2], like this, it’ll fail:
-
-```
-
- // trying to send this message will return an error
- m := new(dns.Msg)
- m.SetQuestion("example.com", dns.TypeA)
-
-```
-
-Originally I thought I knew the answer to this (“uh, the dot at the end means the domain is fully qualified?“). And that’s true – a fully qualified domain name is a domain with a “.” at the end!
-
-But that doesn’t explain _why_ dots at the end are useful or important.
-
-### in a DNS request/response, domain names don’t have a trailing “.”
-
-I once (incorrectly) thought the answer to “why is there a dot at the end?” might be “In a DNS request/response, domain names have a “.” at the end, so we put it in to match what actually gets sent/received by your computer”. But that’s not true at all!
-
-When a computer sends a DNS request or response, the domain names in it don’t have a trailing dot. Actually, the domain names don’t have _any_ dots.
-
-Instead, they’re encoded as a series of length/string pairs. For example, the domain `example.com` is encoded as these 13 bytes:
-
-```
-
- 7example3com0
-
-```
-
-So there are no dots at all. Instead, an ASCII domain name (like “example.com”) gets translated into the format used in a DNS request / response by various DNS software.
-
-So let’s talk about one place where domain names are translated into DNS responses: zone files.
-
-### the trailing “.” in zone files
-
-One way that some people manage DNS records for a domain is to create a text file called a “zone file” and then configure some DNS server software (like `nsd` or `bind`) to serve the DNS records specified in that zone file.
-
-Here’s an imaginary zone file for `example.com`:
-
-```
-
- orange 300 IN A 1.2.3.4
- fruit 300 IN CNAME orange
- grape 3000 IN CNAME example.com.
-
-```
-
-In this zone file, anything that doesn’t end in a `"."` (like `"orange"`) gets `.example.com` added to it. So `"orange"` is shorthand for `"orange.example.com"`. The DNS server knows from its configuration that this is a zone file for `example.com`, so it knows to automatically append `example.com` at the end of any name that doesn’t end with a dot.
-
-I assume the idea here is just to save typing – you could imagine writing this zone file by fully typing out all of the domain names:
-
-```
-
- orange.example.com. 300 IN A 1.2.3.4
- fruit.example.com. 300 IN CNAME orange.example.com.
- grape.example.com. 3000 IN CNAME example.com.
-
-```
-
-But that’s a lot of typing.
-
-### you don’t need zone files to use DNS
-
-Even though the zone file format is defined in the official DNS RFC ([RFC 1035][3]), you don’t have to use zone files at all to use DNS. For example, AWS Route 53 doesn’t use zone files to store DNS records! Instead you create records through the web interface or API, and I assume they store records in some kind of database and not a bunch of text files.
-
-Route 53 (like many other DNS tools) does support importing and exporting zone files though and it can be a good way to migrate records from one DNS provider to another.
-
-### the trailing “.” in dig
-
-Now, let’s talk about `dig`’s output:
-
-```
-
- $ dig example.com
- ; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> +all example.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10712
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
-
- ;; OPT PSEUDOSECTION:
- ; EDNS: version: 0, flags:; udp: 65494
- ;; QUESTION SECTION:
- ;example.com. IN A
-
- ;; ANSWER SECTION:
- example.com. 81239 IN A 93.184.216.34
-
-```
-
-One weird thing about this is that almost every line starts with a `;;`. What’s up with that? Well `;` is the comment character in zone files!
-
-So I think the reason that dig prints out its output in this weird way is so that if you wanted, you could just paste this into a zone file and have it work without any changes.
-
-This also explains why there’s a `.` at the end of `example.com.` – zone files require a trailing dot at the end of a domain name (because otherwise they’re interpreted as being relative to the zone). So `dig` does too.
-
-I really wish dig had a `+human` flag that printed out all of this information in a more human readable way, but for now I’m too lazy to put in the work to actually contribute code to do that (and I’m a pretty bad C programmer) so I’ll just complain about it on my blog instead :)
-
-### the trailing `"."` in curl
-
-Let’s talk about another case where the trailing `"."` shows up: curl!
-
-One of the computers in my house is called “grapefruit”, and it’s running a webserver. Here’s what happens if I run `curl grapefruit`:
-
-```
-
- $ curl grapefruit
-
-
-
-
-
-```
-
-It works! Cool. But what happens if I add a `.` at the end? Suddenly it doesn’t work:
-
-```
-
- $ curl grapefruit.
- curl: (6) Could not resolve host: grapefruit.
-
-```
-
-What’s going on? To understand, we need to learn about search domains:
-
-### meet search domains
-
-When I run `curl grapefrult`, how does that get translated into a DNS request? You might think that my computer would send a request for the domain `grapefruit`, right? But that’s not true.
-
-Let’s use `tcpdump` to see what domain is actually being looked up:
-
-```
-
- $ sudo tcpdump -i any port 53
- [...] A? grapefruit.lan. (32)
-
-```
-
-It’s actually sending a request for `grapefruit.lan`. What’s up with that?
-
-Well, what’s going on is that:
-
- 1. To look up `grapefruit`, `curl` calls a function called `getaddrinfo`
-
- 2. `getaddrinfo` looks in a file on my computer called `/etc/resolv.conf`
-
- 3. `/etc/resolv.conf` contains these 2 lines:
-
-```
- nameserver 127.0.0.53
- search lan
-
-```
-
- 4. Because it sees `search lan`, `getaddrinfo` adds a `lan` at the end of `grapefruit` and looks up `grapefruit.lan` instead
-
-
-
-
-### when are search domains used?
-
-Now we know something weird: that when we look up a domain, sometimes an extra thing (like `lan`) will be added to the end. But when does that happen?
-
- 1. If we put a `"."` at the **end** of the domain (like `curl grapefruit.`, then search domains aren’t used
- 2. If the domain has an `"."` **inside** it (like `example.com` has a dot in it), then by default search domains aren’t used either. But this can be changed with configuration (see this blog post about [ndots][4] that talks about this more)
-
-
-
-So now we know why `curl grapefruit.` has different results than `curl grapefruit` – it’s because one looks up the domain `grapefruit.` and the other one looks up `grapefruit.lan.`
-
-### how does my computer know what search domain to use?
-
-When I connect to my router, it tells me that its search domain is `lan` with DHCP – it’s the same way that my computer gets assigned an IP address.
-
-### so why do people put a dot at the end of domain names?
-
-Now that we know about zone files and search domains, here’s why I think people like to put dots at the end of a domain name.
-
-There are two contexts where domain names are modified and get something else added to the end:
-
- * in a zone file for `example.com`, `grapefruit` get translated to `grapefruit.example.com`
- * on my local network (with my computer configured to use the search domain `lan`), `grapefruit` gets translated to `grapefruit.lan`
-
-
-
-So because domain names can actually be translated to something else in some cases, people like to put a `"."` at the end to communicate “THIS IS THE DOMAIN NAME, NOTHING GETS ADDED AT THE END, THIS IS THE WHOLE THING”. Because otherwise it can get confusing.
-
-The technical term for “THIS IS THE WHOLE THING” is **“fully qualified domain name”** or **“FQDN”**. So `google.com.` is a fully qualified domain name, and `google.com` isn’t.
-
-I always have to remind myself for the reasons for this because I rarely use zone files or search domains, so I often feel like – “of course I mean `google.com` and not `google.com.something.else`! Why would I mean anything else?? That’s silly!”
-
-But some people do use zone files and search domains (search domains are used in Kubernetes, for example!), so the “.” at the end is useful to make it 100% clear that nothing else should be added.
-
-### when to put a “.” at the end?
-
-Here are a couple of quick notes about when to put a “.” at the end of your domain names:
-
-**Yes: when configuring DNS**
-
-It’s never bad to use fully qualified domain names when configuring DNS. You don’t always have to: a non-fully-qualified domain name will often work just fine as well, but I’ve never met a piece of DNS software that wouldn’t accept a fully qualified domain name.
-
-And some DNS software requires it: right now the DNS server I use for `jvns.ca` makes me put a `"."` at the end of domains names (for example in CNAME records) and warns me otherwise it’ll append `.jvns.ca` to whatever I typed in. I don’t agree with this design decision but it’s not a big deal, I just put a “.” at the end.
-
-**No: in a browser**
-
-Confusingly, it often _doesn’t_ work to put a `"."` at the end of a domain name in a browser! For example, if I type `https://twitter.com.` into my browser, it doesn’t work! It gives me a 404.
-
-I think what’s going on here is that it’s setting the HTTP Host header to `Host: twitter.com.` and the web server on the other end is expecting `Host: twitter.com`.
-
-Similarly, `https://jvns.ca.` gives me an SSL error for some reason.
-
-### I think relative domain names used to be more common
-
-One last thing: I think that “relative” domain names (like me using `grapefruit` to refer to the other computer in my house, `grapefruit.lan`) used to be more commonly used, because DNS was developed in the context of universities or other big institutions which have big internal networks.
-
-On the internet today, it seems like it’s more common to use “absolute” domain names (like `example.com`).
-
---------------------------------------------------------------------------------
-
-via: https://jvns.ca/blog/2022/09/12/why-do-domain-names-end-with-a-dot-/
-
-作者:[Julia Evans][a]
-选题:[lujun9972][b]
-译者:[译者ID](https://github.com/译者ID)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://jvns.ca/
-[b]: https://github.com/lujun9972
-[1]: https://wizardzines.com/zines/dns/
-[2]: https://github.com/miekg/dns
-[3]: https://www.rfc-editor.org/rfc/rfc1035#section-4.1.1
-[4]: https://pracucci.com/kubernetes-dns-resolution-ndots-options-and-why-it-may-affect-application-performances.html
diff --git a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md b/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md
deleted file mode 100644
index 2137eb7a6e..0000000000
--- a/sources/tech/20220929 Execute Commands On Remote Linux Systems Via SSH.md
+++ /dev/null
@@ -1,335 +0,0 @@
-[#]: subject: "Execute Commands On Remote Linux Systems Via SSH"
-[#]: via: "https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/"
-[#]: author: "sk https://ostechnix.com/author/sk/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Execute Commands On Remote Linux Systems Via SSH
-======
-Invoking Commands Or Programs On Remote Machines Over A Secure Network Connection
-
-The other day I was testing how to [keep file permissions intact while copying files or directories][1] to multiple locations and systems. When I wanted to check the file permissions on a remote system, I had to login to that system over SSH and check the attributes. The process of login and log-out from the remote system multiple times was bit annoying to me. I thought it would be better if I could **execute commands on remote Linux systems via SSH**.
-
-Fortunately, I found a workaround to invoke commands and programs on a remote machine over a secure network connection after skimming through the man pages of `ssh` command.
-
-If you ever wondered how to run a command or script on a remote system from your local system itself without logging in to that remote system, here is how to do it.
-
-#### Contents
-
-1. 1. Execute Commands On Remote Linux Systems Via SSH 2. 1.1. Run A Single Command On Remote Systems Over SSH 3. 1.2. Execute Multiple Commands On Remote Hosts Via SSH 4. 1.3. Invoke Commands With Sudo Privileges On Remote Machines Over SSH 5. 1.4. Run Local Scripts On Remote Systems Via SSH 6. 1.5. Save Command Output From Remote Host To Local Host 7. 1.6. Configure SSH Key-based Authentication To Avoid Password Typing
-8. 2. Use sshpass While Running Commands On Remote Machines Over SSH 9. 2.1. What Is sshpass? 10. 2.2. Install sshpass In Linux 11. 2.3. Execute Commands On Remote Machines Over SSH With sshpass
-12. Conclusion
-
-### 1. Execute Commands On Remote Linux Systems Via SSH
-
-The typical way to run a command or script on a remote system over SSH from the local system is:
-
-```
-$ ssh
-```
-
-Allow me to show you some examples.
-
-#### 1.1. Run A Single Command On Remote Systems Over SSH
-
-Let us say you want to [find Kernel details][2] of your remote Linux system. To do so, simply, run:
-
-```
-$ ssh sk@192.168.225.22 uname -a
-```
-
-Here,
-
-* sk is the username of my remote system,
-* 192.168.225.22 is the IP address of the remote system,
-* And `"uname -a"` is the command that I want to run on the remote system from my local system.
-
-**Sample output:**
-
-![Execute Commands On Remote Linux Systems Via SSH][3]
-
-See? I haven't actually logged-in to the remote system, but executed the `uname` command on the remote system over SSH and displayed the output in my local system's Terminal.
-
-You can also specify the command in quotes like below.
-
-```
-$ ssh sk@192.168.225.22 "uname -a"
-```
-
-Or,
-
-```
-$ ssh sk@192.168.225.22 'uname -a'
-```
-
-If you have [changed default port of SSH protocol][4], just mention it using **-p** parameter like below.
-
-```
-$ ssh -p 2200 sk@192.168.225.22 uname -a
-```
-
-#### 1.2. Execute Multiple Commands On Remote Hosts Via SSH
-
-You can also run multiple commands on a remote host by specifying them within quotes like below.
-
-```
-$ ssh sk@192.168.225.22 "uname -r && lsb_release -a"
-```
-
-Or,
-
-```
-$ ssh sk@192.168.225.22 "uname -r ; lsb_release -a"
-```
-
-The above commands will display the Kernel version and distribution details of my Ubuntu server.
-
-**Sample output:**
-
-![Run Multiple Commands On Remote Hosts Over SSH On Linux][5]
-
-As one one of our reader mentioned in the comment section below, you should specify multiple commands in quotes. If you don't use quotes, the first command will execute on the remote system and second command will be evaluated on local machine only. The whole command in quotes will be processed remotely as intended.
-
-#### 1.3. Invoke Commands With Sudo Privileges On Remote Machines Over SSH
-
-Some commands requires `"sudo"` privileges to run. For instance, the following command will install **Vim** on my remote system.
-
-```
-$ ssh -t sk@192.168.225.22 sudo apt install apache2
-```
-
-**Sample output:**
-
-![Run Commands With Sudo Privileges On Remote Machines Over SSH][6]
-
-Did you notice? I have used **-t** flag in the above command. We need to mention this **-t** flag to force pseudo-terminal allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.
-
-Also, I have entered password **twice**. The first time I entered the password of the remote user to access the remote system over SSH from my local system and the second password is required to give sudo permission to the remote user to install application (i.e. apache2 in this case) on the remote system.
-
-Let us check if the Apache service is running using command:
-
-```
-$ ssh -t sk@192.168.225.22 sudo systemctl status apache2
-sk@192.168.225.22's password:
-[sudo] password for sk:
-● apache2.service - The Apache HTTP Server
-Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
-Drop-In: /lib/systemd/system/apache2.service.d
-└─apache2-systemd.conf
-Active: active (running) since Thu 2019-12-19 11:08:03 UTC; 52s ago
-Main PID: 5251 (apache2)
-Tasks: 55 (limit: 2318)
-CGroup: /system.slice/apache2.service
-├─5251 /usr/sbin/apache2 -k start
-├─5253 /usr/sbin/apache2 -k start
-└─5254 /usr/sbin/apache2 -k start
-
-Dec 19 11:08:03 ubuntuserver systemd[1]: Starting The Apache HTTP Server...
-Dec 19 11:08:03 ubuntuserver apachectl[5227]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2409:4072:51f:a1b6:a00:27ff:f
-Dec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
-```
-
-Similarly, we can run any command or script on a remote system over SSH from the local system.
-
-#### 1.4. Run Local Scripts On Remote Systems Via SSH
-
-Let us a create a simple script on our local system to display all the available information about your remote system's distribution name, package management and base details etc.
-
-```
-$ vi system_information.sh
-```
-
-Add the following lines:
-
-```
-#!/bin/bash
-#Name: Display System Details
-#Owner: OSTechNIx
-#----------------------------
-echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel*
-```
-
-Press **ESC** key and type **:wq** to save the file and exit.
-
-Now run this script on your remote system over SSH using command:
-
-```
-$ ssh sk@192.168.225.22 'bash -s' < system_information.sh
-```
-
-**Sample output:**
-
-```
-sk@192.168.225.22's password:
-/etc/debian_version /etc/lsb-release /etc/os-release
-buster/sid
-DISTRIB_ID=Ubuntu
-DISTRIB_RELEASE=18.04
-DISTRIB_CODENAME=bionic
-DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"
-NAME="Ubuntu"
-VERSION="18.04.2 LTS (Bionic Beaver)"
-ID=ubuntu
-ID_LIKE=debian
-PRETTY_NAME="Ubuntu 18.04.2 LTS"
-VERSION_ID="18.04"
-HOME_URL="https://www.ubuntu.com/"
-SUPPORT_URL="https://help.ubuntu.com/"
-BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
-PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
-VERSION_CODENAME=bionic
-UBUNTU_CODENAME=bionic
-```
-
-If you don't specify `'bash -s'` in the above command, you will get the details of the remote system but Pseudo-terminal will not be allocated.
-
-#### 1.5. Save Command Output From Remote Host To Local Host
-
-This can be useful if you want to share the output of a command that you run on the remote system over SSH with your support team or colleague.
-
-The following command will run **"du -ah"** on your remote system over SSH and save the output in **diskusage.txt** file in your local system.
-
-```
-$ ssh sk@192.168.225.22 du -ah > diskusage.txt
-```
-
-You can then analyze the disk usage details by viewing the `diskusage.txt` file using **cat** command or text viewers.
-
-```
-$ cat diskusage.txt
-4.0K ./.profile
-4.0K ./.gnupg/private-keys-v1.d
-8.0K ./.gnupg
-76K ./data/image.jpg
-128K ./data/file.pdf
-20K ./data/text.docx
-5.9M ./data/audio.mp3
-6.1M ./data
-0 ./.sudo_as_admin_successful
-4.0K ./pacman?inline=false
-4.0K ./.bash_logout
-4.0K ./.wget-hsts
-4.0K ./.bash_history
-0 ./.cache/motd.legal-displayed
-4.0K ./.cache
-4.0K ./deb-pacman_1.0-0.deb
-4.0K ./.bashrc
-6.2M .
-```
-
-#### 1.6. Configure SSH Key-based Authentication To Avoid Password Typing
-
-If you run commands on remote systems often, you may want to configure SSH key-based authentication to skip password typing every time. More details can be found in the following link.
-
-* [How To Configure SSH Key-based Authentication In Linux][7]
-
-After configuring SSH key-based authentication, we can execute commands on Remote machines over SSH without entering the password:
-
-```
-$ ssh sk@192.168.225.22 sudo apt update
-```
-
-### 2. Use sshpass While Running Commands On Remote Machines Over SSH
-
-If you don't want to configure SSH key-based authentication, you can use **sshpass** utility to run commands on remote machines via without entering password.
-
-#### 2.1. What Is sshpass?
-
-The sshpass utility is designed for running ssh using the keyboard-interactive password authentication mode, but in non-interactive way. To put this in simple terms - sshpass offers non-interactive way to authenticate a SSH session.
-
-SSH uses direct TTY access to make sure that the password is indeed issued by an interactive keyboard user. Sshpass runs ssh in a dedicated tty, fooling it into thinking it is getting the password from an interactive user.
-
-#### 2.2. Install sshpass In Linux
-
-The sshpass utility is available in the default repositories of many Linux distributions. For instance, you can use the following command to install sshpass in Debian, Ubuntu and its derivatives:
-
-```
-$ sudo apt install sshpass
-```
-
-#### 2.3. Execute Commands On Remote Machines Over SSH With sshpass
-
-sshpass can accept password as an argument, or read the password via an environment variable, or read the password from a text file.
-
-**A word of caution:** All of these methods are **highly insecure**. All system users can see the password in the commands by simply issuing the **ps** command. It is **NOT RECOMMENDED** to use these methods in production. It is better to use key-based authentication instead.
-
-Let us see examples for each method.
-
-**Provide Password as an argument:**
-
-To provide password as an argument, use `-p` option like below.
-
-```
-$ sshpass -p ssh remoteuser@ip-address
-```
-
-**Example:**
-
-```
-$ sshpass -p ubuntu ssh ostechnix@192.168.1.30 uname -a
-```
-
-Here,
-
-* -p ubuntu - provides the password for the remote system.
-* ostechnix@192.168.1.30 - Remote username and IP address.
-* 'uname -a' - Command to execute on the remote machine.
-
-**Sample output:**
-
-```
-Linux Ubuntu22CT 5.15.60-1-pve #1 SMP PVE 5.15.60-1 (Mon, 19 Sep 2022 17:53:17 +0200) x86_64 x86_64 x86_64 GNU/Linux
-```
-
-**Provide Password as an Environment variable:**
-
-In this method, we declare an environment variable called **SSHPASS** with the remote system's password as its value. And then we provide the password with **-e** flag like below:
-
-```
-$ SSHPASS=ubuntu sshpass -e ssh ostechnix@192.168.1.30 uname -a
-```
-
-**Read Password from a text file:**
-
-Append the password in a text file with echo command:
-
-```
-$ echo "ubuntu" > mypassword.txt
-```
-
-Now, pass the password file to sshpass lwith **-f**flag like below:
-
-```
-$ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a
-```
-
-![Execute Commands On Remote Machines Over SSH With sshpass][8]
-
-### Conclusion
-
-In this tutorial, we learned a few methods to invoke a command or program on a remote machine over a secure network connection. Among all the methods, the sshpass method is least secure. The users are encouraged to avoid using sshpass in production systems.
-
---------------------------------------------------------------------------------
-
-via: https://ostechnix.com/execute-commands-on-remote-linux-systems-via-ssh/
-
-作者:[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/how-to-keep-ownership-and-file-permissions-intact-when-copying-files-or-directories/
-[2]: https://ostechnix.com/find-out-the-linux-distribution-name-version-and-kernel-details/
-[3]: https://ostechnix.com/wp-content/uploads/2019/12/Execute-Commands-On-Remote-Linux-Systems-Via-SSH.gif
-[4]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/
-[5]: https://ostechnix.com/wp-content/uploads/2019/12/Run-multiple-commands-on-remote-systems-via-SSH-on-Linux.png
-[6]: https://ostechnix.com/wp-content/uploads/2019/12/Run-commands-with-sudo-privileges-on-remote-systems-via-SSH.png
-[7]: https://ostechnix.com/configure-ssh-key-based-authentication-linux/
-[8]: https://ostechnix.com/wp-content/uploads/2022/09/Execute-Commands-On-Remote-Machines-Over-SSH-With-sshpass.png
diff --git a/sources/tech/20221004 5 Best Python IDE-s- and Code Editor-s-.md b/sources/tech/20221004 5 Best Python IDE-s- and Code Editor-s-.md
deleted file mode 100644
index 0869aeb644..0000000000
--- a/sources/tech/20221004 5 Best Python IDE-s- and Code Editor-s-.md
+++ /dev/null
@@ -1,214 +0,0 @@
-[#]: subject: "5 Best Python IDE(s) and Code Editor(s)"
-[#]: via: "https://www.debugpoint.com/5-best-python-ide-code-editor/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-5 Best Python IDE(s) and Code Editor(s)
-======
-We list the five best Python code editors for Ubuntu/Linux and Windows in 2022.
-
-[Python][1] is everywhere today, and it is arguably the C programming language of the modern era. You can find Python everywhere, from websites, apps, data science projects, and AI to IoT devices. So being a popular programming language of this decade, it is essential to know the development environment of Python, where developers create applications, especially if you are starting afresh.
-
-Many Python development environments are available with features and utilities catering to your need. Some of them are useful for beginners learning Python by setting up the environment and other users for heavy Python development and complex setups. Here, in this post, I will touch upon the five best of them that would help you to pick one for your own need and use case.
-
-### Best Python Editor for Coding
-
-This top list features the following editors:
-
-1. Eclipse
-2. PyCharm
-3. Spyder
-4. Sublime Text
-5. Thonny
-
-#### 1. Eclipse with PyDev
-
-![Eclipse Editor][2]
-
-[Eclipse][3] is a free and open-source IDE developed by IBM. This complete IDE is used for Java and Android development. However, it supports many other programming languages, including Python. You can use Eclipse with the popular PyDev plugin, which enables you to convert Eclipse to a complete Python development environment. With PyDev integration in Eclipse, you can do the compilation, code analysis, live debugging, interactive console access, and many more features.
-
-##### Advantage
-
-* Extensive features and complete Python development IDE.
-
-##### Disadvantage
-
-* A heavyweight on system performance.
-* Targetted for advanced users.
-
-##### Installation and more information
-
-* Platform: Linux
-* Type: IDE
-* Price: Free
-* Source: Open Source
-* Official Download link: [PyDev][4], [Eclipse][5]
-* Official Website: [Eclipse][6], [PyDev Plugin][7]
-* Flatpak: [Eclipse for Java is available as Flatpak via Flathub][8]. You can try this version after [setting up Flatpak.][9]
-
-#### 2. PyCharm Editor
-
-![PyCharm Editor][14]
-
-Developed by JetBrains, [PyCharm][15] provides intelligent code completion, code inspections, on-the-fly error highlighting, quick fixes, automated code refactorings, and rich navigation capabilities.
-
-PyCharm’s massive collection of tools out of the box includes an integrated debugger and test runner; Python profiler; a built-in terminal; integration with major VCS and built-in database tools; remote development capabilities with remote interpreters; an integrated ssh terminal; and integration with Docker and Vagrant.
-
-In addition to Python, PyCharm provides first-class support for various Python web development frameworks, specific template languages, JavaScript, CoffeeScript, TypeScript, HTML/CSS, AngularJS, Node.js, and more.
-
-PyCharm has two versions of installers. The professional version and a community version. The community version is free and open source. The professional version is not free as it comes with professional tools and extensive support. The professional edition has a monthly subscription version of <10 USD for individual use.
-
-However, if you are a beginner, you can start with the free Community edition of PyCharm.
-
-For both Scientific and Web Python development. With HTML, JS, and SQL support.
-
-##### Advantage
-
-* Advanced and modern editing capabilities for professionals that aid rapid developments.
-
-##### Disadvantage
-
-* Most professional tools are available in the paid version (approximately 8 to 10 USD per month for individual use).
-
-##### Installation and additional information
-
-* Platform: Linux, Mac, and Windows
-* Type: IDE
-* Price: Free (Community edition) and Paid (Professional Edition)
-* Source: Open Source (Community Edition)
-* [Official Download link][16]
-* Flatpak:You can install the [community version via Flathub][17] after [setting up your Linux system for Flatpak][18].
-
-#### 3. Spyder Editor
-
-![Spyder Editor][23]
-
-[Spyder][24] is a powerful Python editor written in Python for Python. It is designed to be used by scientists, engineers, and data scientists. It offers a unique combination of a comprehensive development tool’s advanced editing, analysis, debugging, and profiling functionality with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.
-
-##### Advantage
-
-* Lightweight and Free
-
-##### Disadvantage
-
-* You have to download it as part of the Anaconda package. No standalone installer.
-
-##### Installation and additional instructions
-
-* Platform: Anaconda
-* Type: IDE
-* Price: Free
-* Source: Open Source
-* [Official Download link][25]
-* [Official Website][26]
-
-#### 4. Sublime Text
-
-![Sublime Text][27]
-
-[Sublime Text][28] is a sophisticated code editor with a Python programming interface. It is a cross-platform utility and natively supports many programming languages. You can extend its features and functionality using plugins. The sublime text comes with productivity-boosting features such as Goto anything, changes to multiple sections of your file simultaneously.
-
-##### Advantages
-
-* Lightweight, free, and available for Windows, Mac, and Linux.
-
-##### Disadvantages
-
-* It is free to evaluate, but you must buy a license for advanced usage.
-
-##### Additional information and installation
-
-* Platform: Windows, Linux, OS X
-* Type: IDE
-* Price: Free, but a license must be purchased for continuous use
-* Source: Closed Source
-* [Official Download link][29]
-* [Official Website][30]
-* Flatpak: Sublime Text is available via [Flathub as Flatpak][31]. Set up your [Linux system for Flatpak][32] and then install it.
-
-#### 5. Thonny Python Editor
-
-![Thonny Editor][37]
-
-[Thonny][38] is a beginner’s Python IDE and is simple to use. It comes with the latest Python (3.7+ as of writing) built-in, so you do not need to worry about installing Python separately in your operating system. The user interface is clutterless and distraction-free for beginners. Some of the other notable features of Thonny include – a variable view, simple debugger, steps, and syntax errors.
-
-##### Advantages
-
-* Lightweight, free, and available for Windows, Mac, and Linux.
-* Perfect for absolute beginners in Python (or even in coding).
-
-##### Disadvantages
-
-* Available with basic features as it is a beginner’s IDE.
-
-##### Installation and additional info
-
-* Platform: Windows, Linux, Mac
-* Type: IDE
-* Price: Free
-* Source: Open Source
-* [Official Download link][39]
-* Flatpak: It’s available as [Flatpak via Flathub][40]. Set up your [Linux system to install Flatpak][41], and they go for installing it.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/5-best-python-ide-code-editor/
-
-作者:[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.python.org/
-[2]: https://www.debugpoint.com/wp-content/uploads/2020/06/Eclipse-Editor.png
-[3]: https://www.eclipse.org/
-[4]: https://www.pydev.org/
-[5]: https://www.eclipse.org/
-[6]: https://www.eclipse.org/
-[7]: https://www.pydev.org/
-[8]: https://flathub.org/apps/details/org.eclipse.Java
-[9]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[10]: https://flathub.org/apps/details/org.eclipse.Java
-[11]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[12]: https://flathub.org/apps/details/org.eclipse.Java
-[13]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[14]: https://www.debugpoint.com/wp-content/uploads/2020/06/PyCharm-Editor.png
-[15]: https://www.jetbrains.com/pycharm/
-[16]: https://www.jetbrains.com/pycharm/download/
-[17]: https://flathub.org/apps/details/com.jetbrains.PyCharm-Community
-[18]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[19]: https://flathub.org/apps/details/com.jetbrains.PyCharm-Community
-[20]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[21]: https://flathub.org/apps/details/com.jetbrains.PyCharm-Community
-[22]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[23]: https://www.debugpoint.com/wp-content/uploads/2020/06/Spyder-Editor.png
-[24]: https://www.spyder-ide.org/
-[25]: https://www.anaconda.com/download/
-[26]: https://www.spyder-ide.org/
-[27]: https://www.debugpoint.com/wp-content/uploads/2020/06/Sublime-Text-Editor.png
-[28]: https://www.sublimetext.com/
-[29]: https://www.sublimetext.com/3
-[30]: https://www.sublimetext.com/
-[31]: https://flathub.org/apps/details/com.sublimetext.three
-[32]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[33]: https://flathub.org/apps/details/com.sublimetext.three
-[34]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[35]: https://flathub.org/apps/details/com.sublimetext.three
-[36]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[37]: https://www.debugpoint.com/wp-content/uploads/2020/06/Thonny-Editor.png
-[38]: https://thonny.org/
-[39]: https://thonny.org/
-[40]: https://flathub.org/apps/details/org.thonny.Thonny
-[41]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[42]: https://flathub.org/apps/details/org.thonny.Thonny
-[43]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
-[44]: https://flathub.org/apps/details/org.thonny.Thonny
-[45]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
diff --git a/sources/tech/20221004 Learn the OSI model in 5 minutes.md b/sources/tech/20221004 Learn the OSI model in 5 minutes.md
deleted file mode 100644
index eb53583bb2..0000000000
--- a/sources/tech/20221004 Learn the OSI model in 5 minutes.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "Learn the OSI model in 5 minutes"
-[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
-[#]: author: "Anamika https://opensource.com/users/anamika"
-[#]: collector: "lkxed"
-[#]: translator: "cool-summer-021"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn the OSI model in 5 minutes
-======
-Get the basics of the Open Systems Interconnection (OSI) framework for conceptualizing communication within a computer system.
-
-The Open Systems Interconnection (OSI) model is a standard for how computers, servers, and people communicate within a system. It was the first standard model for network communications and was adopted in the early 1980s by all major computer and telecommunications companies.
-
-The OSI model provides a universal language for describing networks and thinking about them in discrete chunks, or layers.
-
-### Layers of the OSI model
-
-The model describes the seven layers through which computer systems communicate over a network.
-
-1. [Application layer][2]
-2. [Presentation layer][3]
-3. [Session layer][4]
-4. [Transport layer][5]
-5. [Network layer][6]
-6. [Data link layer][7]
-7. [Physical layer][8]
-
-Each of these layers has its own way of working, with its own set of protocols that distinguish it from the others. This article provides a breakdown of the layers one by one.
-
-### Application layer
-
-The application layer is implemented in software. It is the layer used to interact with applications.
-
-Consider the example of sending a message. The sender will interact with the application layer and send the message. The application layer sends the message to the next layer in the OSI Model, the presentation layer.
-
-### Presentation layer
-
-The data from the application layer is forwarded to the presentation layer. The presentation layer receives the data in the form of words, characters, letters, numbers, and so on, and converts them into machine representable binary format. This process is known as translation.
-
-At this stage, ASCII characters (American Standard Code for Information Interchange) are converted into Extended Binary Coded Decimal Interchange Code (EBCDIC). Before the converted data goes further, it also undergoes encoding and encryption processes, using the SSL protocol for encryption and decryption.
-
-The presentation layer provides abstraction and assumes that the layers following it will take care of the data forwarded to them from this layer. It also plays a role in compression of the data. The compression can be lossy or lossless, depending on various factors beyond this article's scope.
-
-### Session layer
-
-The session layer helps in setting up and managing connections. The main work of this layer is to establish a session. For example, on an online shopping site, a session is created between your computer and the site's server.
-
-The session layer enables the sending and receiving of data, followed by the termination of connected sessions. Authentication is done before a session is established, followed by authorization. Like the previous layers, the session layer also assumes that, after its work is done, the data will be correctly handled by the subsequent layers.
-
-### Transport layer
-
-The transport layer manages data transportation and its own set of protocols for how data will be transferred. The data received here from the session layer is divided into smaller data units called segments. This process is known as segmentation. Every segment contains the source's and destination's port numbers and a sequence number. Port numbers identify the application on which the data needs to be sent. Note that the data is transferred in chunks. The sequence numbers are used to reassemble the segments in the correct order.
-
-The transport layer takes care of the flow control, or the amount of data transferred at a given time. It also accounts for error control, such as data loss, data corruption, and so on. It makes use of an error-detecting value known as a checksum. The transport layer adds a checksum to every data segment to check whether the sent data is received correctly. Data is then transferred to the network layer.
-
-### Network layer
-
-The network layer helps communicate with other networks. It works to transmit received data segments from one computer to another located in a different network. The router lives in the network layer.
-
-The function of the network layer is logical addressing (IP Addressing). It assigns the sender's and receiver's IP addresses to each data packet to ensure it is received at the correct destination. The network layer then routes the data packets. Load balancing also happens in the network layer to make sure that no overloading takes place. Next, the data is transported to the data link layer.
-
-### Data link layer
-
-The data link layer allows direct communication with other devices, such as computers and hosts.
-
-It receives data packets containing the IP addresses of the sender and receiver from the network layer and does the physical addressing, assigning the media access control (MAC) addresses of the sender and receiver to a data packet to form a frame.
-
-### Physical layer
-
-This layer consists of all the hardware and mechanical elements of a system, including the configuration of wires, pins, adapters, and so forth. The data received here by the preceding layers is in the form of 0s and 1s. The physical layer converts this data and transports it to local media via various means, including wires, electrical signals, light signals (as in optical fiber cables), and radio signals (as in WiFi).
-
-Note that the physical layer works at the receiver's end and transports the received signal to the data link as a frame (by converting it back to bits). The frame is moved to the higher layers, and ultimately the required data is received at the application layer, which is the software.
-
-### Conclusion
-
-The OSI model is helpful when you need to describe network architecture or troubleshoot network problems. I hope this article gave you a clearer understanding of the elements this model.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/10/osi-model-network-communications
-
-作者:[Anamika][a]
-选题:[lkxed][b]
-译者:[cool-summer-021](https://github.com/cool-summer-021)
-校对:[校对者ID](https://github.com/校对者ID)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
-
-[a]: https://opensource.com/users/anamika
-[b]: https://github.com/lkxed
-[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
-[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
-[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
-[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
-[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
-[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
-[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
-[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer
diff --git a/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md b/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md
deleted file mode 100644
index 4e78ea7df5..0000000000
--- a/sources/tech/20221004 Ubuntu 22.10- Top New Features and Release Wiki.md
+++ /dev/null
@@ -1,169 +0,0 @@
-[#]: subject: "Ubuntu 22.10: Top New Features and Release Wiki"
-[#]: via: "https://www.debugpoint.com/ubuntu-22-10/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Ubuntu 22.10: Top New Features and Release Wiki
-======
-Here’s the list of new features and tech which is coming up in Ubuntu 22.10 Kinetic Kudu.
-
-![Ubuntu 22.10 Kinetic Kudu Desktop (dev)][1]
-
-The development of Ubuntu 22.10 is almost at the finishing stage, and the BETA is out. At this stage, features are frozen, and only testing/bug fixes are ongoing for Ubuntu 22.10.
-
-In this article, I will touch upon the essential features of Ubuntu 22.10 Kinetic Kudu. But before that, a quick summary of the schedule.
-
-Ubuntu 22.10 BETA was released on September 29, 2022, and it’s currently under testing.
-
-The final release of Ubuntu 22.10 is on October 20, 2022.
-
-Since it is a short-term release, it is supported for nine months until July 20, 2023.
-
-### Ubuntu 22.10 Kinetic Kudu Desktop: Top Features
-
-Following the letter-based code name, we are at “K” following the “J” of Jammy Jellyfish. This version is code-named “Kinetic Kudu”, named after a [long-horned animal species][2] found in Africa.
-
-All the packages and repos are named as “kinetic” in applicable places for this release.
-
-#### Linux Kernel
-
-Ubuntu 22.10 features Linux Kernel 5.19, which was released a few days back. The current mainline kernel, which is dubbed as [version 6.0][3], won’t feature in this version due to a schedule mismatch.
-
-Linux Kernel 5.19 brings regular updates across CPU, GPU and other peripherals. Significant features in this Kernel include multi-platform ARM support, LoongArch arch support, support for AMD RDNA, CDNA, Intel’s Raptor Lake and many important updates. You can read in detail about its new features on [this page][4].
-
-#### GNOME 43
-
-In Ubuntu 22.10, GNOME 43 is the base desktop version. GNOME 43 is an impressive release in terms of features and work around the GTK4 and libadwaita. A lot of features which was missed to reach in Ubuntu 22.04 LTS, finally arrived in this version.
-
-Since the feature list is vast, I will try to summarize it here.
-
-First and foremost, GNOME Shell gets high-resolution scroll wheel support, colour support in server decoration, and improved animation and performance all around the desktop.
-
-Secondly, the vital app – Files (Nautilus) 43 brings a vast set of tweaks after its migration to GTK4. In Files 43, you get the redesigned context menu, rubberband selection, adaptive sidebar, which auto-hides based on its size, emblems support and new GtkColumnView support for a better experience.
-
-Third, the stunning [GNOME 43 quick settings][5] arrive in Ubuntu. The settings will give you easy access to several key items right from the tray.
-
-Other important changes in GNOME 43 include:
-
-* An updated properties dialog window with intelligent behaviour based on file types
-* GNOME Web gets web extension API support enabling you to install Firefox and Chrome add-ons
-* Improved context menu in Files sidebar
-* Updated app info page in Software
-
-Don’t forget to review my detailed [GNOME 43 feature write-up][6] to learn more.
-
-#### New Settings Panel
-
-There are some [key changes][7] arrive in the Settings panel. A new panel is introduced – “Ubuntu Desktop” which has the desktop icon and dock options. This panel is unavailable in vanilla GNOME (e.g. in Fedora Workstation).
-
-![New Ubuntu desktop and Appearance tab in settings][8]
-
-The Background tab is now merged with the Appearance tab. This essentially consolidates Ubuntu’s theming options to one single setting page. Effectively, it’s a good change and a wise UI decision. In addition, a new “Device Security Panel” is also introduced.
-
-#### PipeWire by Default
-
-Ubuntu 22.10 is all about adopting the new tech, and leaving the legacy items behind. With that motto, in this release, the Pipewire sound server is made default for the first time in Ubuntu. PulseAudio will still be there but inactive for now.
-
-For those folks in Audio recording, mixing work would greatly benefit from this.
-
-#### IWD replacing the wpa_supplicant
-
-Similarly, with PipeWire, another new tech adoption is coming in Ubuntu 22.10. The legacy `wpa_supplicant` wireless module is changing, and IWD (iNet Wireless Daemon) is replacing it. The IWD was developed by Intel, and it had certain advantages and more features over wpa_supplicant.
-
-Besides, the wpa_supplicant is almost two decades old and served its purpose in GNU/Linux and BSD systems.
-
-In my personal experience, I had some difficult experiences with wpa_supplicant, which manages the Wi-Fi connections. For example, sudden disconnection, and not waking up the Wi-Fi after standby, to name a few.
-
-With the modern IWD, I hope the continuous struggle with several users with Ubuntu and Wi-Fi shall disappear. If you want to learn more about IWD, you can read some excellent discussions [here][9] and [here][10].
-
-#### Official desktop flavours
-
-All the official desktop flavours of Ubuntu are getting their current stable release. If you are already using Xubuntu, Ubuntu MATE – well, you get the same version as the prior one. Because these desktops did not have a major upgrade recently.
-
-Lubuntu users should get the recently released LXQt 1.1.0 desktop which brings additional features such as compact and a new application menu, new theming changes and more.
-
-Kubuntu users should get KDE Plasma 5.25, which brings you some unique features such as a floating panel, dynamic accent colour and many [such exciting features][11].
-
-Budgie lovers should get the new features that are under development via Ubuntu Budgie 22.10. I will write up a separate article on Budgie because of the changes.
-
-So, in summary, you get [Xfce 4.16][12], MATE 1.24, KDE Plasma 5.25 and LXQt 1.1.0 as the desktop versions.
-
-#### Tool-chain updates
-
-Now, it’s time to find out about the important packages and programming updates for developers. In this release, you get the following version upgrades for individual items.
-
-* BlueZ 5.65
-* CUPS 2.4
-* Python 3.10.6
-* NetworkManager 1.38
-* Mesa 22
-* Pipewire 0.3.56
-* PulseAudio 16
-* xdg-desktop-portal 1.14
-
-Although, I am not sure whether Python 3.11 will be ready ([currently in RC][13]) before release. I hope not.
-
-#### Wallpaper
-
-Finally, a brand new wallpaper featuring the official Kudu mascot is ready to give your desktop a nice touch.
-
-#### Summary of the key changes in Ubuntu 22.10
-
-* Linux Kernel 5.19
-* GNOME 43
-* Pipewire by default
-* IWD is replacing wpa_supplicant
-* KDE Plasma 5.25 in Kubuntu
-* LXQt 1.1.0 in Lubuntu
-* Firefox 104
-* LibreOffice 7.4
-* Thunderbird 102
-
-You can download the BETA builds of this release (which are stable with the condition) [from this page][14] for testing.
-
-The flavours’ BETA builds are available on the below pages.
-
-| Ubuntu Flavour | Link for daily builds .iso image(s) |
-| :- | :- |
-| Ubuntu 22.10 Desktop | http://cdimage.ubuntu.com/daily-live/current/ |
-| Xubuntu 22.10 | https://cdimage.ubuntu.com/xubuntu/releases/kinetic/beta/ |
-| Ubuntu MATE 22.10 | https://cdimage.ubuntu.com/ubuntu-mate/releases/kinetic/beta/ |
-| Ubuntu Kylin 22.10 | https://cdimage.ubuntu.com/ubuntukylin/releases/kinetic/beta/ |
-| Lubuntu 22.10 | https://cdimage.ubuntu.com/lubuntu/releases/kinetic/beta/ |
-| Kubuntu 22.10 | https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/ |
-| Ubuntu Budgie 22.10 | https://cdimage.ubuntu.com/ubuntu-budgie/releases/kinetic/beta/ |
-| Ubuntu Unity 22.10 | https://cdimage.ubuntu.com/ubuntu-unity/releases/kinetic/beta/ |
-
-So, that’s about it on the changes in Ubuntu 22.10. Do let me know about your favourite feature in the comment box.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/ubuntu-22-10/
-
-作者:[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/2022/08/Ubuntu-22.10-Kinetic-Kudu-Desktop-dev.jpg
-[2]: https://en.wikipedia.org/wiki/Kudu
-[3]: https://www.debugpoint.com/linux-kernel-6-0/
-[4]: https://www.debugpoint.com/linux-kernel-5-19/
-[5]: https://www.debugpoint.com/gnome-43-quick-settings/
-[6]: https://www.debugpoint.com/gnome-43/
-[7]: https://launchpad.net/ubuntu/kinetic/+source/gnome-control-center/+changelog
-[8]: https://www.debugpoint.com/wp-content/uploads/2022/08/New-Ubuntu-desktop-and-Appearance-tab-in-settings.jpg
-[9]: https://bbs.archlinux.org/viewtopic.php?id=237074
-[10]: https://bbs.archlinux.org/viewtopic.php?pid=1858588#p1858588
-[11]: https://www.debugpoint.com/kde-plasma-5-25/
-[12]: https://www.debugpoint.com/xfce-4-16-review/
-[13]: https://pythoninsider.blogspot.com/2022/08/python-3110rc1-is-now-available.html
-[14]: https://cdimage.ubuntu.com/daily-live/current/
diff --git a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md b/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md
deleted file mode 100644
index 68c3bb50b4..0000000000
--- a/sources/tech/20221010 How to Update Google Chrome on Ubuntu Linux.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: subject: "How to Update Google Chrome on Ubuntu Linux"
-[#]: via: "https://itsfoss.com/update-google-chrome-ubuntu/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Update Google Chrome on Ubuntu Linux
-======
-So, you managed to install Google Chrome browser on your Ubuntu system. And now you wonder how to keep the browser updated.
-
-On Windows and macOS, when there is an update available on Chrome, you are notified in the browser itself and you can hit the update option from the browser.
-
-Things are different in Linux. You don’t update Chrome from the browser. You update it with the system updates.
-
-Yes. When there is a new update available on Chrome, Ubuntu notifies you via the system updater tool.
-
-![Ubuntu sends notifications when a new version of Chrome is available][1]
-
-You just have to click on the Install Now button, enter your account’s password when asked for it and have Chrome updated to a new version.
-
-Let me tell you why you see the updates on the system level and how you can update Google Chrome in the command line.
-
-### Method 1: Updating Google Chrome with system updates
-
-How did you install Chrome in the first place? You got the deb installer file from the [Chrome website][2] and used it to [install Chrome on Ubuntu][3].
-
-The thing is that when you do that, Google adds a repository entry into your system’s sources list. This way, your system trusts the packages coming from the Google repository.
-
-![Google Chrome repository is added to the Ubuntu system][4]
-
-For all such entries added to your system, the package updates are centralized through the Ubuntu Updater.
-
-And this is why when there is an update available to Google Chrome (and other installed applications), your Ubuntu system sends you notification.
-
-![Chrome update available with other applications via System Updater][5]
-
-**Click the “Install Now” button and enter your password when asked for it**. Soon, the system will install all the upgradeable packages.
-
-Depending on the update preference, the notification may not be immediate. If you want, you can manually run the updater tool and see what updates are available for your Ubuntu system.
-
-![Run Software Updater to see what updates are available for your system][6]
-
-### Method 2: Updating Chrome in the Ubuntu command line
-
-If you prefer the terminal over the graphical interface, you can update Chrome with commands as well.
-
-Open a terminal and run the following commands one by one:
-
-```
-sudo apt update
-
-sudo apt --only-upgrade install google-chrome-stable
-```
-
-The first command updates the package cache so that your system is aware of what packages can be upgraded.
-
-The second command [only updates the single package][7] which is Google Chrome (installed as google-chrome-stable).
-
-### Conclusion
-
-As you can see, things are more streamlined in Ubuntu than in Windows. You get Chrome updated along with other system updates.
-
-On a related note, you may learn about [removing google Chrome from Ubuntu][8] if you are unhappy with it.
-
-Chrome is a fine browser. You can experiment with it by [using shortcuts in Chrome][9] as it makes the browsing experience even smoother.
-
-Enjoy Chrome on Ubuntu!
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/update-google-chrome-ubuntu/
-
-作者:[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/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png
-[2]: https://www.google.com/chrome/
-[3]: https://itsfoss.com/install-chrome-ubuntu/
-[4]: https://itsfoss.com/wp-content/uploads/2021/06/google-chrome-repo-ubuntu.png
-[5]: https://itsfoss.com/wp-content/uploads/2021/06/chrome-edge-update-ubuntu.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/04/software-updater-ubuntu-22-04.jpg
-[7]: https://itsfoss.com/apt-upgrade-single-package/
-[8]: https://itsfoss.com/uninstall-chrome-from-ubuntu/
-[9]: https://itsfoss.com/google-chrome-shortcuts/
diff --git a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md b/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md
deleted file mode 100644
index f97f4a07af..0000000000
--- a/sources/tech/20221011 Easiest Way to Open Files as Root in GNOME Files.md
+++ /dev/null
@@ -1,81 +0,0 @@
-[#]: subject: "Easiest Way to Open Files as Root in GNOME Files"
-[#]: via: "https://www.debugpoint.com/gnome-files-root-access/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: "geekpi"
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Easiest Way to Open Files as Root in GNOME Files
-======
-Here’s the simplest way to access a file or directory as root in GNOME Files.
-
-![][1]
-
-In Windows, you generally get an option to open a file or folder as “Open As Administrator” in the right-click context menu.
-
-That feature is part of the File manager, i.e. for Windows; it’s part of Windows Explorer. However, it is executed by the operating system and its permission control modules.
-
-In Linux distributions and file managers, the situation is a little different. The different desktop has their way of handling this.
-
-Since modifying the files and folders as admin (or root) is risky and may cause a broken system, the feature is not easily available to users via the GUI of file managers.
-
-For example, KDE Plasma’s default file manager Dolphin recently [added this feature][2] so that when a root privilege is required, it will ask for you with a PolicyKit KDE Agent (polkit) window – as shown below. Not the other way around. You want to open/execute something via root from the file manager.
-
-It’s worth mentioning that you can not use “sudo dolphin” to run the file manager itself with root privilege.
-
-![Dolphin root access after KIO with Polkit implementation][3]
-
-In a way, it saves many unforeseen situations. But advanced users can always use sudo via the terminal to do their job.
-
-### GNOME Files (Nautilus) and root access to files, directories
-
-That being said, [GNOME Files][4] (aka Nautilus) has a way to open files and folders via root.
-
-Here’s how.
-
-* Open GNOME Files or Nautilus.
-* Then click on other locations at the left pane.
-* Press CTRL+L to bring up the address bar.
-* In the address bar, type in below and hit enter.
-
-```
-admin:///
-```
-
-* It would ask for the admin password; once you authenticate yourself successfully, you get the system open for you as admin.
-* Now, here onwards, whatever you do, it’s as admin or root.
-
-![Enter the location address as admin][5]
-
-![Give admin password][6]
-
-![Opening GNOME Files as root][7]
-
-But, as always, be careful what you do as an admin. It’s often easy to forget after you authenticate yourself as root.
-
-There’s always a reason why these options are not easily visible to prevent you and many new Linux users from breaking their system.
-
-Cheers.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/gnome-files-root-access/
-
-作者:[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/2022/10/nauroot-1024x576.jpg
-[2]: https://www.debugpoint.com/dolphin-root-access/
-[3]: https://www.debugpoint.com/wp-content/uploads/2022/02/Dolphin-root-access-after-KIO-with-Polkit-implementation.jpg
-[4]: https://wiki.gnome.org/Apps/Files
-[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enter-the-location-address-as-admin.jpg
-[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/Give-admin-password.jpg
-[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Opening-GNOME-Files-as-root.jpg
diff --git a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md b/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md
deleted file mode 100644
index c29d2621a3..0000000000
--- a/sources/tech/20221012 How to Set Static IP Address on Ubuntu Server 22.04.md
+++ /dev/null
@@ -1,125 +0,0 @@
-[#]: subject: "How to Set Static IP Address on Ubuntu Server 22.04"
-[#]: via: "https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/"
-[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-How to Set Static IP Address on Ubuntu Server 22.04
-======
-In this post, we will cover how to set static ip address on Ubuntu server 22.04.
-
-It is highly recommended to have a static ip on linux server because it would be persistent across the reboot. Static IP plays an important role for servers like Mail Server, Web Server and File server etc.
-
-##### Prerequisites
-
-* Minimal Installed Ubuntu Server 22.04
-* Regular User with sudo admin rights
-
-In Ubuntu server 22.04, networking is controlled by netplan utility, so we will use netplan to configure static ip address on Ubuntu server.
-
-Note: we cannot use [nmcli utiltity][1] as it is not the part of default installation on Ubuntu server.
-
-### Setting up Static IP address on Ubuntu Server 22.04
-
-Login to your Ubuntu server 22.04, look for the netplan configuration file. It is located under /etc/netplan directory.
-
-```
-$ cd /etc/netplan/
-$ ls -l
-total 4
--rw-r--r-- 1 root root 116 Oct 12 04:03 00-installer-config.yaml
-$
-```
-
-Run below cat command to view the contents of ‘00-installer-config.yaml’
-
-Note: Name of configuration file may differ as your per setup. As it is an yaml file, so make sure to maintain the indentation and syntax while editing.
-
-```
-$ cat 00-installer-config.yaml
-```
-
-Output,
-
-![Default-Content-netplan-ubuntu-server][2]
-
-As per above output, it says that we have ens33 interface and it is getting ip from dhcp server. Alternate way to view interface name is via ip command.
-
-Now, to configure static ip in place of dhcp, edit netplan configuration file using vi or nano editor and add the following content.
-
-```
-$ sudo vi 00-installer-config.yaml
-# This is the network config written by 'subiquity'
-network:
- renderer: networkd
- ethernets:
- ens33:
- addresses:
- - 192.168.1.247/24
- nameservers:
- addresses: [4.2.2.2, 8.8.8.8]
- routes:
- - to: default
- via: 192.168.1.1
- version: 2
-```
-
-save and close the file.
-
-![Updated-Netplan-Config-File-Content-Ubuntu-Server][3]
-
-In the above file we have used following,
-
-* ens33 is the interface name
-* addresses are used to set the static ip
-* nameservers used to specify the DNS server ips
-* routes used to specify the default gateway
-
-Note: Change the IP details and interface name as per your environment.
-
-To make above changes into the effect the apply these changes using following netplan command,
-
-```
-$ sudo netplan apply
-```
-
-Run following ip command to view the ip address on interface,
-
-```
-$ ip addr show ens33
-```
-
-To view the default route, run
-
-```
-$ ip route show
-```
-
-Output of above commands,
-
-![ip-addr-route-command-output-ubuntu-server][4]
-
-Perfect, above commands’ output confirms that static ip and route has been configured successfully.
-
-That’s all from this post. Kindly do post your queries and feedback in below comments section.
-
---------------------------------------------------------------------------------
-
-via: https://www.linuxtechi.com/static-ip-address-on-ubuntu-server/
-
-作者:[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/configure-ip-with-nmcli-command-linux/
-[2]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Default-Content-netplan-ubuntu-server.png
-[3]: https://www.linuxtechi.com/wp-content/uploads/2022/10/Updated-Netplan-Config-File-Content-Ubuntu-Server.png
-[4]: https://www.linuxtechi.com/wp-content/uploads/2022/10/ip-addr-route-command-output-ubuntu-server.png
diff --git a/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md
deleted file mode 100644
index 3396550fa8..0000000000
--- a/sources/tech/20221012 Kubuntu 22.10 Kinetic Kudu- Top New Features.md
+++ /dev/null
@@ -1,88 +0,0 @@
-[#]: subject: "Kubuntu 22.10 Kinetic Kudu: Top New Features"
-[#]: via: "https://www.debugpoint.com/kubuntu-22-10-features/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Kubuntu 22.10 Kinetic Kudu: Top New Features
-======
-A brief summary of Kubuntu 22.10 “Kinetic Kudu” and additional information about the release.
-
-![Kubuntu 22.10 Kinetic Kudu Desktop][1]
-
-### Kubuntu 22.10: Top New Features
-
-Among all the [great KDE Plasma-based distributions][2], Kubuntu is the best. Because it brings stability to both Plasma and at its core, that is Ubuntu.
-
-Kubuntu 22.10 is a short-term release based on Ubuntu 22.10 – supported for nine months from the release. Since short-term releases are to adopt the latest technologies, removing the obsolete ones, its features list is minimal.
-
-This release of Kubuntu features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][3].
-
-Compared to the prior [Kubuntu release 22.04 LTS][4] (with Plasma 5.24), you get the latest KDE Plasma 5.25 (final point release) desktop with all the bug fixes and updates.
-
-Although, [KDE Plasma 5.26][5], which has just got released, could not make it to this version. But I believe it should come in as a point release, just not on the release day.
-
-Besides, Plasma 5.25 is not small in terms of features. It’s, in fact, packed with new cool advancements. If you are especially using Kubuntu’s earlier version, you should be aware of these new items.
-
-Firstly, Kubuntu 22.10 enables you to make your default panel “float”. We call it the Floating Panel. So, no more using the add-ons for this.
-
-Secondly, the accent colour of your desktop can change based on the wallpaper’s tone. Now you can see your Kubuntu desktop changes dynamically when you enable it from Settings > Global Theme > Colours.
-
-![KDE Plasma - Dynamic Accent Colour and Floating Panel Demo][6]
-
-In addition, switching between dark and light modes becomes more smooth thanks to the change. Also, in Kubuntu 22.10 with Wayland, you can now see and apply the display-specific resolutions in the settings dropdown.
-
-On the other hand, Discover is more friendly to Flatpak, with additional app details and an additional options button to notify you that there is still data for uninstalled apps.
-
-![The app page gives more clarity in Plasma 5.25][7]
-
-Furthermore, the Krunner launcher in Kubuntu now detects the search language and display results accordingly. Also, the network manager applet now shows the Wi-Fi frequency alongside the access point name (this is help full for cases where you have the same access point name for 4G and 5G bands).
-
-All of these changes are powered by Qt 5.15.6 and Framework 5.98. If you want to learn more about Plasma 5.25, refer to the dedicated feature guide [here][8].
-
-### Other features of Kubuntu 22.10
-
-The core applications and packages bump up to their respective versions based on Ubuntu 22.10, and here’s a summary.
-
-* Linux Kernel 5.19
-* KDE Plasma 5.25.5 (hopefully will get 5.26 soon)
-* KDE Framework 5.98
-* Qt 5.15.6
-* Firefox 105.0.1
-* Thunderbird 102.3.2
-* LibreOffice 7.4.2.3
-* VLC Media Player 3.0.17
-* Pipewire replacing PulseAudio
-
-Finally, you can download the Kubuntu 22.10 BETA from the below links.
-
-[https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/][9]
-
-While the developers are preparing for the final release (due on Oct 20, 2022), you can try it on a [virtual machine][10], Or a physical system.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/kubuntu-22-10-features/
-
-作者:[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/2022/10/Kubuntu-22.10-Kinetic-Kudu-Desktop.jpg
-[2]: https://www.debugpoint.com/top-linux-distributions-kde-plasma/
-[3]: https://www.debugpoint.com/linux-kernel-5-19/
-[4]: https://www.debugpoint.com/kubuntu-22-04-lts/
-[5]: https://www.debugpoint.com/kde-plasma-5-26/
-[6]: https://youtu.be/npfHwMLXXHs
-[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/App-page-gives-more-clarity-in-Plasma-5.25.jpg
-[8]: https://www.debugpoint.com/kde-plasma-5-25/
-[9]: https://cdimage.ubuntu.com/kubuntu/releases/kinetic/beta/
-[10]: https://www.debugpoint.com/tag/virtual-machine
diff --git a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md b/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md
deleted file mode 100644
index e1c795958a..0000000000
--- a/sources/tech/20221013 Enjoy the Classic Snake Game in Your Linux Terminal.md
+++ /dev/null
@@ -1,100 +0,0 @@
-[#]: subject: "Enjoy the Classic Snake Game in Your Linux Terminal"
-[#]: via: "https://www.debugpoint.com/snake-game-linux-terminal/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Enjoy the Classic Snake Game in Your Linux Terminal
-======
-This is how you can install and play the classic Snake Game in Linux Terminal.
-
-Remember the classic and simple snake game of old mobile phones? I remember playing it for hours. Hey, no other options at the time, right? Smartphones were still not in the market. And all you have is this –
-
-![Nokia 3310 with legacy snake game][1]
-
-But over time, the Snake Game was replaced by more advanced graphical games with various options. But nothing beats that classic snake game.
-
-And what if I told you, you could play this game in the Linux Terminal itself? Whether you are running Ubuntu Linux, Fedora Linux or Arch Linux doesn’t matter. This game is available for most of the [distros][2].
-
-![nsnake Game - Main Menu][3]
-
-### Install nSnake – Snake Game for Linux Terminal
-
-You can install [this game][4] via the terminal using the below methods.
-
-For Ubuntu, Linux Mint or other related distributions:
-
-```
-sudo apt install nsnake
-```
-
-For Fedora Linux and others:
-
-```
-sudo dnf install nsnake
-```
-
-For Arch Linux, this snake game is available in the [Arch User repository][5]. You can install it using the following steps.
-
-* [Set up Yay AUR helper][6]
-* Then open a terminal and run the below command
-
-```
-yay -S nsnake
-```
-
-The above command installs the stock repository version of the game, which might not be the latest. However, if you want the latest version, you may need to compile the source via GitHub. I have added the compilation instructions at the end of this page for your reference.
-
-### Playing the game
-
-Playing the game is very simple. Type nsnake in the terminal, which will launch the game.
-
-To quit immediately, press q.
-
-Following are the default key bindings.
-
-* Arrow keys – to move the snake
-* q – Quit the game
-* p – Pause the game
-
-You can also configure the game in various ways, which are available via the main menu.
-
-![nsnake Linux Terminal Snake Game Settings][7]
-
-So, enjoy!
-
-##### Compilation
-
-To compile the latest version, use the following commands in all Linux distributions.
-
-Oh, make sure you have `git` and `ncurses-devel` installed, which are the required packages for compilation.
-
-```
-git clone https://github.com/alexdantas/nSnake.gitcd nsnakemakemake install
-```
-
-So, do you like Snake Game? Do you prefer it over other terminal-based games? Share your views with other readers in the comment box below.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/snake-game-linux-terminal/
-
-作者:[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/12/Nokia-3310-with-legacy-snake-game.jpg
-[2]: https://www.debugpoint.com/category/distributions
-[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Game-Main-Menu.jpg
-[4]: https://github.com/alexdantas/nsnake
-[5]: https://aur.archlinux.org/packages/nsnake/
-[6]: https://www.debugpoint.com/2021/01/install-yay-arch/
-[7]: https://www.debugpoint.com/wp-content/uploads/2021/12/nsnake-Linux-Terminal-Snake-Game-Settings.jpg
diff --git a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md b/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md
deleted file mode 100644
index 33bc9e4a3b..0000000000
--- a/sources/tech/20221013 Learn Bash base64 Encode and Decode With Examples.md
+++ /dev/null
@@ -1,158 +0,0 @@
-[#]: subject: "Learn Bash base64 Encode and Decode With Examples"
-[#]: via: "https://www.debugpoint.com/bash-base64-encode-decode/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Learn Bash base64 Encode and Decode With Examples
-======
-Want to learn about the base64 encode and decode method? Here in this tutorial, we explain the base64 encode and decode steps using bash shell scripting with various examples.
-
-![][1]
-
-The base64 encoding method transmits data over any communication medium by converting binary data to text. This method is primarily used for the email encryption process.
-
-The Base64 method, in general, is a binary-to-text encoding scheme representing 8-byte binary data in ASCII string format. This has several advantages while transmitting or channelling data among various mediums – especially those that reliably support text content. Hence, it is widely used on World Wide Web. Probably the most used case of this encoding scheme is using it for email attachments.
-
-As per the Base64 representation table, the binary data can be converted to 64 different ASCII characters – which are easy to transmit and printable. This encoding method uses letters A to Z, a to Z, 0 to 9 and + and /.
-
-A total of 64 ASCII characters to represent binary from `000000` to `111111`. Each non-final Base64 digit represents exactly 6 bits of data.
-
-![Base64 Index Table][2]
-
-### Bash base64 encode and decode
-
-#### Syntax
-
-Before you learn about the examples, here is the basic syntax.
-
-```
-base64 [OPTIONs] [INFILE] [OUTFILE]
-```
-
-Option: You can provide any of the options or combine them as explained below.INFILE: Input can be picked up from standard input (like the command line) or files.OUTFILE: You can redirect the output to the standard output, like the terminal or to a file.
-
-| Arguments | Descriptions |
-| :- | :- |
-| -e or –encode | This option is used to encode any data from standard input or any file. It is the default option. |
-| -d or –decode | This option is used to decode any encoded data from standard input or any file. |
-| -n or –noerrcheck | By default, base64 checks error while decoding any data. You can use –n or –noerrcheck option to ignore checking at the time of decoding. |
-| -i, –ignore-garbage | This option is used to ignore non-alphabet characters while decoding. |
-| -u or –help | This option is used to get information about the usage of this command. |
-
-#### Example 1 – A basic encode
-
-In Linux, the base64 package is installed by default. Hence, you can use it from the command line easily. To simply encode a string or text, you can pass it through the command line via piping and get the encoded text. In this example, the string debugpoint.com is encoded to base64.
-
-```
-echo "debugpoint.com" | base64
-```
-
-![bash base64 encode and decode - example 1][3]
-
-The result is the base64 encoded string.
-
-#### Explanation
-
-The encoding method uses several steps to convert the input. The input characters are converted to 8-bit binary values. The entire set of the binary string is split into 6-bit binary values, which are converted to decimals.
-
-Each decimal value is translated to the base64 character via the base64 index table.
-
-In the above example, the first character, “d”, is converted to binary `01100100`. The first 6 bits are `011001`, which is 25 in decimal. The 25 refers to the Z in the base64 index table. And this goes on for the entire stream of text. See the example below.
-
-![Base64 Encode and Decode – inner working][4]
-
-#### Example 2 – A basic decode
-
-To decode the string, simply pass the encoded value to the base64 with the option `--decode`. And it will give you the exact input string.
-
-![bash base64 encode and decode - example 2 (decode the same example)][5]
-
-#### Example 3 – Encode a Text file
-
-The same command can be used to encode a text file and redirect the output to another text file. Here’s how.
-
-```
-base64 example3.txt > example3-encoded.txt
-```
-
-![Encode a text file][6]
-
-#### Example 4 – Decode a Text File
-
-And to decode a text file that was encoded using base64, simply use the `--decode` or `-d` switch and pass on the text file name.
-
-```
-base64 -d example3-encoded.txt
-```
-
-#### Example 5 – Encode a custom input from the user
-
-Using bash shell programming, you can take input from the user via the terminal and encode it. But for that, you need to write a simple shell script and execute it after giving executable permission.
-
-Here’s a simple example which takes input from the user and displays the encoded string.
-
-```
-#!/bin/bash
-#Sample program to take input, encode to base64 and display on terminal
-#Example by www.debugpoint.com
-echo "Enter text for encoding to base64:"
-read input_text
-output_text=`echo -n $input_text | base64`
-echo "The Base64 Encoded text is: $output_text"
-```
-
-![Custom input - base64 encode and decode using script][7]
-
-#### Example 6 – A Simple Authentication using base64
-
-You can implement a simple authentication system using the above encode and decode method. You can ask the user to enter a password or a secret code. Then store the secret code in a file or compare it on the fly.
-
-If the stored encoded string matches with the user input encoded text, then the user is authenticated. However, it is a straightforward way of checking an authentication, but sometimes useful for simple business cases.
-
-```
-#!/bin/bash
-#Sample program to take input, encode to base64 and display on terminal
-#Example by www.debugpoint.com
-echo "Type your password"
-read pwd1
-decoded_text=`echo 'U2lsZW5jZSBpcyBnb2xkZW4h' | base64 --decode`
-if [[ $pwd1 == $decoded_text ]]
-then
- echo "You are a valid user."
-else
- echo "You are NOT a valid user."
-fi
-```
-
-![A Simple Authentication using bash base64][8]
-
-### Conclusion
-
-I hope you get to learn the basics of [Base64][9] encode and decode with these examples. Also, learn a bit about its inner workings. Let me know in the comment box below if this helps you or need additional tutorials on this topic.
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/bash-base64-encode-decode/
-
-作者:[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/11/base64example-1024x576.jpg
-[2]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Index-Table.png
-[3]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-1.jpg
-[4]: https://www.debugpoint.com/wp-content/uploads/2021/11/Base64-Encode-and-Decode-inner-working.png
-[5]: https://www.debugpoint.com/wp-content/uploads/2021/11/bash-base64-encode-and-decode-example-2-decode-the-same-example.jpg
-[6]: https://www.debugpoint.com/wp-content/uploads/2021/11/Encode-a-text-file.png
-[7]: https://www.debugpoint.com/wp-content/uploads/2021/11/Custom-input-base64-encode-and-decode-using-script.png
-[8]: https://www.debugpoint.com/wp-content/uploads/2021/11/A-Simple-Authentication-using-bash-base64.png
-[9]: https://linux.die.net/man/1/base64
diff --git a/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md b/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md
deleted file mode 100644
index 0bee836b7f..0000000000
--- a/sources/tech/20221013 Ubuntu Budgie 22.10 Kinetic Kudu- Top New Features.md
+++ /dev/null
@@ -1,93 +0,0 @@
-[#]: subject: "Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features"
-[#]: via: "https://www.debugpoint.com/ubuntu-budgie-22-10-features/"
-[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Ubuntu Budgie 22.10 Kinetic Kudu: Top New Features
-======
-Here’s a brief overview of the Ubuntu Budgie 22.10 (upcoming) and its features.
-
-![Ubuntu Budgie 22.10 KInetic Kudu Desktop][1]
-
-### Ubuntu Budgie 22.10: Top New Features
-
-The Budgie desktop has a different fan base because of its fusion of simplicity, feature and performance. Ubuntu Budgie 22.10 is an official Budgie flavour of Ubuntu, where you get the latest Ubuntu base with a stable Budgie desktop.
-
-Ubuntu Budgie 22.10 is a short-term release, supported for nine months until July 2023.
-
-This release of Ubuntu Budgie features Linux Kernel 5.19, which brings run-time Average Power Limiting (RAPL) support for Intel’s Raptor and Alder Lake processor, multiple families of ARM updates in mainline kernel and usual processor/GPU and file-system updates. Learn more about Kernel 5.19 features in [this article][2].
-
-At the heart of this version, Ubuntu Budgie is powered by Budgie Desktop version 10.6.4, which brings updated applications and additional core tweaks. If you are using the prior Ubuntu budgie version, i.e. 22.04 or 21.10, you will notice some changes. And you should be aware of those.
-
-First of all, the Budgie Control Center gets modern protocols for screensharing (both RDP and VNC), enhanced fractional scaling and colour profile support for your monitor. In addition, the Control centre now shows the monitor refresh rate and additional support added for Wacom tablets.
-
-Secondly, Budgie desktop settings get a global option to control applets spacing and additional refinements.
-
-After removing the calendar launcher, the clock at the top bar now only gives the launcher for date/time settings. You can access the Calendar from the applets at the extreme right of the top bar.
-
-Ubuntu Budgie 22.10 fundamentally changed its application stack, which ships by default. Earlier (22.04 and prior), Budgie featured the GNOME applications as default for several desktop functions. Since GNOME is already moved to libadwaita/GTK4 with its own styling and theming, those apps wouldn’t look consistent in Budgie’s styling.
-
-That is correct. Because these rounded corners with budgie/mate apps really look off.
-
-![Budgie desktop with GTK4-libadwaita and MATE apps][3]
-
-So, from this release onwards, the default app sets are slowly moving away from GNOME Apps to native or MATE apps/alternatives.
-
-For Example, GNOME Calculator and System Monitor are now replaced by Mate Calculator and Mate system monitor. Atril document viewer replaces Evince reader. In addition, font-manager replaces GNOME Font Viewer, and a list of other GNOME apps are in “wait and watch” mode. They may get replaced in upcoming Budgie desktop point releases.
-
-However, the text editor is still Gedit in this version, which is already a [great choice][4]. And a new native screenshot application debuts with a tweak tool for Raspberry Pi devices.
-
-If you want to learn more about this transition, read the discussion [here][5].
-
-So, that’s about the core changes in this release and here’s a quick summary of Ubuntu Budgie alongside other applications.
-
-### Summary of the core items of Ubuntu Budgie 22.10
-
-#### Core and major items
-
-* [Ubuntu 22.10][6]
-* Linux Kernel 5.19
-* Budgie desktop version 10.6.4
-* Firefox 105.0.1 (Snap version)
-* Thunderbird 102.3.2
-* LibreOffice 7.4.2.3
-
-#### Other changes
-
-* Pipewire replacing PulseAudio. The PulseAudio package is removed from ISO.
-* WebP support by default
-* New Tweak Tool for ARM devices (Raspberry Pi)
-* Tilix Terminal 1.9.5
-* Transmission torrent client 3.0.0
-* GNOME Software 43.0
-
-Finally, you can download Ubuntu Budgie 22.10 Beta from the below link. Also you can try out the Raspberry Pi beta image as well.
-
-* [Link to the beta build][7]
-* [Link to Raspberry Pi build][8]
-
---------------------------------------------------------------------------------
-
-via: https://www.debugpoint.com/ubuntu-budgie-22-10-features/
-
-作者:[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/2022/10/Ubuntu-Budgie-22.10-KInetic-Kudu-Desktop-1024x578.jpg
-[2]: https://www.debugpoint.com/linux-kernel-5-19/
-[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Budgie-desktop-with-GTK4-libadwaita-and-MATE-apps.jpg
-[4]: https://www.debugpoint.com/gedit-features/
-[5]: https://discourse.ubuntubudgie.org/t/default-applications-review-for-22-10-23-04-and-beyond/5883
-[6]: https://www.debugpoint.com/ubuntu-22-10/
-[7]: https://cdimage.ubuntu.com/ubuntu-budgie/releases/kinetic/beta/
-[8]: https://sourceforge.net/projects/budgie-remix/files/budgie-raspi-22.10/
diff --git a/sources/tech/20221013 What you need to know about compiling code.md b/sources/tech/20221013 What you need to know about compiling code.md
deleted file mode 100644
index 0f811393a8..0000000000
--- a/sources/tech/20221013 What you need to know about compiling code.md
+++ /dev/null
@@ -1,102 +0,0 @@
-[#]: subject: "What you need to know about compiling code"
-[#]: via: "https://opensource.com/article/22/10/compiling-code"
-[#]: author: "Alan Smithee https://opensource.com/users/alansmithee"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-What you need to know about compiling code
-======
-Use this handy mousetrap analogy to understand compiling code. Then download our new eBook, An open source developer's guide to building applications.
-
-Source code must be compiled in order to run, and in open source software everyone has access to source code. Whether you've written code yourself and you want to compile and run it, or whether you've downloaded somebody's project to try it out, it's useful to know how to process source code through a [compiler][2], and also what exactly a compiler does with all that code.
-
-### Build a better mousetrap
-
-We don't usually think of a mousetrap as a computer, but believe it or not, it does share some similarities with the CPU running the device you're reading this article on. The classic (non-cat) mousetrap has two states: it's either set or released. You might consider that *on* (the kill bar is set and stores potential energy) and *off* (the kill bar has been triggered.) In a sense, a mousetrap is a computer that calculates the presence of a mouse. You might imagine this code, in an imaginary language, describing the process:
-
-```
-if mousetrap == 0 then
- There's a mouse!
-else
- There's no mouse yet.
-end
-```
-
-In other words, you can derive mouse data based on the state of a mousetrap. The mousetrap isn't foolproof, of course. There could be a mouse next to the mousetrap, and the mousetrap would still be registered as *on* because the mouse has not yet triggered the trap. So the program could use a few enhancements, but that's pretty typical.
-
-### Switches
-
-A mousetrap is ultimately a switch. You probably use a switch to turn on the lights in your house. A lot of information is stored in these mechanisms. For instance, people often assume that you're at home when the lights are on.
-
-You could program actions based on the activity of lights on in your neighborhood. If all lights are out, then turn down your loud music because people have probably gone to bed.
-
-A CPU uses the same logic, multiplied by several orders of measure, and shrunken to a microscopic level. When a CPU receives an electrical signal at a specific register, then some other register can be tripped, and then another, and so on. If those registers are made to be meaningful, then there's communication happening. Maybe a chip somewhere on the same motherboard becomes active, or an LED lights up, or a pixel on a screen changes color.
-
-**[[ Related read 6 Python interpreters to try in 2022 ]][3]**
-
-What comes around goes around. If you really want to detect a rodent in more places than the one spot you happen to have a mousetrap set, you could program an application to do just that. With a webcam and some rudimentary image recognition software, you could establish a baseline of what an empty kitchen looks like and then scan for changes. When a mouse enters the kitchen, there's a shift in the pixel values where there was previously no mouse. Log the data, or better yet trigger a drone that focuses in on the mouse, captures it, and moves it outside. You've built a better mousetrap through the magic of on and off signals.
-
-### Compilers
-
-A code compiler translates human-readable code into a machine language that speaks directly to the CPU. It's a complex process because CPUs are legitimately complex (even more complex than a mousetrap), but also because the process is more flexible than it strictly "needs" to be. Not all compilers are flexible. There are some compilers that have exactly one target, and they only accept code files in a specific layout, and so the process is relatively straight-forward.
-
-Luckily, modern general-purpose compilers aren't simple. They allow you to write code in a variety of languages, and they let you link libraries in different ways, and they can target several different architectures. The [GNU C Compiler (GCC)][4] has over 50 lines of options in its `--help` output, and the LLVM `clang` compiler has over 1000 lines in its `--help` output. The GCC manual contains over 100,000 words.
-
-You have lots of options when you compile code.
-
-Of course, most people don't need to know all the possible options. There are sections in the GCC man page I've never read, because they're for Objective-C or Fortran or chip architectures I've never even heard of. But I value the ability to compile code for several different architectures, for 64-bit and 32-bit, and to run open source software on computers the rest of the industry has left behind.
-
-### The compilation lifecycle
-
-Just as importantly, there's real power to understanding the different stages of compiling code. Here's the lifecycle of a simple C program:
-
-1. C source with macros (.c) is preprocessed with `cpp` to render an `.i` file.
-2. C source code with expanded macros (.i) is translated with `gcc` to render an `.s` file.
-3. A text file in Assembly language (.s) is `as`sembled with as into an `.o` file.
-4. Binary object code with instructions for the CPU, and with offsets not tied to memory areas relative to other object files and libraries (*.o) is linked with `ld` to produce an executable.
-5. The final binary file either has all required objects within it, or it's set to load linked dynamic libraries (*.so files).
-
-And here's a simple demonstration you can try (with some adjustment for library paths):
-
-```
-$ cat << EOF >> hello.c
- #include
- int main(void)
- { printf("hello world\n");
- return 0; }
- EOF
-$ cpp hello.c > hello.i
-$ gcc -S hello.i
-$ as -o hello.o hello.s
-$ ld -static -o hello \
--L/usr/lib64/gcc/x86_64-slackware-linux/5.5.0/ \
-/usr/lib64/crt1.o /usr/lib64/crti.o hello.o \
-/usr/lib64/crtn.o --start-group -lc -lgcc \
--lgcc_eh --end-group
-$ ./hello
-hello world
-```
-
-### Attainable knowledge
-
-Computers have become amazingly powerful, and pleasantly user-friendly. Don't let that fool you into believing either of the two possible extremes: computers aren't as simple as mousetraps and light switches, but they also aren't beyond comprehension. You can learn about compiling code, about how to link, and compile for a different architecture. Once you know that, you can debug your code better. You can understand the code you download. You may even fix a bug or two. Or, in theory, you could build a better mousetrap. Or a CPU out of mousetraps. It's up to you.
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/10/compiling-code
-
-作者:[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
-[2]: https://opensource.com/article/19/5/primer-assemblers-compilers-interpreters
-[3]: https://opensource.com/article/22/9/python-interpreters-2022
-[4]: https://opensource.com/article/22/5/gnu-c-compiler
diff --git a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md b/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md
deleted file mode 100644
index 0983918cc6..0000000000
--- a/sources/tech/20221014 13 Independent Linux Distros That are Built From Scratch.md
+++ /dev/null
@@ -1,315 +0,0 @@
-[#]: subject: "13 Independent Linux Distros That are Built From Scratch"
-[#]: via: "https://itsfoss.com/independent-linux-distros/"
-[#]: author: "sreenath https://itsfoss.com/author/sreenath/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-13 Independent Linux Distros That are Built From Scratch
-======
-There are hundreds of Linux distributions available.
-
-But most of them fall into these three categories: Debian, Red Hat (Fedora) and Arch Linux.
-
-Using a distribution based on Debian/Ubuntu, Red Hat/SUSE or Arch Linux has its advantages. They are popular and hence their package manager offers a huge range of software.
-
-However, some users prefer to use Linux distributions built from scratch and be independent of DEB/RPM packaging system.
-
-In this article, we will list some of the best Linux distributions developed independently.
-
-**Note:** Obviously, this list excludes popular options like Debian, Ubuntu, and Fedora, which are used as bases for creating new distros. Moreover, the distributions are in no particular order of ranking.
-
-### 1. NixOS
-
-![Image Credits: Distrowatch][1]
-
-Initially released in 2003, Nix OS is built on top of the Nix Package Manager. It provides two releases every year, usually scheduled in May and November.
-
-NixOS may not be a distribution directly geared to new and average users. However, its unique approach to [package management][2] attracts various kinds of users.
-
-Additionally, 32-bit support systems are also supported.
-
-##### Other Features:
-
-* Builds packages isolated
-* Reliable upgrade with rollback feature
-* Reproducible system configuration
-
-[NixOS][3]
-
-**Related**: [Advanced Linux Distributions for Expert Linux Users][4]
-
-### 2. Gentoo Linux
-
-![Image Credits: Distrowatch][5]
-
-Gentoo Linux is an independently developed distribution aimed mainly at system experts. It is built for users who want the freedom to customize, fine-tune and optimize the operating system to suit their requirements.
-
-Gentoo uses [Portage package management][6] that lets you create and install packages, often allowing you to optimize them for your hardware. **Chromium OS**, the open-source version of Chrome OS, uses Gentoo at its core.
-
-Not to forget, Gentoo is one of those [distributions that still support 32-bit architectures][7].
-
-##### Other Features:
-
-* Incremental Updates
-* Source-based approach to software management
-* Concept of overlay repositories like GURU (Gentoo’s user repository), where users can add packages not yet provided by Gentoo
-
-[Gentoo Linux][8]
-
-### 3. Void Linux
-
-![Image Credits: Distrowatch][9]
-
-Void Linux is a [rolling release distribution][10] with its own X Binary Package System (XBPS) for installing and removing software. It was created by **Juan Romero Pardines**, a former NetBSD developer.
-
-It avoids systemd and instead uses runit as its init system. Furthermore, it gives you the option to use several [desktop environments][11].
-
-##### Other Features:
-
-* Minimal system requirements
-* Offers an official repository for non-free packages
-* Support for Raspberry Pi
-* Integration of OpenBSD’s LibreSSL software
-* Support for musl C library
-* 32-bit support
-
-[Void Linux][12]
-
-**Related:** [Not a Systemd Fan? Here are 13+ Systemd-Free Linux Distributions][13]
-
-### 4. Solus Linux
-
-![solus budgie 2022][14]
-
-Formerly EvolveOS, Solus Linux offers some exciting features while built from scratch. Solus features its own homegrown budgie desktop environment as its flagship version.
-
-Compared to other options, Solus Linux is one of the few independent distributions that new Linux users can use. It manages to be one of the [best Linux distributions][15] available.
-
-It uses eopkg package management with a semi-rolling release model. As per the developers, Solus is exclusively developed for personal computing purposes.
-
-##### Other Features:
-
-* Available in Budgie, Gnome, MATE, and KDE Plasma editions
-* Variety of software out of the box, which reduces setup efforts
-
-[Solus Linux][16]
-
-### 5. Mageia
-
-![Image Credits: Distrowatch][17]
-
-Mageia started as a fork of Mandriva Linux back in 2010. It aims to be a stable and secure operating system for desktop and server usage.
-
-Mageia is a community-driven project supported by a non-profit organization and elected contributors. You will notice a major release every year.
-
-##### Other Features
-
-* Supports 32-bit system
-* KDE Plasma, Gnome, and XFCE editions are available from the website
-* Minimal system requirements
-
-[Mageia][18]
-
-**Related:** **[Linux Distros That Still Support 32-Bit Systems][19]**
-
-### 6. Clear Linux
-
-![Image Credits: Distrowatch][20]
-
-Clear Linux is a distribution by Intel, primarily designed with performance and cloud use cases in mind.
-
-One interesting thing about Clear Linux is the operating system upgrades as a whole rather than individual packages. So, even if you mess up with the system accidentally, it should boot correctly, performing a factory reset to let you set it up again.
-
-It is not geared toward personal use. But it can be a unique choice to try.
-
-##### Other Features:
-
-* Highly tuned for Intel platforms
-* A strict separation between User and System files
-* Constant vulnerability scanning
-
-[Clear Linux OS][21]
-
-### 7. PCLinuxOS
-
-![Image Credits: Distrowatch][22]
-
-PCLinuxOS is an x86_64 Linux distribution that uses APT-RPM packages. You can get KDE Plasma, Mate, and XFCE desktops, while it also offers several community editions featuring more desktops.
-
-Locally installed versions of PCLinuxOS utilize the APT package management system thanks to [Synaptic package manager][23]. You can also find rpm packages from its repositories.
-
-##### Other Features:
-
-* mylivecd script allows the user to take a ‘snapshot’ of their current hard drive installation (all settings, applications, documents, etc.) and compress it into an ISO CD/DVD/USB image.
-* Additional support for over 85 languages.
-
-[PCLinuxOS][24]
-
-### 8. 4MLinux
-
-![4m linux 2022][25]
-
-[4MLinux][26] is a general-purpose Linux distribution with a strong focus on the following four **“M”** of computing:
-
-* Maintenance (system rescue Live CD)
-* Multimedia (full support for a huge number of image, audio and video formats)
-* Miniserver (DNS, FTP, HTTP, MySQL, NFS, Proxy, SMTP, SSH, and Telnet)
-* Mystery (meaning a collection of classic Linux games)
-
-It has a minimal system requirement and is available as a desktop and server version.
-
-##### Other Features
-
-* Support for large number of image, audio/video formats
-* Small and general-purpose Linux distribution
-
-[4MLinux][27]
-
-### 9. Tiny Core Linux
-
-![Image Credits: Distrowatch][28]
-
-Tiny Core Linux focuses on providing a base system using BusyBox and FLTK. It is not a complete desktop. So, you do not expect it to run on every system.
-
-It represents only the core needed to boot into a very minimal X desktop, typically with wired internet access.
-
-The user gets great control over everything, but it may not be an easy out-of-the-box experience for new Linux users.
-
-##### Other Features
-
-* Designed to run from a RAM copy created at boot time
-* By default, operates like a cloud/internet client
-* Users can run appbrowser to browse repositories and download applications
-
-[Tiny Core Linux][29]
-
-### 10. Linux From Scratch
-
-![Image Credit: Reddit][30]
-
-[Reddit][31]
-
-Linux From Scratch is a way to install a working Linux system by building all its components manually. Once completed, it provides a compact, flexible and secure system and a greater understanding of the internal workings of the Linux-based operating systems.
-
-If you need to dive deep into how a Linux system works and explore its nuts and bolts, Linux From Scratch is the project you need to try.
-
-##### Other Features
-
-* Customised Linux system, entirely from scratch
-* Extremely flexible
-* Offers added security because of self compile from source
-
-[Linux From Scratch][32]
-
-### 11. Slackware
-
-![Image Credits: Distrowatch][33]
-
-Slackware is the oldest distribution that is still being maintained. Originally created in 1993, with Softlanding Linux System as base, Slackware later became the base for many Linux distributions.
-
-Slackware aims at producing the most UNIX-like Linux distribution while keeping simplicity and stability.
-
-##### Other Features
-
-* Available for 32-bit and 64-bit systems
-* Extensive online documentation
-* Can run on Pentium system to latest machines
-
-[Slackware][34]
-
-### 12. Alpine Linux
-
-![alpine linux xfce 2022][35]
-
-Alpine Linux is a community-developed operating system designed for routers, firewalls, VPNs, VoIP boxes, and servers. It began as a fork of the LEAF Project.
-
-Alpine Linux uses apk-tools package management, initially written as a shell script and later written in C programming language. This is a minimal Linux distribution, which still supports 32-bit systems and can be installed as a run-from-RAM operating system.
-
-##### Other Features:
-
-* Provides a minimal container image of just 5 MB in size
-* 2-year support for the main repository and support until the next stable release for the community repository
-* Made around musl libc and Busybox with resource-efficient containers
-
-[Alpine Linux][36]
-
-### 13. KaOS
-
-![Image Credits: Distrowatch][37]
-
-KaOS is a Linux distribution built from scratch and inspired by Arch Linux. It uses [pacman for package management][38]. It is built with the philosophy “*One Desktop Environment (KDE Plasma), One Toolkit (Qt), One Architecture (x86_64)*“.
-
-It has limited repositories, but still, it offers plenty of tools for a regular user.
-
-##### Other Features:
-
-* Most up-to-date Plasma desktop
-* Tightly integrated rolling and transparent distribution for the modern desktop
-
-[KaOS][39]
-
-#### Wrapping Up
-
-If you need a unique experience, these independent Linux distributions should serve the purpose.
-
-However, if you want to replace it with a mainstream distribution like Ubuntu for your desktop…You might want to think twice, considering most of the options (if not all) above are not ideal options for day-to-day desktop usage.
-
-But then again, if you have a fair share of experience with Linux distributions, you can undoubtedly take up the task for an adventure!
-
-*If you were to try one of these indie distros, which one would it be? Share with us in the comments.*
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/independent-linux-distros/
-
-作者:[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/wp-content/uploads/2022/10/nixos-2022.png
-[2]: https://itsfoss.com/package-manager/
-[3]: https://nixos.org/
-[4]: https://itsfoss.com/advanced-linux-distros/
-[5]: https://itsfoss.com/wp-content/uploads/2022/08/gentoo-linux-plasma.jpg
-[6]: https://wiki.gentoo.org/wiki/Portage
-[7]: https://itsfoss.com/32-bit-linux-distributions/
-[8]: https://www.gentoo.org/
-[9]: https://itsfoss.com/wp-content/uploads/2022/08/void-linux.jpg
-[10]: https://itsfoss.com/rolling-release/
-[11]: https://itsfoss.com/best-linux-desktop-environments/
-[12]: https://voidlinux.org/
-[13]: https://itsfoss.com/systemd-free-distros/
-[14]: https://itsfoss.com/wp-content/uploads/2022/10/solus-budgie-2022.jpg
-[15]: https://itsfoss.com/best-linux-distributions/
-[16]: https://getsol.us/home/
-[17]: https://itsfoss.com/wp-content/uploads/2022/08/mageia-1.jpg
-[18]: https://www.mageia.org/en/
-[19]: https://itsfoss.com/32-bit-linux-distributions/
-[20]: https://itsfoss.com/wp-content/uploads/2022/08/clear-linux-desktop.png
-[21]: https://clearlinux.org/
-[22]: https://itsfoss.com/wp-content/uploads/2022/08/pclinuxos.png
-[23]: https://itsfoss.com/synaptic-package-manager/
-[24]: https://www.pclinuxos.com/
-[25]: https://itsfoss.com/wp-content/uploads/2022/10/4m-linux-2022.jpg
-[26]: https://itsfoss.com/4mlinux-review/
-[27]: http://4mlinux.com/
-[28]: https://itsfoss.com/wp-content/uploads/2022/03/tinycore.jpg
-[29]: http://www.tinycorelinux.net/
-[30]: https://itsfoss.com/wp-content/uploads/2022/08/enable-aur-e1659974408774.png
-[31]: https://www.reddit.com/r/linuxmasterrace/comments/udi7ts/decided_to_try_lfs_in_a_vm_started_about_a_week/
-[32]: https://www.linuxfromscratch.org/
-[33]: https://itsfoss.com/wp-content/uploads/2022/10/slackware-scaled.jpg
-[34]: http://www.slackware.com/
-[35]: https://itsfoss.com/wp-content/uploads/2022/10/alpine-linux-xfce-2022.png
-[36]: https://www.alpinelinux.org/
-[37]: https://itsfoss.com/wp-content/uploads/2022/08/kaos-desktop.png
-[38]: https://itsfoss.com/pacman-command/
-[39]: https://kaosx.us/
diff --git a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md b/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md
deleted file mode 100644
index 8d7b5904be..0000000000
--- a/sources/tech/20221014 Can Kubernetes help solve automation challenges-.md
+++ /dev/null
@@ -1,69 +0,0 @@
-[#]: subject: "Can Kubernetes help solve automation challenges?"
-[#]: via: "https://opensource.com/article/22/10/kubernetes-solve-automation-challenges"
-[#]: author: "Rom Adams https://opensource.com/users/romdalf"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Can Kubernetes help solve automation challenges?
-======
-Automation at the organization level has been an elusive goal, but Kubernetes might be able to change all that.
-
-I started my automation journey when I adopted Gentoo Linux as my primary operating system in 2002. Twenty years later, automation is not yet a done deal. When I meet with customers and partners, they share automation wins within teams, but they also describe the challenges to achieving similar success at an organizational level.
-
-Most IT organizations have the ability to provision a virtual machine end to end, reducing what used to be a four-week lead time to just five minutes. That level of automation is itself a complex workflow, requiring networking (IP address management, DNS, proxy, networking zones, and so on), identity access management, [hypervisor][2], storage, backup, updating the operating system, applying the latest configuration files, monitoring, security and hardening, and compliance benchmarking. Wow!
-
-It's not easy to address the business need for high velocity, scaling, and on-demand automation. For instance, consider the classic webshop or an online government service to file tax returns. The workload has well-defined peaks that need to be absorbed.
-
-A common approach for handling such a load is having an oversized server farm, ready to be used by a specialized team of IT professionals, monitoring the seasonal influx of customers or citizens. Everybody wants a just-in-time deployment of an entire stack. They want infrastructure running workloads within the context of a hybrid cloud scenario, using the model of "build-consume-trash" to optimize costs while benefiting from infinite elasticity.
-
-In other words, everybody wants the utopian "cloud experience."
-
-### Can the cloud really deliver?
-
-All is not lost, thanks mainly to the way [Kubernetes][3] has been designed. The exponential adoption of Kubernetes fuels innovation, displacing standard legacy practices for managing platforms and applications. Kubernetes requires the use of Everything-as-Code (EaC) to define the desired state of all resources, from simple compute nodes to TLS certificates. Kubernetes compels the use of three major design constructs:
-
-* A standard interface to reduce integration friction between internal and external components
-* An API-first and API-only approach to standardize the CRUD (Create, Read, Update, Delete) operations of all its components
-* Use of [YAML][4] as a common language to define all desired states of these components in a simple and readable way
-
-These three key components are essentially the same requirements for choosing an automation platform, at least if you want to ease adoption by cross-functional teams. This also blurs the separation of duties between teams, helping to improve collaboration across silos, which is a good thing!
-
-As a matter of fact, customers and partners adopting Kubernetes are ramping up to a state of hyper-automation. Kubernetes organically drives teams to adopt multiple [DevOps foundations and practices][5]—like EaC, [version control with Git][6], peer reviews, [documentation as code][7]—and encourages cross-functional collaboration. These practices help mature a team's automation skills, and they help a team get a good start in GitOps and CI/CD pipelines dealing with both application lifecycle and infrastructure.
-
-### Making automation a reality
-
-You read that right! The entire stack for complex systems like a webshop or government reporting can be defined in clear, understandable, universal terms that can be executed on any on-prem or cloud provider. An autoscaler with custom metrics can be defined to trigger a just-in-time deployment of your desired stack to address the influx of customers or citizens during seasonal peaks. When metrics are back to normal, and cloud compute resources don't have a reason to exist anymore, you trash them and return to regular operations, with a set of core assets on-prem taking over the business until the next surge.
-
-### The chicken and the egg paradox
-
-Considering Kubernetes and cloud-native patterns, automation is a must. But it raises an important question: Can an organization adopt Kubernetes before addressing the automation strategy?
-
-It might seem that starting with Kubernetes could inspire better automation, but that's not a foregone conclusion. A tool is not an answer to the problem of skills, practices, and culture. However, a well-designed platform can be a catalyst for learning, change, and cross-functional collaboration within an IT organization.
-
-### Get started with Kubernetes
-
-Even if you feel you missed the automation train, don't be afraid to start with Kubernetes on an easy, uncomplicated stack. Embrace the simplicity of this fantastic orchestrator and iterate with more complex needs once you've [mastered the initial steps][8].
-
---------------------------------------------------------------------------------
-
-via: https://opensource.com/article/22/10/kubernetes-solve-automation-challenges
-
-作者:[Rom Adams][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/romdalf
-[b]: https://github.com/lkxed
-[2]: https://www.redhat.com/en/topics/virtualization/what-is-a-hypervisor?intcmp=7013a000002qLH8AAM
-[3]: https://www.redhat.com/en/topics/containers/what-is-kubernetes?intcmp=7013a000002qLH8AAM
-[4]: https://opensource.com/article/21/9/yaml-cheat-sheet
-[5]: https://opensource.com/resources/devops
-[6]: https://opensource.com/life/16/7/stumbling-git
-[7]: https://opensource.com/article/21/3/devops-documentation
-[8]: https://opensource.com/article/17/11/getting-started-kubernetes
diff --git a/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md b/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md
deleted file mode 100644
index 552185aee7..0000000000
--- a/sources/tech/20221014 Celebrating KDE-s 26th Birthday With Some Inspiring Facts From Its Glorious Past!.md
+++ /dev/null
@@ -1,193 +0,0 @@
-[#]: subject: "Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past!"
-[#]: via: "https://itsfoss.com/kde-facts-trivia/"
-[#]: author: "Avimanyu Bandyopadhyay https://www.gizmoquest.com"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Celebrating KDE’s 26th Birthday With Some Inspiring Facts From Its Glorious Past!
-======
-
-Wishing a Very Happy Birthday to **KDE**!
-
-Let us celebrate this moment by looking back on its glorious history with some inspiring facts on this legendary and much-loved Desktop Environment!
-
-![kde birthday][1]
-
-### KDE’s Origin
-
-**26 years ago**, [Matthias Ettrich][2] (a German Computer Scientist currently working at [HERE][3]) founded KDE.
-
-![matthias 2950607241][4]
-
-When Matthias was a student at the [Eberhard Karls University of Tübingen][5], he was not satisfied as a [Common Desktop Environment (CDE)][6] user.
-
-CDE is a desktop environment for Unix.
-
-However, he wanted an interface that was more comfortable, simpler, and easy to use, with a better look and feel.
-
-So, in 1996, Matthias Ettrich announced the **Kool Desktop Environment (KDE)**, a GUI (graphical user interface) for Unix systems, built with Qt and C ++.
-
-Note that the full form of KDE was an innocent pun intended to CDE at the time. You do not usually say it as “Kool Desktop Environment”, just KDE as of now. You can read the [original announcement post][7] to get a dose of nostalgia.
-
-**Trivia**: The official mascot of KDE is Konqi who has a girlfriend named Katie. Previously there used to be a wizard named [Kandalf][8] but was later replaced by Konqi because many people loved and preferred the mascot to be this charming and friendly dragon!
-
-![Konqi is KDE's mascot. Katie is his girlfriend and mascot of KDE women's project.][9]
-
-[Konqi][10]
-
-[Katie][11]
-
-And, here’s how it looked like with KDE mascot:
-
-![Screenshot of earlier version of KDE desktop][12]
-
-### 13 Interesting and Inspiring Facts on KDE
-
-We’ve looked back into some interesting yet inspiring events that took place over the last 26 years of the KDE project:
-
-#### 1. Early Development Events
-
-15 developers met in Arnsberg, Germany, in 1997, to work on the KDE project and discuss its future. This event came to be known as [KDE One][13] followed by [KDE Two][14] and [KDE Three][15] and so on in the later years. They even had [one][16] for a beta version.
-
-#### 2. The KDE Free Qt Foundation Agreement
-
-The foundation agreement for the [KDE Free Qt Foundation][17] was signed by [KDE e.V.][18] and [Trolltech][19], then owner of the Qt Foundation who [ensured the permanent availability][20] of Qt as free software.
-
-#### 3. First Stable Version
-
-![kde 1][21]
-
-The [first stable version][22] of KDE was released in **1998**, in addition to highlighting an application development framework, the [KOM/OpenParts][23], and an office suite preview. You can check out the [KDE 1.x Screenshots][24].
-
-#### 4. The KDE Women Initiative
-
-The community women’s group, [KDE Women][25], was created and announced in March 2001 with the primary goal to increase the number of women in free software communities, particularly in KDE.
-
-#### 5. 1 Million Commits
-
-The community [reached 1 million commits][26] within a span of only 19 months, from 500,000 in January 2006 and 750,000 in December 2007, with the launch of KDE 4 at the same time.
-
-#### 6. Release Candidate of Development Platform Announced
-
-A [release candidate][27] of KDE’s development platform consisting of basic libraries and tools to develop KDE applications was announced on October 2007.
-
-#### 7. First KDE & Qt event in India
-
-The [first conference][28] of the KDE and Qt community in India happened in Bengaluru in March 2011 that became an annual event henceforth.
-
-#### 8. GCompris and KDE
-
-In **December 2014**, the educational software suite [GCompris joined][29] the [project incubator of KDE community][30] (We have [previously][31] discussed GCompris, which is bundled with Escuelas Linux, a comprehensive educational distro for teachers and students).
-
-#### 9. KDE Slimbooks
-
-In **2016**, the KDE community partnered with a Spanish laptop retailer and [announced the launch of the KDE Slimbook][32], an ultrabook with KDE Plasma and KDE Applications pre-installed. Slimbook offers a pre-installed version of [KDE Neon][33] and [can be purchased from their website][34].
-
-#### 10. Transition to GitLab
-
-In **2019**, KDE [migrated][35] from Phabricator to GitLab to enhance the development process and let new contributors easy access to the workflow. However, KDE still uses bugzilla for tracking bugs.
-
-#### 11. Adopts Decentralized Matrix Protocol
-
-KDE added Matrix bridge to the IRC channels and powered up its native chat clients using the open-source decentralized Matrix protocol in **2019**.
-
-#### 12. KDE PinePhone
-
-KDE developers teamed up with [PINE64][36] in **2020** to introduce a community edition PinePhone powered by KDE.
-
-#### 13. Valve Picks KDE for Steam Deck
-
-Steam Deck is undoubtedly a super trending Linux gaming console right now. And, Valve chose KDE as its desktop environment to make it work in **2021**.
-
-### Today, KDE is Powered by Three Great Projects
-
-#### KDE Plasma
-
-Previously called Plasma Workspaces, KDE Plasma facilitates a unified workspace environment for running and managing applications on various devices like desktops, netbooks, tablets or even [smartphones][37].
-
-Currently, [KDE Plasma 5.26][38] is the most recent version and was released some days ago. The KDE Plasma 5 project is the fifth generation of the desktop environment and is the successor to KDE Plasma 4.
-
-#### KDE Applications
-
-KDE Applications are a bundled set of applications and libraries designed by the KDE community. Most of these applications are cross-platform, though primarily made for Linux.
-
-A very [nice][39] project in this category is a music player called Elisa focused on an optimised integration with Plasma.
-
-#### KDE Development Platform
-
-The KDE Development Platform is what significantly empowers the above two initiatives, and is a collection of libraries and software frameworks released by KDE to promote better collaboration among the community to develop KDE software.
-
-**Personal Note**: It was an honour covering this article on KDE’s Birthday and I would like to take this opportunity to brief some of my personal favourite KDE based apps and distros that I have extensively used in the past and continue to.
-
-Check out the entire [timeline][40] in detail here for a more comprehensive outline or you can take a look at this 19-year visual changes in this interesting video:
-
-![A Video from YouTube][41]
-
-### Best KDE-Based Distributions
-
-If you have heard all the good things about KDE, you should try out the distributions powered by KDE.
-
-We have a [list of Linux distributions based on KDE][42], if you are curious.
-
-*Hope you liked our favourite moments in KDE history on their 26th Anniversary! Please do write about any thoughts you might have about any of your memorable experiences with KDE in the comments below.*
-
-This article was originally published in 2018, and has been edited to reflect latest information.
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/kde-facts-trivia/
-
-作者:[Avimanyu Bandyopadhyay][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.gizmoquest.com
-[b]: https://github.com/lkxed
-[1]: https://itsfoss.com/wp-content/uploads/2022/10/kde-birthday.png
-[2]: https://en.wikipedia.org/wiki/Matthias_Ettrich
-[3]: https://here.com/
-[4]: https://itsfoss.com/wp-content/uploads/2022/10/matthias-2950607241.jpg
-[5]: https://www.uni-tuebingen.de/en
-[6]: https://en.wikipedia.org/wiki/Common_Desktop_Environment
-[7]: https://kde.org/announcements/announcement/
-[8]: https://en.wikipedia.org/wiki/Konqi#Kandalf
-[9]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-and-Katie.jpg
-[10]: https://en.wikipedia.org/wiki/Konqi
-[11]: https://community.kde.org/Katie
-[12]: https://itsfoss.com/wp-content/uploads/2018/10/Konqi-from-the-early-days-who-replaced-Kandalf-right.jpg
-[13]: https://community.kde.org/KDE_Project_History/KDE_One_(Developer_Meeting)
-[14]: https://community.kde.org/KDE_Project_History/KDE_Two_(Developer_Meeting)
-[15]: https://community.kde.org/KDE_Project_History/KDE_Three_(Developer_Meeting)
-[16]: https://community.kde.org/KDE_Project_History/KDE_Three_Beta_(Developer_Meeting)
-[17]: https://www.kde.org/community/whatiskde/kdefreeqtfoundation.php
-[18]: https://www.kde.org/announcements/fsfe-associate-member.php
-[19]: https://dot.kde.org/2007/02/28/trolltech-becomes-first-corporate-patron-kde
-[20]: https://dot.kde.org/2016/01/13/qt-guaranteed-stay-free-and-open-%E2%80%93-legal-update
-[21]: https://itsfoss.com/wp-content/uploads/2022/10/kde-1.jpg
-[22]: https://www.kde.org/announcements/announce-1.0.php
-[23]: https://www.kde.org/kdeslides/Usenix1998/sld016.htm
-[24]: https://czechia.kde.org/screenshots/kde1shots.php
-[25]: https://community.kde.org/KDE_Women
-[26]: https://dot.kde.org/2009/07/20/kde-reaches-1000000-commits-its-subversion-repository
-[27]: https://www.kde.org/announcements/announce-4.0-platform-rc1.php
-[28]: https://dot.kde.org/2010/12/28/confkdein-first-kde-conference-india
-[29]: https://dot.kde.org/2014/12/11/gcompris-joins-kde-incubator-and-launches-fundraiser
-[30]: https://community.kde.org/Incubator
-[31]: https://itsfoss.com/escuelas-linux/
-[32]: https://dot.kde.org/2017/01/26/kde-and-slimbook-release-laptop-kde-fans
-[33]: https://en.wikipedia.org/wiki/KDE_neon
-[34]: https://slimbook.es/en/store/slimbook-kde
-[35]: https://pointieststick.com/2020/05/23/this-week-in-kde-we-have-migrated-to-gitlab/
-[36]: https://www.pine64.org
-[37]: https://play.google.com/store/apps/details?id=org.kde.kdeconnect_tp
-[38]: https://news.itsfoss.com/kde-plasma-5-26-release/
-[39]: https://mgallienkde.wordpress.com/2018/10/09/0-3-release-of-elisa-music-player/
-[40]: https://timeline.kde.org/
-[41]: https://youtu.be/1UG4lQOMBC4
-[42]: https://itsfoss.com/best-kde-distributions/
diff --git a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md b/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md
deleted file mode 100644
index 23d4fcec3b..0000000000
--- a/sources/tech/20221014 Install Gedit on Ubuntu 22.10 and Make it Default Text Editor.md
+++ /dev/null
@@ -1,111 +0,0 @@
-[#]: subject: "Install Gedit on Ubuntu 22.10 and Make it Default Text Editor"
-[#]: via: "https://itsfoss.com/install-gedit-ubuntu/"
-[#]: author: "Abhishek Prakash https://itsfoss.com/"
-[#]: collector: "lkxed"
-[#]: translator: " "
-[#]: reviewer: " "
-[#]: publisher: " "
-[#]: url: " "
-
-Install Gedit on Ubuntu 22.10 and Make it Default Text Editor
-======
-
-[GNOME has a brand new text editor][1] to replace the good old Gedit editor.
-
-While it was already available with GNOME 42, Ubuntu 22.04 relied on Gedit.
-
-This is changing in Ubuntu 22.10. GNOME Text Editor is the default here and Gedit is not even installed.
-
-![Searching for text editor only brings GNOME Text Editor][2]
-
-While the new editor is good enough, not everyone would like it. This is especially if you use Gedit extensively with additional plugins.
-
-If you are among those people, let me show you how to install Gedit on Ubuntu. I’ll also share how you can make it the default text editor.
-
-### Install Gedit on Ubuntu
-
-This is actually a no-brainer. While Gedit is not installed by default, it is still available in Ubuntu repositories.
-
-So, all you have to do is to use the apt command to install it:
-
-```
-sudo apt install gedit
-```
-
-Gedit is also available in the software center but it is the snap package. You could install that if you want.
-
-![Gedit is also available in Ubuntu’s Snap Store][3]
-
-#### Install Gedit Plugins (optional)
-
-By default, Gedit gives you the option to access a few plugins. You can enable or disable the plugins from the menu->preference->plugins.
-
-![Accessing plugins in Gedit][4]
-
-You should see the available plugins here. The installed or in-use plugins are checked.
-
-![See the available and installed plugins in Gedit][5]
-
-However, you can take the plugin selection to the next level by installing the gedit-plugins meta package.
-
-```
-sudo apt install gedit-plugins
-```
-
-This will give you access to additional plugins like bookmarks, bracket completion, Python console and more.
-
-![Additional Gedit plugins][6]
-
-**Tip**: If you notice that Gedit looks a bit out of place for the lack of around bottom corners, you can install a GNOME extension called [Round Bottom Corner][7]. This will force round bottom corners for all applications including Gedit.
-
-### Make Gedit the default text editor
-
-Alright! So you have installed Gedit but the text files still open in GNOME Text Editor with double click action. To open a file with Gedit, you need to right click and then select the ‘open with’ option.
-
-If you want Gedit to open text files all the time, you can set it as default.
-
-Right click on a text file and go with “open with” option. Select Gedit here and enable the “Always use for this file type” option from the bottom.
-
-![Set Gedit as the default text editor][8]
-
-### Remove Gedit
-
-Don’t feel Gedit is up to the mark? That’s rare, but I am not judging you. To remove Gedit from Ubuntu, use the following command:
-
-```
-sudo apt remove gedit
-```
-
-You may also try uninstalling it from the software center.
-
-### Conclusion
-
-GNOME Text Editor is the next-gen, created-from-scratch editor that blends well with the new GNOME.
-
-It’s good enough for simple text editing. However, Gedit has a plugin ecosystem that gives it more feature.
-
-For those who use it extensively for coding and other stuff, installing Gedit is still an option in Ubuntu.
-
-What about you? Will you stick with the default new text editor or would you go back to the good old Gedit?
-
---------------------------------------------------------------------------------
-
-via: https://itsfoss.com/install-gedit-ubuntu/
-
-作者:[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/gnome-text-editor/
-[2]: https://itsfoss.com/wp-content/uploads/2022/10/text-editor-ubuntu.png
-[3]: https://itsfoss.com/wp-content/uploads/2022/10/install-gedit-from-ubuntu-software-center.png
-[4]: https://itsfoss.com/wp-content/uploads/2022/10/access-plugins-in-gedit.png
-[5]: https://itsfoss.com/wp-content/uploads/2022/10/plugins-in-gedit.png
-[6]: https://itsfoss.com/wp-content/uploads/2022/10/additional-plugins-gedit.png
-[7]: https://extensions.gnome.org/extension/5237/rounded-window-corners/
-[8]: https://itsfoss.com/wp-content/uploads/2022/10/set-gedit-default.png
diff --git a/sources/tech/20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md b/sources/tech/20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md
new file mode 100644
index 0000000000..1679b9ccc0
--- /dev/null
+++ b/sources/tech/20221015.1 ⭐️⭐️ How to Get Started with Shell Scripting in Linux.md
@@ -0,0 +1,140 @@
+[#]: subject: "How to Get Started with Shell Scripting in Linux"
+[#]: via: "https://www.linuxtechi.com/get-started-shell-scripting-linux/"
+[#]: author: "Pradeep Kumar https://www.linuxtechi.com/author/pradeep/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Get Started with Shell Scripting in Linux
+======
+
+Hello readers, In this post, we will cover how to get started with shell scripting in Linux or UNIX systems.
+
+##### What is a Shell?
+
+A shell is an interpreter in UNIX/Linux like operating systems. It takes commands typed by the user and calls the operating system to run those commands. In simple terms a shell acts as form of wrapper around the OS. For example , you may use the shell to enter a command to list the files in a directory , such as [ls command][1] , or a command to copy ,such as cp.
+
+```
+$ ls Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos $
+```
+
+In this example , when you simply type ls and press enter . The $ is the shell prompt , which tells you the the shell awaits your commands.The remaining lines are the names of the files in the current directory.
+
+##### What is Shell Prompt?
+
+The prompt, $, which is called command prompt, is issued by the shell. While the prompt is displayed, you can type a command. The shell reads your input after you press Enter. It determines the command you want executed by looking at the first word of your input. A word is an unbroken set of characters. Spaces and tabs separate words.
+
+### What are different types of Shells
+
+since there is no monopoly of shells , you are free to run any shell as you wish. That’s all well and good , but choosing a shell without knowing the alternative is not very helpful. Below are lists of shells available in UNIX/Linux.
+
+##### The Bourne Shell
+
+The Original Unix Shell is known as sh , short for shell or the Bourne shell , named for steven Bourne , the creator of sh. This is available on almost all the UNIX like operating system. The Basic bourne shell supports only the most limited command line editing, You can type the Characters,remove characters one at a time with the Backspace key and Press enter to execute the command. If command line gets messed up , you can press Ctrl-C to cancel the whole command.
+
+##### The C Shell
+
+It is desgined by Bill Joy at the university of california at Berkeley , the C shell was so named because much of its syntax parallels that of C programming language. This shell adds some neat features to the Bourne shell,especially the ability to recall previous commands to help create future commands.Because it is very likely you will need to execute more than one command to perform a particular task,this C shell capability is very useful.
+
+if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-4','ezslot_7',340,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-4-0');
+
+##### The Korn Shell
+
+It is created by David Korn at AT&T Bell laboratories , the korn shell or ksh offers the same kind of enhancements offers by the C Shell , with one important difference: The korn shell is backward compatible with the older Bourne shell Synatx. In UNIX like AIX & HP-UX korn shell is the default shell.
+
+##### Bash (The Bourne Again Shell)
+
+Bash offers command-line editing like the korn shell,file name completion like the C shell and a lot of other advance features. Many Users view bash as having the best of the Korn and C shells in one shell. In Linux and Mac OS X system , bash is the default shell.
+
+##### tcsh ( The T C Shell)
+
+Linux systems popularized the T C shell ot Tcsh. Tcsh extends the traditional csh to add command line editing,file name completion and more. For example , tcsh will complete the file and directory names when you press Tab key(the same key used in bash). The older C shell did not support this feature.
+
+### What is a Shell Script?
+
+A Shell Script is a text file that contains one or more commands. In a shell script, the shell assumes each line of text file holds a separate command. These Commands appear for most parts as if you have typed them in at a shell windows.
+
+if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-box-4','ezslot_8',260,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-box-4-0');
+
+##### Why to use Shell Script ?
+
+Shell scripts are used to automate administrative tasks,encapsulate complex configuration details and get at the full power of the operating system.The ability to combine commands allows you to create new commands ,thereby adding value to your operating system.Furthermore ,combining a shell with graphical desktop environment allows you to get the best of both worlds.
+
+In Linux system admin profile, day to day repeated tasks can be automated using shell script which saves time and allow admins to work on quality work.
+
+##### Creating first shell script
+
+Create a text file in your current working directory with a name myscript.sh , all the shell scripts have an “.sh” extension. First line of a shell script is either #!/bin/sh or #!/bin/bash , it is known as shebang because # symbol is called hash and ! Symbol is called a bang. Where as /bin/sh & /bin/bash shows that commands to be executed either sh or bash shell.
+
+Below are the content of myscript.sh
+
+```
+#!/bin/bash # Written by LinuxTechi echo echo "Current Working Directory: $(pwd)" echo echo "Today' Date & Time: $(date)" DISK=$(df -Th) echo echo "Disk Space on System:" echo "$DISK"
+```
+
+Above shell script will display the current working , today’s date & time along with file system disk space. We have used [echo command][2] and other [linux commands][3] to build this script.
+
+if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[300,250],'linuxtechi_com-medrectangle-3','ezslot_6',320,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-medrectangle-3-0');
+
+Assign the executable permissions using below [chmod command][4]
+
+```
+$ chmod a+x myscript.sh
+```
+
+Now execute the script.
+
+```
+$ sh myscript.sh or $ ./myscript.sh
+```
+
+Note: To execute any shell script available in current directory, use ./ as shown below,
+
+output,
+
+##### Taking Input from the user in shell script
+
+Read command is used to take inputs from user via keyboard and assign the value to a variable. echo command is used to display the contents.
+
+if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-banner-1','ezslot_9',360,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-banner-1-0');
+
+Let’s modify above script so that it starts taking input,
+
+```
+#!/bin/bash # Written by LinuxTechi read -p "Your Name: " NAME echo echo "Today' Date & Time: $(date)" echo read -p "Enter the file system:" DISK echo "$(df -Th $DISK)"
+```
+
+Now, try to execute the script this time it should prompt to enter details.
+
+```
+$ ./myscript.sh Your Name: Pradeep Kumar Today' Date & Time: Sat 15 Oct 05:32:38 BST 2022 Enter the file system:/mnt/data Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/volgrp01-lv01 ext4 14G 24K 13G 1% /mnt/data $
+```
+
+Perfect, above output confirms that scripting is prompting for input and processing data.
+
+if(typeof ez_ad_units != 'undefined'){ez_ad_units.push([[250,250],'linuxtechi_com-large-leaderboard-2','ezslot_11',550,'0','0'])};__ez_fad_position('div-gpt-ad-linuxtechi_com-large-leaderboard-2-0');
+
+That’s conclude the post. I hope you have found it informative. Kindly do post your queries and feedback in below comments section.
+
+Read Also: [How to Debug a Bash Shell Script in Linux][5]
+
+--------------------------------------------------------------------------------
+
+via: https://www.linuxtechi.com/get-started-shell-scripting-linux/
+
+作者:[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/linux-ls-command-examples-beginners/
+[2]: https://www.linuxtechi.com/echo-command-examples-in-linux/
+[3]: https://www.linuxtechi.com/20-linux-commands-interview-questions-answers/
+[4]: https://www.linuxtechi.com/chmod-command-examples-in-linux/
+[5]: https://www.linuxtechi.com/debugging-shell-scripts-in-linux/
diff --git a/sources/tech/20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md b/sources/tech/20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md
new file mode 100644
index 0000000000..299cb5bbe5
--- /dev/null
+++ b/sources/tech/20221017.4 ⭐️⭐️⭐️ Why you should consider Rexx for scripting.md
@@ -0,0 +1,122 @@
+[#]: subject: "Why you should consider Rexx for scripting"
+[#]: via: "https://opensource.com/article/22/10/rexx-scripting-language"
+[#]: author: "Howard Fosdick https://opensource.com/users/howtech"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Why you should consider Rexx for scripting
+======
+
+How do you design a programming language to be powerful yet still easy to use? Rexx offers one example. This article describes how Rexx reconciles these two seemingly contradictory goals.
+
+### History of Rexx programming language
+
+Several decades ago, computers were shifting from batch to interactive processing. Developers required a scripting or "glue" language to tie systems together. The tool needed to do everything from supporting application development to issuing operating system commands to functioning as a macro language.
+
+Mike Cowlishaw, IBM Fellow, created a solution in a language he named Rexx. It is widely considered the first general-purpose scripting language.
+
+Rexx was so easy to use and powerful that it quickly permeated all of IBM's software. Today, Rexx is the bundled scripting language on all of IBM's commercial operating systems (z/OS, z/VM, z/VSE, and IBM i). It's no surprise that in the 1990s, IBM bundled Rexx with PC-DOS and then OS/2. Rexx popped up in Windows in the XP Resource Kit (before Microsoft decided to lock in customers with its proprietary scripting languages, VBScript and PowerShell). Rexx also emerged as the scripting language for the popular Amiga PC.
+
+### Open source Rexx
+
+With Rexx spreading across platforms, standardization was needed. The American National Standards Institute (ANSI) stepped forward in 1996.
+
+That opened the floodgates. Open source Rexx interpreters started appearing. Today, more than a half dozen interpreters run on every imaginable platform and operating system, along with many open source tools.
+
+Two Rexx variants deserve mention. _Open Object Rexx_ is a compatible superset of procedural or "classic" Rexx. _ooRexx_ is message-based and provides all the classes, objects, and methods one could hope for. For example, it supports multiple inheritance and mixin classes.
+
+Paralleling the rise in Java's popularity, Mike Cowlishaw invented _NetRexx_. NetRexx is a Rexx variant that fully integrates with everything Java (including its object model) and runs on the Java virtual machine.
+
+ooRexx went open source in 2004; NetRexx in 2011. Today the [Rexx Language Association][1] enhances and supports both products. The RexxLA also supports _Regina_, the most popular classic Rexx interpreter, and _BSF4ooRexx_, a tool that fully integrates ooRexx with Java. Everything Rexx is open source.
+
+### Layered design
+
+So, back to the initial conundrum. How does a programming language combine power with ease of use?
+
+One part of the solution is a _layered architecture_. Operators and a minimal set of instructions form the core of the classic Rexx language:
+
+![Rexx layered design][2]
+
+Image by:
+
+(Howard Fosdick, CC BY-SA 4.0)
+
+Surrounding the core are the language's 70-odd built-in functions:
+
+- Arithmetic
+- Comparison
+- Conversion
+- Formatting
+- String manipulation
+- Miscellaneous
+
+Additional power is added in the form of _external function libraries_. You can invoke external functions from within Rexx programs as if they were built in. Simply make them accessible by proper reference at the top of your script.
+
+Function libraries are available for everything: GUIs, databases, web services, OS services, system commands, graphics, access methods, advanced math, display control, and more. The result is a highly-capable open source ecosystem.
+
+Finally, recall that Open Object Rexx is a superset of classic Rexx. So you could use procedural Rexx and then transition your skills and code to object programming by moving to ooRexx. In a sense, ooRexx is yet another Rexx extension, this time into object-oriented programming.
+
+### Rexx is human-oriented language
+
+Rexx glues all its instructions, functions, and external libraries together in a consistent, dead-simple syntax. It doesn't rely on special characters, arcane syntax, or reserved words. It's case-insensitive and free-form.
+
+This approach shifts the burden of programming from programmer to machine to the greatest degree possible. The result is a comparatively easy language to learn, code, remember, and maintain. Rexx is intended as a human-oriented language.
+
+Rexx implements the _principle of least astonishment_, the idea that systems should work in ways that people assume or expect. For example, Rexx's default decimal arithmetic—with precision you control—means you aren't surprised by rounding errors.
+
+Another example: All variables contain strings. If the strings represent valid numbers, one can perform arithmetic operations with them. This simple concept of dynamic typing makes all data visible and simplifies tracing and debugging.
+
+Rexx capitalizes on the advantages of interpreters to simplify program development. Tracing facilities allow developers to direct and witness program execution in various ways. For example, one can single-step through code, inspect variable values, change them during execution, and more.
+
+Rexx also raises common error conditions that the programmer can easily trap. This feature makes for more standardized, reliable code.
+
+### Arrays
+
+Rexx's approach to arrays (or tables) is a good example of how it combines simplicity with power.
+
+Like all Rexx variables, you don't have to declare them in advance. They automatically expand to the size of available memory. This feature relieves programmers of the burden of memory management.
+
+To form an array, a so-called _compound variable_ stitches together a _stem variable_ with one or more _subscripts_, as in these examples:
+
+```
+my_array.1
+ my_table.i.j
+ my_list.index_value
+ my_list.string_value
+ my_tree.branch_one
+ my_tree.branch_one.branch_two
+```
+
+Subscripts can represent numeric values, as you may be accustomed to in standard table processing.
+
+Alternatively, they can contain strings. String subscripts allow you to build _associative arrays_ using the same simple syntax as common tables. Some refer to associative arrays as _key-value pairs_ or _content addressable memory_. Allowing array contents to be accessed by arbitrary strings rather than simply numeric values opens up an entirely new world of algorithmic solutions.
+
+With this flexible but consistent syntax, you can build almost any data structure: Lists, two- or three- or n-dimensional tables, key-value pairs, balanced trees, unbalanced trees, dense tables, sparse tables, records, rows, and more.
+
+The beauty is in simplicity. It's all based on the notion of compound variables.
+
+### Wrap up
+
+In the future, I'll walk through some Rexx program examples. One real-world example will show how a short script using associative arrays reduced the runtime of a legacy program from several hours down to less than a minute.
+
+You can join the Rexx Language Association for free. For free Rexx downloads, tools, tutorials, and more, visit [RexxInfo.org][3].
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/rexx-scripting-language
+
+作者:[Howard Fosdick][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/howtech
+[b]: https://github.com/lkxed
+[1]: http://www.RexxLA.org
+[2]: https://opensource.com/sites/default/files/2022-10/rexx_layered_design.jpg
+[3]: http://www.RexxInfo.org
diff --git a/sources/tech/20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md b/sources/tech/20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md
new file mode 100644
index 0000000000..0d9d1abdc5
--- /dev/null
+++ b/sources/tech/20221018.3 ⭐️ Setup Docker And Docker Compose With DockSTARTer.md
@@ -0,0 +1,216 @@
+[#]: subject: "Setup Docker And Docker Compose With DockSTARTer"
+[#]: via: "https://ostechnix.com/setup-docker-and-docker-compose-with-dockstarter/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Setup Docker And Docker Compose With DockSTARTer
+======
+
+This guide explains **what is DockSTARTer**, how to **install DockSTARTer in Linux** and how to **setup Docker and Docker compose using DockSTARTer** to run containerized applications in Linux.
+
+### What is DockSTARTer?
+
+**DockSTARTer** is a TUI-based utility to easily install Docker and Docker compose in Linux and Unix systems. The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker.
+
+DockSTARTer has both TUI and CLI interfaces. So you can use either of these interfaces to quickly deploy multiple containerized apps in a single docker environment.
+
+Please note that DockSTARTer is not a ready-made set of apps that run out of the box. You still need to choose what to run and how to run.
+
+It also doesn't configure apps and storage for you. You may need to configure the settings of the apps and the storage manually by yourself.
+
+As of writing this, we can run more than 100 docker apps using DockSTARter. Some of the popular apps are Adguard, Bitwarden, CloudFlare DDNS, Duplicacy, Emby, File Browser, Glances, Heimdall, InfluxDB, Jellyfin, Kiwix-serve, Lidarr, Minecraft Server, Nextcloud, openLDAP, Speedtest, Pihole, qBittorent, Rsnapshot, Syncthing, Time Machine, Uptimne Kuma, Vsftpd, Wireguard, youtubedl and a lot more.
+
+DockSTARTer is free and opensource shell script. The source code of DockSTARTer is hosted in GitHub.
+
+### Install DockSTARTer in Linux
+
+DockSTARter can be installed in popular Linux operating systems.
+
+To install DockSTARTer in Arch Linux and its variants such as EndeavourOS, and Manjaro Linux, run the following commands:
+
+```
+$ sudo pacman -S curl docker git
+```
+
+```
+$ bash -c "$(curl -fsSL https://get.dockstarter.com)"
+```
+
+```
+$ sudo reboot
+```
+
+To install DockSTARTer in Debian, Ubuntu, Linux Mint, Pop OS, run:
+
+```
+$ sudo apt install curl git
+```
+
+```
+$ bash -c "$(curl -fsSL https://get.dockstarter.com)"
+```
+
+```
+$ sudo reboot
+```
+
+To install DockSTARTer in Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, run:
+
+```
+$ sudo dnf install curl git
+```
+
+```
+$ bash -c "$(curl -fsSL https://get.dockstarter.com)"
+```
+
+```
+$ sudo reboot
+```
+
+### Use DockSTARTer to setup Docker and Docker Compose
+
+DockSTARTer allows you to install and configure various apps in Docker.
+
+To run DockSTARTer for the first time, enter the following command:
+
+```
+$ ds
+```
+
+Choose "Configuration" from the main menu and press ENTER:
+
+And then select "Full setup".
+
+Choose which apps you would like to install. By default, Watchtower app is selected. Use UP and DOWN arrow keys to navigate to app list and press SPACEBAR to select or deselect apps.
+
+Now, DockSTARTer will display the default settings of the selected apps. If you would like to keep these settings for the apps, choose "Yes" and hit ENTER. Or choose "No" and change the settings as you want.
+
+If you like to keep the default settings for VPN, choose "Yes" or choose "No" to change the settings as you please.
+
+Now you will see the global settings for DockSTARTer. Review the global settings such as docker config directory, docker storage directory, docker hostname and time zone etc. If you're OK with the default settings, simply choose "Yes" and hit ENTER. If you want to change these settings, select "No". I want to change the storage directory, hostname and time zone, so I choose "No".
+
+If you chose "No" in the previous wizard, you will be prompted to set docker config directory. There will be 2 choices given. You can either choose to keep the currently selected directory or enter a new one by selecting "Enter New" option. I am going to keep the currently selected directory.
+
+Choose "yes" to set appropriate permissions on the docker configuration directory.
+
+In this step, you need to set a directory for Docker storage. By default, DockSTARTer will create a directory called "storage" in your $HOME directory. If you want to keep the default storage directory, choose "Keep Current". Or choose "Enter New".
+
+Enter the path to your Docker storage directory and hit ENTER. If the directory doesn't exist, DockSTARTer will attempt to create it.
+
+Set the hostname for your Docker system. DockSTARTer recommends system detected values. Here, I am going to choose "Use System" option's setting for my Docker hostname.
+
+Set the user's group ID (PGID). If you're unsure, simply go with the **"Use System"** option.
+
+Set your user account ID (PUID). If you're unsure, simply go with the **"Use System"** option.
+
+Set your system timezone. The system detected values, so just choose "Use System" option and hit ENTER.
+
+Next, you will prompted if you would you like to run compose. Choose "Yes" to do so.
+
+This will pull the Docker images that you choose to install in one the previous steps.
+
+Finally, you will an output something like below after the Docker compose installed all selected apps.
+
+```
+[...] 2022-10-18 14:24:30 [WARN ] /home/ostechnix/.docker/compose/.env not found. Copying example template. 2022-10-18 14:24:30 [WARN ] Please verify that ~ is not used in /home/ostechnix/.docker/compose/.env file. 2022-10-18 14:24:30 [NOTICE] Preparing app menu. Please be patient, this can take a while. 2022-10-18 14:36:51 [NOTICE] /home/ostechnix/.docker/compose/.env does not contain any disabled apps. 2022-10-18 14:36:51 [NOTICE] Creating environment variables for enabled apps. Please be patient, this can take a while. 2022-10-18 15:55:29 [NOTICE] Creating environment variables for enabled apps. Please be patient, this can take a while. 2022-10-18 15:55:29 [NOTICE] Adding compose configurations for enabled apps. Please be patient, this can take a while. [+] Running 4/4 ⠿ watchtower Pulled 6.1s ⠿ 1045b2f97fda Pull complete 1.0s ⠿ 35a104a262d3 Pull complete 1.2s ⠿ 1a0671483169 Pull complete 3.1s [+] Running 2/2 ⠿ Network compose_default Created 0.0s ⠿ Container watchtower Started
+```
+
+That's it. You can view the list of running Docker containers using command:
+
+```
+$ docker ps
+```
+
+**Sample output:**
+
+```
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d3c34dc918f ghcr.io/containrrr/watchtower "/watchtower" 5 minutes ago Up 5 minutes 8080/tcp watchtower
+```
+
+### Install new Apps
+
+To install the other apps, just restart DockSTARTer again using the following command:
+
+```
+$ ds
+```
+
+Select "Configuration" and then "Select Apps".
+
+You will see the list of available apps in the next screen. Just select the app you want to run and follow the on-screen instructions.
+
+### Remove Apps
+
+Removing apps is same as adding new apps.
+
+First, make sure the container app is stopped.
+
+```
+$ sudo docker stop
+```
+
+Start DockeSTARTer, go to **Configuration -> Select Apps** and **uncheck** the apps that you want to remove and choose OK to remove the apps.
+
+### Update DockSTARTer
+
+To update DockSTARTer, simply start it using **"`ds`"** command from the Terminal and then choose "Update DockSTARTer" option.
+
+You can also do it from the commandline by running:
+
+```
+$ sudo ds -u
+```
+
+### Prune Docker system
+
+To remove all unused containers, networks, volumes, images and build cache, start DockSTARTer and then choose **"Prune Docker System"** option.
+
+You can prune your Docker system from commandline by running the following command as well.
+
+```
+$ sudo ds -p
+```
+
+**Sample output:**
+
+```
+Deleted Containers: 9d3c34dc918fafa62d0e35283be4cbee46280a30dcd59b1aaa8b5fff1e4a085d Deleted Networks: compose_default Deleted Images: untagged: ghcr.io/containrrr/watchtower:latest untagged: ghcr.io/containrrr/watchtower@sha256:bbf9794a691b59ed2ed3089fec53844f14ada249ee5e372ff0e595b73f4e9ab3 deleted: sha256:333de6ea525af9137e1f14a5c1bfaa2e730adca97ab97f74d738dfa99967f14f deleted: sha256:f493af3d0a518d307b430e267571c926557c85222217a8707c52d1cf30e3577e deleted: sha256:62651dc7e144aa8c238c2c2997fc499cd813468fbdc491b478332476f99af159 deleted: sha256:83fe5af458237288fe7143a57f8485b78691032c8c8c30647f8a12b093d29343 Total reclaimed space: 16.92MB
+```
+
+### Change variables
+
+You can adjust variables for running Docker containers at any time.
+
+Start DockSTARTer by running **"`ds`"** command and choose "Configuration", and then choose the following settings:
+
+- "Set App Variables" option for adjusting variables for all enabled apps,
+- "Set VPN Variables" option for adjusting VPN specific variables,
+- "Set Global Variables" option for adjusting global variables.
+
+### Conclusion
+
+DockSTARTer has made the process of running Docker apps much easier! DockSTARTer also has CLI interface, but you can quickly deploy Docker containers without memorizing any commands via the its Text-based interface.
+
+**Resource:**
+
+- **[DockSTARTer Website][1]**
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/setup-docker-and-docker-compose-with-dockstarter/
+
+作者:[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://dockstarter.com/
diff --git a/sources/tech/20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md b/sources/tech/20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md
new file mode 100644
index 0000000000..af94f6a4bf
--- /dev/null
+++ b/sources/tech/20221019.3 ⭐️⭐️ How to Remove Snap Packages in Ubuntu Linux.md
@@ -0,0 +1,164 @@
+[#]: subject: "How to Remove Snap Packages in Ubuntu Linux"
+[#]: via: "https://www.debugpoint.com/remove-snap-ubuntu/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Remove Snap Packages in Ubuntu Linux
+======
+
+**A tutorial on how to remove Snap from Ubuntu Linux and getting a snap-free system.**
+
+Snap packages developed by Canonical are beneficial for several use cases. It provides an easy and faster update of applications directly to the end-users. Not only that, it has several other benefits, such as it comes with all dependencies packaged and allows multiple installations of the same applications. Furthermore, it runs in a sandbox mode providing security and other benefits.
+
+Among all these benefits, there are other debatable drawbacks of Snap tech. For example, almost every user who used Snap reported its slower performance, including its startup time, compared to native deb or RPM packages. In addition, due to its design, the application installation size is huge and costs disk space because it packages all the dependencies.
+
+Not only that, but due to its sandbox nature, the Snap apps may not access several areas of your Linux desktop until managed with proper permission.
+
+This guide explains how you can remove the snap from the Ubuntu system altogether.
+
+These steps are tested in [Ubuntu 22.04 LTS Jammy Jellyfish][1]. However, it should work for all applicable Ubuntu versions.
+
+Warning: These steps will remove Software and Firefox, the two critical applications in your Ubuntu system. Make sure you take backups of bookmarks and other Firefox settings before trying these steps.
+
+### Remove Snap Packages in Ubuntu Linux
+
+- Open a terminal and view the list of Snap packages installed in your system using the below command. It shows the snap packages such as Firefox, Software store, themes and other core packages installed by default.
+
+```
+snap list
+```
+
+![Snap list in Ubuntu][2]
+
+- Remove snap packages in the following order. Firstly remove Firefox. Secondly, snap-store and the other packages that you see in the above command output in your system.
+
+```
+sudo snap remove --purge firefoxsudo snap remove --purge snap-storesudo snap remove --purge gnome-3-38-2004
+```
+
+```
+sudo snap remove --purge gtk-common-themessudo snap remove --purge snapd-desktop-integrationsudo snap remove --purge baresudo snap remove --purge core20sudo snap remove --purge snapd
+```
+
+- Finally, remove the snap daemon via apt command.
+
+```
+sudo apt remove --autoremove snapd
+```
+
+[![remove snap and others][3]][4]
+
+That’s not all. Even if you removed the snaps using the above command, the sudo apt update command again brings back the snap if you don’t stop the apt trigger.
+
+- So, to stop that, we need to create an apt preference file in **/etc/apt/preferences.d/ **and create a new preference file to stop snap. Create a new file called **nosnap.pref** in /etc/apt/preferences.d/
+
+```
+sudo gedit /etc/apt/preferences.d/nosnap.pref
+```
+
+- And add the following lines, then save the file.
+
+```
+Package: snapdPin: release a=*Pin-Priority: -10
+```
+
+![create a pref file][5]
+
+_The apt preference is a potent tool if you know how to use it. For example, in the above statements, the Pin-Priority -10 means preventing a package from installation._
+
+_Unrelated to this tutorial, for example, if you want to give super high priority to all the packages from distribution code name=bullseye, then one may see these preferences. If you want to learn more, you can visit the [apt man pages][6]._
+
+```
+Package: *Pin: release n=bullseyePin-Priority: 900
+```
+
+- Returning to the topic, once you save and close the above file, run the below again from the terminal.
+
+```
+sudo apt update
+```
+
+- Finally, the steps are complete for getting rid of the snap from Ubuntu.
+
+### Installing Software and Firefox as deb files after removing Snap from Ubuntu
+
+You removed Firefox and Sofware applications, so you need those for your work.
+
+You can use the following command to install the apt version of the Gnome Software. Make sure you use the `--install-suggests`. Otherwise, it will install the snap version again!
+
+```
+sudo apt install --install-suggests gnome-software
+```
+
+And to install firefox, use the official PPA via the below commands.
+
+```
+sudo add-apt-repository ppa:mozillateam/ppa
+sudo apt update
+sudo apt install -t 'o=LP-PPA-mozillateam' firefox
+```
+
+[![Add the PPA][7]][8]
+
+[![Install Firefox as deb file from PPA][9]][10]
+
+Once you have installed Firefox, enable the automatic update using the below commands. To learn more, [visit thi][11][s page][11].
+
+```
+echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox
+```
+
+Last but not least, create another preference file for Firefox to give super high priority to the above PPA while running apt. If you don’t do this, the apt update command again pulls back firefox snap and brings over its “snap friends”. 😂
+
+```
+sudo gedit /etc/apt/preferences.d/mozillateamppa
+```
+
+Finally, add these lines and save the file.
+
+```
+Package: firefox*Pin: release o=LP-PPA-mozillateamPin-Priority: 501
+```
+
+That’s it.
+
+### Revert back to Snap in Ubuntu
+
+If you change your mind, remove the preference file and install the applications using the below commands below.
+
+```
+sudo rm /etc/apt/preferences.d/nosnap.prefsudo apt update && sudo apt upgradesudo snap install snap-storesudo apt install firefox
+```
+
+### Closing Notes
+
+Wrapping up the tutorial on removing snap in Ubuntu, I would say these are unnecessary efforts to eliminate Snap completely. Mainly these are difficult for new users. I hope this guide helps you to get rid of snap. Cheers.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/remove-snap-ubuntu/
+
+作者:[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/2022/01/ubuntu-22-04-lts/
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/04/Snap-list-in-Ubuntu.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others-1024x544.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/remove-snap-and-others.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/create-a-pref-file.jpg
+[6]: https://manpages.ubuntu.com/manpages/focal/man5/apt_preferences.5.html
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA-1024x550.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Add-the-PPA.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA-1024x548.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/04/Install-Firefox-as-deb-file-from-PPA.jpg
+[11]: https://www.debugpoint.com/2021/09/remove-firefox-snap-ubuntu/
diff --git a/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md b/sources/tech/20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md
similarity index 61%
rename from sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md
rename to sources/tech/20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md
index f28ee2e5bd..a8223410e6 100644
--- a/sources/tech/20221015 How to Enable and Access USB Drive in VirtualBox.md
+++ b/sources/tech/20221019.4 ⭐️ How to Enable and Access USB Drive in VirtualBox.md
@@ -9,9 +9,8 @@
How to Enable and Access USB Drive in VirtualBox
======
-Here’s a precise guide on how you can enable USB in Oracle VirtualBox.
-![][1]
+**Here’s a precise guide on how you can enable USB in Oracle VirtualBox.**
When you work in a Virtual machine environment, the USB is usually plugged into the host system. But it is a little difficult to access that USB content from the guest system.
@@ -19,61 +18,65 @@ In VirtualBox, you need to install some extensions and enable some settings to a
This article assumes that you have already installed VirtualBox and also installed some Linux distribution or operating system inside it.
-If not, check out the [articles here][2].
+If not, check out the [articles here][1].
+
+Please note that Oracle VM VirtualBox Extension Pack comes with Oracle’s Personal Use and Evaluation License (PUEL). This license is different from VirtualBox, which is under GPL. If you are using the below steps for commercial purposes, make sure you [read this page][2] carefully.
### Enable USB in VirtualBox 7.0
#### Install VirtualBox Extension Pack
-* Open the VirtualBox download page and download the VirtualBox Extension pack for all supported platforms using [this link][3].
+- Open the VirtualBox download page and download the VirtualBox Extension pack for all supported platforms using [this link][3].
![Download the extension pack][4]
-* Then Click on `File > Tools > Extension Pack Manager.`
+- Then Click on `File > Tools > Extension Pack Manager.`
-* Click on the `Install` button in the toolbar and select the downloaded .vbox-extpak file.
+- Click on the `Install` button in the toolbar and select the downloaded .vbox-extpak file.
-* Hit `Install`. Accept the terms, and give the admin password for the installation.
+- Hit `Install`. Accept the terms, and give the admin password for the installation.
![install extension pack manager][5]
![install extension pack manager after accepting terms][6]
-* After successful installation, you can see it in the installed list.
+- After successful installation, you can see it in the installed list.
-* Restart your host system. Restarting is mandatory.
+- Restart your host system. Restarting is mandatory.
#### Enable USB in the guest box
-* Plugin the USB stick into your host system – which you want to access from the guest virtual machine.
+- Plugin the USB stick into your host system – which you want to access from the guest virtual machine.
-* Start VirtualBox and right-click on the VM name where you want to enable USB. Select Settings.
+- Start VirtualBox and right-click on the VM name where you want to enable USB. Select Settings.
![Launch settings for the virtual machine][7]
-* On the left pane, click on USB. Then select the controller version. For example, you can select USB 3.0. Then click on the small plus icon to add a USB filter.
+- On the left pane, click on USB. Then select the controller version. For example, you can select USB 3.0. Then click on the small plus icon to add a USB filter.
-* In this list, you should see your USB stick name (which you plugged in). For this example, I can see my Transcend Jetflash drive, which I plugged in.
+- In this list, you should see your USB stick name (which you plugged in). For this example, I can see my Transcend Jetflash drive, which I plugged in.
-* Select it and press OK.
+- Select it and press OK.
-![Select the USB stick][8]
+[![Select the USB stick][8]][9]
-* Now, start your virtual machine. Open the file manager, and you should see the USB is enabled and mounted on your virtual machine.
+- Now, start your virtual machine. Open the file manager, and you should see the USB is enabled and mounted on your virtual machine.
-* In this demonstration, you can see the Thunar file manager of my [Arch-Xfce][9] virtual machine is showing the contents of my USB stick.
+- In this demonstration, you can see the Thunar file manager of my [Arch-Xfce][10] virtual machine is showing the contents of my USB stick.
-![Enabling USB and accessing contents from VirtualBox][10]
+[![Enabling USB and accessing contents from VirtualBox][11]][12]
### Usage notes
Now, here are a couple of things you should remember.
-* When you plug in the USB in the host system, keep it mounted. But do not open or access any file before launching the virtual machine.
+- When you plug in the USB in the host system, keep it mounted. But do not open or access any file before launching the virtual machine.
-* Once you start your virtual machine, the USB will be unmounted in the host system and auto-mounted in the guest system, i.e. your virtual machine.
+unmounted in the host system
-* After you finish with a USB stick, ensure to eject or unmount it inside a virtual machine. Then it will be accessible again inside your host system.
+- Once you start your virtual machine, the USB will be and auto-mounted in the guest system, i.e. your virtual machine.
+
+- After you finish with a USB stick, ensure to eject or unmount it inside a virtual machine. Then it will be accessible again inside your host system.
### Wrapping Up
@@ -96,13 +99,15 @@ via: https://www.debugpoint.com/enable-usb-virtualbox/
[a]: https://www.debugpoint.com/author/admin1/
[b]: https://github.com/lkxed
-[1]: https://www.debugpoint.com/wp-content/uploads/2022/10/usb-vbox-1024x576.jpg
-[2]: https://www.debugpoint.com/tag/virtualbox
+[1]: https://www.debugpoint.com/tag/virtualbox
+[2]: https://www.virtualbox.org/wiki/VirtualBox_PUEL
[3]: https://www.virtualbox.org/wiki/Downloads
[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Download-the-extension-pack.jpg
[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager.jpg
[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/install-extension-pack-manager-after-accepting-terms.jpg
[7]: https://www.debugpoint.com/wp-content/uploads/2022/10/Launch-settings-for-the-virtual-machine.jpg
-[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg
-[9]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/
-[10]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick-1024x399.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/10/Select-the-USB-stick.jpg
+[10]: https://www.debugpoint.com/xfce-arch-linux-install-4-16/
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox-1024x639.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/10/Enabling-USB-and-accessing-contents-from-VirtualBox.jpg
diff --git a/sources/tech/20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md b/sources/tech/20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md
new file mode 100644
index 0000000000..a34438548c
--- /dev/null
+++ b/sources/tech/20221021.0 ⭐️ How to find GNOME Shell version from the Terminal.md
@@ -0,0 +1,91 @@
+[#]: subject: "How to find GNOME Shell version from the Terminal"
+[#]: via: "https://www.debugpoint.com/find-gnome-version/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to find GNOME Shell version from the Terminal
+======
+
+**Here’s a quick guide on finding the GNOME desktop (or Shell) version via the command line and GUI.**
+
+### Find GNOME Shell Version
+
+You need to find the GNOME version number you are running for many use cases. For example, if you are a developer, you might want to find out compatible packages and ensure that all the dependencies are met.
+
+So, to do that, here’s how you can find the GNOME version number.
+
+Firstly, open a terminal. And run the following command.
+
+```
+gnome-shell --version
+```
+
+![version via terminal][1]
+
+It will give you the GNOME shell version number currently running in your system.
+
+Similarly, if you are using the desktop environment, then open Settings. Then click on the About tab.
+
+Here you can see the GNOME Version at the bottom.
+
+![version via settings window][2]
+
+### Usage Notes
+
+There might be situations where you use a different desktop environment (such as MATE or Xfce), which also uses GNOME components and packages.
+
+Those desktop environments don’t use the gnome-shell package, of course. So, if you want to find out the GNOME packages and their version used in those specific cases, you can see the contents of this file below. This is for Ubuntu and Debian-based distros only.
+
+```
+/var/lib/apt/extended_states
+```
+
+For example, the file contains a below GNOME package.
+
+Now that you know the package name, you can further find out its version installed in your system using the below command. Similar DNF command you can find in [this guide][3] for RPM-based distros.
+
+```
+apt show gnome-weather
+```
+
+**Sample output:**
+
+```
+debugpoint@debugpoint-mate:~$ apt show gnome-weather
+Package: gnome-weather
+Version: 43.0-1
+Priority: optional
+Section: universe/gnome
+Origin: Ubuntu
+Maintainer: Ubuntu Developers [ubuntu-devel-discuss@lists.ubuntu.com][4]
+Original-Maintainer: Debian GNOME Maintainers [pkg-gnome-maintainers@lists.alioth.debian.org][5]
+```
+
+### Wrapping Up
+
+This guide teaches you how to find the version of GNOME and some additional methods.
+
+Cheers.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/find-gnome-version/
+
+作者:[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/2022/10/version-via-terminal.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/version-via-settings-window.jpg
+[3]: https://www.debugpoint.com/dnf-commands-examples/
+[4]: https://www.debugpoint.commailto:ubuntu-devel-discuss@lists.ubuntu.com
+[5]: https://www.debugpoint.commailto:pkg-gnome-maintainers@lists.alioth.debian.org
diff --git a/sources/tech/20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md b/sources/tech/20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md
new file mode 100644
index 0000000000..170e38e797
--- /dev/null
+++ b/sources/tech/20221021.4 ⭐️⭐️ Observability-driven development with OpenTelemetry.md
@@ -0,0 +1,82 @@
+[#]: subject: "Observability-driven development with OpenTelemetry"
+[#]: via: "https://opensource.com/article/22/10/observability-driven-development-opentelemetry"
+[#]: author: "Ken Hamric https://opensource.com/users/kenkubeshopio"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Observability-driven development with OpenTelemetry
+======
+
+Observability-driven development (ODD) is being recognized as "necessary" for complex, microservice-based architectures. Charity Majors coined the term and has written about it in several articles, including [Observability: A Manifesto][1]. She explains the term in this quote:
+
+> Do you bake observability right into your code as you're writing it? The best engineers do a form of "observability-driven-development" — they understand their software as they write it, include instrumentation when they ship it, then check it regularly to make sure it looks as expected. You can't just tack this on after the fact, "when it's done".
+
+### OpenTelemetry provides the plumbing
+
+The OpenTelemetry project has the industry backing to be the 'plumbing' for enabling observability across distributed applications. The OpenTelemetry project is [second only to Kubernetes][2] when measuring the size of its contributor community among [Cloud Native Computing Foundation (CNCF)][3] projects, and was formed when OpenTracing and OpenCensus projects merged in 2019. Since then, almost all of the major players in the industry have announced their support for OpenTelemetry.
+
+[OpenTelemetry][4] covers three observability signals—logs, metrics, and distributed traces. It standardizes the approach to instrumenting your code, collecting the data, and exporting it to a backend system where the analyses can occur and the information can be stored. By standardizing the 'plumbing' to gather these metrics, you can now be assured that you don't have to change the instrumentation embedded in your code when switching from one vendor to another, or deciding to take the analysis and storage in-house with an open source solution such as OpenSearch. Vendors fully support OpenTelemetry as it removes the onerous task of enabling instrumentation across every programming language, every tool, every database, every message bus— and across each version of these languages. An open source approach with OpenTelemetry benefits all!
+
+### Bridging the gap with Tracetest
+
+So you want to do ODD, and you have a standard of how to instrument the code with OpenTelemetry. Now you just need a tool to bridge the gap and help you develop and test your distributed application with OpenTelemetry. This is why my team is building [Tracetest][5], an open source tool to enable the development and testing of your distributed microservice application. It's agnostic to the development language used or the backend OpenTelemetry data source that is chosen.
+
+For years, developers have utilized tools such as Postman, ReadyAPI, or Insomnia to trigger their code, view the response, and create tests against the response. Tracetest extends this old concept to support the modern, observability-driven development needs of teams. Traces are front and center in the tool. Tracetest empowers you to trigger your code to execute, view both the response from that code and the OpenTelemetry trace, and to build tests based on both the response and the data contained in the trace.
+
+![Image of Tracetest functionality.][6]
+
+Image by:
+
+(Ken Hamric, CC BY-SA 4.0)
+
+### Tracetest: Trigger, trace, and test
+
+How does Tracetest work? First, you define a triggering transaction. This can be a [REST][7] or gRPC call. The tool executes this trigger and shows the developer the full response returned. This enables an interactive process of altering the underlying code and executing the trigger to check the response. Second, Tracetest integrates with your existing OpenTelemetry infrastructure to pull in the trace generated by the execution of the trigger, and shows you the full details of the trace. Spans, attributes, and timing are all visible. The developer can adjust their code and add manual instrumentation, re-execute the trigger, and see the results of their changes to the trace directly in the tool. Lastly, Tracetest allows you to build tests based on both the response of the transaction and the trace data in a technique known as trace-based testing.
+
+### What is trace-based testing?
+
+Trace-based testing is a new approach to an old problem. How do you enable integration tests to be written against complex systems? Typically, the old approach involved adding lots of complexity into your test so it had visibility into what was occurring in the system. The test would need a trigger, but it would also need to do extra work to access information contained throughout the system. It would need a database connection and authentication information, ability to monitor the message bus, and even additional instrumentation added to the code to enable the test. In contrast, Trace-based testing removes all the complexity. It can do this because of one simple fact—you have already fully instrumented your code with OpenTelemetry. By leveraging the data contained in the traces produced by the application under the test, Tracetest can make assertions against both the response data and the trace data. Examples of questions that can be asked include:
+
+- Did the response to the gRPC call have a 0 status code and was the response message correct?
+- Did both downstream microservices pull the message off the message queue?
+- When calling an external system as part of the process—does it return a status code of 200?
+- Did all my database queries execute in less than 250ms?
+
+![Image of Observability driven development in Tracetest.][8]
+
+Image by:
+
+(Ken Hamric, CC BY-SA 4.0)
+
+By combining the ability to exercise your code, view the response and trace returned, and then build tests based on both sets of data, Tracetest provides a tool to enable you to do observability-driven development with OpenTelemetry.
+
+### Try Tracetest
+
+If you're ready to get started, [download Tracetest][9] and try it out. It's open source, so you can [contribute to the code][10] and help shape the future of trace-based testing with Tracetest!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/observability-driven-development-opentelemetry
+
+作者:[Ken Hamric][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/kenkubeshopio
+[b]: https://github.com/lkxed
+[1]: https://www.honeycomb.io/blog/observability-a-manifesto/
+[2]: https://www.cncf.io/blog/2021/12/15/end-of-year-update-on-cncf-and-open-source-velocity-in-2021/
+[3]: https://www.cncf.io/
+[4]: https://opentelemetry.io/
+[5]: http://tracetest.io
+[6]: https://opensource.com/sites/default/files/2022-10/tracetest%20functionality.png
+[7]: https://www.redhat.com/en/topics/api/what-is-a-rest-api?intcmp=7013a000002qLH8AAM
+[8]: https://opensource.com/sites/default/files/2022-10/Tracetest-odd.png
+[9]: https://tracetest.io/download
+[10]: https://github.com/kubeshop/tracetest/issues
diff --git a/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md
new file mode 100644
index 0000000000..37ebc17974
--- /dev/null
+++ b/sources/tech/20221022.0 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md
@@ -0,0 +1,250 @@
+[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]"
+[#]: via: "https://www.debugpoint.com/systemd-journalctl/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to use journalctl to View and Analyze Systemd Logs [With Examples]
+======
+
+**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.**
+
+### Introduction
+
+Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem.
+
+Systemd has three basic components as follows –
+
+- **systemd**: System and service manager for Linux operating systems.
+- **systemctl**: Command to introspect and control the state of the systemd system and service manager.
+- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager
+
+Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd.
+
+### journald – systemd journal daemon
+
+By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files.
+
+The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs.
+
+Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems.
+
+#### The journald Configuration File
+
+The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing.
+
+```
+/etc/systemd/journald.conf
+```
+
+#### Where journald stores the binary log files
+
+The journald stores the logs in binary format. They are stored inside a directory under this path.
+
+```
+/var/log/journal
+```
+
+For example, in the below path there is a directory that contains all the system logs to date.
+
+![journalctl log file path][2]
+
+Do not use cat command or use nano or vi to open these files. They would not be displayed properly.
+
+### Use journalctl to View and Analyze Systemd Logs
+
+#### Basic journald command
+
+The basic command to view logs using journal daemon is –
+
+```
+journalctl
+```
+
+![journalctl][3]
+
+This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view.
+
+#### How to view journal entries for time zones
+
+By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command.
+
+```
+journalctl --utc
+```
+
+![journalctl --utc][4]
+
+#### How to view only errors, warnings, etc in journal logs
+
+The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command.
+
+To view emergency system messages use:
+
+```
+journalctl -p 0
+```
+
+![journalctl -p 0][5]
+
+Error codes
+
+```
+0: emergency 1: alerts 2: critical 3: errors 4: warning 5: notice 6: info 7: debug
+```
+
+When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0
+
+```
+journalctl -p 2
+```
+
+#### How to view journal logs for a specific boot
+
+When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well.
+
+Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command.
+
+```
+journalctl --list-boots
+```
+
+![journalctl list-boots][6]
+
+- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot.
+- The second number the boot ID which also you can specify in the commands.
+- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time.
+
+To view a specific boot number you the first number or the boot ID as below.
+
+```
+journalctl -b -45
+```
+
+```
+journalctl -b 8bab42c7e82440f886a3f041a7c95b98
+```
+
+![journalctl -b 45][7]
+
+You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations.
+
+```
+journalctl -xb -p 3
+```
+
+![journalctl -xb][8]
+
+#### How to view journal logs for a specific time, date duration
+
+The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation.
+
+You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.`
+
+Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"`
+
+```
+journalctl --since "2020-12-04 06:00:00"
+```
+
+```
+journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
+```
+
+```
+journalctl --since yesterday
+```
+
+```
+journalctl --since 09:00 --until "1 hour ago"
+```
+
+![journalctl --since 09:00 --until][9]
+
+You can combine the above with the error level switches as well.
+
+#### How to see Kernel specific journal logs
+
+The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command.
+
+```
+journalctl -k
+```
+
+#### How to see journal logs for a service, PID
+
+You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command.
+
+```
+journalctl -u NetworkManager.service
+```
+
+![journalctl NetworkManager service][10]
+
+If you do not know the service name, you can use the below command to list the systemd services in your system.
+
+```
+systemctl list-units --type=service
+```
+
+#### How to view journal logs for a user, group
+
+If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” –
+
+```
+id -u debugpoint
+```
+
+Then use that ID with `_UID` switch to view the logs generated by the user.
+
+```
+journalctl _UID=1000 --since today
+```
+
+![journalctl _UID][11]
+
+Similarly use `_GID` switch to find out the same for user groups.
+
+#### How to view journal logs for an executable
+
+You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command.
+
+```
+journalctl /usr/bin/gnome-shell --since today
+```
+
+![journalctl gnome-shell][12]
+
+### Closing notes
+
+I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/systemd-journalctl/
+
+作者:[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://freedesktop.org/wiki/Software/systemd/
+[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg
+[13]: https://www.debugpoint.com/tag/mx-linux
diff --git a/sources/tech/20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md b/sources/tech/20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md
new file mode 100644
index 0000000000..7189e0dff7
--- /dev/null
+++ b/sources/tech/20221022.2 ⭐️ PaperDE is a Touch-Friendly Linux Desktop Environment.md
@@ -0,0 +1,92 @@
+[#]: subject: "PaperDE is a Touch-Friendly Linux Desktop Environment"
+[#]: via: "https://news.itsfoss.com/paperde/"
+[#]: author: "Sourav Rudra https://news.itsfoss.com/author/sourav/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+PaperDE is a Touch-Friendly Linux Desktop Environment
+======
+
+PaperDE is a simple, and touch-friendly desktop environment to look out for.
+
+![PaperDE is a Touch-Friendly Linux Desktop Environment][1]
+
+Seeing that many desktop environments exist, you may ask, why do we need another?
+
+Well, the answer is simple. It is good to have options.
+
+Having various user experiences enables you to experiment with different setups until you find the perfect one. If you are new to the Linux world, you may want to check out some of the best desktop environments available:
+
+So, what does PaperDE bring to the table?
+
+### PaperDE: A Minimal Desktop Environment
+
+![paperde desktop view][2]
+
+[PaperDE][3] aims to be a simple, lightweight desktop environment with a touchscreen-friendly user interface.
+
+Yes, it is not a wildly different idea. But, as per the official screenshots, it looks pretty.
+
+When closely examined, PaperDE looks similar to a mix of desktop environments such as [GNOME][4] and [Budgie][5].
+
+![paperde apps][6]
+
+It is being made from the ground up, with Qt/Wayland and [Wayfire][7] at its core, and features [PipeWire][8] as the default audio/video stack.
+
+Furthermore, the DE will feature a dock bar for easy access to pinned apps and support adding various widgets from the [C-Suite][9] apps to the main screen.
+
+![paperde widgets][10]
+
+When asked about its touchscreen and gesture support on Reddit, one of the developers ([rahmanshaber][11]) mentioned:
+
+> No, gestures doesn't work in real life, as you may use it in a tablet where it didn't came with linux installed. We used UI/ UX design approach that makes it easier to navigate the DE using finger and touch.
+
+### Can You Try PaperDE Now?
+
+The short answer is, yes.
+
+The long answer is, that it is still in the early stages of development.
+
+> 💡They recently released PaperDE 0.2.0 a few days back, you can check out their GitLab [project][12] to learn more.
+
+The developers say that it is only possible to test it out using Arch, and no Flatpak or Snap packages are available to install.
+
+I did try using the AUR package, but it failed to build on Arch Linux.
+
+The developers have said that PaperDE will also be made available in the [official repository][13] of Alpine Linux soon. But, for other packages, maintainers and contributors will have to help.
+
+If you are looking for an experiment to test, you can try it out.
+
+[PaperDE][12]
+
+_💬 Are you excited to see a new desktop environment in the works? Or do you think you do not need another project like this?_
+
+--------------------------------------------------------------------------------
+
+via: https://news.itsfoss.com/paperde/
+
+作者:[Sourav Rudra][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/sourav/
+[b]: https://github.com/lkxed
+[1]: https://news.itsfoss.com/content/images/size/w1200/2022/10/paper-de.png
+[2]: https://news.itsfoss.com/content/images/2022/10/PaperDE-1.png
+[3]: https://cubocore.org/paperde.html
+[4]: https://www.gnome.org/
+[5]: https://ubuntubudgie.org/
+[6]: https://news.itsfoss.com/content/images/2022/10/paperde-apps.png
+[7]: https://github.com/wayfirewm/wayfire
+[8]: https://pipewire.org/
+[9]: https://cubocore.org/coreapps.html
+[10]: https://news.itsfoss.com/content/images/2022/10/PaperDE-2.png
+[11]: https://gitlab.com/rahmanshaber
+[12]: https://gitlab.com/cubocore/paper/paperde
+[13]: https://pkgs.alpinelinux.org/packages
diff --git a/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md
new file mode 100644
index 0000000000..368c395c73
--- /dev/null
+++ b/sources/tech/20221024.0 ⭐️⭐️ Give your Terminal a Retro Look Using this Neat Application.md
@@ -0,0 +1,115 @@
+[#]: subject: "Give your Terminal a Retro Look Using this Neat Application"
+[#]: via: "https://www.debugpoint.com/cool-retro-terminal/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Give your Terminal a Retro Look Using this Neat Application
+======
+
+**Want to give your Terminal a retro look? This guide contains instructions to help you to install Cool Retro Terminal application in all Linux distributions.**
+
+![Cool Retro Terminal][1]
+
+Cool Retro Terminal
+
+Have you ever wondered how you can mimic the look of those old CRT monitors displayed in your Linux terminal?
+
+Those CRT screens have their own fan base. Like the Apple 2 or the IBM 3278 terminals – they are really cool looking if you compare them to today’s 4K monitor displays. I am not saying 4K is bad, but sometimes legacy displays remind us of those bygone days. Enough of these ramblings. Let’s get started installing the app.
+
+### Cool Retro Term
+
+The application is free and open-sourced. And it is called [cool-retro-term][2]. It is lightweight and has many customization options with pre-set profiles, such as Apple 2, etc. It also gives you those static noises and scan-lines effects in your terminal. Cool, isn’t it?
+
+It is built in Qt and requires Qt 5.2 and higher. If you are using the latest Linux distributions, you should be good in terms of dependencies.
+
+![Green Scanlines Theme][3]
+
+Green Scanlines Theme
+
+### How to Download and Install Cool Retro Terminal
+
+#### Ubuntu, Linux Mint and other Debian-based distributions
+
+The following simple command will install this application in your Ubuntu and other related distributions.
+
+```
+sudo apt install cool-retro-term
+```
+
+#### Arch Linux
+
+This package is available in Arch User Repository AUR. If you do not have AUR enabled, enable it using [this guide][4] and then use the following commands to install it.
+
+```
+pacman -S cool-retro-term
+```
+
+#### Fedora, RHEL and other related distributions
+
+For Fedora and other related Linux, use the following command to install this app.
+
+```
+sudo dnf install cool-retro-term
+```
+
+#### Appimage
+
+A self-contained executable as AppImage is also available, which you can just download and run. No installation is required. Follow the below commands to do that.
+
+```
+wget https://github.com/Swordfish90/cool-retro-term/releases/download/1.1.1/Cool-Retro-Term-1.1.1-x86_64.AppImage
+chmod a+x Cool-Retro-Term-1.1.1-x86_64.AppImage
+./Cool-Retro-Term-1.1.1-x86_64.AppImage
+```
+
+Note: Version 1.2.0 onwards there are no AppImage build in the GitHub.
+
+### Configurations
+
+After the installation is finished, you can find the terminal application “Cool Retro Term” in the application menu. So, launch the application and enjoy.
+
+Remember, this is not overriding your default console/terminal application in your Linux distributions. It is a stand-alone console application.
+
+The configuration options are available via the Right Click context menu.
+
+The context menu gives you the following pre-sets. You can then configure each of them for colour, and appearance settings via the settings window. For example, if you want more transparency, contrast or more noise, ambient light or flickering – all of them can be configured from the below settings window via several options.
+
+And easily you can make your own theme.
+
+![Pre-loaded Themes in Cool Retro Term][5]
+
+Pre-loaded Themes in Cool Retro Term
+
+![Various Effects in Settings][6]
+
+Various Effects in Settings
+
+### Summary
+
+Cool Retro Terminal is an old tube-style terminal for Linux desktops that allows you to experience it as if you are sitting in front of a retro terminal. You may or may not like it, and one hardly uses it for a daily driver. But still, a nice-looking terminal to experience from time to time to get away from the mundane terminal.
+
+Do you like the retro look? What is your favourite theme? Let me know in the comment section below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/cool-retro-terminal/
+
+作者:[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/12/cool-retro-terminal-1024x576.jpg
+[2]: https://github.com/Swordfish90/cool-retro-term
+[3]: https://www.debugpoint.com/wp-content/uploads/2021/12/Green-Scanlines-Theme-1024x594.jpg
+[4]: https://www.debugpoint.com/2021/01/install-yay-arch/
+[5]: https://www.debugpoint.com/wp-content/uploads/2021/12/Pre-loaded-Themes-in-Cool-Retro-Term-1024x599.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2021/12/Various-Effects-in-Settings.jpg
diff --git a/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md b/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md
new file mode 100644
index 0000000000..49e1537a11
--- /dev/null
+++ b/sources/tech/20221024.2 ⭐️ How to Clean Up Flatpak Apps to Clear Disk Space.md
@@ -0,0 +1,145 @@
+[#]: subject: "How to Clean Up Flatpak Apps to Clear Disk Space"
+[#]: via: "https://www.debugpoint.com/clean-up-flatpak/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Clean Up Flatpak Apps to Clear Disk Space
+======
+
+**Here’s how to clean up Flatpak apps to reclaim your precious disk space. Follow along. **
+
+Flatpak (like Snap) packages run in sandbox mode. By design, it takes a considerable amount of disk space for an individual application, even if it is a smaller one. For example, a simple Test editor or a basic image annotator application can take up more than 100+ MB of storage space.
+
+It’s how Flatpak or even Snap operates fundamentally. It pulls all dependencies for an app and runs independently. The advantage of this design is – you do not need to worry about dependencies or updates. All you need to do is install and run. On the contrary, it takes up a huge amount of disk space.
+
+And if you are running Ubuntu, elementary OS or any distribution for a longer period, you would be surprised that Flatpak keeps taking up more space over time.
+
+Hence, in this guide, we will give you some commands you can run yourself to clean up flatpak apps.
+
+### Clean Up Flatpak
+
+#### Where Flatpak packages are installed?
+
+When you install a Flatpak package, it gets installed in `/var/lib/flatpak`. All the installed files, metadata, application files, and runtime files are contained in this directory. Also, the user installation directory contains Flatpak data – that is – `~/.local/share/flatpak`
+
+#### How to find out the size of Flatpak apps?
+
+There are several commands and parameters of “flatpak” which you can combine to get the desired result to list the applications, size and type of installation. Here are some examples.
+
+- Verify the size of `/var/lib/flatpak`. But as it is being used by all Flatpak apps plus runtimes, you may not be able to recover entirely.
+
+```
+du -h /var/lib/flatpak
+```
+
+![Size of var-lib-flatpak][1]
+
+Size of var-lib-flatpak
+
+- If you have [Disk Usage Analyzer][2], you can verify by simply visiting the above directories.
+
+![Disk Analyzer Shows Flatpak size][3]
+
+Disk Analyzer Shows Flatpak size
+
+You can use any of the following commands to view the size of installed flatpak packages.
+
+- View all the installed flatpak with name and installed size.
+
+```
+flatpak --columns=name,size list
+```
+
+![flatpak list example 1][4]
+
+flatpak list example 1
+
+- List all installed flatpak with installation type, size and application ID.
+
+```
+flatpak --columns=app,name,size,installation list
+```
+
+![flatpak list example 2][5]
+
+flatpak list example 2
+
+- View only the flatpak installed by you.
+
+```
+flatpak --columns=name,size --user list
+```
+
+![flatpak list example 3][6]
+
+flatpak list example 3
+
+Remember, two types of flatpak may exist in your system. Some of them may be part of the OS itself. And some of them are installed by you.
+
+#### Commands to Clean up
+
+- Use the following command to uninstall flatpak packages that are not in use. This is a safe command which you can try.
+
+```
+flatpak uninstall --unused
+```
+
+![clean up flatpak using unused switch][7]
+
+clean up flatpak using unused switch
+
+Using the above command, I have freed up around 1GB+ in my test system.
+
+![var-lib-flatpak size is reduced][8]
+
+var-lib-flatpak size is reduced
+
+- If you want to uninstall a specific Flatpak package, use the following command. Change the application ID with the app name. You can find the app name in the above list size commands.
+
+```
+flatpak uninstall
+```
+
+- The following command removes all flatpak packages from your system. Try not to run it unless you are very sure what you are doing. This may break your system, depending on your configuration.
+
+```
+flatpak uninstall --all
+```
+
+Finally, there are some flatpak cache files in path `/var/tmp/flatpak-cache-*`. Although the size may not be significant. But you can still remove them.
+
+```
+sudo rm -rfv /var/tmp/flatpak-cache-*
+```
+
+For more details about flatpak commands, visit the [official guide][9]. And let me know, using the comment box below, whether this helped you to clean up some space.
+
+If you are looking to clean up Snap packages, the guide is available [here][10].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/clean-up-flatpak/
+
+作者:[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/Size-of-var-lib-flatpak.jpeg
+[2]: https://help.gnome.org/users/baobab/
+[3]: https://www.debugpoint.com/wp-content/uploads/2021/10/Disk-Analyzer-Shows-Flatpak-size-1024x392.jpeg
+[4]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-1.jpeg
+[5]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-2-1024x316.jpeg
+[6]: https://www.debugpoint.com/wp-content/uploads/2021/10/flatpak-list-example-3.jpeg
+[7]: https://www.debugpoint.com/wp-content/uploads/2021/10/clean-up-flatpak-using-unused-switch.jpeg
+[8]: https://www.debugpoint.com/wp-content/uploads/2021/10/var-lib-flatpak-size-is-reduced.jpeg
+[9]: http://flatpak list example 3
+[10]: https://www.debugpoint.com/2021/03/clean-up-snap/
diff --git a/sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md b/sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md
new file mode 100644
index 0000000000..8605a64907
--- /dev/null
+++ b/sources/tech/20221024.4 ⭐️⭐️⭐️ A PWA is the web browser.md
@@ -0,0 +1,145 @@
+[#]: subject: "A PWA is the web browser"
+[#]: via: "https://opensource.com/article/22/10/pwa-web-browser"
+[#]: author: "Alex Borsody https://opensource.com/users/alexborsody"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+A PWA is the web browser
+======
+
+While progressive web apps (PWAs) are still in their early stages of development, they have the potential to revolutionize the way we use the web.
+
+A progressive web app (PWA) is a web application that uses modern web technologies to deliver a user experience equal to any mobile app. An active open source community, in conjunction with tech leaders like Google and Microsoft, pushes the PWA agenda forward in an effort to "bridge the app gap."
+
+Basically, a PWA runs your app in a web browser. Because there's essentially a two-party system of the Play and App stores, the focus is on two browsers: Google Chrome and Apple Safari (built on top of the open source Chromium and WebKit, respectively).
+
+I won't be covering creating desktop apps. For more information on that topic, look into [Electron][1].
+
+PWAs are built the same way as any website or web app. They use the latest mobile technologies and implement UX best practices. PWAs can also hook the browser in with native code to improve the experience.
+
+If you type "What is a PWA" in your favorite search engine, you'll probably get a stock response similar to "PWAs are designed to be fast, reliable, and engaging, with the ability to work offline and be installed on a device's home screen." While this is partly true, it's just the tip of the iceberg for what a PWA has the potential to be and what it's evolving into, even as I write this article.
+
+### What is not a PWA
+
+The following are cross-platform app frameworks allowing you to develop from a single codebase. They do not use the browser as their platform.
+
+- Flutter
+- React Native
+
+Flutter uses a language called Dart, which compiles to iOS, Android, and web packages. React Native does the same but compiles JavaScript on the backend.
+
+### What is a PWA by definition?
+
+A PWA, by its original definition, must meet these three requirements:
+
+- **Service worker:** Provides offline functionality.
+- **Web manifest:** JSON markup to configure home screen and app icons.
+- **Security:** HTTPS is enforced, because a service worker runs in the background.
+
+These components allow you to pass the [Google Lighthouse PWA audit][2] and get the green checkmark on your score.
+
+![Google Lighthouse score, including performance, accessibility, best practices, SEO, and PWA][3]
+
+Once you satisfy these requirements, Chrome's "add to home screen" prompt is also automatically enabled.
+
+PWA Builder (a free service provided by Microsoft) has an excellent UI for building a PWA and visualizing base requirements. See the following example based on developers.google.com. You can demo this functionality [here][4] provided by the [PWA module][5] I discussed in [my previous article][6].
+
+![Google Developer's interface displaying Service Workers][7]
+
+![Google Developer's interface displaying Manifest][8]
+
+The base requirements of a PWA allow offline behavior through the service worker, and the `manifest.json` file allows "add to home screen" behavior on Android, where your website gets added as an icon to the home screen and opens with no-browser Chrome (in fullscreen) with an app splash page. These are the minimum requirements for a PWA and, aside from providing a performance increase due to the offline caching, mainly give the illusion the website is an app. It's a psychological gap at its core where the end user will stop thinking of the browser as merely "websites" and instead look at it for what it actually is… an app platform. Google seemed to make this a priority to pave the way for developing the endless number of features, functionality, and UX/UI enhancements that actually provide an enhanced "app-like experience."
+
+A PWA is really a collection of browser technologies and web development techniques and technologies that make a website more "app-like." I have broken these down into the following categories.
+
+#### Enhanced app-like experience
+
+- HTML/CSS/Javascript
+
+- Improved UX/UI experience on a mobile device
+- Native device access and enhanced web capabilities
+- Speed and performance
+
+#### What a PWA can be today beyond the definition
+
+Here are more details on the three experience descriptions above.
+
+**UX/UI improvements**
+
+UX/UI and visual problem-solving are critical to making your website feel like an app. This often manifests as attention to details such as animations, input/font sizes, scrolling issues, or other CSS bugs. It's important that there is a strong frontend development team so they can create this UX. Within the category of design and UX are the enhancements we can implement with the building blocks of a web document (HTML/JSS/JS). Two examples of this are:
+
+- [**Hotwire Turbo**][9]: An open source framework using HTML over the wire to reload only the areas of your page that change using AJAX or WebSockets. This offers the performance improvements that SPAs strive for using only limited JavaScript. This approach is perfect for your monolithic application or template-rendering system; no need to invest in the added complexity of decoupling your front and back end.
+- **Mobile-specific SPA frameworks:** There are several decoupled frameworks out there that can give your website an app-like user experience. Onsen UI and Framework 7 are two excellent options that help you create a fast, responsive user interface for your website. However, you do not need to rely on these frameworks. As discussed above, a good frontend team can build the UI you strive for by implementing the latest app-like mobile design techniques.
+
+[This slide][10] goes into more detail about staying current with HTML/CSS/JS in your PWA.
+
+**Web capabilities**
+
+The Chromium team is constantly improving the browser experience. You can track this progress in [Project Fugu][11], the overarching web capabilities project. WebKit also continually strives to improve its browser experience and capabilities.
+
+The Swift API can also interact with the WKWebView to enhance the native experience.
+
+Google has a service called Bubblewrap, which works with Trusted Web Activity (TWA). All this does is wrap your PWA-enabled website in a native APK bundle so you can submit it to the app store. This is how the PWA builder link mentioned above works for Android. You can learn all about WKWebView and TWA in my previous article.
+
+**Speed and performance**
+
+There are countless ways to improve your app's performance. Check out the [Google PageSpeed tools][12] to start.
+
+#### Benefits of using a PWA include the following:
+
+- Increased Lighthouse score and SEO.
+- A single codebase.
+- Frictionless testing.
+- Instant feedback loop for development cycles.
+- Use of managed PaaS web deployment workflows.
+- Web technologies are a skill set for a wide array of developers.
+- The only cross-platform development solution that delivers a full-fledged web experience.
+- Unlimited options to customize a design without relying on a cross-platform framework's limited UI components.
+- Reach users with limited (or no) internet connection.
+
+There are some drawbacks/caveats to using a PWA, including:
+
+- **Limited functionality**: There is still an "app gap" with PWAs compared to native device access. However, browsers have been making great progress toward closing this. Learn more about Project Fugu's take on bridging the app gap from [Thomas Steiner][13], and visit [What web can do][14] to see your browser's capabilities. When choosing your technology, there is a good chance your PWA project will be in the majority of apps that do not experience restrictions regarding capability/functionality.
+- **Lack of standardization**: Thomas Steiner's interview above discusses a "PWA standard," which is currently lacking. In my opinion, it is the reason for much of the confusion around the topic and developers' difficulty getting past that first "aha moment." This confusion has led to slower momentum in technology than there should be. Also, because of this lack of clarity, marketing or management may not even know to ask for a PWA because they don't understand what it is.
+- **iOS App Store**: App stores don't currently list PWAs, so they're harder to find than native apps. There are ways to do this. However, the key is to make your web app as good or a better experience than native. Do it right, and the Apple gods will smile upon you because the most important thing in reviews seems to be that you deliver a good mobile experience. Ionic, a framework utilizing WKWebView in native iOS apps before PWA was even a term, has some interesting insight [in their forums][15]. If you know what you are doing, this won't be a problem. You can see the "get your web app in the app stores" section of [my previous Opensource.com article][6] for more info.
+- **Potential security issues in certain cases**: The browser uses cookies as authentication. A tried and true browser method to maintain state since its inception, this may not fit your project's needs. The browser has excellent password management and is constantly evolving and implementing other authentication methods, such as [Webauthn][16]. The use of [associated domains][17] provides another layer of security.
+
+I believe that compared to the alternatives, "the web is winning," and future progress will minimize these drawbacks as the web offers new capabilities. I don't think native development will disappear, but there will be more seamless integrations between WebView and native code.
+
+### Wrap up
+
+While PWAs are still in their early stages of development, they have the potential to revolutionize the way we use the web. Every day I see a new website pushing the limits of what a PWA can be. Whether the management knows they are building a PWA or not, I often come across web apps and dev teams that surprise me with how they expand the use of web technologies or pass on a native app in lieu of a well-optimized mobile website.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/pwa-web-browser
+
+作者:[Alex Borsody][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/alexborsody
+[b]: https://github.com/lkxed
+[1]: https://www.electronjs.org/
+[2]: https://web.dev/lighthouse-pwa/
+[3]: https://opensource.com/sites/default/files/2022-10/GoogleLighthouseScore.jpg
+[4]: https://ctrl.carbonpay.io/user/login
+[5]: https://www.drupal.org/project/pwa
+[6]: https://opensource.com/article/22/6/drupal-pwa
+[7]: https://opensource.com/sites/default/files/2022-10/GoogleServiceWorkers.jpg
+[8]: https://opensource.com/sites/default/files/2022-10/GoogleManifest.jpg
+[9]: https://hotwired.dev/
+[10]: https://docs.google.com/presentation/d/1D7-H7om4Ul6nFeIX2x1oSpKCvC7LRUP3uh0r7jM3IVs/edit#slide=id.g126166aeb51_2_271
+[11]: https://developer.chrome.com/blog/fugu-status/
+[12]: https://developers.google.com/speed
+[13]: https://devm.io/javascript/project-fugu-interview-steiner-168988
+[14]: https://whatwebcando.today/
+[15]: https://forum.ionicframework.com/search?q=minimum%20functionality
+[16]: https://webauthn.io/
+[17]: https://developer.apple.com/documentation/xcode/supporting-associated-domains
diff --git a/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md b/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md
new file mode 100644
index 0000000000..26fdd9970f
--- /dev/null
+++ b/sources/tech/20221026.1 ⭐️⭐️ Tips for using the Linux test command.md
@@ -0,0 +1,170 @@
+[#]: subject: "Tips for using the Linux test command"
+[#]: via: "https://opensource.com/article/22/10/test-command-linux"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Tips for using the Linux test command
+======
+
+The [ and test commands are vital conditional statements when scripting.
+
+The `[` command, often called a "test," is a command from the GNU Core Utils package, and initiates a conditional statement in Bash. Its function is exactly the same as the `test` command. When you want to execute a command only when something is either true or false, use the `[` or the `test` command. However, there's a significant difference between `[` or `test` and `[[`, and there's a technical difference between those commands and your shell's versions of them.
+
+### [ vs test commands in Linux
+
+The `[` and the `test` commands, installed by the GNU Core Utils package, perform the same function using a slightly different syntax. (You might find it difficult to search for documentation using the single left-square bracket character, however, so many users find `test` easier to reference.) Bash and similar shells happen to also have the `[` and the `test` commands built-in, and the built-in versions supersede the ones installed in `/usr/bin`. In other words, when you use `[` or `test`, you're probably not executing `/usr/bin/[` or `/usr/bin/test`. Instead, you're invoking what's essentially a function of your Bash shell.
+
+You might wonder why `[` or `test` exist in `/usr/bin` at all. Some shells, such as [tcsh][1], don't have `[` and `test` built-in, so if you want to use those commands in that shell, you must have them installed as separate binaries.
+
+The bottom line is that as long as you don't get an error when you type a command starting with `[` or `test`, then you've got everything you need. It almost never matters whether your shell or your `bin` directory is providing the commands.
+
+### Testing for a file
+
+It's common to want to know whether a file exists, often so you can confidently proceed with some action, or so you can avoid "clobbering" it with a file of the same name. In an interactive shell session, you can just look to see whether the file exists but in a shell script, you need the computer to determine that for itself. The `-e` option tests whether a file exists, but its apparent response is the same either way.
+
+```
+$ touch example
+$ test-e example
+$ test-e notafile
+$
+```
+
+The `[` and `test` commands are essentially switches. They emit a `true` or `false` response, but considers both of them as success. You can put this to use by pairing the commands with logical operators, such as `&&` and `||`. The `&&` operator is executed when a response is `true`:
+
+```
+$ touch example
+$ test-e example &&echo"foo"
+foo
+$ test-e notafile &&echo"foo"
+$
+```
+
+The `||` operator executes when a response is `false`:
+
+```
+$ touch example
+$ test-e example ||echo"foo"
+$ test-e notafile ||echo"foo"
+foo
+$
+```
+
+If you prefer, you can use square brackets instead of `test`. In all cases, the results are the same:
+
+```
+$ touch example
+$ [-e example ] && echo "foo"
+foo
+$ [-e notafile ] && echo "foo"
+$
+```
+
+### Testing for file types
+
+Everything in Linux is a file, so when you can test for the existence of a directory with the `-e` option, the same way you test for a file. However, there are different kinds of files, and sometimes that matters. You can use `[` or `test` to detect a variety of different file types:
+
+- `-f`: regular file (returns `false` for a directory)
+- `-d`: directory
+- `-b`: block (such as `/dev/sda1`)
+- `-L` or `-h`: symlink
+- `-S`: socket
+
+There are more, but those tend to be the most common.
+
+### Testing for file attributes
+
+You can also look at metadata of a file:
+
+- `-s`: a file with the size greater than zero
+- `-N`: a file that's been modified since it was last read
+
+You can test by ownership:
+
+- `-O`: a file owned by the current primary user
+- `-G`: a file owned by the current primary group
+
+Or you can test by permissions (or file mode):
+
+- `-r`: a file with read permission granted
+- `-w`: a file with write permission granted
+- `-x`: a file with execute permission granted
+- `-k`: a file with the sticky bit set
+
+### Combining tests
+
+You don't always just have to test for a single attribute. The `-a` option ("and") allows you to string several tests together, with the requirement that all tests return as `true`:
+
+```
+$ touch zombie apocalypse now
+$ test-e zombie -a-e apocalypse -a-e now &&echo"no thanks"
+no thanks
+```
+
+If any expression fails, then the test returns `false`:
+
+```
+$ touch zombie apocalypse now
+$ test-e plant -a-e apocalypse -a-e now &&echo"no thanks"
+$
+```
+
+The `-o` option ("or") requires that one expression is true:
+
+```
+$ touch zombie apocalypse now
+$ test-e zombie -o-e plant -o-e apocalypse &&echo"no thanks"
+no thanks
+```
+
+### Integer tests
+
+You can also test integers. That's not necessarily directly useful (you probably inherently know that 0 is less than 1, for instance) but it's invaluable when you're using variables in a script.
+
+The operators are fairly intuitive once you understand the schema:
+
+- `-eq`: equal to
+- `-ne`: not equal
+- `-ge`: greater than or equal to
+- `-gt`: greater than
+- `-le`: less than or equal to
+- `-lt`: less than
+
+Here's a simple example:
+
+```
+$ nil=0
+$ foo=1
+$ test$foo-eq$nil||echo"Those are not equal."
+Those are not equal.
+$ test$foo-eq1&&echo"Those are equal."
+```
+
+Of course, you can combine tests.
+
+```
+$ touch example
+$ test$foo-ne$nil-a-e example -o-e notafile &&echo"yes"yes
+```
+
+### Testing testing
+
+The `[` and `test` commands are vital conditional statements when scripting. These are easy and common ways to control the flow of your code. There are yet more tests available than what I've covered in this article, so whether you used Bash, tcsh, ksh, or some other shell entirely, take a look at the man page to get the full spectrum of what these commands offer.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/test-command-linux
+
+作者:[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/article/20/8/tcsh
diff --git a/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md b/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md
new file mode 100644
index 0000000000..49583bfc3a
--- /dev/null
+++ b/sources/tech/20221026.2 ⭐️ How To Monitor File Changes Using fswatch In Linux.md
@@ -0,0 +1,250 @@
+[#]: subject: "How To Monitor File Changes Using fswatch In Linux"
+[#]: via: "https://ostechnix.com/monitor-file-changes-using-fswatch-linux/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How To Monitor File Changes Using fswatch In Linux
+======
+
+**Fswatch** is a free, open source multi-platform file change monitor utility that notifies us when the contents of the specified files or directories are modified or changed. Using fswatch, we can easily monitor the changes being made in files and/or directories. It supports all operating systems, including GNU/Linux, *BSDs, Mac OS X, Solaris, and Microsoft Windows etc. In this brief guide, let me show you how to **monitor file changes using fswatch** in Linux and Unix-like operating systems.
+
+### Types of monitoring
+
+Fswatch implements the following types of monitors.
+
+- A monitor based on the File System Events API of Apple OS X.
+- A monitor based on kqueue, a notification interface introduced in FreeBSD 4.1.
+- A monitor based on the File Events Notification API of the Solaris kernel and its derivatives.
+- A monitor based on inotify, a Linux kernel subsystem that reports file system changes to applications.
+- A monitor based on ReadDirectoryChangesW, a Microsoft Windows API that reports changes to a directory.
+- A monitor which periodically stats the file system, saves file modification times in memory, and manually calculates file system changes.
+
+### Features
+
+Concerning about the features of fswatch, we can list the following:
+
+- Cross-platform and open source utility.
+- Support for many OS-specific APIs.
+- Recursive directory monitoring.
+- Path filtering using including and excluding regular expressions.
+- Customizable record format.
+- Support for periodic idle events.
+- And many.
+
+### Install fswatch in Linux
+
+The fswatch utility is available in the default repositories of popular Linux distributions.
+
+To install fswatch in Debian, Ubuntu, Linux Mint, Pop OS, and other APT-based systems, run:
+
+```
+$ sudo apt install fswatch
+```
+
+To install fswatch in Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux, **enable [EPEL] repository** using command:
+
+```
+$ sudo dnf install epel-release
+```
+
+And then install install fswatch using command:
+
+```
+$ sudo dnf install fswatch
+```
+
+To install fswatch in openSUSE, run:
+
+```
+$ sudo zypper install fswatch
+```
+
+#### Install fswatch from source
+
+If fswatch is not available for your distribution, you can manually compile and install the latest version from the source as described below.
+
+Before compiling, you need to **install Development tools** in your Linux distribution. To install Development tools on various Linux distributions, refer the following guide.
+
+- [**How To Install Development Tools In Linux**][1]
+
+Then, download the fswatch source file [**from here**][2].
+
+```
+$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.17.1/fswatch-1.17.1.tar.gz
+```
+
+Extract the downloaded tarball:
+
+```
+$ tar -zxvf fswatch-1.17.1.tar.gz
+```
+
+Go to the project's folder:
+
+```
+$ cd fswatch-1.17.1/
+```
+
+Finally, compile and install fswatch by running the following commands one by one.
+
+```
+$ ./configure
+```
+
+```
+$ make
+```
+
+```
+$ sudo make install
+```
+
+Finally, run the following command to refresh the links and cache to the dynamic libraries:
+
+```
+$ sudo ldconfig
+```
+
+If you don't run the above command, you might get the following error in GNU/Linux systems.
+
+```
+fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory
+```
+
+Finally, check the fswatch version to make sure if it is installed correctly:
+
+```
+$ **fswatch --version**
+fswatch 1.17.1
+Copyright (C) 2013-2021 Enrico M. Crisostomo .
+License GPLv3+: GNU GPL version 3 or later .
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
+
+Written by Enrico M. Crisostomo.
+```
+
+### Install fswatch in FreeBSD
+
+On FreeBSD, fswatch can be installed using `pkg` as `root`:
+
+```
+# pkg install fswatch-mon
+```
+
+### Monitor file changes using fswatch in Linux
+
+Usage of fswatch is no big deal. The typical syntax of fswatch is:
+
+```
+$ fswatch [options] ... path-0 ... path-n
+```
+
+To test how fswatch works, open two Terminal windows (Let us call them **Terminal 1** and **Terminal 2**).
+
+In Terminal 1, run the fswatch command to monitor the **`$HOME`** directory.
+
+```
+$ fswatch /home/ostechnix/
+```
+
+And, in the Terminal 2 do some operations such as creating files/folders, deleting files, and modifying files etc.
+
+Whatever you do in the terminal 2 will be notified on the Terminal 1. Have a look at the following screenshots.
+
+**Terminal 1** - fswatch command is running and the file changes are being monitored:
+
+![Monitor File Changes Using fswatch][3]
+
+Monitor File Changes Using fswatch
+
+**Terminal 2** - Do some random changes in files/folders:
+
+![Do random changes in files or folders][4]
+
+Do random changes in files or folders
+
+By default, fswatch will choose the best monitor available on the current platform, in terms of performance and resource consumption. In Linux, **the default monitor is inotify**.
+
+By default, fswatch will keep monitoring the file changes until you manually stop it by invoking **`CTRL+C`** keys.
+
+### List monitors
+
+To list the available monitors in the current platform (i.e Linux in our case), run:
+
+```
+$ fswatch -M
+```
+
+Or,
+
+```
+$ fswatch --list-monitors
+```
+
+**Sample output:**
+
+```
+inotify_monitor
+poll_monitor
+```
+
+### Monitor specific file or folder
+
+To monitor a specific file or directory with a particular monitor option, run:
+
+```
+$ swatch -m kqueue_monitor /home/ostechnix/
+```
+
+You can also exit fswatch after the first set of events is received by specifying the option **`-1`** as shown in the following command:
+
+```
+$ fswatch -1 /home/ostechnix/
+```
+
+This command will exit just after the first set of events is received.
+
+fswatch will monitor changes in all files/folders in the specified path. If you want to watch the changes made in the directories only, use **`-d`** option.
+
+```
+$ fswatch -d /home/ostechnix/
+```
+
+Of course, there are more options. Refer the man pages or the [**project's documentation page**][5] for detailed instructions.
+
+```
+$ man fswatch
+```
+
+**Resource:**
+
+- [**fswatch GitHub Repository**][6]
+
+Featured Image by [Pete Linforth][7] from [Pixabay][8].
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/monitor-file-changes-using-fswatch-linux/
+
+作者:[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-development-tools-linux/
+[2]: https://github.com/emcrisostomo/fswatch/releases
+[3]: https://ostechnix.com/wp-content/uploads/2022/10/Monitor-File-Changes-Using-fswatch.png
+[4]: https://ostechnix.com/wp-content/uploads/2022/10/Do-random-changes-in-files-or-folders.png
+[5]: https://emcrisostomo.github.io/fswatch/doc/
+[6]: https://github.com/emcrisostomo/fswatch
+[7]: https://pixabay.com/users/thedigitalartist-202249/?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230
+[8]: https://pixabay.com//?utm_source=link-attribution&utm_medium=referral&utm_campaign=image&utm_content=3376230
diff --git a/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md b/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md
new file mode 100644
index 0000000000..7c3ed35f1f
--- /dev/null
+++ b/sources/tech/20221026.3 ⭐️⭐️ Ubuntu Unity 22.10 Review A Promising “Official” Start.md
@@ -0,0 +1,130 @@
+[#]: subject: "Ubuntu Unity 22.10 Review: A Promising “Official” Start"
+[#]: via: "https://www.debugpoint.com/ubuntu-unity-22-10-review/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Ubuntu Unity 22.10 Review: A Promising “Official” Start
+======
+
+**We review Ubuntu Unity 22.10, which becomes an official Ubuntu flavour from this release onwards.**
+
+For the fans of Unity desktop, it’s a piece of good news. Ubuntu Unity 22.10 Kinetic Kudu became the official Ubuntu flavour featuring Unity desktop after Canonical officially abandoned it on April 2018. You can now enjoy the officially supported Unity desktop with an Ubuntu base.
+
+That means you get the usual security and package updates following the Ubuntu release schedule.
+
+I did a hands-on on the official Ubuntu Unity desktop, and here’s what I found.
+
+![Ubuntu Unity 22.01 Login Screen][1]
+
+Ubuntu Unity 22.01 Login Screen
+
+### Ubuntu Unity 22.10 Review
+
+At its core, Ubuntu Unity 22.10 features Linux Kernel 5.19, and the core modules are aligned with Ubuntu 22.10. The desktop version is Unity 7, which is the current stable version.
+
+However, its successor UnityX is still under development for more than a year, so hopefully, you will get a more advanced Unity desktop in the future.
+
+#### First look and themes
+
+At first glance, you should notice the purple-based Ubuntu Unity with the Kinetic Kudu mascot. The left bar is static and includes only the essential items (LibreOffice & Settings). The shortcut to global search is at the top of the sidebar. The top bar contains the power menu, network, calendar and time widgets. And the Trash shortcut is at the bottom of the left bar.
+
+![Unity Global Search][2]
+
+Unity Global Search
+
+The default theme is Yaru dark with a purple-based colour combination. Which I believe doesn’t look good with orange borders in several controls (text box, etc.). In addition, the Yaru and Yaru dark both are strict light and dark themes. That means you can’t have a mix of a light theme with a dark title bar.
+
+However, the team also includes the good ol’ Ambiance and Radiance themes which you can easily apply with the Unity Tweak Tool (requires installation) – this would give you the good ol’ Ubuntu feel.
+
+![Yaru Dark Theme in Ubuntu Unity 22.10][3]
+
+Yaru Dark Theme in Ubuntu Unity 22.10
+
+![Ambiance theme brings back the old days][4]
+
+Ambiance theme brings back the old days
+
+The main attraction of Unity is two significant items. The global search via HUD and the global menu at the top bar. In this release, you get both of them. This is an ideal desktop for those who want clean app windows and more screen space.
+
+![Unity Global search inside app options][5]
+
+Unity Global search inside app options: one of the best features of Unity
+
+Furthermore, a new feature adds a tweak at the top bar where you can switch the themes without launching the Unity Tweak tool. However, this option is only visible for the Yaru theme for some strange reason.
+
+![New option to switch accent color and theme][6]
+
+New option to switch accent colour and theme
+
+#### Applications
+
+If you are new to Ubuntu Unity, you should know that this distro doesn’t have any native apps of its own. It ships basic apps, which most users need.
+
+However, there is a change in the 22.10 version. Earlier (when it was unofficial), Ubuntu Unity was shipping some GNOME Apps as default. Since the implementation of libadwaita and moving to GTK4, the team now replaced most of them with the native-MATE applications. For example, the Pluma text editor from MATE is now part of Unity.
+
+Other than that, Firefox Snap and Thunderbird [email client][7] is added as default, also LibreOffice suite.
+
+Thanks to the above apps, the ISO size is less than 3 GB, and performance is way faster.
+
+### Performance
+
+Overall, Ubuntu Unity 22.10 performance is speedy. Both in idle and heavy workload state. There are no fancy animations other than the places where it is needed. The HUD search is fast, and you can launch apps right away.
+
+In addition, window operations such as minimize, maximize, and drag feel snappy. There is no lag whatsoever. At idle, it uses 1GB of memory. In a heavy workload state, it increases up to 2.2GB, based on how many apps you are running.
+
+![Ubuntu Unity performance at idle state][8]
+
+Ubuntu Unity performance at idle state
+
+Ubuntu Unity is really outperforming vanilla Ubuntu. It feels faster than vanilla GNOME with Ubuntu. It might be one of the contenders for lightweight Linux distros in the coming days.
+
+However, the default installation takes 12 GB of disk space – which I believe is a little higher than other distros in the same category.
+
+### Summary
+
+- Linux Kernel 5.19 with Ubuntu 22.10 base
+- Firefox 106 web browser (Snap)
+- Flatpak is not installed by default
+- Unity 7 desktop
+- Nemo file manager
+- Pluma text editor (1.26)
+- LibreOffice 7.4
+- Thunderbird 102.
+- Only available as X.Org (not yet ready for Wayland)
+
+### Wrapping Up
+
+Ubuntu Unity 22.10, being official, is a promising start for the Unity desktop to become more mature. From the development viewpoint, a colossal amount of work awaits to make it to UnityX (the next version of 7). Also, it only supports X.Org and no Wayland at the moment. Wayland might be a deal breaker for some users to adopt this as a daily driver for performance-centric workloads.
+
+That being said, Ubuntu Unity 22.10 is perfect for the average user for everyday work and perfect for smaller display form factors. If you like the Unity design, HUD search, global menu, and left action buttons – then it’s for you.
+
+Give it a try.
+
+You can download Ubuntu Unity 22.10 on the [official website][9].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/ubuntu-unity-22-10-review/
+
+作者:[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/2022/10/Ubuntu-Unity-22.01-Login-Screen-1024x638.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/10/Unity-Global-Search.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/10/Yaru-Dark-Theme-in-Ubuntu-Unity-22.10.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/10/Ambiance-theme-brings-back-the-old-days.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/10/Unity-Global-search-inside-app-options.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/10/New-option-to-switch-accent-color-and-theme.jpg
+[7]: https://www.debugpoint.com/best-email-client-linux-windows/
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/10/Ubuntu-Unity-performance-at-idle-state.jpg
+[9]: https://cdimage.ubuntu.com/ubuntu-unity/releases/kinetic/release
diff --git a/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md b/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md
new file mode 100644
index 0000000000..9466a33ab1
--- /dev/null
+++ b/sources/tech/20221027.1 ⭐️⭐️ Trick Lua into becoming an object-oriented language.md
@@ -0,0 +1,150 @@
+[#]: subject: "Trick Lua into becoming an object-oriented language"
+[#]: via: "https://opensource.com/article/22/10/object-oriented-lua"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Trick Lua into becoming an object-oriented language
+======
+
+Lua isn't an object-oriented programming language. Here's a hack to use a Lua table as a stand-in for an object-oriented class.
+
+Lua isn't an object-oriented programming language, but a scripting language utilizing C functions and a C-like syntax. However, there's a cool hack you can use within Lua code to make Lua act like an object-oriented language when you need it to be. The key is in the Lua table construct, and this article demonstrates how to use a Lua table as a stand-in for an object-oriented class.
+
+### What is object-oriented programming?
+
+The term "object-oriented" is a fancy way of describing, essentially, a templating system. Imagine you're programming an application to help users spot and log zombies during a zombie apocalypse. You're using an object-oriented language like C++, [Java][1], or [Python][2]. You need to create code objects that represent different types of zombies so the user can drag them around and arrange them on a map of the city. Of course a zombie can be any number of things: dormant, slow, fast, hungry, ravenous, and so on. That's just textual data, which computers are good at tracking, and based on that data you could even assign the virtual "object" a graphic so your user can identify which general type of zombie each widget represents.
+
+You have a few options for how you can resolve this requirement for your application:
+
+- Force your users to learn how to code so they can program their own zombies into your application
+- Spend the rest of your life programming every possible type of zombie into your application
+- Use a code template to define the attributes of a zombie object, allowing your users to create just the items they need, based on what zombie they've actually spotted
+
+Obviously, the only realistic option is the final one, and it's done with a programming construct called a class. Here's what a class might look like (this example happens to be Java code, but the concept is the same across all object-oriented languages):
+
+```
+publicclass Zombie {
+int height;
+int weight;
+[String][3] speed;
+[String][3] location;
+}
+```
+
+Whether or not you understand the code, you can probably tell that this is essentially a template. It's declaring that when a virtual "object" is created to represent a zombie, the programming language assigns that object four attributes (two integers representing height and weight, and two words representing the movement speed and physical location). When the user clicks the (imaginary) **Add item** button in the (imaginary) application, this class is used as a template (in programming, they say "a new instance" of the class has been created) to assign values entered by the user. Infinite zombies for the price of just one class. That's one of the powers of object-oriented programming.
+
+### Lua tables
+
+In Lua, the table is a data type that implements an associative array. You can think of a table in Lua as a database. It's a store of indexed information that you can recall by using a special syntax. Here's a very simple example:
+
+```
+example = {}
+
+example.greeting = "hello"
+example.space = " "
+example.subject = "world"
+
+print(example.greeting ..
+ example.space ..
+ example.subject)
+```
+
+Run the example code to see the results:
+
+```
+$ lua ./example.lua
+hello world
+```
+
+As you can tell from the sample code, a table is essentially a bunch of keys and values kept within a single collection (a "table").
+
+### Lua metatable
+
+A metatable is a table that serves as a template for a table. You can designate any table as a metatable, and then treat it much as you would a class in any other language.
+
+Here's a metatable to define a zombie:
+
+```
+Zombie = {}
+
+function Zombie.init(h,w,s,l)
+ local self = setmetatable({}, Zombie)
+ self.height = h
+ self.weight = w
+ self.speed = s
+ self.location = l
+ return self
+end
+
+-- use the metatable
+
+function setup()
+ z1 = Zombie.init(176,50,'slow','Forbes & Murray Avenue')
+end
+
+function run()
+ print(z1.location .. ": " ..
+ z1.height .. " cm, " .. z1.weight .. " kg, " .. z1.speed)
+end
+
+setup()
+run()
+```
+
+To differentiate my metatable from a normal table, I capitalize the first letter of its name. That's not required, but I find it a useful convention.
+
+Here's the results of the sample code:
+
+```
+$ lua ./zombie.lua
+Forbes & Murray Avenue: 176 cm, 50 kg, slow
+```
+
+This demonstration doesn't entirely do metatables justice, because the sample code creates just a single object with no interaction from the user. To use a metatable to satisfy the issue of creating infinite items from just one metatable, you would instead code a user input function (using Lua's `io.read()` function) asking the user to provide the details of the zombie they spotted. You'd probably even code a user interface with a "New sighting" button, or something like that. That's beyond the scope of this article, though, and would only complicate the example code.
+
+### Creating a metatable
+
+The important thing to remember is that to create a metatable, you use this syntax:
+
+```
+Example = {}
+
+function Example.init(args)
+ local self = setmetatable({}, Example)
+ self.key = value
+ return self
+end
+```
+
+### Using a metatable
+
+To use a metatable once it's been created, use this syntax:
+
+```
+my_instance = Example.init("required args")
+```
+
+### Object-oriented Lua
+
+Lua isn't object-oriented, but its table mechanism makes handling and tracking and sorting data as simple as it possibly can be. It's no exaggeration to say that once you're comfortable with tables in Lua, you can be confident that you know at least half of the language. You can use tables (and, by extension, metatables) as arrays, maps, convenient variable organization, close-enough classes, and more.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/object-oriented-lua
+
+作者:[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/article/21/3/java-object-orientation
+[2]: https://opensource.com/article/19/7/get-modular-python-classes
+[3]: http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string
diff --git a/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md b/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md
new file mode 100644
index 0000000000..98c4337ab5
--- /dev/null
+++ b/sources/tech/20221027.11 ⭐️ Customize GNOME Desktop in Ubuntu with a Clean Look.md
@@ -0,0 +1,173 @@
+[#]: subject: "Customize GNOME Desktop in Ubuntu with a Clean Look"
+[#]: via: "https://www.debugpoint.com/customize-gnome-clean-look-2022-1/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Customize GNOME Desktop in Ubuntu with a Clean Look
+======
+
+**This tutorial gives you some easy steps to customize GNOME Desktop with a clean look with minimal effort. Here’s how.**
+
+If you are bored with the usual look of your favourite GNOME Desktop, then you are on the right page. Let’s install some themes icons and do some tweaks to uplift your desktop. We will transform this below desktop (GNOME 40.5 with Ubuntu 21.10).
+
+![Ubuntu Desktop with GNOME - Before Customization][1]
+
+Ubuntu Desktop with GNOME – Before Customization
+
+This customization session will use the great-looking Colloid GTK theme, Mkos-Big-Sur icons, a cool cursor theme with additional extensions, and Conky.
+
+### Customize GNOME Desktop and uplift it with a Clean Look
+
+#### Installation
+
+- First, setup the GNOME Shell Extenstion by running the following command from the terminal.
+
+```
+sudo apt install chrome-gnome-shell
+```
+
+- Then[open this page][2] and add the plugin to your browser (Chrome/Firefox) for GNOME Extension.
+
+![Add Browser Add-on for GNOME Shell Extension][3]
+
+Add Browser Add-on for GNOME Shell Extension
+
+- Install the Extensions Flatpak application which you may need to change settings of GNOME Extensions.
+
+[Install Extensions App][4]
+
+- After that, install GNOME Tweaks tool using the following command from the terminal. We will use this utility to change the Themes and other settings.
+
+```
+sudo apt install gnome-tweaks
+```
+
+- Download the Colloid GTK Theme from the below link. After download extract the files. Then copy the extracted folder to ~/.themes in your home directory. If the folder doesn’t exists, create it. After you done this, open a terminal and run the `install.sh` file.
+
+[Download Colloid GTK Theme][5]
+
+- Download the Mkos-Big-Sur icon theme from the below link. Once it is downloaded, extract the files and copy the parent folder to ~/.icons in your home directory.
+
+[Download Icon theme][6]
+
+- Download the below cursor theme and follow the same steps as above. Copy the extracted folder to the ~/.icons directory. Then open a terminal and run the `install.sh` file.
+
+[Download Cursor Theme][7]
+
+Now, it’s time to install Conky and some extensions that would eventually give your GNOME Desktop a clean look. To install Conky and a Conky manager, open the terminal prompt and run the below commands.
+
+```
+sudo apt install conky
+```
+
+```
+sudo add-apt-repository ppa:tomtomtom/conky-managersudo apt update && sudo apt install conky-manager2
+```
+
+Now, open each of the below links for the extensions and install them in sequence. To install, open the page and click on the ON/OFF toggle switch (see below image). It would ask for your admin password and permission to install.
+
+- [Move Clock][8]
+- [Dash to Dock][9]
+- [Tray Icons][10]
+- [Arc Menu][11]
+- [User Themes][12]
+
+![GNOME Extension - Page][13]
+
+GNOME Extension – Page
+
+#### Configurations
+
+After completing the above steps, it’s time to do some basic configurations. You may see some of the changes when you installed the GNOME Extensions above. For example, the clock should already be shifted to the right side when installing the Move Clock extension above.
+
+**Tweaks**
+
+- Open the Tweaks tool (search from the application menu) and go to Apperance.
+
+- Change the Application theme to **Colloid Dark**, Cursors as **Vimix Cursors**, Icons as **Mkos-big-sur**and Shell Theme as **Colloid Dark**. If you want, you can choose the light theme and different option.
+
+![Apply Themes][14]
+
+Apply Themes
+
+**Arc Menu**
+
+- Open the Extenstion application and go to the Arch Menu Settings.
+
+- Change the menu layout to `Alternative Menu Layout > Raven`.
+
+- Change the application menu button to some icons you prefer. For this guide, I have downloaded a GNOME icon from [here][15]. And applied it via Arc Menu `Settings > Button Appearance > Browse Icon`. And it should look like this.
+
+![Arch Menu - Raven][16]
+
+Arch Menu – Raven
+
+- Enable Shrink the dash
+- Customize windows counter indicator = Dashes
+- Enable Customize Dash color
+- Customize Opacity = Fixed
+- Opacity to 12%
+
+- Open Dash to Dock settings from the Extension application. In the Appearance tab, change the below items:
+
+- In the position and size tab, change the Dock position to bottom and Icon size limit to 39px.
+
+- You can start Conky if you like and download a nice wallpaper which goes with Colloid theme. For this demonstration I have [chosen a nice grey-ish wallpaper][17] which looks stunning with the dark theme.
+
+### Result
+
+After all the configuration, and if all goes well, your desktop should look like this.
+
+![GNOME Customization in Ubuntu with a clean look-1][18]
+
+GNOME Customization in Ubuntu with a simple look-1
+
+![GNOME Customization in Ubuntu with a clean look-2][19]
+
+GNOME Customization in Ubuntu with a simple look-2
+
+![GNOME Customization in Ubuntu with a clean look-3][20]
+
+GNOME Customization in Ubuntu with a simple look-3
+
+You can play around with different variants of this theme with several combinations of settings. And create a look that suits you better.
+
+I hope this guide helps you transform your GNOME desktop with a clean look. Let me know in the comments down below if you like this setup.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/customize-gnome-clean-look-2022-1/
+
+作者:[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/2022/03/Ubuntu-Desktop-with-GNOME-Before-Customization.jpg
+[2]: https://extensions.gnome.org/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Add-Browser-Add-on-for-GNOME-Shell-Extension.jpg
+[4]: https://dl.flathub.org/repo/appstream/org.gnome.Extensions.flatpakref
+[5]: https://github.com/vinceliuice/Colloid-gtk-theme/archive/refs/heads/main.zip
+[6]: https://github.com/zayronxio/Mkos-Big-Sur/archive/refs/heads/master.zip
+[7]: https://github.com/vinceliuice/Vimix-cursors
+[8]: https://extensions.gnome.org/extension/2/move-clock/
+[9]: https://extensions.gnome.org/extension/307/dash-to-dock/
+[10]: https://extensions.gnome.org/extension/2890/tray-icons-reloaded/
+[11]: https://extensions.gnome.org/extension/3628/arcmenu/
+[12]: https://extensions.gnome.org/extension/19/user-themes/
+[13]: https://www.debugpoint.com/wp-content/uploads/2018/05/GNOME-Extension-Page.png
+[14]: https://www.debugpoint.com/wp-content/uploads/2022/03/Apply-Themes.jpg
+[15]: https://icons.iconarchive.com/icons/tatice/operating-systems/32/Gnome-icon.png
+[16]: https://www.debugpoint.com/wp-content/uploads/2022/03/Arch-Menu-Raven.jpg
+[17]: https://i.redd.it/1ttvv79apo851.png
+[18]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-1.jpg
+[19]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-2.jpg
+[20]: https://www.debugpoint.com/wp-content/uploads/2022/03/GNOME-Customization-in-Ubuntu-with-a-simple-look-3.jpg
diff --git a/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md b/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md
new file mode 100644
index 0000000000..bd72e0caf1
--- /dev/null
+++ b/sources/tech/20221027.7 ⭐️⭐️ Mabox Linux – Beautiful Arch Linux with Openbox [Review].md
@@ -0,0 +1,139 @@
+[#]: subject: "Mabox Linux – Beautiful Arch Linux with Openbox [Review]"
+[#]: via: "https://www.debugpoint.com/mabox-linux-2022/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Mabox Linux – Beautiful Arch Linux with Openbox [Review]
+======
+
+**Mabox Linux is a Manjaro Linux re-spin with a lightweight Openbox window manager, ready to use with pre-configured themes and utilities. We review the distribution in this post.**
+
+If you love window manager, rolling-release-based Arch Linux and are looking for a ready-made Linux distribution with this combination, try Mabox Linux. The Mabox Linux is built on top of the great Manjaro Linux with Openbox Window manager and several native utilities.
+
+Thanks to the Openbox, this Linux distribution is super-lightweight in resource consumption while being a beautiful desktop for everyone to use. The Mabox Linux tools adapted from BunsenLabs and inspired by Crunchbang brings some of their applications.
+
+Let’s do a deep dive on this awesome Linux Distribution.
+
+### Mabox Linux Review
+
+#### Installation and Live Medium
+
+One of the advantages of Mabox .ISO is it provides you free and proprietary drivers both the options during the LIVE medium boot process. This helps if you have NVIDIA or other hardware in the system.
+
+The LIVE desktop lets you install Mabox via the Calamares installer. The installation takes around 3 to 4 minutes on standard hardware, and it is error-free in my test.
+
+The installer is managed to detect the other operating systems in the test device.
+
+#### Look and Feel with Customization
+
+Mabox brings a pre-configured Openbox window manager. The stock version looks nice with dark skin and a menu with panels.
+
+The top panel is built using Tint2 and split into two sections. And Left panel gives you shortcuts to the main menu, file manager, web browser. Also, the panel have a different menu for the left and right-click mouse button. The right panel contains a resource monitor, volume control, screenshot shortcut and power menu. The top panel is not continuous and stay on top for application windows for certain themes.
+
+![Mabox Linux with Nord Theme][1]
+
+Mabox Linux with Nord Theme
+
+At the right section of the desktop, the pre-configured Conky script gives you system information with date, time, storage and other displays.
+
+The welcome window gives you quick start shortcuts on settings, help and support with links to documentation.
+
+The window managers are keyboard friendly and sometimes have trouble with the Mouse. But thanks to Openbox and pre-configured Mabox, you can easily use Mouse while increasing your productivity with nifty keyboard shortcuts.
+
+The right-click menu on the desktop gives you easily search and launch options.
+
+![Search and Launch from desktop][2]
+
+Search and Launch from desktop
+
+If you do not like the default look, you can customize it on your own with just a few clicks via Openbox and Tint2 panel configuration tool.
+
+![Main Application Menu][3]
+
+Main Application Menu
+
+Mabox has different themes as pre-set, including Panel and Concky scripts. You can click and apply with these stunning Mabox themes. It is one of the excellent features if you do not want to get into the hassles of configuring the panels, colours and Conky on your own.
+
+A good set of nice wallpaper gives you the flexibility to make it look more fabulous in no time.
+
+![Mabox Themes][4]
+
+Mabox Themes
+
+#### Applications
+
+Mabox Linux packages all necessary applications in its installer image. Here is a quick list of essential applications that are included.
+
+- Terminal – terminator
+- Xpad – quick text pad
+- File manager – PCManFM
+- FSearch for desktop file search
+- Flameshot screenshot utility
+- Geany text editor
+- Audacious music player
+- Firefox web browser
+
+Mabox also includes its control centre to manage your system effectively. Mabox control center gives you the option to add/remove applications, update your system, launch several configuration windows for window manager components and many such options.
+
+If you cannot find any settings, you can easily find them in the Mabox control center via its logical grouping of system settings.
+
+![Mabox Control Center][5]
+
+Mabox Control Center
+
+#### What about the performance?
+
+The performance of Mabox Linux is super impressive. Thanks to the Openbox window manager, Mabox only uses around 350+ MB of RAM while the CPU hovers at 2% to 3% during the idle state.
+
+The default installation takes around 5.39 GB of disk space which is unbelievable with all these applications and settings programs pre-installed.
+
+It is so optimized that the highest app consuming more memory is Xorg with 90 MB.
+
+So, I thought of trying out heavy usage performance. And that performance is also surprising. I opened a file manager, Firefox, with three tabs, one text editor for development, a terminal window and the Control Center. With this workload, Mabox only consumes around 920 MB of memory and CPU at 6% to 7%.
+
+![Mabox Linux Heavy Workload Performance][6]
+
+Mabox Linux Heavy Workload Performance
+
+During the [review of several distributions][7], this is the first time I found a distro that did not cross 1 GB of memory during a heavy workload. But the results may vary in different use cases. Still, the metric is impressive.
+
+### Can Mabox Linux be used as daily driver?
+
+If you are familiar and comfortable with Arch Linux with the window manager, you can use Mabox Linux as a daily driver. A few well-packaged Arch Linux distros are available with a window manager, and Mabox is one of the best.
+
+![Mabox Linux Windows 95 preconfigured theme][8]
+
+Mabox Linux Windows 95 pre-configured theme
+
+### Summary
+
+I think the Mabox Linux team did a great job packaging all the components with Arch Linux and presented with a nice Linux Distribution. It does look stunning while consuming very few system resources. With the power of rolling-release based Arch Linux, I think you can trust this distro for long term usage.
+
+You can download Mabox Linux from its [official webpage][9].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/mabox-linux-2022/
+
+作者:[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/2022/03/Mabox-Linux-with-Nord-Theme.jpg
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/03/Search-and-Launch-from-desktop.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Main-Application-Menu.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Themes.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Control-Center.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Linux-Heavy-Workload-Performance.jpg
+[7]: https://www.debugpoint.com/tag/linux-distro-review
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/03/Mabox-Linux-Windows-95-preconfigured-theme-1.jpg
+[9]: https://maboxlinux.org/
diff --git a/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md b/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md
new file mode 100644
index 0000000000..e0268948c1
--- /dev/null
+++ b/sources/tech/20221027.9 ⭐️ Customize GNOME Desktop in Ubuntu with this Colorful Looks.md
@@ -0,0 +1,159 @@
+[#]: subject: "Customize GNOME Desktop in Ubuntu with this Colorful Looks"
+[#]: via: "https://www.debugpoint.com/customize-gnome-ubuntu-2020-2/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Customize GNOME Desktop in Ubuntu with this Colorful Looks
+======
+
+**The default GNOME desktop in Ubuntu can be customized in many ways. There are many available GTK and icon themes which you can easily apply and transform your daily driver desktop to a different look without losing performance and productivity.**
+
+In this guide, I will apply one icon theme on top of the [earlier customization][1] we did for GNOME. If you are trying to configure the GNOME desktop look from a stock Ubuntu installation you can follow the below guide step by step.
+
+![Customize GNOME in Ubuntu - 1][2]
+
+Customize GNOME in Ubuntu – 1
+
+### Customize GNOME Desktop in Ubuntu
+
+To Customize GNOME Desktop in Ubuntu in this guide, you need to enable GNOME Extensions, install GNOME Tweaks. You can do both with these quick steps.
+
+#### Enable Ubuntu for GNOME Extensions
+
+Open Firefox and visit the official GNOME Extension page [here][3]. You can get a popup message at the top saying the steps. Follow the instructions to enable GNOME extensions for your browser.
+
+#### Install GNOME Tweak Tool
+
+To install the [GNOME Tweak Tool.][4] You can use Ubuntu Software to install Or, run below from the terminal.
+
+```
+sudo apt-get install gnome-tweaks
+```
+
+#### Install Extensions
+
+Open the [GNOME Extension website][3].
+
+Then, install all the below extensions. Open the link and click on the “OFF” at the right side of the page button to enable and install respective extensions.
+
+- [Dash to panel][5]
+- [Tray icons][6]
+- [Open Weather][7]
+- [User Themes][8]
+- [Arc menu][9]
+
+Not all these GNOME Extensions require configurations. We will configure the Dash to Panel, Open Weather, Arc Menu.
+
+#### Configure Dash to Panel
+
+After installation, the Dash by default moves to the bottom of the screen. Right, click on the panel at the bottom and open ‘Dash to Panel Settings’. Change the below settings.
+
+**On the Position Tab**
+
+- Disable the Show Applications Button
+- Move the Date menu after the System menu
+- Change Desktop button width to 15px.
+- Turn on the override panel theme background opacity. Give value to 50%.
+
+**On the style tab**
+
+- Change the running indicator style to dots.
+
+#### Configure Open Weather
+
+Change the display, City, and temperature unit if you like.
+
+#### Configure Arc Menu
+
+Open Arc Menu Settings
+
+**General Tab**
+
+- Choose Display Arc menu on Dash to panel.
+- Choose Hot Key for Arc menu to Left Super key.
+
+**Menu Layout Tab**
+
+- Choose Modern menu layout to Redmond Menu Style
+
+![Arc Menu Settings][10]
+
+Arc Menu Settings
+
+**Menu Theme**
+
+- Choose the override menu theme. Keep the theme as default, or, you can change as you wish.
+
+**Button Appearance**
+
+- Change the icon to anyone. I have selected the Ubuntu icon.
+- Change Icon size to 40px.
+
+#### Additional Configurations
+
+Open the GNOME Tweak tool and go to the Appearance tab. Choose Shell theme to Yaru Dark.Open Settings and change the Appearance to Dark.
+
+#### Configure Icons
+
+In this guide, I have used the “BeautyLine” icon theme which you can download from the below link. This icon theme has a distinct and bright look and available icon sets for almost all generic applications. Once you apply, the overall desktop looks more focused on the dark theme backdrop.
+
+[Download BeautyLine icon pack][11]
+
+Once downloaded, extract the file. Then copy the top-level folder ‘beautyline” to the `/usr/share/themes`.
+
+- Open GNOME Tweak tool
+- Go to the Appearance tab
+- Change the Icon to BeautyLine
+- Change the cursor to White glass.
+
+#### Configure Wallpaper
+
+For this guide, I have used the “[GNOME AGAIN][12]” wallpaper. You can use any dark themed wallpaper of your choice.
+
+That’s all.
+
+If all goes well, your desktop should look like this.
+
+![Customize GNOME in Ubuntu - 2][13]
+
+Customize GNOME in Ubuntu – 2
+
+If you do not want to customize more, simply apply the Icons and set the Ubuntu’s default Dark mode, your desktop still looks nice (see below).
+
+![GNOME Customization - Ubuntu - Default][14]
+
+GNOME Customization – Ubuntu – Default
+
+This is just a guide and outlining the settings. You can play around with many settings of Arc Menu and GNOME tweaks settings to make it more personalized for you. You can even apply many GTK3 icon themes or shell themes as well.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/customize-gnome-ubuntu-2020-2/
+
+作者:[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/2020/11/customize-gnome-ubuntu-2020/
+[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/Customize-GNOME-in-Ubuntu-1.jpg
+[3]: https://extensions.gnome.org/
+[4]: https://www.debugpoint.com/2018/05/customize-your-ubuntu-desktop-using-gnome-tweak/
+[5]: https://extensions.gnome.org/extension/1160/dash-to-panel/
+[6]: https://extensions.gnome.org/extension/1503/tray-icons/
+[7]: https://extensions.gnome.org/extension/750/openweather/
+[8]: https://extensions.gnome.org/extension/19/user-themes/
+[9]: https://extensions.gnome.org/extension/1228/arc-menu/
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/11/Arc-Menu-Settings.jpg
+[11]: https://www.gnome-look.org/p/1425426/
+[12]: https://www.gnome-look.org/p/1043483/
+[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/Customize-GNOME-in-Ubuntu-2.jpg
+[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/GNOME-Customization-Ubuntu-Default.jpg
diff --git a/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md b/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md
new file mode 100644
index 0000000000..447635219d
--- /dev/null
+++ b/sources/tech/20221029.0 ⭐️⭐️ 7 Best Open Source Web-based Email Clients.md
@@ -0,0 +1,241 @@
+[#]: subject: "7 Best Open Source Web-based Email Clients"
+[#]: via: "https://itsfoss.com/open-source-web-based-email-clients/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+7 Best Open Source Web-based Email Clients
+======
+
+Email services are here to stay, even if decentralized tech takes over the internet.
+
+However, with big tech trying to control everything new aspect of emerging technologies, how can you take charge of your email service?
+
+Whether a business/enterprise or an individual, a self-hosted open-source webmail service is always an option worth considering. Your server, your digital infrastructure, and your email service platform. This way, you do not have to rely on a vendor or a third party to manage your email services. You do it your way.
+
+### Why Should You Self-Host an Email Service?
+
+![best opensource web based email clients 1][1]
+
+It is **not a one-click process** to self-host a service, which you can use as a web-based email client or sync with an email app.
+
+So, why bother? Can’t you use some of the [best privacy-focused email services][2] like [Proton Mail][3] and Tutanota?
+
+Well, yes, you can.
+
+But, for businesses and enterprises, some advantages of self-hosting webmail include:
+
+- **The user gets total control over email data.**
+- **You get the ability to build your infrastructure that meets the requirements of your email services.**
+- **It provides scalability for individuals, small businesses, and enterprises.**
+- **You can create unlimited email accounts and email aliases.**
+- **Users can easily apply advanced filters and other protection mechanisms without paying for a subscription.**
+
+Here, I list some of the best options that you can pick.
+
+### 1. Roundcube
+
+![roundcube screenshot][4]
+
+**Key Highlights:**
+
+- Good fit for desktop use
+- Actively maintained
+- Available with most server hosting providers
+- Customizable UI
+- PGP Encryption
+
+Roundcube is a popular PHP-based webmail software that provides all the essential features in a simple user interface.
+
+With most of the server hosting providers, you already get it pre-installed. You have to configure it for your domain or create email accounts to get started.
+
+You can also install it and customize it on your server.
+
+[Roundcube][5]
+
+### 2. Cypht
+
+![cypht inbox interface][6]
+
+**Key Highlights:**
+
+- Lightweight
+- Modular
+
+Cypht is an interesting webmail solution that provides a combined view of multiple email accounts.
+
+While it is built with a modular approach, it is easy to add functionalities to your experience with plugins.
+
+Unlike others, you can also use it to add RSS feeds and utilize it as a newsreader.
+
+[Cypht][7]
+
+### 3. Squirrelmail
+
+![squirrelmail][8]
+
+**Key Highlights:**
+
+- Lightweight
+- Stable
+- PGP Encryption plugin support
+
+A classic PHP-based with IMAP and SMTP protocol support. It does not include many features, but it gets the basics right if you want lightweight and stable webmail software to host.
+
+While it looks like a barebone implementation, it has been around for a long time with features like address book, folder manipulation, and MIME support.
+
+It also comes bundled in with most web hosting providers.
+
+[Squirrelmail][9]
+
+### 4. Rainloop
+
+![rainloop][10]
+
+**Key Highlights:**
+
+- No database required
+- Simple user interface
+- Lightweight
+
+Rainloop is a straightforward email solution that supports IMAP and SMTP protocols.
+
+It also supports OpenPGP encryption. Unlike some others, it does not require a database. Direct access to the mail server is maintained without requiring storing anything locally on the web server.
+
+You can extend certain functionalities thanks to plugin support.
+
+[Rainloop][11]
+
+### 5. Horde
+
+![horde screeshot][12]
+
+**Key Highlights**
+
+- Bundled with web hosting providers
+- Simple and feature-rich
+
+Horde is an open-source groupware webmail software that comes bundled with various web server hosting providers. It supports IMAP.
+
+I usually prefer Horde when accessing the webmail for my domains, which has never disappointed me. It offers a simple and effective user interface and many essential features.
+
+Like others, it is a PHP-based framework that makes it easy for developers to work with.
+
+[Horde][13]
+
+### 6. SOGo
+
+![sogo][14]
+
+**Key Highlights:**
+
+- Material design UI
+- Outlook support
+- Online demo available
+
+SOGo is a modern open-source solution that features Google’s material design UI with its email server.
+
+It includes support for calendar and address books while providing a friendly AJAX-based web interface.
+
+You also get support for Microsoft Outlook and ActiveSync, which lets you synchronize emails, contacts, events, and tasks seamlessly. An online demo is available for you to try. If it sounds good, you can download it for your server.
+
+Explore more about it on its [GitHub page][15].
+
+[SOGo][16]
+
+### 7. Afterlogic WebMail Lite
+
+![afterlogic webmail][17]
+
+Key Highlights:
+
+- Enterprise support options are available
+- Social sign-in support
+- OpenPGP Encryption
+
+An interesting open-source webmail with plugin support.
+
+It supports authentication using external services as well. For instance, you can use your Google account to sign in to your email account.
+
+While you get all the features and OpenPGP encryption support with the open-source edition, you can choose to use it commercially as well.
+
+Additionally, you can opt for the pro version to get technical support, a priority fix, a personal calendar, a mobile version, and the ability to add multiple IMAP accounts.
+
+[Afterlogic WebMail Lite][18]
+
+### Interesting Mentions
+
+Several open-source projects are under active development that you can experiment with.
+
+Of course, we do not recommend using them for business or personal use. You can try them out to see if you want to contribute to their development in some way.
+
+I would like to mention a couple of such mail service projects.
+
+#### Mailpile
+
+While it deserves a spot in the list above, the development for [Mailpile][19] has halted until Python3 rewrite is complete.
+
+![mailpile][20]
+
+It is a fast and modern open-source webmail with encryption and privacy-centric features.
+
+#### Cuttlefish
+
+![cuttlefish][21]
+
+[Cuttlefish][22] is a free and open-source transactional email service. It aims to be an alternative to proprietary services like [SendGrid][23].
+
+It is in its early stages of development.
+
+#### Pinbox
+
+A self-hosted webmail solution that gets its inspiration from Google Inbox.
+
+[Pinbox][24] a work in progress and needs a few prerequisites to make it work.
+
+### Wrapping Up
+
+Squirrelmail, Horde, and Roundcube remain of the most popular options that can be easily accessed with most hosting providers.
+
+Of course, these options are not always modern looking or have features like Google Workspace or even Zoho but you get enough to do the necessary emailing.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/open-source-web-based-email-clients/
+
+作者:[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/wp-content/uploads/2022/10/best-opensource-web-based-email-clients-1.png
+[2]: https://itsfoss.com/secure-private-email-services/
+[3]: https://itsfoss.com/recommends/protonmail
+[4]: https://itsfoss.com/wp-content/uploads/2022/10/roundcube-screenshot.png
+[5]: https://roundcube.net
+[6]: https://itsfoss.com/wp-content/uploads/2022/10/cypht_inbox_interface.png
+[7]: https://cypht.org/index.html
+[8]: https://itsfoss.com/wp-content/uploads/2022/10/squirrelmail.jpg
+[9]: https://www.squirrelmail.org/
+[10]: https://itsfoss.com/wp-content/uploads/2022/10/rainloop.png
+[11]: https://www.rainloop.net
+[12]: https://itsfoss.com/wp-content/uploads/2022/10/horde-screeshot.png
+[13]: https://www.horde.org
+[14]: https://itsfoss.com/wp-content/uploads/2022/10/sogo.png
+[15]: https://github.com/Alinto/sogo/
+[16]: https://www.sogo.nu
+[17]: https://itsfoss.com/wp-content/uploads/2022/10/afterlogic-webmail.jpg
+[18]: https://afterlogic.org/webmail-lite
+[19]: https://www.mailpile.is
+[20]: https://itsfoss.com/wp-content/uploads/2022/10/mailpile.png
+[21]: https://itsfoss.com/wp-content/uploads/2022/10/cuttlefish.png
+[22]: https://cuttlefish.io
+[23]: https://sendgrid.com
+[24]: https://github.com/msp301/pinbox
diff --git a/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md b/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md
new file mode 100644
index 0000000000..a101c437be
--- /dev/null
+++ b/sources/tech/20221029.1 ⭐️⭐️ Set up a Matrix to Discord bot.md
@@ -0,0 +1,174 @@
+[#]: subject: "Set up a Matrix to Discord bot"
+[#]: via: "https://opensource.com/article/22/10/matrix-discord-bot"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Set up a Matrix to Discord bot
+======
+
+Run a Python Matrix bot to bridge chat between a Matrix room and a Discord channel.
+
+Matrix is a popular [open source chat application][1] that makes it easy to chat securely with people all over the world. Similarly, Discord is a non-open source chat application that's also popular with many online communities. Discord, like Matrix, provides a chat client for all major platforms both mobile and desktop, so it's perfectly usable on Linux. However, it's not open source and so, given the choice, you might prefer to use Matrix. The good news is that when not given a choice for any reason, you can **also** use Matrix to interface with Discord by running a Matrix-to-Discord bridge. This article shows you how to set up and run a Python Matrix bot to bridge chat between a Matrix room and a Discord channel.
+
+### Requirements
+
+The bot demonstrated in this article is a "non-puppeting" bridge, meaning that it just copies ingoing and outgoing messages on one platform and sends it to the other. There are more advanced modes available, but those tend to require a self-hosted Matrix instance. The procedure for setting up the bot, however, is similar in both cases, so whether you're setting up a bridge service for your self-hosted Matrix server or just a puppeting bot for public instances, I assume you have at least:
+
+- A Matrix account and a Matrix client such as [Element][2].
+- A Discord account.
+- A Linux or BSD server that can run the Python3 bot. I use a [Rev. 1 Raspberry Pi][3] with just a 700mHZ processor and 256 MB RAM, running NetBSD. You can run the bot locally, if you prefer, but I find it more convenient to run it as a persistent service so I don't miss messages that happen while I'm away.
+
+### Get the bot
+
+Download or clone [matrix-discord-bridge][4].
+
+Change into its `bridge` directory and install its dependencies using [pip][5]:
+
+```
+$ python3 -m pip install-r requirements.txt
+```
+
+Run the bot to generate an empty configuration file:
+
+```
+$ python3 ./bridge.py
+```
+
+You now have a file called `config.json` in your current directory. It contains six key and value pairs. The rest of this article demonstrates how to obtain these values, but first an overview:
+
+The top three are for Matrix.
+
+- **homeserver**: The Matrix server you log in to
+- **username**: Your Matrix login name
+- **password**: Your Matrix password
+
+Two are for Discord:
+
+- **token**: A bot developer token obtained from Discord.
+- **discord_cmd_prefix**: A character sequence you want to use as a shortcut for sending the bot commands through Discord.
+
+And the final one is for both:
+
+- **bridge**: The Discord "channel" ID and the Matrix "room" ID that you're bridging. This can contain more than one channel and room pair, so you can use just one bot to bridge several rooms.
+
+### Set up Matrix
+
+All you have to do to set up the Matrix side is open a Matrix account for your bot.
+
+Next, you need the ID of the room you want to bridge to Discord. To get a room ID, right-click on the room icon in the left panel of Element and select **Copy Link**. In the URL you've just copied, there's a semicolon. The room ID is the part on left of the semicolon, and the home server of that room is to the right. For example, suppose this is the URL you just copied:
+
+```
+https://matrix.to/#/!DEADBEEFzzzzABCDEF:matrix.org?via=matrix.org
+```
+
+The room ID is `!DEADBEEFzzzzABCDEF` and the home server is `matrix.org`.
+
+You can now add your Matrix details to the `config.json` file. For example:
+
+```
+"homeserver": "https://matrix.org",
+ "username": "@mybot:matrix.org",
+ "password": "myBadPassword1234",
+ "token": "",
+ "discord_cmd_prefix": "",
+ "bridge": {
+ "": "!DEADBEEFzzzzABCDEF:matrix.org"
+ }
+}
+----
+```
+
+### Get a Discord token
+
+Assuming you already have an account on Discord, open a web browser and navigate to [discordapp.com/developers/applications][6]. Once you've logged in, click the **New Application** button in the **Applications** tab.
+
+Give your bot a name. For this example, I use `mybot`.
+
+After you've defined a bot, click on it and find the **Bot** category in the menu on the left.
+
+In the **Bot** panel, click the **Add Bot** button. Discord adds your bot to the panel, alerting you that "A wild bot has appeared!" in a message box. Under the name of your bot, there's a link to click to reveal your bot's token. Click the link and copy the token into your config file.
+
+```
+"token": "07c63.fb2823cG759.b20_852f337a6551bc",
+```
+
+### Set the bot command
+
+Choose a sequence of characters you want to use to issue commands to the bot in Discord. In the instance of a simple bridge, you may not have any commands you need to issue, so this value probably doesn't actually matter. I set it to `!b` but I've never used it.
+
+```
+"discord_cmd_prefix": "!b",
+```
+
+### Add your bot to Discord
+
+Now you must add your bot to the channel you want it to bridge.
+
+- Select **OAuth2** from the menu on the left, and then **URL Generator**.![Select URL Generator under the OAuth2 menu item.][7]
+- In the **Scopes** section, select **bot** (and only **bot**). In the **Bot Permissions** section that appears under the **Scopes** section, activate all options under **Text Permissions**.
+- Copy the URL displayed at the bottom of the panel, in the **Generated URL** field.
+
+Navigate to the URL you just copied, and add the bot to the channel.
+
+You're done with the Discord web interface, but now there's one more configuration option you need from the Discord app.
+
+### Get the Discord channel ID
+
+In **User Settings** of Discord (it's the gear icon next to your name on the desktop app), select **Advanced**. In the **Advanced** panel, activate **Developer Mode**.
+
+![Activate Developer Mode with the toggle switch in the top right corner of the Advanced panel.][8]
+
+With developer mode active, go to the channel you want to bridge. For instance, you might want to bridge Matrix to the **zombie apocalypse** channel on the **example** Discord server. First, join the **example** Discord server. Then right-click on text channel **#zombie apocalypse**, and select **Copy ID**.
+
+![Copy ID is at the bottom of the context menu][9]
+
+Paste the channel ID into the config file as the first value for **bridge**. Your full config file now contains:
+
+```
+"homeserver": "https://matrix.org",
+ "username": "@mybot:matrix.org",
+ "password": "myBadPassword1234",
+ "token": "07c63.fb2823cG759.b20_852f337a6551bc",
+ "discord_cmd_prefix": "!b",
+ "bridge": {
+ "1030287944604463185": "!DEADBEEFzzzzABCDEF:matrix.org"
+ }
+}
+```
+
+### Bridge
+
+Your bot is now acting as a bridge, at least in theory. Some Discord channels start new users in a muted state, and they must be granted special permissions to interact. If the Discord channel you're bridging is strictly managed, then you may need to speak to a moderator or administrator and request special permissions for your bot.
+
+For your first attempt at setting this up, it's easiest to bridge a Discord server to a Matrix room that you control. That way, you can confirm that it works when unrestricted. After you've confirmed functionality, try adding it to a restricted channel.
+
+### Open source bridges another gap
+
+Open source does a lot of heavy lifting, including in the integration space. It's to the credit of both Matrix and Discord that they provide a robust bot ecosystem that's easy to learn and easy to use. It's to the credit of some resourceful open source developers that the two can be bridged.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/matrix-discord-bot
+
+作者:[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/alternatives/slack
+[2]: https://element.io
+[3]: https://opensource.com/article/19/3/netbsd-raspberry-pi
+[4]: https://github.com/git-bruh/matrix-discord-bridge
+[5]: https://opensource.com/article/19/11/python-pip-cheat-sheet
+[6]: https://discordapp.com/developers/applications/
+[7]: https://opensource.com/sites/default/files/2022-10/discord-oauth2.webp
+[8]: https://opensource.com/sites/default/files/2022-10/discord-developer-mode.webp
+[9]: https://opensource.com/sites/default/files/2022-10/discord-channel-id.webp
diff --git a/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md b/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md
new file mode 100644
index 0000000000..c8531f1390
--- /dev/null
+++ b/sources/tech/20221030.1 ⭐️⭐️ 3 Best Free Photoshop Alternatives for Ubuntu and other Linux.md
@@ -0,0 +1,160 @@
+[#]: subject: "3 Best Free Photoshop Alternatives for Ubuntu and other Linux"
+[#]: via: "https://www.debugpoint.com/3-best-free-photoshop-alternatives-ubuntu-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+3 Best Free Photoshop Alternatives for Ubuntu and other Linux
+======
+
+**We present three best Photoshop alternatives for Linux systems that are free and open-source.**
+
+Photoshop is a raster graphics image editor and manipulator developed by Adobe. This decade-old software is a de facto standard for the photographic industry. However, it is a paid product and doesn’t run on Linux. For many users in this industry, Photoshop is still costly and comes with a hefty subscription fee. Since it does not run on Linux, you must use Windows or macOS with additional free operating systems and hardware.
+
+As you can see, to use Photoshop, you end up paying additional fees, which are not even related to Photoshop.
+
+Though nothing technically replaces software, below are some free and open-source apps that come close to Photoshop in terms of its functionality.
+
+Also, all these three apps are available as Flatpak and Snap. So you can install it in any Linux distribution.
+
+### Best Photoshop Alternatives for Linux
+
+#### 1. GIMP
+
+[GIMP][1], aka GNU Image Manipulation Program, is the default and best image editor program available as free in Linux, Windows and Mac. GIMP is also as old as Photoshop regarding how long the software has been in the industry.
+
+GIMP is very active in the development, and each new release delivers the next set of improvements, keeping in line with the industry.
+
+![GIMP is one of the best Photoshop Alternative available for free][2]
+
+GIMP is one of the best Photoshop Alternative available for free
+
+Though some very advanced Photoshop features are not available in GIMP, GIMP can still match its features as closely as Photoshop. GIMP also supports scripting, which is a powerful feature of this application. GIMP is supported by a huge list of free plugins, such as GMIC for filters, which you can use to extend its features to a great extent.
+
+##### Key features of GIMP
+
+- 8-bit and 16-bit CMYK(A) TILL files support
+- WebP image support
+- JPEG XL, and BIGTIFF file support
+- Configurable user interfaces with light/dark/system theme.
+- Extensible layer options
+- External add-on support
+- Localized glyphs in the text tool
+
+##### How To Install
+
+GIMP is available as both Flatpak and Snap, which you can run in any Linux distribution. Download from the below links. I would recommend using Flatpak since it gets you the latest version of this app as soon as it releases.
+
+For Flatpak, [set up your system][3], and then run the below to install from the terminal.
+
+```
+flatpak install flathub org.gimp.GIMP
+```
+
+Also, for Snap installation, visit [this page][4].
+
+For those who prefer the native apt package, you can run the following from the terminal to install it.
+
+```
+sudo apt install gimp
+```
+
+For Windows and Mac, visit [this page][5] for download options.
+
+#### 2. Inkscape
+
+[Inkscape][6] is a vector graphics editor for editing illustrations, logos and complex paintings. Though this app is mainly used to manipulate SVG diagrams, it can also be used for editing images and helping with certain functionalities of Photoshop. This can act as a lightweight alternative to Photoshop.
+
+![][7]
+
+##### Key features of Inkscape
+
+- Object creation and manipulation
+- Freehand drawing, simple path, calligraphy support
+- Wide variety of shape tools
+- Text tools (multi-line text, full-on canvas)
+- RGB, HSL, CYMK, CMS colour selector
+- Gradient editor
+- Nodes and paths
+- Boolean operations
+- Command line options
+
+##### How to Install
+
+Inkscape is available in Flatpak, Snap and native deb/RPM formats. For Flatpak installation, [set up your system to use Flatpak][3] and use the following command to install it. This is recommended way.
+
+```
+flatpak install flathub org.inkscape.Inkscape
+```
+
+For the Snap package, visit [this page][8].
+
+If you prefer the native deb/rpm package, use the following commands to install it in Fedora and Ubuntu.
+
+```
+sudo apt install inkscape
+```
+
+```
+sudo dnf install inkscape
+```
+
+#### 3. Darktable
+
+[Darktable][9] is a photo editing and photo workflow application designed to handle raw photos. It can manage photos in a non-destructive way for post-production.
+
+Like Photoshop, it can also handle/edit raster graphics, and this app is beneficial to photographers who handle many photos for their workflow.
+
+You can find more darktable features [here][10].
+
+##### How to Install
+
+Darktable is also available as both Flatpak and Snap. The recommended way is to use the Flatpak version. To do that, first [set up your system to use Flatpak][3]. Then run the following command.
+
+```
+flatpak install flathub org.darktable.Darktable
+```
+
+For Snap, visit [this page][11].
+
+If you prefer the legacy way of installation, then follow the below commands via the terminal. You can also use the respective distro’s Software repo to install.
+
+```
+sudo apt install darktable
+```
+
+```
+sudo dnf install darktable
+```
+
+### Summary
+
+Photoshop is an amazing application and has become a standard today. However, I feel the above three free apps can somewhat be close to photoshop and act as the best photoshop alternatives for Linux systems.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/3-best-free-photoshop-alternatives-ubuntu-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.gimp.org/
+[2]: https://www.debugpoint.com/wp-content/uploads/2018/09/GIMP-is-one-of-the-best-Photoshop-Alternative-available-for-free.jpg
+[3]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[4]: https://snapcraft.io/gimp
+[5]: https://www.gimp.org/downloads/
+[6]: https://gitlab.com/inkscape/inkscape
+[7]: https://www.debugpoint.com/wp-content/uploads/2018/09/Inkscape-Running.png
+[8]: https://snapcraft.io/inkscape
+[9]: https://www.darktable.org/
+[10]: https://www.darktable.org/about/features/
+[11]: https://snapcraft.io/darktable
diff --git a/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md
new file mode 100644
index 0000000000..f432506bf1
--- /dev/null
+++ b/sources/tech/20221031.1 ⭐️⭐️⭐️ 10 universal steps for open source code review.md
@@ -0,0 +1,134 @@
+[#]: subject: "10 universal steps for open source code review"
+[#]: via: "https://opensource.com/article/22/10/code-review"
+[#]: author: "Martin Kopec https://opensource.com/users/martin-kopec"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+10 universal steps for open source code review
+======
+
+Code review doesn't have to be scary when you follow this universal process.
+
+Have you ever found yourself in a situation where you needed to do a code review but didn't fully understand the project? Maybe you did not review it to avoid looking like you didn't know what you were doing.
+
+This article assures you that there's a better way. You don't need to know everything to provide a code review. In fact, based on my experience, that's quite common.
+
+I remember when I joined Red Hat as an intern and was asked to help with code reviews. We used a system of +1 or -1 votes, and I was initially very hesitant to weigh in. I found myself asking whether when I gave a +1 on a change but then someone else voted -1, would I look foolish?
+
+What does happen if someone votes -1 on a change you've vote +1? The answer is nothing! You might have missed a detail that the other person noticed. It's not the end of the world. That's why we have this voting system. Like the rest of open source, merging code is a collaborative effort.
+
+Lately, I've been so inundated with code reviews that I can hardly keep up with them. I also noticed that the number of contributors doing these reviews steadily decreased.
+
+For this reason, I'm writing about my point of view on writing a code review. In this article, I'll share some helpful tips and tricks. I'll show you a few questions you should ask yourself and a few ideas of what to look for when doing a code review.
+
+### What is the purpose of a code review?
+
+Have you ever written a really simple patch? Something you think is so trivial that it doesn't require a review? Maybe you merged it straight away. Later, it turns out there was a mistake, something obvious or silly, like the wrong indentation or a few duplicated lines of code instead of a function call (yes, I'm speaking from experience!).
+
+A code review by someone else would have caught these things.
+
+The point of a code review is to bring a fresh pair of eyes with a new perspective on the problem you're trying to solve. That new context is exactly the reason a code review is crucial.
+
+You may think that you must be an expert in the language to review someone else's code, the project, or both. Here's a secret all code reviewers want you to know: That's wrong! You don't need to fully understand the project or the language to provide a fresh perspective on a change. There's a universal process of code review.
+
+### The universal process of a code review
+
+Here's my process for code review, grouped into a couple of points. The process provides questions I ask myself to help me focus on a code change and its consequences. You don't need to go in this specific order. If there's a step, you can't execute for any reason, just move to another step.
+
+### 1. Understand the change, what it's trying to solve, and why
+
+The explanation of why the change is needed and any relevant context should be in the commit message. If it isn't, request it and feel free to -1 until it's provided.
+
+Is it something that needs to be solved? Is it something the project should focus on, or is it completely out of scope?
+
+### 2. How would you implement the solution? Would it be different?
+
+At this point, you know what the code change is about. How would you have done it? Think about this before reviewing the change in detail. If the solution you have in mind is different from the one you're reviewing, and you think it's better, bring that up in the review. You don't need to -1 it; just ask why the author didn't go in this direction and see how the discussion evolves.
+
+### 3. Run the code with and without the change
+
+I usually put a few breakpoints into the code, run it, and inspect how the new code interacts with the rest.
+
+If you can't run the whole code, try to copy the function containing the new code to a new local file, simulate the input data, and run that. This is helpful when you either don't know how to run the whole project or when it requires a specific environment to which you don't have access.
+
+### 4. Can the new code break anything?
+
+I mean, really anything. Think about the consequences.
+
+In the case of a new command-line option, will it always be accepted by the target?
+
+Can a situation occur when the option wouldn't be accepted or when it could conflict with something?
+
+Maybe it's a new import. Is the new library, and possibly a new dependency, available in the older releases or systems you ship the project for?
+
+What about security? Is the new dependency safe to use? The least you can do is run a quick Internet search to find out. Also, look for warnings in the console log. Sometimes there are more secure methods within the same library.
+
+### 5. Is the code effective?
+
+You've determined that the proposed solution is probably correct. Now it's time to check the code itself, its effectiveness, and its necessity.
+
+Check the style of the new code. Does it match the style of the project? Any open source project has (or should have) a document informing (new) contributors about the styles and good practices the project follows.
+
+For instance, every project in the OpenStack community has a HACKING.rst file. There's often also [a guide for new contributors][1] with all the must-know information.
+
+### 6. Check that all new variables and imports are used
+
+Often, there have been many iterations of the code you're reviewing, and sometimes the final version is very different from when it started. It's easy to forget an import or a new variable that was needed in a former version of the new code. Automation usually checks these things using linting tools like [flake8][2] in the case of Python code.
+
+Can you rewrite the code without declaring new variables? Well, usually, yes, but the question is whether it's better that way. Does it bring any benefit? The goal isn't to create as many one-liners as possible. The goal is to write code that is both efficient and easy to read.
+
+### 7. Are the new functions or methods necessary?
+
+Is there a similar function that can be reused somewhere in the project? It's always worth helping to avoid reinventing the wheel and re-implementing logic that's already been defined.
+
+### 8. Are there unit tests?
+
+If the patch adds a new function or new logic in a function, it should also include new unit tests for that. It's always better when the author of a new function also writes unit tests for it.
+
+### 9. Verify refactoring
+
+If the commit refactors existing code (it renames a variable, changes variable scope, changes the footprint of a function by adding or removing arguments, or removes something), ask yourself:
+
+- Can this be removed? Will it affect the stable branch?
+- Are all the occurrences deleted?
+
+You can use the [grep command][3] to find out. You wouldn't believe how many times I've voted -1 just because of this. This is a simple mistake that anyone can make, but that also means anyone can uncover it.
+
+The owner of the commit can easily overlook these things, which is totally understandable. It's happened to me many times too. I'd finally figured out the root of the problem I'd been fixing, so I was in a rush to propose the review, and then I forgot to check the whole repo.
+
+Apart from the project's repository, sometimes it's also necessary to check other code consumers. If some other project imports this one, they may need refactoring, too. In the OpenStack community, we have a tool that searches across every community project.
+
+### 10. Does project documentation need to be modified?
+
+Again, you can use the [grep command][4] to check whether the project documentation mentions anything related to the code change. Apply common sense to determine whether a change needs to be documented for end users or it's just an internal change that doesn't affect user experience.
+
+### Bonus tip: Be considerate
+
+Be considerate, precise, and descriptive if you make a suggestion or comment on something after you've reviewed the new code. Ask questions if you don't understand something. If you think the code is wrong, explain why you think so. Remember, the author can't fix it if they don't know what's broken.
+
+### Final words
+
+The only bad review is no review. By reviewing and voting, you provide your point of view and vote only for that. Nobody expects you to give the final yes or no (unless you're a core maintainer!), but the voting system allows you to provide your perspective and opinion. A patch owner will be glad you did it, trust me.
+
+Can you think of any other steps for a good review? Do you have any special technique different from mine? Let us all know in the comments!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/10/code-review
+
+作者:[Martin Kopec][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/martin-kopec
+[b]: https://github.com/lkxed
+[1]: https://docs.openstack.org/tempest/latest/contributor/contributing.html
+[2]: https://opensource.com/article/19/5/python-flake8
+[3]: https://opensource.com/downloads/grep-cheat-sheet
+[4]: https://www.redhat.com/sysadmin/how-to-use-grep
diff --git a/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md b/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md
new file mode 100644
index 0000000000..4c046a8533
--- /dev/null
+++ b/sources/tech/20221031.2 ⭐️ How to View AVIF Images in Ubuntu and Other Linux Distributions.md
@@ -0,0 +1,90 @@
+[#]: subject: "How to View AVIF Images in Ubuntu and Other Linux Distributions"
+[#]: via: "https://itsfoss.com/view-avif-images-linux/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to View AVIF Images in Ubuntu and Other Linux Distributions
+======
+
+PNGs are the best when it comes to quality but they are huge in size and hence not ideal for websites.
+
+JPEGs reduce the file size but they reduce the quality of the images significantly.
+
+WebP is a relatively newer format that produces better-quality images with significantly smaller sizes.
+
+Now, [AVIF][1] is a new file format that compresses images without sacrificing quality. They are smaller than WebP for the same image quality.
+
+[Linux has started providing WebP support][2] recently. However, AVIF image format is not yet supported by default in many distributions.
+
+If you download an image in AVIF format from the web, it won’t display the thumbnail.
+
+![avif image no thumbnail][3]
+
+And if you try to open it with the default image viewer, it is likely to show ‘unrecognized image file format’ error.
+
+![avif images dont open linux][4]
+
+So, what’s the solution? Can you not view AVIF images on Linux at all?
+
+Nope, that’s not the case. There is always a workaround when it comes to Linux.
+
+### Viewing AVIF image files in Linux
+
+There is a handy [image viewer][5] called gThumb that can be used for opening AVIF images on Linux.
+
+It should be available in the repositories of most Linux distributions, if not all.
+
+On Ubuntu and Debian-based distributions, use the following command to install gThumb.
+
+```
+sudo apt install gthumb
+```
+
+![install gthumb ubuntu][6]
+
+Once installed, select an AVIF image, right-click on it and select “Open With” option. Here, select gThumb, make it default for AVIF images and open it.
+
+![make gthumb default for avif][7]
+
+gThumb shows all the images from the same folder in thumbnail format under the opened image.
+
+![avif image opened with gthumb in linux][8]
+
+Once you open AVIF images with gThumb, they should also be displayed with thumbnails.
+
+![avif image thumbnail][9]
+
+That’s it. You can now enjoy AVIF images on your Linux desktop.
+
+### Conclusion
+
+gThumb is an extremely versatile and capable application. It makes me wonder why it is not used as the default image viewer in GNOME or other desktop environments and distributions.
+
+And about default AVIF support in Linux, sooner or later it will be added. For now, gThumb does the job.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/view-avif-images-linux/
+
+作者:[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://aomediacodec.github.io/av1-avif/
+[2]: https://itsfoss.com/webp-ubuntu-linux/
+[3]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-no-thumbnail.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/10/avif-images-dont-open-linux.png
+[5]: https://itsfoss.com/image-viewers-linux/
+[6]: https://itsfoss.com/wp-content/uploads/2022/10/install-gthumb-ubuntu.png
+[7]: https://itsfoss.com/wp-content/uploads/2022/10/make-gthumb-default-for-avif.png
+[8]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-opened-with-gthumb-in-linux.webp
+[9]: https://itsfoss.com/wp-content/uploads/2022/10/avif-image-thumbnail.png
diff --git a/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md b/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md
new file mode 100644
index 0000000000..e6167e0765
--- /dev/null
+++ b/sources/tech/20221031.3 ⭐️⭐️ 5 Best Mastodon Clients for Ubuntu and Other Linux.md
@@ -0,0 +1,168 @@
+[#]: subject: "5 Best Mastodon Clients for Ubuntu and Other Linux"
+[#]: via: "https://www.debugpoint.com/mastodon-clients-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+5 Best Mastodon Clients for Ubuntu and Other Linux
+======
+
+**Are you planning to leave Twitter and join Mastodon? Use these free and open-source Mastodon clients for your Linux desktop.**
+
+[Mastodon][1] is a free and open-source microblogging platform similar to Twitter. It is designed as a decentralised platform that can communicate with other Fediverse protocols such as GNU Social and Pleroma. With the recent news stories about Twitter, many users are trying Mastodon and migrating to the platform.
+
+With that in mind, we give you a list of free Mastodon clients for Linux desktops as well as Windows and macOS in this post.
+
+### Top 5 Mastodon Clients for Ubuntu and Other Linux Distributions
+
+#### 1. Tootle
+
+Perhaps the best on this list is the GNOME App Tootle. Tootle is a super-fast Mastodon client for Linux desktops written in GTK. It comes with a clean and native interface that you can use while using Mastodon. With this app, you can easily browse posts, view feeds, have a customised home page and follow accounts. In addition to that, dedicated tabs gives you options to quickly jump between your home page, notifications, mentions and federated feed.
+
+Tootle is actively developed, and it is an official GNOME Circle app. And we featured it in our [GNOME Apps series (#5)][2].
+
+![Tootle Mastodon Client for Linux][3]
+
+Tootle
+
+The easiest way to install Tootle is using Flatpak in any Linux distribution. Setup your system using this [guide for Flatpa][4]k (if not done yet) and hit the below link to install.
+
+[Install Tootle][5]
+
+**More information about Tootle**
+
+- [Source Code][6]
+- [Home page][7]
+
+#### 2. Tokodon
+
+The Tokodon is another Mastodon client which brings a little different user interface to access this social platform. Its part of KDE Applications and built primarily using C++. It gives you an excellent clean user interface with a basic home page view. On top of that, you can browse local accounts to your mastodon server and the global ones. The bottom navigation gives easy access to all the Mastodon sections.
+
+![Tokodon Mastodon Client for Linux][8]
+
+Tokodon Mastodon Client for Linux
+
+The easiest way to install Tokodon is using Flatpak in any Linux distribution. Setup your system using this [guide for Flatpa][4]k (if not done yet) and hit the below link to install.
+
+[Install Tokodon via Flathub][9]
+
+**More information about****Tokodon**
+
+- [Source code][10]
+- [Home page][11]
+
+#### 3. Sengi
+
+Among this list, Sengi is most likely the versatile Mastodon client for Linux desktops. It comes with usual features such as notification, account view and follows features. On top of that, it brings Tweetdeck styled live interface with the timeline.
+
+Sengi is perfect for heavy Mastodon users who want to manage multiple accounts and timelines. You can even set up and Twitter bridge as well.
+
+Furthermore, you should note that it is designed with web technology and packaged as desktop applications. Finally, it is available for Linux, macOS and Windows as well.
+
+![Sengi Mastodon Client][12]
+
+Sengi Mastodon Client | Image Credit: Sengi
+
+Finally, installing Sengi is very easy because the developer provides all types of executables, including native deb and AppImage. You can grab the .deb or .appimage file from the below link in addition to the windows and Mac executables.
+
+[Download Sengi][13]
+
+**More information about Sengi**
+
+- [Source code][14]
+
+#### 4. Whalebird
+
+Whalebird is another free and open-source Mastodon client built using Electron. Moreover, this web-based application is feature-rich and is the most stable Mastodon client. Using Whalebird, you can manage multiple accounts and monitor multiple timelines. In addition to that, you can also create a custom timeline to follow your favourite hashtags with a simple chronological workspace view.
+
+![Whalebird Mastodon Client][15]
+
+Whalebird Mastodon Client | Image Credit: Whalebird
+
+Finally, installing Whalebird is easy because it comes with an AppImage executable for Linux. Also, it provides the exe and dmg file for other OSes, which you can grab using the below link.
+
+[Download Whalebird][16]
+
+**More information about Whalebird**
+
+- [Source code][17]
+
+#### 5. TheDesk
+
+The fifth Mastodon client for Linux and other OSes we would like to feature is TheDesk. It is perhaps the most feature-rich client with a vast list of features. Its workflow is similar to Hootsuite and Tweetdeck for heavy social media monitoring and usage. You can customise it to follow a particular user, hashtags with options to create multiple timeline views.
+
+But it might not be a stable client and may contain bugs. But you can still try it out.
+
+Installing is made easy by its developer with app image, deb, snap and exe files available on GitHub for its releases. You can grab them here.
+
+[Download TheDesk][18]
+
+**More information about TheDesk**
+
+- [Source code][19]
+- [Home page][20]
+
+### Other Options to access Mastodon
+
+#### Mastodon Web
+
+If you are reluctant to install another app, you can use the web version of your choice or favourite pod. You can register for a new account using the below link and connect via the web.
+
+[https://joinmastodon.org/][1]
+
+#### Tusky
+
+Finally, if you are an Android mobile phone user, you can try Tusky. It is a fine and superfast Mastodon client available for Android with many features. You can [download it from Google Play Store here][21]. You can also [get the F-Droid version][22] of this app for Linux Phones.
+
+#### Apple iPhone & iPad
+
+If you are iPhone or iPad user, you can get the official Mastodon client (developed by Mastodon) [from here][23]. It should work for MacBook as well.
+
+### Closing Notes
+
+Wrapping up the list of Mastodon clients for Linux, I hope you get to choose your favourite for your Linux distribution or mobile from the above list. Also, you can always use the Mastodon web for easy access.
+
+**Finally, don’t forget to follow us on our official Mastodon page using the link below.**
+
+- [Mastodon][24]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/mastodon-clients-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://joinmastodon.org/
+[2]: https://www.debugpoint.com/2022/03/best-gnome-apps-part-5/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/03/Tootle.jpg
+[4]: https://flatpak.org/setup/
+[5]: https://dl.flathub.org/repo/appstream/com.github.bleakgrey.tootle.flatpakref
+[6]: https://github.com/bleakgrey/tootle
+[7]: https://apps.gnome.org/app/com.github.bleakgrey.tootle/
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Tokodon-Mastodon-Client-for-Linux.jpg
+[9]: https://dl.flathub.org/repo/appstream/org.kde.tokodon.flatpakref
+[10]: https://invent.kde.org/network/tokodon
+[11]: https://apps.kde.org/tokodon/
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/04/Sengi-Mastodon-Client.jpg
+[13]: https://github.com/NicolasConstant/sengi/releases
+[14]: https://nicolasconstant.github.io/sengi/
+[15]: https://www.debugpoint.com/wp-content/uploads/2022/04/Whalebird-Mastodon-Client.jpg
+[16]: https://github.com/h3poteto/whalebird-desktop/releases
+[17]: https://github.com/h3poteto/whalebird-desktop
+[18]: https://www.debugpoint.com
+[19]: https://github.com/cutls/TheDesk
+[20]: https://thedesk.top/en/
+[21]: https://play.google.com/store/apps/details?id=com.keylesspalace.tusky&hl=en_IN&gl=US
+[22]: https://tusky.app/
+[23]: https://apps.apple.com/us/app/mastodon-for-iphone-and-ipad/id1571998974
+[24]: https://floss.social/@debugpoint
diff --git a/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md b/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md
new file mode 100644
index 0000000000..97cb466de6
--- /dev/null
+++ b/sources/tech/20221101.0 ⭐️⭐️ Get started with Parseable, an open source log storage and observability platform.md
@@ -0,0 +1,156 @@
+[#]: subject: "Get started with Parseable, an open source log storage and observability platform"
+[#]: via: "https://opensource.com/article/22/11/parseable-observability-platform"
+[#]: author: "Nitish Tiwari https://opensource.com/users/tiwarinitish86"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Get started with Parseable, an open source log storage and observability platform
+======
+
+Written in Rust, Parseable leverages data compression, storage, and networking advances to bring a simple, efficient logging platform that just works.
+
+Log data is one of the fastest-growing segments across data storage. It's also one of the most complicated spaces. There are several products and solutions with overlapping use cases and confusing marketing.
+
+This article looks at Parseable, a log storage and observability platform. Parseable is geared towards a better user experience, with an easy-to-deploy and use interface and a simple, cloud-native architecture. I'll also show how to set up Parseable with FluentBit to store logs.
+
+### What is Parseable?
+
+[Parseable][1] is a free and open source log storage and observability platform. Written in Rust, Parseable leverages data compression, storage, and networking advances to bring a simple, efficient logging platform that just works.
+
+Some core concepts for building Parseable are:
+
+#### Indexing free
+
+Traditionally, text search engines like Elastic have doubled as log storage platforms. This makes sense because log data must be searched to be really useful. But indexing comes at a high cost. It is CPU intensive and slows down ingestion. Also, the index data generated by these systems are of the same order of storage as the raw log data. This doubles the storage cost and increases complexity. Parseable changes this. With columnar data formats (parquet), it is possible to compress and query the log data efficiently without indexing it.
+
+#### Ownership of both data and content
+
+With parquet as the storage format and stored in standard object storage buckets, users own their log data and have complete access to the actual content. This means users can easily use analysis tools like Spark, Presto, or TensorFlow to extract more value from the data. This feature is extremely powerful, opening up new avenues of data analysis.
+
+#### Fluid schema
+
+Logs are generally semi-structured by nature, and they're ever-evolving. For example, a developer may start with a log schema like this:
+
+```
+{
+ "Status": "Ready",
+ "Application": "Example"
+}
+```
+
+But as more information is collected, the log schema may evolve to:
+
+```
+{
+ "Status": "Ready",
+ "Application": {
+ "UserID": "3187F492-8449-4486-A2A0-015AE34F1D09",
+ "Name": "Example"
+ }
+}
+```
+
+Engineering and SRE teams regularly face schema-related issues. Parseable solves this with a fluid schema approach that lets users change the schema on the fly.
+
+#### Simple ingestion
+
+The current ingestion mechanism for logging platforms is quite convoluted, with several available protocols and connectors. Parseable aims to make log ingestion as easy as possible. The result is you can use HTTP POST calls to send logs to Parseable. No complicated SDKs are required.
+
+What if you want to use a logging agent like FluentBit, Vector, LogStash, or others? Almost all the major log collectors support HTTP, so Parseable is already compatible with your favorite log collection agent.
+
+### Get started
+
+You can use a Docker image to try out Parseable. This image shows Parseable in demo mode, using publicly-accessible object storage.
+
+```
+$ cat<< EOF > parseable-envP_S3_URL=https://minio.parseable.io:9000P_S3_ACCESS_KEY=minioadminP_S3_SECRET_KEY=minioadminP_S3_REGION=us-east-1P_S3_BUCKET=parseableP_LOCAL_STORAGE=/dataP_USERNAME=parseableP_PASSWORD=parseable
+EOF
+$ mkdir-p/tmp/data
+$ docker run \-p8000:8000 \--env-file parseable-env \-v/tmp/data:/data \
+ parseable/parseable:latest
+```
+
+Log in to the Parseable UI using the credentials passed here (that's `parseable` and `parseable`.) The demo already contains some data because Parseable is pointing to the publicly-open bucket.
+
+Make sure to change the bucket and credentials to your object storage instance before sending any data to Parseable.
+
+Refer to the [documentation][2] to understand how Parseable works and how to ingest logs.
+
+### Set up FluentBit to send logs to Parseable
+
+You can use a Docker compose file to configure both Parseable and FluentBit, making it easier to set up and tear down as needed.
+
+First, save this file as `fluent-bit.conf` in a directory. The file is the configuration used to send data to Parseable.
+
+```
+[SERVICE]
+ Flush 5
+ Daemon Off
+ Log_Level debug
+[INPUT]
+ Name dummy
+ Tag dummy
+[OUTPUT]
+ Name http
+ Match *
+ Host parseable
+ http_User parseable
+ http_Passwd parseable
+ format json
+ Port 8000
+ Header X-P-META-meta1 value1
+ Header X-P-TAG-tag1 value1
+ URI /api/v1/logstream/fluentbit1
+ Json_date_key timestamp
+ Json_date_format iso8601
+```
+
+Now save the following file as `docker-compose.yaml` in the same directory as above:
+
+```
+version: "3.7"
+services:
+ fluent-bit:
+ image: fluent/fluent-bit
+ volumes: - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
+ depends_on: - parseable
+ parseable:
+ image: parseable/parseable
+ ports: - "8000:8000"
+ environment: - P_S3_URL=https://minio.parseable.io:9000
+ - P_S3_ACCESS_KEY=minioadmin
+ - P_S3_SECRET_KEY=minioadmin
+ - P_S3_REGION=us-east-1
+ - P_S3_BUCKET=parseable
+ - P_LOCAL_STORAGE=/tmp/data
+ - P_USERNAME=parseable
+ - P_PASSWORD=parseable
+```
+
+The `docker-compose.yaml` refers to the `fluent-bit.conf` file and passes it to the FluentBit container as the configuration file.
+
+Parseable is deployed with the default configuration (as in the above Docker setup). You can observe the data FluentBit container sent to Parseable in the Parseable Console running at **[http://localhost:8000][3]**.
+
+### Wrap up
+
+In this article, you've taken your first look at Parseable, the open source log storage and analysis platform built in Rust. A single Docker command gets you started with Parseable so you can experience the UI and establish FluentBit as a data source. If you think this looks too easy, then it's probably time to try Parseable!
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/parseable-observability-platform
+
+作者:[Nitish Tiwari][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/tiwarinitish86
+[b]: https://github.com/lkxed
+[1]: https://github.com/parseablehq/parseable
+[2]: https://www.parseable.io/docs/introduction
+[3]: http://localhost:8000
diff --git a/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md b/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md
new file mode 100644
index 0000000000..6639886773
--- /dev/null
+++ b/sources/tech/20221101.11 ⭐️⭐️ How to Install Flatpak Apps in Ubuntu and Other Linux.md
@@ -0,0 +1,170 @@
+[#]: subject: "How to Install Flatpak Apps in Ubuntu and Other Linux"
+[#]: via: "https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install Flatpak Apps in Ubuntu and Other Linux
+======
+
+**A beginner’s guide on how to install Flatpak in Ubuntu and other Linux distributions.**
+
+### What is Flatpak?
+
+[Flatpak][1] is the new way of distributing apps across the Linux universe, irrespective of the distribution. This cross-distro application distribution and deployment framework enable developers to Flatpak setup for apps for all major distributions.
+
+The major hurdles in any Linux app distribution are dependencies, and Flatpak covers that. Flatpak builds bundles the dependencies for the respective apps, and end-users need not worry about it.
+
+With the growing trends, many app developers are now providing the Flatpak builds along with traditional packages, e.g. *.deb, etc. With a quick setup for your distributions, you can be ready to explore the world of Flatpak apps. All the major Flatpak apps are available on flathub.org. You can search and just click a button, you can install the Flatpak apps. Here’s how to set it up for Ubuntu and other Linux distributions.
+
+### How to setup Flatpak in Ubuntu
+
+- For Ubuntu 18.10 (Cosmic Cuttlefish), use the following command to install Flatpak (that includes Ubuntu 22.04 as well).
+
+```
+sudo apt install flatpak
+```
+
+If you are using an older version of Ubuntu, use the following repo.
+
+```
+sudo add-apt-repository ppa:alexlarsson/flatpak
+sudo apt update
+sudo apt install flatpak
+```
+
+- The second step is optional if you want to install Flatpak apps via the browser. Enable Ubuntu Software to recognize Flatpak apps and their installations. Run the below commands from the terminal and provide the password when prompted.
+
+```
+sudo apt install gnome-software-plugin-flatpak
+```
+
+- Add the Flathub repository where all the Flatpak apps reside. Run the below commands from the terminal.
+
+```
+flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+```
+
+- Reboot.
+
+### Install in Other Linux Distributions
+
+Flatpak is available to install almost all possible distributions. Here’s a quick list of commands you can run from the terminal in all the distros.
+
+| **Linux distro name** | **Instructions or commands to set up Flatpak** |
+| :- | :- |
+| AlmaLinux | Enabled by default. No action is required. |
+| Alpine Linux | Run the following commands:`sudo apk add flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Arch Linux | Run the following commands:`sudo pacman -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| CentOS | Enabled by default. No action is required. |
+| Clear Linux | Enabled by default. No action is required. |
+| Debian | Run the following commands:`apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Deepin OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| elementary OS | Enabled by default. No action is required. |
+| Endeavour OS | Enabled by default. No action is required. |
+| Endless OS | Enabled by default. No action is required. |
+| Fedora Linux | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak app. |
+| Gentoo | Run the following commands:`echo -e 'sys-apps/flatpak ~amd64\nacct-user/flatpak ~amd64\nacct-group/flatpak ~amd64\ndev-util/ostree ~amd64' >> /etc/portage/package.accept_keywords/flatpakemerge sys-apps/flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| KDE Neon | Enabled by default. No action is required. |
+| Kubuntu | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``sudo apt install plasma-discover-backend-flatpak``reboot` |
+| Linux Mint | Enabled by default. No action is required. |
+| Mageia | Run the following commands:`dnf install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Manjaro Linux (Arch-based) | Installed by default since Manjaro 20 and higher.Make sure it is enabled in the below navigation:**Software Manager > Preferences > Flatpak Tab > Enable Flatpak Support**Reboot your system |
+| MX Linux | Enabled by default. No action is required. |
+| Nix OS | Open `/etc/nixos/configuration.nix` and add the following:`Services.flatpak.enable = true;`And then run the followings:`sudo nixos-rebuild switch``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| openSUSE Leap and Tumbleweed | Flatpak is installed by default. All you need to do is to install the Flathub repo:`flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]`And finally, reboot your system before installing the Flatpak apps. |
+| Pop OS | Enabled by default. No action is required. |
+| Raspberry Pi OS | Run the following commands:`sudo apt install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Red Hat Enterprise Linux (RHEL) | `sudo yum install flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Solus | Run the following commands:`sudo eopkg install flatpak xdg-desktop-portal-gtk``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Void Linux | Run the following commands:`sudo xbps-install -S flatpak``flatpak remote-add --if-not-exists flathub [https://flathub.org/repo/flathub.flatpakrepo][2]``reboot` |
+| Zorin OS | Enabled by default. No action is required. |
+
+Once installation is completed, and reboot is done, you can proceed with installing some cool Flatpak apps via the below steps.
+
+### How to Install Flatpak Apps in Ubuntu and Other Linux
+
+There are two ways you can install Flatpak apps. Firstly via the command line, which I recommend. And second is the browser method.
+
+I recommend using the command line because it is faster and easier.
+
+#### Using the command line (recommended)
+
+The sample command to install any Flatpak app is available at the bottom section of the Flathub app page. A sample command is below:
+
+```
+flatpak install org.gimp.GIMP
+```
+
+Change the above “org.gimp.GIMP” for your application. Remember, this is case-sensitive.
+
+#### Using the graphical method via browser
+
+- Go to [Flathub][3].
+- Search for any apps you want to install.
+
+![][4]
+
+- Click install after selecting your desired app.
+
+![Install Flatpak][5]
+
+- Click Ok when it prompts you to start the installation via Software.
+
+![Open Flatpackref via Software][6]
+
+- The Software will open and wait till the installation finishes.
+
+### How to update Flatpak after you install them?
+
+Updating Flatpak is super easy via the terminal. For example, if you want to update the above GIMP package, you need to run the below command.
+
+```
+flatpak update org.gimp.GIMP
+```
+
+So, this will update a single package. Replace your package’s name (i.e. Application ID) for your use case. If you don’t know the Application ID, run the command `flatpak list` from the terminal, and you will find it.
+
+If you want to update ALL the Flatpak packages in your system, simply run the following:
+
+```
+flatpak update
+```
+
+### How to uninstall a Flatpak?
+
+You can uninstall a package using the following command. Make sure to change the Application ID for your use case. You can find out the Application ID from the command `flatpak list`.
+
+```
+flatpak remove org.gimp.GIMP
+```
+
+### Closing Notes
+
+In this tutorial, I have explained how you can easily set up Flatpak and install apps from Flathub. Moreover, Flatpak applications are a great way to install and manage them easily. In my opinion, Flatpak will eventually dominate Snap and AppImage in the future.
+
+You may want to check out our other articles about [Flatpak][7], which include how to manage permission, various Flatpak commands and more.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-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://flatpak.org/
+[2]: https://flathub.org/repo/flathub.flatpakrepo
+[3]: https://flathub.org/apps
+[4]: https://www.debugpoint.com/wp-content/uploads/2018/07/Search-in-Flathub.png
+[5]: https://www.debugpoint.com/wp-content/uploads/2018/07/Install-Flatpak.png
+[6]: https://www.debugpoint.com/wp-content/uploads/2018/07/Open-Flatpackref-via-Software.png
+[7]: https://www.debugpoint.com/tag/flatpak
diff --git a/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md b/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md
new file mode 100644
index 0000000000..f9c464b5b8
--- /dev/null
+++ b/sources/tech/20221101.2 ⭐️ Uninstall Snap Packages from Ubuntu and Other Linux Distros.md
@@ -0,0 +1,117 @@
+[#]: subject: "Uninstall Snap Packages from Ubuntu and Other Linux Distros"
+[#]: via: "https://itsfoss.com/remove-snap/"
+[#]: author: "Abhishek Prakash https://itsfoss.com/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Uninstall Snap Packages from Ubuntu and Other Linux Distros
+======
+
+Installed Snap package earlier and now you want to uninstall it?
+
+To remove a snap package, use the command in the following fashion:
+
+```
+sudo snap remove package_name
+```
+
+You need to know the exact package name here. How do you get that? Let me discuss all this in a bit more detail.
+
+### Uninstall Snap packages
+
+You need the exact package name to remove it. The tab completion works too.
+
+For that, list all the snap packages installed on your system:
+
+```
+snap list
+```
+
+Do you notice some entries with ✓ check marks in the screenshot below? They are ‘verified’ snap [packages from official developers][1].
+
+![Listing all the installed Snap packages][2]
+
+If there are too many packages, you can grep with an appropriate search term.
+
+Once you get the package name, use it to uninstall the package.
+
+```
+sudo snap remove package_name
+```
+
+At least on the Ubuntu desktop, if you don’t use sudo with snap remove, it prompts for the password graphically. But it’s better to use sudo because you need elevated privileges for removing snap applications anyways.
+
+In my case, I installed Spotify on Ubuntu in snap format. Now, I remove it like this:
+
+```
+sudo snap remove spotify
+```
+
+It takes a few seconds and you should see some messages about the removal. By the end of the process, you only see the completion message.
+
+![uninstall snap package][3]
+
+And that’s how you remove applications installed in snap format.
+
+But what about removing snap entirely? Not the snap applications but the snap [daemon][4] itself.
+
+### Remove Snap entirely (not for Ubuntu)
+
+**WARNING! Please do not remove snapd and other core snap stuff from Ubuntu. Snap is an integral part of Ubuntu and removing them could have adverse consequences.**
+
+For non-Ubuntu distributions, where you manually installed Snap support, removing snapd should not create any problems.
+
+First, make sure that you don’t have any snap packages installed.
+
+```
+snap list
+```
+
+If there are any, remove those snap packages first.
+
+```
+sudo snap remove package1 package2 package3
+```
+
+On Debian, Linux Mint, elementary OS etc, use the apt command to remove snapd:
+
+```
+sudo apt remove --purge snapd
+```
+
+On Fedora-based distributions, use the DNF command:
+
+```
+sudo dnf remove snapd
+```
+
+Later on, you can remove the snap folder from your home directory and /var/cache/snapd if you are particular about that.
+
+### Conclusion
+
+This was a quick tutorial for showing the steps for uninstalling snap applications.
+
+Some people have a strong aversion to Snap because of its “close” nature. Personally, I don’t have any special liking or dislike for it. I prefer using apt but when I don’t get the required package or version, I go for other formats like Snap, Flatpak and AppImage.
+
+As I mentioned earlier, please don’t remove snap daemon from Ubuntu. It may leave you with a broken system and neither of us wants that.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/remove-snap/
+
+作者:[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://forum.snapcraft.io/t/verified-developers/2005
+[2]: https://itsfoss.com/wp-content/uploads/2022/11/list-installedsnap-packages.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/11/uninstall-snap-package.png
+[4]: https://itsfoss.com/linux-daemons/
diff --git a/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md b/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md
new file mode 100644
index 0000000000..8126c15ad3
--- /dev/null
+++ b/sources/tech/20221101.6 ⭐️⭐️ How to Install and Use GNOME Boxes to Create Virtual Machines.md
@@ -0,0 +1,169 @@
+[#]: subject: "How to Install and Use GNOME Boxes to Create Virtual Machines"
+[#]: via: "https://www.debugpoint.com/install-use-gnome-boxes/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install and Use GNOME Boxes to Create Virtual Machines
+======
+
+**This quick tutorial explains the steps to install and use GNOME Boxes and create virtual machines, with some tips and troubleshooting.**
+
+Virtualization is the process of running a virtual instance (rather than an actual one) with an abstracted layer of hardware. In popular terms, it allows you to install and run multiple operating systems (Linux, Windows) simultaneously.
+
+A [Virtual machine][1] is a simulated operating system that runs on top of another operating system and uses the same hardware and storage space as the host machine. Although, you can control how much shared memory or space can be allocated to virtual machines.
+
+Multiple software is available to create virtual machines, e.g. [Virtual Box][2], [virt-manager][3], KVM, Hyper-V, VM Ware player, and GNOME Boxes.
+
+But honestly, most of them are a little complex (for beginners) and sometimes not stable enough. [GNOME Boxes][4] is another free and open-source software that is very easy to use and makes it simple for you to create and manage virtual machines by abstracting lots of options.
+
+### Install GNOME Boxes
+
+If you are running Fedora with GNOME Spin, you should already have it installed. However, you can run the below for Ubuntu, Linux Mint, Kubuntu, and other distributions to install it in your system.
+
+```
+sudo apt install gnome-boxes
+```
+
+#### Via Flatpak
+
+It is also available via the Flatpak package. I would recommend you use this version. First, set up your system to use Flatpak using [this guide][5], and then run the following command from the terminal to install.
+
+```
+flatpak install flathub org.gnome.Boxes
+```
+
+### Create Virtual Machine using GNOME Boxes
+
+- Launch GNOME Boxes from the application menu.
+
+- To create a virtual machine, you need an image (*.ISO) of the operating system you want to virtualize.
+
+- You can download any operating system iso images from the official download page of the distributions. For this guide, I am using Pop! OS, which is an excellent Linux distribution.
+
+- After you launch, click on the “+” icon at the top to start and select “Create a virtual machine”.
+
+![Create Virtual Machine][6]
+
+Create Virtual Machine
+
+In the next window, you can choose already available downloads, or you can select your iso file as OS source. Click on the “Operating system image file” and choose your iso file.
+
+Assign the memory and storage space of your virtual machine. Remember, your virtual machine would take the memory and storage from your host system. So try not to assign as max.
+
+For example, in the below image – I have assigned 2GB memory for the virtual machine (guest) from the total 8GB memory of the host system.
+
+Similarly, choose minimum storage space as well if you want to just test any OS. But if you are creating a virtual machine for servers or serious work, be logical in how much space or memory you want to assign.
+
+Another important thing to remember is that the storage disk space which you allow will be blocked permanently unless you delete the virtual machine. So, you won’t get that much of disk space as free even if your virtual machine doesn’t use the entire allocated space.
+
+![Allocate resources for your virtual machine][7]
+
+Allocate resources for your virtual machine
+
+Continue with the installation.
+
+In the partition window, you should see one hard disk and partition, which is the virtual machine disk space. Usually, they are named as `/dev/vda` or `/dev/sda`.
+
+Don’t worry; you can play around with this partition, which will not impact your physical disk partitions or any data on your actual host system. Follow the same /root partition while installing Linux, and continue.
+
+![Virtual machine partition][8]
+
+Virtual machine partition
+
+After you complete the installation, you should see your new operating system in the virtual machine. In the GNOME Boxes, you should see an entry to the system. You can click once to boot your virtual machine.
+
+You can power off the virtual machine by using your virtual machine operating system’s internal shutdown option.
+
+If you want, you can also delete the virtual machine by choosing the context menu option.
+
+![Context menu in installed virtual machine][9]
+
+Context menu in installed virtual machine
+
+You can also check how much memory and CPU your virtual machine uses from the properties window.
+
+Note that you can adjust your existing virtual machines’ memory and other items using properties.
+
+![System properties][10]
+
+System properties
+
+### Troubleshooting
+
+Here are some common errors or issues you may face while using GNOME Boxes.
+
+##### 1. Display resolution problem in virtual machines
+
+If your virtual machine has low resolution, which is incompatible with your host system, you must install the items below. Open up the terminal in the guest system (not in the host system) and run the below commands.
+
+**For Ubuntu-based distributions**
+
+```
+sudo apt install spice-vdagent spice-webdavd
+```
+
+**For Fedora**
+
+```
+sudo dnf install spice-vdagent spice-webdavd
+```
+
+These two packages help to determine proper resolutions, copy/paste between host and guest, share files via public folders, etc.
+
+Once installed, reboot the guest system, Or you can log off and re-login once after reboot; you should see the proper resolution.
+
+##### 2. GNOME Boxes don’t start a virtual machine in Ubuntu 18.04
+
+If you are creating a virtual machine in Boxes 3.34 then you should know that there was a bug that caused your virtual machine to fail to start. To fix that you have to follow some additional steps. Remember these are not required for the latest Boxes 3.36.
+
+Open a terminal window and run the below command to change the qemu config file.
+
+```
+sudo gedit /etc/modprobe.d/qemu-system-x86.conf
+```
+
+Add the below line in the above file and save.
+
+```
+group=kvm
+```
+
+Now, run the below command to add your username to the KVM group.
+
+```
+sudo usermod -a -G kvm
+```
+
+### Wrapping Up
+
+In this article, you have seen how to install and use GNOME Boxes to take advantage of virtualization. I hope it helps you.
+
+🗨️ If you face any errors or have any questions about virtual machines with GNOME Boxes, let me know using the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/install-use-gnome-boxes/
+
+作者:[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.redhat.com/en/topics/virtualization/what-is-a-virtual-machine
+[2]: https://www.debugpoint.com/tag/virtualbox/
+[3]: https://www.debugpoint.com/virt-manager/
+[4]: https://wiki.gnome.org/Apps/Boxes
+[5]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/05/Create-Virtual-Machine.png
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/05/Allocate-resources-for-your-virtual-machine.png
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/05/Virtual-machine-partition.png
+[9]: https://www.debugpoint.com/wp-content/uploads/2020/05/Context-menu-in-installed-virtual-machine.png
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/05/System-properties.png
diff --git a/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md b/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md
new file mode 100644
index 0000000000..a981459f91
--- /dev/null
+++ b/sources/tech/20221101.8 ⭐️⭐️ Feren OS Review Clever KDE Distro for Easy Migration from Windows.md
@@ -0,0 +1,142 @@
+[#]: subject: "Feren OS Review: Clever KDE Distro for Easy Migration from Windows"
+[#]: via: "https://www.debugpoint.com/feren-os-review/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Feren OS Review: Clever KDE Distro for Easy Migration from Windows
+======
+
+**A review of Feren OS – a KDE Plasma and Ubuntu fusion specially designed for Windows users to help them migrate.**
+
+Over the years, many readers commented about Feren OS and its advantages on this website. I never got a chance to try this distribution in terms of its benefits and why it stands out among hundreds of distros.
+
+So, here’s a review of the great Feren OS.
+
+### Feren OS Review
+
+First and foremost, its creators designed and marketed it as an ideal replacement for Windows and macOS. At its core, it’s based on Ubuntu LTS with a base KDE Plasma desktop and additional tweaks. However, it does bring several goodies specially designed for Windows users. A lot on that a little later. Let’s download and install it.
+
+#### Download and Install
+
+The Feren OS (20.04) ISO file is about 2.5 GB, and it has only one variant for KDE Plasma – which is the only offering. However, the download took around 6 hours from SourceForge.
+
+A few interesting things happened when I booted this up in a VM ([virt-manager][1]). During my years of [distro review][2], I haven’t seen any distro do this.
+
+First, the LIVE medium understood that I was using the virtual machine and changed the compositor by itself to Xrender for better performance in VM. Second, it also gave the option to install guest additions for VirtualBox and VM Tools for VM Ware for additional functionalities.
+
+![Virtual Machine detected by Feren OS installer][3]
+
+Moreover, Feren OS gave options to transfer files from the Windows partition before installing the system! And an option to choose the desktop layout if you are installing it on a touch-based device.
+
+![You can take backups of Windows data before install][4]
+
+The installer is Calamares and not Ubuntu’s Ubiquity, although it depends on Ubuntu LTS. While installing the system, Feren OS doesn’t do the account creation, keyboard and other selections. It prompts you for user account creation and additional info after the first reboot and post-installation. Fedora Linux workstation edition does this via the Anaconda installer.
+
+Apparently, it is probably nothing. But from a Windows user’s perspective, an “easy install” experience is important, and I believe the team made an excellent decision on this.
+
+Finally, the installation went smooth, and no such surprises there.
+
+#### First boot and looks
+
+During the first boot, you need to set up the user accounts and other initial settings. The wizard gives you options to choose the light/dark theme, desktop layouts and different initial configs. This is a nice touch and looks professional.
+
+The KDE Plasma desktop is nice and clean with the pre-configured taskbar and the Breeze theme. The taskbar has the application menu on the left side. In the middle of the taskbar, you find the shortcut to Vivaldi, File manager and homegrown Store. And at the right is a traditional system tray.
+
+![Feren OS Desktop][5]
+
+Feren OS pre-loads a good set of Plasma Global Themes other than the usual Breeze variants. All of them are perfect and give your desktop a nice touch with just one click. As of the current version, you get Feren OS, Hooman, Dooars and Mac n’ Cheese theme. In addition, you also can get the Tablet and Classic settings of the desktop. It also features the Inspire icon theme and DMZ cursor theme by default.
+
+#### Workspaces and Full-screen Application View
+
+One of the unique features I want to highlight is the default workspace configuration that Feren OS brings. By default, there are four desktops to work with. At the taskbar, there is an icon which brings up the new workspaces in the KDE Plasma desktop.
+
+![Feren OS - Default four desktops][6]
+
+If you apply the pre-defined macOS theme, the application view is quite spectacular (which is a KDE widget, btw). It even searches the apps and individual settings when you start typing. See the image below.
+
+![Fullscreen app menu with dynamic search][7]
+
+Also, the global menu gives you the extra edge and precious screen space for your workflow.
+
+#### Native and Installed Applications
+
+Let’s talk about some exciting app choices that Feren OS installs by default.
+
+Although it’s based on KDE Plasma, some apps are chosen carefully based on their features and performances. For example, the file manager is Nemo instead of Dolphin, which is a good choice since Nemo is an awesome file manager.
+
+In addition, Feren OS packages Geary [email desktop client][8], GDebi package manager, Timeshift backup utility, and VLC Media player – some of the essential non-KDE Apps.
+
+The native apps are quite interesting.
+
+A native app called “Store” manages application search, installation and uninstall. It’s a homegrown tool which looks similar to GNOME’s Software. It supports usual categories and one-click installation. However, it seems it doesn’t support managing software sources. I belives that’s the reason Synaptic package manager is installed by default.
+
+![Natively designed Store manager][9]
+
+Other than that, there is an app, “Web Browser Manager”, which lets you install additional browsers with just one click. It’s interesting to see a dedicated app to manage just the web browsers.
+
+#### A note about the Transfer Tool
+
+Since its target audiences are Windows users, it brings a dedicated tool to transfer data from your Windows partitions and helps you to take backups to a custom target drive or device. The tool can easily detect generic Windows folders such as Documents, Users, Pictures, Videos etc.
+
+![Feren OS Transfer Tool][10]
+
+It’s a handy tool if you want a quick backup of your Windows partition. More importantly, you can use this in a LIVE medium without installing Feren OS.
+
+#### Performance
+
+You might have guessed about FerenOS’s performance as it’s based on Ubuntu LTS and KDE Plasma desktop. The performance, in simple words, is the same as that of Kubuntu.
+
+In an idle state (i.e. desktop is boot and kept inactive), it consumes around 1.8 GB of memory, and the CPU is at 4% to 8%. The latte dock consumes most system resources and plasma desktop, followed by the KWin. This is when the macOS theme is enabled.
+
+![Feren OS - Performance at Idle State][11]
+
+Next, I make it run through heavy workload situations with one instance each for File manager, media player, Vivaldi browser, image editor, LibreOffice and Console application. At this heavy performance stage, Feren OS consumes around 2.1 GB of system memory, and the CPU is hovering at 8 to 10 %.
+
+![Feren OS - Performance at Heavy workload State][12]
+
+I think it’s an impressive performance metric in the heavy workflow state. I was expecting a little higher memory and CPU consumption.
+
+The only reason I believe the performance is better in a heavy workflow state is not to use Firefox or Chrome. Vivaldi is performing better in the memory utilization space than that Firefox or Chrome.
+
+### Wrapping Up
+
+Feren OS is one of those Linux distros which packs a default look with Stability together. It’s one of the “not-so-popular” & mainstream distros with many prospects. Its unique way of implementing several critical items, from installation to the first experience for a new or migrated Windows user, is a great touch.
+
+Besides, its in-house apps and utilities are one of the best implementations for a distro targeted at Windows users. And the Ubuntu LTS base gives them an edge over the players.
+
+The only drawback I can see is the major release is a little delayed. For example, the Ubuntu 22.04 LTS version is not yet out. Perhaps the delay is because of a small dev team.
+
+But, besides that, it’s a perfect and ready-to-use daily driver. You may give it a try.
+
+You can download Feren OS from the [official website][13].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/feren-os-review/
+
+作者:[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/virt-manager/
+[2]: https://www.debugpoint.com/tag/linux-distro-review
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/07/Virtual-Machine-detected-by-Feren-OS-installer.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/07/You-can-take-backups-of-Windows-data-before-install.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Desktop.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Default-four-desktops.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/07/Fullscreen-app-menu-with-dynamic-search.jpg
+[8]: https://www.debugpoint.com/best-email-client-linux-windows/
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/07/Natively-designed-Store-manager.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Transfer-Tool.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Idle-State.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/07/Feren-OS-Performance-at-Heavy-workload-State.jpg
+[13]: https://ferenos.weebly.com/get-feren-os.html
diff --git a/sources/tech/20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md b/sources/tech/20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md
new file mode 100644
index 0000000000..0326410d91
--- /dev/null
+++ b/sources/tech/20221101.9 ⭐️⭐️ Garuda Linux All-Rounder Distro Based on Arch Linux.md
@@ -0,0 +1,167 @@
+[#]: subject: "Garuda Linux: All-Rounder Distro Based on Arch Linux"
+[#]: via: "https://www.debugpoint.com/garuda-linux-review-2022/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Garuda Linux: All-Rounder Distro Based on Arch Linux
+======
+
+**A review of the Arch Linux based Garuda Linux, which brings a collection of desktop environments, window managers, and tools for general users and gamers.**
+
+Over the years, we [reviewed][1] a couple of Arch-based distros – spread across new ones, stables distros and more. Each one of them is a little different from the others. Finally, we review the Garuda Linux in 2022 – it’s our first review of this distro, and we will continue with all the major releases.
+
+![Garuda Linux Desktop (2022)][2]
+
+### What does it offer?
+
+There are many customized and easy-to-use Arch-based Linux distributions available. Every one of those tries to present something new other than just another variant of Arch Linux.
+
+Garuda Linux does offer a few new features compared to others.
+
+Firstly, it **brings almost all popular desktops and window managers** such as KDE, Xfce, GNOME, LXQt-kwin, Cinnamon, Mate, Wayfire, Qtile, i3wm and Sway.
+
+Second, it offers the **default BTRFS file system with zstd compression** for better performance. In addition, it provides the popular **Chaotic-Aur**, which contains a vast collection of pre-compiled binaries from AUR. Moreover, a group of hand-picked themes, icons and cursors give Garuda Linux an edge over the other Arch-based distros.
+
+Finally, its primary selling point is i**ts pre-made for Gaming in Arch Linux** with native apps such as Garuda Gamer and the option for Zen Kernel.
+
+### Garuda Linux Review – 2022 Edition
+
+This review is based on Garuda’s default offering, i.e. Garuda dragonized zen kernel with KDE Plasma (April 28, 2022 iso).
+
+#### Download and Installation
+
+![Garuda Linux - boot screen][3]
+
+The download via torrent was fast without any problems. The LIVE boot asks whether you want to boot using open-source or NVIDIA drivers. Finally, the welcome screen is well designed and gives you clear instructions to launch the installer.
+
+Garuda offers **separate ISO files for different desktops** and window managers. Because a massive set of packages pre-loaded in ISO files also gives you the option for the LITE version with KDE Plasma. The LITE versions are the base Garuda Linux without additional theming and packages.
+
+So, pick the one you want for your needs.
+
+Garuda Linux uses **Calamares** installer. The Calamares are not configured heavily, and installation is pretty straightforward. However, Calamares doesn’t give you the option to choose the desktop environments or packages. As I mentioned above, it has a separate installer for each of those.
+
+During my test, the installation went smoothly, and it took around 5 minutes to launch the LIVE medium to completion in an Intel i5, 8 GB, SSD configuration. **It’s blazing fast, in my opinion.**
+
+#### Look and Feel
+
+After the successful installation, you see a **nice login screen** (SDDM with themes). It is well designed and aligned with Garda Linux’s design patterns.
+
+![The Login screen (SDDM) of Garuda Linux][4]
+
+The KDE Plasma desktop is heavily customized in terms of look in Garuda Linux. Firstly, the Latte dock is well placed with essential shortcuts at the bottom. No unnecessary shortcuts are there, which is nice.
+
+![Garuda Linux Desktop with Latte dock][5]
+
+Second, at the top bar, you get the application menu of KDE Plasma with Latte dock widgets. All the widgets are well placed and necessary for all user bases. By default, the top bar contains NEtSpeed widgets, clipboard and volume controls and the event calendar widget of the Latte dock.
+
+Garuda Linux uses **Kvantum theme engine** with “sweetified-plasma” theme with kvantum-dark application style, giving it its unique look. In addition, the famous BeautyLine icon theme provides the much-needed contrast (as designed) to this distro.
+
+#### Initial Setup and Applications
+
+Firstly, the initial setup gives you several options to quickly configure your desktop before your first use.
+
+A series of terminal-based operations is provided by its welcome applications, such as system upgrades.
+
+The welcome application gives an assorted list of Garuda utilities, ranging from system configurations to changing looks. It includes system cleaner, partition manager, Chaotic-aur managers, Gaming utilities, etc.
+
+Not only that, but it also provides access to Garuda services for its users directly from the desktop. It helps new to advanced users in terms of discovery of the services and features.
+
+![Garuda Welcome App][6]
+
+Now, I would like to highlight two crucial apps in this Garuda Linux review.
+
+First, the **Snapper tool** gives you controls to **create system restore points**using several options. If your system breaks at some point, you can always restore it to a stable state using this utility. This is one of the much-needed applications, considering it’s a rolling release.
+
+![The Snapper Tools for system restore points][7]
+
+Second, the **Octopi software manager**(similar to synaptic) gives you access to all necessary packages in the Arch repo. You can easily install with one click after verifying the dependencies. Moreover, it also gives you the ability to add and remove Arch repositories via GUI.
+
+It’s worth mentioning here that Garuda includes “chaotic-aur” and “multilib” repo by default in addition to the typical “community”, “extra”, and “core” repo.
+
+![Octopi Software Manager][8]
+
+#### The Browser
+
+Garuda doesn’t provide a Firefox web browser by default. It includes the **customized LibreWolf-based [FireDragon][9] web browser**, which integrates well with the KDE Plasma desktop.
+
+In addition, UBlock Origin and Dark Reader add-ons are pre-installed in FireDragon. The FireDragon web browser uses Garuda’s server for searching the web. I am not entirely sure whether it connects to Google in the backend.
+
+![FireDragon Web browser][10]
+
+In addition to the above apps, Garuda uses the advanced Fish shell for command line work. However, LibreOffice and other graphical utilities are not installed by default.
+
+#### Performance and Resource Usage
+
+Garuda is a little resource-heavy, even in an idle state. It consumed around 17% of CPU and RAM usage of approximately 1.2 GB at idle. And if you open more apps, then it will further shoot up.
+
+The htop shows that most of the idle state resources are consumed by KWin. I am not sure why there are five forks of KWin running (perhaps for Kvuntam and other theming). I cross-checked this with a standard Plasma installation, where only one process of KWin runs.
+
+The default KDE Plasma edition of Garuda Linux takes around 6.4 GB of disk space.
+
+![Garuda Linux Performance - Idle State][11]
+
+With the above performance metric, you may be unable to run it in low-end hardware. I recommend using an Intel i7 or similar system with at least 8GB of memory for better performance. However, the official system requirement states 4 GB of memory as below.
+
+- 30 GB storage space
+- 4 GB RAM
+- Video card with OpenGL 3.3 or better
+- 64-bit system
+
+Also, it is worth mentioning that other flavours, such as GNOME, Cinnamon etc., should have much better performance metrics.
+
+### Things which grabbed my attention
+
+Garuda requires 30 GB of disk space, which I overlooked before installing. And it also seems a hard requirement, and the Calamares installer is configured that way. So, you must have a minimum of 30 GB of root partition to install this version of Garuda Linux.
+
+Moreover, it takes around 6 GB of disk space for a default install, and I am not sure why the 30 GB limit is too hardcoded in the installer.
+
+![Garuda Linux requires min 30 GB disk space for installation][12]
+
+While Garuda Linux looks wonderful, I feel the default theming and colour contrast are a little “too much”. It feels excellent with high contrast colours on a dark backdrop at first look. But it does look a little “fanboy” type. Although look and feel are subjective, everyone has a different taste.
+
+But always, you can change the themes, icons and whatnot with just a click in KDE Plasma.
+
+### Closing Notes
+
+Finally, to wrap up the Garuda Linux review of 2022, I must say it is one of the Arch-based distros which stands out from the other distros in the same category. Due to its popularity and active participation from the user base, it shall not be discontinued in the future.
+
+From a general user’s perspective, community help is available via several active channels (which can be accessed via shortcuts from the welcome screen).
+
+If you are keen on gaming, zen Kernel and passionate about Arch Linux, you can choose Garuda. The use case of this distro may vary. I would not recommend it for serious development, projects, media related work.
+
+Then again, Garuda undoubtedly brings unique apps to manage Arch Linux, which is also a plus point. If you need a fancy-looking Arch-based distro to start your Linux journey, it’s perfect.
+
+That said, you can download Garuda Linux from the [official website][13].
+
+And do let me know your opinion about Garuda in the comment box down below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/garuda-linux-review-2022/
+
+作者:[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/tag/linux-distro-review
+[2]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Desktop-2022.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-boot-screen.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-Login-screen-SDDM-of-Garuda-Linux.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Desktop-with-Latte-dock.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Welcome-App.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/05/The-Snapper-Tools-for-system-restore-points.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/05/Octopi-Software-Manager.jpg
+[9]: https://github.com/dr460nf1r3/firedragon-browser
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/05/FireDragon-Web-browser.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-Performance-Idle-State.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/05/Garuda-Linux-requires-min-30-GB-disk-space-for-installation.jpg
+[13]: https://garudalinux.org/downloads.html
diff --git a/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md b/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md
new file mode 100644
index 0000000000..0248cc800c
--- /dev/null
+++ b/sources/tech/20221103.4 ⭐️ How to Install and Use Snap Packages in Ubuntu.md
@@ -0,0 +1,160 @@
+[#]: subject: "How to Install and Use Snap Packages in Ubuntu"
+[#]: via: "https://www.debugpoint.com/how-to-install-and-use-snap-packages-in-ubuntu/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install and Use Snap Packages in Ubuntu
+======
+
+**A tutorial on how to find, install and maintain snap packages in Ubuntu.**
+
+Snappy (in short, Snap) packages are transactional packages developed by Canonical for Ubuntu for its line of solution offerings. Due to its transactional nature, snap packages can be used in across Linux Distributions. Snap packages are handy due to their atomic update in nature for critical industrial use cases such as IoT.
+
+The packages can be found and installed via the command line, primarily from a web store called [Snapcraft][1]. The snap packages can also be downloaded from this store as .snap files, containing all the dependencies needed inside the .snap package.
+
+The installed snap software is installed in their respective folders and doesn’t interfere with the rest of the system. That means if you have installed software via typical `apt-get install xyz` and installed the same software by installing`xyz.snap`, then both versions of the same software can co-exist on your PC without interfering with each other.
+
+In contrast, [Flatpak][2] also has a similar concept and offers much more robust offerings, mainly for GUI-driven apps.
+
+This article will show you how to perform basic operations with snap via the command line.
+
+### How to install and manage Snap packages in Ubuntu
+
+#### 1. Find a Snap Package
+
+To find a snap package, run the below command. It will give you a list of all available snap packages, their version and description.
+
+```
+snap find
+```
+
+![snap find][3]
+
+You can give the name as an argument to find a specific snap package.
+
+```
+snap find name_of_package
+```
+
+![snap find name][4]
+
+#### 2. Install a Snap Package from Command Line
+
+To install a snap package, run the below command with the snap package name.
+
+```
+sudo snap install name-of-the-package
+```
+
+![snap install][5]
+
+The command will install the package with all of its dependencies in your system. In addition, you can also see the progress of your installation.
+
+After installation, you can launch the application directly from the application menu.
+
+#### 3. Updating Snap Package
+
+You can update an installed snap package by using the below command:
+
+```
+sudo snap refresh name-of-the-package
+```
+
+![snap refresh][6]
+
+#### 4. List your installed snaps
+
+To list down all the snap packages installed in your system, use the below command;
+
+```
+snap list
+```
+
+![snap list][7]
+
+#### 5. Removing (or uninstalling) a snap package
+
+To remove a snap package from your system, run the below command:
+
+```
+sudo snap remove name-of-the-package
+```
+
+![snap remove][8]
+
+#### 6. View Snap Activity
+
+To view the recent changes done using snap in your system, run the below command. This will give the installed/updated activity list in those snap packages with the date and time stamps.
+
+```
+snap changes
+```
+
+![snap changes][9]
+
+#### 7. Handling Snap Errors
+
+There are some errors you may encounter while installing/maintaining snap packages. E.g. while downloading a snap package via command `snap install`, if you press `CTRL+C` for abort, then you may get the below error while trying for the second time and so on. This is so bad that you can’t even install any other snap packages.
+
+```
+error: can't install "notes": snap "ubuntu-core" has changes in progress.
+```
+
+![snap err][10]
+
+Ideally, when you do the same when installing via the apt install command, apt will take care when you run it for the second time.
+
+**To solve this error, follow these steps:**
+
+- Run the below command to find out the ID of the error installation.
+
+```
+snap changes
+```
+
+![snap changes abort][11]
+
+- As you can see, ID=7 is the installation which I aborted. Now, run the below command with the ID.
+
+```
+sudo snap abort 7
+```
+
+![snap abort][12]
+
+- This will abort the pending change that still has a pending task. Now you can continue installing the same package or a different package.
+
+### Closing Notes
+
+In this article, you learned some fundamental commands for managing snap packages in the Ubuntu system via the terminal. This should get you started for now. Also, for more common tasks such as install and remove – you can visit snapcraft.io and use install methods there. Further documentation about snap is available in the [official reference][13].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/how-to-install-and-use-snap-packages-in-ubuntu/
+
+作者:[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://snapcraft.io/
+[2]: https://www.debugpoint.com/how-to-install-flatpak-apps-ubuntu-linux/
+[3]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-find.png
+[4]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-find-name.png
+[5]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-install.png
+[6]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-refresh.png
+[7]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-list.png
+[8]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-remove.png
+[9]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-changes.png
+[10]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-err.png
+[11]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-changes-abort.png
+[12]: https://www.debugpoint.com/wp-content/uploads/2016/07/snap-abort.png
+[13]: https://snapcraft.io/docs
diff --git a/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md b/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md
new file mode 100644
index 0000000000..f2b7a88691
--- /dev/null
+++ b/sources/tech/20221104.2 ⭐️ Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows.md
@@ -0,0 +1,113 @@
+[#]: subject: "Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows"
+[#]: via: "https://www.debugpoint.com/libreoffice-upgrade-update-latest/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Upgrade to Latest LibreOffice in Ubuntu, Linux Mint and Windows
+======
+
+**This beginner’s guide explains the steps required to upgrade to the latest LibreOffice in Ubuntu, Linux Mint****and Windows.**
+
+![LibreOffice 7.3.x Community Edition in Ubuntu 22.04 LTS Jammy Jellyfish][1]
+
+[LibreOffice][2], used by millions of users worldwide, is the most popular free office suite today. It consists of a spreadsheet program (Calc), document processor (Writer), presentation (Impress), drawing (Draw), and Math module to help you with most of the office, business, academic, and day-to-day work.
+
+LibreOffice can act as an excellent replacement for paid Microsoft Office suite due to its compatibility with proprietary file formats such as DOCX, PPTX, and XLSX. It is a fork of the Apache OpenOffice productivity suite and is actively developed by thousands of global contributors.
+
+![LibreOffice Logo][3]
+
+### Upgrade to Latest LibreOffice
+
+LibreOffice recently changed its versioning methods from the Fresh and Still concept. Now, LibreOffice has a **community** edition and a recommended **enterprise** edition. This is because many businesses use the latest LibreOffice version with cutting-edge features, hampering the development effort. Hence the team suggested the business users get paid support from official LibreOffice partners for long-term support. You can read the blog post [here][4].
+
+That said, here are the current versions.
+
+#### Latest LibreOffice Versions
+
+- The current LibreOffice Community version series is **LibreOffice 7.4.x.**
+- And the LibreOffice stable recommended version for business is **LibreOffice 7.3.x**.
+
+#### Upgrade to Latest LibreOffice in Ubuntu, Linux Mint, and Other Ubuntu Based distributions
+
+[Ubuntu 22.04 LTS Jammy Jellyfish][5] have LibreOffice 7.3.x.
+
+**Ubuntu 20.04 LTS** has LibreOffice 6.4.7 at the moment, and soon it will get the update for the next iteration.
+
+**Ubuntu 18.04 LTS,** supported until[April 2023][6], has the LibreOffice 6.2 version. Linux Mint 19.x also provides the same. You can still download and install LibreOffice 6.3.x version in Ubuntu 18.04 or Linux Mint 19.x.
+
+It is always wiser to stick to the LibreOffice version provided by the distribution. Moreover, unless you need the latest features, you should not upgrade. If you like to experiment, you can go ahead.
+
+##### Via PPA
+
+- You can install and upgrade to the latest Fresh version using the official LibreOffice PPA. Open a terminal and run the below commands in Ubuntu or Linux Mint.
+
+```
+sudo add-apt-repository ppa:libreoffice/ppa
+```
+
+```
+sudo apt update && sudo apt install libreoffice
+```
+
+- To **downgrade** LibreOffice and remove the PPA, run the below commands from the terminal sequentially.
+
+```
+sudo add-apt-repository --remove ppa:libreoffice/ppa
+```
+
+```
+sudo apt install ppa-purge && sudo ppa-purge ppa:libreoffice/ppa
+```
+
+##### Via Snap
+
+You can also have the option to install the latest LibreOffice as Snap via the below option. [Snap packages][7] can be used across supported Linux distributions as a standalone package. Thus, you can keep your existing installation of LibreOffice and still run the latest Snap version.
+
+Remember that technically you can run two versions of LibreOffice in parallel using one Snap version. However, ensure there might be slight file association issues and other problems. This applies to Flatpak as well.
+
+[Download LibreOffice as Snap][8]
+
+##### Via Flatpak
+
+Flatpak is another way by which you can have the latest LibreOffice alongside the distro-provided version. You can [set up your system for Flatpak][9] and download LibreOffice via the below link.
+
+[Download LibreOffice as Flatpak][10]
+
+#### Upgrade for Windows
+
+For Windows, you can’t upgrade directly from the existing installation. You can download the latest LibreOffice from [this page][11] and do the installation. During installation, your existing version would be uninstalled.
+
+### Upgrade Troubleshooting
+
+If you encounter any problems or system instability after the upgrade, it is better to do a clean install. So, you can download the latest copy from [this link][11] and install it. If you are using Ubuntu or Linux Mint, don’t forget to remove the stock version first before installing the latest version.
+
+Finally, drop a comment below if you face issues while upgrading to the latest LibreOffice in Ubuntu Linux and others.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/libreoffice-upgrade-update-latest/
+
+作者:[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/2019/09/LibreOffice-7.3.x-Community-Edition-in-Ubuntu-22.04-LTS-Jammy-Jellyfish.jpg
+[2]: https://www.libreoffice.org/
+[3]: https://www.debugpoint.com/wp-content/uploads/2019/09/LibreOffice-Icon.png
+[4]: https://blog.documentfoundation.org/blog/2021/02/03/libreoffice-7-1-community/
+[5]: https://www.debugpoint.com/2022/01/ubuntu-22-04-lts/
+[6]: https://www.debugpoint.com/ubuntu-release-dates-wiki/
+[7]: https://www.debugpoint.com/2016/07/how-to-install-and-use-snap-packages-in-ubuntu/
+[8]: https://snapcraft.io/libreoffice
+[9]: https://www.debugpoint.com/2018/07/how-to-install-flatpak-apps-ubuntu-linux/
+[10]: https://flathub.org/apps/details/org.libreoffice.LibreOffice
+[11]: https://www.libreoffice.org/download/download/
diff --git a/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md b/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md
new file mode 100644
index 0000000000..1b94a34692
--- /dev/null
+++ b/sources/tech/20221104.6 ⭐️⭐️ 10 Best Open Source Bots for Your Discord Server.md
@@ -0,0 +1,245 @@
+[#]: subject: "10 Best Open Source Bots for Your Discord Server"
+[#]: via: "https://itsfoss.com/open-source-discord-bots/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+10 Best Open Source Bots for Your Discord Server
+======
+
+Discord started as a platform where gamers and friends could hang out. **[Discord][1] has over 150 million users** in **2022**, even after [turning down][2] a **$12 billion offer from Microsoft**.
+
+If it is your first time hearing about it, consider it something like Slack, but with countless fun functionalities to create communities (i.e., servers).
+
+Among all the features, Discord bots allow automating things or spice up your server. But most of them are proprietary. So, in this list, I suggest some of the **best open-source Discord bots**.
+
+**Note:**Bots can spread malware and affect your entire Discord server. You must ensure that you do not add bots you do not know about. And this is why you might want to trust open-source Discord bots more than other options.
+
+### 1. MonitoRSS
+
+![monitorss itsfoss][3]
+
+Highlights:
+
+- **RSS Feed**
+- **Filters and Subscriptions**
+- **Hosted**
+
+[MonitoRSS][4] is a useful Discord bot that enables your community to receive news from any sources that support RSS.
+
+It is a reasonably popular bot that works as expected. You can add it to a particular channel, customize its look, and start getting news updates on your Discord server.
+
+It also lets you filter articles for your feed and allow users to subscribe to an article as per their liking. This can be managed and customized using a web interface control panel.
+
+Explore more on its [GitHub page][5].
+
+### 2. ModMail
+
+![modmail discord][6]
+
+Highlights:
+
+- **Enables users to contact server staff**
+- **Self-host**
+- **Hosted version**
+- **Optional premium**
+
+[ModMail][7] is a simple open-source Discord bot that seamlessly lets a user contact the staff/admins/moderators of a Discord channel.
+
+Traditionally, you have to reach out to multiple people via DMs to expect help on something you want to know. However, some servers have many users, so it may be difficult for the server staff to get back to you.
+
+ModMail creates a separate channel when you send a message to the bot. And this channel acts as a shared inbox to all the administrators, mods, and you.
+
+![modmail bot][8]
+
+Not only does easy messaging, but it also helps the server staff to conveniently read past transcripts, enable automated replies, save snippets of them, respond anonymously, and more. Some features are premium-only.
+
+You can check out its [official website][9] and [GitHub page][10] for more info. It also gives you all the necessary information to self-host it.
+
+### 3. Red Discord Bot (Self-Hosted)
+
+![red discord bot][11]
+
+Highlights:
+
+- **Highly Customizable**
+- **Moderation****tasks**
+- **Good documentation**
+- **Multipurpose**
+
+[Red][12] is an entirely modular bot that provides you with many functions, including music, moderation, trivia, stream alerts, and more.
+
+Red should be useful whether you want it to send welcome messages or help moderate the server.
+
+Unlike some others, you cannot add the bot directly to your server. You will have to self-host it, configure it, and then get the ability to add it to your server.
+
+The installation does not need any sort of coding; you have to follow the [documentation][13].
+
+### 4. Discord Music Bot (Self-Hosted)
+
+![discord music bot][14]
+
+Highlights:
+
+- **It****supports Spotify, SoundCloud, and YouTube**.
+- **It offers shuffling, volume control, and a web dashboard to manage it all**.
+
+[Discord Music Bot][15] (not a unique name, I know) is a pretty popular Discord bot that you can self-host.
+
+It supports Spotify, SoundCloud, and YouTube. Some features include shuffling, volume control, and a web dashboard.
+
+You can follow the instructions on its [GitHub page][15] to install and configure it for your server.
+
+### 5. Discord Tickets (Self-Hosted)
+
+![discord tickets][16]
+
+Highlights:
+
+- **Ticket management**
+- **Add custom branding for free**
+
+Do you have customers for your services/products on Discord? You can use [Discord Tickets][17] to manage/create tickets and add your branding for free.
+
+Most of the Discord’s popular ticket management bots are proprietary and require a premium subscription to add your brand logo.
+
+With Discord Tickets, you can self-host and customize as per your requirements. Explore more about it on its [GitHub page][18].
+
+### 6. EvoBot (Self-Hosted)
+
+![evobot][19]
+
+Highlights:
+
+- **Highly customizable**
+- **Search for music or use a URL to play**
+
+[EvoBot][20] is yet another open-source music Discord bot with lots of customization options.
+
+You can play music from YouTube and SoundCloud using its URL or search/play.
+
+Explore more about its installation and configuration on its [GitHub page][20].
+
+### 7. Atlanta Bot
+
+![atlanta bot][21]
+
+Highlights:
+
+- **Hosted version**
+- **Self-host option**
+- **Web dashboard**
+- **Multipurpose**
+
+[AtlantaBot][22] is yet another all-in-one bot that provides functionalities for moderation, music, fun commands, and several commands.
+
+Furthermore, it features its dashboard with valuable options. You can set up the dashboard and manage your server/configuration through it. You can also perform limited translations using the bot.
+
+It can be self-hosted, but if you would rather not make an effort, you can invite a hosted version of the bot.
+
+### 8. YAGPDB (Self-Hosted)
+
+![reddit feed yagpdb][23]
+
+Highlights:
+
+- **Custom commands**
+- **Automatic moderator**
+- **Reddit/YouTube feed**
+- **Moderation****tasks**
+
+[YAGPDB][24] stands for **Yet Another General Purpose Discord Bot**.
+
+With this bot, you can quickly perform general moderation tasks, add custom commands, create an automatic moderator, manage/create roles, and pull Reddit/YouTube feeds.
+
+It is configurable. So, you can do more with it than what I just mentioned. Explore more about it on its [GitHub page][25].
+
+### 9. Loritta
+
+![loritta][26]
+
+Highlights:
+
+- **Hosted version**
+- **Self-host option**
+- **Engagement and Moderation features.**
+
+If you are looking for a multipurpose Discord bot with an interesting character, [Loritta][27] would be a good pick.
+
+It supports moderation, entertainment, and automation features. You can self-host it or use the hosted version.
+
+The developer presents the bot as a girl who helps you moderate, entertain, and engage the members of your server. Additionally, it offers a premium plan for some extra perks.
+
+Explore more about it on its [GitHub page][28].
+
+### 10. Melijn
+
+![melijn][29]
+
+Highlights:
+
+- **Hosted version**
+- **Self-host option**
+- **Moderation features.**
+
+[Melijn][30] is yet another multipurpose bot for Discord servers.
+
+You can interact with audio commands, moderate, perform user verifications, and create role groups.
+
+It offers a hosted version and lets you self-host it, following the instructions on its [GitHub page][31].
+
+### What’s Your Favorite Discord Bot?
+
+If you are a Discord server moderator or admin, what bot do you like to use for your community?
+
+Do you focus on moderation features or engagement features? What are the standard features that you look for in a Discord bot?
+
+Share your thoughts in the comments below.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/open-source-discord-bots/
+
+作者:[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://discord.com/company
+[2]: https://www.bloomberg.com/news/articles/2021-04-20/chat-app-discord-is-said-to-end-takeover-talks-with-microsoft
+[3]: https://itsfoss.com/wp-content/uploads/2022/11/monitorss-itsfoss.jpg
+[4]: https://monitorss.xyz
+[5]: https://github.com/synzen/MonitoRSS
+[6]: https://itsfoss.com/wp-content/uploads/2022/11/modmail-discord.jpg
+[7]: https://modmail.xyz/
+[8]: https://itsfoss.com/wp-content/uploads/2022/11/modmail-bot.png
+[9]: https://modmail.xyz/premium
+[10]: https://github.com/chamburr/modmail
+[11]: https://itsfoss.com/wp-content/uploads/2022/11/red-discord-bot.png
+[12]: https://github.com/Cog-Creators/Red-DiscordBot
+[13]: https://docs.discord.red/en/stable/
+[14]: https://itsfoss.com/wp-content/uploads/2022/11/discord-music-bot.png
+[15]: https://github.com/SudhanPlayz/Discord-MusicBot
+[16]: https://itsfoss.com/wp-content/uploads/2022/11/discord-tickets.jpg
+[17]: https://discordtickets.app
+[18]: https://github.com/discord-tickets/bot
+[19]: https://itsfoss.com/wp-content/uploads/2022/11/evobot.png
+[20]: https://github.com/eritislami/evobot
+[21]: https://itsfoss.com/wp-content/uploads/2022/11/atlanta-bot.png
+[22]: https://github.com/Androz2091/AtlantaBot
+[23]: https://itsfoss.com/wp-content/uploads/2022/11/reddit-feed-yagpdb.png
+[24]: https://yagpdb.xyz
+[25]: https://github.com/botlabs-gg/yagpdb
+[26]: https://itsfoss.com/wp-content/uploads/2022/11/loritta.jpg
+[27]: https://loritta.website/us/
+[28]: https://github.com/LorittaBot
+[29]: https://itsfoss.com/wp-content/uploads/2022/11/melijn.jpg
+[30]: https://melijn.com
+[31]: https://github.com/ToxicMushroom/Melijn
diff --git a/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md
new file mode 100644
index 0000000000..08bd33cad8
--- /dev/null
+++ b/sources/tech/20221104.7 ⭐️ How to iterate over tables in Lua.md
@@ -0,0 +1,184 @@
+[#]: subject: "How to iterate over tables in Lua"
+[#]: via: "https://opensource.com/article/22/11/iterate-over-tables-lua"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to iterate over tables in Lua
+======
+
+Create structure that makes it easier to find stored data.
+
+In the [Lua][1] programming language, an array is called a table. A table is used in Lua to store data. If you're storing a lot of data in a structured way, it's useful to know your options for retrieving that data when you need it.
+
+### Creating a table in Lua
+
+To create a table in Lua, you instantiate the table with an arbitrary name:
+
+```
+mytable = {}
+```
+
+There are different ways you can structure your data in a table. You could fill it with values, essentially creating a list (called a list in some languages):
+
+```
+mytable = {'zombie','apocalypse'}
+```
+
+Or you could create an associated array (called a map or dictionary in some languages). You can add arbitrary keys to the table using dot notation. You can also add a value to that key the same way you add a value to a variable:
+
+```
+myarray = {}
+myarray.baz = 'happy'
+myarray.qux = 'halloween'
+```
+
+You can add verification with the `assert()` function:
+
+```
+[assert][2](myarray.baz == 'happy', 'unexpected value in myarray.baz')
+[assert][2](myarray.qux == 'halloween', 'unexpected value in myarray.qux')
+```
+
+You now have two tables: a list-style `mytable` and an associative array-style `myarray`.
+
+### Iterating over a table with pairs
+
+Lua's `pairs()` function extracts key and value pairs from a table.
+
+```
+print('pairs of myarray:')
+for k, v in pairs(myarray) do
+ print(k, v)
+end
+```
+
+Here's the output:
+
+```
+pairs of myarray:
+baz happy
+qux halloween
+```
+
+If there are no keys in a table, Lua uses an index. For instance, the `mytable` table contains the values `zombie` and `apocalypse`. It contains no keys, but Lua can improvise:
+
+```
+print('pairs of mytable:')
+for k, v in pairs(mytable) do
+ print(k, v)
+end
+```
+
+Here's the output:
+
+```
+1 zombie
+2 apocalypse
+```
+
+### Iterating over a table with ipairs
+
+To account for the fact that tables without keys are common, Lua also provides the `ipairs` function. This function extracts the index and the value:
+
+```
+print('ipairs of mytable:')
+for i, v in ipairs(mytable) do
+ print(i, v)
+end
+```
+
+The output is, in this case, the same as the output of `pairs`:
+
+```
+1 zombie
+2 apocalypse
+```
+
+However, watch what happens when you add a key and value pair to `mytable`:
+
+```
+mytable.surprise = 'this value has a key'
+print('ipairs of mytable:')
+for i, v in ipairs(mytable) do
+ print(i, v)
+end
+```
+
+Lua ignores the key and value because `ipairs` retrieves only indexed entries:
+
+```
+1 zombie
+2 apocalypse
+```
+
+The key and value pair, however, have been stored in the table:
+
+```
+print('pairs of mytable:')
+for k, v in ipairs(mytable) do
+ print(k, v)
+end
+```
+
+The output:
+
+```
+1 zombie
+2 apocalypse
+surprise this value has a key
+```
+
+### Retrieving arbitrary values
+
+You don't have to iterate over a table to get data out of it. You can call arbitrary data by either index or key:
+
+```
+print('call by index:')
+print(mytable[2])
+print(mytable[1])
+print(myarray[2])
+print(myarray[1])
+print('call by key:')
+print(myarray['qux'])
+print(myarray['baz'])
+print(mytable['surprise'])
+```
+
+The output:
+
+```
+call by index:
+apocalypse
+zombie
+nil
+nil
+
+call by key:
+halloween
+happy
+this value has a key
+```
+
+### Data structures
+
+Sometimes using a Lua table makes a lot more sense than trying to keep track of dozens of individual variables. Once you understand how to structure and retrieve data in a language, you're empowered to generate complex data in an organized and safe way.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/iterate-over-tables-lua
+
+作者:[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/article/22/11/lua-worth-learning
+[2]: http://www.opengroup.org/onlinepubs/009695399/functions/assert.html
diff --git a/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md
new file mode 100644
index 0000000000..1d5beda8c7
--- /dev/null
+++ b/sources/tech/20221105.2 ⭐️ How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide].md
@@ -0,0 +1,117 @@
+[#]: subject: "How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/kde-plasma-arch-linux-install/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install and Configure KDE Plasma Desktop in Arch Linux [Complete Guide]
+======
+
+**If you love KDE and Arch Linux, this guide is for you. This guide explains the steps needed to set up a fully functioning KDE Plasma desktop with all of its native applications.**
+
+Let’s take a look at how you can install KDE Plasma in Arch Linux.
+
+In the earlier posts, we explained that you could set up a bare minimum Arch Linux with an [automated archinstall script][1] and also explained how you can install GNOME, LXQt, and Xfce desktop Arch Linux. And now, we explain the steps for the KDE Plasma desktop.
+
+### KDE Plasma desktop
+
+[KDE Plasma][2] is a lightweight and visually appealing desktop environment for Linux that comes with tons of customization options at a very detailed level. The latest iteration of this desktop is Plasma 5, which is based on Qt5, KDE Framework 5 provides both Xorg and Wayland display server options.
+
+The current KDE Plasma desktop version is [5.26 stable][3], which this article uses for installation.
+
+This guide requires that you install the bare minimum Arch Linux shell already. If not, then follow this [simple guide][1] to install a basic skeleton of Arch Linux. Then continue with the following steps.
+
+Also, ensure you have admin privileges with your user for running the pacman package manager.
+
+### Install and Configure KDE Plasma Desktop in Arch Linux
+
+You need the following packages for a fully functional KDE Plasma system in Arch Linux.
+
+- [plasma][4] (~590 mb) – basic plasma packages
+- [kde-applications][5](~800 mb) – additional KDE native applications (Konsole, etc)
+- xorg – display server
+- sddm – display manager
+
+These four packages are necessary. However, you can optionally install [plasma-wayland-session][6] if you want to use the Wayland display server.
+
+#### 1. Install packages
+
+Open a terminal and run the following command to install those packages.
+
+```
+pacman -S --needed xorg sddmpacman -S --needed plasma kde-applications
+```
+
+When asked to select a package, press enter for default selection. If you are unsure, choose the following options when asked on the screen.
+
+pipewire-media-sessionphonon-qt5-gstreamerpyside2cronietesseract-data-eng (for english)
+
+Wait for the installation to finish.
+
+#### 2. Enable display server and network
+
+Now it’s time to enable the display manager and network; otherwise, you will not be able to log in. Run the following commands after the above commands are complete.
+
+```
+sudo systemctl enable sddmsudo systemctl enable NetworkManager
+```
+
+#### 3. Configure sddm and reboot
+
+One last configuration you need for the KDE Plasma desktop is related to the login screen. By default, sddm uses its own failsafe login screen, which is not the typical KDE Plasma “breeze” login screen. A small tweak is needed for a KDE Plasma login screen.
+
+Open the `sddm.conf` file from the terminal.
+
+```
+sudo nano /usr/lib/sddm/sddm.conf.d/default.conf
+```
+
+Change the theme section as per below.
+
+```
+[Theme]
+# current theme name
+ Current=breeze
+```
+
+![Modify the sddm configuration to accept breeze theme][7]
+
+Press `CTRL+O` and `CTRL+X` to save and exit the nano editor. Now you can restart your Arch system using the below command:
+
+```
+sudo systemctl reboot
+```
+
+And you should be greeted with a nice KDE Plasma login screen and a desktop.
+
+![Arch Linux Running KDE Plasma Desktop][8]
+
+That wraps up the steps for KDE Plasma desktop installation in Arch Linux. I hope you get all the steps correctly and can install them. If you face any errors, comment below.
+
+What’s next? You may want to check out other [Arch Linux guides][9], Or browse the website for a more interesting read.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/kde-plasma-arch-linux-install/
+
+作者:[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/archinstall-guide/
+[2]: https://kde.org/plasma-desktop/
+[3]: https://www.debugpoint.com/kde-plasma-5-26/
+[4]: https://archlinux.org/packages/extra/x86_64/plasma-desktop/
+[5]: https://archlinux.org/groups/x86_64/kde-applications/
+[6]: https://archlinux.org/packages/extra/x86_64/plasma-wayland-session/
+[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/Modify-the-sddm-configuration-to-accept-breeze-theme.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/Arch-Linux-Running-KDE-Plasma-Desktop-1024x640.jpg
+[9]: https://www.debugpoint.com/tag/arch-linux
diff --git a/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md
new file mode 100644
index 0000000000..221dd39e19
--- /dev/null
+++ b/sources/tech/20221105.3 ⭐️⭐️ How to Install GNOME Desktop in Arch Linux [Complete Guide].md
@@ -0,0 +1,290 @@
+[#]: subject: "How to Install GNOME Desktop in Arch Linux [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/gnome-arch-linux-install/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install GNOME Desktop in Arch Linux [Complete Guide]
+======
+
+**This guide explains the steps you need to install GNOME Desktop in Arch Linux.**
+
+This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete GNOME desktop environment on top of Arch Linux.
+
+### What is the GNOME Desktop?
+
+GNOME is a popular desktop environment that is a default desktop choice for many top-tier desktops-based Linux distributions such as Ubuntu and Fedora. Almost all flavors provide a GNOME desktop option.
+
+The GNOME desktop is one of the stable and user-friendly desktops, hence it is preferred by many average, advanced users. If you want a desktop that remains invisible while you carry out your work, GNOME is the one. It never gets into your way while working. Hence it is still popular and default option for many despite many controversies about being GNOME3 (current iteration) being slow, resource-heavy, etc,
+
+With all that said, let’s take a look at how you can install a GNOME desktop in bare metal Arch installations.
+
+### Install GNOME Desktop in Arch Linux
+
+#### Part 1: Install Arch Linux
+
+If you have already Arch Linux installed, you can skip this step and directly go to the install GNOME Desktop section below.
+
+For a quick Arch Linux base installation, follow the below steps. You can also visit [this guide][1] for a complete tutorial on how to install Arch Linux as Dual Boot or in a virtual machine.
+
+The following steps are a straightforward legacy way of installing Arch. Follow the guide below for a more modern way of using the archinstall script. Once you are done, come back to resume GNOME installation via [step 2][2].
+
+Modern method: Install using archinstall script (recommended)
+
+##### Legacy method: Download Arch Linux
+
+Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive.
+
+[Download Arch Linux][3]
+
+If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive.
+
+##### Boot and Configure Partitions
+
+After you boot from the Arch Linux iso, you have to run a series of commands to install the base system.
+
+First, run the below command to find out the device identifier.
+
+```
+fdisk -l
+```
+
+![fdisk -l before][4]
+
+Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system.
+
+```
+cfdisk /dev/sda
+```
+
+Select `label type = dos` in the next prompt.
+
+Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below.
+
+```
+/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap
+```
+
+![cfdisk][5]
+
+In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition.
+
+Repeat the same step for the main root partition of size 5GB.
+
+![Swap partition type change][6]
+
+Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”.
+
+![final partition list in cfdisk][7]
+
+Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system.
+
+Run the below command to check before you proceed. You can see in this example, three partitions are listed.
+
+```
+fdisk -l
+```
+
+![final partition list in fdisk][8]
+
+Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need.
+
+```
+mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3
+```
+
+After completion, mount the system and create necessary directories.
+
+```
+mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot
+```
+
+Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system.
+
+![prepare file system][9]
+
+##### Install the base system
+
+I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][10] to configure a wireless or wifi network using Arch Linux installer.
+
+Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB.
+
+```
+pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub
+```
+
+![Install base system][11]
+
+Once complete, generate file system table without which you can’t boot the system.
+
+```
+genfstab -U /mnt >> /mnt/etc/fstab
+```
+
+##### Configure the base system
+
+Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet.
+
+```
+arch-chroot /mntnano /etc/locale.gen
+```
+
+Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano.
+
+![change locale][12]
+
+Generate the locale using:
+
+```
+locale-gen
+```
+
+Setup the language using the below command.
+
+```
+echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8
+```
+
+Setup the local time zone.
+
+```
+ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
+```
+
+Again, you can choose them as per your need. You can list the local timezones via the below commands.
+
+```
+ls /usr/share/zoneinfo
+ls /usr/share/zoneinfo/America
+```
+
+Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire.
+
+```
+hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd
+```
+
+The next step is to set up the root user password, create an admin user, and add the user in the sudoers file.
+
+Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need.
+
+```
+passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint
+```
+
+![create user][13]
+
+Open the sudoers file and add the below lines.
+
+```
+nano /etc/sudoers
+```
+
+Add below lines. As you already created the root user, the entry should be there.
+
+```
+root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL
+```
+
+![update sudoers file][14]
+
+Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence.
+
+```
+grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit
+```
+
+![configure grub][15]
+
+Then reboot your system. If you are isntalling in a physical system, unplug the USB media at this step.
+
+```
+umount /mnt/boot
+umount /mnt
+reboot
+```
+
+You have now successfully installed the Arch Linux base system. It’s time to install the complete GNOME desktop.
+
+![Arch is installed][16]
+
+#### Part 2: Install GNOME in Arch Linux
+
+After reboot, choose Arch Linux from grub. In the Arch Linux prompt start running the following commands in sequence. These commands install Xorg server, display manager, GNOME desktop components, controller packages, and additional applications.
+
+For all the commands use default, i.e. press enter when asked.
+
+- **Install Xorg server. Approx install size is 80 MB.**
+
+```
+sudo pacman -S --needed xorg
+```
+
+- **Install display manager, GNOME desktop. Approx install size is 300 MB.**
+
+```
+sudo pacman -S --needed gnome gnome-tweaks nautilus-sendto gnome-nettool gnome-usage gnome gnome-multi-writer adwaita-icon-theme xdg-user-dirs-gtk fwupd arc-gtk-theme seahosrse gdm
+```
+
+The above installation would ask for several options for packages. Choose any of the ones you want. If you are unsure, choose jack, noto-sans and xdg-portal-desktop-gnome when asked.
+
+- **Install applications**
+
+This is just a reference. You can also install the ones you require.
+
+```
+sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper
+```
+
+Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd.
+
+```
+systemctl enable gdm
+systemctl enable NetworkManager
+```
+
+Reboot the system using the reboot command.
+
+```
+reboot
+```
+
+![Arch Linux Running GNOME 43 Desktop][17]
+
+If all goes well, you should see a nice login prompt on the GNOME desktop. Login using the credential you just created. You should be greeted with a nice and clean GNOME 43 desktop in Arch Linux.
+
+I hope this guide helps you to install GNOME desktop in a bare metal Arch instalation.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/gnome-arch-linux-install/
+
+作者:[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/2020/11/install-arch-linux/
+[2]: https://www.debugpoint.com/archinstall-guide/
+[3]: https://www.archlinux.org/download/
+[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg
+[10]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/
+[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg
+[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg
+[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg
+[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg
+[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg
+[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-Linux-Running-GNOME-43-Desktop-1024x636.jpg
diff --git a/sources/tech/20221106 Making a DNS query in Ruby from scratch.md b/sources/tech/20221106 Making a DNS query in Ruby from scratch.md
new file mode 100644
index 0000000000..5801624fed
--- /dev/null
+++ b/sources/tech/20221106 Making a DNS query in Ruby from scratch.md
@@ -0,0 +1,548 @@
+[#]: subject: "Making a DNS query in Ruby from scratch"
+[#]: via: "https://jvns.ca/blog/2022/11/06/making-a-dns-query-in-ruby-from-scratch/"
+[#]: author: "Julia Evans https://jvns.ca/"
+[#]: collector: "lujun9972"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Making a DNS query in Ruby from scratch
+======
+
+Hello! A while back I wrote a post about [how to write a toy DNS resolver in Go][1].
+
+In that post I left out “how to generate and parse DNS queries” because I thought it was boring, but a few people pointed out that they did not know how to parse and generate DNS queries and they were interested in how to do it.
+
+This made me curious – how much work _is_ it do the DNS parsing? It turns out we can do it in a pretty nice 120-line Ruby program, which is not that bad.
+
+So here’s a quick post on how to generate DNS queries and parse DNS responses! We’re going to do it in Ruby because I’m giving a talk at a Ruby conference soon, and this blog post is partly prep for that talk :). I’ve tried to keep it readable for folks who don’t know Ruby though, I’ve only used pretty basic Ruby code.
+
+At the end we’re going to have a very simple toy Ruby version of `dig` that can look up domain names like this:
+
+```
+
+ $ ruby dig.rb example.com
+ example.com 20314 A 93.184.216.34
+
+```
+
+The whole thing is about 120 lines of code, so it’s not _that_ much. (The final program is [dig.rb][2] if you want to skip the explanations and just read some code.) We won’t implement the “how a DNS resolver works” from the previous post because, well, we already did that. Let’s get into it!
+
+Along the way I’m going to try to explain how you could figure out some of this stuff yourself if you were trying to figure out how DNS queries are formatted from scratch. Mostly that’s “poke around in Wireshark” and “read RFC 1035, the DNS RFC”.
+
+### step 1: open a UDP socket
+
+We need to actually _send_ our queries, so to do that we need to open a UDP socket. We’ll send our queries to `8.8.8.8`, Google’s DNS server.
+
+Here’s the code to set up a UDP connection to `8.8.8.8`, port 53 (the DNS port).
+
+```
+
+ require 'socket'
+ sock = UDPSocket.new
+
+ sock.bind('0.0.0.0', 12345)
+ sock.connect('8.8.8.8', 53)
+
+```
+
+##### a quick note on UDP
+
+I’m not going to say too much about UDP here, but I will say that the basic unit of computer networking is the “packet” (a packet is a string of bytes), and in this program we’re going to do the simplest possible thing you can do with a computer network – send 1 packet and receive 1 packet in response.
+
+So UDP is a way to send packets in the simplest possible way.
+
+It’s the most common way to send DNS queries, though you can also use TCP or DNS-over-HTTPS instead.
+
+##### step 2: copy a DNS query from Wireshark
+
+Next: let’s say we have no idea how DNS works but we want to send a working query as fast as possible. The easiest way to get a DNS query to play with and make sure our UDP connection is working is to just copy one that already works!
+
+So that’s what we’re going to do, using Wireshark (an incredible packet analysis tool)
+
+The steps I used to this are roughly:
+
+ 1. Open Wireshark and click ‘capture’
+ 2. Enter `udp.port == 53` as a filter (in the search bar)
+ 3. Run `ping example.com` in my terminal (to generate a DNS query)
+ 4. Click on the DNS query (“Standard query A example.com”)
+ 5. Right click on “Domain Name System (query”) in the bottom left pane
+ 6. Click ‘Copy’ -> ‘as a hex stream’
+ 7. Now I have “b96201000001000000000000076578616d706c6503636f6d0000010001” on my clipboard, to use in my Ruby program. Hooray!
+
+
+
+##### step 3: decode the hex stream and send the DNS query
+
+Now we can send our DNS query to `8.8.8.8`! Here’s what that looks like: we just need to add 5 lines of code
+
+```
+
+ hex_string = "b96201000001000000000000076578616d706c6503636f6d0000010001"
+ bytes = [hex_string].pack('H*')
+ sock.send(bytes, 0)
+
+ # get the reply
+ reply, _ = sock.recvfrom(1024)
+ puts reply.unpack('H*')
+
+```
+
+`[hex_string].pack('H*')` is translating our hex string into a byte string. At this point we don’t really know what this data _means_ but we’ll get there in a second.
+
+We can also take this opportunity to make sure our program is working and is sending valid data, using `tcpdump`. How I did that:
+
+ 1. Run `sudo tcpdump -ni any port 53 and host 8.8.8.8` in a terminal tab
+ 2. In a different terminal tab, run [this Ruby program][3] (`ruby dns-1.rb`)
+
+
+
+Here’s what the output looks like:
+
+```
+
+ $ sudo tcpdump -ni any port 53 and host 8.8.8.8
+ 08:50:28.287440 IP 192.168.1.174.12345 > 8.8.8.8.53: 47458+ A? example.com. (29)
+ 08:50:28.312043 IP 8.8.8.8.53 > 192.168.1.174.12345: 47458 1/0/0 A 93.184.216.34 (45)
+
+```
+
+This is really good - we can see the DNS request (“what’s the IP for `example.com`”) and the response (“it’s 93.184.216.34”). So everything is working. Now we just need to, you know, figure out how to generate and decode this data ourselves.
+
+##### step 4: learn a little about how DNS queries are formatted
+
+Now that we have a DNS query for `example.com`, let’s learn about what it means.
+
+Here’s our query, formatted as hex.
+
+```
+
+ b96201000001000000000000076578616d706c6503636f6d0000010001
+
+```
+
+If you poke around in Wireshark, you’ll see that this query has 2 parts:
+
+ * The **header** (`b96201000001000000000000`)
+ * The **question** (`076578616d706c6503636f6d0000010001`)
+
+
+
+##### step 5: make the header
+
+Our goal in this step is to generate the byte string `b96201000001000000000000`, but with a Ruby function instead of hardcoding it.
+
+So: the header is 12 bytes. What do those 12 bytes mean? If you look at Wireshark (or read [RFC 1035][4]), you’ll see that it’s 6 2-byte numbers concatenated together.
+
+The 6 numbers correspond to the query ID, the flags, and then the number of questions, answer records, authoritative records, and additional records in the packet.
+
+We don’t need to worry about what all those things are yet though – we just need to put in 6 numbers.
+
+And luckily we know exactly which 6 numbers to put because our goal is to literally generate the string `b96201000001000000000000`.
+
+So here’s a function to make the header. (note: there’s no `return` because you don’t need to write `return` in Ruby if it’s the last line of the function)
+
+```
+
+ def make_question_header(query_id)
+ # id, flags, num questions, num answers, num auth, num additional
+ [query_id, 0x0100, 0x0001, 0x0000, 0x0000, 0x0000].pack('nnnnnn')
+ end
+
+```
+
+This is very short because we’ve hardcoded everything except the query ID.
+
+##### what’s `nnnnnn`?
+
+You might be wondering what `nnnnnn` is in `.pack('nnnnnn')`. That’s a format string telling `.pack()` how to convert that array of 6 numbers into a byte string.
+
+[The documentation for `.pack` is here][5], and it says that `n` means “represent it as “16-bit unsigned, network (big-endian) byte order”.
+
+16 bits is the same as 2 bytes, and we need to use network byte order because this is computer networking. I’m not going to explain byte order right now (though I do have a [comic attempting to explain it][6])
+
+##### test the header code
+
+Let’s quickly test that our `make_question_header` function works.
+
+```
+
+ puts make_question_header(0xb962) == ["b96201000001000000000000"].pack("H*")
+
+```
+
+This prints out “true”, so we win and we can move on.
+
+##### step 5: encode the domain name
+
+Next we need to generate the **question** (“what’s the IP for `example.com`?“). This has 3 parts:
+
+ * the **domain name** (for example “example.com”)
+ * the **query type** (for example “A” is for “IPv4 **A**ddress”
+ * the **query class** (which is always the same, 1 is for **IN** is for **IN**ternet)
+
+
+
+The hardest part of this is the domain name so let’s write a function to do that.
+
+`example.com` is encoded in a DNS query, in hex, as `076578616d706c6503636f6d00`. What does that mean?
+
+Well, if we translate the bytes into ASCII, it looks like this:
+
+```
+
+ 076578616d706c6503636f6d00
+ 7 e x a m p l e 3 c o m 0
+
+```
+
+So each segment (like `example`) has its length (like 7) in front of it.
+
+Here’s the Ruby code to translate `example.com` into `7 e x a m p l e 3 c o m 0`:
+
+```
+
+ def encode_domain_name(domain)
+ domain
+ .split(".")
+ .map { |x| x.length.chr + x }
+ .join + "\0"
+ end
+
+```
+
+Other than that, to finish generating the question section we just need to append the type and class onto the end of the domain name.
+
+##### step 6: write `make_dns_query`
+
+Here’s the final function to make a DNS query:
+
+```
+
+ def make_dns_query(domain, type)
+ query_id = rand(65535)
+ header = make_question_header(query_id)
+ question = encode_domain_name(domain) + [type, 1].pack('nn')
+ header + question
+ end
+
+```
+
+[Here’s all the code we’ve written before in `dns-2.rb`][7] – it’s still only 29 lines.
+
+##### now for the parsing
+
+Now that we’ve managed to _generate_ a DNS query, we get into the hard part: the parsing. Again, we’ll split this into a bunch of different
+
+ * parse a DNS header
+ * parse a DNS name
+ * parse a DNS record
+
+
+
+The hardest part of this (maybe surprisingly) is going to be “parse a DNS name”.
+
+##### step 7: parse the DNS header
+
+Let’s start with the easiest part: the DNS header. We already talked about how it’s 6 numbers concatenated together.
+
+So all we need to do is
+
+ * read the first 12 bytes
+ * convert that into an array of 6 numbers
+ * put those numbers in a class for convenience
+
+
+
+Here’s the Ruby code to do that.
+
+```
+
+ class DNSHeader
+ attr_reader :id, :flags, :num_questions, :num_answers, :num_auth, :num_additional
+ def initialize(buf)
+ hdr = buf.read(12)
+ @id, @flags, @num_questions, @num_answers, @num_auth, @num_additional = hdr.unpack('nnnnnn')
+ end
+ end
+
+```
+
+Quick Ruby note: `attr_reader` is a Ruby thing that means “make these instance variables accessible as methods”. So you can call `header.flags` to look at the `@flags` variable.
+
+We can call this with `DNSHeader(buf)`. Not so bad.
+
+Let’s move on to the hardest part: parsing a domain name.
+
+##### step 8: parse a domain name
+
+First, let’s write a partial version.
+
+```
+
+ def read_domain_name_wrong(buf)
+ domain = []
+ loop do
+ len = buf.read(1).unpack('C')[0]
+ break if len == 0
+ domain << buf.read(len)
+ end
+ domain.join('.')
+ end
+
+```
+
+This repeatedly reads 1 byte and then reads that length into a string until the length is 0.
+
+This works great, for the first time we see a domain name (`example.com`) in our DNS response.
+
+##### trouble with domain names: compression!
+
+But the second time `example.com` appears, we run into trouble – in Wireshark, it says that the domain is represented cryptically as just the 2 bytes `c00c`.
+
+This is something called **DNS compression** and if we want to parse any DNS responses we’re going to have to implement it.
+
+This is luckily not **that** hard. All `c00c` is saying is:
+
+ * The first 2 bits (`0b11.....`) mean “DNS compression ahead!”
+ * The remaining 14 bits are an integer. In this case that integer is `12` (`0x0c`), so that means “go back to the 12th byte in the packet and use the domain name you find there”
+
+
+
+If you want to read more about DNS compression, I found the [explanation in the DNS RFC][8] relatively readable.
+
+##### step 9: implement DNS compression
+
+So we need a more complicated version of our `read_domain_name` function
+
+Here it is.
+
+```
+
+ domain = []
+ loop do
+ len = buf.read(1).unpack('C')[0]
+ break if len == 0
+ if len & 0b11000000 == 0b11000000
+ # weird case: DNS compression!
+ second_byte = buf.read(1).unpack('C')[0]
+ offset = ((len & 0x3f) << 8) + second_byte
+ old_pos = buf.pos
+ buf.pos = offset
+ domain << read_domain_name(buf)
+ buf.pos = old_pos
+ break
+ else
+ # normal case
+ domain << buf.read(len)
+ end
+ end
+ domain.join('.')
+
+```
+
+Basically what’s happening is:
+
+ * if the first 2 bits are `0b11`, we need to do DNS compression. Then:
+ * read the second byte and do a little bit arithmetic to convert that into the offset
+ * save the current position in the buffer
+ * read the domain name at the offset we calculated
+ * restore our position in the buffer
+
+
+
+This is kind of messy but it’s the most complicated part of parsing the DNS response, so we’re almost done!
+
+##### step 10: parse a DNS query
+
+You might think “why do we need to parse a DNS query? This is the response!”. But every DNS response has the original query in it, so we need to parse it.
+
+Here’s the code for parsing the DNS query.
+
+```
+
+ class DNSQuery
+ attr_reader :domain, :type, :cls
+ def initialize(buf)
+ @domain = read_domain_name(buf)
+ @type, @cls = buf.read(4).unpack('nn')
+ end
+ end
+
+```
+
+There’s not very much to it: the type and class are 2 bytes each.
+
+##### step 11: parse a DNS record
+
+This is the exciting part – the DNS record is where our query data lives! The “rdata field” (“record data”) is where the IP address we’re going to get in response to our DNS query lives.
+
+Here’s the code:
+
+```
+
+ class DNSRecord
+ attr_reader :name, :type, :class, :ttl, :rdlength, :rdata
+ def initialize(buf)
+ @name = read_domain_name(buf)
+ @type, @class, @ttl, @rdlength = buf.read(10).unpack('nnNn')
+ @rdata = buf.read(@rdlength)
+ end
+
+```
+
+We also need to do a little work to make the `rdata` field human readable. The meaning of the record data depends on the record type – for example for an “A” record it’s a 4-byte IP address, for but a “CNAME” record it’s a domain name.
+
+So here’s some code to make the request data human readable:
+
+```
+
+ def read_rdata(buf, length)
+ @type_name = TYPES[@type] || @type
+ if @type_name == "CNAME" or @type_name == "NS"
+ read_domain_name(buf)
+ elsif @type_name == "A"
+ buf.read(length).unpack('C*').join('.')
+ else
+ buf.read(length)
+ end
+ end
+
+```
+
+This function uses this `TYPES` hash to map the record type to a human-readable name:
+
+```
+
+ TYPES = {
+ 1 => "A",
+ 2 => "NS",
+ 5 => "CNAME",
+ # there are a lot more but we don't need them for this example
+ }
+
+```
+
+The most interesting part of `read_rdata` is probably the line `buf.read(length).unpack('C*').join('.')` – it’s saying “hey, an IP address is 4 bytes, so convert it into an array of 4 numbers and then join those with “.“s”.
+
+##### step 12: finish parsing the DNS response
+
+Now we’re ready to parse the DNS response!
+
+Here’s some code to do that:
+
+```
+
+ class DNSResponse
+ attr_reader :header, :queries, :answers, :authorities, :additionals
+ def initialize(bytes)
+ buf = StringIO.new(bytes)
+ @header = DNSHeader.new(buf)
+ @queries = (1..@header.num_questions).map { DNSQuery.new(buf) }
+ @answers = (1..@header.num_answers).map { DNSRecord.new(buf) }
+ @authorities = (1..@header.num_auth).map { DNSRecord.new(buf) }
+ @additionals = (1..@header.num_additional).map { DNSRecord.new(buf) }
+ end
+ end
+
+```
+
+This mostly just calls the other functions we’ve written to parse the DNS response.
+
+It uses this cute `(1..@header.num_answers).map` construction to create an array of 2 DNS records if `@header.num_answers` is 2. (which is maybe a _little_ bit of Ruby magic but I think it’s kind of fun and hopefully isn’t too hard to read)
+
+We can integrate this code into our main function like this:
+
+```
+
+ sock.send(make_dns_query("example.com", 1), 0) # 1 is "A", for IP address
+ reply, _ = sock.recvfrom(1024)
+ response = DNSResponse.new(reply) # parse the response!!!
+ puts response.answers[0]
+
+```
+
+Printing out the records looks awful though (it says something like `#`). So we need to write some pretty printing code to make it human readable.
+
+##### step 13: pretty print our DNS records
+
+We need to add a `.to_s` field to DNS records to make them have a nice string representation. This is just a 1-line method in `DNSRecord`:
+
+```
+
+ def to_s
+ "#{@name}\t\t#{@ttl}\t#{@type_name}\t#{@parsed_rdata}"
+ end
+
+```
+
+You also might notice that I left out the `class` field of the DNS record. That’s because it’s always the same (IN for “internet”) so I felt it was redundant. Most DNS tools (like real `dig`) will print out the class though.
+
+##### and we’re done!
+
+Here’s our final `main` function:
+
+```
+
+ def main
+ # connect to google dns
+ sock = UDPSocket.new
+ sock.bind('0.0.0.0', 12345)
+ sock.connect('8.8.8.8', 53)
+
+ # send query
+ domain = ARGV[0]
+ sock.send(make_dns_query(domain, 1), 0)
+
+ # receive & parse response
+ reply, _ = sock.recvfrom(1024)
+ response = DNSResponse.new(reply)
+ response.answers.each do |record|
+ puts record
+ end
+
+```
+
+I don’t think there’s too much to say about this – we connect, send a query, print out each of the answers, and exit. Success!
+
+```
+
+ $ ruby dig.rb example.com
+ example.com 18608 A 93.184.216.34
+
+```
+
+You can see the final program as a gist here: [dig.rb][2]. You could add more features to it if you want, like
+
+ * pretty printing for other query types
+ * options to print out the “authority” and “additional” sections of the DNS response
+ * retries
+ * making sure that the DNS response we see is _actually_ a response to the query we sent (the query ID has to match!
+
+
+
+Also [you can let me know on Twitter][9] if I’ve made a mistake in this post somewhere – I wrote this pretty quickly so I probably got something wrong.
+
+--------------------------------------------------------------------------------
+
+via: https://jvns.ca/blog/2022/11/06/making-a-dns-query-in-ruby-from-scratch/
+
+作者:[Julia Evans][a]
+选题:[lujun9972][b]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
+
+[a]: https://jvns.ca/
+[b]: https://github.com/lujun9972
+[1]: https://jvns.ca/blog/2022/02/01/a-dns-resolver-in-80-lines-of-go/
+[2]: https://gist.github.com/jvns/1e5838a53520e45969687e2f90199770
+[3]: https://gist.github.com/jvns/aa202b1edd97ae261715c806b2ba7d39
+[4]: https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.1
+[5]: https://ruby-doc.org/core-3.0.0/Array.html#method-i-pack
+[6]: https://wizardzines.com/comics/little-endian/
+[7]: https://gist.github.com/jvns/3587ea0b4a2a6c20dcfd8bf653fc11d9
+[8]: https://datatracker.ietf.org/doc/html/rfc1035#section-4.1.4
+[9]: https://twitter.com/b0rk
diff --git a/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md
new file mode 100644
index 0000000000..cfcdccd046
--- /dev/null
+++ b/sources/tech/20221106.1 ⭐️ How to Install MATE Desktop in Arch Linux [Complete Guide].md
@@ -0,0 +1,98 @@
+[#]: subject: "How to Install MATE Desktop in Arch Linux [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/mate-desktop-arch-linux-install/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install MATE Desktop in Arch Linux [Complete Guide]
+======
+
+**This guide explains the steps you need to install MATE Desktop in Arch Linux.**
+
+This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete MATE desktop environment on top of Arch Linux.
+
+This article tested in the following versions: MATE 1.24, and MATE 1.26.
+
+### What is the MATE Desktop?
+
+When the GNOME desktop changed its direction from GNOME 2 to GNOME 3 – by changing the user interaction and interface, the MATE desktop continued the older/Legacy GNOME 2 development. So, the MATE desktop environment continues the GNOME 2 desktop, which preserved the traditional desktop experience in Linux. It is fast and low on memory consumption. In my opinion, one of the underrated desktop environments which need more love!
+
+The MATE team continued development as it is one of the popular GNOME 2 based desktop while supporting newer technologies. You can learn more on its [official website][1].
+
+### Install MATE Desktop in Arch Linux
+
+#### Part 1: Install Arch Linux
+
+If you already have Arch Linux installed, you can skip this step and directly go to the [installation of MATE Desktop section below][2].
+
+For a quick Arch Linux installation, follow this automated archinstall guide which is super easy to follow. And once installed, continue to Part 2.
+
+#### Part 2: Install MATE Desktop in Arch Linux
+
+After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, display manager, MATE desktop components, controller packages, and additional applications.
+
+For all the commands, use default, i.e. press enter when asked.
+
+- **Install Xorg. Approx install size is 80 MB.**
+
+```
+sudo pacman -S --needed xorg
+```
+
+- **Install display manager, and MATE desktop components. Approx install size is 380 MB.**
+
+```
+sudo pacman -S --needed mate mate-extra ttf-freefont lightdm lightdm-gtk-greeter
+```
+
+![Installing MATE Packages][3]
+
+- **Install applications**
+
+This is just a reference. You can also install the ones you require.
+
+```
+sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper
+```
+
+Now it’s time to enable the display manager and network manager as a service. So that the next time you log on, they can run automatically by systemd.
+
+```
+systemctl enable lightdm
+systemctl enable NetworkManager
+```
+
+Reboot the system using the reboot command.
+
+```
+reboot
+```
+
+You should see a login prompt on the MATE desktop if all goes well.
+
+And you can now log in using the user ID and password which you just created. A superfast and legacy MATE Desktop would welcome you.
+
+![MATE Desktop in Arch Linux][4]
+
+I hope this guide helps you create your own Arch Linux environment with a legacy MATE desktop from scratch. Please let me know if you run into trouble using the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/mate-desktop-arch-linux-install/
+
+作者:[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://mate-desktop.org/
+[2]: https://www.debugpoint.com/archinstall-guide/
+[3]: https://www.debugpoint.com/wp-content/uploads/2021/08/Installing-MATE-Packages.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2021/08/MATE-Desktop-in-Arch-Linux-1.jpg
diff --git a/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md b/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md
new file mode 100644
index 0000000000..6c2f1ba9d9
--- /dev/null
+++ b/sources/tech/20221107.0 ⭐️⭐️ Ghostwriter An Excellent Open-Source Writing App.md
@@ -0,0 +1,166 @@
+[#]: subject: "Ghostwriter: An Excellent Open-Source Writing App"
+[#]: via: "https://itsfoss.com/ghostwriter/"
+[#]: author: "Ankush Das https://itsfoss.com/author/ankush/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Ghostwriter: An Excellent Open-Source Writing App
+======
+
+We have covered several [open-source tools for writers][1] with some distraction-free editors.
+
+One of them is **Ghostwriter**. **It is available for Linux and Windows with an unofficial build for macOS.**
+
+I will not blame you for accidentally reading it as “Ghost Rider” if you are a fan of it.
+
+Keeping that aside, it looks like Ghostwriter is now under KDE’s umbrella, with **Carl Schwan** (KDE Developer) as a sponsor. So, you can expect the writing app only to get better.
+
+Hence, I think it is a good idea to spotlight KDE’s newest addition to its Incubator, i.e., Ghostwriter as one of our weekly app highlights.
+
+### Ghostwriter Excels At Distraction-Free Writing
+
+![ghostwriter white][2]
+
+A distraction-free writer is always welcome to write an article like this, make a technical document, or do other creative writing tasks.
+
+Also, we need a reliable app that saves things in a jiffy.
+
+**[Ghostwriter][3]**seems to be an excellent option with all the essentials. Let me highlight some of its key features.
+
+### Features of Ghostwriter
+
+![ghostwriter black][4]
+
+As a distraction-free writing app, some users prefer a minimal set of features. But, Ghostwriter does not compromise on the toolset that you get with it to enhance your writing experience.
+
+The main highlights include:
+
+- **Focus mode to highlight specific regions you write/edit**
+- **A full-screen mode**
+- **Clean user interface**
+- **Markdown support for easy formatting**
+- **Built-in dark and light themes (toggle)**
+- **Ability to customize the theme/create your version**
+- **Live preview your Markdown document in HTML**
+- **Sidebar with outline navigation**
+- **Session and Document statistics (characters, words, paragraphs, average wpm, reading time, etc.)**
+- **Ability to export to Pandoc, MultiMarkdown, commonmark**
+- **A Hemingway mode to disable editing while writing (to help you focus on completing the brought draft faster)**
+- **Drag and drop image support**
+- **Autosave**
+- **Cheatsheet to refer Markdown system without looking elsewhere**
+
+### Experiencing Ghostwriter
+
+![ghostwriter screenshot f37][5]
+
+I tried using Ghostwriter on Fedora 37, and it worked as one would expect.
+
+It presents a minimal user interface, which is easy to use, pleasing to look at, and not too fancy.
+
+![ghostwriter toggle][6]
+
+The availability of essential options as toggle buttons is much appreciated (**left-to-right**):
+
+- Dark/Light mode toggle
+- Live HTML preview
+- Hemingway mode
+- Focus mode
+- Full-screen mode
+
+In addition to the toggles, the document and session stats also come in handy to keep track of time spent, words written, and other valuable data.
+
+![ghostwriter stats][7]
+
+Another user interface element that I found helpful is the bottom status bar that you can customize.
+
+![ghostwriter bottom][8]
+
+**What do you need to focus on when writing?**
+
+The editor lets you choose that to see as a priority stat. Whether you want to focus on the number fo words, speed, paragraphs, or time, you can set the bottom bar to change.
+
+**To enhance the experience**, you can customize the theme to your liking, where you get to change the font, color of the title/text, and other elements of the user interface.
+
+![ghostwriter theme edit][9]
+
+While you already know that it supports Markdown, it will not stop you from working on it.
+
+Even if it is your first time using Markdown, it includes a cheat sheet in the sidebar for quick access. Of course, if you need a dedicated editor for it, you can try exploring some of the [best Markdown editors][10] available.
+
+Use the cheat sheet to add code blocks, links, text formatting, headings, and more.
+
+![ghostwriter markdown cheatsheet][11]
+
+Overall, if you closely take a glance at the screenshots, all the essential functionalities is accessible in a single click.
+
+Unless you need to tweak the theme, change the file saving folder preference, and a few more available options, you do not need to leave the editor.
+
+As a bonus, it includes useful export options for users who need it:
+
+![ghostwriter export][12]
+
+You can explore rest of the tiny bits and decide if it suits your requirements.
+
+### Installing Ghostwriter on Linux
+
+You can install Ghostwriter via a PPA for Ubuntu-based distros, and it is also available for Fedora through a separate repository.
+
+To install Ghostwriter on Ubuntu-based distros, type in the following command:
+
+```
+sudo add-apt-repository ppa:wereturtle/ppa
+sudo apt update
+sudo apt install ghostwriter
+```
+
+If you are using Fedora, type in the following:
+
+```
+sudo dnf copr enable wereturtle/stable
+sudo dnf install ghostwriter
+```
+
+You will also find a Flatpak package listed on [Flathub][13]. However, it does not seem to be a recommended option as per its official download page. You can give it a try, though.
+
+Explore more about it on its [GitLab page][14] or the [official website][15].
+
+### Not Too Fany, But Very Useful!
+
+I think the user interface, the user experience, and the feature set are perfectly balanced for all kinds of use cases.
+
+Of course, some do not need Markdown support, and some need more features to write/create chapters for their books. So, Ghostwriter may not be for everyone.
+
+That said, the features you get with it make it well worth a try, regardless of your use case.
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/ghostwriter/
+
+作者:[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/open-source-tools-writers/
+[2]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-white.png
+[3]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-black.png
+[4]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-screenshot-f37.jpg
+[5]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-toggle.jpg
+[6]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-stats.jpg
+[7]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-bottom.png
+[8]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-theme-edit.jpg
+[9]: https://itsfoss.com/best-markdown-editors-linux/
+[10]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-markdown-cheatsheet.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/11/ghostwriter-export.png
+[12]: https://flathub.org/apps/details/io.github.wereturtle.ghostwriter
+[13]: https://ghostwriter.kde.org/download/
+[14]: https://invent.kde.org/office/ghostwriter
+[15]: https://ghostwriter.kde.org
diff --git a/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md b/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md
new file mode 100644
index 0000000000..349f3d78f5
--- /dev/null
+++ b/sources/tech/20221107.2 ⭐️⭐️⭐️ Build your own SaaS on Linux with Vely.md
@@ -0,0 +1,652 @@
+[#]: subject: "Build your own SaaS on Linux with Vely"
+[#]: via: "https://opensource.com/article/22/11/build-your-own-saas-vely"
+[#]: author: "Sergio Mijatovic https://opensource.com/users/vely"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Build your own SaaS on Linux with Vely
+======
+
+Vely makes it possible to leverage the power of C in your web applications.
+
+[Vely][1] combines high performance and the low footprint of C with the ease of use and improved safety of languages like PHP. It's free and open source software, licensed under GPLv3 and LGPL 3 for libraries, so you can even build commercial software with it.
+
+### Using Vely for SaaS
+
+You can use Vely to create a multitenant web application that you can run on the Internet as Software-as-a-Service (SaaS). Each user has a completely separate data space from any other.
+
+In this example web application, a user can sign up for a notebook service to create notes and then view and delete them. It demonstrates several technology integrations in just 310 lines of code across seven source files. The technologies include:
+
+- MariaDB
+- Web browser
+- Apache
+- Unix sockets
+
+#### How it works
+
+Here's how the application works from a user's perspective. A code walk-through follows the images.
+
+The app allows a user to create a new login by specifying an email address and password. You can style these any way you like, such as with CSS:
+
+![Create a user account][2]
+
+Verify the user's email:
+
+![Verify the user's email address][3]
+
+Each user logs in with their unique username and password:
+
+![The user logs in][4]
+
+Once logged in, a user can add a note:
+
+![The user can add a note][5]
+
+A user can get a list of notes:
+
+![User lists notes][6]
+
+The app asks for confirmation before deleting a note:
+
+![The app asks for confirmation before deleting a note][7]
+
+After the user confirms, the note is deleted:
+
+![After confirmation, the note is deleted][8]
+
+#### Setup prerequisites
+
+Follow the installation instructions on [Vely.dev][9]. It's a quick process that uses standard packaging tools, such as DNF, APT, Pacman, or Zypper.
+
+Because they are part of this example, you must install Apache as a web server and MariaDB as a database.
+
+After installing Vely, turn on syntax highlighting in Vim if you're using it:
+
+```
+vv -m
+```
+
+#### Get the source code
+
+The source code for this demonstration SaaS app is part of the Vely installation. It's a good idea to create a separate source code directory for each application (and you can name it whatever you like). In this case, unpacking the source code does that for you:
+
+```
+$ tar xvf $(vv -o)/examples/multitenant_SaaS.tar.gz
+$ cd multitenant_SaaS
+```
+
+By default, the application is named `multitenant_SaaS`, but you can call it anything (if you do that, change it everywhere).
+
+### Set up the application
+
+The very first step is to create an application. It's simple to do with Vely's `vf` utility:
+
+```
+$ sudo vf -i-u $(whoami) multitenant_SaaS
+```
+
+This command creates a new application home (`/var/lib/vv/multitenant_SaaS`) and performs the application setup for you. Mostly, that means creating various subdirectories in the home folder and assigning privileges. In this case, only the current user (the result of `whoami`) owns the directories, with 0700 privileges, which ensures that no one else has access to the files.
+
+### Set up the database
+
+Before doing any coding, you need a place to store the information used by the application. First, create a MariaDB database called `db_multitenant_SaaS`, owned by the user `vely` with password `your_password`. You can change any of these values, but remember to change them everywhere during this example.
+
+Logged in as root in the MySQL utility:
+
+```
+CREATEDATABASEIFNOTEXISTS db_multitenant_SaaS;
+CREATEUSERIFNOTEXISTS vely IDENTIFIEDBY'your_password';
+GRANTCREATE,ALTER,DROP,SELECT,INSERT,DELETE,UPDATEON db_multitenant_SaaS.*TO vely;
+```
+
+Then create database objects (tables and records and so on) in the database:
+
+```
+USE db_multitenant_SaaS;
+SOURCE setup.sql;
+exit
+```
+
+### Connect Vely to a database
+
+To let Vely know where your database is and how to log into it, create a database config file named `db_multitenant_SaaS`. (This is the name used by the database statements in the source code, so if you change it, make sure you change it everywhere.)
+
+Vely uses native MariaDB database connectivity, so you can specify any options that a given database lets you:
+
+```
+$ echo'[client]
+user=vely
+password=your_password
+database=db_multitenant_SaaS
+protocol=TCP
+host=127.0.0.1
+port=3306'> db_multitenant_SaaS
+```
+
+### Build the application
+
+Use the `vv` utility to make the application, using the `--db` option to specify the MariaDB database and the database config file:
+
+```
+$ vv -q--db=mariadb:db_multitenant_SaaS
+```
+
+### Start the application server
+
+To start the application server for your web application, use the `vf` FastCGI process manager. The application server uses a Unix socket to communicate with the web server (creating a reverse proxy):
+
+```
+$ vf -w3 multitenant_SaaS
+```
+
+This starts three daemon processes to serve the incoming requests. You can also start an adaptive server that increases the number of processes to serve more requests and gradually reduce the number of processes when they're not needed:
+
+```
+$ vf multitenant_SaaS
+```
+
+See `vf` for more options to help you achieve the best performance.
+
+When you need to stop your application server, use the `-m quit` option:
+
+```
+$ vf -m quit multitenant_SaaS
+```
+
+### Set up the web server
+
+This is a web application, so the application needs a web server. This example uses Apache by way of a Unix socket listener.
+
+#### 1. Set up Apache
+
+To configure Apache as a reverse proxy and connect your application to it, you need to enable FastCGI proxy support, which generally means using the `proxy` and `proxy_fcgi` modules.
+
+For Fedora systems (or others, like Arch) enable the `proxy` and `proxy_fcgi` modules by adding (or uncommenting) the appropriate **LoadModule** directives in the `/etc/httpd/conf/httpd.conf` Apache configuration file.
+
+For Debian, Ubuntu, and similar systems, enable the `proxy` and `proxy_fcgi` modules:
+
+```
+$ sudo a2enmod proxy
+$ sudo a2enmod proxy_fcgi
+```
+
+For OpenSUSE, add these lines to the end of `/etc/apache2/httpd.conf`:
+
+```
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
+```
+
+#### 2. Configure Apache
+
+Now you must add the proxy information to the Apache configuration file:
+
+```
+ProxyPass "/multitenant_SaaS" unix:///var/lib/vv/multitenant_SaaS/sock/sock|fcgi://localhost/multitenant_SaaS
+```
+
+The location of your configuration may vary, depending on your Linux distribution:
+
+- Fedora, CentOS, Mageia, and Arch: `/etc/httpd/conf/httpd.conf`
+- Debian, Ubuntu, Mint: `/etc/apache2/apache2.conf`
+- OpenSUSE: `/etc/apache2/httpd.conf`
+
+#### 3. Restart
+
+Finally, restart Apache. On Fedora and similar systems, as well as Arch Linux:
+
+```
+$ sudo systemctl restart httpd
+```
+
+On Debian and Debian-based systems, as well as OpenSUSE:
+
+```
+$ sudo systemctl restart apache2
+```
+
+### Set up local mail
+
+This example uses email as a part of its function. If your server can already send email, you can skip this. Otherwise, you can use local mail (`myuser@localhost`) just to test it out. To do that, install Sendmail.
+
+On Fedora and similar:
+
+```
+$ sudo dnf installsendmail
+$ sudo systemctl start sendmail
+```
+
+On Debian systems (like Ubuntu):
+
+```
+$ sudo apt installsendmail
+$ sudo systemctl start sendmail
+```
+
+When the application sends an email to a local user, such as `OS_user@localhost`, then you can verify that the email was sent by looking at `/var/mail/` (the "mail spool").
+
+### Access the application server from the browser
+
+Assuming you're running the application locally, use `http://127.0.0.1/multitenant_SaaS?req=notes&action=begin` to access your application server from your web browser. If you're running this on a live server on the Internet, you may need to adjust your firewall settings to allow HTTP traffic.
+
+### Source code
+
+This example application contains seven source files. You can review the code yourself (remember, it's just 310 lines across these files), but here's an overview of each one.
+
+#### SQL setup (setup.sql)
+
+The two tables created are:
+
+- **users**: Information about each user. Each user in the **users** table has its own unique ID (**userId** column) along with other information such as email address and whether it's verified. There's also a hashed password. An actual password is never stored in plain text (or otherwise); a one-way hash is used to check the password.
+- **notes**: Notes entered by the user. The **notes** table contains the notes, each along with **userId** column that states which user owns them. The **userId** column's value matches the namesake column from **users** table. This way, every note clearly belongs to a single user.
+
+The file contents:
+
+```
+CREATETABLEIFNOTEXISTS notes (dateOf datetime, noteId BIGINTAUTO_INCREMENTPRIMARYKEY, userId BIGINT, note VARCHAR(1000));
+CREATETABLEIFNOTEXISTS users (userId BIGINTAUTO_INCREMENTPRIMARYKEY, email VARCHAR(100), hashed_pwd VARCHAR(100), verified SMALLINT, verify_token VARCHAR(30),SESSIONVARCHAR(100));
+CREATEUNIQUEINDEXIFNOTEXISTS users1 ON users (email);
+```
+
+#### Run-time data (login.h)
+
+To properly display the Login, Sign Up, and Logout links, you need some flags that are available anywhere in the application. Also, the application uses cookies to maintain a session, so this needs to be available anywhere, for example, to verify that the session is valid. Every request sent to the application is confirmed that way. Only requests that come with verifiable cookies are permitted.
+
+So to that effect, you have a **global_request_data** type `reqdata` (request data) and in it there's `sess_userId` (ID of user) and `sess_id` (user's current session ID). You also have rather self-explanatory flags that help render pages:
+
+```
+#ifndef _VV_LOGIN
+#define _VV_LOGIN
+
+typedef struct s_reqdata {
+ bool displayed_logout; // true if Logout link displayed
+ bool is_logged_in; // true if session verified logged-in
+ char *sess_userId; // user ID of current session
+ char *sess_id; // session ID
+} reqdata;
+
+void login_or_signup ();
+
+#endif
+```
+
+#### Session checking and session data (_before.vely)
+
+Vely has a notion of a **before_request_handler**. The code you write executes before any other code that handles a request. To do this, all you need is to write this code in a file named `_before.vely`, and the rest is automatically handled.
+
+Anything that a SaaS application does, such as handling requests sent to an application, must be validated for security. This way, the application knows whether the caller has the permissions needed to perform an action.
+
+Checking for permission is done here in a before-request handler. That way, whatever other code you have handling a request, you already have the session information.
+
+To keep session data (like session ID and user ID) available anywhere in your code, you use **global_request_data**. It's just a generic pointer (**void***) to memory that any code that handles requests can access. This is perfect for handling sessions, as shown below:
+
+```
+#include "vely.h"
+#include "login.h"
+
+// _before() is a before-request-handler. It always executes before
+// any other code that handles a request. It's a good place for any
+// kind of request-wide setting or data initialization
+void _before() {
+ // Output HTTP header
+ out-header default
+ reqdata *rd; // this is global request data, see login.h
+ // allocate memory for global request data, will be automatically deallocated
+ // at the end of request
+ new-mem rd size sizeof(reqdata)
+ // initialize flags
+ rd->displayed_logout = false;
+ rd->is_logged_in = false;
+ // set the data we created to be global request data, accessible
+ // from any code that handles a request
+ set-req data rd
+ // check if session exists (based on cookies from the client)
+ // this executes before any other request-handling code, making it
+ // easier to just have session information ready
+ _check_session ();
+}
+```
+
+#### Checking if the session is valid (_check_session.vely)
+
+One of the most important tasks in a multitenant SaaS application is to check (as soon as possible) if the session is valid by checking whether a user is logged in. It's done by getting the session ID and user ID cookies from the client (such as a web browser) and checking these against the database where sessions are stored:
+
+```
+#include "vely.h"
+#include "login.h"
+
+
+// Check if session is valid
+void _check_session () {
+ // Get global request data
+ reqdata *rd;
+ get-req data to rd
+ // Get cookies from user browser
+ get-cookie rd->sess_userId="sess_userId"
+ get-cookie rd->sess_id="sess_id"
+ if (rd->sess_id[0] != 0) {
+ // Check if session ID is correct for given user ID
+ char *email;
+ run-query @db_multitenant_SaaS = "select email from users where userId='%s' and session='%s'" output email : rd->sess_userId, rd->sess_id row-count define rcount
+ query-result email to email
+ end-query
+ if (rcount == 1) {
+ // if correct, set logged-in flag
+ rd->is_logged_in = true;
+ // if Logout link not display, then display it
+ if (rd->displayed_logout == false) {
+ @Hi <>! Logout
+ rd->displayed_logout = true;
+ }
+ } else rd->is_logged_in = false;
+ }
+}
+```
+
+#### Signing up, Logging in, Logging out (login.vely)
+
+The basis of any multitenant system is the ability for a user to sign up, log in, and log out. Typically, signing up involves verifying the email address; more often than not, the same email address is used as a username. That's the case here.
+
+There are several subrequests implemented here that are necessary to perform the functionality:
+
+- When Signing Up a new user, display the HTML form to collect the information. The URL request signature for this is `req=login&action=newuser`.
+- As a response to the Sign Up form, create a new user. The URL request signature is `req=login&action=createuser`. The **input-param** signal obtains an **email** and **pwd** POST form fields. The password value is a one-way hash, and an email verification token is created as a random five-digit number. These are inserted into the **users** table, creating a new user. A verification email is sent, and the user is prompted to read the email and enter the code.
+- Verify the email by entering the verification code sent to that email. The URL request signature is `req=login&action=verify`.
+- Display a Login form for the user to log in. The URL request signature is `req=login` (for instance, `action` is empty.)
+- Log in by verifying the email address (username) and password. The URL request signature is `req=login&action=login`.
+- Logout at the user's request. The URL request signature is `req=login&action=logout`.
+- Landing page for the application. The URL request signature is `req=login&action=begin`.
+- If the user is currently logged in, go to the application's landing page.
+
+See examples of these below:
+
+```
+#include "vely.h"
+#include "login.h"
+
+// Handle session maintenance, login, logout, session verification
+// for any multitenant Cloud application
+void login () {
+ // Get URL input parameter "action"
+ input-param action
+
+ // Get global request data, we record session information in it, so it's handy
+ reqdata *rd;
+ get-req data to rd
+
+ // If session is already established, the only reason why we won't proceed to
+ // application home is if we're logging out
+ if (rd->is_logged_in) {
+ if (strcmp(action, "logout")) {
+ _show_home();
+ exit-request
+ }
+ }
+
+ // Application screen to get started. Show links to login or signup and show
+ // home screen appropriate for this
+ if (!strcmp (action, "begin")) {
+ _show_home();
+ exit-request
+
+ // Start creating new user. Ask for email and password, then proceed to create user
+ // when this form is submitted.
+ } else if (!strcmp (action, "newuser")) {
+ @Create New User
+ @
+
+ // Verify code sent to email by user. The code must match, thus verifying email address
+ } else if (!strcmp (action, "verify")) {
+ input-param code
+ input-param email
+ // Get verify token based on email
+ run-query @db_multitenant_SaaS = "select verify_token from users where email='%s'" output db_verify : email
+ query-result db_verify to define db_verify
+ // Compare token recorded in database with what user provided
+ if (!strcmp (code, db_verify)) {
+ @Your email has been verifed. Please Login.
+ // If matches, update user info to indicate it's verified
+ run-query @db_multitenant_SaaS no-loop = "update users set verified=1 where email='%s'" : email
+ exit-request
+ }
+ end-query
+ @Could not verify the code. Please try again.
+ exit-request
+
+ // Create user - this runs when user submits form with email and password to create a user
+ } else if (!strcmp (action, "createuser")) {
+ input-param email
+ input-param pwd
+ // create hashed (one-way) password
+ hash-string pwd to define hashed_pwd
+ // generate random 5 digit string for verify code
+ random-string to define verify length 5 number
+ // create user: insert email, hashed password, verification token. Current verify status is 0, or not verified
+ begin-transaction @db_multitenant_SaaS
+ run-query @db_multitenant_SaaS no-loop = "insert into users (email, hashed_pwd, verified, verify_token, session) values ('%s', '%s', '0', '%s', '')" : email, hashed_pwd, verify affected-rows define arows error define err on-error-continue
+ if (strcmp (err, "0") || arows != 1) {
+ // if cannot add user, it probably doesn't exist. Either way, we can't proceed.
+ login_or_signup();
+ @User with this email already exists.
+ rollback-transaction @db_multitenant_SaaS
+ } else {
+ // Create email with verification code and email it to user
+ write-string define msg
+ @From: vely@vely.dev
+ @To: <>
+ @Subject: verify your account
+ @
+ @Your verification code is: <>
+ end-write-string
+ exec-program "/usr/sbin/sendmail" args "-i", "-t" input msg status define st
+ if (st != 0) {
+ @Could not send email to <>, code is <>
+ rollback-transaction @db_multitenant_SaaS
+ exit-request
+ }
+ commit-transaction @db_multitenant_SaaS
+ // Inform the user to go check email and enter verification code
+ @Please check your email and enter verification code here:
+ @
+ }
+
+ // This runs when logged-in user logs out.
+ } else if (!strcmp (action, "logout")) {
+ // Update user table to wipe out session, meaning no such user is logged in
+ if (rd->is_logged_in) {
+ run-query @db_multitenant_SaaS = "update users set session='' where userId='%s'" : rd->sess_userId no-loop affected-rows define arows
+ if (arows == 1) {
+ rd->is_logged_in = false; // indicate user not logged in
+ @You have been logged out.
+ }
+ }
+ _show_home();
+
+ // Login: this runs when user enters user name and password
+ } else if (!strcmp (action, "login")) {
+ input-param pwd
+ input-param email
+ // create one-way hash with the intention of comparing with user table - password is NEVER recorded
+ hash-string pwd to define hashed_pwd
+ // create random 30-long string for session ID
+ random-string to rd->sess_id length 30
+ // Check if user name and hashed password match
+ run-query @db_multitenant_SaaS = "select userId from users where email='%s' and hashed_pwd='%s'" output sess_userId : email, hashed_pwd
+ query-result sess_userId to rd->sess_userId
+ // If match, update user table with session ID
+ run-query @db_multitenant_SaaS no-loop = "update users set session='%s' where userId='%s'" : rd->sess_id, rd->sess_userId affected-rows define arows
+ if (arows != 1) {
+ @Could not create a session. Please try again. <<.login_or_signup();>>
+ exit-request
+ }
+ // Set user ID and session ID as cookies. User's browser will return those to us with every request
+ set-cookie "sess_userId" = rd->sess_userId
+ set-cookie "sess_id" = rd->sess_id
+ // Display home, make sure session is correct first and set flags
+ _check_session();
+ _show_home();
+ exit-request
+ end-query
+ @Email or password are not correct. <<.login_or_signup();>>
+
+ // Login screen, asks user to enter user name and password
+ } else if (!strcmp (action, "")) {
+ login_or_signup();
+ @Please Login:
+ @
+ }
+}
+
+// Display Login or Sign Up links
+void login_or_signup() {
+ @Login & & Sign Up
+}
+```
+
+#### General-purpose application (_show_home.vely)
+
+With this tutorial, you can create any multitenant SaaS application you want. The multitenant-processing module above (`login.vely`) calls the **_show_home()** function, which can house any code of yours. This example code shows the Notes application, but it could be anything. The **_show_home()** function calls any code you wish and is a general-purpose multitenant application plug-in:
+
+```
+#include "vely.h"
+
+void _show_home() {
+ notes();
+ exit-request
+}
+```
+
+#### Notes application (notes.vely)
+
+The application is able to add, list, and delete any given note:
+
+```
+#include "vely.h"
+#include "login.h"
+
+// Notes application in a multitenant Cloud
+void notes () {
+ // get global request data
+ reqdata *rd;
+ get-req data to rd
+ // If session invalid, display Login or Signup
+ if (!rd->is_logged_in) {
+ login_or_signup();
+ }
+ // Greet the user
+ @
Welcome to Notes!
+ // If not logged in, exit - this ensures security verification of user's identity
+ if (!rd->is_logged_in) {
+ exit-request
+ }
+ // Get URL parameter that tells Notes what to do
+ input-param subreq
+ // Display actions that Notes can do (add or list notes)
+ @Add NoteList Notes
+
+ // List all notes for this user
+ if (!strcmp (subreq, "list")) {
+ // select notes for this user ONLY
+ run-query @db_multitenant_SaaS = "select dateOf, note, noteId from notes where userId='%s' order by dateOf desc" : rd->sess_userId output dateOf, note, noteId
+ query-result dateOf to define dateOf
+ query-result note to define note
+ query-result noteId to define noteId
+ // change new lines to with fast cached Regex
+ match-regex "\n" in note replace-with " \n" result define with_breaks status define st cache
+ if (st == 0) with_breaks = note; // nothing was found/replaced, just use original
+ // Display a note
+ @Date: <> (delete note)
+ @Note: <>
+ @
+ end-query
+ }
+
+ // Ask to delete a note
+ else if (!strcmp (subreq, "delete_note_ask")) {
+ input-param note_id
+ @Are you sure you want to delete a note? Use Back button to go back, or delete note now.
+ }
+
+ // Delete a note
+ else if (!strcmp (subreq, "delete_note")) {
+ input-param note_id
+ // Delete note
+ run-query @db_multitenant_SaaS = "delete from notes where noteId='%s' and userId='%s'" : note_id, rd->sess_userId affected-rows define arows no-loop error define errnote
+ // Inform user of status
+ if (arows == 1) {
+ @Note deleted
+ } else {
+ @Could not delete note (<>)
+ }
+ }
+
+ // Add a note
+ else if (!strcmp (subreq, "add_note")) {
+ // Get URL POST data from note form
+ input-param note
+ // Insert note under this user's ID
+ run-query @db_multitenant_SaaS = "insert into notes (dateOf, userId, note) values (now(), '%s', '%s')" : rd->sess_userId, note affected-rows define arows no-loop error define errnote
+ // Inform user of status
+ if (arows == 1) {
+ @Note added
+ } else {
+ @Could not add note (<>)
+ }
+ }
+
+ // Display an HTML form to collect a note, and send it back here (with subreq="add_note" URL param)
+ else if (!strcmp (subreq, "add")) {
+ @Add New Note
+ @
+ }
+}
+```
+
+### SaaS with C performance
+
+Vely makes it possible to leverage the power of C in your web applications. A multitenant SaaS application is a prime example of a use case that benefits from that. Take a look at the code examples, write some code, and give Vely a try.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/build-your-own-saas-vely
+
+作者:[Sergio Mijatovic][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/vely
+[b]: https://github.com/lkxed
+[1]: https://opensource.com/article/22/5/write-c-appplications-vely-linux
+[2]: https://opensource.com/sites/default/files/2022-10/1createuser.png
+[3]: https://opensource.com/sites/default/files/2022-10/2verifyemail.png
+[4]: https://opensource.com/sites/default/files/2022-10/3login.png
+[5]: https://opensource.com/sites/default/files/2022-10/4addnote.png
+[6]: https://opensource.com/sites/default/files/2022-10/5listnotes.png
+[7]: https://opensource.com/sites/default/files/2022-10/6confirmdelete.png
+[8]: https://opensource.com/sites/default/files/2022-10/7notedeleted.png
+[9]: https://vely.dev/
diff --git a/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md b/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md
new file mode 100644
index 0000000000..2b0bbdd5c5
--- /dev/null
+++ b/sources/tech/20221108.0 ⭐️⭐️ Apt++ Nala is Like Apt in Ubuntu but Better.md
@@ -0,0 +1,172 @@
+[#]: subject: "Apt++? Nala is Like Apt in Ubuntu but Better"
+[#]: via: "https://itsfoss.com/nala/"
+[#]: author: "Sagar Sharma https://itsfoss.com/author/sagar/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Apt++? Nala is Like Apt in Ubuntu but Better
+======
+
+For decades Debian and Ubuntu users [used apt-get commands][1]. When its simpler form apt was released, people liked how it showed a progress bar while installing packages.
+
+Irrespective of the progress bar, the packages get installed the same with apt-get and apt commands.
+
+But the progress bar enhances the user experience (UX) and today if I don’t see the green progress bar at the bottom, I feel something is amiss.
+
+Why am I telling you all this? Because I got an [apt-get vs apt][2] feeling when I used [Nala][3], a Python-based front end for APT.
+
+Take a look at a screenshot of [apt package upgrade][4] in progress with nala.
+
+![installing packages using nala][5]
+
+Like apt enhanced the user experience from apt-get, nala takes it to the next level by making it more human-readable and presenting only the relevant info with beautiful colors.
+
+But Nala does a lot more than adding colors to the terminal.
+
+### Nala: An enhanced, user-friendly tool for managing apt packages
+
+![using nala to remove packages][6]
+
+As you can see, It brought the list of packages that will be affected by the command I executed. And it presented only relevant info with beautiful colors.
+
+This is only one of the core features of Nala. Here are others:
+
+- Parallel downloads.
+- Checks for the fastest mirrors and uses the fastest 3 by default to speed up downloads.
+- Each command you execute will be stored as Nala history with a unique ID.
+- Compatible with Fish and Zsh.
+- Makes Apt more human-readable than ever.
+
+Sounds interesting? Let’s see how you can install and use it.
+
+### Installing Nala in Ubuntu 22.04 and higher
+
+Starting with 22.04, Nala is present in the universe repository of Ubuntu. So, the installation process is going to be one command only:
+
+```
+sudo apt install nala
+```
+
+For older versions, refer to the [official wiki][7] for installation instructions.
+
+### Using Nala in Ubuntu
+
+Using Nala is fairly simple as it follows almost the same command structure as apt. This means that you just have to interchange apt with nala in every command.
+
+For example, you can update repositories with Nala using this command:
+
+```
+sudo nala update
+```
+
+![sudo nala update][8]
+
+Similarly, to install a package:
+
+```
+sudo nala install package_name
+```
+
+And the package can be removed using:
+
+```
+sudo nala remove package_name
+```
+
+That’s elementary. Let’s see about using other interesting features I mentioned earlier.
+
+#### Fetch the fastest mirrors in Nala
+
+To fetch the fastest mirrors, you’d need to utilize the `fetch` utility. First, it will determine whether you are using Debian or Ubuntu and then list the fastest mirrors:
+
+```
+sudo nala fetch
+```
+
+![sudo nala fetch][9]
+
+And as you can see, I kept the top 4 fastest mirrors by separating them with their index number. Once you select them and press enter, it will show the summary:
+
+![saving fastest mirrors for nala][10]
+
+Press `Y` and it will save changes. Now, update Nala to take effect:
+
+```
+sudo nala update
+```
+
+#### Use transactional history
+
+This is the interactive way you list and use the history command inspired by the DNF history utility.
+
+You have to pair `history` with the nala command, and it will bring previously executed commands with relevant info:
+
+```
+nala history
+```
+
+![nala history][11]
+
+You can use an ID with `nala history` and it will get you the details of the specific operation. For example, if I want to have details of what it did while installing curl, I’d have to use ID no 9:
+
+```
+nala history info 9
+```
+
+![nala history info 9][12]
+
+But that’s not it. You can alter the effect of a command using history. For example, I installed curl, so I can alter the effect (will remove the software) using the given command:
+
+```
+sudo nala history undo 9
+```
+
+![sudo nala history undo 9][13]
+
+And you can redo the command from history using its ID. For example, I installed curl (ID = 9) previously, and if I want to do the same again, I have to use `redo` :
+
+```
+sudo nala history redo 9
+```
+
+![sudo nala history redo 9][14]
+
+### Wrapping Up
+
+I understand that the apt command works fine. And I am not suggesting that everyone should replace apt with nala. It’s just good to see projects like these to focus on user experience.
+
+They are clearly inspired by the DNF package manager of Fedora and that’s not a bad thing. The apt developers can also take some hints and add similar features in future.
+
+For now, please share in the comments whether you liked nala or not. And if you liked it, will you use it extensively in place of [apt commands][15]?
+
+--------------------------------------------------------------------------------
+
+via: https://itsfoss.com/nala/
+
+作者:[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/apt-get-linux-guide/
+[2]: https://itsfoss.com/apt-vs-apt-get-difference/
+[3]: https://gitlab.com/volian/nala
+[4]: https://itsfoss.com/apt-update-vs-upgrade/
+[5]: https://itsfoss.com/wp-content/uploads/2022/11/installing-packages-using-nala-1.png
+[6]: https://itsfoss.com/wp-content/uploads/2022/11/using-nala-to-remove-packages.png
+[7]: https://gitlab.com/volian/nala/-/wikis/Installation
+[8]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-update.png
+[9]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-fetch.png
+[10]: https://itsfoss.com/wp-content/uploads/2022/11/saving-fastest-mirrors-for-nala.png
+[11]: https://itsfoss.com/wp-content/uploads/2022/11/nala-history.png
+[12]: https://itsfoss.com/wp-content/uploads/2022/11/nala-history-info-9.png
+[13]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-history-undo-9.png
+[14]: https://itsfoss.com/wp-content/uploads/2022/11/sudo-nala-history-redo-9.png
+[15]: https://itsfoss.com/apt-command-guide/
diff --git a/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md
new file mode 100644
index 0000000000..59a8f3ae2b
--- /dev/null
+++ b/sources/tech/20221108.2 ⭐️⭐️ How to Install LXQt Desktop in Arch Linux [Complete Guide].md
@@ -0,0 +1,286 @@
+[#]: subject: "How to Install LXQt Desktop in Arch Linux [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/lxqt-arch-linux-install/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install LXQt Desktop in Arch Linux [Complete Guide]
+======
+
+**This guide explains the steps you need to install LXQt Desktop in Arch Linux.**
+
+**This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete LXQt desktop environment on top of Arch Linux.**
+
+### What is the LXQt Desktop?
+
+LXQt is a lightweight Linux desktop environment based on Qt technology. It is known to be lighter than all traditional desktop environments available today. Arguably it is faster and consumes fewer resources than its equivalents, such as Xfce and Mate desktops.
+
+LXQt desktop is available in other Linux distributions as one of the offerings. Fedora and Ubuntu provide an LXQt flavour as well. However, you can also install it in Arch Linux to enjoy the latest LXQt tech as a rolling release.
+
+### Install LXQt Desktop in Arch Linux
+
+#### Part 1: Install Arch Linux
+
+If you already have Arch Linux installed, you can skip this step and directly go to the install LXQt Desktop section below.
+
+For a faster Arch Linux installation, refer to [this guide for installing Arch via automated script][1]. For the legacy way of installation method, refer to the below steps.
+
+##### Download Arch Linux
+
+Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive.
+
+[Download Arch Linux][2]
+
+If you plan to install it as a virtual machine image via GNOME Boxes, virt-manager, you do not need to write it to a USB drive.
+
+##### Boot and Configure Partitions
+
+After you boot from the Arch Linux iso, you must run a series of commands to install the base system.
+
+First, run the below command to find out the device identifier.
+
+```
+fdisk -l
+```
+
+![fdisk -l before][3]
+
+Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system.
+
+```
+cfdisk /dev/sda
+```
+
+Select `label type = dos` in the next prompt.
+
+Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below.
+
+```
+/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap
+```
+
+![cfdisk][4]
+
+In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition.
+
+Repeat the same step for the main root partition of size 5GB.
+
+![Swap partition type change][5]
+
+Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”.
+
+![final partition list in cfdisk][6]
+
+Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system.
+
+Run the below command to check before you proceed. You can see in this example, three partitions are listed.
+
+```
+fdisk -l
+```
+
+![final partition list in fdisk][7]
+
+Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need.
+
+```
+mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3
+```
+
+After completion, mount the system and create necessary directories.
+
+```
+mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot
+```
+
+Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system.
+
+![prepare file system][8]
+
+##### Install the base system
+
+I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][9] to configure a wireless or wifi network using Arch Linux installer.
+
+Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB.
+
+```
+pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub
+```
+
+![Install base system][10]
+
+Once complete, generate file system table without which you can’t boot the system.
+
+```
+genfstab -U /mnt >> /mnt/etc/fstab
+```
+
+##### Configure the base system
+
+Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet.
+
+```
+arch-chroot /mntnano /etc/locale.gen
+```
+
+Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano.
+
+![change locale][11]
+
+Generate the locale using:
+
+```
+locale-gen
+```
+
+Setup the language using the below command.
+
+```
+echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8
+```
+
+Setup the local time zone.
+
+```
+ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
+```
+
+Again, you can choose them as per your need. You can list the local timezones via the below commands.
+
+```
+ls /usr/share/zoneinfo
+ls /usr/share/zoneinfo/America
+```
+
+Setup the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire.
+
+```
+hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd
+```
+
+The next step is to set up the root user password, create an admin user, and add the user in the sudoers file.
+
+Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need.
+
+```
+passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint
+```
+
+![create user][12]
+
+Open the sudoers file and add the below lines.
+
+```
+nano /etc/sudoers
+```
+
+Add below lines. As you already created the root user, the entry should be there.
+
+```
+root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL
+```
+
+![update sudoers file][13]
+
+Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence.
+
+```
+grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit
+```
+
+![configure grub][14]
+
+Then reboot your system.
+
+```
+umount /mnt/bootumount /mntreboot
+```
+
+You have now successfully installed the Arch Linux base system. It’s time to install the complete LXQt desktop.
+
+![Arch is installed][15]
+
+#### Part 2: Install LXQt Desktop in Arch Linux
+
+After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install the Xorg server, display manager, LXQt desktop components, controller packages, and additional applications.
+
+For all the commands, use the default, i.e. press enter when asked.
+
+- **Install Xorg. Approx install size is 80 MB.**
+
+```
+sudo pacman -S --needed xorg
+```
+
+- **Install display manager, lxqt desktop. Approx install size is 100 MB.**
+
+```
+sudo pacman -S --needed lxqt xdg-utils ttf-freefont sddm
+```
+
+- **Install additional components (approx 80 MB)**
+
+```
+sudo pacman -S --needed libpulse libstatgrab libsysstat lm_sensors network-manager-applet oxygen-icons pavucontrol-qt
+```
+
+- **Install applications**
+
+This is just a reference. You can also install the ones you require.
+
+```
+sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper
+```
+
+Now it’s time to enable the display manager and network manager as a service. So that next time you log on, they can run automatically by systemd.
+
+```
+systemctl enable sddmsystemctl enable NetworkManager
+```
+
+Reboot the system using the reboot command.
+
+```
+reboot
+```
+
+You should see a nice login prompt on the LXQt desktop if all goes well.
+
+And you can now login using the user id and password which you just created. A Nice and superfast LXQt desktop would greet you after successful login.
+
+![LXQt Desktop in Arch Linux (version 1.2)][16]
+
+I hope this guide helps you create your own Arch Linux environment with a lightweight LXQt desktop from scratch. If you run into trouble, let me know using the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/lxqt-arch-linux-install/
+
+作者:[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/archinstall-guide/
+[2]: https://www.archlinux.org/download/
+[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk-1024x159.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk-1024x178.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg
+[9]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system-1024x205.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg
+[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg
+[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub-1024x639.jpg
+[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg
+[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/LXQt-Desktop-in-Arch-Linux-version-1.2-1024x639.jpg
diff --git a/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md b/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md
new file mode 100644
index 0000000000..cc7ca426c3
--- /dev/null
+++ b/sources/tech/20221108.5 ⭐️⭐️ Titan Linux A Blend of Debian Stable and KDE Plasma.md
@@ -0,0 +1,128 @@
+[#]: subject: "Titan Linux: A Blend of Debian Stable and KDE Plasma"
+[#]: via: "https://www.debugpoint.com/titan-linux-review-2022/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Titan Linux: A Blend of Debian Stable and KDE Plasma
+======
+
+**We review Titan Linux – a rising star in the Linux distro space and bring Debian stable with KDE Plasma flavour with its unique tools.**
+
+### Titan Linux – What does it offer?
+
+Titan Linux is a Debian-stable based Linux distribution which features the KDE Plasma desktop. It is a fairly new distribution that aspires to be user-friendly and minimal. Developed by a two-member team, Titan Linux brings a unique experience to Debian’s experience by eliminating several packages and giving out-of-the-box hardware support.
+
+Moreover, it uses a different installer than Debian uses and brings some nifty in-house utilities.
+
+![Titan Linux Desktop][1]
+
+### Titan Linux Review – 2022
+
+#### Download and Installation
+
+This review is based on the latest stable release of Titan Linux 1.2.1, “Cronus” Stable, bases on [Debian 11 bullseye][2].
+
+There are no problems while downloading this distro via its torrents. Many budding distros don’t do well while providing download options – such as no server bandwidth, no torrent etc. However, the torrent speed was good, and the ISO of 2.5GB took a reasonable time to download.
+
+Let’s talk about the installation.
+
+First, the LIVE desktop gives you a shortcut to kick off the installer. The installer that Titan Linux uses is Calamares. It is not [Debian’s own graphical installer][3]. This is one of the significant advantages of using the popular Calamares for Debian. The installer is configured in a simple manner and should not be a problem for new users or advanced users.
+
+Second, the Calamares installer took around 4 minutes to install on average in both physical and virtual systems. After the installation is complete, the Grub is well configured, and I can boot into the desktop.
+
+#### Look and Feel
+
+Firstly, the desktop gives you a slightly different feel from a KDE Plasma desktop because of the dark colour palette and a somewhat different application menu. In addition, the Dragon Icons and cursors go well with its “Titan” themed desktop look.
+
+Second, the application menu is the [legacy KDE Plasma kick off][4], which gives you easy access to the applications and system settings.
+
+In addition, System Settings uses an alternative view than the traditional Plasma system settings. If you are a long-term KDE Plasma user, you may feel slightly different with these two subtle changes in this desktop.
+
+Other than that, a nice set of wallpapers will help you further customize your desktop. And finally, the bottom main taskbar is almost the same as the standard Plasma desktop.
+
+![The KDE Plasma kick off menu shows a legacy view][5]
+
+![System Settings in Titan Linux][6]
+
+#### Applications
+
+Firstly, the application list is more customized than the KDE Plasma desktop apps. A set of different and lightweight applications that gives a lightweight feel.
+
+Secondly, it is wise for the developers of this distro not to use the KDE Applications but instead use some of the traditional lightweight replacements.
+
+For example, instead of the KWiter text editor, you get the Featherpad text editor. However, the file manager is Dolphin from KDE Applications. The Gwenview is replaced by the LXImage image viewer from the LXQt desktop.
+
+Moreover, an exciting addition is the Titan Toolbox. It’s a collection of utilities that is very handy for new and advanced users. The Toolbox contains utilities to tweak the desktop, change repo, APT tools, hardware configuration, etc. YOu can see a glimpse of it in the below image.
+
+![A side-by-side view of two different options of Titan Toolbox][7]
+
+For example, the Extra Software option from the Toolbox gives you the below graphical menu items to perform several tasks. It is one of the selling points of this distribution.
+
+![One of the Titan Toolbox option - Extra Software][8]
+
+Another item from the Toolbox is my favourite: the Advanced options to manage Kernel and Grub, as you can see below. I must say, this is handy for all users.
+
+![Advanced Tools][9]
+
+#### Performance
+
+The performance metric is exciting, considering it is a KDE Plasma desktop. In a fresh install and idle state, it only uses 620 MB of RAM! And the CPU is at around 1%.
+
+Next, when I pass it through a heavy workload with Firefox, Dolphin file manager, text editor, terminal, VLC media player, and system settings, it uses 1.3 GB of RAM, and the CPU is at 2% to 3% on average.
+
+Finally, when I close all the applications on a heavy workload, the RAM consumption goes back to 676MB of RAM, and the CPU is at a 1% level.
+
+I must say, it is well-optimized. And surprisingly, KWin is performing better with the Debian base than the Ubuntu or Fedora base.
+
+It uses 10GB of disk space for a default installation.
+
+![Titan Linux in Idle State][10]
+
+![Titan Linux Performance in Heavy Workload][11]
+
+#### Bugs
+
+There are no bugs I encountered while reviewing this distribution. It is simply stable well, believing it is a new distribution.
+
+However, I found one weird behaviour while changing resolution in a virtual machine (see below), which I think is a KWin bug and has nothing to do with Titan Linux.
+
+![][12]
+
+### Closing Notes
+
+Having reviewed a large set of distributions over the years, I must say that Titan Linux gives you a stock Debian stable experience with a well-optimized KDE Plasma desktop. On top of that, the Titan toolbox is also a handy addition to helping users.
+
+If you are looking for a Debian stable distribution with a KDE Plasma desktop experience, definitely go for it. Thanks to Debian, you can easily use this distro for your daily use and productive work.
+
+You can download Titan Linux from the [official website][13].
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/titan-linux-review-2022/
+
+作者:[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/2022/06/Titan-Linux-Desktop.jpg
+[2]: https://www.debugpoint.com/2021/05/debian-11-features/
+[3]: https://www.debugpoint.com/2021/01/install-debian-buster/
+[4]: https://www.debugpoint.com/2021/02/legacy-kickoff-kde-plasma-5-21/
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/06/The-KDE-Plasma-kick-off-menu-shows-a-legacy-view.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/06/System-Settings-in-Titan-Linux.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2022/06/A-side-by-side-view-of-two-different-options-of-Titan-Toolbox.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2022/06/One-of-the-Titan-Toolbox-option-Extra-Software.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2022/06/Advanced-Tools.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-in-Idle-State.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-Performance-in-Heavy-Workload.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2022/06/Titan-Linux-Resolution-problem.mp4
+[13]: https://techcafe757.wixsite.com/titanlinux
diff --git a/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md b/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md
new file mode 100644
index 0000000000..fa3ef80d30
--- /dev/null
+++ b/sources/tech/20221109.0 ⭐️⭐️ How To Install Netdata Performance Monitoring Tool In Linux.md
@@ -0,0 +1,537 @@
+[#]: subject: "How To Install Netdata Performance Monitoring Tool In Linux"
+[#]: via: "https://ostechnix.com/netdata-real-time-performance-monitoring-tool-linux/"
+[#]: author: "sk https://ostechnix.com/author/sk/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How To Install Netdata Performance Monitoring Tool In Linux
+======
+
+This guide explains **what is Netdata**, how to **install Netdata in Linux** and how to analyze and **monitor a Linux system performance and resource usage** with Netdata.
+
+### 1. What is Netdata?
+
+**NetData** is a distributed, real-time, performance and health monitoring tool for systems and applications. It provides unparalleled insights of everything happening on a system in real-time. You can view the results in a highly interactive web-dashboard.
+
+Using Netdata, you can get a clear idea of what is happening now, and what happened before in your systems and applications.
+
+Netdata runs on all physical and virtual servers, containers, even IoT/edge devices.
+
+You don't need to be an expert to deploy this tool in your Linux systems. Netdata just works fine out of the box with zero configuration, and zero dependencies. Just install this utility and sit back, Netdata will take care of the rest.
+
+Netdata has its own **built-in webserver** to display the result in graphical format. Netdata is quite fast and efficient, and it will immediately start to analyze the performance of your system in no time after installing it.
+
+Netdata is written using **C** programming language, so it is extremely light weight. It consumes less than 3% of a single core CPU usage and a 10-15MB of RAM.
+
+We can easily embed the Netdata charts on any existing web pages. It has a plugin API, so that you can monitor any application.
+
+Here is the list of things that will be monitored by Netdata utility in your Linux system.
+
+- CPU usage,
+- RAM Usage,
+- Swap memory usage,
+- Kernel memory usage,
+- Hard disks and its usage,
+- Network interfaces,
+- IPtables,
+- Netfilter,
+- DDoS protection,
+- Processes,
+- Applications,
+- NFS server,
+- Web server (Apache & Nginx),
+- Database servers (MySQL),
+- DHCP server,
+- DNS server,
+- Email serve,r
+- Proxy server,
+- Tomcat,
+- PHP,
+- SNP devices,
+- And many more.
+
+Netdata is free, open source tool and it supports Linux, FreeBSD and Mac OS.
+
+### 2. Install Netdata In Linux
+
+Netdata can be installed on any Linux distributions that have **Bash** installed. There are two ways to install Netdata in Linux.
+
+We can **install Netdata using an automatic one-liner script** or **install Netdata from git** checkout. First, we will see how to install
+
+#### 2.1. Install Netdata using Automatic One-line Installation Script
+
+The best as well as the easiest way to install Netdata is to run the following one-liner command as normal user:
+
+```
+$ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
+```
+
+If `wget` is not available, use `curl` instead:
+
+```
+$ curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
+```
+
+This method is fully automatic on any Linux and Unix distributions, such as Debian, Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux, openSUSE and macOS etc.
+
+The automatic installation script will download and install everything needed to up and run Netdata. It will also enable automatic and nightly updates.
+
+If you don't like the auto-installer script method, you can follow the steps below to install Netdata from Git checkout.
+
+#### 2.2. Install Netdata from Git
+
+First, we need to install required dependencies. The prerequisites can be installed using automatic requirements installer script or manually using the package manager.
+
+##### 2.2.1. Install Prerequisites using Automatic Requirements Installer
+
+To install the necessary dependency packages for having a **basic Netdata installation** only, run:
+
+```
+$ curl -Ss 'https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh' >/tmp/install-required-packages.sh && bash /tmp/install-required-packages.sh -i netdata
+```
+
+To install the necessary dependency packages for having a **full Netdata installation** to monitor everything, run:
+
+```
+$ curl -Ss 'https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh' >/tmp/install-required-packages.sh && bash /tmp/install-required-packages.sh -i netdata-all
+```
+
+If you prefer manual prerequisites installation, follow the steps in the section below.
+
+##### 2.2.2. Install Prerequisites using Manually Package Manager
+
+Depending upon the Linux distribution, use any one of the following commands to install the necessary prerequisites using your distribution's default package manager.
+
+**Debian / Ubuntu:**
+
+```
+$ sudo apt-get install zlib1g-dev uuid-dev libuv1-dev liblz4-dev libssl-dev libelf-dev libmnl-dev libprotobuf-dev protobuf-compiler gcc g++ make git autoconf autoconf-archive autogen automake pkg-config curl python cmake
+```
+
+**Fedora:**
+
+```
+$ sudo dnf install zlib-devel libuuid-devel libuv-devel lz4-devel openssl-devel elfutils-libelf-devel libmnl-devel protobuf-devel protobuf-compiler gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake
+```
+
+**CentOS / Red Hat Enterprise Linux older versions:**
+
+```
+$ sudo yum install autoconf automake curl gcc gcc-c++ git libmnl-devel libuuid-devel openssl-devel libuv-devel lz4-devel elfutils-libelf-devel protobuf protobuf-devel protobuf-compiler make nc pkgconfig python zlib-devel cmake
+```
+
+**RHEL 8.x / CentOS 8.x / AlmaLinux 8.x. / Rocky Linux 8.x:**
+
+```
+# Enable config-manager
+$ sudo dnf install -y 'dnf-command(config-manager)'
+
+# Enable PowerTools
+$ sudo dnf config-manager --set-enabled powertools
+
+# Enable EPEL
+$ sudo dnf install -y epel-release
+
+# Install Repo for libuv-devl (NEW)
+$ sudo dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/okay-release-1-3.el8.noarch.rpm
+
+# Install Devel Packages
+$ sudo dnf install autoconf automake curl gcc git cmake libuuid-devel openssl-devel libuv-devel lz4-devel make nc pkgconfig python3 zlib-devel
+```
+
+**openSUSE:**
+
+```
+$ sudo zypper install zlib-devel libuuid-devel libuv-devel liblz4-devel libopenssl-devel libelf-devel libmnl-devel protobuf-devel gcc gcc-c++ make git autoconf autoconf-archive autogen automake pkgconfig curl findutils python cmake
+```
+
+After installing the required dependencies, install NetData from Git checkout as shown below.
+
+##### 2.2.3. Install Netdata
+
+Git clone the Netdata repository:
+
+```
+$ git clone https://github.com/netdata/netdata.git --depth=100 --recursive
+```
+
+The above command will create a directory called **'netdata'**in the current working directory.
+
+Change to the 'netdata' directory:
+
+```
+$ cd netdata/
+```
+
+Finally, install and start Netdata using command:
+
+```
+$ sudo ./netdata-installer.sh
+```
+
+**Sample output:**
+
+```
+^
+ |.-. .-. .-. .-. .-. . netdata .-. .-. .-. .-. .-. .-
+ | '-' '-' '-' '-' '-' '-' '-' '-' '-' '-'
+ +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->
+
+ --- real-time performance monitoring, done right! ---
+
+ You are about to build and install netdata to your system.
+
+ The build process will use /tmp for
+ any temporary files. You can override this by setting $TMPDIR to a
+ writable directory where you can execute files.
+
+ It will be installed at these locations:
+
+ - the daemon at /usr/sbin/netdata
+ - config files in /etc/netdata
+ - web files in /usr/share/netdata
+ - plugins in /usr/libexec/netdata
+ - cache files in /var/cache/netdata
+ - db files in /var/lib/netdata
+ - log files in /var/log/netdata
+ - pid file at /var/run/netdata.pid
+ - logrotate file at /etc/logrotate.d/netdata
+
+ This installer allows you to change the installation path.
+ Press Control-C and run the same command with --help for help.
+
+
+ NOTE:
+ Anonymous usage stats will be collected and sent to Netdata.
+ To opt-out, pass --disable-telemetry option to the installer or export
+ the environment variable DISABLE_TELEMETRY to a non-zero or non-empty value
+ (e.g: export DISABLE_TELEMETRY=1).
+
+Press ENTER to build and install netdata to your system > **## Press ENTER Key**
+
+[...]
+
+netdata by default listens on all IPs on port 19999,
+so you can access it with:
+
+**http://this.machine.ip:19999/**
+
+To stop netdata run:
+
+ systemctl stop netdata
+
+To start netdata run:
+
+ systemctl start netdata
+
+Uninstall script copied to: /usr/libexec/netdata/netdata-uninstaller.sh
+
+ --- Installing (but not enabling) the netdata updater tool ---
+Update script is located at /usr/libexec/netdata/netdata-updater.sh
+
+ --- Wrap up environment set up ---
+Preparing .environment file
+[/home/ostechnix/netdata]# chmod 0644 /etc/netdata/.environment
+ OK ''
+
+Setting netdata.tarball.checksum to 'new_installation'
+
+ --- We are done! ---
+
+ ^
+ |.-. .-. .-. .-. .-. . netdata .-. .-. .-. .-. .-. .-
+ | '-' '-' '-' '-' '-' '-' '-' '-' '-' '-'
+ +----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--->
+
+ --- is installed and running now! ---
+ enjoy real-time performance and health monitoring...
+```
+
+![Install Netdata in Linux][1]
+
+Install Netdata in Linux
+
+Congratulations! Netdata has been installed and started.
+
+#### 2.3. Install Netdata using Package Manager
+
+Netdata is available in the default repositories of some Linux distributions. These packages might be bit outdated.
+
+**Alpine Linux:**
+
+To install Netdata in Alpine Linux, use **[apk][2]** package manager:
+
+```
+$ sudo apk add netdata
+```
+
+**Arch Linux:**
+
+The Netdata is available in the Arch Linux `**[community]**` repository. So, we can install it with [**pacman**][3] using command:
+
+```
+$ sudo pacman -S netdata
+```
+
+**Debian / Ubuntu:**
+
+```
+$ sudo apt install netdata
+```
+
+**Fedora:**
+
+```
+$ sudo dnf install netdata
+```
+
+**RHEL / CentOS / AlmaLinux / Rocky Linux:**
+
+In Enterprise Linux operating systems, you need to enable **`[EPEL]`** repository and then install Netdata.
+
+```
+$ sudo dnf install epel-release
+```
+
+```
+$ sudo dnf install netdata
+```
+
+**SUSE / openSUSE:**
+
+```
+$ sudo zypper install netdata
+```
+
+To know other installation methods, refer the [**official installation instructions page**][4].
+
+### 3. Allow Netdata Default Port via Firewall or Router
+
+If your system stays behind any firewall or router, you must allow the default port **19999** to access the NetData web interface from any remote systems on the network,.
+
+**On Debian, Ubuntu:**
+
+```
+$ sudo ufw allow 19999
+```
+
+**On Fedora, RHEL, CentOS, AlmaLinux and Rocky Linux:**
+
+```
+$ sudo firewall-cmd --permanent --add-port=19999/tcp
+```
+
+```
+$ sudo firewall-cmd --reload
+```
+
+### 4. Starting and Stopping Netdata Service
+
+To enable and start Netdata service on systems that use **Systemd**, run:
+
+```
+$ sudo systemctl enable netdata
+```
+
+```
+$ sudo systemctl start netdata
+```
+
+To stop Netdata service, run:
+
+```
+$ sudo systemctl stop netdata
+```
+
+To enable and start Netdata service on systems that use **Init**, run:
+
+```
+$ sudo service netdata start
+```
+
+```
+$ sudo chkconfig netdata on
+```
+
+To stop Netdata service:
+
+```
+$ sudo service netdata stop
+```
+
+### 5. Access Netdata via Web Browser
+
+Open your web browser, and navigate to **http://127.0.0.1:19999** or **http://localhost:19999/** or **http://ip-address:19999**. You will be pleased with Netdata dashboard as shown in the following screenshot.
+
+![Netdata Main Dashboard][5]
+
+Netdata Main Dashboard
+
+From the dashboard, you will find the complete statistics of your Linux system. Scroll down to view each section. You can also click on any section on the right corner to immediately jump to that particular section.
+
+### 6. Netdata Configuration
+
+As stated already, Netdata requires zero configuration. It works out of the box.
+
+The main configuration file of Netdata is located at **`/etc/netdata/netdata.conf`**. You can view it using any text editors to find most configuration options.
+
+You can also download and/or view Netdata default configuration file at any time by simply navigating to **http://localhost:19999/netdata.conf**.
+
+![Netdata Configuration File][6]
+
+Netdata Configuration File
+
+If you want to edit the Netdata configuration file, you can use `**edit-config**` script, which is the officially recommended way.
+
+```
+$ cd /etc/netdata
+$ sudo ./edit-config netdata.conf
+```
+
+### 7. Netdata Metrics
+
+Netdata gathers thousands of metrics with zero configuration using **[300+ pre-installed collectors][7]**. These collectors will search your node in default locations and ports to find running applications and gather as many metrics as possible without you having to configure them individually.
+
+As I already stated, Most collectors will work without any configuration. However, you should know **[how collectors work][8]** and how to **[enable or configure collectors][9]** individually.
+
+### 8. Updating Netdata
+
+If you have installed Netdata using the Automatic one-liner installation script, Netdata will automatically update itself.
+
+If you have installed Netdata using your package manager, you can run the distribution-specific update command to update Netdata. For example in Arch Linux, just run the following command to update Netdata. If the updated version is available in the repository, it will be automatically installed.
+
+```
+$ sudo pacman -Syyu
+```
+
+If you have installed Netdata using Git, just go to the directory where you have cloned it (In our case it's netdata).
+
+```
+$ cd netdata
+```
+
+Pull the latest update:
+
+```
+$ git pull
+```
+
+Then, rebuild and update it using command:
+
+```
+$ sudo ./netdata-installer.sh
+```
+
+### 9. Uninstalling Netdata
+
+If you have installed Netdata from Git, go to the location where you have cloned Netdata:
+
+```
+$ cd netdata
+```
+
+Then, uninstall it using command:
+
+```
+$ sudo ./netdata-uninstaller.sh --force
+```
+
+If you have installed Netdata using the package manager, just use the appropriate command. For example in Arch Linux, the following command can be used to uninstall Netdata:
+
+```
+$ sudo pacman -Rns netdata
+```
+
+### 10. Frequently Asked Questions
+
+#### What is Netdata?
+
+Netdata is an Enterprise-grade, real-time infrastructure monitoring application. It is opensource and completely free. Netdata works on Linux, FreeBSD, and macOS. It also works on container platforms like Kubernetes clusters, and Docker.
+
+#### Which platforms are supported by Netdata?
+
+Netdata supports most Linux distributions (Ubuntu, Debian, CentOS, and more), container platforms (Kubernetes clusters, Docker), and many other operating systems (FreeBSD, macOS).
+
+#### Where can I find the Netdata main configuration file?
+
+Netdata main configuration file is located at **`/etc/netdata/netdata.conf`**. If you're not sure where to find it, simply open your web browser and point it **http://localhost:19999/netdata.conf**.
+
+#### How to download Netdata configuration file?
+
+Yes. After finding the location of the Netdata config file, use any one of the following commands to download Netdata configuration file.
+
+```
+wget -O /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+```
+
+Or
+
+```
+curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
+```
+
+#### Who can use Netdata?
+
+Netdata can be used by any user who wants to view the real-time performance metrics of their Linux or Unix system. It is used by system administrators, DevOps engineers, and developers to collect everything.
+
+#### Is Netdata fast?
+
+Yes, it is amazingly fast. It is optimized to utilize 1% of the CPU and consumes a few MB of RAM.
+
+#### Is Netdata requires special system administration skills?
+
+Absolutely NOT. It requires **zero configuration** as well as **zero maintenance**. Just run it on your machine and Netdata does everything on its own.
+
+#### Can Netdata send notifications when something goes wrong?
+
+Yes! Netdata's health watchdog sends warning and critical alarms to your favorite platform to inform you of anomalies just seconds after they affect your node.
+
+#### Can I use Netdata to monitor my Cloud infrastructure?
+
+Yes! Netdata Cloud works with Netdata's free, open-source monitoring agent to monitor and troubleshoot every layer of your systems to find weaknesses before they turn into outages.
+
+Netdata Cloud provides:
+
+- Infrastructure level dashboards (each chart aggregates data from multiple nodes)
+- Central dispatch of alert notifications,
+- Custom dashboards editor,
+- Intelligence assisted troubleshooting, to help surface the root cause of issues.
+
+### Conclusion
+
+In this guide, we looked at what is Netdata and different ways to install Netdata in Linux. We also looked at how to access the Netdata dashboard, update Netdata and uninstall it.
+
+Netdata is simple yet powerful real-time performance monitoring application. It requires zero configuration and works out of the box. If you ever looking for a easiest way to monitor your system performance, resource and application usage, Netdata is highly recommended.
+
+**Resources:**
+
+- [**NetData website**][10]
+- [**NetData GitHub page**][11]
+
+--------------------------------------------------------------------------------
+
+via: https://ostechnix.com/netdata-real-time-performance-monitoring-tool-linux/
+
+作者:[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/wp-content/uploads/2022/11/Install-Netdata-in-Linux.png
+[2]: https://ostechnix.com/alpine-linux-apk-command-examples/
+[3]: https://ostechnix.com/getting-started-pacman/
+[4]: https://docs.netdata.cloud/packaging/installer/
+[5]: https://ostechnix.com/wp-content/uploads/2022/11/Netdata-Main-Dashboard.png
+[6]: https://ostechnix.com/wp-content/uploads/2022/11/Netdata-Configuration-File.png
+[7]: https://learn.netdata.cloud/docs/agent/collectors/collectors
+[8]: https://learn.netdata.cloud/docs/collect/how-collectors-work
+[9]: https://learn.netdata.cloud/docs/collect/enable-configure
+[10]: https://netdata.firehol.org/
+[11]: https://github.com/firehol/netdata
diff --git a/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md
new file mode 100644
index 0000000000..1623dec544
--- /dev/null
+++ b/sources/tech/20221109.3 ⭐️⭐️ A Guide to systemd journal Maintenance [With Examples].md
@@ -0,0 +1,188 @@
+[#]: subject: "A Guide to systemd journal Maintenance [With Examples]"
+[#]: via: "https://www.debugpoint.com/systemd-journald-clean/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+A Guide to systemd journal Maintenance [With Examples]
+======
+
+**Systemd comes with many built-in features to manage the system logs. In this guide, we explain how you can manage system journals, logs and take action on them such as rotating, archiving, and clear logs.****We also explain the manual systems journal clean method and using config file changes.**
+
+If your Linux distribution supports [systemd][1], then it collects logs from all processes, applications of the system every second which starts from the boot. All these logging events are managed by `journald` daemon of systemd. The journald collects all the logs (info, warnings, errors, etc) and stores them as binary data in the disk files.
+
+As the logs remain in the disk and every second it is collected, it takes up huge disk space; especially for older systems, servers. For example, in one of my test systems which are running for around one year, the log file size is in GBs.
+
+If you manage multiple systems, servers, it is always recommended to properly manage journald logs for efficient operation. Let’s take a look at how you can manage the log files.
+
+### The systemd journal Maintenance
+
+Using the journalctl utility of systemd, you can query these logs, perform various operations on them. For example, viewing the log files from different boots, check for last warnings, errors from a specific process or applications. If you are unaware of these, I would suggest you quickly go through this tutorial – [“use journalctl to View and Analyze Systemd Logs [With Examples]][2]” before you follow this guide.
+
+#### Where are the physical journal log files?
+
+The systemd’s journald daemon collects logs from every boot. That means, it classifies the log files as per the boot.
+
+The logs are stored as binary in the path `/var/log/journal` with a folder as machine id.
+
+**For example:**
+
+![Screenshot of physical journal file -1][3]
+
+![Screenshot of physical journal files -2][4]
+
+Also, remember that based on system configuration, runtime journal files are stored at `/run/log/journal/`. And these are removed in each boot.
+
+#### Can I manually delete the log files?
+
+You can, but don’t do it. Instead, follow the below instructions to clear the log files to free up disk space using journalctl utilities.
+
+#### How much disk space is used by systemd log files?
+
+Open up a terminal and run the below command.
+
+```
+journalctl --disk-usage
+```
+
+This should provide you with how much is actually used by the log files in your system.
+
+![journalctl disk usage command][5]
+
+If you have a graphical desktop environment, you can open the file manager and browse the path `/var/log/journal` and check the properties.
+
+#### systemd journal clean process
+
+The effective way of clearing the log files should be done by `journald.conf` a configuration files. Ideally, you should not manually delete the log files even if the journalctl provides the utility to do that.
+
+Let’s take a look at how you can delete it [manually][6], then I will explain the configuration changes in `journald.conf` so that you do not need to manually delete the files from time to time; Instead, the systemd takes care of it automatically based on your configuration.
+
+##### Manual delete
+
+First, you have to `flush` and `rotate` the log files. Rotating is a way of marking the current active log files as an archive and creating a fresh logfile from this moment. The flush switch asks the journal daemon to flush any log data stored in `/run/log/journal/` into `/var/log/journal/`, if persistent storage is enabled.
+
+Then, after flushing and rotating, you need to run journalctl with`vacuum-size`, `vacuum-time`, and `vacuum-files` switches to force systemd to clear the logs.
+
+**Example 1:**
+
+```
+sudo journalctl --flush --rotate
+```
+
+```
+sudo journalctl --vacuum-time=1s
+```
+
+The above set of commands removes all archived journal log files until the last second. This effectively clears everything. So, be careful while running the command.
+
+![journal clean up - example][7]
+
+After clean up:
+
+![After clean up - journal space usage][8]
+
+You can also provide the following suffixes as per your need following the number.
+
+- s: seconds
+- m: minutes
+- h: hours
+- days
+- months
+- weeks
+- years
+
+**Example 2:**
+
+```
+sudo journalctl --flush --rotate
+```
+
+```
+sudo journalctl --vacuum-size=400M
+```
+
+This clears all archived journal log files and retains the last 400MB files. Remember this switch applies to only archived log files only, not on active journal files. You can also use suffixes as below.
+
+- K: KB
+- M: MB
+- G: GB
+
+**Example 3:**
+
+```
+sudo journalctl --flush --rotate
+```
+
+```
+sudo journalctl --vacuum-files=2
+```
+
+The vacuum-files switch clears all the journal files below the number specified. So, in the above example, only the last 2 journal files are kept and everything else is removed. Again, this only works on the archived files.
+
+You can combine the switches if you want, but I would recommend not to. However, make sure to run with `--rotate` switch first.
+
+### Automatic delete using config files
+
+While the above methods are good and easy to use, it is recommended that you control the journal log file cleanup process using the journald configuration files which present at `/etc/systemd/journald.conf`.
+
+The systemd provides many parameters for you to effectively manage the log files. By combining these parameters you can effectively limit the disk space used by the journal files. Let’s take a look.
+
+| **journald.conf parameter** | **Description** | **Example** |
+| :- | :- | :- |
+| SystemMaxUse | Specifies the maximum disk space that can be used by the journal in persistent storage | SystemMaxUse=500M |
+| SystemKeepFree | Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. | SystemKeepFree=100M |
+| SystemMaxFileSize | Controls how large individual journal files can grow to in persistent storage before being rotated. | SystemMaxFileSize=100M |
+| RuntimeMaxUse | Specifies the maximum disk space that can be used in volatile storage (within the /run filesystem). | RuntimeMaxUse=100M |
+| RuntimeKeepFree | Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the /run filesystem). | RuntimeMaxUse=100M |
+| RuntimeMaxFileSize | Specifies the amount of space that an individual journal file can take up in volatile storage (within the /run filesystem) before being rotated. | RuntimeMaxFileSize=200M |
+
+If you add these values in a running system in `/etc/systemd/journald.conf` file, then you have to restart the journald after updating the file. To restart use the following command.
+
+```
+sudo systemctl restart systemd-journald
+```
+
+### Verification of log files
+
+It is wiser to check the integrity of the log files after you clean up the files. To do that run the below command. The command shows the PASS, FAIL against the journal file.
+
+```
+journalctl --verify
+```
+
+![verify log files][9]
+
+### Closing Notes
+
+I hope this guide helps you to understand the basics of the systemd journal management process. With these, you can manage the disk space used by the log files in your system or servers by limiting the space, clearing old log files. These are just the guideline commands, you can combine these in multiple ways to achieve your system demands.
+
+- [journalctl manual][10]
+- [journald.conf manual][11]
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/systemd-journald-clean/
+
+作者:[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.freedesktop.org/wiki/Software/systemd/
+[2]: https://www.debugpoint.com/2020/12/systemd-journalctl/
+[3]: https://www.debugpoint.com/wp-content/uploads/2021/01/Screenshot-of-physical-journal-file-1.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2021/01/Screenshot-of-physical-journal-files-2.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2021/01/journalctl-disk-usage-command.jpg
+[6]: https://www.debugpoint.com#delete-using-journal-conf
+[7]: https://www.debugpoint.com/wp-content/uploads/2021/01/journal-clean-up-example.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2021/01/After-clean-up-journal-space-usage.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2021/01/verify-log-files.png
+[10]: https://www.freedesktop.org/software/systemd/man/journalctl.html
+[11]: https://www.freedesktop.org/software/systemd/man/journald.conf.html
diff --git a/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md
new file mode 100644
index 0000000000..aa7d864ff8
--- /dev/null
+++ b/sources/tech/20221109.4 ⭐️⭐️ How to use journalctl to View and Analyze Systemd Logs [With Examples].md
@@ -0,0 +1,257 @@
+[#]: subject: "How to use journalctl to View and Analyze Systemd Logs [With Examples]"
+[#]: via: "https://www.debugpoint.com/systemd-journalctl/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to use journalctl to View and Analyze Systemd Logs [With Examples]
+======
+
+**This guide explains the basics of the journalctl utility of [Systemd][1] and its various commands. You can use these commands for troubleshooting desktop and server logs in Linux. This is how you can use journalctl to view and analyze Systemd Logs with different examples.**
+
+### Introduction
+
+Many say that Systemd is not good, it is heavy on the system and it is a debated topic always. But you can not deny that it provides a well set of utilities to manage, troubleshoot a system. Imagine you end up with a broken system with no GUI. You probably messed up boot and GRUB as well. In those kinds of scenarios or in general – you can boot from a LIVE system, mount your Linux partition and explore the Systemd logs to find out about the problem.
+
+Systemd has three basic components as follows –
+
+- **systemd**: System and service manager for Linux operating systems.
+- **systemctl**: Command to introspect and control the state of the systemd system and service manager.
+- **systemd-analyze**: Provides system boot-up performance statistics and retrieve other state and tracing information from the system and service manager
+
+Apart from these three, there are additional services that systemd provides such as – journald, logind, networkd, etc. In this guide we will talk about the journald service of systemd.
+
+### journald – systemd journal daemon
+
+By design, systemd provides a centralized way of handing all operating system logs from processes, applications, etc. All these logging events are handled by journald daemon of systemd. The journald daemon collects all logs from everywhere of the Linux operating systems and stores themes as binary data in files.
+
+The advantages of centralized logging of events, system problems as binary data are many. For example, as the system logs are stored as binary and not text – you can translate in many ways such as text, JSON objects for various needs. Also, it is super easy to track down to a single event as the logs are stored sequentially via date/time manipulation of the logs.
+
+Remember the log files that journald collects are in thousands of lines and it gets updated for every event, every boot. So if you have a long time running Linux operating system – the journal logs size should in GBs. As the logs are in thousands, it’s better to filter with basic commands to find out more about the system problems.
+
+#### The journald Configuration File
+
+The configuration file of the journald is present in the below path. It contains various flags on how the logging happens. You can take a look at the file and make the changes necessary. But I would recommend not to modify this file unless you know what you are doing.
+
+```
+/etc/systemd/journald.conf
+```
+
+#### Where journald stores the binary log files
+
+The journald stores the logs in binary format. They are stored inside a directory under this path.
+
+```
+/var/log/journal
+```
+
+For example, in the below path there is a directory that contains all the system logs to date.
+
+![journalctl log file path][2]
+
+Do not use cat command or use nano or vi to open these files. They would not be displayed properly.
+
+### Use journalctl to View and Analyze Systemd Logs
+
+#### Basic journald command
+
+The basic command to view logs using journal daemon is –
+
+```
+journalctl
+```
+
+![journalctl][3]
+
+This gives you all the journal entries including errors, warnings, etc from all applications and processes. It shows the list with the oldest log at the top and current logs at the bottom. You need to keep pressing ENTER to scroll through it line by line. You can also use PAGE UP and PAGE DOWN keys to scroll. Press q to exit from this view.
+
+#### How to view journal entries for time zones
+
+By default, the journalctl shows the log time in the current system time zone. However, you can easily provide the timezone in your command to convert the same log to a different time zone. For example, to view the logs in UTC, use the below command.
+
+```
+journalctl --utc
+```
+
+![journalctl --utc][4]
+
+#### How to view only errors, warnings, etc in journal logs
+
+The logs that a system generates have different priorities. Some logs may be a warning which can be ignored or some may be critical errors. You might want to look at only errors, not warnings. That is also possible using the below command.
+
+To view emergency system messages use:
+
+```
+journalctl -p 0
+```
+
+![journalctl -p 0][5]
+
+Error codes
+
+```
+0: emergency
+1: alerts
+2: critical
+3: errors
+4: warning
+5: notice
+6: info
+7: debug
+```
+
+When you specify the error code, it shows all messages from that code and above. For example, if you specify the below command, it shows all messages with priority 2, 1 and 0
+
+```
+journalctl -p 2
+```
+
+#### How to view journal logs for a specific boot
+
+When you are running the journalctl command it shows the information from the current boot that is from the current session which you are running. But it is also possible to view information about past boots as well.
+
+Journal logs keep on updating in every reboot. The journald keeps track of the logs in different boots. To view, the boot-wise logs use the below command.
+
+```
+journalctl --list-boots
+```
+
+![journalctl list-boots][6]
+
+- The first number shows the unique journald boot track number which you can use in the next command to analyze that specific boot.
+- The second number the boot ID which also you can specify in the commands.
+- The next two date, time combinations are the duration of the logs stored in the respective file. This is super handy if you want to find out a log or error from a specific date, time.
+
+To view a specific boot number you the first number or the boot ID as below.
+
+```
+journalctl -b -45
+```
+
+```
+journalctl -b 8bab42c7e82440f886a3f041a7c95b98
+```
+
+![journalctl -b 45][7]
+
+You can also use `-x` switch which can add an explanation of the systemd error messages in your display. This is a lifesaver in certain situations.
+
+```
+journalctl -xb -p 3
+```
+
+![journalctl -xb][8]
+
+#### How to view journal logs for a specific time, date duration
+
+The journalctl is powerful enough to provide “english” like argument in the command itself for time and date manipulation.
+
+You can use`--since` switch with a combination of `“yesterday”, “today”, “tomorrow”, or “now”.`
+
+Some of the examples of different commands below. You can modify them as per your need. They are self-explanatory. The date, time format in the below commands are `"YYYY-MM-DD HH:MM:SS"`
+
+```
+journalctl --since "2020-12-04 06:00:00"
+```
+
+```
+journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
+```
+
+```
+journalctl --since yesterday
+```
+
+```
+journalctl --since 09:00 --until "1 hour ago"
+```
+
+![journalctl --since 09:00 --until][9]
+
+You can combine the above with the error level switches as well.
+
+#### How to see Kernel specific journal logs
+
+The Linux Kernel messages can be extracted from journal logs as well. To view the Kernel messages from the current boot only use the below command.
+
+```
+journalctl -k
+```
+
+#### How to see journal logs for a service, PID
+
+You can filter out specific logs from a systemd service unit only from the journald logs. For example, to find out the logs from NetworkManager service use the below command.
+
+```
+journalctl -u NetworkManager.service
+```
+
+![journalctl NetworkManager service][10]
+
+If you do not know the service name, you can use the below command to list the systemd services in your system.
+
+```
+systemctl list-units --type=service
+```
+
+#### How to view journal logs for a user, group
+
+If you are analyzing server logs this command is helpful where multiple users are logged in. You can first find out about the user id using the below command from the user name. For example, to find out the id of user “`debugpoint`” –
+
+```
+id -u debugpoint
+```
+
+Then use that ID with `_UID` switch to view the logs generated by the user.
+
+```
+journalctl _UID=1000 --since today
+```
+
+![journalctl _UID][11]
+
+Similarly use `_GID` switch to find out the same for user groups.
+
+#### How to view journal logs for an executable
+
+You can also find out journald logs of a specific program or executable. For example, if you want to find out the messages of gnome-shell, you can run the below command.
+
+```
+journalctl /usr/bin/gnome-shell --since today
+```
+
+![journalctl gnome-shell][12]
+
+### Closing notes
+
+I hope this guide helps you to use journalctl to view analyze systemd logs on your Linux desktop or server troubleshooting. The systemd journal management extremely powerful if you know how to use the commands, it makes your life a bit easy during debugging time. All major mainstream Linux distribution uses Systemd these days. Ubuntu, Debian, Fedora, Arch – they all use systemd for their default OS offerings. In case if you are wondering about systemd-free Linux distributions, you might want to check out [MX-Linux][13], Gentoo, Slackware, Void Linux.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/systemd-journalctl/
+
+作者:[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://freedesktop.org/wiki/Software/systemd/
+[2]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-log-file-path.jpg
+[3]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-utc.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-p-0.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-list-boots.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-b-45.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-xb.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-since-0900-until.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-NetworkManager-service.jpg
+[11]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-_UID.jpg
+[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/journalctl-gnome-shell.jpg
+[13]: https://www.debugpoint.com/tag/mx-linux
diff --git a/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md b/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md
new file mode 100644
index 0000000000..465202d50e
--- /dev/null
+++ b/sources/tech/20221109.7 ⭐️⭐️ Why sysadmins should choose Awesome window manager on Linux.md
@@ -0,0 +1,144 @@
+[#]: subject: "Why sysadmins should choose Awesome window manager on Linux"
+[#]: via: "https://opensource.com/article/22/11/linux-awesome-window-manager"
+[#]: author: "Seth Kenlon https://opensource.com/users/seth"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Why sysadmins should choose Awesome window manager on Linux
+======
+
+The Awesome window manager takes a "tiling" approach, meaning that each window you launch takes up a fraction of your desktop according to the number of windows you have open.
+
+Awesome is a window manager for the [Linux desktop][1]. A "window manager" is a graphical interface that primarily (if not literally) just manages the drawing and arrangement of windows. In practice, even the [most rudimentary][2] of window managers actually provides a little more than just the ability to draw a window. Most also provide a pop-up menu so you can launch an application, some provide a dock or panel so you can switch between different applications you have running. They stop short at providing desktop conveniences such as drawing a wallpaper in the background of your screen, mounting and unmounting devices, providing a system tray, and so on. A window manager assumes you can use other applications to build a desktop experience to your own liking, and so it focuses on managing windows. The Awesome window manager takes a "tiling" approach, meaning that each window you launch takes up a fraction of your desktop according to the number of windows you have open.
+
+![Image of the Awesome desktop.][3]
+
+### My Linux desktop is the terminal
+
+When you're a [systems administrator][4], you tend to spend a lot of time in a terminal window. It's a direct and efficient interface to your local machine, to remote machines, the network, the Internet, and everything else, so it's usually the easiest and most sensible way to do a lot of things to a lot of computers at once. And when you spend all day in a terminal, you understandably start to question whether you actually need a desktop at all.
+
+To be perfectly honest, the answer's often no, at least for 80% of your tasks. The reality of modern computing, however, is that there are some applications that are just easier to use through a graphical interface. For instance, even though there are issue tracking systems, like the open source Bugzilla, that provide terminal commands as an interface, sometimes you're on a team that uses an issue tracker (usually it's not open source) that provides only a web application. Like it or not, you need a web browser to interact with the ticketing system. And even though you may use a perfectly reasonable markup language like [AsciiDoc][5], you're probably sent a word processor document sometimes and, while you could use [Pandoc][6] to convert the document into AsciiDoc and then back into an office document, that risks losing something in translation. Like it or not, you need an office suite.
+
+The bottom line is that, whether you like it or not, you need a desktop. Or at least a window manager.
+
+### Tiling windows
+
+Awesome understands your plight. With Awesome, your "primary" desktop can be your terminal. When you first launch it, your terminal window is full screen, just like the text console you really want to be greeted with upon login. When you really need web browser, though, you can launch it and Awesome makes room for it by splitting your screen in half. Your terminal is on one side, the web browser's on the other.
+
+If you need to open a third application, you can launch that and Awesome makes room for it by splitting your screen into thirds.
+
+![Image of Awesome tiles.][7]
+
+When you're finished with an application, Awesome adjusts your layout again until, eventually, you're back to a full-screen terminal, just the way you like it.
+
+### Lua configuration
+
+Awesome uses the [Lua][8] scripting language for configuration. Lua has a similar philosophy to Awesome. It's a simple language that's pretty intuitive once you understand a few basic concepts.
+
+The simplest concept, and yet the most important, is the Lua table construct. Lua stores information in what it calls a "table", and it means that most everything in Lua has a structured hierarchy. For instance, this creates a Lua table:
+
+```
+zombie = {}
+
+zombie.apocalypse = true
+zombie.defeat = false
+```
+
+Now when you need to know whether there's an active zombie apocalypse, you can "call" the zombie table and query the `apocalypse` value:
+
+```
+> print(zombie.apocalypse)
+true
+```
+
+Both the `apocalypse` and the `defeat` values are "children" of the `zombie` table, which makes them each distinct from the `apocalypse` and `defeat` values of the `alien` table.
+
+It's a simple system of data classification, and you see several tables used in the Awesome configuration:
+
+```
+-- Table of layouts
+awful.layout.layouts = {
+ awful.layout.suit.floating,
+ awful.layout.suit.tile,
+ awful.layout.suit.tile.left,
+ awful.layout.suit.tile.bottom,
+ awful.layout.suit.tile.top,
+ awful.layout.suit.fair,
+ awful.layout.suit.fair.horizontal,
+ awful.layout.suit.spiral,
+ awful.layout.suit.spiral.dwindle,
+ awful.layout.suit.max,
+ awful.layout.suit.max.fullscreen,
+ awful.layout.suit.magnifier,
+ awful.layout.suit.corner.nw,
+}
+```
+
+You may not know what options are available from reading the configuration file itself, but understanding that the options are grouped into Lua tables means you know what to look up in the Awesome documentation.
+
+Of course, if you don't feel like reading through the documentation, you can also just comment options out and see what changes. A comment in Lua are two dashes, as in the first line of this snippet:
+
+```
+-- Create a launcher widget and a main menu
+myawesomemenu = {
+ { "hotkeys", function() hotkeys_popup.show_help(nil, awful.screen.focused()) end },
+ { "manual", terminal .. " -e man awesome" },
+ { "edit config", editor_cmd .. " " .. awesome.conffile },
+ { "restart", awesome.restart },
+ { "quit", function() awesome.quit() end },
+}
+```
+
+Lua is a consistent and logical language. Any amount of Lua you pick up from configuring Awesome is Lua you can use for real life Lua scripting. If you're ready to move up from basic Bash scripting, you might consider Lua.
+
+### Adjusting tiles
+
+While you're working in a split screen in Awesome, you might find the need to adjust the proportions. To do this graphically, right-click on the intersection the windows you want to adjust, and then drag all window borders to suit your preference.
+
+When you learn enough Lua to get really good at configuring Awesome, you can configure default preferences.
+
+### Floating windows
+
+Some applications never make sense as tiled windows. The Awesome configuration provided by your Linux distribution probably has a few examples set:
+
+```
+-- Floating clients.
+class = {
+ "Blueman-manager",
+ "Kruler",
+ "MessageWin",
+ "Tor Browser",
+ "Wpa_gui"},
+},
+```
+
+### Assemble your own Linux desktop
+
+Using a window manager instead of a desktop means you get to choose the components you use for everything else you want to do with your computer. You can launch KDE applications from the [Plasma Desktop][9], or use bits and pieces of [XFCE][10] (such as the panel, the network manager, and more), or you can eschew the desktop model entirely and use a particularly robust file manager and the terminal commands you know and love.
+
+--------------------------------------------------------------------------------
+
+via: https://opensource.com/article/22/11/linux-awesome-window-manager
+
+作者:[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/article/20/5/linux-desktops
+[2]: https://opensource.com/article/19/12/twm-linux-desktop
+[3]: https://opensource.com/sites/default/files/2022-10/awesome-desktop.png
+[4]: https://www.redhat.com/sysadmin/?intcmp=7013a000002qLH8AAM
+[5]: https://opensource.com/article/22/8/drop-markdown-asciidoc
+[6]: https://opensource.com/article/20/5/pandoc-cheat-sheet
+[7]: https://opensource.com/sites/default/files/2022-10/awesome-tiles.png
+[8]: https://opensource.com/article/22/11/lua-worth-learning
+[9]: https://opensource.com/article/19/12/linux-kde-plasma
+[10]: https://opensource.com/article/18/6/xfce-desktop
diff --git a/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md b/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md
new file mode 100644
index 0000000000..64574c5032
--- /dev/null
+++ b/sources/tech/20221110.2 ⭐️ How to Install Enlightenment Desktop in Arch Linux [Complete Guide].md
@@ -0,0 +1,308 @@
+[#]: subject: "How to Install Enlightenment Desktop in Arch Linux [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/enlightenment-arch-linux-install/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Install Enlightenment Desktop in Arch Linux [Complete Guide]
+======
+
+**This guide explains the steps you need to install Enlightenment Desktop in Arch Linux.**
+
+This guide has two parts. The first part deals with installing the base Arch system. The second part is installing the complete Enlightenment desktop environment on top of Arch Linux.
+
+### What is Enlightenment Desktop
+
+[Enlightenment][1] is one of the oldest window manager, compositor for X11 in Linux. It is more than a decade old and one of the first “eye-candy” desktop. It consists of core libraries called EFL (Enlightenment Foundation Libraries) which provides features such as widgets, networking, graphics and more. Enlightenment evolved over the years to be suitable for Mobiles, Wearables, TV UI and of course vanilla desktop environment. It provides a standard menu, icon driven desktop with its own native applications. With the help of a suitable display manager, it can be a full-fledged productive desktop.
+
+### Install Enlightenment Desktop in Arch Linux
+
+#### Part 1: Install Arch Linux
+
+If you have already Arch Linux installed, you can skip this step and directly go to the [installation of Enlightenment Desktop][2] section below.
+
+For a quick Arch Linux base installation, follow the automated archinstall guide, which is present in the below link.
+
+[Arch Installation with automated script (recommended)][3]
+
+if you prefer the older/legacy way of installing Arch, then follow the steps below.
+
+##### Download Arch Linux
+
+Download Arch Linux .iso from the below link. There are magnet and torrent links available. Once you download, write the ISO to a USB drive. And then boot from the drive.
+
+[Download Arch Linux][4]
+
+If you are planning to install it as a virtual machine image via GNOME Boxes, virt-manager – then you do not need to write it to a USB drive.
+
+##### Boot and Configure Partitions
+
+After you boot from the Arch Linux iso, you have to run a series of commands to install the base system.
+
+First, run the below command to find out the device identifier.
+
+```
+fdisk -l
+```
+
+![fdisk -l before][5]
+
+Then with the device identifier, run the below command to start partitioning your disk. Make sure to change `/dev/sda` as per your system.
+
+```
+cfdisk /dev/sda
+```
+
+Select `label type = dos` in the next prompt.
+
+Select the free space and choose option NEW from the bottom. In this example, I will create three partitions as per below.
+
+```
+/dev/sda1 - 1G - for /boot/dev/sda2 - 5G - for root/dev/sda3 - 1G - for swap
+```
+
+![cfdisk][6]
+
+In the next screen provide partition size for the boot partition (for this example, I gave 1 GB). Select it as the primary partition.
+
+Repeat the same step for the main root partition of size 5GB.
+
+![Swap partition type change][7]
+
+Create a swap partition using the same steps with size 1G (you may change it as per your need). After you create the swap partition, make sure to choose Type at the bottom and mark it as a swap with the option “Linux Swap/Solaris”.
+
+![final partition list in cfdisk][8]
+
+Once done, write the changes to the disk using the Write option at the bottom. Make sure you take a backup before you write as this is a permanent change in your system.
+
+Run the below command to check before you proceed. You can see in this example, three partitions are listed.
+
+```
+fdisk -l
+```
+
+![final partition list in fdisk][9]
+
+Run the following commands in sequence to format and create an ext4 file system in the newly created partition above. Make sure you change the /dev/sda1 and /dev/sda2 as per your need.
+
+```
+mkfs.ext4 /dev/sda1mkfs.ext4 /dev/sda2mkswap /dev/sda3swapon /dev/sda3
+```
+
+After completion, mount the system and create necessary directories.
+
+```
+mount /dev/sda2 /mntmkdir /mnt/boot /mnt/var /mnt/homemount /dev/sda1 /mnt/boot
+```
+
+Again, make sure you change /dev/sda1, /dev/sda2 and /dev/sda3 as per your system.
+
+![prepare file system][10]
+
+##### Install the base system
+
+I hope you are already connected to the internet. If not, try using a USB dongle or wired internet connection, which Arch installer automatically configure and detect. If you do not have a wired connection available, follow [this guide][11] to configure a wireless or Wi-Fi network using Arch Linux installer.
+
+Run the below commands in sequence to install the base system in the mounted partition. The download size is approx 400 MB.
+
+```
+pacman -Syypacstrap /mnt base base-devel linux linux-firmware nano dhcpcd net-tools grub
+```
+
+![Install base system][12]
+
+Once complete, generate a file system table, without which you can’t boot the system.
+
+```
+genfstab -U /mnt >> /mnt/etc/fstab
+```
+
+##### Configure the base system
+
+Follow the below commands in sequence to configure the base system. This involves setting up your locale, language, add a login user, and setting up the internet.
+
+```
+arch-chroot /mntnano /etc/locale.gen
+```
+
+Uncomment the locale of your choice by removing # at the beginning. For this guide, I have chosen en_US.UTF-8 UTF-8. Press CTRL+O, Enter, and CTRL+X to exit from nano.
+
+![change locale][13]
+
+Generate the locale using:
+
+```
+locale-gen
+```
+
+Setup the language using the below command.
+
+```
+echo LANG=en_US.UTF-8 > /etc/locale.confexport LANG=en_US.UTF-8
+```
+
+Setup the local time zone.
+
+```
+ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
+```
+
+Again, you can choose them as per your need. You can list the local timezones via the below commands.
+
+```
+ls /usr/share/zoneinfo
+ls /usr/share/zoneinfo/America
+```
+
+Set up the hardware clock, create a hostname, and enable the DHCP for the internet using the below commands in sequence. You can change `"arindam-pc"` to any hostname as per your desire.
+
+```
+hwclock --systohc --utcecho arindam-pc > /etc/hostnamesystemctl enable dhcpcd
+```
+
+The next step is to set up the root user password, create an admin user, and add the user in the sudoers file.
+
+Follow the below commands in sequence. Make sure to change the user name from `debugpoint` to something else as per your need.
+
+```
+passwd rootuseradd -m -g users -G wheel -s /bin/bash debugpointpasswd debugpoint
+```
+
+![create user][14]
+
+Open the sudoers file and add the below lines.
+
+```
+nano /etc/sudoers
+```
+
+Add below lines. As you already created the root user, the entry should be there.
+
+```
+root ALL=(ALL) ALLdebugpoint ALL=(ALL) ALL
+```
+
+![update sudoers file][15]
+
+Install grub, setup the initial ramdisk environment, unmount the system using the below commands in sequence.
+
+```
+grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfgmkinitcpio -p linuxexit
+```
+
+![configure grub][16]
+
+Then reboot your system.
+
+```
+umount /mnt/bootumount /mntreboot
+```
+
+You have now successfully installed the Arch Linux base system. It’s time to install the complete Enlightenment desktop.
+
+![Arch is installed][17]
+
+#### Part 2: Install Enlightenment Desktop in Arch Linux
+
+After reboot, choose Arch Linux from grub. In the Arch Linux prompt, start running the following commands in sequence. These commands install Xorg server, display manager, Enlightenment desktop components and EFL.
+
+For all the commands use default i.e. press enter when asked.
+
+- **Install Xorg. Approx install size is 80 MB.**
+
+```
+sudo pacman -S --needed xorg
+```
+
+- **Install display manager.** I have used lightdm for this guide. You can choose any alternative display manager of your choice.
+
+```
+sudo pacman -S --needed lightdm lightdm-gtk-greeter
+```
+
+- **Install desktop**
+
+The Enlightenment desktop requires the [Enlightenment Foundation Library][18] (EFL) and base [enlightenment][19] package. Both are in Arch community repo. You can install them using the below commands.
+
+```
+sudo pacman -S efl
+```
+
+![Installing EFL][20]
+
+```
+sudo pacman -S enlightenment
+```
+
+![Installing Enlightenment][21]
+
+Above two are enough for a basic desktop. If you need additional native applications of this desktop, you need to [set up AUR][22] and follow the [instruction here.][23]
+
+Make sure to install the terminal and some additional apps.
+
+```
+sudo pacman -S --needed terminology
+sudo pacman -S --needed firefox vlc filezilla leafpad xscreensaver archlinux-wallpaper
+```
+
+Now it’s time to enable the display manager and network manager as service. So that next time you log on, they can run automatically by systemd.
+
+```
+systemctl enable lightdm
+systemctl enable NetworkManager
+```
+
+Reboot the system using the reboot command.
+
+```
+reboot
+```
+
+If all goes well, you should see a login prompt. Login using the ID and password you created above. Then Enlightenment desktop require some initial setup. Follow the onscreen instructions.
+
+And after setup, you should see the nice Enlightenment Desktop.
+
+![Enlightenment Desktop in Arch Linux (version 0.25)][24]
+
+I hope this guide helps you create your own Arch Linux environment with Enlightenment desktop from scratch. If you run into trouble, let me know using the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/enlightenment-arch-linux-install/
+
+作者:[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.enlightenment.org/
+[2]: https://www.debugpoint.com#install-enlightenment-desktop
+[3]: https://www.debugpoint.com/archinstall-guide/
+[4]: https://www.archlinux.org/download/
+[5]: https://www.debugpoint.com/wp-content/uploads/2020/12/fdisk-l-before.jpg
+[6]: https://www.debugpoint.com/wp-content/uploads/2020/12/cfdisk.jpg
+[7]: https://www.debugpoint.com/wp-content/uploads/2020/12/Swap-parition-type-change.jpg
+[8]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-cfdisk.jpg
+[9]: https://www.debugpoint.com/wp-content/uploads/2020/12/final-partition-list-in-fdisk.jpg
+[10]: https://www.debugpoint.com/wp-content/uploads/2020/12/prepare-file-system.jpg
+[11]: https://www.debugpoint.com/2020/11/connect-wifi-terminal-linux/
+[12]: https://www.debugpoint.com/wp-content/uploads/2020/12/Install-base-system.jpg
+[13]: https://www.debugpoint.com/wp-content/uploads/2020/12/change-locale.jpg
+[14]: https://www.debugpoint.com/wp-content/uploads/2020/12/create-user.jpg
+[15]: https://www.debugpoint.com/wp-content/uploads/2020/12/update-sudoers-file.jpg
+[16]: https://www.debugpoint.com/wp-content/uploads/2020/12/configure-grub.jpg
+[17]: https://www.debugpoint.com/wp-content/uploads/2020/12/Arch-is-installed.jpg
+[18]: https://archlinux.org/packages/community/x86_64/efl/
+[19]: https://archlinux.org/packages/community/x86_64/enlightenment/
+[20]: https://www.debugpoint.com/wp-content/uploads/2021/09/Installing-EFL-2.png
+[21]: https://www.debugpoint.com/wp-content/uploads/2021/09/Installing-Enlightenment.png
+[22]: https://www.debugpoint.com/2021/01/install-yay-arch/
+[23]: https://wiki.archlinux.org/title/enlightenment#From_the_AUR
+[24]: https://www.debugpoint.com/wp-content/uploads/2021/09/Enlightenment-Desktop-in-Arch-Linux-version-0.25.jpg
diff --git a/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md b/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md
new file mode 100644
index 0000000000..b4ef984259
--- /dev/null
+++ b/sources/tech/20221110.3 ⭐️ How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide].md
@@ -0,0 +1,116 @@
+[#]: subject: "How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide]"
+[#]: via: "https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/"
+[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+How to Upgrade to Linux Mint 21 from Mint 20.3 [Complete Guide]
+======
+
+**This guide gives you all the information you need to Upgrade to Linux Mint 21 (Vanessa) from Linux 20.3.**
+
+Linux Mint 21 Vanessa was recently released with the latest Ubuntu 22.04 base and other additional features. If you are running the earlier Linux Mint 20.3, now it is possible to do a major version upgrade using the graphical tool by Linux Mint.
+
+But before you upgrade, you need to do some housekeeping because major version upgrades always come with a fair amount of risk.
+
+That said, make sure of the following before performing the upgrade.
+
+Before you perform the upgrade, remember the followings:
+
+- The current version upgrade is only possible from Linux Mint 20.3 to Linux Mint 21 Vanessa.
+
+- What does this mean? If you are running Linux Mint 20.2 or Linux Mint 20.1, you can not directly upgrade to 21. Instead, you need to perform `sudo apt update` and `sudo apt upgrade` to reach 20.3. And then follow the steps.
+
+### Things to do before the Upgrade Attempt
+
+- Open the Update Manager and make sure your system is up to date until Linux Mint 20.3.
+- Use TImeshift to create a system restore point after you apply all the pending updates in the above step. If something happens, you can always restore it to this point in time.
+- Take a backup of all of your home, downloads, documents, pictures and videos folders.
+- Disable any third-party PPA that you may have added. You can find those in the `System Settings > Software Sources > PPAs` or `Additional Repositories` tabs.
+- Make sure you have a minimum of 10 GB to 15 GB of free disk space in the root file system.
+- (Optional) [Prepare a LIVE USB][1] of Linux Mint 20.3 if you cannot boot it after a failed upgrade. It will help to restore via Timeshift.
+- (Optional) Finally, do a fresh reboot before you follow the steps.
+- Ensure you have a stable internet connection and have around 1.5 hours to give attention to the upgrade process.
+
+### Upgrade to Linux Mint 21 from Linux Mint 20.3 [Graphical Method]
+
+- Open a terminal window and run the following command to install [mintupgrade][2] utility. This is a GUI-based program which Linux Mint modified for major version upgrades. It makes the upgrade easier for general users who are not comfortable with the command prompt.
+
+```
+sudo apt install mintupgrade
+```
+
+- Now, from the command, run the program.
+
+```
+sudo mintupgrade
+```
+
+- You should see the following prompt, which tells you the ‘upgrade to Linux Mint 21’ is available. Click on Let’s Go.
+
+![Upgrade to Linux Mint 21 from 20.3 via mintupgrade tool][3]
+
+- The tool will verify your system for any problems and tell you to fix them. If you see a **FIX** button, click on that to resolve the error (after reading the details in the window).
+- It will also give you a list of packages which require a downgrade.
+- In the end, you should see a summary of the packages to be downloaded or removed.
+- Press OK to start the upgrade process.
+
+![Final Upgrade summary][4]
+
+- The program first downloads the packages. Then start to upgrade each one of the packages. Wait for the process to finish for close to an hour (based on your standard internet speed).
+
+![Upgrading to Mint 21][5]
+
+- After the download and installation, you should see a successful upgrade prompt.
+
+![Successful Upgrade][6]
+
+- Now, reboot the system, and you should be greeted with brand new Linux Mint 21.
+
+### Things to remember during the Upgrade
+
+- Usually, the upgrade process is smooth and should not be an issue. It takes around 1 hour and 15 minutes for a base install.
+- The upgrade process may seem stalled sometime up to ~10 minutes, and you may not see any visible progress on the screen other than the progress animation.
+- So, you need to wait until it completes all the steps. Alternatively, you can also watch the status in the terminal window.
+- If you end up with a broken upgrade system, you can boot from a LIVE Mint USB/CD and restore your system with Timeshift backup.
+
+If the upgrade fails, you may try for a new upgrade via this official [guide][7].
+
+### Post Upgrade Steps
+
+- If you have disabled the third-party PPAs, enable them and do a system update check. You can find the third-party PPs at the `System Settings > Software Sources > PPAs` or `Additional Repositories` tabs.
+- Verify whether your documents, pictures and videos are present.
+- Also, check if your browser add-ons and extensions are working fine.
+- For this version, you should also check whether your **Printer and Bluetooth**are working. Because Mint 21 introduces IPP (a new protocol for printing) and a new Bluetooth manager.
+- Finally, you may want to check out the [Top 10 features of Linux Mint 21][8] before you start using it.
+
+### Wrapping Up
+
+It is always better to do a fresh installation if you can afford it. However, upgrades are also acceptable.
+
+I hope this guide helped you to do the Linux Mint upgrade. If you face any issues, let me know using the comment box below.
+
+--------------------------------------------------------------------------------
+
+via: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/
+
+作者:[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/etcher-bootable-usb-linux/
+[2]: https://www.debugpoint.com/mint-upgrade-tool/
+[3]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrade-to-Linux-Mint-21-from-20.3-via-mintupgrade-tool.jpg
+[4]: https://www.debugpoint.com/wp-content/uploads/2022/08/Final-Upgrade-summary.jpg
+[5]: https://www.debugpoint.com/wp-content/uploads/2022/08/Upgrading-to-Mint-21.gif
+[6]: https://www.debugpoint.com/wp-content/uploads/2022/08/Successfull-Upgrade.jpg
+[7]: https://community.linuxmint.com/tutorial/view/2
+[8]: https://www.debugpoint.com/linux-mint-21-features/
diff --git a/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md b/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md
new file mode 100644
index 0000000000..dee2e4e3a7
--- /dev/null
+++ b/sources/tech/20221110.5 ⭐️⭐️ Audit your sharding database algorithm.md
@@ -0,0 +1,218 @@
+[#]: subject: "Audit your sharding database algorithm"
+[#]: via: "https://opensource.com/article/22/11/audit-sharding-database"
+[#]: author: "Yacine Si Tayeb, PhD https://opensource.com/users/y2so"
+[#]: collector: "lkxed"
+[#]: translator: " "
+[#]: reviewer: " "
+[#]: publisher: " "
+[#]: url: " "
+
+Audit your sharding database algorithm
+======
+
+This demonstration of ShardingSphere 5.2.0 elaborates on the implementation logic for auditing data sharding with specific SQL examples.
+
+Thanks to the [ShardingSphere community's][1] continuous review and feedback to develop features such as [data sharding][2] and read/write splitting, our team found that some users create many shards when using the data sharding feature.
+
+In such cases, there can be 1,000 physical tables corresponding to a sharding logical table, which disturbs users.
+
+For instance, a `SELECT * FROM t_order` statement will lead to a full-route, which is obviously not the case for [OLTP][3]. This SQL can be placed in another Proxy to avoid blocking other requests.
+
+However, if users are not familiar with Proxy or how to write a `where` condition and don't know that sharding is not supported in this condition, a full-route is still required.
+
+A full-route can lower the performance of Proxy and even result in the failure of a reasonable request. Imagine that there are 1,000 shards in a physical database. If they are executed in parallel, 1,000 connections are needed, and if in serial, the request can lead to a timeout. For this reason, community users asked whether the unreasonable request could be intercepted directly.
+
+Our team considered the issue for a while. One option is to simply block the full-route operation. Doing so requires a check in the code and adding a switch to the configuration file. On the other hand, if the user later needs to set a table to read-only or requires the update operation to carry a `limit`, does that mean the code and configuration change again? This approach obviously goes against the pluggable logic of Proxy.
+
+In response to the above problems, the recently released [Apache ShardingSphere 5.2.0][4] provides users with auditing for the SQL sharding function. The audit can either be an interception operation or a statistical operation. Similar to the sharding and unique key generation algorithms, the audit algorithm is plugin-oriented, user-defined, and configurable.
+
+Next, I will elaborate on the implementation logic for auditing data sharding with specific SQL examples.
+
+### Audit for sharding interface
+
+The entrance to Apache ShardingSphere's audit is in the `org.apache.shardingsphere.infra.executor.check.SQLCheckEngine` class, which will invoke the `check` method of the `SQLChecker` interface. Currently, the ShardingSphere audit contains an audit for permission (verify username and password) and an audit for sharding.
+
+This example focuses on the parent interface implemented in the `ShardingAuditChecker` of audit for sharding.
+
+![Audit for sharding design][5]
+
+You can learn its working principles quickly by viewing the `check` code of `org.apache.shardingsphere.sharding.checker.audit.ShardingAuditChecker`.
+
+```
+public interface ShardingAuditAlgorithm extends ShardingSphereAlgorithm {/**
+ * Sharding audit algorithm SQL check.
+ *
+ * @param sqlStatementContext SQL statement context
+ * @param parameters SQL parameters
+ * @param grantee grantee
+ * @param database database
+ * @return SQL check result
+ */
+ SQLCheckResult CHECK(SQLStatementContext> sqlStatementContext, List